[MQTT2_CLIENT] - kein Autocreate des MQTT2_DEVICE

Begonnen von DS_Starter, 21 Juni 2023, 17:57:21

Vorheriges Thema - Nächstes Thema

DS_Starter

Ich habe einen MQTT2_CLIENT der mit Attr

        autocreate = complex

ein entsprechendes Device automatisch anlegen soll.
Daten werden empfangen und das Log meldet mit verbose 5:

2023.06.21 17:24:36.906 5: rivermax2mqtt: dispatch autocreate=complex\000ANDROID_5629063F_1805_4A6D_B9F6_63579AA29745_1525096825770676226\000/app/device/property/M3EBF7ZF5190054\000{"params":{"inv.cfgFanMode":1,"inv.dcInVol":522,"inv.cfgAcOutVoltage":230000,"inv.cfgAcChgModeFlg":1,"inv.cfgStandbyMin":0,"inv.dcInAmp":0,"inv.cfgAcOutFreq":1,"inv.errCode":0,"inv.outputWatts":71,"inv.invOutFreq":50,"inv.chargerType":255,"inv.fanState":0,"latestTimeStamp":1687361076901,"inv.inTemp":49,"inv.cfgAcEnabled":1,"inv.cfgAcXboost":0,"inv.outTemp":39,"inv.invType":8,"inv.invOutVol":236842,"inv.invInAmp":0,"inv.inputWatts":71,"inv.invInFreq":50,"inv.invOutAmp":375,"inv.invInVol":238024,"inv.sysVer":16908574},"version":"1.0","cmdId":0,"cmdFunc":0,"id":1482838112992370817,"addr":0,"timestamp":1687361076901}
2023.06.21 17:24:36.912 4: rivermax2mqtt received PUBLISH
2023.06.21 17:24:36.912 5: rivermax2mqtt: received PUBLISH (0)$/app/device/property/M3EBF7ZF5190054{"params":{"bmsSlave1.ambientLightColor":15658734,"bmsSlave1.maxCellTemp":35,"bmsSlave1.bmsFault":0,"latestTimeStamp":1687361076901,"bmsSlave1.sysVer":16777800,"bmsSlave1.ambientLightBrightness":100,"bmsSlave1.temp":35,"bmsSlave1.cycles":13,"bmsSlave1.ambientLightAnimate":0,"bmsSlave1.remainCap":9589,"bmsSlave1.vol":32878,"bmsSlave1.errCode":6,"bmsSlave1.minCellVol":4082,"bmsSlave1.soc":100,"bmsSlave1.bqSysStatReg":128,"bmsSlave1.amp":-25,"bmsSlave1.minCellTemp":35,"bmsSlave1.minMosTemp":38,"bmsSlave1.maxCellVol":4095,"bmsSlave1.ambientLightEnabled":0,"bmsSlave1.fullCap":9450,"bmsSlave1.maxMosTemp":38},"version":"1.0","cmdId":0,"cmdFunc":0,"id":1482838112992370819,"addr":0,"timestamp":1687361076901}
2023.06.21 17:24:36.913 5: rivermax2mqtt: dispatch autocreate=complex\000ANDROID_5629063F_1805_4A6D_B9F6_63579AA29745_1525096825770676226\000/app/device/property/M3EBF7ZF5190054\000{"params":{"bmsSlave1.ambientLightColor":15658734,"bmsSlave1.maxCellTemp":35,"bmsSlave1.bmsFault":0,"latestTimeStamp":1687361076901,"bmsSlave1.sysVer":16777800,"bmsSlave1.ambientLightBrightness":100,"bmsSlave1.temp":35,"bmsSlave1.cycles":13,"bmsSlave1.ambientLightAnimate":0,"bmsSlave1.remainCap":9589,"bmsSlave1.vol":32878,"bmsSlave1.errCode":6,"bmsSlave1.minCellVol":4082,"bmsSlave1.soc":100,"bmsSlave1.bqSysStatReg":128,"bmsSlave1.amp":-25,"bmsSlave1.minCellTemp":35,"bmsSlave1.minMosTemp":38,"bmsSlave1.maxCellVol":4095,"bmsSlave1.ambientLightEnabled":0,"bmsSlave1.fullCap":9450,"bmsSlave1.maxMosTemp":38},"version":"1.0","cmdId":0,"cmdFunc":0,"id":1482838112992370819,"addr":0,"timestamp":1687361076901}

Nur angelegt wird nichts.
Es ist eigenartig weil es nicht das erste Device welches über MQTT2_CLIENT angelegt werden soll.

List des

Internals:
   BUF       
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        mqtt.ecoflow.com:8883
   DeviceName mqtt.ecoflow.com:8883
   FD         72
   FUUID      63adaef2-f33f-1c47-fb8a-aade8c47277a715c
   FVERSION   00_MQTT2_CLIENT.pm:0.276540/2023-06-04
   NAME       rivermax2mqtt
   NR         1976
   PARTIAL   
   SSL        1
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   ANDROID_832EA651-C3B9-466C-B7D6-20FA55C5E7DE_1525096825770676226
   eventCount 25
   lastMsgTime 1687362866.10156
   nextOpenDelay 10
   nrConnects 34
   qosCnt     0
   qosMaxQueueLength 10
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2023-06-21 17:46:45   state           opened
   qosQueue:
Attributes:
   SSL        1
   alias      Connector EcoFlow MQTT-Broker
   autocreate complex
   clientId   ANDROID_5629063F_1805_4A6D_B9F6_63579AA29745_1525096825770676226
   cmdIcon    connect:message_light_barrier disconnect:message_light_barrier_open

LG

Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

rudolfkoenig

MQTT2_CLIENT sollte zwar mit autocreate (genau!) ein Device anlegen, fuer die automatische Zuordnung der Daten zu unterschiedlichen MQTT2_DEVICE Instanzen benoetigt man ein bridgeregexp Attribut.

Weiterhin muss auch eine autocreate Instanz existieren, was von vielen (warum auch immer) deaktiviert wird.

DS_Starter

Hallo Rudi,

ZitatMQTT2_CLIENT sollte zwar mit autocreate (genau!) ein Device anlegen

Ja das hätte ich jetzt erwartet.

Zitatfuer die automatische Zuordnung der Daten zu unterschiedlichen MQTT2_DEVICE Instanzen benoetigt man ein bridgeregexp Attribut.
Kenne ich und benutze es auch. Wenn das MQTT2_DEVICE angelegt worden wäre, hätte ich dann ein bridgeregexp definiert und dieses Device als Bridge genutzt.

ZitatWeiterhin muss auch eine autocreate Instanz existieren, was von vielen (warum auch immer) deaktiviert wird.
Gibt es bei mir und ist auch aktiv. Wie gesagt, es ist nicht das erste mal das ich die Devices generisch durch MQTT2 anlegen lasse.
Aber aus irgendeinem Grund klappt es diesmal nicht.

Merkt sich MQTT2_CLIENT dass es schon mal irgendwann ein MQTT2_DEVICE aufgrund der empfangenen Nachrichten angelegt hat und legt es nicht neu an obwohl es nicht mehr existiert weil gelöscht ?
Das könnte bei mir sein weil ich defekte Hatdware ersetzen musste.
Hab schon restartet und was man allgemein als erste Maßnahmen so macht, aber es will einfach nicht generieren.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Ich habe jetzt das MQTT2_CLIENT Device mit "Raw definition" auf meine Test FHEM Instanz kopiert. Hier wurde das MQTT2_DEVICE sofort automatisch angelegt.
Dieses habe ich wiederum per "Raw definition" auf die produktive Instanz übertragen.
Nun aktualisiert das MQTT2_CLIENT Device dieses MQTT2_DEVICE als wäre nicht gewesen.

Jetzt braucht es nur noch eine Erklärung warum auf der produktiven Instanz das autocreate nicht funktioniert hat.
Wie gesagt, grundsätzlich funktioniert es (auch mit MQTT) , aber warum auch immer nicht in diesem markanten Fall.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

tobelix

Ich habe gerade einen Fall, der sehr ähnlich klingt, daher hänge ich mich mal hier dran.

Ich habe FHEM im Docker Container laufen. In einem zweiten Docker Container habe ich ein FHEM Testsystem. Im Testsystem habe ich ein    
MQTT2_CLIENT, der mit dem MQTT2_SERVER des Produktivsystems verbunden ist. Dadurch lausche ich quasi den ganzen MQTT Verkehr mit.
Im MQTT2_CLIENT habe ich attr autocreate simple gesetzt. In der Vergangenheit habe ich so schon neue Geräte automatisch hinzugefügt. Aber jetzt habe ich ein komplett neues Gerät, das auf jeden Fall noch nie im Testsystem angelegt war und es wird nicht automatisch angelegt.
Im Verbose 5 Log sehe ich auch die dispatch autocreate Nachrichten aber es wird eben nichts angelegt.