Hallo Leute,
ich habe meine Heizung über VCONTROL an einem 'FTDI USB Serial Device converter' angeschlossen.
Das funktioniert prima für ca. einen Tag, dann disconnected sich der FTDI:
[250692.309204] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[250692.309762] ftdi_sio 1-1.3:1.0: device disconnected
Ich habe ein kleines C Programm mit dem man die USB Schnittstelle reseten kann. Über einen Watchdog wird dieses bei zu langem Ausblenden von Nachrichten ausgeführt.
.* 00:10:00 .*Heizung.UpdateTime.* { fhem("trigger Watchdog_Heizung ."); fhem("set pushmsg msg \"Heizung: Disconnected ... Reset Interface ...\""); system("sudo usb_reset /dev/bus/usb/001/006"); }
Der Reset funktioniert und auch die Heizung meldet sich wieder, aber FHEM wird beendet und startet neu.
Hier dmesg:
[250692.309204] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[250692.309762] ftdi_sio 1-1.3:1.0: device disconnected
[250692.384637] usb 1-1.3: reset full-speed USB device number 6 using ehci-pci
[250692.478899] ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
[250692.479172] usb 1-1.3: Detected FT232RL
[250692.479196] usb 1-1.3: Number of endpoints 2
[250692.479213] usb 1-1.3: Endpoint 1 MaxPacketSize 64
[250692.479230] usb 1-1.3: Endpoint 2 MaxPacketSize 64
[250692.479246] usb 1-1.3: Setting MaxPacketSize 64
[250692.480177] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB1
[250692.693158] init: fhem main process (27562) terminated with status 9
[250692.693210] init: fhem main process ended, respawning
Warum ist das so und kann/muss man dagegen etwas tun?
Danke und lieben Gruß
Oli
Mir ist noch unklar, ob FHEM "freiwillig" stirbt (evtl. Problem im Modul oder im fhem.pl), oder ob es abgeschossen wird.
Steht was merkwuerdiges im FHEM-Log?
Hallo Rudi,
das einzige was mir bis jetzt aufgefallen ist, war dass meine VCONTROL define weg war nach dem Neustart. Ich beobachte das weiter.
Ich hab dann versucht das Skript so zu ändern, dass ich vor dem Reset fhem herunterfahre und danach wieder rauf. Runter geht, aber rauf nicht mehr. Von der Kommandozeile aufgerufen alles iO. Komisch.
#!/bin/bash
service fhem stop
usb_reset /dev/bus/usb/001/006
service fhem start
Aufgerufen wurde das Sktipt korrekt mit sudo.
Gruß
Oli
Mittlerweile weiss ich warum VCONTROL weg war.
Beim Reset der USB-Schnittstelle scheint /dev/ttyUSB0 noch offen zu sein oder belegt. Es wird dann /dev/ttyUSB1 angelegt und fhem startet neu.
Bei Einlesen der fhem.cfg wird versucht USB0 zu öffnen, was aber nicht geht.
Ergo bleibt 'define Heizung VCONTROL ...' wirkungslos.
Ich versuche nun über 'delete Heizung' VCONTROL erst zu beenden und dann den Reset durchzuführen.
Als Workaround falls der FTDI auf /dev/ttyUSB1 gelegt wird, habe ich das heizung_reset.sh Skript angepasst:
#!/bin/bash
usb_reset /dev/bus/usb/001/006
if [ ! -f /dev/ttyUSB0 ]
then
usb_reset /dev/bus/usb/001/006
fi
Damit prüfe ich ob /dev/ttyUSB0 existiert und falls nicht wird ein erneuter Reset der USB-Schnittstelele gefahren.
Der Watchdog sieht jetzt so aus:
define Watchdog_Heizung watchdog .* 00:10:00 .*Heizung.UpdateTime.* { fhem("trigger Watchdog_Heizung .");; fhem("delete Heizung");; fhem("sleep 5");; fhem("set pushmsg msg \"Heizung: Disconnected ... Reset Interface ...\"");; system("sudo /opt/fhem/heizung_reset.sh");; fhem("rereadcfg");; }
attr Watchdog_Heizung regexp1WontReactivate 1
Mal schauen ob das klappt.
Gruß
Oli