NEWS
[gelöst] ioBroker als MQTT Client, wie?
-
@mickym said in ioBroker als MQTT Client, wie?:
Du solltest solche Paradoxen versuchen möglichst schnell durch Fragen zu klären - hilft für das Verständnis ungemein.
Oh dazu muss man den Fehler / das Missverständnis selbst erstmal erkennen.
Habe den "Adapter" zu z2m direkt erstmal angehalten. Um schneller Fehler zu erkennen
-
@mickym Was mache ich Gedanklich falsch....
Ich möchte (Adapter/Geräte) "zigbee2mqtt" umziehen lassen auf "mqtt.0.zigbee"
Einfach in Anlehnung an Shellies und weil es mir kürzer besser gefällt als
wieder "zigbee2mqtt".Dazu habe ich
a) zigbee2mqtt als JSON exporttiert
b) in der Datei alle "zigbee2mqtt.0" durch "mqtt.0.zigbee" ersetzt
c) "from" am Ende der JSON Datei auf "system.adapter.mqtt.0.zigbee" gesetzt
d) JSON wieder importiert (wird als /mqtt/0/zigbee angezeigt, vgl ScreenShot)
e) /opt/zigbee2mqtt/data/configuration.yaml von "zigbee2mqtt" auf "zigbee" geändert
f) systemctl restart zigbee2mqttZudem Frage:
Könnte ich nicht einfach "mqtt.zigbee" verwenden, da ich vermutlich laaaaaange nur eine MQTT Instanz (Server?) verwenden werde? Sollte ich ernsthaft eine weitere Instanz hinzufügen, könnte diese doch (incrementing) "mqtt.[0-9]" sein.Wenn ich es recht verstehe, würde ich "mqtt.1" ja erst benötigen, wenn ich einen weiteren mqtt Server einbinde. Ganz abgesehen davon, dass, wenn ich soweit bin einen 2ten mqtt-Server einzusetze, ich nicht mehr fragen muss lach -
@chris-1 Nein das kannst Du so nicht machen. Der zigbee Adapter dröselt alles in Einzelpunkte auf, die das Standard mqtt nicht kenn. Alle Daten werden in JSONs abgelegt. Die einzelnen Punkte gibt es im Standard-MQTT nicht. Entweder machst Du Dir ein Alias für einzelne Datenpunkte oder musst die selbst anlegen. Wie gesagt - diese einzelnen Punkte hat der zigbee2mqtt Adapter Dir erstellt und sind nicht die Standard-MQTT Nachrichen.
Alle Daten sind bei mir zum Beispiel in dem Datenpunkt tischlampe in meiner mqtt-Struktur:
In dem Datenpunkt sind alle Daten des zigbee2mqtt:
Also so mit eigenem Umändern der JSON-Dateien bringst Du nur den ganzen iobroker drucheinander. Die Instanzen und Adapternamen sind zwingend und fest so aufgebaut - da darfst Du nicht selbst was ändern. Mach so was nicht.
Ich habe eine EINZIGE MQTT-Instanz als Abbild von dem ganzen Mosquitto. Zusätzliche Instanzen machen nur Sinn, wenn Du Adapter Äste publishen möchtest.
Deshalb hab ich Dir ja anfangs gezeigt, wie man einzelne Kommandos im Standard Mqtt Kommandos absetzt.
-
@mickym Bin leider schon wieder am Punkt "Gute Nachte"
-
@chris-1 Ja wie gesagt - Du hast bis jetzt nur über den Adapter geschaltet, aber nicht via Standard MQTT.
-
@mickym Ich glaube, ich kapiere immer noch nicht irgendeinen Zusammenhang...
Auf dem prompt mit mosquitto_pub funktioniert es,
aber beim minimalistischen Blockly nicht -
Nein das ist es nicht - das Blockly nimmt den Namen und Du wählst ja das Objekt aus.
Also mal was passiert, wenn Du den String in den Datenpunkt selbst einträgst und ob es Nachrichten im log gibt.
-
@mickym Ist doch, wird in Blockly nur verkürzt angezeigt.
Ich schalte mal auf JS und mache Screenshot -
@chris-1 sagte in ioBroker als MQTT Client, wie?:
@mickym Ist doch, wird in Blockly nur verkürzt angezeigt.
Ich schalte mal auf JS und mache ScreenshotJa ich habs korrigiert - ich weiß. Also schau ob Du den String direkt eingeben kannst (nicht bestätigt) und ich gehe davon aus, dass immer noch alle Haken draussen sind, in Deinen mqtt-Einstellungen.
-
@chris-1 Also bei mir geht das - wahrscheinlich liegt das daran, dass Du an dem Pfad rumgespielt hast.
Hast Du das Basetopic im zigbee2mqtt geändert?
Prüfe auch mal das Common Objekt - vielleicht sind durch Deine "selber gemachten" Änderungen die Namen nicht korrekt. Schau mal unter das nativ topic.
Wenn das verkehrt ist - lösche den gesamten Baum, weil Du dann mit dem JSON editieren und reimportieren mehr kaputt gemacht hast und davor hatte ich ja bereits gewarnt.
Schau auch in das Log.Wenn Du mit mosquitto publishst, kommt das dann auch im Datenpunkt des mqtt-Adapters an?
-
@mickym Ich habe die Kopier-Experimente wieder rückgöngig gemacht.
Und nachdem ich in der z2m configuration.yaml den "output" auf "attribute_and_json" , hat der Service z2m auch gleich alles bei den Objekten aufgefüllt
BaseTopic ist "zigbee"
Muss mich noch ums Essen kümmern, das brutzelt gerade auf Herd
-
@chris-1 Das schaut aber nach zigbee2mqtt Adapter aus und nicht nach zigbee. Diese ganzen Datenpunkte gehören da nicht hin. Ich würde den ganzen Baum unter mqtt.0 löschen und warten bis die Datenpunkte reinkommen.
-
@mickym wie gesagt, die Objekte wurden aufgefüllt, nachdem ich den "output" auf "attribute_and_json" gesetzt hatte. Nach dem obligatorischen "systemctl restart zigbee2mqtt" zack waren die alle da
Und zum "Adapter":
Sobald ich mqtt etwas im Griff habe und dies bezieht sich speziell auf das "setzen" von Werten, fliegt der Adapter runter. Das gleich Spiel (hoffendlich dann mit mehr Verständnis schneller) wird mit dem Shelly Adapter passieren.
Beides soll ja nur unter mqtt sein. -
-
@chris-1 Ich kann nicht beurteilen, was OK ist oder nicht. Da der mqtt-Adapter keine ungültigen Punkte bereinigt. Würde ich alles löschen. Publishen die Geräte erneut, dann kommt das wieder rein.
Nun schaut es ja so aus, also ob Du 2 Punkte hast. Einmal unter zigbee und einmal unter zigbee2mqtt. Schaut ja nun so aus, als ob das Base Topic doch zigbee heißt.
Ich würde vorschlagen, dass Du wie gesagt den mqtt-Adapter stoppst, den ganzen Baum löschst unter mqtt.0 löschst und dann Deine Maschine neu startest.
-
@mickym Die Punkte werden beim ersten schalten der Birne (zB mittels mosquitto_pub) sofort wieder neu gesetzt. Lediglich der "set" Punkt ist von mir und der wird auch nicht aktuallisiert.
Wie gesagt, zigbee2mqtt.Adapter ist gestoppt, da wird auch nichts aktuallisiert
-
@chris-1 Na vielleicht ist da noch was mit retain von dem Adapter drin. In meinen Augen gehören diese Datenpunkte da nicht hin.
Normalerweise sollte diese ganzen Information in dem JSON sein. Ich habe keine Ahnung woher das dann kommt. Zumindest wäre mir das neu, dass der zigbee2mqtt service selbst in Datenpunkten veröffentlicht. Und Du scheinst ja ein Problem zu haben. Du hast inzwischen genügend Screenshots wie es bei mir aussieht.Wenn die Datenpunkte dann wieder dort auftauchen, dann wäre mir das neu, aber bei mir ist es halt nicht so. Für mich sieht das immer noch so aus, als ob der zigbee2mqtt Adapter seine Finger mit im Spiel hat und deshalb funktioniert in meinen Augen das set nicht.
Ich kann Dir also nicht helfen. Ausser Du bereinigst wie gesagt alles. Die mosquitto.db löschen, die ganze mqtt. instanz löschen. Die zigbee2mqtt Instanz würde ich halt auch löschen. Der Adapter ist dann ja immer noch vorhanden, so dass Du ggf. die Instanz wieder installieren kannst.
Die mosquitto.db findest Du unter /var/lib/mosquitto. Vorher den Service stoppen. Bei Neustart des Service wird dann wieder eine jungfräuliche DB angelegt.
-
@mickym wie sieht der Eintrag in Deiner zigbee2mqtt.yaml aus?
Vermutlich hast Du unter
advanced:
output:nichts (default JSON) oder json stehen
-
@chris-1 Stimmt. Bei mir steht json. Da bist Du mir dann voraus, wenn man die Ausgabe in einzelne topics macht. Wobei ich json praktisch finde. Was hast Du dort eingetragen?
OK sehe es gerade:
-
output: attribute_and_json