HProtocolGateway LASTInputDev?

Begonnen von eisler, 16 Juni 2021, 14:56:10

Vorheriges Thema - Nächstes Thema

eisler

Hallo,

beim testen meines Modules HProtocolGateway / HProtocolTank bin ich auf ein Problem gestossen.
Nach dem anlegen von einem zweiten HProtocolGateway werden Werte in die falschen
HProtocolTank Readings geschrieben obwohl der HProtocolTank mit dem korrekten IODev verbunden ist.
LASTInputDev ist das erste HProtocolGateway.

Habe ich da was übersehen, gibt es dafür deine einfache Lösung?

Grüße
Stephan


rudolfkoenig

ZitatHabe ich da was übersehen, gibt es dafür deine einfache Lösung?
Ich vermute ja, aber um einen konkreten Vorschlag zu machen muesste ich das Problem verstehen, womoeglich waeren Beispiele hilfreich.

eisler

Hier die Beispielkonfiguration:


define HPROTOCOL_Gateway_1 HProtocolGateway /dev/ttyUSB0
attr HPROTOCOL_Gateway_1 baudrate 300
attr HPROTOCOL_Gateway_1 databitsLength 8
attr HPROTOCOL_Gateway_1parityBit N
attr HPROTOCOL_Gateway_1 pollInterval 120
attr HPROTOCOL_Gateway_1 room HProtocol
attr HPROTOCOL_Gateway_1 stopBit 1
define HPROTOCOL_Tank_11 HProtocolTank HPROTOCOL_Gateway_1
attr HPROTOCOL_Tank_11 hID 01
attr HPROTOCOL_Tank_11 mode Volume
attr HPROTOCOL_Tank_11 product Diesel
attr HPROTOCOL_Tank_11 room HProtocol
attr HPROTOCOL_Tank_11 sensorSystem Hectronic
attr HPROTOCOL_Tank_11 type dummy
define HPROTOCOL_Tank_12 HProtocolTank HPROTOCOL_Gateway_1
attr HPROTOCOL_Tank_12 hID 02
attr HPROTOCOL_Tank_12 mode Volume
attr HPROTOCOL_Tank_12 product Petrol
attr HPROTOCOL_Tank_12 room HProtocol
attr HPROTOCOL_Tank_12 sensorSystem Hectronic
attr HPROTOCOL_Tank_12 type dummy
define HPROTOCOL_Gateway_2 HProtocolGateway /dev/ttyUSB1
attr HPROTOCOL_Gateway_2 baudrate 9600
attr HPROTOCOL_Gateway_2 databitsLength 8
attr HPROTOCOL_Gateway_2 parityBit N
attr HPROTOCOL_Gateway_2 pollInterval 120
attr HPROTOCOL_Gateway_2 room HProtocol
attr HPROTOCOL_Gateway_2 stopBit 1
define HPROTOCOL_Tank_21 HProtocolTank HPROTOCOL_Gateway_2
attr HPROTOCOL_Tank_21 hID 01
attr HPROTOCOL_Tank_21 mode Volume
attr HPROTOCOL_Tank_21 product Diesel
attr HPROTOCOL_Tank_21 room HProtocol
attr HPROTOCOL_Tank_21 sensorSystem Hectronic
attr HPROTOCOL_Tank_21 type dummy
define HPROTOCOL_Tank_22 HProtocolTank HPROTOCOL_Gateway_2
attr HPROTOCOL_Tank_22 hID 02
attr HPROTOCOL_Tank_22 mode Volume
attr HPROTOCOL_Tank_22 product Diesel
attr HPROTOCOL_Tank_22 room HProtocol
attr HPROTOCOL_Tank_22 sensorSystem Hectronic
attr HPROTOCOL_Tank_22 type dummy

rudolfkoenig

Das reicht mir nicht um irgendwas nachstellen zu koennen, und Hardware (geschweige denn mehrere Exemplare) habe ich auch nicht.

Wenn Werte (welche ueberhaupt?) bei der falschen Instanz landen, dann wurde readingsSingleUpdate mit falschen Parameter aufgerufen. D.h. in HProtocolTank_Parse ist entweder der Eingangsparameter $tankName falsch, oder $modules{HProtocolTank}{defptr}{$tankName}. Letzteres kann z.Bsp. bei einem rename passieren.
$tankName kann auch in HProtocolGateway falsch gesetzt sein, den Code hier habe ich aber mangels Protokollverstaendnis nicht tiefer untersucht.

Ich wuerde die Ursache zunaechst nicht in dem Framework suchen.