TRX: Initialization Error

Begonnen von Tobias, 05 April 2013, 14:07:35

Vorheriges Thema - Nächstes Thema

JueFi

Hallo,

ich glaube bei mir tritt häufiger ein ähnlicher Fehler auf, wenn ich in der fhem.cfg editiert habe und mit "Save fhem.cfg" gespeichert habe.

Als Hinweis:
Ich hatte zwischendurch mal zwei weitere CUL angeschlossen, die im Moment nicht mehr dran sind.
Wenn ich "shutdown restart" mache, klappt es scheinbar immer.
Wenn ich mehrfach "Save fhem.cfg" mache klappt es auch irgendwann.
Scheint ein Timing Problem zu sein.

2014.12.26 17:56:27 1: Including fhem.cfg
2014.12.26 17:56:27 3: telnetPort: port 7072 opened
2014.12.26 17:56:27 3: WEB: port 8083 opened
2014.12.26 17:56:27 3: WEBphone: port 8084 opened
2014.12.26 17:56:27 3: WEBtablet: port 8085 opened
2014.12.26 17:56:28 2: eventTypes: loaded 1535 events from ./log/eventTypes.txt
2014.12.26 17:56:28 3: Opening CUL1 device /dev/ttyACM0
2014.12.26 17:56:28 3: Can't open /dev/ttyACM0: No such file or directory
2014.12.26 17:56:28 3: Opening CUL2 device /dev/ttyACM1
2014.12.26 17:56:28 3: Can't open /dev/ttyACM1: No such file or directory
2014.12.26 17:56:29 3: Opening TRX_0 device /dev/ttyUSB0
2014.12.26 17:56:29 3: Setting TRX_0 baudrate to 38400
2014.12.26 17:56:29 3: TRX_0 device opened
********* Diese Zeile ist nur zur optischen Unterstützung ***************
2014.12.26 17:56:29 1: TRX: Initialization Error: No character read
2014.12.26 17:56:29 1: Cannot init /dev/ttyUSB0, ignoring it (TRX_0)
2014.12.26 17:56:29 1: Including ./log/fhem.save

2014.12.26 17:56:38 1: Including fhem.cfg
2014.12.26 17:56:38 3: telnetPort: port 7072 opened
2014.12.26 17:56:38 3: WEB: port 8083 opened
2014.12.26 17:56:38 3: WEBphone: port 8084 opened
2014.12.26 17:56:38 3: WEBtablet: port 8085 opened
2014.12.26 17:56:39 2: eventTypes: loaded 1535 events from ./log/eventTypes.txt
2014.12.26 17:56:39 3: Opening CUL1 device /dev/ttyACM0
2014.12.26 17:56:39 3: Can't open /dev/ttyACM0: No such file or directory
2014.12.26 17:56:39 3: Opening CUL2 device /dev/ttyACM1
2014.12.26 17:56:39 3: Can't open /dev/ttyACM1: No such file or directory
2014.12.26 17:56:40 3: Opening TRX_0 device /dev/ttyUSB0
2014.12.26 17:56:40 3: Setting TRX_0 baudrate to 38400
2014.12.26 17:56:40 3: TRX_0 device opened
2014.12.26 17:56:40 1: TRX: Init OK
2014.12.26 17:56:40 1: TRX: Init status: '433.92MHz transceiver, firmware=231, protocols enabled: LaCrosse Hideki OREGON AC ARC X10 '
2014.12.26 17:56:40 1: Including ./log/fhem.save

Niko_K

Hallo,

ich habe mit einen RTXTRX433E besorgt, um dann damit meine Rollläden von Somfy steuern zu können.
Das funktioniert aber noch nicht ganz wie gewollt. Meine Fehlermeldung ist nämlich auch der hier angesprochene "Initialization error: No character read"

Ein paar Infos zu meinem Setup und dem (Fehl)verhalten, das bei mir auftritt.
Nach dem Verbinden des Sensors mit dem Rechner erhalte ich in meinem Linux in dmesg eine Meldung, dass der Sensor gefunden wird und per /dev/ttyUSB0 ansprechbar ist.

[5800760.652801] usb 2-1.1: new full-speed USB device number 83 using ehci-pci
[5800760.744260] usb 2-1.1: New USB device found, idVendor=0403, idProduct=6001
[5800760.744275] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[5800760.744278] usb 2-1.1: Product: RFXtrx433
[5800760.744280] usb 2-1.1: Manufacturer: RFXCOM
[5800760.744282] usb 2-1.1: SerialNumber: A1XZPWYE
[5800760.746665] ftdi_sio 2-1.1:1.0: FTDI USB Serial Device converter detected
[5800760.746687] usb 2-1.1: Detected FT232RL
[5800760.746689] usb 2-1.1: Number of endpoints 2
[5800760.746691] usb 2-1.1: Endpoint 1 MaxPacketSize 64
[5800760.746692] usb 2-1.1: Endpoint 2 MaxPacketSize 64
[5800760.746694] usb 2-1.1: Setting MaxPacketSize 64
[5800760.747187] usb 2-1.1: FTDI USB Serial Device converter now attached to ttyUSB0


Da freut man sich doch schon mal. Ich habe das übrigens direkt am PC versucht und über einen USB-Lan-Extender... beides mal selbige Meldung (was mich beim USB-Lan-Extender fast schon überrascht hat :-))

Gut... nun sollte man das Teil ja in fhem konfigurieren können.
Sicherheitshalber habe ich noch ein update all vorgenommen.
Ich musste auch noch das perl-Modul Device::SerialPort nachinstallieren (bisher verwende ich noch keine CUL, sondern einen HM-LAN Gateway und ein Brennestuhl 433Mhz LAN-Interface).

Nach diesen Installationen habe ich folgendes in meiner Konfiguration "fhem.cfg" hinzugefügt:

# RFXTRX USB Gateway (TRX)
define TRX_0 TRX /dev/ttyUSB0@38400
define FileLog_TRX_0 FileLog ./log/TRX_0-%Y.log TRX_0
attr FileLog_TRX_0 logtype text

define Stehlampe2 TRX_LIGHT ARC FF000000 light
attr Stehlampe2 IODev TRX_0

Nach einem Neustart von fhem (per service fhem stop und anschließendem service fhem start), erscheint der InitializationError in meinem Logfile.
Der Vollständigkeit halber hier der genaue Auszug:

2015.01.12 21:40:00 3: Opening TRX_0 device /dev/ttyUSB0
2015.01.12 21:40:00 3: Setting TRX_0 baudrate to 38400
2015.01.12 21:40:00 3: TRX_0 device opened
2015.01.12 21:40:01 1: TRX: Initialization Error: No character read
2015.01.12 21:40:01 1: Cannot init /dev/ttyUSB0, ignoring it (TRX_0)

Ich bin ehrlich gesagt sehr ratlos.
Nachdem ich nun ein Firmware-Update auf die letzte Version (235) des RFXTRX433E durchgeführt habe, hat sich nichts am Verhalten geändert.
Im Rfxmngr funktioniert das Gerät (allerdings auf meinem Windows-Client und nicht am Linux-Server, auf dem Fhem läuft) alles problemlos... an der Hardware wird's also nicht liegen).

Dass das Gerät "manchmal" (oder bei Verwendung von shutdown restart) initialisiert werden kann, könnte ich nicht behaupten...
... bei mir kam der Fehler bisher immer.

Was könnte ich denn als nächstes ausprobieren?
Kann ich sonst noch irgendwelche Informationen bereitstellen oder eine bestimmte Lösung testen?

LG,
Niko

Tion

#32
Hast du noch was mit USB abgeschlossen? JeeLink etc?
Auf welcher Hardware läuft Fhem??
Mehr Infos bitte.

Gruß Volker
FHEM@CT||RFXTRX,CUL868@MAX,HM-Usb,JeeLink
Jee:TX29DTH-IT||Max:Thermostat,ShutterContact,
HM:SEC-MDIR,LC-SW1-PL2,LC-Dim1TPBU-FM,PB-2-WM55
RFX:FA20RF/2, HE501EU,ITL-230,OWL Intuition-lc,YCT-100,div Brennstuhl,IT 1500
FS20:IRU,KSE||FbDect 200,EG-PM2-LAN

Niko_K

Die Infos gebe ich gerne :-)

Also die Hardware auf der FHEM läuft ist ein "echter" Server.
Hardwaretechnisch ist da ein Xeon E1220L verbaut, welcher auf einem Intel-Mainboard arbeitet und 16GB RAM zur Verfügung hat.
Das werkelt alles auf einer SSD, die unter CentOS 7 läuft (Kernel Version 3.10). Angebunden sind auch zwei RAIDs (5er RAID und 1er RAID für Backups).

USB-technisch angeschlossen ist nicht wirklich viel bzw. wurde darauf geachtet, dass alle Geräte möglichst selten aktiv sind.
Prinzipiell hängt an dem Server ein USB-Hub auf welchem dann wieder Maus und Tastatur hängen.
Dieser Hub ist aber hardware-technisch (per Kippschalter) ausgeschaltet und wird nur bei Wartung aktiviert (würde mich also wundern, wenns damit Probleme gibt).
Dann gibt's noch eine USB3-Kontrollerkarte im Server (da das das Intel-Mainboard nicht anbietet), an welchem dann eine USB-Platte für ein "externes" Backup sorgt.
Diese Festplatte ist aber auch meist vom Strom getrennt. Nur einmal im Monat erhält die Festplatte Strom und erstellt dann ein Backup (wird über eine udev-Rule gesteuert).
Das "Stromerhalten" erfolgt übrigens über FHEM. Sozusagen ein "selbstsicherndes" System :-)
Ansonsten Gibt es noch einen weiteren HDD-Controller, der über USB eingebunden ist und für Testzwecke von HDDs eingesetzt wird. Aber auch der hat im Normalfall keinen Strom...

Ein "lsusb" lieftert mir folgendes:

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 046b:ff10 American Megatrends, Inc. Virtual Keyboard and Mouse


Ein JeeLink kommt nicht zum Einsatz.
Bisher sind alle FHEM-Sender per LAN angebunden (ein HM-LAN Gateway und ein Brennstuhl Brematic 433 GW).

LG,
Niko

Niko_K

Habe heute wieder etwas Zeit zum testen gefunden.
Also dass das Device in FHEM gar nicht funktioniert kann ich revidieren.

Bei mir ist das Verhalten wie folgt:
Ich bekomme immer den InitializationError, wenn ich dehm starte, wenn mein RFXTRFX433E verbunden ist.
Mache ich aber folgende in der angegebenen Reihenfolge, dann funktioniert die Initilisierung (und wirklich nur dann).

1) RFXTRX ausstecken
2) FHEM per init-skript stoppen (oder auch per service fhem stop
3) FHEM per init-skript starten (oder auch per service fhem start). Wichtig: Hier darf der RFXTRX nicht verbunden sein
Das FHEM_Log sieht dabei wie folgt aus:

2015.01.13 23:11:44 0: Server shutdown
2015.01.13 23:12:05 1: Including fhem.cfg
2015.01.13 23:12:05 3: telnetPort: port 7072 opened
2015.01.13 23:12:05 3: WEB: port 9083 opened
2015.01.13 23:12:05 3: WEBphone: port 9084 opened
2015.01.13 23:12:05 3: WEBtablet: port 9085 opened
2015.01.13 23:12:05 2: eventTypes: loaded 275 events from ./log/eventTypes.txt
2015.01.13 23:12:05 1: HMLAN_Parse: HMLAN101 new condition disconnected
2015.01.13 23:12:05 3: Opening HMLAN101 device 192.168.0.101:1000
2015.01.13 23:12:05 3: HMLAN101 device opened
2015.01.13 23:12:05 1: HMLAN_Parse: HMLAN101 new condition init
2015.01.13 23:12:05 3: Opening TRX_0 device /dev/ttyUSB0
2015.01.13 23:12:05 3: Can't open /dev/ttyUSB0: No such file or directory
2015.01.13 23:12:05 1: Including ./log/fhem.save
2015.01.13 23:12:05 0: Server started with 52 defined entities (version $Id: fhem.pl 7528 2015-01-11 18:23:31Z rudolfkoenig $, os linux, user niko, pid 22444)
2015.01.13 23:12:05 1: HMLAN_Parse: HMLAN101 new condition ok
2015.01.13 23:12:10 3: Device CUL_HM_HM_ES_PMSw1_Pl_2C1290 added to ActionDetector with 000:10 time
2015.01.13 23:12:11 3: CUL_HM set CUL_HM_HM_ES_PMSw1_Pl_2C1290_Sw statusRequest
2015.01.13 23:12:12 3: CUL_HM set CUL_HM_HM_LC_SW1_PL2_258CDC statusRequest

4) RFXTRX per USB verbinden. Im Logfile von FHEM erscheint daraufhin:

2015.01.13 23:12:25 3: Setting TRX_0 baudrate to 38400
2015.01.13 23:12:25 1: /dev/ttyUSB0 reappeared (TRX_0)

5) "shutdown restart" ausführen (bspw. per Web-Oberfläche). Nun wird RFXTRX erkannt und initialisiert. Das Logfile beinhaltet dabei:

2015.01.13 23:12:53 0: Server shutdown
2015.01.13 23:12:55 1: Including fhem.cfg
2015.01.13 23:12:55 3: telnetPort: port 7072 opened
2015.01.13 23:12:55 3: WEB: port 9083 opened
2015.01.13 23:12:55 3: WEBphone: port 9084 opened
2015.01.13 23:12:55 3: WEBtablet: port 9085 opened
2015.01.13 23:12:55 2: eventTypes: loaded 275 events from ./log/eventTypes.txt
2015.01.13 23:12:55 1: HMLAN_Parse: HMLAN101 new condition disconnected
2015.01.13 23:12:55 3: Opening HMLAN101 device 192.168.0.101:1000
2015.01.13 23:12:55 3: HMLAN101 device opened
2015.01.13 23:12:55 1: HMLAN_Parse: HMLAN101 new condition init
2015.01.13 23:12:55 3: Opening TRX_0 device /dev/ttyUSB0
2015.01.13 23:12:55 3: Setting TRX_0 baudrate to 38400
2015.01.13 23:12:55 3: TRX_0 device opened
2015.01.13 23:12:55 1: TRX: Init OK
2015.01.13 23:12:55 1: TRX: Init status: '433.92MHz transceiver, firmware=235, protocols enabled: OREGON AC ARC X10 '
2015.01.13 23:12:55 1: Including ./log/fhem.save
2015.01.13 23:12:55 0: Server started with 52 defined entities (version $Id: fhem.pl 7528 2015-01-11 18:23:31Z rudolfkoenig $, os linux, user niko, pid 22540)
2015.01.13 23:12:55 1: HMLAN_Parse: HMLAN101 new condition ok

6) Das war's. Damit sollte RFXTRX funktionieren (habs noch nicht weiter getestet, aber zumindest sieht das Log jetzt besser aus)

Warum das genau so ist, kann ich nicht sagen.
Hat dazu jemand eine Idee?

LG,
Niko

Tion

Vielleicht belegt beim Start irgendwas dein USB0
Binde ihn doch mal über seine Serial ID an
http://forum.fhem.de/index.php/topic,31823.msg243054.html#msg243054
Gruß Volker
FHEM@CT||RFXTRX,CUL868@MAX,HM-Usb,JeeLink
Jee:TX29DTH-IT||Max:Thermostat,ShutterContact,
HM:SEC-MDIR,LC-SW1-PL2,LC-Dim1TPBU-FM,PB-2-WM55
RFX:FA20RF/2, HE501EU,ITL-230,OWL Intuition-lc,YCT-100,div Brennstuhl,IT 1500
FS20:IRU,KSE||FbDect 200,EG-PM2-LAN

Niko_K

#36
Hallo Volker,

danke für den Tipp.
Ich habs jetzt pber die ID (ist bei mir /dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1XZPWYE-if00-port0) versucht.
Damit funktioniert das Device leider überhaupt nicht.
Ich bekomme zwar die Meldung "device reappeared" (so wie oben beschrieben), aber beim snschließenden "shutdown restart" scheitert dann das init immer.

Also bleibe ich wohl doch lieber bei der Angabe von /dev/ttyUSB0... damit funktionierts wenigstens mit der oben aufgelisteten Anleitung

LG,
Niko

Tion

Okay,schad
Die Baurate hattest du schon auch angehängt ? (@38400)
FHEM@CT||RFXTRX,CUL868@MAX,HM-Usb,JeeLink
Jee:TX29DTH-IT||Max:Thermostat,ShutterContact,
HM:SEC-MDIR,LC-SW1-PL2,LC-Dim1TPBU-FM,PB-2-WM55
RFX:FA20RF/2, HE501EU,ITL-230,OWL Intuition-lc,YCT-100,div Brennstuhl,IT 1500
FS20:IRU,KSE||FbDect 200,EG-PM2-LAN

Niko_K

Hmm... stimmt... bei der Umstellnug auf die "by-id" hatte ich wirklich die Baudrate vergessen.
Wird sofort nachgeholt, wenn ich heute Abend wieder zu Hause bin :)

Niko_K

Hab gerade nochmal das Ansprechen des Devices über "by-id"  mit angegebener Baudrate versucht.
Damit verhält sich das Device komplett identisch wie bei Angabe von /dev/ttyUSB0.
Also funktioniert die Initialisierung nur dann, wenn man genau nach dem oben geposteten Verfahren vorgeht (und damit leider alles andere als zuverlässig).

aloz77

Bei mir kommt beim Neustarten des FHEM meistens auch der Initialisierungfehler:

2015.09.13 20:31:50 3: Opening RFXTRXUSB device /dev/RFXtrx433
2015.09.13 20:31:50 3: Setting RFXTRXUSB serial parameters to 38400,8,N,1
2015.09.13 20:31:50 3: RFXTRXUSB device opened
2015.09.13 20:31:51 1: TRX: Initialization Error: No character read
2015.09.13 20:31:51 1: Cannot init /dev/RFXtrx433, ignoring it (RFXTRXUSB)


Als Workaround lasse ich jetzt folgenden "Watchdog" laufen. Damit reinitialisiert sich RFXTRXUSB meist erfolgreich.

define RFXTRXUSB.watchdog at +*00:05 {\
\
if (InternalVal ("RFXTRXUSB","STATE","") eq "opened")\
{ fhem('modify RFXTRXUSB /dev/RFXtrx433@38400');;\
}\
\
}
attr RFXTRXUSB.watchdog alignTime 00:00