Nach dem Update alle MQTT/Zigbee devices weg

Begonnen von chdrsto, 01 Mai 2021, 15:42:52

Vorheriges Thema - Nächstes Thema

chdrsto

Hallo Community
Nachdem ich heute ein system update (update all --> shutdown restart) gemacht habe, sind nun alle MQTT/zigbee devices weg.

und bekomme folgende Fehlermeldung im FHEM:
Messages collected while initializing FHEM:configDB: No MQTT IODev found.
setuuid: Please define xBridge first
No MQTT IODev found.
setuuid: Please define Coordinator first
No MQTT IODev found.
setuuid: Please define 0x00158d00044ab259 first
No MQTT IODev found.
setuuid: Please define 0x00158d000444c2ba first
No MQTT IODev found.
setuuid: Please define 0x086bd7fffe36efdc first
No MQTT IODev found.
setuuid: Please define 0xccccccfffe8c4335 first
....


UPDATE - I - 01.05.2021 / 16:08:

Was ich gesehen habe ist, dass das Modul 00_MQTT2_CLIENT.pm aktualisiert wurde ... ich vermute es hängt damit zusammen

kann da jemand unterstützen?

CoolTux

Backup einspielen und Neustart.
Per Default wird bei einem Update immer ein Backup erstellt im Ordner Restore.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Zur Unterstützung
https://wiki.fhem.de/wiki/Update#R.C3.BCcksichern_beim_Update_.C3.BCberschriebener_Dateien

Hauptsache die Konfiguration war wirklich gesichert? Nach define xBridge mal save gemacht?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

xBridge und MQTT klingt nach alter Implementierung. Vermute eher was mit IODev. als Ursache.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

chdrsto

Hallo Leute.

Besten Dank, nachdem ich das komplete restore durchgeführt habe funktioniert es wieder. Die Frage ist nur, was muss ich jetzt machen damit ich wieder updaten kann?

rudolfkoenig

Ich habe zwar an der IODev Zuweisung geaendert, allerdings:
- sollte die Aenderung kompatibel sein
- habe gerade ein Test mit MQTT2_CLIENT und MQTT2_DEVICE gemacht, und kein Problem gesehen
- ich finde in den ganzen Quellen keine Meldung mit "No MQTT IODev found.", auch keine Varianten davon
- die setuuid Meldung ist auch merkwuerdig, ich habs nicht geschafft was vergleichbares zu provozieren.

Womoeglich hilft ein "attr global verbose 5" beim FHEM-Start, um das Problem lokalisieren zu koennen.

Beta-User

Wir reden über das inoffizielle Xiaomi_MQTT_Device, oder?
Bitte list bzw. TYPE nennen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

chdrsto

Genau, es handelt sich hierbei um ein XiaomiMQTTDevice.
Gibt es eine andere Alternative hierfür? Bin gerne bereit zu lernen.

Beta-User

Es gibt auch die "neue" Implementierung, wie unter https://wiki.fhem.de/wiki/Zigbee2mqtt beschrieben. Trotzdem wäre interessant, warum das (alte) IO-Modul nicht geladen wurde. Dazu sollte eigentlich auch was im Log stehen, und an sich müßte das dann auch früher oder später eine ganze Anzahl von anderen Usern betreffen.
Ich kann mir aber im Moment nicht vorstellen, dass da was durch ein update "zerschossen" worden sein soll, dann müßte es auch irgendwelche updates im Perl-Umfeld gegeben haben (das alte IO-Modul braucht lib-pluggable).

(Falls du Pi+SD-Karte nutzt, wäre jetzt Zeit für ein Backup und sicherheitshalber eine neue Karte, ist aber nur ein Bauchgefühl).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

ZitatGenau, es handelt sich hierbei um ein XiaomiMQTTDevice.
Wo findet man dieses Modul?

Beta-User

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

chdrsto

@Beta-User
Danke, werde ich demnächst durchführen. Aktuell fehlt mir jedoch eine Ersatz-SDKarte.

@rudolfkoenig
Meine Installation ist ca. 3-4 jährig und ich kann Dir ehrlich nicht mehr sagen woher ich dieses Modul geholt habe.
Werde mich aber demnächst mit einer Umstellung auf das "neue" MQTT2_SERVER / Device informieren.

rudolfkoenig

Zitathttps://forum.fhem.de/index.php/topic,84790.msg771021.html#msg771021
Boeses Modul :)
- laedt das MQTT Modul, und ruft direkt Funktionen da drin auf, verhindert damit eine unabhaengige IODev Implementierung
- wenn vorher kein MQTT-Device definiert wurde, stuerzt FHEM ab.
- verweigert das Arbeiten, wenn das IODev Attribut nicht gesetzt ist, anstatt auf $hash->{IODev} zu pruefen.

Falls jemand das Modul trotzdem behalten will, mit folgenden Patch wird das gemeldete Problem vermieden:
--- FHEM/72_XiaomiMQTTDevice.pm 2021-05-02 11:28:18.782942432 +0200
+++ FHEM/72_XiaomiMQTTDevice.pm.orig 2021-05-02 11:01:09.000000000 +0200
@@ -124,7 +124,7 @@
         }
     }

-    return "No MQTT IODev found." if(!defined($hash->{IODev}));
+    return "No MQTT IODev found." if(!defined($main::attr{$name}{IODev}));

     $hash->{NOTIFYDEV} = "global";
     SubscribeReadings($hash) if($main::init_done);
@@ -138,7 +138,7 @@
my ($own_hash, $dev_hash) = @_;
my $ownName = $own_hash->{NAME}; # own name / hash
 
- return "No MQTT IODev found." if(!defined($own_hash->{IODev}));
+ return "No MQTT IODev found." if(!defined($main::attr{$ownName}{IODev}));
 
my $devName = $dev_hash->{NAME}; # Device that created the events
my $events = main::deviceEvents($dev_hash, 1);
@@ -491,4 +491,4 @@
readingsSingleUpdate($hash, 'state', 'offline', 1);
}

-1;
+1;
\ No newline at end of file

chdrsto

#13
Zitat von: rudolfkoenig am 02 Mai 2021, 11:30:57
Boeses Modul :)
- laedt das MQTT Modul, und ruft direkt Funktionen da drin auf, verhindert damit eine unabhaengige IODev Implementierung
- wenn vorher kein MQTT-Device definiert wurde, stuerzt FHEM ab.
- verweigert das Arbeiten, wenn das IODev Attribut nicht gesetzt ist, anstatt auf $hash->{IODev} zu pruefen.

Falls jemand das Modul trotzdem behalten will, mit folgenden Patch wird das gemeldete Problem vermieden:
--- FHEM/72_XiaomiMQTTDevice.pm 2021-05-02 11:28:18.782942432 +0200
+++ FHEM/72_XiaomiMQTTDevice.pm.orig 2021-05-02 11:01:09.000000000 +0200
@@ -124,7 +124,7 @@
         }
     }

-    return "No MQTT IODev found." if(!defined($hash->{IODev}));
+    return "No MQTT IODev found." if(!defined($main::attr{$name}{IODev}));

     $hash->{NOTIFYDEV} = "global";
     SubscribeReadings($hash) if($main::init_done);
@@ -138,7 +138,7 @@
my ($own_hash, $dev_hash) = @_;
my $ownName = $own_hash->{NAME}; # own name / hash
 
- return "No MQTT IODev found." if(!defined($own_hash->{IODev}));
+ return "No MQTT IODev found." if(!defined($main::attr{$ownName}{IODev}));
 
my $devName = $dev_hash->{NAME}; # Device that created the events
my $events = main::deviceEvents($dev_hash, 1);
@@ -491,4 +491,4 @@
readingsSingleUpdate($hash, 'state', 'offline', 1);
}

-1;
+1;
\ No newline at end of file


ich habe den Patch mit meiner Datei überprüft und gesehen, dass diese Änderungen schon implementiert sind / waren. Trotzdem kam der Fehler

rudolfkoenig

Zitatich habe den Patch mit meiner Datei überprüft und gesehen, dass diese Änderungen schon implementiert sind / waren.
Das wuerde mich sehr ueberraschen, ich habe das Modul heute "frisch" vom git geholt.