FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: chdrsto am 01 Mai 2021, 15:42:52

Titel: Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: chdrsto am 01 Mai 2021, 15:42:52
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?
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: CoolTux am 01 Mai 2021, 16:48:01
Backup einspielen und Neustart.
Per Default wird bei einem Update immer ein Backup erstellt im Ordner Restore.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: Otto123 am 01 Mai 2021, 17:51:16
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?
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: Beta-User am 01 Mai 2021, 18:00:06
xBridge und MQTT klingt nach alter Implementierung. Vermute eher was mit IODev. als Ursache.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: chdrsto am 01 Mai 2021, 18:37:22
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?
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: rudolfkoenig am 01 Mai 2021, 20:11:20
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.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: Beta-User am 01 Mai 2021, 20:26:25
Wir reden über das inoffizielle Xiaomi_MQTT_Device, oder?
Bitte list bzw. TYPE nennen.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: chdrsto am 01 Mai 2021, 20:43:50
Genau, es handelt sich hierbei um ein XiaomiMQTTDevice.
Gibt es eine andere Alternative hierfür? Bin gerne bereit zu lernen.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: Beta-User am 02 Mai 2021, 09:28:17
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).
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: rudolfkoenig am 02 Mai 2021, 10:18:42
ZitatGenau, es handelt sich hierbei um ein XiaomiMQTTDevice.
Wo findet man dieses Modul?
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: Beta-User am 02 Mai 2021, 10:51:02
Zitat von: rudolfkoenig am 02 Mai 2021, 10:18:42
Wo findet man dieses Modul?
https://forum.fhem.de/index.php/topic,84790.msg771021.html#msg771021
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: chdrsto am 02 Mai 2021, 10:52:57
@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.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: rudolfkoenig am 02 Mai 2021, 11:30:57
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
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: chdrsto am 02 Mai 2021, 12:32:27
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
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: rudolfkoenig am 02 Mai 2021, 13:00:14
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.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: chdrsto am 02 Mai 2021, 13:09:53
https://github.com/oskarn97/fhem-xiaomi-mqtt/blob/master/FHEM/72_XiaomiMQTTDevice.pm

Also wenn ich den entsprechenden github öffne, und die Zeilen vergleiche sehe ich die im Patch enthaltenen neuen Zeilen. Ev. mache ich was falsch.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: rudolfkoenig am 02 Mai 2021, 19:50:16
Liegt daran, dass mein Patch "falsch-rum" ist, sorry :)
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: chdrsto am 02 Mai 2021, 20:36:09
Perfekt, habe entsprechend angepasst und geupdated ... bisher keine Fehler.
Danke euch, werde aber trotzdem versuchen auf das andere Modul zu wechseln.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: magomme am 14 Mai 2021, 21:52:11
chdrsto, wie sieht nun die 72_XiaomiMqttDevice.pm aus ?
verstehe das nicht was rudolfkoenig da meint : Liegt daran, dass mein Patch "falsch-rum" ist, sorry
danke
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: magomme am 15 Mai 2021, 21:56:46
Zitat von: rudolfkoenig am 02 Mai 2021, 19:50:16
Liegt daran, dass mein Patch "falsch-rum" ist, sorry :)

Was meinst DU damit ? Falsch herum ?
Grüsse Martin
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: Beta-User am 16 Mai 2021, 08:09:31
Zitat von: magomme am 15 Mai 2021, 21:56:46
Was meinst DU damit ? Falsch herum ?
Grüsse Martin
Die Zeilen, die raus sollen, sind mit einem "+" gekennzeichnet, statt wie sonst üblich mit einem "-" (und umgekehrt).
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: rudolfkoenig am 16 Mai 2021, 11:46:45
Und wenn man patch verwendet, um diesen Textstueck einzubauen, dann muss man -R angeben (reverse patch).
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: magomme am 16 Mai 2021, 17:06:46
Ach so, alles klar. DAnke für die Hilfe. Modul läuft wieder.
Schönes WE
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: Erwin01 am 25 Mai 2021, 12:46:38
Hallo, eine Frage an Rulolfkoenigs Patch:
Was ist gemeint in Zeile 491?
Die 1 muss raus und eine -1 rein? Oder was?

Grüß euch alle
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: IcedEarth am 05 Juni 2021, 12:10:09
Ich nutze das Modul ebenfalls und nachdem ich eben ein Update gemacht habe, bin ich aus allen Wolken gefallen, als alle meine Sensoren weg waren.
Habe jetzt das letzte Backup eingespielt und alles ist wieder da.
Wie kriege ich denn jetzt den Patch der auf der ersten Seite gepostet wurde in das System, sodass ich updaten kann? Bin noch nie in die Situation gekommen.

Viele Grüße
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: chdrsto am 05 Juni 2021, 17:17:18
Hallo

Du musst die Datei  /opt/fhem/FHEM/72_XiaomiMQTTDevice.pm an zwei stellen abändern:

1) Zeile 127 (bei mir zumindest):
return "No MQTT IODev found." if(!defined($main::attr{$name}{IODev}));
durch ..:
return "No MQTT IODev found." if(!defined($hash->{IODev}));
ersetzen

und:

2) Zeile 142:
return "No MQTT IODev found." if(!defined($main::attr{$ownName}{IODev}));
durch ...:
return "No MQTT IODev found." if(!defined($own_hash->{IODev}));
ersetzen
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: IcedEarth am 05 Juni 2021, 17:56:46
Achso. Dachte ich muss da irgendwo ein gut anpassen.
Das kriege ich hin.
Danke dir!
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: IcedEarth am 06 Juni 2021, 11:37:30
Eine Frage noch.
Wenn ich jetzt ein Update starte, wird da nicht die alte Version vom GitHub gezogen, weil er einen Unterschied feststellt?
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: rudolfkoenig am 06 Juni 2021, 11:46:12
Vermutlich ja.
Eine Loesung ist die Github-Repository aus der update-Liste zu entfernen mit "update list" gefolgt von "update delete <repository>"
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: mirko_s am 28 Juni 2021, 18:30:14
Hallo, ich habe heute versehentlich auch ein FHEM Update gestartet und nun keine Xiaomi Geräte mehr..... :-(
Ich würde von euch Spezialisten gerne wissen was der empfohlene Weg ist das Problem zu lösen?
1) Backup einspielen und auf dem Stand verweilen?
2) XiaomiMQTTDevice durch irgendwas anderes (https://wiki.fhem.de/wiki/Zigbee2mqtt#Define_eines_MQTT2-Devices_als_.22Bridge.22 (https://wiki.fhem.de/wiki/Zigbee2mqtt#Define_eines_MQTT2-Devices_als_.22Bridge.22)) ersetzen und alle Geräte neu konfigurieren?
3) Den Patch bei mir lokal einspielen und dann nie mehr updaten? Wäre ja wie Punkt 1?

Danke und Gruß
Mirko
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: rudolfkoenig am 28 Juni 2021, 18:41:19
Aus Sicht des Modul-Maintainers: natuerlich Variante 2.
Wenn man keine Zeit/Lust fuer Umbau hat: Patch einspielen, und "attr global exclude_from_update XiaomiMQTTDevice" setzen.
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: bnuter am 29 August 2021, 13:10:46
Danke an alle die hier zur Lösung beigetragen haben.
Hatte heute einen Stromausfall und anschließend auch keine Xiaomi Sensoren mehr.
Hab jetzt einmal den Patch ausgeführt und werd' mich über kurz oder lang mit der Umstellung auf was anderes beschäftigen
Titel: Antw:Nach dem Update alle MQTT/Zigbee devices weg
Beitrag von: kennymc.c am 03 September 2021, 20:53:47
Leider kam es bei mir heute nach einem Update trotz gesetztem attr global exclude_from_update XiaomiMQTTDevice zu einem Fhem Bootloop durch das XiaomiModul, den ich erst durch das Einspielen eines Backups beheben konnte. Im Update Log wird das XiaomiMQTTDecvice seltsamerweise auch mit aufgeführt, obwohl es ausgeschlossen werden sollte (Downloading https://raw.githubusercontent.com/oskarn97/fhem-xiaomi-mqtt/master/controls_xiaomi-zb2mqtt.txt).

Leider scheint der selbe Bootloop Fehler jetzt auch bei einem normalen Neustart aufzutreten:
Undefined subroutine &XiaomiMQTT::DEVICE::send_publish called at ./FHEM/72_XiaomiMQTTDevice.pm line 484
In dieser Zeile wurde ja gar nichts verändert:
my $msgid = send_publish($hash->{IODev}, topic => $topic, message => $message, qos => 1, retain => 0);

Könnte eventuell auch etwas mit meinem anderen Problem zu tun haben: https://forum.fhem.de/index.php/topic,122767.0.html. Es reicht wohl aus nur die fhem.cfg aus dem Backup zu ersetzten, damit es wieder läuft. Da scheint beim Neustart irgendetwas mit zu passieren.

Ok, ich hatte aufgrund des anderen Problems den Broker jeweils gelöscht und neu angelegt. Wird Fhem danach neu gestartet, kommt es zu diesem Fehler. Ansonsten nicht.