Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. ESPEasy Rules Mehrfach Trigger und Timer

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ESPEasy Rules Mehrfach Trigger und Timer

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Maddin77 last edited by

      Hallo

      kann mir vielleicht jemand helfen,

      ich habe ein Rules erstellt um GPIO´s mit vers, bedingen zu schalten

      jetzt würde ich gerne mehrere Trigger setzten
      do HPStufe#AutoEin on
      endon
      geht noch
      aber weder or oder OR: funktioniert

      gewollt wäre
      do HPStufe#AutoEin or Heizstab_Stufe_ist#Stufe on
      endon
      geht nicht mehr

      sobald nur ein Trigger drin ist ist die Funktion prinzipiell gegeben.

      weiterhin wollte ich 2 Timer nutzen
      damit 2 Gpio´s verzögert geschalten werden, auch das klappt nicht so wie gedacht

      ich kann später die Rules gerne hier zeigen.

      jemand Muße und Zeit sich dem mit an zu nehmen?

      danke schon mal und gruß

      D 2 Replies Last reply Reply Quote 0
      • D
        Dieter_P @Maddin77 last edited by Dieter_P

        @maddin77 said in ESPEasy Rules Mehrfach Trigger und Timer:

        Hallo

        kann mir vielleicht jemand helfen,

        ich habe ein Rules erstellt um GPIO´s mit vers, bedingen zu schalten

        jetzt würde ich gerne mehrere Trigger setzten
        do HPStufe#AutoEin on
        endon
        geht noch
        aber weder or oder OR: funktioniert

        gewollt wäre
        do HPStufe#AutoEin or Heizstab_Stufe_ist#Stufe on
        endon
        geht nicht mehr

        Der Teil hinter do ist die Action und nicht der Trigger.

        entsprechen funktioniert:

        ..... do 
        HPStufe#AutoEin on // Schreibweise anpassen um die Aktion auszuführen
        Heizstab_Stufe_ist#Stufe on // Schreibweise anpassen um die Aktion auszuführen
        endon
        
        M 1 Reply Last reply Reply Quote 0
        • D
          Dieter_P @Maddin77 last edited by

          @maddin77 said in ESPEasy Rules Mehrfach Trigger und Timer:

          weiterhin wollte ich 2 Timer nutzen
          damit 2 Gpio´s verzögert geschalten werden, auch das klappt nicht so wie gedacht

          Ein delay konnte ich noch nicht finden und timmer finde ich immer sehr unschön. vom prinzip brauchst du aber für den Timer wieder einen Trigger:

          On System#Boot do    //When the ESP boots, do
            timerSet,1,10      //Set Timer 1 for the next event in 10 seconds
          endon
          
          On Rules#Timer=1 do  //When Timer1 expires, do
            GPIO,1,1
          endon
          
          M 2 Replies Last reply Reply Quote 0
          • M
            Maddin77 @Dieter_P last edited by

            @dieter_p sagte in ESPEasy Rules Mehrfach Trigger und Timer:

            @maddin77 said in ESPEasy Rules Mehrfach Trigger und Timer:

            Hallo

            kann mir vielleicht jemand helfen,

            ich habe ein Rules erstellt um GPIO´s mit vers, bedingen zu schalten

            jetzt würde ich gerne mehrere Trigger setzten
            do HPStufe#AutoEin on
            endon
            geht noch
            aber weder or oder OR: funktioniert

            gewollt wäre
            do HPStufe#AutoEin or Heizstab_Stufe_ist#Stufe on
            endon
            geht nicht mehr

            Der Teil hinter do ist die Action und nicht der Trigger.

            entsprechen funktioniert:

            ..... do 
            HPStufe#AutoEin on // Schreibweise anpassen um die Aktion auszuführen
            Heizstab_Stufe_ist#Stufe on // Schreibweise anpassen um die Aktion auszuführen
            endon
            

            danke erst mal
            ich scheibe später mal die genaue Rule rein

            1 Reply Last reply Reply Quote 0
            • M
              Maddin77 @Dieter_P last edited by

              @dieter_p sagte in ESPEasy Rules Mehrfach Trigger und Timer:

              @maddin77 said in ESPEasy Rules Mehrfach Trigger und Timer:

              weiterhin wollte ich 2 Timer nutzen
              damit 2 Gpio´s verzögert geschalten werden, auch das klappt nicht so wie gedacht

              Ein delay konnte ich noch nicht finden und timmer finde ich immer sehr unschön. vom prinzip brauchst du aber für den Timer wieder einen Trigger:

              On System#Boot do    //When the ESP boots, do
                timerSet,1,10      //Set Timer 1 for the next event in 10 seconds
              endon
              
              On Rules#Timer=1 do  //When Timer1 expires, do
                GPIO,1,1
              endon
              

              auch hier liefere ich die genaue Rule nach
              dann ist es besser

              1 Reply Last reply Reply Quote 0
              • M
                Maddin77 @Dieter_P last edited by Maddin77

                @dieter_p

                Hier nun die Rules 1

                on System#Boot do GPIO,32,0 // Rel1 GPIO,33,0 // Rel2 GPIO,25,0 // Rel3 GPIO,26,0 // Rel4 GPIO,27,0 // Rel5 GPIO,14,0 // Rel6 GPIO,12,0 // Rel7 GPIO,13,0 // Rel8 endon on Heizung_Puffer_mqtt#stufe_soll do If [Heizung_Puffer_mqtt#stufe_soll]<=0 //AUS GPIO,32,0 // Rel1 GPIO,33,0 // Rel2 GPIO,25,0 // Rel3 GPIO,26,0 // Rel4 GPIO,27,0 // Rel5 TaskValueSet 9,1,0 // Status#Stufe Plugin 16,Variable 1,Wert 0 Elseif [Heizung_Puffer_mqtt#stufe_soll]=1 //AUS GPIO,33,0 // Rel2 GPIO,25,0 // Rel3 GPIO,26,0 // Rel4 GPIO,27,0 // Rel5 //EIN GPIO,32,1 // Rel1 TaskValueSet 9,1,1 // Status#Stufe Plugin 16,Variable 1,Wert 1 	 Elseif [Heizung_Puffer_mqtt#stufe_soll]=2 //AUS GPIO,32,0 // Rel1 GPIO,33,0 // Rel2 GPIO,26,0 // Rel4 //EIN GPIO,27,1 // Rel5 timerSet,1,5 // für Rel3 in Stufe 2 TaskValueSet 9,1,2 // Status#Stufe Plugin 16,Variable 1,Wert 2 	 Elseif [Heizung_Puffer_mqtt#stufe_soll]=3 //AUS GPIO,32,0 // Rel1 GPIO,25,0 // Rel3 GPIO,26,0 // Rel4 GPIO,27,0 // Rel5 //EIN GPIO,33,1 // Rel2 TaskValueSet 9,1,3 // Status#Stufe Plugin 16,Variable 1,Wert 3 	 Elseif [Heizung_Puffer_mqtt#stufe_soll]=4 //AUS GPIO,32,0 // Rel1 GPIO,26,0 // Rel4 //EIN GPIO,33,1 // Rel2 GPIO,27,1 // Rel5 timerSet,2,5 // für Rel3 in Stufe 4 TaskValueSet 9,1,4 // Status#Stufe Plugin 16,Variable 1,Wert 4 	 Elseif [Heizung_Puffer_mqtt#stufe_soll]=5 //AUS GPIO,26,0 // Rel4 GPIO,27,0 // Rel5 //EIN GPIO,32,1 // Rel1 GPIO,33,1 // Rel2 GPIO,25,1 // Rel3 TaskValueSet 9,1,5 // Status#Stufe Plugin 16,Variable 1,Wert 5	 	 Elseif [Heizung_Puffer_mqtt#stufe_soll]=6 //AUS GPIO,25,0 // Rel3 GPIO,26,0 // Rel4 GPIO,27,0 // Rel5 //EIN GPIO,32,1 // Rel1 GPIO,33,1 // Rel2 GPIO,26,1 // Rel4 TaskValueSet 9,1,6 // Status#Stufe Plugin 16,Variable 1,Wert 6		 		 Else //AUS GPIO,32,0 // Rel1 GPIO,33,0 // Rel2 GPIO,25,0 // Rel3 GPIO,26,0 // Rel4 GPIO,27,0 // Rel5 TaskValueSet 9,1,0 // Status#Stufe Plugin 16,Variable 1,Wert 0 endif endon On Rules#Timer=1 do If [Heizung_Puffer_mqtt#stufe_soll]=2 //and [GPIO27#value]=1 GPIO,25,1 // Rel3 nach Ablauf Timer1 / St2 endif endon On Rules#Timer=2 do If [Heizung_Puffer_mqtt#stufe_soll]=4 // and [GPIO27#value]=1 GPIO,25,1 // Rel3 nach Ablauf Timer1 / St2 endif endon
                

                Und Rule 3

                on System#Boot do
                //Aus
                TaskValueSet 27,1,0 //Auto
                TaskValueSet 27,2,0 //Man
                TaskValueSet 27,3,1 //Aus
                endon
                
                on Rules#Timer=5 do
                
                //On SWAuto#AutoEin  Do
                
                If [SWAuto#AutoEin]=1 And [SWMan#ManEin]=0
                
                //Auto
                TaskValueSet 27,1,1 //Auto
                TaskValueSet 27,2,0 //Man
                TaskValueSet 27,3,0 //Aus
                
                Elseif  [SWAuto#AutoEin]=0 And [SWMan#ManEin]=1
                //Man
                TaskValueSet 27,1,0 //Auto
                TaskValueSet 27,2,1 //Man
                TaskValueSet 27,3,0 //Aus
                
                Else
                //Aus
                TaskValueSet 27,1,0 //Auto
                TaskValueSet 27,2,0 //Man
                TaskValueSet 27,3,1 //Aus
                Endif
                Endon
                

                Jetzt soll mit der Rule 3 eine
                Manuel / Automatik / Aus
                Erzeugt werden
                Und damit die Rule 1 bei Aus deaktiviert werden
                Bei Automatik ganz normal laufen und bei Manuel eine feste Stufe aktiviert werden

                Einzel läuft alles
                Aber sobald ich Rule 1 trigger hinzufüge geht nichts mehr
                Und die Timer laufen auch nicht wirklich

                1 Reply Last reply Reply Quote 0
                • M
                  Maddin77 last edited by

                  Das hab ich noch probiert
                  Rules alles in eine und

                  on System#Boot do
                      GPIO,32,0 // Rel1
                      GPIO,33,0 // Rel2
                      GPIO,25,0 // Rel3
                      GPIO,26,0 // Rel4  
                      GPIO,27,0 // Rel5
                      GPIO,14,0 // Rel6
                      GPIO,12,0 // Rel7
                      GPIO,13,0 // Rel8
                  //Aus
                  TaskValueSet 27,1,0 //Auto
                  TaskValueSet 27,2,0 //Man
                  TaskValueSet 27,3,1 //Aus   
                  
                    LoopTimerSet,1,6
                  endon
                  
                  on Rules#Timer=1 do
                  
                  //On SWAuto#AutoEin  Do
                  
                  If [SWAuto#AutoEin]=1 And [SWMan#ManEin]=0
                  //Auto
                  TaskValueSet 27,1,1 //Auto
                  TaskValueSet 27,2,0 //Man
                  TaskValueSet 27,3,0 //Aus
                  
                  Elseif  [SWAuto#AutoEin]=0 And [SWMan#ManEin]=1
                  //Man
                  TaskValueSet 27,1,0 //Auto
                  TaskValueSet 27,2,1 //Man
                  TaskValueSet 27,3,0 //Aus
                  
                  Else
                  //Aus
                  TaskValueSet 27,1,0 //Auto
                  TaskValueSet 27,2,0 //Man
                  TaskValueSet 27,3,1 //Aus
                  Endif
                  
                  
                  //Endon
                  
                  //on Heizung_Puffer_mqtt#stufe_soll do
                  
                    If [Heizung_Puffer_mqtt#stufe_soll]<=0 And [HPModus#Auto]=1
                      //AUS
                      GPIO,32,0 // Rel1
                      GPIO,33,0 // Rel2
                      GPIO,25,0 // Rel3
                      GPIO,26,0 // Rel4  
                      GPIO,27,0 // Rel5
                      TaskValueSet 9,1,0 // Status#Stufe Plugin 9,Variable 1,Wert 0
                    
                    Elseif [Heizung_Puffer_mqtt#stufe_soll]=1 And [HPModus#Auto]=1
                      //AUS
                      GPIO,33,0 // Rel2
                      GPIO,25,0 // Rel3
                      GPIO,26,0 // Rel4 
                      GPIO,27,0 // Rel5
                       //EIN
                      GPIO,32,1 // Rel1
                      TaskValueSet 9,1,1 // Status#Stufe Plugin 9,Variable 1,Wert 1
                  	
                    Elseif [Heizung_Puffer_mqtt#stufe_soll]=2  And [HPModus#Auto]=1
                       //AUS
                       GPIO,32,0 // Rel1
                      GPIO,33,0 // Rel2
                      GPIO,26,0 // Rel4
                           GPIO,12,0 // Rel7
                       //EIN
                      GPIO,25,1 // Rel3
                      GPIO,27,1 // Rel5
                      TaskValueSet 9,1,2 // Status#Stufe Plugin 9,Variable 1,Wert 2
                       	
                    Elseif [Heizung_Puffer_mqtt#stufe_soll]=3  And [HPModus#Auto]=1
                      //AUS
                      GPIO,32,0 // Rel1
                      GPIO,25,0 // Rel3
                      GPIO,26,0 // Rel4  
                      GPIO,27,0 // Rel5
                           GPIO,12,0 // Rel7
                       //EIN
                       GPIO,33,1 // Rel2
                      TaskValueSet 9,1,3 // Status#Stufe Plugin 9,Variable 1,Wert 3
                  	
                    Elseif [Heizung_Puffer_mqtt#stufe_soll]=4  And [HPModus#Auto]=1 or [HPModus#Man]=1
                      //AUS
                      GPIO,32,0 // Rel1
                      GPIO,26,0 // Rel4 
                           GPIO,12,0 // Rel7
                      //EIN
                      GPIO,33,1 // Rel2
                      GPIO,25,1 // Rel3
                      GPIO,27,1 // Rel5
                      TaskValueSet 9,1,4 // Status#Stufe Plugin 9,Variable 1,Wert 4
                  	
                    Elseif [Heizung_Puffer_mqtt#stufe_soll]=5  And [HPModus#Auto]=1
                      //AUS
                      GPIO,26,0 // Rel4 
                           GPIO,12,0 // Rel7
                      //timerSet,2,10 // für Rel5 in Stufe 5
                     // GPIO,27,0 // Rel5  nach Ablauf Timer2 / St5
                       //EIN
                      GPIO,32,1 // Rel1
                      GPIO,33,1 // Rel2
                      GPIO,25,1 // Rel3
                      TaskValueSet 9,1,5 // Status#Stufe Plugin 9,Variable 1,Wert 5	
                  	
                    Elseif [Heizung_Puffer_mqtt#stufe_soll]=6  And [HPModus#Auto]=1
                      //AUS
                      GPIO,32,0 // Rel1
                      GPIO,27,0 // Rel5
                      //EIN
                      GPIO,33,1 // Rel2
                      GPIO,25,1 // Rel3
                      //timerSet,3,10 // für Rel4 in Stufe 6
                      //GPIO,26,1 // Rel4  nach Ablauf Timer1 / St6
                      TaskValueSet 9,1,6 // Status#Stufe Plugin 9,Variable 1,Wert 6		
                  		
                     Else
                        //AUS
                       GPIO,32,0 // Rel1
                       GPIO,33,0 // Rel2
                       GPIO,25,0 // Rel3
                       GPIO,26,0 // Rel4  
                       GPIO,27,0 // Rel5
                       GPIO,12,0 // Rel7
                       TaskValueSet 9,1,0 // Status#Stufe Plugin 9,Variable 1,Wert 0
                    endif
                  
                  
                  Endon
                  
                  
                  On Rel2#State do
                     If [Heitzstab_Stufe_Ist#Stufe]=6
                       GPIO,12,1 // Rel7
                       timerSet,3,10 // für Rel5 in Stufe 6
                     else
                     GPIO,12,0 // Rel7
                    endif
                  endon
                  
                  
                  
                  
                  On Rules#Timer=3 do
                    If [Heizung_Puffer_mqtt#stufe_soll]=6
                       GPIO,26,1 // Rel4  nach Ablauf Timer1 / St6
                    endif
                  
                  
                  On Rules#Timer=2 do
                    If [Heizung_Puffer_mqtt#stufe_soll]=5
                       //GPIO,27,0 // Rel5  nach Ablauf Timer2 / St5
                    endif
                  endon
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  D 1 Reply Last reply Reply Quote 0
                  • D
                    Dieter_P @Maddin77 last edited by

                    @maddin77 said in ESPEasy Rules Mehrfach Trigger und Timer:

                    Das hab ich noch probiert
                    Rules alles in eine und

                    Sorry das ist mir im Spaghetticodestil zu komplex. Vom Bauchgefühl würde ich das aber nicht über einen Timer triggern, sondern über die Änderung von Zuständen zB von Switches oder Variablen bzw. direkt dem angelegten DummyDevice. Das verhält sich dann nachvollziehbarer vom Programmablauf für mich und diese Dauerschleife erscheinen mir höchst Ineffizient vom Programmierstil.

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Maddin77 @Dieter_P last edited by

                      @dieter_p sagte in ESPEasy Rules Mehrfach Trigger und Timer:

                      @maddin77 said in ESPEasy Rules Mehrfach Trigger und Timer:

                      Das hab ich noch probiert
                      Rules alles in eine und

                      Sorry das ist mir im Spaghetticodestil zu komplex. Vom Bauchgefühl würde ich das aber nicht über einen Timer triggern, sondern über die Änderung von Zuständen zB von Switches oder Variablen bzw. direkt dem angelegten DummyDevice. Das verhält sich dann nachvollziehbarer vom Programmablauf für mich und diese Dauerschleife erscheinen mir höchst Ineffizient vom Programmierstil.

                      ja es sollte ja auch über den DummyDevice laufen, aber das wären dann insgesamt 4 Trigger und das klappt gar nicht.
                      Ich hatte probiert
                      If [Heizung_Puffer_mqtt#stufe_soll]<=0 And [HPModus#Auto]=1 or [HPModus#Man]=0 or [HPModus#Aus]=0
                      klappt das aber nicht
                      Die beiden Timer waren nur gedacht 2 Relais etwas verzögert zu schalten 2-3Sek
                      der LoopTimer war nur ein Test

                      Was ist Spaghetticodestil?

                      danke für deine Hilfe soweit

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        Dieter_P @Maddin77 last edited by Dieter_P

                        @maddin77 said in ESPEasy Rules Mehrfach Trigger und Timer:

                        @dieter_p sagte in ESPEasy Rules Mehrfach Trigger und Timer:

                        @maddin77 said in ESPEasy Rules Mehrfach Trigger und Timer:

                        Das hab ich noch probiert
                        Rules alles in eine und

                        Sorry das ist mir im Spaghetticodestil zu komplex. Vom Bauchgefühl würde ich das aber nicht über einen Timer triggern, sondern über die Änderung von Zuständen zB von Switches oder Variablen bzw. direkt dem angelegten DummyDevice. Das verhält sich dann nachvollziehbarer vom Programmablauf für mich und diese Dauerschleife erscheinen mir höchst Ineffizient vom Programmierstil.

                        ja es sollte ja auch über den DummyDevice laufen, aber das wären dann insgesamt 4 Trigger und das klappt gar nicht.
                        Ich hatte probiert
                        If [Heizung_Puffer_mqtt#stufe_soll]<=0 And [HPModus#Auto]=1 or [HPModus#Man]=0 or [HPModus#Aus]=0
                        klappt das aber nicht
                        Die beiden Timer waren nur gedacht 2 Relais etwas verzögert zu schalten 2-3Sek
                        der LoopTimer war nur ein Test

                        Ich verstehe Dein DummyDevice aus der Intention damit 3 Stati abzubilden (Aus, Man, Auto). Reicht dazu nicht ein Switch als DummyDevice? der kann 0,1 oder 2 sein. Dadurch sparst Du dir immer 3 Values dort zu prüfen, da ein value absolute eindeutig ist.
                        113b8f1d-85a6-4657-8b38-b167c5441e45-grafik.png

                        Um die Stati zu ändern bekommst irgendwoher den Trigger. Kommt das über Mqtt Import?
                        Würde das in dieser Richtung versuchen:

                        on System#Boot do
                        
                            GPIO,32,0 // Rel1
                            GPIO,33,0 // Rel2
                            GPIO,25,0 // Rel3
                            GPIO,26,0 // Rel4  
                            GPIO,27,0 // Rel5
                            GPIO,14,0 // Rel6
                            GPIO,12,0 // Rel7
                            GPIO,13,0 // Rel8
                        
                        //Aus
                        
                        TaskValueSet 27,1,0 //Aus 
                        
                        endon
                        
                        on Heizung_Puffer_mqtt#stufe_soll do
                          If [Heizung_Puffer_mqtt#stufe_soll]=0
                             TaskValueSet 27,1,0 //Aus
                         Eslseif [Heizung_Puffer_mqtt#stufe_soll]=1
                             TaskValueSet 27,1,1 //Auto
                         Eslseif [Heizung_Puffer_mqtt#stufe_soll]=2
                             TaskValueSet 27,1,2 //Man
                         Endif
                        
                        on SWAuto#AutoEin do
                          TimerSet,1,6
                        endon
                        
                        on Rules#Timer=1 do
                          If [SWAuto#AutoEin]=0
                             GPIO,32,0 // Rel1 Beispiel
                         Eslseif [SWAuto#AutoEin]=1
                             GPIO,33,0 // Rel2 Beispiel
                         Eslseif [SWAuto#AutoEin]=2
                             GPIO,25,0 // Rel3 Beispiel
                         Endif
                        endon
                        
                        

                        Was ist Spaghetticodestil?

                        Mir persönlich zu langer Programmiercode den am Ende nichtmal mehr derjenige durchblickt, der ihn mal gebaut hat. Empfinde es subjektiv immer nicht so toll sich selbst solche zu komplexen Dinge einzubauen. Das kann später kaum jemand warten, helfen oder debuggen.

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          Maddin77 @Dieter_P last edited by

                          @dieter_p sagte in ESPEasy Rules Mehrfach Trigger und Timer:

                          Ich verstehe Dein DummyDevice aus der Intention damit 3 Stati abzubilden (Aus, Man, Auto). Reicht dazu nicht ein Switch als DummyDevice? der kann 0,1 oder 2 sein. Dadurch sparst Du dir immer 3 Values dort zu prüfen, da ein value absolute eindeutig ist.
                          113b8f1d-85a6-4657-8b38-b167c5441e45-grafik.png

                          Um die Stati zu ändern bekommst irgendwoher den Trigger. Kommt das über Mqtt Import?
                          Würde das in dieser Richtung versuchen:

                          on System#Boot do
                          
                              GPIO,32,0 // Rel1
                              GPIO,33,0 // Rel2
                              GPIO,25,0 // Rel3
                              GPIO,26,0 // Rel4  
                              GPIO,27,0 // Rel5
                              GPIO,14,0 // Rel6
                              GPIO,12,0 // Rel7
                              GPIO,13,0 // Rel8
                          
                          //Aus
                          
                          TaskValueSet 27,1,0 //Aus 
                          
                          endon
                          
                          on Heizung_Puffer_mqtt#stufe_soll do
                            If [Heizung_Puffer_mqtt#stufe_soll]=0
                               TaskValueSet 27,1,0 //Aus
                           Eslseif [Heizung_Puffer_mqtt#stufe_soll]=1
                               TaskValueSet 27,1,1 //Auto
                           Eslseif [Heizung_Puffer_mqtt#stufe_soll]=2
                               TaskValueSet 27,1,2 //Man
                           Endif
                          
                          on SWAuto#AutoEin do
                            TimerSet,1,6
                          endon
                          
                          on Rules#Timer=1 do
                            If [SWAuto#AutoEin]=0
                               GPIO,32,0 // Rel1 Beispiel
                           Eslseif [SWAuto#AutoEin]=1
                               GPIO,33,0 // Rel2 Beispiel
                           Eslseif [SWAuto#AutoEin]=2
                               GPIO,25,0 // Rel3 Beispiel
                           Endif
                          endon
                          
                          

                          Aktuell nutze ich 2 Switch um den Schalter zu erkennen, da ein 3stellungsschalter verbaut ist
                          der Manuell umgeschaltet werden soll, kein MQTT
                          also meinst du aus
                          AutoEin=1 und ManuEin=0 -->Automatik
                          AutoEin=0 und ManuEin=1 -->Manuel
                          AutoEin=0 und ManuEin= oder AutoEin=1 und ManuEin=1 -->Aus

                          die Stufen die geschaltet werden kommen per MQTT aus dem IOB
                          das klappt zuverlässig.

                          müsste ich das mal versuchen um zu setzen irgendwie
                          ja das mit dem langen Code geäfllt mir auch nicht, war nur ein Versuch, da er in Rule3 z.B. den Trigger den ich in Rule1 verwendet hatte ignoriert, als ob er ihn nur einmal abarbeitet.

                          der Plan ist
                          Rule1 die Relais über die Stufen aus MQTT zu schalten
                          Rule2 ist eine Temperatur Sicherung für ein Lastrelai
                          Rule3 war die Umsetzung der 2 Switch auf ein Dummy mit 3 Stellungen

                          danke nochmals

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            Dieter_P @Maddin77 last edited by

                            @maddin77 said in ESPEasy Rules Mehrfach Trigger und Timer:

                            Aktuell nutze ich 2 Switch um den Schalter zu erkennen, da ein 3stellungsschalter verbaut ist
                            der Manuell umgeschaltet werden soll, kein MQTT
                            also meinst du aus
                            AutoEin=1 und ManuEin=0 -->Automatik
                            AutoEin=0 und ManuEin=1 -->Manuel
                            AutoEin=0 und ManuEin= oder AutoEin=1 und ManuEin=1 -->Aus

                            Denke ja. Für mich ist das DummyDevice ein Merker der einen bestimmten Status wiederspiegelt. Der Status wird immer irgendwoher getriggert. Das würde ich logisch separat programmieren über Trigger. Funktionieren die Stati würde ich mich an die Aktionen machen die die Stati auslösen/bedeuten. Hierzu reicht aus meiner Sicht der "saubere"/definierte Grundzustand beim Booten und dann getriggert die Aktionen der GPIO ausgelöst durch Änderung der Stati.

                            Alternativ zum Dummy Device könnte man das auch über ein Event lösen. Deine Schalter lösen ein Event aus und Schreiben Aus, Auto,Man in den Log. Du wiederum triggerst dann für die Aktionen basierent auf diese Events wieder deine GPIOs. Sehe ich nur als Alternative aber keine wirklichen Vorteile...

                            der Plan ist
                            Rule1 die Relais über die Stufen aus MQTT zu schalten
                            Rule2 ist eine Temperatur Sicherung für ein Lastrelai
                            Rule3 war die Umsetzung der 2 Switch auf ein Dummy mit 3 Stellungen

                            Du hast das oben schon mal so geschrieben. Da bin ich nicht genug im Thema, wäre aber vorsichtig übergreifend über mehrere Rules zu arbeiten. Vermute da geht nicht alles und es gibt bestimmt Timingprobleme etc etc. Alle Triggerungen um Stati (DummyDevices) zu setzen auf einer Rule und die Trigger und Aktionen aus einer Statiänderung auf einer anderen Rule dürfte funktionieren. Aber allgemein sollte doch da genug "Platz" sein um das in einer Rule zu lösen....wäre mein Favorit um dort keine Probleme zu erwarten.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            700
                            Online

                            31.6k
                            Users

                            79.6k
                            Topics

                            1.3m
                            Posts

                            2
                            12
                            772
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo