[gelöst] Sämtliche XiaomiMQTTDevices nach FHEM Update unbrauchbar?

Begonnen von tyrolean, 12 Juni 2021, 18:26:29

Vorheriges Thema - Nächstes Thema

tyrolean

Hallo,

ich habe meine Konfiguration schon seit mehreren Jahren stabil laufen, und auch wenn diese nicht 100%ig dem neuesten Konzept (MQTT2Server) entspricht bin ich eigentlich mehr als zufrieden.

Kurzum: Habe auf meinem RPi einen Mosquito Server laufen, diesen via define MQTT MQTT localhost:1883 mit FHEM verbunden.
Außerdem eine Zigbee to MQTT Bridge mit define xBridge XiaomiMQTTDevice bridge definiert.

Heute habe ich, ehrlich gesagt sicher seit einem halben Jahr, wieder einmal ein FHEM Update gemacht -> lief soweit ich das sehen konnte problemlos durch jedoch habe ich dadurch sämtliche Zigbee2MQTTDevices verloren...

siehe Log:
PERL WARNING: Use of uninitialized value $id in hash element at ./FHEM/72_XiaomiMQTTDevice.pm line 81.
2021.06.12 08:14:57 1: define xBridge XiaomiMQTTDevice bridge: No MQTT IODev found.
2021.06.12 08:14:57 1: define TempSensorSchlafzimmer XiaomiMQTTDevice WSDCGQ11LM 0x00158d00036d3717 TempSensorSchlafzimmer zigbee2mqtt: No MQTT IODev found.
2021.06.12 08:14:57 1: define TempSensorArbeitszimmer XiaomiMQTTDevice WSDCGQ11LM 0x0015xxxx TempSensorArbeitszimmer zigbee2mqtt: No MQTT IODev found.
2021.06.12 08:14:57 1: define TempSensorWohnzimmer XiaomiMQTTDevice WSDCGQ11LM 0x00158xxxx TempSensorWohnzimmer zigbee2mqtt: No MQTT IODev found.
2021.06.12 08:14:57 1: define TempSensorBad XiaomiMQTTDevice WSDCGQ11LM 0x00xxxx TempSensorBad zigbee2mqtt: No MQTT IODev found


Kann mir bitte jemand sagen wie ich das Problem lösen kann...

Gruß und Dank aus Tirol

p.s. Zwei Geräte habe ich übrigens nicht über XiaomiMQTTDevice sondern direkt als MQTT2 Device "händisch" definiert. Diese funktionieren weiterhin problemlos (also scheint mein MQTT Server sowie zigbee2mqtt noch zu funktionieren)



tyrolean

Vielen Dank,

Problem gelöst....

Zitat 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