Advanced search FAQ Register Login

It is currently Tue Jan 23, 2018 8:36 pm

 

Postby Siewert308SW » Sat Jan 14, 2017 1:44 am

Image

As the old pico_status.py isn't compatible with the HV3.0A series and didn't found any new version at the moment of my writing i felt free and amended the script.
Nothing special... But as intended to suite my needs i decided to share it overhere.
Grabbed some stuff all over the place so none of those codes are my own, just borrowed it ;-)

Be aware:
The info output depends on registers,
So if a register isn't right in the script or not corresponding your board then the output could be false.
Don't blame the board dev for false reading, amend the script if necessary to suite your corresponding register values for your board.

Changelog:

9 Jan 2017
Initial release

10 Jan 2017
Added a seperate script for Fahernheit
Added Fan Speed
Added Battery percentage

12 Jan 2017
Added UPS PIco BAT Runtime (thx TK67)
Added UPS PIco r232 State
Added PCB version
Temporary removed Charging state, isn't working right
Combined Celsius & Fahernheit script into one, you need to set your desired Degrees value in the script at the top
You don't have to set the "Battery Percentage" formula again, If i have the right datasheet specs for the different available Lipo or LiFePO4 batteries then the scripts does it for you.

24 Jan 2017 (Also compatible with firmware version 18)
Added Battery charging state
Added option to show FAN KIT info if installed
Added option to show to92 sensor info if installed
Added option to show extended power info if installed
Fixed battery percentage for LiFePO4 battery
removed last decimal from FAN RPM value
Fixed rs232 OFF state
Some cosmetic changes

25 Jan 2017 (Also compatible with firmware version 18)
Removed decimal in battery percentage, as you get absurd numbers like 24 digests behind the decimal
Fixed Rpi Voltage level script wise, if running on battery power the rpi voltage always gave the last voltage reading, now set to 0.0 when running on battery

Script:

Code: Select all

#!/usr/bin/python

#####################################################################################
# pico_status.py
# author : Kyriakos Naziris
# updated: 1-12-2017
# Script to show you some statistics pulled from your UPS PIco HV3.0A

# -*- coding: utf-8 -*-
# improved and completed by PiModules Version 1.0 29.08.2015
# picoStatus-v3.py by KTB is based on upisStatus.py by Kyriakos Naziris
# Kyriakos Naziris / University of Portsmouth / kyriakos@naziris.co.uk
# As per 09-01-2017 improved and modified for PiModules PIco HV3.0A Stack Plus / Plus / Top by Siewert Lameijer
#####################################################################################

# You can install psutil using: sudo pip install psutil
#import psutil

#####################################################################################
# SETTINGS
#####################################################################################

# Set your desired temperature symbol
# C = Celsius
# F = Fahrenheit
degrees = "C or F"

# Do you have a PIco FAN kit installed?
# True or False
fankit = True

# Do you have a to92 temp sensor installed?
# True or False
to92 = True

# Do you have extended power?
# True or False
extpwr = False

#####################################################################################
# It's not necessary to edit anything below, unless you're knowing what to do!
#####################################################################################

import smbus
import time
import datetime

i2c = smbus.SMBus(1)

def fw_version():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x26)
   data = format(data,"02x")
   return data
   
def boot_version():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x25)
   data = format(data,"02x")
   return data

def pcb_version():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x24)
   data = format(data,"02x")
   return data   

def pwr_mode():
   data = i2c.read_byte_data(0x69, 0x00)
   data = data & ~(1 << 7)
   if (data == 1):
      return "RPi POWERED"
   elif (data == 2):
      return "BATT POWERED"
   else:
      return "ERROR"
    
def batt_version():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x6b, 0x07)
   if (data == 0x46):
      return "LiFePO4 (ASCII : F)"
   elif (data == 0x51):
      return "LiFePO4 (ASCII : Q)"
   elif (data == 0x53):
      return "LiPO (ASCII: S)"
   elif (data == 0x50):
      return "LiPO (ASCII: P)"       
   else:
      return "ERROR"
    
def batt_runtime():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x6b, 0x01) + 1
   if (data == 0x100):
      return "TIMER DISABLED"
   elif (data == 0xff):
      return "TIMER DISABLED"    
   else:
      data = str(data)+ " MIN"
      return data    
   
def batt_level():
   time.sleep(0.1)
   data = i2c.read_word_data(0x69, 0x08)
   data = format(data,"02x")
   return (float(data) / 100)
   
def batt_percentage():
   time.sleep(0.1)
   datavolts = batt_level()
   databattery = batt_version()
   if (databattery == "LiFePO4 (ASCII : F)") or (databattery == "LiFePO4 (ASCII : Q)"):
      datapercentage = ((datavolts-2.8)/0.5)*100
      
   elif (databattery == "LiPO (ASCII: S)") or (databattery == "LiPO (ASCII: P)"):
      datapercentage = ((datavolts-3.4)/0.75)*100
   return int (datapercentage)
   
   
def charger_state():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x20)
   battpercentage = batt_percentage()
   powermode = pwr_mode()
   if (data == 0x00) and (powermode == "BATT POWERED") and (battpercentage < 99):
      return "DISCHARGING"   
   elif (data == 0x01) and (powermode == "RPi POWERED") and (battpercentage > 99):
      return "CHARGED"    
   elif (data == 0x01) and (powermode == "RPi POWERED") and (battpercentage < 99):
      return "CHARGING"     
   else:
      return "ERROR"   

def rpi_level():
   time.sleep(0.1)
   data = i2c.read_word_data(0x69, 0x0a)
   data = format(data,"02x")
   powermode = pwr_mode()
   if (powermode == "RPi POWERED"):
      return (float(data) / 100)
   else:
      return "0.0"
      
def ntc1_temp():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x1b)
   data = format(data,"02x")
   if (degrees == "C"):
   return data
   elif (degrees == "F"):
   return (float(data) * 9 / 5) + 32
   
def to92_temp():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x1C)
   data = format(data,"02x")
   if (degrees == "C"):
   return data
   elif (degrees == "F"):
   return (float(data) * 9 / 5) + 32

def epr_read():
   time.sleep(0.1)
   data = i2c.read_word_data(0x69, 0x0c)
   data = format(data,"02x")
   return (float(data) / 100)

def ad2_read():
   time.sleep(0.1)
   data = i2c.read_word_data(0x69, 0x07)
   data = format(data,"02x")
   return (float(data) / 100)
   
def fan_mode():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x6b, 0x11)
   data = data & ~(1 << 2)
   if (data == 1):
      return "ENABLED"
   elif (data == 0):
      return "DISABLED"
   else:
      return "ERROR"

def fan_state():
   time.sleep(0.1) 
   data = i2c.read_byte_data(0x6b, 0x13)
   data = data & ~(1 << 2)
   if (data == 1):
      return "ON"
   elif (data == 0):
      return "OFF"
   else:
      return "ERROR"     

def fan_speed():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x6b, 0x12)
   data = format(data,"02x")
   return int (float(data) * 100)

def rs232_state():
   time.sleep(0.1) 
   data = i2c.read_byte_data(0x6b, 0x02)
   if (data == 0x00):
      return "OFF"
   elif (data == 0xff):
      return "OFF"    
   elif (data == 0x01):
      return "ON @ 4800 pbs"
   elif (data == 0x02):
      return "ON @ 9600 pbs"
   elif (data == 0x03):
      return "ON @ 19200 pbs"
   elif (data == 0x04):
      return "ON @ 34600 pbs"
   elif (data == 0x05):
      return "ON @ 57600 pbs"
   elif (data == 0x0f):
      return "ON @ 115200 pbs"    
   else:
      return "ERROR"   
   
print " "
print "**********************************************"
print "*             UPS PIco HV3.0A Status           *"
print "*                  Version 5.0                 *"
print "**********************************************"
print " "
print " ","UPS PIco Firmware.....:",fw_version()
print " ","UPS PIco Bootloader...:",boot_version()
print " ","UPS PIco PCB Version..:",pcb_version()
print " ","UPS PIco BATT Version.:",batt_version()
print " ","UPS PIco BATT Runtime.:",batt_runtime()
print " ","UPS PIco rs232 State..:",rs232_state()
print " "
print " ","Powering Mode.........:",pwr_mode()
print " ","Charger State.........:",charger_state()
print " ","Battery Percentage....:",batt_percentage(),"%"
print " ","Battery Voltage.......:",batt_level(),"V"
print " ","RPi Voltage...........:",rpi_level(),"V"

if (to92 == True):
   if (degrees == "C"):
      print " ","NTC1 Temperature......:",ntc1_temp(),"C"
      print " ","TO-92 Temperature.....:",to92_temp(),"C"
   elif (degrees == "F"):
      print " ","NTC1 Temperature......:",ntc1_temp(),"F"
      print " ","TO-92 Temperature.....:",to92_temp(),"F"
   else:
      print " ","NTC1 Temperature......: please set your desired temperature symbol!"
      print " ","TO-92 Temperature.....: please set your desired temperature symbol!"

if (extpwr == True):   
   print " ","Extended Voltage......:",epr_read(),"V"
   print " ","A/D2 Voltage..........:",ad2_read(),"V"

if (fankit == True):      
   print " "
   print " ","UPS PIco FAN Mode.....:",fan_mode()
   print " ","UPS PIco FAN State....:",fan_state()
   print " ","UPS PIco FAN Speed....:",fan_speed(),"RPM"
print " "
print "**********************************************"
print "*           Powered by PiModules             *"
print "**********************************************"
print " "


Download:

pico_status_0x24.zip

UPS HV3.0A PIco Status for firmware version 24
Also compatible with firmware version 18

(1.88 KiB) Downloaded 75 times


pico_status_0x18.zip

UPS HV3.0A PIco Status for firmware version 18

(1.7 KiB) Downloaded 41 times




Hint:

Code: Select all

As for firmware version 0x18, To turn on the fan at your desired speed you have to disabled it first, no matter what state it is.
Then set desired speed, only 5 modes available.
Then turn on the fan again and it will run as desired.

Only 5 modes available:
0 = Off
25%
50%
75%
100%

Each time you want to set the fan speed manually do the following i ssh:

# Set fan OFF
i2cset -y 1 0x6b 0x11 0

#Set Fan to 50%
i2cset -y 1 0x6b 0x12 50

#Set Fan ON
i2cset -y 1 0x6b 0x11 1

Siewert308SW
Initiated

Posts: 29

Joined: Wed Jan 04, 2017 3:35 pm

Setup:
1x RPi3 - PIco hv3.0A Plus / Domoticz / RFXtrx433E
1x RPi3 - PiHole / logging gas,elec
3x FI9803P Cam
2x Youless Elec/Gas
4x KD101 detectors
a lot of KaKu/CoCo stuff

Domoticz scripts: @ GitHub
pico_installer: @ GitHub
pico_status: @ GitHub

Postby Siewert308SW » Wed Jan 25, 2017 12:46 pm

I updated the script for the new UPS PIco HV3.0A firmware version 0x24

Change log:
Added Battery charging state
Added option to show FAN KIT info if installed
Added option to show to92 sensor info if installed
Added option to show extended power info if installed
Fixed battery percentage for LiFePO4 battery
removed last decimal from FAN RPM value
Fixed rs232 OFF state
Removed decimal in battery percentage, as you get absurd numbers like 24 digests behind the decimal
Fixed Rpi Voltage level script wise, if running on battery power the rpi voltage always gave the last voltage reading, now set to 0.0 when running on battery
Some cosmetic changes

Image

Siewert308SW
Initiated

Posts: 29

Joined: Wed Jan 04, 2017 3:35 pm

Setup:
1x RPi3 - PIco hv3.0A Plus / Domoticz / RFXtrx433E
1x RPi3 - PiHole / logging gas,elec
3x FI9803P Cam
2x Youless Elec/Gas
4x KD101 detectors
a lot of KaKu/CoCo stuff

Domoticz scripts: @ GitHub
pico_installer: @ GitHub
pico_status: @ GitHub

Postby sunwind » Fri Jan 27, 2017 9:12 pm

"Fixed rs232 OFF state"

Can you elaborate on this? sometimes my rs232 state turns OFF after a shutdown/reboot and I have to turn it back on each time(??)
What does this actually do? what is the recommended data rate bps? I can't find any documenation on it.

Also, when I run the script sometimes it fails before finishing.. see:

Image

So I have to run it multiple times.

sunwind
n00b

User avatar

Posts: 4

Joined: Tue Oct 25, 2016 6:09 pm

Postby Siewert308SW » Fri Jan 27, 2017 11:14 pm

It's a script, as mentioned in the script if something fails then amend to you hardware.
I don't have all the hardware to test, can only write for what i have.

RS232 as in the hv3.0a manual mentioned is used for uploading the firmware to the board.
If you don't have other stuff on the hat then don't mess with it.
The port is automaticly opened when running the firmware update python script.

As for the error, is see your running firmware 24.
Don't which version you use but i see your using a LiFePO4 battery and earlier script version didn't support those batteries.
Please try the updated script.

Siewert308SW
Initiated

Posts: 29

Joined: Wed Jan 04, 2017 3:35 pm

Setup:
1x RPi3 - PIco hv3.0A Plus / Domoticz / RFXtrx433E
1x RPi3 - PiHole / logging gas,elec
3x FI9803P Cam
2x Youless Elec/Gas
4x KD101 detectors
a lot of KaKu/CoCo stuff

Domoticz scripts: @ GitHub
pico_installer: @ GitHub
pico_status: @ GitHub

Postby sunwind » Sun Jan 29, 2017 1:11 pm

Siewert308SW wrote:It's a script, as mentioned in the script if something fails then amend to you hardware.
I don't have all the hardware to test, can only write for what i have.

RS232 as in the hv3.0a manual mentioned is used for uploading the firmware to the board.
If you don't have other stuff on the hat then don't mess with it.
The port is automaticly opened when running the firmware update python script.

As for the error, is see your running firmware 24.
Don't which version you use but i see your using a LiFePO4 battery and earlier script version didn't support those batteries.
Please try the updated script.


So I don't need to worry about RS232 stuff unless uplolading new firmware?

I got the status script from the pimodules forum I think, is the one here the latest? I copy/pasted it and tried running it, but then get:

pi@RetroCast:~ $ pico_status_hv3.0.py
File "/home/pi/PiModules/pico_status/pico_status_hv3.0.py", line 150
return data
^
IndentationError: expected an indented block
pi@RetroCast:~ $

I changed degrees = "C or F" to degrees = "C".

Thanks

sunwind
n00b

User avatar

Posts: 4

Joined: Tue Oct 25, 2016 6:09 pm

Postby Siewert308SW » Mon Jan 30, 2017 3:31 pm

sunwind wrote:
Siewert308SW wrote:It's a script, as mentioned in the script if something fails then amend to you hardware.
I don't have all the hardware to test, can only write for what i have.

RS232 as in the hv3.0a manual mentioned is used for uploading the firmware to the board.
If you don't have other stuff on the hat then don't mess with it.
The port is automaticly opened when running the firmware update python script.

As for the error, is see your running firmware 24.
Don't which version you use but i see your using a LiFePO4 battery and earlier script version didn't support those batteries.
Please try the updated script.


So I don't need to worry about RS232 stuff unless uplolading new firmware?

I got the status script from the pimodules forum I think, is the one here the latest? I copy/pasted it and tried running it, but then get:

pi@RetroCast:~ $ pico_status_hv3.0.py
File "/home/pi/PiModules/pico_status/pico_status_hv3.0.py", line 150
return data
^
IndentationError: expected an indented block
pi@RetroCast:~ $

I changed degrees = "C or F" to degrees = "C".

Thanks


Or try the script below.
Has some optimisations to the latest i posted on Pimodules.

Code: Select all


#!/usr/bin/python

#####################################################################################
# pico_status.py
# author : Kyriakos Naziris
# updated: 1-12-2017
# Script to show you some statistics pulled from your UPS PIco HV3.0A

# -*- coding: utf-8 -*-
# improved and completed by PiModules Version 1.0 29.08.2015
# picoStatus-v3.py by KTB is based on upisStatus.py by Kyriakos Naziris
# Kyriakos Naziris / University of Portsmouth / kyriakos@naziris.co.uk
# As per 09-01-2017 improved and modified for PiModules PIco HV3.0A Stack Plus / Plus / Top by Siewert Lameijer
#####################################################################################

# You can install psutil using: sudo pip install psutil
#import psutil

#####################################################################################
# SETTINGS
#####################################################################################

# Set your desired temperature symbol
# C = Celsius
# F = Fahrenheit
degrees = "C"

# Do you have a PIco FAN kit installed?
# True or False
fankit = True

# Do you have a to92 temp sensor installed?
# True or False
to92 = True

# Do you have extended power?
# True or False
extpwr = True

#####################################################################################
# It's not necessary to edit anything below, unless you're knowing what to do!
#####################################################################################

import smbus
import time
import datetime

i2c = smbus.SMBus(1)

def fw_version():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x26)
   data = format(data,"02x")
   return data
   
def boot_version():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x25)
   data = format(data,"02x")
   return data

def pcb_version():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x24)
   data = format(data,"02x")
   return data   

def pwr_mode():
   data = i2c.read_byte_data(0x69, 0x00)
   data = data & ~(1 << 7)
   if (data == 1):
      return "RPi POWERED"
   elif (data == 2):
      return "BAT POWERED"
   else:
      return "ERROR"
    
def bat_version():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x6b, 0x07)
   if (data == 0x46):
      return "LiFePO4 (ASCII : F)"
   elif (data == 0x51):
      return "LiFePO4 (ASCII : Q)"
   elif (data == 0x53):
      return "LiPO (ASCII: S)"
   elif (data == 0x50):
      return "LiPO (ASCII: P)"       
   else:
      return "ERROR"
    
def bat_runtime():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x6b, 0x01) + 1
   if (data == 0x100):
      return "TIMER DISABLED"
   elif (data == 0xff):
      return "TIMER DISABLED"    
   else:
      data = str(data)+ " MIN"
      return data    
   
def bat_level():
   time.sleep(0.1)
   data = i2c.read_word_data(0x69, 0x08)
   data = format(data,"02x")
   return (float(data) / 100)
   
def bat_percentage():
   time.sleep(0.1)
   datavolts = bat_level()
   databattery = bat_version()
   if (databattery == "LiFePO4 (ASCII : F)") or (databattery == "LiFePO4 (ASCII : Q)"):
      databatminus = datavolts-2.9
      datapercentage = ((datavolts-2.9)/databatminus)*100
   elif (databattery == "LiPO (ASCII: S)") or (databattery == "LiPO (ASCII: P)"):
      databatminus = datavolts-3.5
      datapercentage = ((datavolts-3.5)/databatminus)*100
   return int (datapercentage)
   
   
def charger_state():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x20)
   battpercentage = bat_percentage()
   powermode = pwr_mode()
   if (data == 0x00) and (powermode == "BAT POWERED") and (battpercentage < 99):
      return "DISCHARGING"   
   elif (data == 0x01) and (powermode == "RPi POWERED") and (battpercentage > 99):
      return "CHARGED"    
   elif (data == 0x01) and (powermode == "RPi POWERED") and (battpercentage < 99):
      return "CHARGING"     
   else:
      return "ERROR"   

def rpi_level():
   time.sleep(0.1)
   data = i2c.read_word_data(0x69, 0x0a)
   data = format(data,"02x")
   powermode = pwr_mode()
   if (powermode == "RPi POWERED"):
      return (float(data) / 100)
   else:
      return "0.0"
      
def ntc1_temp():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x1b)
   data = format(data,"02x")
   if (degrees == "C"):
   return data
   elif (degrees == "F"):
   return (float(data) * 9 / 5) + 32
   
def to92_temp():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x1C)
   data = format(data,"02x")
   if (degrees == "C"):
   return data
   elif (degrees == "F"):
   return (float(data) * 9 / 5) + 32

def epr_read():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x0c)
   data = format(data,"02x")
   return (float(data) / 100)

def ad2_read():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x69, 0x07)
   data = format(data,"02x")
   return (float(data) / 100)
   
def fan_mode():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x6b, 0x11)
   data = data & ~(1 << 2)
   if (data == 1):
      return "ENABLED"
   elif (data == 0):
      return "DISABLED"
   else:
      return "ERROR"

def fan_state():
   time.sleep(0.1) 
   data = i2c.read_byte_data(0x6b, 0x13)
   data = data & ~(1 << 2)
   if (data == 1):
      return "ON"
   elif (data == 0):
      return "OFF"
   else:
      return "ERROR"     

def fan_speed():
   time.sleep(0.1)
   data = i2c.read_byte_data(0x6b, 0x12)
   data = format(data,"02x")
   return int (float(data) * 100)

def rs232_state():
   time.sleep(0.1) 
   data = i2c.read_byte_data(0x6b, 0x02)
   if (data == 0x00):
      return "OFF"
   elif (data == 0xff):
      return "OFF"    
   elif (data == 0x01):
      return "ON @ 4800 pbs"
   elif (data == 0x02):
      return "ON @ 9600 pbs"
   elif (data == 0x03):
      return "ON @ 19200 pbs"
   elif (data == 0x04):
      return "ON @ 34600 pbs"
   elif (data == 0x05):
      return "ON @ 57600 pbs"
   elif (data == 0x0f):
      return "ON @ 115200 pbs"    
   else:
      return "ERROR"   
   
print " "
print "**********************************************"
print "*             UPS PIco HV3.0A Status           *"
print "*                  Version 5.0                 *"
print "**********************************************"
print " "
print " ","UPS PIco Firmware.....:",fw_version()
print " ","UPS PIco Bootloader...:",boot_version()
print " ","UPS PIco PCB Version..:",pcb_version()
print " ","UPS PIco BAT Version..:",bat_version()
print " ","UPS PIco BAT Runtime..:",bat_runtime()
print " ","UPS PIco rs232 State..:",rs232_state()
print " "
print " ","Powering Mode.........:",pwr_mode()
print " ","Charger State.........:",charger_state()
print " ","Battery Percentage....:",bat_percentage(),"%"
print " ","Battery Voltage.......:",bat_level(),"V"
print " ","RPi Voltage...........:",rpi_level(),"V"

if (to92 == True):
   if (degrees == "C"):
      print " ","NTC1 Temperature......:",ntc1_temp(),"C"
      print " ","TO-92 Temperature.....:",to92_temp(),"C"
   elif (degrees == "F"):
      print " ","NTC1 Temperature......:",ntc1_temp(),"F"
      print " ","TO-92 Temperature.....:",to92_temp(),"F"
   else:
      print " ","NTC1 Temperature......: please set your desired temperature symbol!"
      print " ","TO-92 Temperature.....: please set your desired temperature symbol!"

if (extpwr == True):   
   print " ","Extended Voltage......:",epr_read(),"V"
   print " ","A/D2 Voltage..........:",ad2_read(),"V"

if (fankit == True):      
   print " "
   print " ","UPS PIco FAN Mode.....:",fan_mode()
   print " ","UPS PIco FAN State....:",fan_state()
   print " ","UPS PIco FAN Speed....:",fan_speed(),"RPM"
print " "
print "**********************************************"
print "*           Powered by PiModules             *"
print "**********************************************"
print " "






Schermafdruk 2017-01-30 15.28.13.png

Schermafdruk 2017-01-30 15.28.13.png (13.5 KiB) Viewed 603 times

Siewert308SW
Initiated

Posts: 29

Joined: Wed Jan 04, 2017 3:35 pm

Setup:
1x RPi3 - PIco hv3.0A Plus / Domoticz / RFXtrx433E
1x RPi3 - PiHole / logging gas,elec
3x FI9803P Cam
2x Youless Elec/Gas
4x KD101 detectors
a lot of KaKu/CoCo stuff

Domoticz scripts: @ GitHub
pico_installer: @ GitHub
pico_status: @ GitHub

Who is online

Users browsing this forum: No registered users and 1 guest

Board index

The teamDelete all board cookies • All times are UTC [ DST ]