FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Funnel am 22 Dezember 2020, 16:50:21

Titel: ModbusAttr als "passive Listener" hängt nach einiger Zeit
Beitrag von: Funnel am 22 Dezember 2020, 16:50:21
Ich habe einen RS485 Modbus zwischen einem Solarwechselrichter und einem Smartmeter. Um die Daten des Smartmeters loggen zu können, habe ich in FHEM ein Modbus Device angelegt, sowie ein ModbusAttr als passiver Listener auf diesem Modbus. Nach erzeugen der Datenobjekte läuft dieses Setup ganz gut, ich kann die gewünschten Daten in meinen Readings sehen. Nach einiger Zeit, mal 30 Minuten, mal 3 Stunden kommt es jedoch vor, das die Readings nicht mehr aktualisiert werden.
Ich habe im Moment keine Idee wie ich diesen Fehler beikommen kann.


PS: Auf meinem Modbus ist recht viel los, es werden pro Sekunde 5 - 6 Werte übertragen. Die Daten werden anschließend mit einem event-aggregator komprimiert.


Gruß
Thomas
Titel: Antw:ModbusAttr als "passive Listener" hängt nach einiger Zeit
Beitrag von: StefanStrobel am 24 Dezember 2020, 13:11:23
Hallo Thomas,

danke für den Hinweis.
Offenbar verliert der passive Modus die Synchronisation, da in Deinem Fall ein Master seinen Request mehrfach in schneller Folge wiederholt und das Modul dann den zweiten Request als Response interpretieren möchte. Daraufhin findet es den Einstieg nicht mehr und versucht immer mitten in Frames etwas gültiges zu finden. Den Fall hatte ich so noch nicht, aber das sollte sich verbessern lassen.
Leider ist das nicht ganz trivial, da man einem Frame nicht direkt ansehen kann, ob es ein Request oder ein Response ist. Das Modul müsste also im Zweifel beides ausprobieren.
Ich melde mich mit einer neuen Version sobald ich das umgesetzt und grob getestet hab.

Gruss
   Stefan
Titel: Antw:ModbusAttr als "passive Listener" hängt nach einiger Zeit
Beitrag von: Funnel am 24 Dezember 2020, 15:59:29
Hallo Stefan,

danke zunächst mal. Wenn du weitere Informationen, Logs oder sonstiges brauchst melde dich. Interpretierst Du aus meinem Log das der Modbus Master einen 2. Request schickt obwohl der Slave noch nicht geantwortet hat?

Schöne Feiertage.

Gruß
Thomas
Titel: Antw:ModbusAttr als "passive Listener" hängt nach einiger Zeit
Beitrag von: StefanStrobel am 25 Dezember 2020, 10:28:15
Hallo Thomas,

ja, das sieht man an den empfangenen Frames im Log.
Die CRC ist eigentlich ok, nur wird das Frame als Response interpretiert.

Gruss
   Stefan
Titel: Antw:ModbusAttr als "passive Listener" hängt nach einiger Zeit
Beitrag von: StefanStrobel am 25 Dezember 2020, 20:33:23
Hallo Thomas,

bitte probier doch mal die neue Version des Moduls aus dem Forum (https://forum.fhem.de/index.php/topic,75638.615.html)
und setz das Attribut skipGarbage für das IO-Device auf 1.
Damit sollte sich das Modul besser wieder synchronisieren.
Zudem erleichtert mir das die Fehlersuche, da sich seit der bisher eingecheckten Version doch sehr viel weiterentwickelt hat.

Gruss
   Stefan