[ModbusAttr]

Begonnen von Awtomat, 12 April 2025, 00:53:38

Vorheriges Thema - Nächstes Thema

Awtomat

Hallo zusammen,

ich betriebe einen Modbus um diverse Arduino Eigenbausensoren in Fhem zu integrieren. Fhem als Master ruft hierbei die Daten alle 600s vom Arduino ab. Das funktioniert soweit sehr gut. Allerdings ist mir aufgefallen wenn ich den Sensor vom Bus trenne blockiert mein komplettes Fhem und mein Log ist voll mit folgenden Meldungen:

2025.04.12 00:26:37 2: After sleep: Timeout in Readanswer
2025.04.12 00:26:39 2: After sleep: Timeout in Readanswer
2025.04.12 00:26:41 2: After sleep: Timeout in Readanswer
2025.04.12 00:26:43 2: After sleep: Timeout in Readanswer
2025.04.12 00:26:45 2: After sleep: Timeout in Readanswer
2025.04.12 00:26:47 2: After sleep: Timeout in Readanswer

Das ganze alle 2s was ja dem default Timeout entspricht. Ich hatte den Wert mal auf 10s angepasst, dann kommen die Meldungen auch alle 10s.
Im Interface Modul ist über Attribut retriesAfterTimeout = 0 eingestellt dass die Meldungen eigentlich nicht wiederholt gesendet werden sollen.
Ich habe aber irgendwie den Eindruck dass immer versucht wird die Meldungen in Endlosschleife neu zu senden (Tx Led an meinen RS485 USB Konverter leuchtet auch regelmäßig auf)

Wenn ich den Sensor wieder verbinde löst sich das Problem übrigens nicht. Fhem bleibt weiterhin blockiert. Erst nach einem Neustart löst sich das ganze.

Hier noch ein Log Auszug mit Verbose 5 was zwischen 2 Meldungen passiert:
2025.04.12 00:44:51 2: After sleep: Timeout in Readanswer
2025.04.12 00:44:51 4: Buero_Multisensor: set called with PWM5 (h9) setVal = 10
2025.04.12 00:44:51 5: Buero_Multisensor: GetSetChecks with force
2025.04.12 00:44:51 5: Buero_Multisensor: GetSetChecks returns success
2025.04.12 00:44:51 5: Buero_Multisensor: perl expression eval evaluated package main; $val/100*255 to 25.5
2025.04.12 00:44:51 5: Buero_Multisensor: set packed hex 32352e35 with n to hex 0019
2025.04.12 00:44:51 4: Buero_Multisensor: DoRequest called from SetLDFn created new request, read buffer empty,
request: id 2, write fc 6 h9, len 1, value 0019, master device Buero_Multisensor, reading PWM5 (set PWM5)
2025.04.12 00:44:51 5: Modbus: QueueRequest called from DoRequest with h9, qlen 0 from master Buero_Multisensor through io device Modbus
2025.04.12 00:44:51 5: Modbus: ProcessRequestQueue called from QueueRequest as direct:Modbus, qlen 1, force, request: request: id 2, write fc 6 h9, len 1, value 0019, master device Buero_Multisensor, reading PWM5 (set PWM5), queued 0.00 secs ago
2025.04.12 00:44:51 5: Modbus: checkDelays sendDelay, last send to same device was 2.028 secs ago, required delay is 0.1
2025.04.12 00:44:51 5: Modbus: checkDelays commDelay, last communication with same device was 2.013 secs ago, required delay is 0.1
2025.04.12 00:44:51 5: Modbus: checkDelays clientSwitchDelay is not relevant
2025.04.12 00:44:51 5: Modbus: checkDelays busDelayRead is not required
2025.04.12 00:44:51 4: Modbus: ProcessRequestQueue (V4.5.6 - 7.11.2023) qlen 1, sending 0206000900199831 via /dev/modbus@38400, read buffer empty,
request: id 2, write fc 6 h9, len 1, value 0019, master device Buero_Multisensor, reading PWM5 (set PWM5), queued 0.02 secs ago
2025.04.12 00:44:51 5: Modbus: Send called from ProcessRequestQueue
2025.04.12 00:44:51 5: DevIo_SimpleWrite Modbus: 0206000900199831
2025.04.12 00:44:51 5: Modbus: ReadAnswer called from SetLDFn
2025.04.12 00:44:51 5: Modbus: ReadAnswer remaining timeout is 1.98135018348694
2025.04.12 00:44:51 5: Modbus: ReadAnswer got: 00
2025.04.12 00:44:51 5: Modbus: ParseFrameStart called from ReadAnswer protocol RTU expecting id 2
2025.04.12 00:44:51 5: Modbus: ReadAnswer got no valid frame after HandleFrameStart, wait for more data
2025.04.12 00:44:51 5: Modbus: ReadAnswer remaining timeout is 1.97700619697571
2025.04.12 00:44:53 4: Modbus: Timeout in Readanswer, current frame / read buffer: 00,
request: id 2, write fc 6 h9, len 1, value 0019, master device Buero_Multisensor, reading PWM5 (set PWM5), queued 2.02 secs ago, sent 2.00 secs ago
2025.04.12 00:44:53 5: Modbus: DropFrame called from ReadAnswer - drop 00
2025.04.12 00:44:53 2: After sleep: Timeout in Readanswer


Jemand eine Idee was ich noch testen könnte um das Problem zu lösen?