CUL868 disconnected nach FB7390 reboot

Begonnen von crazystone, 15 August 2013, 10:19:23

Vorheriges Thema - Nächstes Thema

crazystone

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

rudolfkoenig

> 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.

crazystone

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

PeMue

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
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

crazystone

...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

crazystone

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

PeMue

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 perlausreichen, wenn mit
ps w | grep perl sicher ist, dass fhem noch läuft.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

crazystone

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ß

crazystone

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

rudolfkoenig

> 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.

crazystone

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

crazystone

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?

rudolfkoenig

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.

crazystone

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.