Erweiterte Alarmanlage mit Remote, LED Anzeige und Timer-Signal

Funktionsweise:

Bei Aktivierung der Alarmanlage über die Fernbedienung läuft ein Countdown mit hörbarem Pieper (D0) für 30 Sekunden, danach ist die Anlage scharf. Wenn man nun den Raum betritt hat man 30 Sekunden Zeit, um die Anlage zu deaktivieren, dies geschieht auch über die Fernbedienung, dabei blinkt die LED WS2812 an pin D5 rot und bei deaktivierung Grün. Falls nicht deaktiviert wird zieht das Relais mit der Sirene nach 30 Sekunden an, der Alarm wird aktiviert und die LED Blinkt weiss.

Der Vorteil an dieser Alarmanlage ist, dass man sich den Alarm per MQTT z.B. auf das Handy schicken lassen kann, hier kann etwa Node Red, Pushover, Telegram, iobroker u.ä. verwendet werden.

BAUTEILE:

  • 433mhz PIR
  • ESP8266
  • Relais
  • 433mhz Empfänger
  • 433 MHZ Fernbedienung
  • Sirene
  • WS2812
  • Piezo Pieper

In diesem Projekt nutze ich einen D1 Mini Wemos mit Relais Shield als Herzstück, es kann jedoch auch ein NODEMCU o.ä. verbaut werden.
Auf dem ESP8266 wird Tasmota geflasht, wie das geht findet man bei Youtube zuhauf, darum gehe ich hier nicht mehr darauf ein. Achtet bitte darauf dass ihr „Tasmota-sensors.bin“ flasht, da diese Version den 433Mhz RF Empfänger ansprechen kann.

Nachdem man nun im Browser die Tasmota-Oberfläche aufruft werden die Einstellungen wie in der Abbildung, unter Configuration -> Configure Module, vorgenommen.

ESP8266 Anschlüsse:

  • D1 / GPIO5 = Relais für Sirene
  • RX / GPIO3 = DATA Pin von RF Receiver
  • D5 / GPIO14 = LED (WS2812)
  • D0 /GPIO16 = Piezo (kann hier als Relais angegeben werden)

Empfangene Daten:
Als erstes müssen wir die Daten des Bewegungsmelders und der Fernbedienung auslesen. Dies geschieht in dem wir auf die Konsole wechseln und den Bewegungsmelder auslösen und anschließend an der Fernbedienung die Scharf und die unscharf Tasten auslesen. Schreibt euch die Hex Werte auf. Die Zeile in der Console sieht dann in etwa so aus:
Data":"0xD1155E","Bits":24,"Protocol":1,"Pulse":402

Die Befehle sind alle im Tasmota Wiki nachzulesen, hier nur ein Beispiel: power1 wäre das Relais gefolgt von einer Zahl 0,1,2,3. Power1 0 wäre Relais aus, Power1 1 wäre Relais an, Power1 2 wäre Toggle, also immer der jeweils andere momentane Zustand und Power1 3 wäre Blinken.

In folgendem Beispiel nutze ich den HEX Wert 0xD1155E von meinem Bewegungsmelder (PIR), 0x658494 für unscharf und 658492 für scharf an der Remote.


Vorbereitung:
Grundsätzlich sind einige Einträge vorzunehmen bevor die Alarmanlage an den Start gehen kann, die folgenden Befehle müssen in die Konsole, mit anschliessender Eingabetaste, getippt werden:


PowerOnState 0
BlinkTime 5
BlinkCount 30
rule1 on RfReceived#Data=0x658494 do backlog rule2 0; power2 3; color FF0000; Power3 3; delay 300; rule2 1; power2 0 endon on RfReceived#Data=0x658492 do backlog power1 0; rule2 0; color 00FF00; power3 1; power2 0; ruletimer1 0 endon
rule2 on RfReceived#Data=0xD1155E do backlog power2 3; power3 3; RuleTimer1 30 endon on Rules#Timer=1 do backlog power1 1; color FFFFFF; power3 3; delay 1200; power1 0; color FF0000; power3 1; endon

rule1 1
rule2 1

Erklärung Einstellungen:

PowerOnState 0 – Geht sicher dass das Relais nach dem bootvorgang aus ist, damit die angeschlossene Sirene nicht los jault. Blinktime 5 setzt die Zeiten zwischen An-Aus im Blinken in 1/10 Sek. – Blinktime 10 entspricht 1 Sek., hier also 0,5 Sekunden. BlinkCount 30 (lässt die LED oder Piezo 30 mal blinken, immer wenn der Befehl „power2 3" auftaucht, blinkt Relais2 30 x – Blinkcount 0 wäre Unendlich blinken)

Power1 = Relais, Power2=Piezo, Power3=LED

Rule1:
In Rule1 Wird mittels einer Fernbedienung einfach nur Rule2 ein oder aus geschaltet (rule2 0). Am Ende wird durch „power1 0“ das Relais, also die Sirene sofort auf 0 gesetzt wenn die Alarmanlage mit der Fernbedienung aus geschaltet wird. Aber nun der Reihe nach:

Wenn der Code 658494 von der Fernbedienungstaste „AN“ empfangen wird soll folgendes passieren:

rule1 – Befehlszeile1, on RfReceived#Data=0x658494 – wenn der AN-Code der Remote empfangen wird, do backlog – dann reihe mit Semikolon getrennt folgendes aneinander, rule2 0;– Befehlszeile2 deaktivieren, damit die Alarmanlage vorerst aus ist, power2 3; Relais2 soll blinken, der code 3 steht für blinken, hier ist der Piezo anstelle des Relais angeschlossen, color FF0000;– Die Farbe der WS2812 soll auf rot geschaltet werden, hier wird der Hex Wert verwendet welcher 6 Stellen hat, RGB – 2 für Rot, 2 für Grün und 2 für Blau, da im Hexadezimalsystem F der grösste Wert ist wird hier Rot voll angesteuert, 99 z.B. wäre ein schwächeres Rot, Power3 3; – LED blinkt, delay 300; – pausiert die Befehlskette für 30 Sekunden, rule2 1; – Befehlskette 2 wird aktiviert, power2 0 – Piezo hört auf mit piepen, endon – erster Teil der Befehlsfolgen endet hier, on RfReceived#Data=0x658492 – neue „wenn-dann-Funktion“ startet, hier wird die Frequenz der Aus-Taste von der Remote ausgewertet, do backlog – mit Semikolon getrennte Befehle werden eröffnet, power1 0; – Relais mit Sirene soll umgehend aus geschaltet werden, rule2 0; – Befehlszeile2 mit der Alarmfunktion soll deaktiviert werden, color 00FF00; – LED Farbe soll grün werden, power3 1; – LED soll leuchten, power2 0; – Piezo aus, ruletimer1 0 – der erste Countdown soll auf 0 gesetzt werden, also aus, endon – das war’s

Rule2:
Falls der RF-Empfänger das Signal des PIR empfängt, wird das Relais eingeschaltet, danach wird ein interner Timer auf 120 Sekunden gesetzt und wenn dieser abgelaufen ist wird das Relais wieder ausgeschaltet, heisst, die Sirene schellt 120 Sekunden wenn sie nicht mit der Fernbedienung aus geschaltet wird. Man beachte dass hier in rule2 alles nur ausgeführt wird wenn in rule1 durch die Remote diese hier aktiviert wurde, das war der Befehl rule2 1 .

Hier die genaue Erläuterung:

rule2 – Befehlskette2 wird aktiviert, on RfReceived#Data=0xD1155E – wenn eine Bewegung vom Bewegungsmelder erkannt, also der Code vom PIR gesendet wird, do backlog – dann starte eine Kette mit Semikolon getrennter Befehle, power2 3; – Piezo soll hupen, also blinken, power3 3; – auch die LED soll blinken, RuleTimer1 30 – countdown Nr1 wird auf 30 sekunden aktiviert, endon – Ende von Teil1, on Rules#Timer=1 do – wenn der Countdown abgelaufen ist dann… backlog – starte mit Semikolon getrennte Befehlskette, power1 1; – Relais mit Sirene zieht an, color FFFFFF; – LED wird auf Weiss gesetzt, also RGB zu 100% an, power3 3; – LED blinkt, delay 1200; warte 1200 1/10 also 120 Sekunden, power1 0; nach dieser Zeit schalte Relais mit Sirene aus, color FF0000; – LED Farbe auf Rot setzen, power3 1; – LED an schalten, als Signal dass ausgelöst wurde, endon – das war’s

Abschluss:

Zu guter letzt müssen rule1 und rule2 noch aktiviert werden, das machen wir mit einer 1, das deaktivieren hingegen würde mit einer 0 geschehen.

Rules sind dazu da um auch nach einem Neustart des Moduls die Befehle bei zu behalten. Backlog erlaubt das hintereinander setzen von Befehlen, getrennt mit „;“ – welche mit endon enden

Eine Rule ist also eine Kette von Befehlen welche man einmal in die Konsole einträgt und auch nur einmalig aktivieren muss. Danach geht alles automatisch, auch nach einem Neustart.

Wemos Alarm, hier mit Relais, WS2812 und 433mHz Receiver

Eine gute Übersicht aller Befehle findet ihr auf https://github.com/arendst/Tasmota/wiki/commands#using-backlog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.