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.8k

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

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

ESPEasy Rules Mehrfach Trigger und Timer

Geplant Angeheftet Gesperrt Verschoben Microcontroller
12 Beiträge 2 Kommentatoren 1.5k 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 Dieter_P
    #2

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

                        351

                        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