Hello,
i have created the new device WS100
ws100.py
import logging import device import probe from register import * log = logging.getLogger() class ws100_Meter(device.EnergyMeter): productid = 0xb017 productname = 'WS100 Meter' min_timeout = 0.5 def __init__(self, *args): super(ws100_Meter, self).__init__(*args) self.info_regs = [ Reg_text(0x1000, 4,'/Serial'), Reg_u16b(0x1004, '/FirmwareVersion'), ] def device_init(self): self.data_regs = [ Reg_u32b(0x0104, '/Ac/Power', 100, '%.1f W'), Reg_u16b(0x010a, '/Ac/Frequency', 100, '%.1f Hz'), Reg_u32b(0x010e, '/Ac/Energy/Forward', 100, '%.1f kWh'), Reg_u32b(0x0118, '/Ac/Energy/Reverse', 100, '%.1f kWh'), # We always have L1 voltage and current Reg_u32b(0x0100, '/Ac/L1/Voltage', 10, '%.1f V'), Reg_u32b(0x0102, '/Ac/L1/Current', 100, '%.1f A'), Reg_u32b(0x0104, '/Ac/L1/Power', 100, '%.1f W'), Reg_u32b(0x010e, '/Ac/L1/Energy/Forward', 100, '%.1f kWh'), Reg_u32b(0x0118, '/Ac/L1/Energy/Reverse', 100, '%.1f kWh'), ] def get_ident(self): return 'ws100_%s' % self.info['/Serial'] models = { 0x07000015 : { # WS100 (0x0091 2224 0700 0015) 'model': 'WS100_21', 'handler': ws100_Meter, }, 0x006970016 : { # WS100 (0x0091 2224 0700 0015) 'model': 'WS100_22', 'handler': ws100_Meter, }, 0x05920017 : { # WS100 (0x0091 2224 0700 0015) 'model': 'WS100_23', 'handler': ws100_Meter, }, 0x11720018 : { # WS100 (0x0091 2224 0700 0015) 'model': 'WS100_24', 'handler': ws100_Meter, }, 0x11710019 : { # WS100 (0x0091 2224 0700 0015) 'model': 'WS100_25', 'handler': ws100_Meter, }, 0x1179001a : { # WS100 (0x0091 2224 0700 0015) 'model': 'WS100_26', 'handler': ws100_Meter, }, 0x0460001f : { # WS100 (0x0091 2224 0700 0015) 'model': 'WS100_31', 'handler': ws100_Meter, }, 0x06990020 : { # WS100 (0x0091 2224 0700 0015) 'model': 'WS100_32', 'handler': ws100_Meter, }, } probe.add_handler(probe.ModelRegister(Reg_u32b(0x1002), models, methods=['rtu','tcp'], units=[21, 22, 23, 24, 25, 26, 31, 32]))
the new device is found:
@4000000064d35da3374642cc INFO Found WS100_22 at tcp:192.168.88.186:502:22 @4000000064d35da51a0863fc INFO Found WS100_21 at tcp:192.168.88.186:502:21 @4000000064d35da60ceac14c INFO Found WS100_31 at tcp:192.168.88.186:502:31 @4000000064d35da702f3ddf4 INFO Found WS100_32 at tcp:192.168.88.186:502:32
but it is not displayed in the device list.
what have i done wrong?