Ich betreibe einen USB-WDE1 an einem Sheeva plug an der Device /dev/ttyUSB0.
Linux plug 2.6.32-5-kirkwood #1 Tue Mar 8 10:56:14 UTC 2011 armv5tel GNU/Linux
Aus fhem.cfg:
---------------------------------
...
define USBWDE1 USBWX /dev/ttyUSB0
...
---------------------------------
Wenn ich den Sheeva resette mit
$ sudo shutdown -r now
läuft fhem nachher mit dem USB-WDE1.
Wenn jedoch der Strom ausfällt oder ich einen Power Cycle mache,
kann fhem nicht mehr mit dem USB-WDE1 kommunizieren.
Ich muss dann den USB-WDE1 ein- und wieder ausstecken.
Dann geht es wieder.
Nun die Frage:
Kann man dieses "ein- und wieder ausstecken" auch per Software tun?
Ich habe folgende zwei Möglichkeiten gefunden:
(1)
http://www.linuxforums.org/forum/miscellaneous/98253-turn-off-power-usb-port.html
$ echo suspend | sudo tee /sys/bus/usb/devices/1-1/power/level
und dann
$ echo on | sudo tee /sys/bus/usb/devices/1-1/power/level
Nach diesen Befehlen ist das Devicefile /dev/ttyUSB0 weg!
(2)
http://tiebing.blogspot.com/2011/07/simulate-unplug-usb-device-on-linux-usb.html
$ sudo usbreset /dev/ttyUSB0
Resetting USB device /dev/ttyUSB0
Error in ioctl: Invalid argument
$
Das eigentliche ioctl Kommando im C-Programm ist:
rc = ioctl(fd, USBDEVFS_RESET, 0);
Kann mir da jemand helfen.
Oder gibt es eine andere Möglichkeit, dass fhem nach einem Power Cycle mit
dem USB-WDE1 kommunizieren kann?
Grüessli
--
kurt.alfr...@gmail.com
Mit "Power Cycle" meine ich, einen Stromausfall simulieren.
Also einfach Steckerleiste wo die Geräte dran sind aus- und wieder einstecken.
Ich sag vielleicht besser "Cold Power Cycle".
> Welche Version von USBWX hast Du im Einsatz? Von wann ist Dein
> fhem.pl? Ich würde vorschlagen, dass Du Dir die neueste Version von
> USBWX aus dem CVS holst und ausprobierst. Seit Revision 1.3 hatte ich
> die Reconnect und Init-Funktionen abgeändert.
Wo kann man die Revisionsnummer herauslesen?
-rwxr-xr-x 1 root root 56172 Jun 7 22:47 /usr/bin/fhem.pl
-rw-r--r-- 1 root root 15946 Jun 8 02:07 /usr/share/fhem/FHEM/70_USBWX.pm
Das Logfile nach einem
shutdown -r now sieht so aus:
-------------------------------------------------------------------------------------
2011.10.26 00:03:26 0: Server shutdown
2011.10.26 00:03:58 3: USBWX opening USBWDE1 device /dev/ttyUSB0
2011.10.26 00:03:58 2: USBWX opened device /dev/ttyUSB0
2011.10.26 00:03:59 2: FHEMWEB port 8083 opened
2011.10.26 00:03:59 2: FHEMWEB port 8084 opened
2011.10.26 00:03:59 0: Server started (version 5.0 from 2010-08-15
($Id: fhem.pl,v 1.110 2010-08-14 10:35:12 rudolfkoenig Exp $), pid
562)
2011.10.26 00:04:02 2: USBWX unknown: 'WRONG VAL'
2011.10.26 00:04:02 2: USBWX unknown: 'WRONG CMD'
2011.10.26 00:04:02 2: USBWX unknown: 'WRONG CMD'
2011.10.26 00:04:02 2: USBWX unknown: 'WRONG CMD'
2011.10.26 00:04:02 2: USBWX unknown: 'WRONG CMD'
2011.10.26 00:04:02 2: USBWX unknown: 'WRONG CMD'
2011.10.26 00:04:02 2: USBWX unknown: 'WRONG CMD'
2011.10.26 00:04:02 2: USBWX unknown: 'WRONG CM'
2011.10.26 00:04:04 1: USBWX Fullbuf-Error rmsg='FullBuff->Reset'
2011.10.26 00:04:04 1: USBWX closing device
2011.10.26 00:04:04 1: USBWX dev='/dev/ttyUSB0' name='USBWDE1'
disconnected, waiting to reappear
2011.10.26 00:04:04 1: USBWX: closing /dev/ttyUSB0
2011.10.26 00:04:09 1: USBWX opening device
2011.10.26 00:04:09 3: USBWX opening USBWDE1 device /dev/ttyUSB0
2011.10.26 00:04:09 2: USBWX opened device /dev/ttyUSB0
2011.10.26 00:04:12 2: USBWX in Mode LogView found. rmsg=Mode:LogView
-------------------------------------------------------------------------------------
Mit Cold Power Cycle siehts so aus:
-------------------------------------------------------------------------------------
2011.10.26 00:12:02 3: USBWX opening USBWDE1 device /dev/ttyUSB0
2011.10.26 00:12:02 2: USBWX opened device /dev/ttyUSB0
2011.10.26 00:12:02 2: FHEMWEB port 8083 opened
2011.10.26 00:12:02 2: FHEMWEB port 8084 opened
2011.10.26 00:12:02 0: Server started (version 5.0 from 2010-08-15
($Id: fhem.pl,v 1.110 2010-08-14 10:35:12 rudolfkoenig Exp $), pid
568)
-------------------------------------------------------------------------------------
und keine Werte werden empfangen.
Wenn ich dann den USB-WDE1 ein- und ausstecke geht es so weiter:
-------------------------------------------------------------------------------------
2011.10.26 00:24:57 1: USBWX dev='/dev/ttyUSB0' name='USBWDE1'
disconnected, waiting to reappear
2011.10.26 00:24:57 1: USBWX: closing /dev/ttyUSB0
2011.10.26 00:25:02 1: USBWX /dev/ttyUSB0 reappeared (USBWDE1)
2011.10.26 00:25:02 2: USBWX in Mode LogView found. rmsg=Mode:LogView
-------------------------------------------------------------------------------------
und es werden Werte empfangen.
Das sieht dann beim /var/log/fhem/USBWX_1-2011.log so aus:
2011-10-26_00:01:39 USBWX_1 dewpoint: 5.0
2011-10-26_00:01:39 USBWX_1 T: 7.4 H: 85
2011-10-26_00:07:35 USBWX_1 temperature: 7.3
2011-10-26_00:07:35 USBWX_1 humidity: 85
2011-10-26_00:07:35 USBWX_1 dewpoint: 5.0
2011-10-26_00:07:35 USBWX_1 T: 7.3 H: 85
2011-10-26_00:10:32 USBWX_1 temperature: 7.2
2011-10-26_00:10:32 USBWX_1 humidity: 85
2011-10-26_00:10:32 USBWX_1 dewpoint: 4.9
2011-10-26_00:10:32 USBWX_1 T: 7.2 H: 85
2011-10-26_00:25:17 USBWX_1 temperature: 7.1
2011-10-26_00:25:17 USBWX_1 humidity: 85
2011-10-26_00:25:17 USBWX_1 dewpoint: 4.8
2011-10-26_00:25:17 USBWX_1 T: 7.1 H: 85
> Ansonsten käme für einen Test noch fhem.pl oder Linux in Frage. Hier
> gab es mal ein Problem mit fork() und der Initialisierung von Devices
> unter bestimmten Linux-Versionen. Rudi hatte extra fhem-pl angepasst.
> Ich selbst setze allerdings auf meinem Produktivsystem nicht die
> neueste FHEM-Version ein. Ich wechsle nicht so häufig ("never touch a
> running system". Außerdem ist jeder Wechsel wegen lokaler Änderungen
> ein Aufwand.).
Im Log meldet sich fhem mit
fhem.pl,v 1.110 2010-08-14 10:35:12
Ist ja nicht mehr das Neueste, oder?
> Hast Du eine udev-Regel für die USB-WDE1 eingerichtet, damit nach dem
> Reboot immer derselbe Devicename genommen wird und die Ownership
> entsprechend gesetzt?
Nicht dass ich wüsste.
Wo schaut man das nach?
Grüessli
--
Kurt Müller
Dann passiert das gleiche wie beim "Cold Power Cycle":
----------------------------------------------------------------------------------------------
2011.10.26 08:01:31 0: Server shutdown
2011.10.26 08:06:14 3: USBWX opening USBWDE1 device /dev/ttyUSB0
2011.10.26 08:06:14 2: USBWX opened device /dev/ttyUSB0
2011.10.26 08:06:14 2: FHEMWEB port 8083 opened
2011.10.26 08:06:14 2: FHEMWEB port 8084 opened
2011.10.26 08:06:14 0: Server started (version 5.0 from 2010-08-15
($Id: fhem.pl,v 1.110 2010-08-14 10:35:12 rudolfkoenig Exp $), pid
561)
----------------------------------------------------------------------------------------------
Keine Werte werden gemessen.
Wenn ich dann den USB-WDE1 aus- und wieder einstecke:
----------------------------------------------------------------------------------------------------------------------------------------------
2011.10.26 08:12:33 1: USBWX dev='/dev/ttyUSB0' name='USBWDE1'
disconnected, waiting to reappear
2011.10.26 08:12:33 1: USBWX: closing /dev/ttyUSB0
2011.10.26 08:12:38 1: USBWX /dev/ttyUSB0 reappeared (USBWDE1)
2011.10.26 08:12:38 2: USBWX in Mode LogView found. rmsg=Mode:LogView
----------------------------------------------------------------------------------------------------------------------------------------------
kommen auch wieder Werte.
Es scheint, dass sich mit "halt" das gleiche Verhalten ergibt wie ohne "halt".
Grüessli
--
Kurt Müller