Group gModbus(gAll)
Contact LandingMotion "Contact0 [MAP(en.map):%s]" (gModbus) {modbus="slave1:0"}
Number LightLevelFront "Light [%f]" (gModbus) {modbus="slave1:40"}
Number LightlevelRear "Light [%f]" (gModbus) {modbus="slave1:41"}
The Contact motion sensor works without a problem, values for the analogues sensors (lightLevel*), read as “undefined” -
2015-11-06 12:47:56 - LandingMotion state updated to CLOSED
2015-11-06 12:47:56 - LightLevelFront state updated to Undefined
2015-11-06 12:47:56 - LightlevelRear state updated to Undefined
2015-11-06 12:47:56 - LandingMotion state updated to OPEN
2015-11-06 12:47:56 - LightLevelFront state updated to Undefined
I would recommend using wireshark to see what the commands that are being sent. I’ve used it to diagnose modbus problems in the past. if you have another program that actually communicates with the device capture its working packets as well and compare the two. That error usually comes wen you request the wrong type of register or address.
looking at page 73 is says that 10-16 is analog input register. 20-45 are encoder counter values. also the specific regesteres have to be enabled in the software first page 75 of the Manual
Try changing the item to read decimal instead of float. but it is going to read the voltage. once you read it you will need to make a rule to convert the min max to span 0% to 100%
Number LightLevelFront_RAW "Light [%d]" (gModbus) {modbus="slave2:0"}
Pokeys:
Pin 41: Configured as an analogue input with an LDR voltage divider circuit (I haven’t looked at using the “EasySensor” config for this; that might allow easy conversion to 0-100 range that I want)