Rule Erstellung RfReceived mit Ansteurung eines von 3 Relais

  • Guten Abend und Gruß in die Runde!

    Was habe ich:

    * ESP8266 4Mb

    * RE-Empfangsteil auf GPIO 10

    * 3 Relais => power1-3

    Die Auswertung der Empfangen Daten meiner RF Fernbedienung funktioniert:

    Rule1 on RfReceived#Data=0xxxxxxx do backlog power2 0; power3 0; power1 toggle endon

    Bei Empfang einer Tastenbetätigung wird das entsprechende Relais eingeschalten, davor werden die 2 anderen Relais ausgeschalten. Die Relais schalten einen Lüfter mit 3 Geschwindigkeiten (Lüftung)

    Was möchte ich machen:

    Mit der Rule1 soll es jeweils nur möglich sein, eines der Relais bei einem Tastendruck zu "toggel". Ist ein Relais (Lüfterstufe) vorher schon angeschalten, wird dies erst abgeschalten und dann erst auf eine ander Lüfterstufe.

    Nun habe ich noch eine weiter (4.) Taste auf der FB, die ich zum einschalten einer Intervallschaltung zum Lüfterlauf nutzen möchte. Der Knackpunkt ist der, das die Intervallschaltung für alle 3 Lüfterstufen nutzbar sein sollte.

    Das Intervall soll über einen Timer erfolgen, der im Zeitplan einstellbar sein soll:

    Code
        rule2
        on clock#timer=4 do backlog rule3 1; power1 1; ruletimer2 3600 endon
        on clock#timer=5 do backlog rule3 0; power1 0 endon
    
        rule2 1   
    
        rule3
        on rules#timer=4 do backlog power1 0; ruletimer5 14400 endon
        on rules#timer=5 do backlog power1 1; ruletimer4 3600 endon

    In der Rule 2/3 wird nun direkt das Relais/Lüfterstufe geschalten.. Wie kann man die rules nun so gestallten, das nur die entsprechende lüfterstufe, die über die FB gewählt wurde, aktiviert wird? Und das über die 4. Taste der FB?

    Ich würde eine Variable mir anlegen, in der die Lüfterstufe (power xyz ) hinterlegt wird, nach dem diese auf 1 gesetzt wird.

    Diese Varable würde ich dann in die Rule 2/3 einbinden:


    Code
    	rule2
    	on clock#timer=4 do backlog rule3 1; power%var1% 1; ruletimer2 3600 endon
    	on clock#timer=5 do backlog rule3 0; power%var1% 0 endon
    
    	rule3
    	on rules#timer=4 do backlog power%var1% 0; ruletimer5 14400 endon
    	on rules#timer=5 do backlog power%var1% 1; ruletimer4 3600 endon

    Könnte das so gehen? Oder hättet Ihr noch einen anderen Lösungsweg?

    Vielen DAnk und ich bin mal gespannt....


    MAT