Hello community,
I got a Sinotimer DTS-6619 Smartmeter and want to read values via MODBUS. The basic setup is working, I can connect to the meter, poll data and populate items. For completeness, the setup of the bridge:
UID: modbus:serial:ab8e7b09e7
label: Modbus Serial Slave
thingTypeUID: modbus:serial
configuration:
baud: 9600
connectMaxTries: 1
timeBetweenTransactionsMillis: 35
stopBits: "1.0"
parity: even
receiveTimeoutMillis: 1500
dataBits: 8
echo: false
encoding: rtu
flowControlIn: none
flowControlOut: none
port: /dev/ttyUSB2
connectTimeoutMillis: 10000
id: 21
enableDiscovery: true
But I am struggling with the configuration of the registers. In the manual, the first register is the data register, for example I want to read Phase A Voltage.
So I set up a poller reading two bytes starting at 0:
UID: modbus:poller:ab8e7b09e7:0cfca4d4af
label: Sinotimer L1 Voltage
thingTypeUID: modbus:poller
configuration:
length: 2
start: 0
refresh: 5000
maxTries: 3
cacheMillis: 50
type: holding
bridgeUID: modbus:serial:ab8e7b09e7
Then a corresponding modbus data:
UID: modbus:data:0cfca4d4af:2ddfdb9f64
label: Modbus Data Sinotimer L1 Voltage
thingTypeUID: modbus:data
configuration:
readValueType: float32
readTransform: default
writeTransform: default
readStart: "0"
updateUnchangedValuesEveryMillis: 1000
writeMultipleEvenWithSingleRegisterOrCoil: false
writeMaxTries: 3
bridgeUID: modbus:poller:ab8e7b09e7:0cfca4d4af
But instead of giving me back the first value of the data register (which should be some voltage), it populates my item with the first value of the parameter register (which is the baud rate, 9.600).
The manual mentions a “command code 0x04” to read the first (data) register, but I have no idea where to configure this.
Can anyone hint me in the right direction?