NEWS
[gelöst] ioBroker als MQTT Client, wie?
-
@mickym I glaube, ich habe gerade verstanden, warum ich mich immer darüber wunderte, dass Du sagst, dass Du den zigbee2mqtt Adapter nicht verwendest, bei Deinen Screenshots aber immer zigbee2mqtt zu sehen ist:
Kann es sein, dass ich im Prinzip doppelt-gemoppelt habe, indem ich nach Installation des SystemService auch noch den Adapter in ioBroker an den Start gebracht habe?Fiel mir bei einem längeren tail -f mosquitto.log auf, weil ich kürzlich zwecks Fehlersuche mal beim Adapter die ClientID abweichend vom service gesetzt hatte.
Zudem wurde mir beim spielen mit dem einen oder anderen ioBroker.Adapter klar, dass so manches nur ein bischen GUI zu sowieso vorhandenen Funktionen von ioBroker ist.War wohl eines dieser "Ochs vorm Berg" Erlebnisse
-
@chris-1 Na wenn Du den zigbee2mqtt Adapter verwendest, dann werden halt die Daten, die Du im mqtt-Adapter eh schon hast, halt in einzelne Datenpunkte zerlegt. Ich brauche den halt nicht.
-
@chris-1 sagte in ioBroker als MQTT Client, wie?:
I glaube, ich habe gerade verstanden, warum ich mich immer darüber wunderte, dass Du sagst, dass Du den zigbee2mqtt Adapter nicht verwendest, bei Deinen Screenshots aber immer zigbee2mqtt zu sehen ist
Du solltest solche Paradoxen versuchen möglichst schnell durch Fragen zu klären - hilft für das Verständnis ungemein.
-
@mickym Das sehe ich momentan gar eher als Vorteil, weil es mir erstmal aufzeigt, was alles vorhanden ist.
Wenn ich die ganzen Einstellungen verinnerlicht habe bzw die Bookmarks zu zigbee2mqtt/devices und Shelly-API reger nutze, dann sollte sich das ja auch unter mqtt füllen.
Muss mal ausprobieren wie das klappt, mit mqtt-Explorer diese Datenbunkte unterhalb mqtt/ zu füllen. Zumindest soweit interessant. Sah zB bei der Lampe, dass es da noch einige interessante/lustige Einstellungen gibt, die so bisher nicht angezeigt wurden
-
@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