Added concentrator script

This commit is contained in:
mj
2021-11-27 18:32:03 +01:00
parent 1de3c05fea
commit 13e1ba0ab1
6 changed files with 80 additions and 16 deletions

View File

@@ -10,7 +10,7 @@ class Sensor():
input_register_end = 39999
# Sensor specific config
baudrates = [ 4800,9600,14400,19200,28800,38400,57600,76800,115200 ] # allowed baudrates
input_register = { \
input_registers = { \
'CO2': 30010, \
'T_SHT4x': 30011, \
'RH_SHT4x': 30012, \
@@ -18,7 +18,7 @@ class Sensor():
'RH_SCD4x': 30014, \
'T_SHT4x_signed': 30015, \
'T_SCD4x_signed': 30016 }
holding_register = { \
holding_registers = { \
'LED_on': 40001, \
'LED_brightness': 40002, \
'LED_smooth': 40003, \
@@ -32,7 +32,7 @@ class Sensor():
readout_error_invalid_response = 0 # checksum error: bus transmission corrupted?
readout_error_no_response = 0 # no response - sensor device was busy
# methods
def __init__(self, dev_file='/dev/rs485', address=247, baudrate=19200):
def __init__(self, address=247, baudrate=19200, dev_file='/dev/rs485'):
self.dev_file = dev_file
self.address = address
self.baudrate = baudrate
@@ -52,7 +52,7 @@ class Sensor():
# High level read functions
@property
def CO2(self):
return int(self.read_register(self.input_register['CO2']))
return int(self.read_register(self.input_registers['CO2']))
@property
def T(self):
# TODO maybe use rather signed version?
@@ -62,22 +62,22 @@ class Sensor():
return self.RH_SHT4x
@property
def T_SHT4x(self):
return self.read_register(self.input_register['T_SHT4x']) / 10
return self.read_register(self.input_registers['T_SHT4x']) / 10
@property
def T_SHT4x_signed(self):
return self.read_register(self.input_register['T_SHT4x_signed'], signed=True) / 10
return self.read_register(self.input_registers['T_SHT4x_signed'], signed=True) / 10
@property
def RH_SHT4x(self):
return self.read_register(self.input_register['RH_SHT4x'])
return self.read_register(self.input_registers['RH_SHT4x'])
@property
def T_SCD4x(self):
return self.read_register(self.input_register['T_SCD4x']) / 10
return self.read_register(self.input_registers['T_SCD4x']) / 10
@property
def T_SCD4x_signed(self):
return self.read_register(self.input_register['T_SCD4x_signed'], signed=True) / 10
@property
def RH_SCD4x(self):
return self.read_register(self.input_register['RH_SCD4x'])
return self.read_register(self.input_registers['RH_SCD4x'])
# generic read register function
def read_register(self, register_number, retries=10):
if self.input_register_start <= register_number <= self.input_register_end: