Hallo,
jetzt kommt ja ein FB reboot nicht so häufig vor, jedoch eben bei einem Stromausfall schon. Danach ist es mir jetzt schon zweimal passiert, dass der CUL disconnected bleibt und ich ihn nur durch ziehen und wieder einstecken wiederbeleben kann. Gibt es einen eleganteren Weg? Kann ich im disconnected state etwas zur Analyse beitragen?
Viele Grüße und Danke!
Thorsten
> Gibt es einen eleganteren Weg?
Man koennte
modify CULname <device>@<baudrate> <fhtid>
probieren, wobei die Parameter exakt denen in define entsprechen.
Das FHEM-Modul wird eine evtl. vorhandene Verbindung schliessen, und das Geraet erneut oeffnen.
> Kann ich im disconnected state etwas zur Analyse beitragen?
Ja, indem man die Fehlermeldung aus dem Fhem-Log hier postet.
Also, jetzt war es wieder soweit. FritzBox 7390 reboot command auf der shell (wegen abgestürztem FHEM) und danach wird der CUL868 (mein CUL_0) nicht erkannt. Diesmal habe ich daran gedacht, das Log anzuschauen:
2013.08.25 09:42:27 3: Opening CUL_0 device /dev/ttyACM0
2013.08.25 09:42:27 3: Can't open /dev/ttyACM0: Invalid argument
2013.08.25 09:42:27 2: CUL_0: Mode HomeMatic not supported
2013.08.25 09:42:27 3: CUL_0: Mode HomeMatic not supported
Normalerweise steht im Log (wenn es funktioniert):
2013.08.16 10:17:22 3: Opening CUL_0 device /dev/ttyACM0
2013.08.16 10:17:23 3: Setting CUL_0 baudrate to 9600
2013.08.16 10:17:23 3: CUL_0 device opened
2013.08.16 10:17:23 3: CUL_0: Possible commands: BCFiAZEGMRTVWXefmltux
2013.08.16 10:17:23 2: Switched CUL_0 rfmode to HomeMatic
Ich habe den modify probiert mit
modify /dev/ttyACM0@9600 1034
bekomme aber immer den Fehler im Log
2013.08.25 09:54:12 3: Opening CUL_0 device /dev/ttyACM0
2013.08.25 09:54:12 3: Can't open /dev/ttyACM0: Invalid argument
Fehler lässt sich nur beheben, in dem ich den CUL nochmals abziehe und wieder anstecke.
Viele Grüße und Danke
Hallo Thorsten,
warum gehst Du nicht auf die Konsole und startest einfach fhem neu? Dann gleich einen reboot machen finde ich ein bisschen "overkill" ...
Leider kenne ich die FritzBox 7390 nicht, sonst könnte ich Dir sagen, wie es geht.
Gruß PeMue
...noch zur Ergänzung oben:
Nach Abziehen und wieder anstecken steht im Log
2013.08.25 10:02:29 3: Setting CUL_0 baudrate to 9600
2013.08.25 10:02:29 1: /dev/ttyACM0 reappeared (CUL_0)
2013.08.25 10:02:29 3: CUL_0: Possible commands: BCFiAZEGMRTVWXefmltux
Hallo PeMue,
das hatte ich ursprünglich versucht. Kannst Du hier mal Deinen entsprechenden Konsolenbefehl posten? Ich betreibe den FHEM auf einer FB7390. Der Aufruf des Startscripts hat nicht wirklich funktioniert. Habe diverse Fehlermeldungen bekommen.
Danke im Voraus!
Thorsten
Hallo Thorsten,
bei meiner FritzBox 7170 sieht das Skript zum Stoppen von fhem so aus:
#!/bin/sh
# FritzBox 7390 and 7270 V2
# root=`df | sed -n -e '/ftp\//s/.*ftp\///p'`
# home=/var/InternerSpeicher/$root/fhem
# FritzBox 7170, 7270 V1/V2 df not availabe,
# replace home with the hardcoded path:
home=/var/media/ftp/Storage-01/fhem
cd $home
killall perl
fb7170/busybox swapoff swapfile
echo "fhem stopped ..."
Im Prinzip müsste ein
killall perl
ausreichen, wenn mit
ps w | grep perl
sicher ist, dass fhem noch läuft.
Gruß PeMue
Vielen Dank!
Mein Problem lag eigentlich eher beim Neustart, nach dem Absturz. Mittels deines grep habe ich jetzt aber gesehen, dass der Prozess läuft als
/opt/bin/perl /usr/bin/fhem.pl /etc/fhem.cfg
Ist das der richtige Befehl, um als eingeloggter Benutzer mit Admin-Rechten FHEM neu zu starten?
Gruß
In jedem Fall wäre ich Rudi nochmals dankbar für ein Statement zum Thema CUL-Initialisierung nach reboot. Man weiß ja nie, was während der Abwesenheit zu Hause alles passiert...
Viele Grüße und Danke
Thorsten
> 2013.08.25 09:42:27 3: Can't open /dev/ttyACM0: Invalid argument
Immerhin ist FHEM nicht direkt an dem Problem schuld, sondern das Betriebsystem.
Hilfreich waere im Fehlerfall:
- zu wissen, ob weitere Geraete der Sorte /dev/ttyACM* gibt, z.Bsp /dev/ttyACM1.
- lsusb output hier posten
- lsmod output, insb. ob cdc_acm.ko geladen ist
- "rmmod cdc_acm" gefolgt von "modprobe cdc_acm" testen.
Hallo Rudi,
also angeschlossen habe ich ausser dem CUL noch den RFXCOM, der sich aber als /dev/ttyUSB0 im Fehlerfall wie im Gutfall danach problemlos meldet.
lsusb:
im Gutfall:
BUS=002
DEV=001
VID=1d6b
PID=0001
CLS=09
SCL=00
SPEED='full'
VER='1.1'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00
BUS=001
DEV=001
VID=1d6b
PID=0002
CLS=09
SCL=00
SPEED='hi'
VER='2.0'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00
BUS=001
DEV=002
VID=05e3
PID=0605
CLS=09
SCL=00
SPEED='hi'
VER='2.0'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00
BUS=001
DEV=004
VID=03eb
PID=204b
CLS=02
SCL=00
SPEED='full'
VER='1.1'
ISOC=0
INUM=2
ICLS1=02
ISCL1=02
ICLS2=10
ISCL2=00
BUS=001
DEV=003
VID=0403
PID=6001
CLS=00
SCL=00
SPEED='full'
VER='2.0'
ISOC=0
INUM=1
ICLS1=255
ISCL1=255
lsmod im Gutfall:
Module Size Used by Tainted: P
atmdriver_lkm 1804672 0
ath_pktlog 16784 0
umac 621888 1 ath_pktlog
ath_dev 201792 2 ath_pktlog,umac
ath_dfs 48704 1 ath_dev
ath_spectral 62272 1 ath_dev
ath_rate_atheros 28656 2 ath_pktlog,ath_dev
ath_hal 646544 4 ath_pktlog,umac,ath_dev,ath_rate_atheros
asf 10576 5 umac,ath_dev,ath_dfs,ath_spectral,ath_hal
adf 19632 3 umac,ath_dev,ath_hal
cdc_acm 13264 2
sch_sfq 6272 4
sch_llq 8736 1
sch_tbf 4960 1
avm_pa_fusiv 16896 0
aae 132288 4 umac,ath_dev,ath_dfs,ath_hal
ftdi_sio 32784 1
usbserial 26608 3 ftdi_sio
kdsldmod 1387824 4
ohci_hcd 17776 0
ehci_hcd 31184 0
usbcore 120512 6 cdc_acm,ftdi_sio,usbserial,ohci_hcd,ehci_hcd
ramzswap 16448 1
lzo_decompress 2272 1 ramzswap
lzo_compress 2048 1 ramzswap
dect_io 12192 2
avm_dect 238784 1 dect_io
capi_codec 354096 0
isdn_fbox_fon5 741056 6
pcmlink 303648 4 avm_dect,capi_codec,isdn_fbox_fon5
Piglet_noemif 29264 0
bmedrv 4784 0
opensrc_lkm 1632 1 bmedrv
aclap_driver_lkm 19760 2 atmdriver_lkm,umac
sysKCode_lkm 23536 0
ethdriver_lkm 44048 1 aclap_driver_lkm
periap_driver_lkm 14848 1 ethdriver_lkm
timers_lkm 5264 2 atmdriver_lkm,ethdriver_lkm
bmdriver_lkm 12976 1 atmdriver_lkm
ap2ap_lkm 24192 7 atmdriver_lkm,umac,kdsldmod,aclap_driver_lkm,sysKCode_lkm,ethdriver_lkm,bmdriver_lkm
fusivlib_lkm 59472 11 atmdriver_lkm,umac,avm_pa_fusiv,kdsldmod,bmedrv,aclap_driver_lkm,sysKCode_lkm,ethdriver_lkm,periap_driver_lkm,bmdriver_lkm,ap2ap_lkm
rtc_avm 5296 1 pcmlink
rtc_core 13680 1 rtc_avm
led_modul_Fritz_Box_7390 79488 6
Werde das im Fehlerfall nochmals wiederholen (nachdem ich nun weiß, wie es geht).
Viele Grüße
So nun durch FB reboot von der Konsole wieder provoziert:
lsusb im Schlechtfall:
BUS=002
DEV=001
VID=1d6b
PID=0001
CLS=09
SCL=00
SPEED='full'
VER='1.1'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00
BUS=001
DEV=001
VID=1d6b
PID=0002
CLS=09
SCL=00
SPEED='hi'
VER='2.0'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00
BUS=001
DEV=002
VID=05e3
PID=0605
CLS=09
SCL=00
SPEED='hi'
VER='2.0'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00
BUS=001
DEV=003
VID=0403
PID=6001
CLS=00
SCL=00
SPEED='full'
VER='2.0'
ISOC=0
INUM=1
ICLS1=255
ISCL1=255
und lsmod im Schlechtfall:
Module Size Used by Tainted: P
ath_pktlog 16784 0
umac 621888 1 ath_pktlog
atmdriver_lkm 1804672 0
ath_dev 201792 2 ath_pktlog,umac
ath_dfs 48704 1 ath_dev
ath_spectral 62272 1 ath_dev
ath_rate_atheros 28656 2 ath_pktlog,ath_dev
ath_hal 646544 4 ath_pktlog,umac,ath_dev,ath_rate_atheros
asf 10576 5 umac,ath_dev,ath_dfs,ath_spectral,ath_hal
adf 19632 3 umac,ath_dev,ath_hal
cdc_acm 13264 0
sch_sfq 6272 4
sch_llq 8736 1
sch_tbf 4960 1
avm_pa_fusiv 16896 0
aae 132288 4 umac,ath_dev,ath_dfs,ath_hal
ftdi_sio 32784 1
usbserial 26608 3 ftdi_sio
kdsldmod 1387824 4
ohci_hcd 17776 0
ehci_hcd 31184 0
usbcore 120512 6 cdc_acm,ftdi_sio,usbserial,ohci_hcd,ehci_hcd
ramzswap 16448 1
lzo_decompress 2272 1 ramzswap
lzo_compress 2048 1 ramzswap
dect_io 12192 2
avm_dect 238784 1 dect_io
capi_codec 354096 0
isdn_fbox_fon5 741056 6
pcmlink 303648 4 avm_dect,capi_codec,isdn_fbox_fon5
Piglet_noemif 29264 0
bmedrv 4784 0
opensrc_lkm 1632 1 bmedrv
aclap_driver_lkm 19760 2 umac,atmdriver_lkm
sysKCode_lkm 23536 0
ethdriver_lkm 44048 1 aclap_driver_lkm
periap_driver_lkm 14848 1 ethdriver_lkm
timers_lkm 5264 2 atmdriver_lkm,ethdriver_lkm
bmdriver_lkm 12976 1 atmdriver_lkm
ap2ap_lkm 24192 7 umac,atmdriver_lkm,kdsldmod,aclap_driver_lkm,sysKCode_lkm,ethdriver_lkm,bmdriver_lkm
fusivlib_lkm 59472 11 umac,atmdriver_lkm,avm_pa_fusiv,kdsldmod,bmedrv,aclap_driver_lkm,sysKCode_lkm,ethdriver_lkm,periap_driver_lkm,bmdriver_lkm,ap2ap_lkm
rtc_avm 5296 1 pcmlink
rtc_core 13680 1 rtc_avm
led_modul_Fritz_Box_7390 79488 6
Habe danach "rmmod cdc_acm" gefolgt von "modprobe cdc_acm" eingegeben. Keine Fehlermeldung aber auch keine Änderung.
Und jetzt?
In lsusb ist zu sehen, dass das CUL (VID=03eb PID=204b) im Fehlerfall gar nicht aufgefuehrt ist, ergo das USB-Sybsystem (kommt vor dem speziellen Treiber wie cdc_acm.ko) es nicht erkannt hat.
Vielleicht kann man es mit einem kompletten reset des USB Subsystems (rmmod cdc_acm ftdi_sio ohci_hcd ehci_hcd usbcore gefolgt von modprobe cdc_acm) heilen. Sonst habe ich keine Idee.
Also wenn ich das im Fehlerfall aufrufe bringt der rmmod:
rmmod: can't unload 'ftdi_sio': Resource temporarily unavailable
Habe danach noch modprobe wie beschrieben gemacht, hat aber nichts gebracht. CUL bleibt disconnected.