Forum

Benachrichtigungen
Alles löschen

Tasmota Rule für ein zeitgesteuertes Relais / typische Lichtsteuerung

   RSS

0
Themenstarter

AM312 Bewegungsmelder als Tasmota Rule Trigger am EI-OT 8 Kanal Relais PRO
Grundlagen

Typischerweise und basierend auf Tasmota Rules bedarf es zunächst einem entsprechenden Trigger. Einem typischen Auslöser der die Grundlage zum Ausführen der Tasmota Rule bildet.

Im Detail verwenden wir hier den Status eines GPIO's als Button. Dies kann ein einfacher Signalgeber beispielsweise ein Taster, Sensor oder wie hier im Beispiel ein AM312 Bewegungsmelder sein.

Unterm Strich bedarf es lediglich eines Auslösers zur Statusänderung eines GPIO's der die Tasmota Rule entsprechend initiiert.

Im nachfolgenden Beispiel verwenden wir den AM312 konfiguriert als Button 2 über den GPIO1 (TX) an einem 8 Kanal Relais PRO. Diesbezüglich wurde bei dem 8 Kanal Relais PRO bereits dieserielle Log Funktion deaktiviert.

 

Dieses Thema wurde geändert Vor 2 Jahren von admin
3 Antworten
0
Themenstarter

EI-OT 8 Kanal Relais PRO Button Trigger Konfiguration für ein zeitgesteuertes Relais
Konfiguration

Wie bereits erwähnt kann es sich bei dem Tasmota Rule Trigger auch um einen einfachen Signalgeber wie Taster oder auch um einen Sensor, z.B. Temperatursensor, Lichtsensor usw. mit einem digitalen Signalausgang von 3,3V handeln.

Nachdem der GPIO entsprechend konfiguriert wurde bedarf es dass typische Tasmota Verhalten, wenn Button 2 ON dann schalte Relais 2 (Power 2 ON) zu deaktivieren. Hierzu in der Tasmota Konsole 

SetOption68 1

 

eingeben und mit der Taste ENTER bestätigen, es erscheint

RSL: RESULT = {"SetOption68":"ON"}

Bevor wir nun zur eigentlichen Tasmota Rule kommen zunächst die grundlegenden Parameter die innerhalb der Tasmota Rule benötigt werden

  • Button2 (GPIO1) als Tasmota Rule Trigger / Auslöser
  • Power2 oder ein entsprechendes Relais das mittels der Tasmota Rule gesteuert werden soll
  • Tasmota Rules Timer der initiiert wird

An dieser Stelle sei erwähnt, innerhalb Tasmota Rules werden bis zu 8 unabhängige Timer unterstützt, Rules#Timer1 bis Rules#Timer8. Bei den Tasmota Rules Timer handelt es sich um einfache Timer die im Sekundentakt einen vorgegebenen Wert runterzählen (dekrement). Im Eigentlichen handelt es sich bei einem Tasmota Rules Timer um einen weiteren Trigger in From eines Zählers, der bei Erreichung von 0 Sekunden, ein entsprechendes Kommando ausführt. Typischerweise bedarf es stets 

  • ein Kommando zur Initiierung eines eines Tasmota Rules Timer also innerhalb von DO mit Angabe des Zeitwertes in Sekunden, als Beispiel für RuleTimer1 und 10 Sekunden
DO RuleTimer1 10
  • einem Tasmota Rule Trigger / Auslöser hier im Beispiel RuleTimer1, also sobald der Rules#Timer1 0 Sekunden erreicht hat. Mit einfachen Worten der RulesTimer gibt keinen Zeitwert oder Sekunden zurück, sondern ist ein Trigger der ausgelöst wird wenn die vorgegebene Zeit abgelaufen ist um dann ein entsprechendes Kommando auszuführen. Beispielsweise wenn der Rules#Timer 1 seine obigen 10 Sekunden erreicht hat
ON Rules#Timer=1 DO

 

Mittels der Tasmota Rule muss nun 

  1. mittels ON das HIGH am GPIO erfasst werden, also benötigen wir als Trigger
    ON Button2#State
    1. mittels DO wird das Relais 2 aktiviert
  2. mittels ON wird ein Trigger auf den Status des Relais 2 gesetzt, sobald das Relais 2 aktiv
    1. mittels DO wird der RuleTimer1 initiiert und dabei der Wert auf 10 Sekunden setzt
  3. mittels ON der Rules#Timer 1 Trigger erfasst wird, sobald die 10 Sekunden abgelaufen sind
    1. mittels DO das Kommando zum Abschalten des Relais 2 ausführt

Unsere zeitgesteuerte Tasmota Rule nun zusammengefasst als Rule1

Rule1 ON Button2#State DO Power2 ON ENDON
ON Power2#State=1 DO RuleTimer1 10 ENDON 
ON Rules#Timer=1 DO Power2 OFF ENDON

 

Selbstredend kann die Rule1 mittels dem Backlog Befehl auch zusammengefasst 

  1. mittels ON das HIGH am GPIO erfasst werden, also benötigen wir als Trigger
    ON Button2#State
  2. mittels DO folgende Kommandos ausführt
    1. das Relais 2(Power2) aktiviert
    2. den RuleTimer1 initiiert und dabei den Wert auf 10 Sekunden setzt
  3. mittels ON der Rules#Timer Trigger erfasst wird, der bei Erreichung des Wertes 1 
    1. mittels DO das Kommando zum Abschalten des Relais 2 ausführt

und die entsprechenden Kommandos mittels Semikolon aufgelistet werden

Rule1 ON Button2#State==3 DO Backlog Power2 ON; RuleTimer1 10 ENDON
ON Rules#Timer=1 DO Power2 off ENDON

Abschließend muss lediglich die Tasmota Rule1 durch Eingabe von

Rule1 1

und drücken der Taste Enter aktiviert werden. 

Sobald nun der Bewegungsmelder einen Temperaturanstieg feststellt / eine Person erkennt wird

das Relais 2 geschaltet

BUTTON2#STATE performs "Power2 ON"
RESULT = {"POWER2":"ON"}
POWER2 = ON

sobald das Relais 2 geschaltet wird, wird der Tasmota RuleTimer1 initiiert und auf 10 Sekunden gesetzt

POWER2#STATE=1 performs "RuleTimer1 10"
RESULT = {"T1"0}

sobald der RuleTimer1 Wert von 1 erreicht wird, wird das Relais 2 ausgeschaltet

RULES#TIMER=1 performs "Power2 OFF"
RESULT = {"POWER2":"OFF"}
POWER2 = OFF
Diese r Beitrag wurde geändert Vor 2 Jahren 2 mal von admin
0
Themenstarter

EI-OT 8 Kanal Relais PRO Tasmota Rule für zeitabhängige Steuerung
kombinierte Tasmota Rules Timer

Oftmals werden Tasmota Rules Timer falsch verstanden. Wie bereits oben erwähnt handelt es sich bei Tasmota Rules Timer um einfach Zähler / Counter, im wahrsten Sinne des Wortes Count Down.

Andererseits läßt sich anhand von Tasmota Rules Timer das erfassen von Triggern, bzw. die Funktion von Event Listenern, Ereignissen vereinfacht erläutern. Jedes Ereignis / Trigger muss entsprechend initiiert werden, sodass die Firmware beim Auftreten des Ereignisses entsprechend interagiert.

Als einfaches Beispiel man möchte nicht nur 1 Relais, sondern mehrere Relais zeitabhängig steuern, erst geht Licht 1, dann Licht 2, dann Licht 3 an....

Verwendet man nun einen Tasmota Rules Timer innerhalb einer Tasmota Rule führt das zu ungewünschten Ausführungen, denn

wird beispielsweise mittels folgender Rule

Rule1 ON Button2#State DO Backlog Power2 ON; RuleTimer1 5 ENDON 
ON Rules#Timer=1 DO Backlog Power3 ON; RuleTimer1 5 ENDON
ON Rules#Timer=1 DO Backlog Power2 OFF; Power4 ON; RuleTimer1 5 ENDON
ON Rules#Timer=1 DO Backlog Power3 OFF; Power4 OFF ENDON

versucht mehrere Relais mittels RuleTimer1 im Abstand von 5 Sekunden zu steuern, wird direkt alle 3 ON  Rules#Timer=1 Trigger ausgeführt. Im Eigentlichen nicht verwunderlich, denn die Rule1 führt exakt die hinterlegten Kommandos aus und zwar unaufhörlich im Abstand von 5 Sekunden. Das Problem ist dabei der Trigger, der RuleTimer1 und die 3 hinterlegten ON, sobald der RuleTimer1 erfüllt wurde.

Verwendet man nun anstelle von nur einem Tasmota Rule Timer, die dafür notwendigen 3 Tasmota Rule Timer

Rule1 ON Button2#State DO Backlog Power2 ON; RuleTimer1 5 ENDON 
ON Rules#Timer=1 DO Backlog Power3 ON; RuleTimer2 5 ENDON
ON Rules#Timer=2 DO Backlog Power2 OFF; Power4 ON; RuleTimer3 5 ENDON
ON Rules#Timer=3 DO Backlog Power3 OFF; Power4 OFF ENDON

erfolgt die Steuerung der Relais wie gewünscht, wenn

  1. Button2, in unserem Beispiel der AM312 Bewegungsmelder aktiv ist wird Relais 2 geschaltet und der RuleTimer1 initiiert
  2. ON sobald RuleTimer1 erfüllt wurde wird das Relais 3 geschaltet und ein neuer Tasmota Rule Timer 2 initiert
  3. ON sobald RuleTimer2 erfüllt wurde wird Relais 2 ausgeschaltet, Relais 4 eingeschaltet und der Tasmota RuleTimer 3 initiiert
  4. sobald RuleTimer3 erfüllt wurde wird Relais 3 und Relais 4 abgeschaltet.

 

Basierend auf dieser Grundlage und der richtigen Verwendung läßt sich jedwedes, zeitlich abhängiges Verhalten mittels einer Tasmota Rule realisieren.

0
Themenstarter

EI-OT 8 Kanal Relais PRO Tasmota Rule für eine lichtabhängige Zeitsteuerung
Tasmota Rule Lichtsteuerung bei Nacht

Typische Anforderungen an eine Smart Home Lichtsteuerung ist das Steuern von Licht in Abhängigkeit des Tageslicht. Neben der Verwendung eines Lichtsensors kann das Schalten von Licht auch ohne Lichtsensor mittels einer Tasmota Rule realisiert werden.

Innerhalb von Tasmota Rules werden hierzu 3 Parameter bereitgestellt

  • SUNRISE, Minuten ab Mitternacht 0:00 bis Sonnenaufgang
  • SUNSET, Minuten ab Mitternacht 0:00 bis Sonnenuntergang
  • TIME, Minuten kumuliert ab Mitternacht 0:00 

Dementsprechend kann mittels einer einfachen Tasmota Rule, die kumulierte Zeit in Minuten mit Sonnenaufgang oder Sonnenuntergang abgeglichen werden.

Das nachfolgende Tasmota Rules Beispiel basiert auf (wie oben beschrieben) einem AM312 Bewegungsmelder an einem 8 Kanal PRO Relais, und kann selbstredend auch auf andere Module adaptiert werden. Als Tasmota Rule Trigger wird dementsprechend der AM312 Bewegungsmelder als Button2 verwendet, im Detail sobald der AM312 eine Person erkennt wird Button2 (GPIO1) auf HIGH gesetzt.

Da üblicherweise Licht nur bei Dunkelheit benötigt wird, der AM312 Bewegungsmelder aber immer bei Personenerkennung aktiviert wird, soll nun nur wenn es Dunkel ist das Relais2 über 10 Sekunden geschaltet geschaltet werden. 

Der Ablauf der Tasmota Rule Schritt für Schritt

  1. Sobald (ON) Button2, in unserem Beispiel der AM312 sobald Bewegungsmelder aktiv ist wird ein IF Statement ausgeführt, wenn (IF) Zeit in Minuten seit 0:00 (time) größer als Zeit in Minuten seit 0:00 bis Sonnenuntergang, schalte Relais 2
  2. ON sobald Relais 2 (Power2#State) geschaltet wird, initiiere Tasmota RuleTimer1 mit 10 Sekunden
  3. ON sobald RuleTimer1 erfüllt wurde wird Relais 2 ausgeschaltet

Die Tasmota Rule zusammengefasst als Rule1 

Rule1 ON Button2#State DO IF (%time%>%sunset%) Power2 ON ENDIF ENDON
ON Power2#State=1 DO RuleTimer1 10 ENDON 
ON Rules#Timer=1 DO Power2 OFF ENDON

Das Relais 2 wird nun ausschließlich, nach Sonnenuntergang geschaltet. 

Diese r Beitrag wurde geändert Vor 2 Jahren von admin
Teilen: