drei weitere nützliche Szenarien ohne Programmierung / Sudo Null IT News

Hallo Chabroviten! Dmitry ist wieder bei Ihnen, und da ich kein Programmierer bin, versuche ich, die Heimautomatisierung über die visuelle Umgebung von Node-RED einzurichten. Im ersten Artikel habe ich Hauptschalter-Skripte eingerichtet, die Haube eingeschaltet, wenn die CO₂-Konzentration überschritten wird, und ein Dashboard (Dashboard) auf Basis von Wiren Board 7 und Node-RED zusammengebaut.

Heute werde ich drei etwas komplexere Szenarien behandeln: ein dunkler Raum, Tag-/Nachtbeleuchtung, ein Thermostat für die Fußbodenheizung und Batterien.

Szenario 5: Thermostat (Fußbodenheizung und Radiatoren)

Im ersten Teil des Artikels habe ich gezeigt, wie Sie Informationen von einem Temperatursensor entnehmen können, der diese sendet, wenn sie sich ändert. Im Testkoffer befinden sich drei Temperatursensoren: im Modul WB-MSW v.3 und zwei DS18B20, die mit dem Konverter WB-M1W2 verbunden sind. Beachten Sie, dass die Sensoren DS18B20 1-Wire eignet sich hervorragend für Fußbodenheizungen.

Üblicherweise werden bei der großflächigen Verlegung eines intelligenten Bodens mehrere Temperatursensoren eingesetzt, um die Situation in verschiedenen Bereichen zu überwachen. Sie können die Temperatur für jeden Sensor anpassen, aber ich habe mich entschieden, den durchschnittlichen Temperaturwert für drei zu verwenden. Nur um zu zeigen, dass dies auch möglich ist.

Das Foto zeigt zwei Sensoren. DS18B20 und Konverter WB-M1W2. Sensoren DS18B20 muss in einem Rohr in einem Estrich montiert werden.

Um die Informationen von drei Sensoren zu berücksichtigen, reicht es aus, sie im wb-Eingabeknoten auszuwählen, woraufhin angezeigt wird, dass drei Kanäle berücksichtigt werden.

Achten Sie auf die Registerkarte “Bug” im rechten Teil des Fensters. Es ist deutlich zu sehen, dass wir Informationen von drei Sensoren erhalten. Um den Durchschnittswert zu erhalten, werde ich einen Änderungsknoten hinzufügen, der die Werte von msg.payload ändert, und eine Änderung an msg.math.avg hinzufügen, die dem Durchschnittswert entspricht.

Jetzt erhalten wir den durchschnittlichen Temperaturwert von drei Sensoren. Es bleibt die Aufnahme eines warmen Bodens zu programmieren, zu dessen Steuerung wir den K1-Kanal des Relaismoduls verwenden WB-MR6C v.2. An diesen Kanal wird im Demokoffer die Lampe einer der Tasten angeschlossen.

Zum Beispiel schalten wir einen warmen Boden ein, wenn der Raum auf 18 ° C abkühlt, und schalten ihn aus, wenn er sich auf 23 ° C erwärmt. Vergessen Sie nicht, den Typ msg.payload auszuwählen – ein numerischer Wert, keine Zeichenkette (ändert sich links neben dem Wertfeld).

Lassen Sie uns einen Switch-Zweigknoten hinzufügen. Der obere Zweig dient zum Einschalten der Heizung, der untere Zweig zum Ausschalten. Um die Fußbodenheizung einzuschalten, fügen wir einen Änderungsknoten hinzu und ändern den Wert von msg.payload (numerisch!) auf 1. Um ihn auszuschalten, fügen wir denselben Änderungsknoten dem unteren Zweig mit einem Wert von 0 hinzu.

Wir haben die Arbeit des warmen Bodens erfolgreich programmiert. Kommen wir nun zum Heizregister, das mit einem Thermostat ausgestattet ist.

Nehmen wir an, im Raum befindet sich ein Batteriethermostat, der einen Wert von 0 (geschlossen) bis 100 (offen) empfangen und den Raum anteilig heizen kann. Es gibt nichts einfacheres! Wir nehmen wieder den wb-input node, geben in den Eigenschaften den gewünschten Temperatursensor an (in diesem Fall WB-MSW). Dann fügen wir einen Switch-Zweigknoten hinzu und geben drei Bedingungen an.

Beispielsweise ist die Klappe bei Temperaturen unter 20 °C zu 100 % geöffnet, bei Temperaturen von 20 bis 23 °C zu 70 % und über 23 °C zu 50 %.

In jedem Fall verwenden wir den Änderungsknoten, der den Wert 100, 70 oder 50 an den Thermostat sendet. Vergessen Sie nicht, das Feld mit einer Zahl zu belegen, nicht mit einem String! In unserem Fall haben wir kein Thermostat angeschlossen, sondern eine dimmbare Glühlampe. Die Lampe wird an den ersten Kanal des Moduls angeschlossen WB-MDM3.

Dieser Schritt kann für alle Thermostate im Haus wiederholt werden.

Hurra! Wir richten die Arbeit des warmen Bodens und der Batterie ein! Und wie versprochen ohne eine einzige Zeile Code.

Szenario 6: Licht Tag/Nacht

Hier werde ich zwei grundlegende Szenarien betrachten. Erstens: Notbeleuchtung im Hof, die ich nachts einschalten und tagsüber nach dem Lichtsensor oder nach der astronomischen Zeit von Sonnenauf- und -untergang ausschalten werde. Zweitens: Innenbeleuchtung. Hier schalte ich von 7 bis 23 Uhr das weiße Licht ein, die restliche Zeit brennt die rote Notbeleuchtung.

Beginnen wir mit der Beleuchtung im Hof. Erstens die einfachste Option – entsprechend der astronomischen Zeit von Sonnenauf- und -untergang. Hier habe ich einen zusätzlichen Big Timer-Knoten installiert (node-red-contrib-bigtimer) über das Hauptmenü – Palettenverwaltung – Installieren.

In den Knoteneinstellungen ist es wichtig, den Breitengrad (Latitude) und den Längengrad (Longitude) Ihres Ortes anzugeben. In der obersten Zeile On Time wird die Einschaltzeit des Knotens eingestellt, in unserem Fall von Sonnenuntergang (Sunset) bis Sonnenaufgang (Sunrise). Dann genügt es, sich mit dem mittleren Ausgang des Big Timer-Knotens zu verbinden, im eingeschalteten Zustand (nachts) sendet der Knoten jede Minute 1, im ausgeschalteten Zustand (von Sonnenaufgang bis Sonnenuntergang) – 0.

In Big Timer muss nichts weiter konfiguriert werden. Dann fügen wir einfach einen wb-out-Knoten mit einem Lichtschalter hinzu, in unserem Fall eine K1-Glühlampe auf dem Modul WB-MDM3.

Die zweite Option ist per Lichtsensor. Hier werde ich den Sensor verwenden WB-MSW v.3.

Für den Sensor benötigen wir den Beleuchtungsparameter Illuminance, den ich über den wb-input node erhalte. Dann füge ich einen Switch-Verzweigungsknoten hinzu, wenn das Licht weniger als 10 beträgt, schalte ich das Licht ein (ändere den Knoten auf 1), wenn das Licht mehr als 30 beträgt, schalte ich das Licht aus (ändere den Knoten auf 0). Vergessen Sie nicht, den numerischen Typ anzugeben!

Der letzte Schritt besteht darin, wb-out-Knoten mit eingeschalteten Lichtern hinzuzufügen und den Wert über den Änderungsknoten auf 0 oder 1 zu ändern. In unserem Fall die K1-Birne am Modul WB-MDM3. Das ist alles!

Es bleibt die Beleuchtung im Raum einzustellen. Hier verwende ich wieder den universellen Big Timer Node, für den ich die Einschaltzeit von 7:00 Uhr bis 23:00 Uhr einstellen werde. Bei der Einstellung der Uhrzeit muss die Zeitzone berücksichtigt werden.

Der nächste Schritt ist der Verzweigungsknoten, der obere Pfad wird bei 1 (Tag) ausgewählt, der untere bei 0 (Nacht). Tagsüber muss ich den RGB-Streifen einschalten und das Licht auf Weiß stellen. Nachts schalte ich das RGB-Band ein und stelle das rote Licht ein. Das Band wird über den wb-out-Knoten und das WB-LED-Gerät (WB-MRGBW-D), der Wert 1 entspricht an, 0 – aus.

Außerdem stelle ich über den wb-out-Knoten den Farbton der RGB-Palette ein. Hier ist die Zeichenfolge 255;255;255 weiß und 255;0;0 rot. Diese Werte setzen die Änderungsknoten und übergeben sie dann an das RGB-Palettengerät im wb-out-Knoten.

Auf diesem ist alles bereit, wir stellen das Licht im Raum gemäß dem Zeitplan auf.

Szenario 7: Dunkelkammer

Ein dunkler Raum ist ein Raum ohne natürliche Lichtquellen. Die Hauptaufgabe des Szenarios “Dunkelkammer” besteht darin, das Licht im Raum basierend auf zwei Geräten automatisch ein- und auszuschalten: einem Bewegungssensor und einem Türöffnungssensor.

Leider reicht hier ein Bewegungssensor nicht aus, denn wenn sich eine Person in einer Duschkabine befindet oder bewegungslos auf einem Thron sitzt, dann funktioniert der Sensor womöglich nicht.

Die Logik ist folgende.

  1. Die Tür ist offen, es gibt Bewegung (wir gingen ins Badezimmer, um uns die Hände zu waschen) – ein Timer für 2 Minuten. Jedes Mal, wenn der Sensor eine Bewegung erkennt, wird der Timer aktualisiert.

  2. Die Tür ist geschlossen, es gibt Bewegung (wir gingen ins Badezimmer, um uns zu waschen) – ein Timer für 15 Minuten

  3. Die Tür ist offen, es gibt keine Bewegung (das Badezimmer verlassen, ohne die Tür zu schließen) – Timer für 2 Minuten

  4. Die Tür ist geschlossen, es gibt keine Bewegung (sie sind gegangen und haben die Tür geschlossen) – Timer für 5 Minuten

Beginnen wir mit dem Inject-Knoten, der unsere Sensoren jede Sekunde abfragt. Als Türsensor habe ich den QF3 Kippschalter des Testkoffers verwendet. Der offene Zustand des Kippschalters bedeutet eine offene Tür, geschlossen – geschlossen. In Ihrem Fall werden Sie wahrscheinlich einen Reed-Schalter mit denselben zwei Zuständen verwenden.

Ich habe einen wb.get-Knoten hinzugefügt, um unseren „Reed-Schalter“ abzufragen, dessen Rolle der QF3-Kippschalter spielt. Dann erfolgt die Verzweigung. Der obere Zweig bedeutet eine offene Tür, der untere Zweig eine geschlossene.

Als nächstes brauchen wir Verkehrsinformationen. Dazu werde ich den Bewegungssensor des Moduls abfragen WB-MSW v.3 über den wb.get-Knoten. Wenn es mehr als 20 ausgibt, dann gibt es Bewegung (oberer Ast), wenn es weniger als 20 ist, gibt es keine Bewegung (oberer Ast). Um alle vier Möglichkeiten abzudecken, brauche ich zwei wb.get-Knoten auf zwei Zweigen vom Türsensor.

Der oberste Ast: Die Tür steht offen, es bewegt sich (wir gingen ins Bad, um uns die Hände zu waschen). Hier füge ich einen Trigger-Knoten hinzu, der eine 1 an die Lampe sendet und 2 Minuten wartet, dann sendet sie eine 0 an die Lampe.Dabei habe ich das Kontrollkästchen „Verlängern, wenn eine neue Nachricht eintrifft“ aktiviert. Dadurch können Sie den Auslöser zurücksetzen, wenn Bewegungsinformationen empfangen werden, dh die Wartezeit um weitere zwei Minuten verlängern.

Es bleibt, eine Lampe an den Auslöser anzuschließen, und der obere Zweig ist fertig.

Nächste Verzweigung: Die Tür ist offen, es gibt keine Bewegung (das Badezimmer verlassen, ohne die Tür zu schließen). Hier füge ich mithilfe des Verzögerungsknotens eine Verzögerung von 2 Minuten hinzu. Danach werde ich den Bewegungssensor erneut abfragen, und wenn keine Bewegung erfolgt, schalte ich die Lampe aus. Eine erneute Abfrage ist erforderlich, um eine Situation mit Ausschalten der Lichter auf dem oberen Zweig zu vermeiden, da Informationen auf dem unteren Zweig mit einer Verzögerung von 2 Minuten gesendet werden. Das heißt, vor zwei Minuten gab es keine Bewegung, der untere Ast funktioniert, auch wenn gerade Bewegung ist.

Folgendes Szenario: Die Tür ist geschlossen, es gibt Bewegung (wir gingen ins Badezimmer, um uns zu waschen) – ein Timer für 15 Minuten. Hier habe ich einen Trigger-Knoten verwendet, aber ohne zu erweitern, wenn Bewegungsinformationen empfangen werden. Doch 15 Minuten reichen für alles aus. Das Licht geht nach 15 Minuten aus.

Geht eine Person früher, hilft hier das vierte Szenario, das Licht 5 Minuten nach der letzten Bewegungserkennung auszuschalten. Es ist nicht sehr vernünftig, weniger zu setzen, da eine Person auf einem Thron oder hinter einem Vorhang möglicherweise nicht jede Minute Bewegung erzeugt, aber in fünf Minuten wird es eine Bewegung geben, und hier wird die Logik mit einer Verzögerung von den oberen Ast gehen 15 Minuten.

Beim Testen wurde jedoch ein „Feature“ aufgedeckt: Wenn der Auslöser funktionierte, aber das Licht entlang des zweiten Pfads ausgeschaltet wurde (die Person ging und kam dann wieder herein), befindet sich der Auslöser möglicherweise in einem Wartezustand. Also habe ich den oberen Zweigen einfach ein Bewegungserkennungslicht hinzugefügt, um diese Art von Situation zu vermeiden.

Als Ergebnis haben wir das folgende Schema erhalten.

Die Schaltung kommt mit ihrer Arbeit zurecht, kann aber sicher optimiert oder anders gemacht werden. Der Zweck dieses Artikels war jedoch nicht, nach einem Ideal zu suchen, sondern die Möglichkeiten aufzuzeigen und die Leser zum eigenen Experimentieren anzuregen. Und Sie werden es sicherlich besser machen.

Fazit

Ich hoffe, dass die beschriebenen Szenarien für Thermostat, Tag- / Nachtbeleuchtung und Dunkelkammer für jemanden nützlich sind. Oder vielleicht inspirieren sie Sie dazu, Automatisierung auf Node-RED und Wiren Board oder einer anderen Plattform selbst einzurichten. Wenn Sie selbst etwas auf Node-RED eingerichtet haben, schreiben Sie bitte in den Kommentaren über Ihre Erfahrungen – es kann für jemanden nützlich sein.

Ich selbst plane, mich mit Node-RED auseinanderzusetzen und dann andere Automatisierungsplattformen auszuprobieren. Schreiben Sie in die Kommentare, welche Skripte auf Node-RED Sie sehen möchten und über welche andere Automatisierungssoftware Sie lesen sollten.

Similar Posts

Leave a Reply

Your email address will not be published.