Bewegungsmelder mit Tasmota in der Home-Automatic:
Heute möchte ich mich einmal mit der Steuerung durch einen Bewegungsmelder beschäftigen. Dazu habe ich mir den Bewegungsmelder HC-SR501 PIR besorgt. Der PIR-Bewegungsmelder arbeitet mit einem Infrarot-Sensor (PI-Sensor). Der Sensor erfasst die Temperaturveränderungen und spricht bei jeder Veränderung der Wärmestrahlung an.
Regler für die Empfindlichkeit, hier kann die Erfassungsreichweite eingestellt werden.
Regler für die Ansprechdauer, hier kann die Signallänge für das OUT-Signal eingestellt werden.
Jumper für das Schaltsignal, hier kann durch umstecken entweder das OUT- Signal High oder Low sein.
Was will ich machen?
Ich möchte über meine Home-Automatic eine Lampe einschalten sobald eine Bewegung erkannt wird. Dabei soll die Lampe noch einige Zeit nach der Bewegungserkennung weiter leuchten. Eine erneute Bewegung innerhalb der Nachleuchtzeit soll die vorgegebene Nachlaufzeit neu starten. Zur Kontrolle soll eine Rote LED leuchten wenn eine Bewegung erkannt wurde und eine blaue LED soll die Nachleuchtzeit anzeigen. Als Steuer- und Verbindungsglied zu meiner Home-Automatik wird eine Node MCU ESP8266 mit der Tasmota-Software verwendet.
Der Schaltungsaufbau:
Zur Stromversorgung verwende ich ein USB-Stecker-Netzteil da dies die billigste und einfachste Lösung ist. Diese Stecker-Netzteile kosten oftmals keine 4,- Euro. Da braucht man selbst nichts mehr konstruieren.
Die Node MCU ESP8266:
Die Node MCU ESP8266 muss zunächst mit Tasmota geflasht werden und mit meinem Haus-Netz sowie ioBroker verbunden werden. Siehe dazu im Home-Automatic Kurs die Kapitel unter C4.
Ist Tasmota auf die Node MCU ESP8266 aufgespielt und verbunden, muss diese konfiguriert werden.
Für die Geräteeinstellungen wähle ich für mein Projekt zunächst Generic (18) – (Speichern). Danach auf Port D6 einen Switch (1) als Eingang für das Steuersignal vom Bewegungsmelder. Auf Port D7 lege ich ein Relay (1) für den Ausgang zur roten LED. Auf Port D8 kommt noch ein Relay für die Blaue LED. Speichern nicht vergessen. Im Hauptmenü sind nun zwei Schalter eingefügt.
Switch1 und Relay1 sind (durch die 1) direkt verkoppelt. Spricht der Bewegungsmelder an, sollte die rote LED leuchten. Macht sie das ggf. umgekehrt, also leuchtet ständig und geht bei Bewegung aus, so muss der Jumper auf dem Bewegungsmelder umgesteckt werden. Jetzt sollte Bewegung und LED synchron sein.
Mein Objekt im ioBroker:
Mein Bewegungsmelder:
Damit ich den Bewegungsmelder in der Praxis testen und schalten kann baue ich ihn provisorisch in eine Elektro-Verteilerdose mit den Maßen 70 x 35 x 35 mm.
Nach dem Anschluss an die Spannungsversorgung dauert es einen Moment bis sich mein Bewegungsmelder im Netz und ioBroker angemeldet hat und schon beginnt er zu arbeiten.
Allerdings leuchtet nur die rote LED kurz auf wenn Bewegung erkannt wird. Ich habe den Regler für die Ansprechdauer ganz zurückgenommen. Wenn er weiter aufgedreht wird leuchtet die rote LED entsprechend länger. Dies will ich für meine Anwendung jedoch nicht. Hier soll die blaue LED die Ansprechzeit anzeigen und frei eingestellt werden. Dieses Signal wird später mein Steuersignal (Power2) für die Lampe.
Die Steuerung:
Mein Bewegungsmelder funktioniert. Jetzt sollte die blaue LED entsprechend meinen Wünschen (siehe oben), nach einer Erkennung noch einige Zeit nachlaufen. Diese Steuerung erledigt am besten ein Blockly Skript. Siehe hierzu ggf. Kapitel B6 und auch Kapitel C4c meines Home-Automatik Einsteigerkurses.
Das Skript könnte dann so aussehen:
Im Skript wartet der Trigger bis der Bewegungsmelder anspricht und die rote LED aufleuchtet (ist wahr). Die blaue LED wird ohne Verzögerung eingeschaltet und würde sofort wieder ausgeschaltet. Hier ist jedoch eine Verzögerung von 30.000 ms eingetragen, somit muss die blaue LED diese Zeit ausharren bis auch sie erlischt. Damit eine weitere Bewegung innerhalb der Leuchtdauer der blauen LED nicht unberücksichtigt bleibt setze ich den Hacken bei löschen falls. Eine Bewegung wird registriert und die 30 Sekunden beginnen wieder von neuen abzulaufen obwohl sie noch nicht erloschen war.
Letztlich will ich mit dem Signal eine Lampe aktivieren, die nach der Bewegungserkennung noch 30 Sekunden leuchtet. Am Tag, wenn es hell ist brauche ich aber keine Zusatzbeleuchtung. Daher will ich nur über Nacht eine Beleuchtung haben.
Das modifizierte Skript könnte so aussehen:
Jetzt wird die blauer LED und damit Power2 nur noch zwischen 19:00 Uhr abends und 06:00 Uhr morgens eingeschaltet.
Die Lampensteuerung:
Somit bleibt nur noch die Lampe in Verbindung mit dem Bewegungsmelder zu schalten. Um es übersichtlich und einfach zu erklären führe ich diesen Vorgang in einem separaten Blockly Skript durch.
Der Trigger wartet auf eine Änderung der blauen LED bzw. des Switches Power2. Verändert sich der Wert wird geprüft ob er wahr oder falsch ist. Bei wahr schaltet Power2 und somit meine Bürolampe an. Nach 30 Sekunden schaltet die blaue LED bzw. Power2 wieder aus. Es verändert sich also wieder etwas, was der Trigger registriert und prüft nun wieder auf wahr oder falsch. Jetzt ist der Wert falsch und die Lampe schaltet aus.
In VIS könnte das so aussehen:
Siehe hierzu ggf. meine Beschreibung unter T4 (Icon als Schalter) und T5 (Skript mit VIS Ein- und Ausschalten)
Tasmota neue Version:
Wer schon die neuere Tasmota Version auf dem ESP8266 geladen hat, für den sehen die Einstellungen unter Generic (18) so aus. Durch Vergabe der Nummern hinter Switch und Relay können beide verkoppelt werden.
Damit ist mein kleines Projekt fertiggestellt. Ich hoffe euch auf den Geschmack gebracht zu haben nun auch eine Steuerung mit Bewegungsmelder in eure Home-Automatik mit aufzunehmen. Wie ich meine Steuerung aufgebaut habe soll nur eine Möglichkeit aufzeigen wie so etwas zu realisieren ist. Es gibt mit Sicherheit auch andere und bessere Lösungswege.
In jedem Fall gilt, jeder sollte für sich selbst entscheiden was er einer automatischen Schaltung anvertraut und welche Folgen sich daraus ergeben.