NEWS
MQTT/zigbee2mqtt deconz - Ich stehe mir selbst im Weg
-
Hallo zusammen!
Ich habe jetzt über eine Woche verschiedenes ausprobiert und stecke gedanklich fest:
Ich wollte Philips Hue loswerden und smarte Thermostate anschaffen. Die bisherigen Leuchtmittel/steckdosen dienen dann als Router, um alle Thermostate erreichbar zu halten.
Step 1: Neben dem Iobroker deconz installiert. Der erkennt die Thermostate nicht.
Step2: der zigbee Adapter kann laut Doku auch nicht mit den Thermostaten
Step3: zigbee2mqtt Installation mit Sonoff Stick. (laut Doku werden meine Thermostate seit Anfang des Monats unterstützt) 40 Geräte angelernt. Sieht alles ziemlich gut aus.
Step 4: Kopplung mit iobroker. Letztendlcih so konfiguriert, dass der MQTT Adapter als Server agiert, zigbee2mqtt als output "attribute" macht und dann habe ich alle Optione im Objektbaum gesehen. Konnte aber durch Schreiben nichts verändern.
Step 5: Halben vormittag im hiesigen Forum verbracht, um rauszufinden, wie ich denn die "set" Attribute in den Objektbaum bekomme. dabei zufällig gelesen, dass der iobroker zigbee Adapter wohl auf zigbee2mqtt basiert. Das hieße doch, dass seit Anfang des Monat meine Thermostate supported werden. Auf zu Step 6
Step 6: zigbee Adapter von Iobroker installiert, konfiguriert und ein Thermostat angelernt. Wow das funktioniert. Dann ein paar Tests gemacht: Zieltemperatur Änderung auf dem Thermostat kommen direkt im Iobroker an. "Window Open" im iobroker gesetzt, kommt am Thermostat an. "Child lock" auf dem iobroker gesetzt, kommt auf dem Thermostat NICHT(!) an. Thermostat im Zigbee Adapter umbenannt. Taucht im Objektbaum -auch nach Löschen - nicht auf.
Was mache ich jetzt? Lerne ich alle Geräte direkt auf den iobroker um? Wenn ja, wie funktioniert das mit der Namensgebung? Kann ich darauf spekulieren, dass das Child-loc (das im zigbee2mqtt funktioniert) dann im iobroker auch geht?
Oder bleibe ich beim mqtt Adapter und versuche das mit dem Set umzusetzen? Das hat ja auch schon Zeit gefressen.Und natürlich habe ich etwas Druck im Nacken. Die Ehefrau vermisst die Routinen, die der iobroker bisher über PhilipsHue gemacht hat.
Ich würde mich über Input sehr freuen...
Gruß Christian
PS: Iobroker läuft in einer VM im Proxmox CLuster. Durchreichen des Sticks ist problemlos
-
@mendikant Also ich betreibe auch alles unter zigbee2mqtt - da die Unterstützung des conbee2 Sticks nur eingeschränkt (je nach Entwickler) mit dem zigbee-Adapter funktioniert. Auch wenn der zigbee-Adapter die gleiche Methode verwendet, sind es verschiedene Ansätze.
Ich würde Dir nur abraten, wieder umzustellen. Ich betreibe alles mit dem mqtt-Adapter und habe keine Probleme.
Du musst doch die Datenpunkte nur selber anlegen. Hier mal meine Lampe:
-
@mickym Für den Zigbee Adapter habe ich den Sonoff Stick verwendet....
Das Anlegen der Datenpunkte hieße aber dass ich für eine Leuchte ja sechs Datenpunkte anlegen muss:
jeweils set/get für an/aus Dimmstatus und Farbe?
Und bei den Thermostaten kann ich das noch gar nicht überblicken.
Das zu verskripten dauert wahrscheinlich länger als es von Hand zu machen, Ich habe 5 oder 6 verschiedene Leuchtmittel im Einsatz.
Das klingt als müsste ich abwägen 60 oder mehr Datenpunkte anlegen oder 40 Geräte neu koppeln...den Conbee 2 werde ich wohl wieder verkaufen....
Ich werde auf jeden Fall ne Nacht drüber schlafen.
Grüße
Mendikant -
@mendikant Quatsch - Du legst für jede Leuchte einen set Punkt an. Und steuerst alles nur über diesen Datenpunkt. Wenn Du an und Dimmen auf 50% willst, dann machst Du das in einem Aufwasch und schreibst in den set-Datenpunkt:
{"state":"on", "brightness":50}
Du kannst also mit einem Befehl beliebige Parameter mitschicken oder auch einzeln und colortemp und was weiss ich ... . Das ist wirklich easy-
-
@mickym Achsoo... Das lässt das ganze wieder anders aussehen.
-
@mendikant Du kannst die Lampen im zigbee2mqtt auch gruppieren und zusammen schalten - das funktioniert mit dem conbee2 auch besser als mit dem zigbee adapter. Hier mal ein Beispiel:
Die gruppe Schreibtisch enthält 3 Lampen:
Ich habe die Gruppe nur so genannt und die Einzellampen darunter. In der Gruppe nur ein set - und mit diesem werden alle 3 Lampen synchron geschaltet:
Und wie Du siehst brauchst Du dann auch nur einen set Datenpunkt pro Gruppe erstellen. Da ich die Lampen ja nicht einzeln schalten will, brauche ich bei den Einzellampen auch einen keinen set Datenpunkt, sondern nur für die Gruppe.
Man kann im Gegensatz zum zigbee Adapter sogar das Gruppenverhalten definieren.
Und bei den Thermostaten kannst natrülich auch alle Parameter aufeinmal einstellen die exponiert werden. Weiss zwar nicht welche Du hast, falls diese: https://www.zigbee2mqtt.io/devices/SPZB0001.html
siehst Du ja auch, wie Du Temperatur, Modus etc. einstellst-
Generell ist der get - Parameter nur erforderlich, wenn Du zu einem bestimmten Zeitpunkt aktiv den Status erneuert haben willst, ansonsten werden natürlich Änderungen direkt gepublished.
-
@mendikant sagte in MQTT/zigbee2mqtt deconz - Ich stehe mir selbst im Weg:
Das klingt als müsste ich abwägen 60 oder mehr Datenpunkte anlegen oder 40 Geräte neu koppeln...
Bis auf die get und set Punkte wird doch alles automatisch über die GUI des zigbee2mqtt angelegt.
-
@mickym Das hier ist mein Thermostat:
https://www.zigbee2mqtt.io/devices/TS0601_thermostat_1.htmlAber ich merke, Du arbeitest ganz anders als ich. Ich baue mir die Szenen alle im iobroker. Dabei steuere ich Lampen wenig einheitlich. Im Esszimmer z.B. sind 7 Leuchten, die je nach Gelegenheit anders angesteuert werden. Aber alle immer unterschiedlich. Und da ist es für mich einfacher das in den Szenen im Iobroker zusammenzuklicken. Wenn ich das im mqtt anlege, habe ich ein weiteres Objekt im Objektbaum
Weiterhin ist mir das "set" via mqtt zu unkomfortabel. Das Risiko von Tippfehlern kommt hinzu.
Das Problem der Benamung kann ich mit dem Adapter "alias" umgehen...Ich schlafe nochmal drüber,tendiere aber zum Wechsel auf zigbee
-
@mendikant Ich halte Dich nicht davon ab - bezweifle aber ob es eine gute Wahl ist. Ich nutze ja auch NodeRed als Logikmaschine^^ Und klar kann man die Gruppen auch einzeln ansteuern.
-
@mickym So, ich habe die Geräte gestern umgezogen, allen einen Alias verpasst (Was für eine tolle Idee.)
Und jetzt passe ich Räumeweise die Geräte an und bastel mal ein paar neue Sichten.Nodered als Logikmaschine werde ich mir auch mal anschauen. Ich denke, aber eins der nächsten Dinge wird ein Tablet an der Wand im Esszimmer sein.
Wo sollte ich bzgl Rode Ned anfangen zu lesen?
VG
Mendikant -
@mendikant Nun als Logikmaschine - kannst du im iobroker neben dem einem simplen regelbasierten Logik (rules) und speziellen Adaptern, die Dir "das Programmieren" abnehmen, wie der Shutter-Control Adapter oder Heating-Control generell mit Javascript.
Wenn Du Dir den Javascript Adapter installiest hast Du in der Regel diese 4 Möglichkeiten zur Auswahl:
Im Großen und Ganzen basiert der ganze iobroker auf NodeJS und Javascript, soweit ich das weiß.
Wie gesagt, Du hast mit dem Javascript Adapter die Möglichkeiten:
- Mit Rules einfache Wenn-Dann Regeln erstellen.
- Mit Javascript zu programmieren: Ist im Prinzip eine für Browser entwickelte Scriptsprache, hat aber nichts mit Java selbst zu tun. Hier mal ein Tutorial zu JS, das ich gerne benutze.
- Typescript ist ein von Microsoft angepasstes Javascript, dass einen zwingt "typsicher" zu programmieren. Auf dieser Seite (Handbuch) findest Du ein Link zu einem Tutorial auf den Microsoftseiten.
Nun gibt es eben noch 2 grafische Entwicklungstools, die beide aus Javascript basieren und die einem das Code - sprich Textzeilen zu schreiben, abnehmen sollen, so dass Du Dich bei der Programmlogik auf den Ablauf konzentrieren kannst.
Das ist zum
- Blockly - ist ein grafisches, basierend auf Javascript, Entwicklungs Tool von Google . Es wird zwar in der iobroker Community inzwischen größtenteils eingesetzt, Erweiterungen finden aber in meinen Augen nur begrenzt zur Integration in verschiedene Plattformen (u.a. in den iobroker) statt und sind beispielsweise mit NodeRed nicht ansatzweise vergleichbar. In meinen Augen ist es auch nicht übersichtlich und Du musst halt immer die passenden Puzzleteilchen suchen, was gerade am Anfang sehr nervig sein kann. Allerdings wird von den meisten hier Blockly genutzt - gibt aber auch NodeRed User hier im Forum, ein eigenes Unterforum hier..
- NodeRed - ist ein grafisches, basierend auf Javascript, Entwicklungs Tool von der IBM, das seit 2016 der OpenSourceCommunity übergeben wurde. Bis auf ganz wenig Spezialfälle kann man das gleiche machen, wie mit Blockly und ist über den NodeRed Adapter sehr gut in den iobroker integriert. Im Gegensatz zum Blockly ist die allgemeine Unterstützung wesenentlich höher und es gibt ein Vielzahl von Nodes, die von der Community bislang entwickelt wurde. Man erkennt diese Nodes immer am Namen, da sie alle mit node-red-contrib beginnen. Ein weiterer Vorteil von NodeRed ist also, wenn mal ein Adapter im iobroker nicht so tut, wie er soll oder nicht verfügbar ist, dass es ggf. eine Alternative der direkten Ansteuerung in NodeRed gibt.
So nun zum Lesen oder zu Dokumentation:
- Ich empfehle mal zum Einlesen nicht die offizielle Literatur, sondern einen Blog, da hier die Benutzung von NodeRed in Zusammenhang mit dem iobroker sehr gut dargestellt wurde: https://www.smarthome-tricks.de/software-iobroker/iobroker-node-red-teil-1-grundlagen/
- Ansonsten gibt es auch von M. Kleine auch auf deutsch ein paar Einsteigervideos: https://haus-automatisierung.com/nodered-tutorial-reihe/
- Mein absoluter Favorit ist jedoch - wenn englisch kein Problem ist - mein Meister Steve Cope:
https://stevesnoderedguide.com/
für verschiedene Anwendungsfälle hat er auch direkt Videos produziert. Hier mal seine Playlist:
https://www.youtube.com/playlist?list=PLk0D2S-fqJ7YvR1wrpl8A4mhtBbYOlsE4
Du wirst Dir aber sicher keine 71 Videos am Stück reinziehen. - Zum Schluss noch die offizielle Dokumentation (englisch) mit dem NodeRed Forum.
Damit hast Du quasi eine Übersicht, die Dich überall hin verweist.
-
@mickym Jetzt habe ich den Tab seit über 10 Tagen offen, damit ich dran denke, mal Node.js auszuprobieren.
Szenen bekomme ich hin, Blockly auch.. Javascript habe ich mal angefangenn, aber ich bin kein Programmierer.
Bash-Scripte sind mein Maximum.Achja der Umzug auf den Iobroker Adapter lief gut. Dank des Adapters Alias, haben die jetzt vernünftige Namen und ich habe die Listenfunktion entdeckt. Sehr hilfreich.
-
@mendikant Wenn Du Blockly hinbekommst, bekommst auch NodeRed hin. Das geht auch mit zusammenklicken. Schau Dir einfach den ersten Artikel an - da siehst wie man Stück für Stück vorgeht. Aber ich will Dich um Gottes Willen zu nichts überreden. Wenn Du mit Blockly glücklich bist, dann sei es weiterhin. Javascript kannst Du sowohl in NodeRed als auch in Blockly verwenden. Beide basieren auf NodeJS und sind in JS programmiert.
-
@mickym Die Artikelreihe ist wirklich super. Im zweiten Beispiel kam dann ja direkt der timestamp und aus dem ersten mit dem iobroker in war mir klar, dass ich jetzt iobroker out brauche. Damit ist meine Homeoffice Beleuchtung morgens um 5:45 erfolgreich in nodered umgezogen...