NEWS
SOLVED: zigbee2mqtt setup
-
@mickym
genau das tue ich ja. Ich greife mit dem mqqt client des iobrokers auf meinen bestehenden mosquitto broker zu. die zigbee2mqtt installation published genau dahin.
Insofern wäre meine Erwartung, dass ich meine zigbee2mqtt instanz so erhalten kann.
Ich habe dann nur einen client (openhab) durch einen anderen (iobroker) ersetzt.zigbee2mqtt habe ich ja schon zusammen mit openhab seit jahren im einsatz.
-
@hipohop Ok dann verstehe ich nur nicht, warum Du nicht alle Geräte findest, die sind doch dann bereits alle im mosquitto. Das zigbee2mqtt kann ja völlig unverändert bleiben. Dieses Programm füttert doch nur Deine mosquitto. Sprich wenn sich ein Device meldet dann taucht das doch früher oder später automatisch im mqtt Adapter auf?
Aber egal - ich kann Dir leider mit autodiscovery nicht helfen bzw. machst Du das wahrscheinlich genauso, wie Du es unter openhab gemacht hast.
-
@mickym
Genau das ist der Punkt. Ich würde erwarten, dass meine Devices in mqtt-client (von iobroker) automatisch erscheinen.
Das ist aber nicht so. Ich muss die alle manuell über die Konfiguration hinzufügen. Geht ist aber umständlich.
Darüber hinaus ergibt sich für mich das Problem, das ich noch nicht verstanden habe wie ich diese Datenpunkte(?) lese bzw. schreibe kann.
Das hier
console.log(getState("mqtt-client.0.zigbee2mqtt.OSRAM4.State").val);
gibt null zurück. -
@hipohop Das ganze Problem ist leider der neue admin5 Adapter - da wurde mqtt ein Ei gelegt und leider werden diese ganzen Überprüfungen für den Adapter nicht ausgeschaltet (ist meines Erachtens genauso unsinnig, wie für selbst erstellte Datenpunkte).
Schau mal ob Du überall ein Stift-symbol bei Deinen states hast.
und dann schau, ob nicht ein Haufen Fehlermeldungen im Protokoll sind, dass irgendwelche Datenpunkte nicht erstellt werden konnten.
Nee sehe schon - fehlt - oh dieses blöde JS, Admin5 Update.
Erstelle Dir ein neues JS im JavaScript Adapter und kopiere dieses Code rein:
Lass das Skript einmal laufen, stopp es dann wieder dann sollte alle Objekte da sein und Du solltest unter jedem "Folder" wieder Datenpunkte manuell anlegen können.
Wenn Du das mit dem Skript nicht willst, dann musst Du die Objekte manuell erstellen.
Wenn Dein zigbee2mqtt direkt unter mqtt.0 ist, dann geh auf die Ebene 0 und erstelle ein Verzeichnis mit dem Namen zigbee2mqtt - damit wird dies dann nachträglich als FolderObjekt angelegt.
Das Ganze ist leider seit August letzten Jahres so und irgendwie will man diese Überprüfung unbedingt global beibehalten.
-
@mickym
Ich habe das Skript ausgeführt. Stelle aber keine Veränderung fest.
Aus deinem Erläuterungen habe ich leider nicht ganz verstanden, ob und wo ich jetzt noch einen neuen Folder "zigbee2mqtt" anlegen muss? -
@hipohop sagte in zigbee2mqtt setup:
@mickym
Ich habe das Skript ausgeführt. Stelle aber keine Veränderung fest.
Aus deinem Erläuterungen habe ich leider nicht ganz verstanden, ob und wo ich jetzt noch einen neuen Folder "zigbee2mqtt" anlegen muss?Sind nun an den Punkten nachdem Du das Skript ausgeführt hast nun Bleistiftsymbole neben den Objekten? Also dort die ich in Deinem Screenshot als fehlend markiert habe?
-
@hipohop sagte in zigbee2mqtt setup:
..., dass meine Devices in mqtt-client (von iobroker) automatisch erscheinen.
Welchen mqtt Adapter hast du installiert?
Es gibt zwei.
Würde dir den oberen empfehlen. Eben als Client eingerichtet.
In diesem Beitrag sind (weiter unten) zwei screenshots mit den Einstellungen drin.
Und wie schon erwähnt, in diesem Beitrag ist eine Anleitung wie du zigbee2mqtt ganz einfach in ioBroker einbinden kannst.
Ob du dich bei dem mqtt-payload-format fürjson
,attribute
oderattribute_and_json
entscheidest, ist erst einmal egal.
Sobald mosquitto über einen topic ein payload von zigbee2mqtt empfängt, und ioBroker diesen topic aboniert hat, werden automatisch die Objekte angelegt. Da musst du nichts weiter zutun.
Etwas tricky wird es mit den Objekten, welche ein payload in Richtung mosquitto absetzen sollen.
Wie @mickym schon geschrieben hat, ist es etwas unglücklich, das man da nicht ohne weiteres an die Objekte kommt.
In diesem Post habe ich eine alternative Methode beschrieben, wie man die Datenpunkte auch unter admin5 an die Richtige Stelle bekommt.Lies dir bitte alles in Ruhe durch, und wenn dann noch Fragen sind, gerne noch einmal melden.
(nicht vergessen, das sind Beispiele von meiner Umgebung, du musst die topics an deine Struktur anpassen)@mickym sagte in zigbee2mqtt setup:
@hipohop Das ganze Problem ist leider der neue admin5 Adapter - da wurde mqtt ein Ei gelegt und leider werden diese ganzen Überprüfungen für den Adapter nicht ausgeschaltet ...
Das Ganze ist leider seit August letzten Jahres so und irgendwie will man diese Überprüfung unbedingt global beibehalten.
Kann dich voll und ganz verstehen, vor allem wenn man schon mit vorherigen admin Versionen gearbeitet hat.
Zum Glück müssen die publish-topics nur einmal angelegt werden.
Ich fände es auch angenehmer, das direkt in ioBroker anlegen zu können. -
@hydrotec sagte in zigbee2mqtt setup:
@mickym sagte in zigbee2mqtt setup:
@hipohop Das ganze Problem ist leider der neue admin5 Adapter - da wurde mqtt ein Ei gelegt und leider werden diese ganzen Überprüfungen für den Adapter nicht ausgeschaltet ...
Das Ganze ist leider seit August letzten Jahres so und irgendwie will man diese Überprüfung unbedingt global beibehalten.Kann dich voll und ganz verstehen, vor allem wenn man schon mit vorherigen admin Versionen gearbeitet hat.
Zum Glück müssen die publish-topics nur einmal angelegt werden.
Ich fände es auch angenehmer, das direkt in ioBroker anlegen zu können.Es geht schon noch - man muss halt nur diese ganzen Objekte immer wieder manuell erstellen. Na ja ich habe es nun mehrere Male angesprochen, aber es bewegt sich nichts. Inzwischen kann man zwar wieder Datenpunkte erstellen, aber nur nach dem vorgegebenen Schema. Das im mqtt ein Folder auch ein State haben kann, sieht dieses Konzept nicht vor. Wie gesagt es wäre so einfach, wenn man für mqtt und 0_userdata das alles wieder auf den vorigen Stand zurückdrehen würde. Für die Adapterentwickler kann man dann ja von mir aus dieses jetzige Verfahren beibehalten. Aber das jetzige Konzept wird nie das flexible mqtt Konzept nachbilden können. Da gibt es eben nicht unterschiedliche Objekte, sondern einfach states (so wie es vorher auch war).
-
-
@hipohop Lass alle Optionen aus, dann solltest Du mit subscriben von # ein Abbild des mosquitto brokers bekommen:
-
@mickym
Also mit dem "richtigen" mqtt client geht es - so weit so gut.
Die Objekte werden automatisch angelegt
Vielen Dank nochmal - wäre ich nicht drauf gekommen.
Ich mach für heute Schluß -
@hipohop
Hier ist genau das was du suchst:
https://forum.iobroker.net/post/660650Ist ein Adapter der direkt mit dem Z2M kommuniziert.
-
nur mal interessehalber, weden die public-topics in ioBroker automatisch mit angelegt?
EDIT: Vergessen zu fragen, hast du den im Einsatz?
-
@hydrotec
Habe ich nicht. Ich benutze Zigbee Adapter, und kein z2m extern.Ich denke, man macht nix kaputt, wenn man es einfach probiert. Falls was ist, kann ich deine Fragen direkt an die Entwickler stelen.
-
@dimaiv sagte in zigbee2mqtt setup:
Ich denke, man macht nix kaputt, wenn man es einfach probiert. Falls was ist, kann ich deine Fragen direkt an die Entwickler stelen.
Dankeschön für die Rückmeldung.
Hat mich ja nur einmal interessiert, selber nutze ich zigbee2mqtt über mosquitto.
Ist halt Geschmacksache, bzw. jeder wie er kann, wie ich etwas an ioBroker anbinde. -
@hydrotec @mickym
Hier ein kleine Zusammenfassung: Es funktioniert jetztDie Verwendung des anderen mqtt Clients hat bei mir den Durchbruch gebracht.
Alle topics wurden automatisch angelegt auch die Topics zum schreiben (z.B. meiner OSRAM SmartPlug+ Steckdosen) wurden automatisch angelegt.
Ich habe ein wenig probieren müssen bis ich die richtige Syntax gefunden habe, aber bei mir funktioniert folgendes.setState("mqtt.0.zigbee2mqtt.OSRAM4.set","OFF");
Vielen Dank euch allen für die tolle Hilfe!
PS: Kann ich den Thread hier irgendwie als closed/solved markieren?
-
@hipohop sagte in zigbee2mqtt setup:
PS: Kann ich den Thread hier irgendwie als closed/solved markieren?
Den ersten Eintrag entsprechend editieren.
-
@hipohop sagte in zigbee2mqtt setup:
@hydrotec @mickym
Hier ein kleine Zusammenfassung: Es funktioniert jetztDankeschön für die Rückmeldung
Schön das es jetzt wie gewünscht funktioniert.Ich habe ein wenig probieren müssen bis ich die richtige Syntax gefunden habe, aber bei mir funktioniert folgendes.
setState("mqtt.0.zigbee2mqtt.OSRAM4.set","OFF");
Das kommt daher, das du bei dir in der zigbee2mqtt Konfiguration unter
mqtt-payload-format
:json
eingetragen hast.
Für die Zukunft, also wenn du komplett auf ioBroker umgezogen bist, würde ich dir, erst mal für den Übergangattribute_and_json
empfehlen. Und später dann aufattribute
zu wechseln. Dann wird deinpayload
gleich in einzelne Objekte zerlegt.
Ist dann einfacher zigbee2mqtt zu steuern, bzw. mit scripts zu arbeiten.
(zum Testen, kannst du den ganzen Objektbaum löschen, wird ja wieder angelegt)Vielen Dank euch allen für die tolle Hilfe!
Immer wieder gerne
PS: Kann ich den Thread hier irgendwie als closed/solved markieren?
Da war @Thomas-Braun schneller.
(bei mir ist ja noch früh am Morgen )Gruß, Karsten