NEWS
Node Red: Fragen zu einfachen Steuerungsaufgaben
-
@bastel2021 sagte in Node Red: Fragen zu einfachen Steuerungsaufgaben:
@mickym okay alles klar, und Vorher dann erst Mosquitto installieren und dann Zigbee2mqtt?
Ja ich habe mosquitto - wie gesagt der zigbee2mqtt Adapter bietet auch einen mqtt-Broker an (dann geht es ohne mosquitto). Wenn Du es so aufbauen möchtest, wie ich es derzeit habe, brauchst du vorher den mosquitto.
-
@mickym Also zigbee2mqtt schickt Objekte an mosquitto und dieser wiederum schickt die Objekte an den mqtt Adapter in IOB. Von da aus kann dann die Logik mit Node Red aufgebaut werden. Richtig?
-
@bastel2021 zigbee2mqtt schickt Daten an einem mqtt Broker. Das kann mosquitto sein oder der zigbee2mqtt Adapter direkt.
Wenn Du mosquitto nutzt - dann kannst du den mqtt-Adapter als Client definieren um alle Daten des mosquitto im iob zu haben. Du kannst dann über diese Datenpunkte aus NodeRed zugreifen.NodeRed hat aber auch eigene mqtt Nodes - so dass Du falls Du mosquitto nutzt auch direkt mit NodeRed steuern kannst, dann brauchst Du den mqtt Adapter im iobroker nicht. Das heißt im Fall von mosquitto hast Du die Wahl ob Du direkt über mosquitto steuern willst oder über den mqtt Broker. Man kann zum Beispiel direkt über mosquitto steuern, aber über den iobroker hast Du mit dem mqtt-adapter quasi einen Monitor um zu sehen, wie der Status im mosquitto gerade aussieht.
-
@mickym Okay etwas klarer jetzt. Hört sich sehr interessant an. Das werde ich genauso versuchen umzusetzten
-
@mickym Hallo!
Ich habe jetzt ein paar Datenpunkte im alias Ordner erstellt.
Funktionierte leider nicht auf anhieb (die Dimmfunktion für die du den Flow erstellt hast). Hab dann aber den Fehler gefunden:
Da ich die Namen der Datenpunkte im alias.0 geändert habe musste ich natürlich auch die switch Note anpassen.
Wobei sich für mich jetzt die Frage stellt warum die switch Node das überhaupt unterscheiden kann. Denn aus der switch Node davor (nur true), kommt in der Debug die ich daran gehängt habe, auch nur true raus. Das kann ja nur von der IOB in Node kommen, aber so ganz klar ist mir das nicht. -
@bastel2021 Nun Du prüfst ja in den switch Nodes verschiedene Eigenschaften des Nachrichtenobjektes ab. Einmal die payload und einmal das topic. Lass Dir mit der debug Node mal das komplette Nachrichtenobjektes ausgeben, dann siehst Du ja die unterschiedlichen Eigenschaften.
Die payload - enthält in der Regel den Wert - also die Nutzlast und das topic die Bedeutung, also woher es kommt.
Ein gutes Beispiel ist ein Datenpunkt der die Temperatur ausgibt. Die payload enthält die Temperatur zum Beispiel: 23. Es könnten aber theoretisch 23 Grad egal woher sein, es könnten aber auch 23 Watt oder 23 € oder was auch immer sein.
Nun sagt Dir das aber nichts, da du ja nicht weißt was für eine Temperatur das ist. Die Aussentemperatur, die Temperatur im Schlafzimmer oder im Wohnzimmer. Deswegen setzt man meist noch das topic um dem Wert eine Bedeutung zu geben. Wenn man das nicht selbst setzt, setzt die iobroker -IN Node das topic auf dem Datenpunkt aus dem der Wert stammt und Du weisst dann welche Bedeutung die payload hat. -
Payload: alias/0/Wohnzimmer/4_Fach_Schalter/Helligkeit_heller : msg.payload : boolean
Topic: trueist das so richtig? Wenn ja, dann bezieht sich die Auswahl string in der switch Node auf den Payload?
EDIT: Natürlich genau falsch: Payload und Topic vertauscht!!!
-
@bastel2021 In der ersten switch Node bezieht sich die switch Node auf die payload- in der 2. switch Node auf das topic.
das topic enthält in wie du siehst:
den string heller - deswegen dirigiert die 2. switch Node die Nachricht an den 1. Ausgang
-
@bastel2021 Nein - Du gibts in der Eigenschaft an auf welche Nachrichteneingenschaft es sich bezieht.
Die erste switch Node - lässt grundsätzlich alle Nachricht durch deren payload = true ist. Die 2. switch Node analysiert das topic des Nachrichtenobjektes und das ist nicht true sondern:
alias/0/Wohnzimmer/4_Fach_Schalter/Helligkeit_heller.
Mach einfach mal hinter die 1. Switch Node eine debug Node und lass Dir das gesamte Nachrichtenobjekt ausgeben:
-
@mickym
sieht schon anders aus, sogar mit BeschreibungOkay verstanden! Diese unterschiede und Begriffe muss man natürlich drauf haben!
Perfekt! Und mal wieder Danke für die Erläuterung. So gehts Schritt für Schritt voran -
@mickym Guten Abend, ich muss da noch mal eine Frage los werden.
Ich möchte ja wie schon geschrieben auf zigbee2mqtt wechseln. Nun habe ich schon die Installation so weit vorbereitet. Es stellt sich nun die Frage wie weiter vorzugehen ist. Zu welchem Zeitpunkt spiele ich das IOBroker Bachup ein? Und was ist mit dem Zigbee-Adater in IOBroker? Der Adapter ist ja nun auch mit dem Controller verbunden und da könnte es ja konflikte geben,
Wie sollte ich da am besten weiter machen? -
@bastel2021 Du musst Dich entscheiden, entweder zigbee-Adapter oder zigbee2mqtt - weil wie Du richtig sagst, nur einer auf den Koordinator zugreifen kann.
-
@mickym zigbee2mqtt, ohne Apapter in IOBroker
-
@bastel2021 Nun dann musst Du einen mqtt-Broker installieren - ich empfehle mosquitto
einfach mit
sudo apt install mosquitto
installieren,
zigbee2mqtt musst dann wenn Du einen funktionierenden MQTT-Broker hast nach Anleitung am Besten installieren:
https://www.zigbee2mqtt.io/guide/installation/01_linux.html
Nur kein node js installieren - das ist im Rahmen der iobroker Installation bereits erfolgt:
-
@mickym Oh, das ist leider schon geschehen! Mosqutto ist schon installiert
-
@bastel2021 Was ist schon geschehen?
-
@bastel2021 sagte in Node Red: Fragen zu einfachen Steuerungsaufgaben:
@mickym Oh, das ist leider schon geschehen! Mosqutto ist schon installiert
Na super - dann brauchst ja nur noch zigbee2mqtt installieren.
-
@mickym node js ist schon installiert und auch Zigbee2mqtt
-
@bastel2021 Na dann hast Du ja alles?
-
@mickym was mache ich dann mit iobroker? neu installieren oder Backup einspielen?
Also nochmal der Reihe nach: Neue SD-Karte und darauf ist Mosquito und zigbee2mqtt installiert