NEWS
Interpretation von Modbus-Daten (modbus-Adapter 2.0.6)
-
Ich nutze zur Heizungssteuerung eine UVR16x2 von TA. Der aktuelle Status meiner Heizungspumpen soll an den ioBroker übergeben werden. Der modbus-Adapter ist Slave und bekommt die Daten über TCP vom UVR-Master. Der modbus-Adapter hat die Version 2.0.6.
Bei der UVR sehe ich den boolschen Status eine Heizungspumpe als Text "EIN" oder "AUS". Dabei betrachte ich den Modbus-Ausgangskonfigurationsdialog. Dort wird der aktuell übertragene Wert jeweils angezeigt.
Das zugehörige modbus-Objekt im ioBroker (egal ob vom Typ state oder value) zeigt als Text immer "true" oder "false" an. Die Coils sind dort als "Diskrete Ausgänge" definert. Nebenbei bemerkt: Müssten das von der Benennung her nicht eigentlich "Diskrete Eingänge" aus Sicht des ioBrokers sein?
Das Objekt zeigt "true" an, wenn die Heizungssteuerung "AUS" anzeigt und "false", wenn die UVR den Wert "EIN" liefert.
Merkwürdig. :roll:
Mit Wireshark sehe ich auf dem Netzwerkinterface des ioBrokers die folgenden Datenflüsse (die Modbus-Coil-Adresse ist die 2 und der Function-Code ist 5):
Übergang in der UVR von "AUS" nach stabilen "EIN":
modbus-Adapter empfängt "00 00 00 00 00 06 02 05 00 01 ff 00" und sendet dann gleich "00 00 00 00 00 06 02 05 00 01 00 00" zurück zur UVR
Übergang in der UVR von "EIN" nach stabilen "AUS":
modbus-Adapter empfängt "00 00 00 00 00 06 02 05 00 01 00 00" und sendet dann gleich "00 00 00 00 00 06 02 05 00 01 ff 00" zurück zur UVR
Örks. Steht jetzt das Datenbyte FF für FALSE und 00 für TRUE?
Vertauscht der ioBroker da was? War das in früheren Versionen des Adapters auch schon so?
Und vor allem: Bin ich auf der falschen Spur?
-
Ich kann Deine Beobachtung exakt bestätigen. Der ModBus Adapter vertauscht true und false bei den Coils. Auch noch in Version 2.0.9. Ist halt etwas lästig, dass per Javascript dann umzubiegen …