Tag 17: Zeitgesteuerte Lichter
Hinter dem Türchen des 17. Tages befindet sich ein weiteres Poti. Das bedeutet, dass nun für jede LED genau ein Poti zur Verfügung steht. Damit können wir das Programm von Tag 13, die smarten Lichter, um eine etwas praktischere und intuitivere Dimm-Funktion erweitern. Außerdem werden wir heute sehen, wie man mit Node-RED zeitgesteuerte Ereignisse startet.
Sie müssen das Programm des heutigen Tages in der Weboberfläche aktivieren. Anschließend können Sie den heutigen Flow in die Node-RED-Umgebung einfügen, natürlich nicht, ohne die vorherigen Flows zu deaktivieren und das MQTT-Topic an Ihre persönliche ID anzupassen.
Die LEDs können nun, wie schon bekannt, über die Hardware-Buttons oder über das Userinterface anund ausgeschaltet werden. Die Helligkeit der einzelnen LEDs wird über die Potis gesteuert. Als Alternative zu den Buttons gibt es die Inject-Nodes unten links. Über diese können Zeiten angegeben werden, zu denen ein Befehl an das Board gesendet wird. Dazu müssen Sie wieder einfach nur doppelt auf den entsprechenden Node klicken, und schon können Sie einen Zeitpunkt und auch Tage auswählen, an denen die Nachricht geschickt werden soll. Somit können Sie beispielsweise eine automatische Lampe für Räume oder ein Aquarium einstellen oder an Arbeitstagen eine spezielle Beleuchtung aktivieren – ganz automatisch und ganz im Sinne von Smarthome.
Hallo,
für Tag 17 wird mir das Dashboard von Tag 14 angezeigt.
Kein Dashboard Layout von Tag 17.
Was muss man machen, keine Beschreibung vorhanden für den Fall.
Hallo Leute,
bis hier hab ich alles hinbekommen! Super Sache das Ganze.
Lieder funktioniert meine Inject Node at a specific time nicht?
Hab die Zeitzone auf dem PI zurückgesetzt und alles neu gestartet, ohne Erfolg.
Habt Ihr eine Idee woran das sonst liegen könnte?
Zeit setzen und depoyen nicht vergessen
Danke für deine Antwort. Das mache ich ja und trotzdem funktioniert das mit der Zeit nicht.
Injects die Millisekunden zählen funktionieren nur die Injects mit Uhrzeit nicht…
Frage an die Fortgeschrittenen hier: Ich möchte den „pin_state“ von LED1 und LED2 auslesen bzw. weiterverarbeiten, der mir über [PID]/out geliefert wird. Dort ist das Ganze aber verschachtelt in einem „array“ als „object“ abgelegt. Irgendwie gelingt mir das nicht. Am Ende möchte ich in Abhängigkeit des Wertes „pin_name“ (LED1 oder LED2) den jeweiligen Wert „pin_state“ haben (msg.payload).
Beispiel:
[PID]/out –> wenn „pin_name“==“LED1“, dann lese Wert aus „pin_state“ von LED1 –> setze msg.payload mit diesem Wert (boolean)
Ist echt tricky sowas zu zerlegen. Ich hab mich mal dran versucht: https://gist.github.com/leofonic/380269ec90ff1178e569915ce1883ee5
Wow! Danke. Funktioniert einwandfrei. Auf das „convert to object“ bin ich nicht gekommen. Ich habe mir nach jedem Schritt in Deiner Lösung ein Debug-Node gesetzt und jetzt verstanden, wie die Zerlegung in mehreren Stufen funktioniert. Ist echt tricky, Node-RED ist Neuland für mich. Aus dem User-Guide (https://nodered.org/docs/user-guide/messages) bin ich nicht richtig schlau geworden, vor allem, weil Beispiele fehlen.
Das „convert to object“ ist das was in den Beispielen einfach „json“ heißt, ich dachte das hast du schon weil in deinem Screenshot ein Objekt ist, bei mir kommt direkt aus dem mqtt node ein json String. Aber Hauptsache es geht, bin auch node-red Anfänger ;)
Ich hatte vor lauter Probiererei eine falsche Action (Always convert to JSON-String) gesetzt…
Zwei kleine Fehler sind mir aufgefallen:
Im Beschreibungstext steht „Damit können wir das Programm von Tag 13, die smarten Lichter,…“ –> das war aber der Tag 14!
Im Dashboard des heutigen Tages (17) wird „Day 14“ angezeigt.
Ich habe mir zusätzlich auch noch die aktuellen Poti-Werte im Dashboard anzeigen lassen.
Hier die Nodes dazu:
du hast die LED-Nodes aus dem 14 Tag kopiert!
Wähle für die Group ein andere.
Nein, habe ich nicht. Die beiden Nodes LED1 (on/off) und LED2 (on/off) waren im Source-Code schon falsch. Dort steht fälschlicherweise Day14 statt Day17 drin. Das ist auch in Deinem Screenshot im 2. Beitrag zu sehen. Erst bei Deinen späteren Versuchen steht dann Day17…
das stimmt, da habe ich gar nicht darauf geachtet, sorry.
Aber mit der ‚Group‘ stimmt.
was mach ich falsch.
keine Werte und drittes Feld.
Flow
Werte jetzt ja.
In ‚get values‘ den richtigen Wert setzten.
Aber drittes Quadrat ist noch.
Bild
Schwere Geburt, gleiche Gruppe (Group).
Sh… wenn man mit dem gleichen Namen einige hat.
Woran kann man die unterscheiden?
Funktioniert gut. Die Inject-Nodes kann man mit payload „boolean“ auch direkt an die Dashboard-Switch-Nodes hängen. Dann werden bei einer Auslösung („Zeitschaltuhr“) auch die Dashboard-Switches aktualisiert bzw. diese zeigen dann den gesetzten Status gleich an.
super, danke
funktioniert.
Ich hatte beim ersten testen nicht beachtet das du extra boolean geschrieben hast und auch für so ‚Dumme‘ wie mich ein Bild angefügt hast.
Aber nun funktioniert es un mit Rückmeldund der Taster.
Danke
Hallo,
noch ein Hinweis, wer die Inject-Nodes benutzt, darf dort nicht nur die Zeit/Zeiten ändern, sonder muß das ganze noch
‚deployen‘
Hallo,
bei mir funzt es auch bisher ganz gut und macht auch riesig Spaß.
Nur heute hatte ich in unregelmäßigen Abständen, ca. alle paar Minuten, einen Reboot auf dem NodeESP.
In meinem Setup versuche ich alles im heimischen Netz zu halten: Ein Raspberry PI 2B als Node-RED- und Mosquitto-Server am LAN, Node-RED-Client im Browser und dazu MQTTBox oder MQTT.fx zum Testen und Loggen auf Windows 10.
Auffällig ist, dass innerhalb weniger Minuten schon über 1000 MQTT Telegramme über meinen Broker laufen. OK, die analogen Potis zappeln halt auch ständig. Aber damit sollte eigentlich weder der PI noch das Netzwerk ausgelastet sein (was sich noch ändern könnte, wenn dann mal giga-zig Things im Internet mitspielen).
Lässt sich hier irgendwas konfigurieren oder hab ich hier ein Netzwerkproblem?
Schön wäre natürlich, wenn es die Möglichkeit gäbe, hier an der Firmware unseres Boards direkt zu drehen. Oder zumindest mit den Sourcecode könnte man das Verhalten besser verstehen, als bisher mit der Blackbox.
Bei mir startet das Board sofort neu sobald ich irgendwas mache, ob am ESP selber oder über Dashboard, egal.
Ich habe das gleiche Verhalten wie Ray… das Board rebootet bei diesem Experiment unregelmäßig plötzlich neu. Auch ich habe alles im heimischen Netz. Ich denke nicht, dass es an unseren Netzwerken liegt.
Bild 2
Bild
Hallo,
auch das funktionierte auf anhieb. Danke.