TRX: Initialization Error

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

Vorheriges Thema - Nächstes Thema

Tobias

Hi, meinen RFX habe ich mit der Fw 63 geflashed. Mit dem RFXMgr funktioniert alles super, die Signale werden erkannt, aber auf dem FhEM-Rechner gibts folgendes
2013.04.04 12:56:41.737 3: Opening RFXTRX device /dev/CUL_rfxtrx
2013.04.04 12:56:41.741 3: Setting RFXTRX baudrate to 38400
2013.04.04 12:56:41.759 3: RFXTRX device opened
2013.04.04 12:56:42.373 1: TRX: Initialization Error hexline='000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d010001025240000c2f01010000'
2013.04.04 12:56:42.376 1: Cannot init /dev/CUL_rfxtrx, ignoring it

Ideen wo ich suchen kann??
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Willi

Zitat von: Tobias schrieb am Fr, 05 April 2013 14:07Hi, meinen RFX habe ich mit der Fw 63 geflashed. Mit dem RFXMgr funktioniert alles super, die Signale werden erkannt, aber auf dem FhEM-Rechner gibts folgendes
2013.04.04 12:56:41.737 3: Opening RFXTRX device /dev/CUL_rfxtrx
2013.04.04 12:56:41.741 3: Setting RFXTRX baudrate to 38400
2013.04.04 12:56:41.759 3: RFXTRX device opened
2013.04.04 12:56:42.373 1: TRX: Initialization Error hexline='000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d010001025240000c2f01010000'
2013.04.04 12:56:42.376 1: Cannot init /dev/CUL_rfxtrx, ignoring it

Ideen wo ich suchen kann??

Die vielen führenden "00" sehen seltsam aus.
Kommen immer so viele führende Nullen zurück?

Läuft der RFXtrx, wenn Du noinit verwendest:
define <name> TRX <device> noinit

Ich werde bei Gelegenheit mal die neue Firmware testen.

Grüße

Willi
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

HarryT

I am running firmware 64. No problem with it.

2013.04.05 20:01:08 1: TRX: Init status: '433.92MHz transceiver, firmware=64, protocols enabled: Lighting4 LaCrosse Hideki Visonic OREGON HOMEEASY AC X10 '

{HT}
FHEM 6.3 auf Raspberry Pi3  (1,2 Ghz)
RFXTRX433XL, ZWave, KFL200 and ConBeeIII
Raspberry Pi1 (0,7 Ghz) and Raspberry Pi4 for testing
German reading skills are good.

Willi

Hallo Tobias,

ich habe jetzt auch auf Firmware 64 geflasht. Läuft bei mir ohne Probleme.

Hast Du die Probleme immer noch?

Grüße

Willi
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

Tobias

ja, das merkwürdige ist, wenn fhem dann läuft und mache ich dann redefine, wird der TRX auch korrekt initialisiert.

Dazu ein Änderungswunsch: kannst du den Status des TRX auf initialized setzen wenn er initialisiert ist?
Alle anderen (CUL, ECMD) machen das so.
Jetzt steht er nur auf opened, egal ob er initialisiert werden konnte oder nicht

gruss
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Willi

Zitat von: Tobias schrieb am Mo, 08 April 2013 12:43ja, das merkwürdige ist, wenn fhem dann läuft und mache ich dann redefine, wird der TRX auch korrekt initialisiert.

Dazu ein Änderungswunsch: kannst du den Status des TRX auf initialized setzen wenn er initialisiert ist?
Alle anderen (CUL, ECMD) machen das so.
Jetzt steht er nur auf opened, egal ob er initialisiert werden konnte oder nicht

gruss

Hast Du das Update auf 64 gemacht? Wenn ja, was für eine Konfiguration hast Du genau? Diesen Fehler (führende 0) habe ich bisher noch nicht gesehen.

Die Anpassung bzgl. Initialized habe ich soeben gemacht. Das war noch ein Fehler vor Urzeiten seit ich DevIO.pm nutze, welcher dieses opened setzt.
Ist jetzt im SVN und damit morgen per update verfügbar.
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

Tobias

so siehts im Log aus wenn ich im fehem-webif "einfach" nochmal auf "DEF" klicke:2013.04.09 08:20:11.690 3: Opening RFXTRX device /dev/CUL_rfxtrx
2013.04.09 08:20:11.695 3: Setting RFXTRX baudrate to 38400
2013.04.09 08:20:11.712 3: RFXTRX device opened
2013.04.09 08:20:12.328 1: TRX: Init OK
2013.04.09 08:20:12.330 1: TRX: Init status: '433.92MHz receiver only, firmware=64, protocols enabled: LaCrosse Hideki OREGON HOMEEASY AC ARC X10 '

Edit: ich glaube allerdings nicht das es ein grundsätzlicher Fehler des TRX-Moduls ist.... ev. ein Bug der nur in bestimmten Situationen auftritt..?? Eben bei einem fhem Restart konnte gleich im ersten Anlauf initialisiert werden.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

Hi Willi,

könntest du in einer freien Minute eine Neuinitialisierung einbauen?
Wenn das Device nicht initialisiert werden konnte und "nur" auf opened steht, soll automatisch nach 30sek nocheinmal initialisiert werden. Bis jetzt mach ich es manuell, bzw müsste mir noch ein notify ausdenken
Es sollte automatisch überprüft werden aob das Device noch verfügbar ist. Zb. beim Cul wird auch automatisch erkannt das es disconnected ist, auch der reappear sowie die neuinitialisierung wird automatisch durchgeführt.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Willi

Zitat von: Tobias schrieb am Fr, 19 April 2013 08:31Hi Willi,

könntest du in einer freien Minute eine Neuinitialisierung einbauen?
Wenn das Device nicht initialisiert werden konnte und "nur" auf opened steht, soll automatisch nach 30sek nocheinmal initialisiert werden. Bis jetzt mach ich es manuell, bzw müsste mir noch ein notify ausdenken
Es sollte automatisch überprüft werden aob das Device noch verfügbar ist. Zb. beim Cul wird auch automatisch erkannt das es disconnected ist, auch der reappear sowie die neuinitialisierung wird automatisch durchgeführt.

Eigentlich sollte es bei TRX genauso wie bei CUL ablaufen.
Wenn das Device disconnected und man es erneut verbindet, dann erfolgt automatisch der reconnect. Das funktioniert eigentlich schon immer.
Funktioniert das bei Dir nicht? Was passiert, wenn Du RFXtrx433 absteckst und neu ansteckst?

Ich kann die Anfangsinitialisierung so umändern, dass die Anzahl der Versuche erhöht wird oder die führenden Nullen ignoriert werden. 30 Sekunden warten ist problematisch, da dies das komplette FHEM-System blockiert (FHEM nutzt kein Multitasking).

Das Verhalten Deines Systems ist seltsam. Welche Hardware/Software setzt Du ein?
Ist es der in der Fussnote genannte Iomega iconnect?

Wäre es möglich den Kernel zu aktualisieren?

-- Willi
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

Tobias

wenn ich das nächste Mal vor Ort bin teste ich das VErhalten beim Stecker abziehen. Bin aber der Meinung, das der TRX immer noch auf initializted stehen bleibt wenn ich den Stecker abziehe.. aber ich teste es nocheinmal genau.
Und Ja, es ist die IConnect mit fhem 5.4.
Linux Iconnect 2.6.37 #1 PREEMPT Sun Mar 6 13:17:17 CET 2011 armv5tel GNU/Linux
Das mit 30sek warten meinte ich, einen internel Timer zu generieren der die Initialize-Funktion nochmal aufruft
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Willi

Der State ist eigentlich ziemlich egal.
Ich schaue mir mal an, ob das Reconnect bei CUL anders gelöst ist. Bei mir funktioniert es.

Wenn ich es richtig sehe, erfolgt die Intialisierung bei CUL auch beim define.  Sofern der Init-String nicht funktioniert, wird das Gerät auch nicht mehr verwendet.
Wenn Deine Tests hier ergeben, dass sich hier RFXtrx433 anders als CUL verhält, würde mich das interessieren.

Du könntest bei Deinem Spezialfall mal probieren in 45_TRX.pm die Zeilen 239ff
 } elsif ($buf !~ m/^\x0d\x01\x00.........../) {
my $hexline = unpack('H*', $buf);
    Log 1, "TRX: Initialization Error hexline='$hexline'";
return "TRX: Initialization Error %name expected char=0x2c, but char=$char received.";
  } else {
    Log 1, "TRX: Init OK";
  $hash->{STATE} = "Initialized";
# Analyse result and display it:
if ($buf =~ m/^\x0d\x01\x00(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)/) {

gegen folgende zu ersetzen:

 } elsif ($buf !~ m/\x0d\x01\x00.........../) {
my $hexline = unpack('H*', $buf);
    Log 1, "TRX: Initialization Error hexline='$hexline'";
return "TRX: Initialization Error %name expected char=0x2c, but char=$char received.";
  } else {
    Log 1, "TRX: Init OK";
  $hash->{STATE} = "Initialized";
# Analyse result and display it:
if ($buf =~ m/\x0d\x01\x00(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)/) {

Also das ^ in den Regex am Anfang weglassen.

Wenn Du einen Vorschlag mit einem internal Timer hast, dass schick mir gerne das geänderte 45_TRX.pm zum Test.
Mir ist nicht klar wie Du das realisieren willst.

-- Willi
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

Willi

Hast Du mal probiert in 45_TRX.pm die Zeilen 239ff abzuändern (siehe vorheriger Beitrag)?

-- Willi
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

Willi

Hallo Tobias,

ich habe mir das nochmal angesehen.

Wenn man im laufenden Betrieb TRXtrx433 absteckt, kommt:

2013.04.21 17:05:06 1: /dev/ttyUSB0 disconnected, waiting to reappear
und der State wechselt zu "disconnected".

Nach Anstecken kommt
2013.04.21 17:05:11 3: Setting TRX_0 baudrate to 38400
2013.04.21 17:05:11 1: /dev/ttyUSB0 reappeared (TRX_0)

und der State geht wieder auf "opened".

Der einzige Unterschied zu CUL ist, dass bei einem Neuanstecken bei CUL die Initiatlisierung wieder erfolgt.
Darauf habe ich beim RFXtrx433 verzichtet, da dies m.E. keinen Vorteil bietet.

In DevIo_OpenDev (das nutze ich) wird das Gerät ignoriert, wenn die Intialisierung nicht funktioniert
(sowohl bei CUL also auch bei TRX).

Die Änderung der Regex funktioniert auch bei korrektem Rückgabestring. Daher bitte testen, ob es jetzt auch in Deinem speziellen Fall funktioniert.

Wenn nicht könnte man die Initialisierung evtl. mehrfach probieren.
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

Markus M.

Ich bin auf Firmware 61 und habe das gleiche Problem, nach nahezu jedem Neustart.

2013.04.13 02:22:26 3: Opening TRX device /dev/ttyUSB0
2013.04.13 02:22:26 3: Setting TRX baudrate to 38400
2013.04.13 02:22:26 3: TRX device opened
2013.04.13 02:22:27 1: TRX: Initialization Error hexline='00...viele...00d01000102533d000c2f01010000'
2013.04.13 02:22:27 1: Cannot init /dev/ttyUSB0, ignoring it


Hier die Initialisierung nochmal zu versuchen wäre gut.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Willi

Hast Du die Änderung der Regex (siehe Posting vom 19 April 2013 16:26) probiert?
Was war das Ergebnis?

Das sollte eigentlich helfen.

-- Willi
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433