Guten Tag,
ich hoffe ihr könnt mir helfen das Modbus Verhalten hier zu verstehen.
Ich habe eine Modbus Variable (HoldingRegisters) die gelesen und geschrieben werden soll.
Ich schreibe diese Mittels setState wenn ein Ereignis eintritt, gleichzeitig überwache ich diese Modbus-Variable mit on.
Ein Minimalbeispiel sieht wie folgt aus:
on({id: "0_userdata.0.Test.MyBool", change: 'ne'}, function(obj)
{
console.log("0_userdata.0.Test.MyBool");
console.log(getState("0_userdata.0.Test.MyBool"));
if (getState("0_userdata.0.Test.MyBool").val)
{
setState("modbus.1.holdingRegisters.32114_Test", 1);
}
else
{
setState("modbus.1.holdingRegisters.32114_Test", 0);
}
});
on({id: "modbus.1.holdingRegisters.32114_Test", change: 'ne'}, function(obj)
{
console.log("modbus.1.holdingRegisters.32114_Test");
console.log(getState("modbus.1.holdingRegisters.32114_Test"));
});
Die Logausgaben sind wie folgt:
2023-09-28 15:33:59.210 - [32minfo[39m: javascript.0 (4971) script.js.common.TestModbus: 0_userdata.0.Test.MyBool
2023-09-28 15:33:59.211 - [32minfo[39m: javascript.0 (4971) script.js.common.TestModbus: {'val':false,'ack':false,'ts':1695908039206,'q':0,'from':'system.adapter.admin.0','user':'system.user.admin','lc':1695908039206}
2023-09-28 15:33:59.224 - [32minfo[39m: javascript.0 (4971) script.js.common.TestModbus: modbus.1.holdingRegisters.32114_Test
2023-09-28 15:33:59.225 - [32minfo[39m: javascript.0 (4971) script.js.common.TestModbus: {'val':0,'ack':false,'ts':1695908039212,'q':0,'c':'script.js.common.TestModbus','from':'system.adapter.javascript.0','user':'system.user.admin','lc':1695908039212}
2023-09-28 15:33:59.380 - [32minfo[39m: javascript.0 (4971) script.js.common.TestModbus: modbus.1.holdingRegisters.32114_Test
2023-09-28 15:33:59.381 - [32minfo[39m: javascript.0 (4971) script.js.common.TestModbus: {'val':1,'ack':true,'ts':1695908039377,'q':0,'from':'system.adapter.modbus.1','user':'system.user.admin','lc':1695908039377}
2023-09-28 15:33:59.427 - [32minfo[39m: javascript.0 (4971) script.js.common.TestModbus: modbus.1.holdingRegisters.32114_Test
2023-09-28 15:33:59.428 - [32minfo[39m: javascript.0 (4971) script.js.common.TestModbus: {'val':0,'ack':true,'ts':1695908039423,'q':0,'from':'system.adapter.modbus.1','user':'system.user.admin','lc':1695908039423}
Zeile 6 vom Log verstehe ich nicht. Wieso ist der Value wieder kurzzeitig auf 1?
Mit freundlichen Grüßen
Kevin Haybach