Ich stehe vor folgendem Problem:
Ich lese einige Zähler und Temperatursensoren über drei Pins per 1wire mit einem Arduino UNO und einem WIZ5500 Ethernetshield aus.
Dieses System ist absolut zuverlässig, solange ich nicht FHEM neu starte. Sobald ich das mache, bleibt der state des Firmata Device auf Listening und es kommt zu keiner Verbindung mehr.
Die LED der Netzwerkschnittstelle blinkt aber nach wie vor im ca. Sekundentakt und der Arduino ist nach wie vor im Netzwerk per Ping erreichbar.
Im log stehen nur mehr diese Zeilen:
2021.01.02 16:17:24 1: 3030 disconnected, waiting to reappear (FIRMATA_192.168.64.129_1026)
2021.01.02 16:20:17 1: OWX_FRM::Write attempted to ill-defined device OW_Ch2
2021.01.02 16:20:18 1: OWX_FRM::Write attempted to ill-defined device OW_Ch2
2021.01.02 16:20:25 1: OWX_FRM::Write attempted to ill-defined device OW_Ch2
2021.01.02 16:20:26 1: OWX_FRM::Write attempted to ill-defined device OW_Ch2
2021.01.02 16:20:34 1: OWX_FRM::Write attempted to ill-defined device OW_Ch2
2021.01.02 16:20:34 1: OWX_FRM::Write attempted to ill-defined device OW_Ch3
2021.01.02 16:20:35 1: OWX_FRM::Write attempted to ill-defined device OW_Ch2
2021.01.02 16:20:36 1: OWX_FRM::Write attempted to ill-defined device OW_Ch3
2021.01.02 16:20:37 1: OWX_FRM::Write attempted to ill-defined device OW_Ch2
(Ch1 ist synchon und Ch2 und Ch3 sind asynchron. Warum auch immer der Ch1 hier nicht auftaucht.)
Wenn ich dann den Arduino stromlos mache und wieder anstecke funktioniert wieder alles.
Es sieht so aus als würde der Arduino nicht merken, dass seine TCP-Verbindung weg ist und diese nicht neu aufgebaut wird wenn sie weg ist. Ist doch TCP, oder?
Ein weiteres Kuriosum ist, dass der state von Ch2 und Ch3 error: Error IODev FIRMATA is not connected lautet aber alles einwandfrei funktioniert. Ch1 ist Initialized.
Kennt jemand dieses Phänomen oder hat eine Idee für mich?
Grüße
Hugo
Ich muss das Thema nochmal aufwärmen, da ich noch immer keine Lösung für das Problem habe.
Mir fällt auch nichts mehr ein, wie ich den Fehler suchen sollte.
Anbei das Listing von zwei 1wire-Kanälen:
OW_Ch1 (STATE initialized):
Internals:
ALARMED 0
ASYNCHRONOUS 0
DEF FIRMATA:8
DeviceName FIRMATA:8
FRM_OWX_CORRELATIONID 356
FRM_OWX_CURRDEV 28.38E0BD030000.60
FUUID 5f75ccd4-f33f-faac-3b80-e04529e3113199b3
HWDEVICE FIRMATA
INITDONE 0
INTERFACE firmata
IODev FIRMATA
NAME OW_Ch1
NR 487
PARTIAL
PIN 8
PRESENT 0
ROM_ID FF
STATE Initialized
TYPE OWX
interval 300
timeout 2
DEVHASH:
OW_Ch1 Busmaster
DEVS:
28.38E0BD030000.60
28.9CE9BD030000.13
28.65D9BD030000.73
28.CB0DBE030000.F5
FRM_OWX_REPLIES:
28.38E0BD030000.60 KF��
28.65D9BD030000.73 KF��
28.9CE9BD030000.13 KF��
28.CB0DBE030000.F5 +KF�G
FRM_OWX_REQUESTS:
Helper:
DBLOG:
state:
logdb:
TIME 1616577714.80824
VALUE error
READINGS:
2021-03-14 09:05:12 queue 0
2021-03-24 10:21:54 state error: Error IODev FIRMATA is not connected
Attributes:
IODev FIRMATA
asynchronous 0
room KG->Technik->Elektro,System->Firmata
OW_Ch2 (STATE error: Error IODev FIRMATA is not connected):
Internals:
ALARMED 0
ASYNCHRONOUS 1
BUSY 0
DEF FIRMATA:9
DeviceName FIRMATA:9
FRM_OWX_CORRELATIONID 704
FRM_OWX_CURRDEV 28.81ECA0050000.A4
FUUID 5f75cd4f-f33f-faac-d43e-a489fe0e33c25873
HWDEVICE FIRMATA
INITDONE 0
INTERFACE firmata
IODev FIRMATA
LASTSEND 1616952292.00955
NAME OW_Ch2
NR 488
PARTIAL
PIN 9
PREBUFFER 000000000�
PRESENT 0
ROM_ID FF
STATE error: Error IODev FIRMATA is not connected
TYPE OWX
interval 300
timeout 2
DEVHASH:
OW_Ch2 Busmaster
DEVS:
28.2647A0050000.3E
28.81ECA0050000.A4
28.6104A0050000.69
28.250FA0050000.B0
FRM_OWX_REPLIES:
28.250FA0050000.B0 �(����������������������
28.2647A0050000.3E F����������������������
28.6104A0050000.69 Q���������������������
28.81ECA0050000.A4 �(����������������������
FRM_OWX_REQUESTS:
Helper:
DBLOG:
state:
logdb:
TIME 1616577714.82712
VALUE error
QUEUE:
READINGS:
2021-03-28 19:24:50 queue 3
2021-03-24 10:21:54 state error: Error IODev FIRMATA is not connected
Attributes:
IODev FIRMATA
asynchronous 1
room KG->Technik->Elektro,System->Firmata
Es funktionieren alle Kanäle nach dem Neustart, aber der STATE stimmt nur bei OW_Ch1 (obwohl auch hier state fehlerhaft ist)
Ich wäre für alle Hinweise dankbar. Der "Anzeigefehler" wäre mir noch relativ egal, aber die nicht wieder aufgebaute Verbindung nach dem FHEM-Neustart ist mehr als lästig, da in Zukunft wichtige Systeme per Firmata geschaltet werden (sollen).
Grüße
Hugo
ein ähnliches Phänomen habe ich bei einem POWER OFF eines FIRMATA I2C_MCP23017 Devices. Da gehen in FHEM die Attribute verlohren. Es kann also keine Verbindung mehr zum device aufgenommen werden. Der OWX hingegen liefert dennoch weiterhin Daten.