I’m unable to get the correct DS18B20 values from my Pokeys57E through Modbus.
When the sensor value through the Pokeys software is 24,31 °C,
the value in OH is 158924800 °C.
My modbus config:
poll=200
tcp.slave1.connection=192.168.178.250:502
tcp.slave1.type=input
tcp.slave1.id=111
tcp.slave1.start=400
tcp.slave1.length=2
tcp.slave1.valuetype=int32
My items config:
Number temperature “Test [%.2f °C]” (gTemperature) { modbus=“slave1:0” }
The manual of Pokeys says that the register of the sensor values are 32-bit.
But the value that i get isn’t the temperature.
No more sensors on the pockey, only one ds18b20
I guess that should be float32
and the value may need additional conversion as the negatives could have the most high bit set (as seen on another device).
The data address received in the query is not an allowable address for the slave. More specifically, the combination of reference number and transfer length is invalid. For a controller with 100 registers, a request with offset 96 and length 4 would succeed, a request with offset 96 and length 5 will generate exception 02.
Reason why I want you to try this.
I got myself over 400 modbus items.
Some are encoded with LSB some with MSB which is a pain in the A**
I had crazy values to like 2001365010340160 to -164215124345
The swap function solved this for me. So I suggest maybe its that
@sjief So this is Solved?
If yes please don’t forget to mark your Topic as Solved https://puu.sh/x6u1q/52e354498e.png
Just click the first button on the response that solved your Issue.
There may be a clue from earlier. Changing int with floatcannot produce the value, so that tells you that changes do not always take immediate effect. Same probably applies to your transform.
You must at the very least restart OH, and might need to see