Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Microcontroller
  5. ESPEasy Rules Mehrfach Trigger und Timer

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

ESPEasy Rules Mehrfach Trigger und Timer

Geplant Angeheftet Gesperrt Verschoben Microcontroller
12 Beiträge 2 Kommentatoren 1.4k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Maddin77

    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 Online
    D Online
    Dieter_P
    schrieb am zuletzt editiert von
    #3

    @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 Antworten Letzte Antwort
    0
    • D 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 Offline
      M Offline
      Maddin77
      schrieb am zuletzt editiert von
      #4

      @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 Antwort Letzte Antwort
      0
      • D Dieter_P

        @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 Offline
        M Offline
        Maddin77
        schrieb am zuletzt editiert von
        #5

        @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 Antwort Letzte Antwort
        0
        • D Dieter_P

          @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 Offline
          M Offline
          Maddin77
          schrieb am zuletzt editiert von Maddin77
          #6

          @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 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            Maddin77
            schrieb am zuletzt editiert von
            #7

            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 Antwort Letzte Antwort
            0
            • M Maddin77

              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 Online
              D Online
              Dieter_P
              schrieb am zuletzt editiert von
              #8

              @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 Antwort Letzte Antwort
              0
              • D Dieter_P

                @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 Offline
                M Offline
                Maddin77
                schrieb am zuletzt editiert von
                #9

                @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 Antwort Letzte Antwort
                0
                • M Maddin77

                  @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 Online
                  D Online
                  Dieter_P
                  schrieb am zuletzt editiert von Dieter_P
                  #10

                  @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 Antwort Letzte Antwort
                  0
                  • D 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 Offline
                    M Offline
                    Maddin77
                    schrieb am zuletzt editiert von
                    #11

                    @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 Antwort Letzte Antwort
                    0
                    • M Maddin77

                      @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 Online
                      D Online
                      Dieter_P
                      schrieb am zuletzt editiert von
                      #12

                      @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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      762

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe