Added definitions of the registers.

This commit is contained in:
David Žaitlík 2022-06-19 14:23:22 +02:00
parent d2c6185c47
commit 9a48d6c681

View File

@ -1,9 +1,47 @@
from typing import Dict, Final
from minimalmodbus import NoResponseError
from .generic import ModbusRTUDevice
class SensorWiredRHT(ModbusRTUDevice):
class SensorWiredIAQ(ModbusRTUDevice):
'''
Wired sensor measuring temperature, relative humidity,
carbon dioxide and VOC, optionally particulate matter
Wired sensor measuring temperature, relative humidity
and light intensity.
'''
IDENTIFIER: int = 0xbb01
IDENTIFIER: int = 0xb00b
input_registers: Dict[str, int] = {
'SER_NUM_1': 30001,
'SER_NUM_2': 30002,
'T': 30003, # from SHT4x
'T_F': 30004,
'RH': 30005, # from SHT4x
'LIGHT_INTENSITY_1': 30006,
'LIGHT_INTENSITY_2': 30007,
'ERROR_T_RH': 30008,
'ERROR_LIGHT': 30009
} | ModbusRTUDevice.input_registers
# TODO use super, but __class__ not defined
holding_registers: Dict[str, int] = {
'MODBUS_address': 40001,
'baudrate': 40002,
'LTR329_GAIN': 40003,
'LTR329_MEAS_RATE': 40004,
'LTR329_INTEGRATION_TIME': 40005,
'LTR329_MODE': 40006
} | ModbusRTUDevice.holding_registers
RESET_MAGIC_NUMBER: Final[int] = 0xABCD
@property
def CO2(self):
return int(self.read_register(self.input_registers['CO2']))
@property
def T(self):
# TODO maybe use signed version?
return self.read_register(self.input_registers['T'],
signed=True
) / 10
@property
def RH(self):
return self.read_register(self.input_registers['RH'])