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
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.
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.
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.
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.