Ankündigung

Einklappen
Keine Ankündigung bisher.

Stateengine Plugin Support

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #61
    Ich sehe gerade, dass beim Aufruf des Webinterfaces aus dem Backend haufenweise der gleiche Fehler geloggt wird:
    Code:
    2020-04-16  00:09:08 ERROR    lib.translation     Trying to use undefined aditional_translations 'plugin/stateengine'
    Scheint aber nicht zu stören. Worauf deutet das hin?

    Kommentar


      #62
      Locale.yaml mit Übersetzung fürs Webif fehlt. Muss ich wohl mal nachreichen

      Kommentar


        #63
        Ich stolpere jetzt über se_set_* und se_action_*

        Wie ist das. Wie es aussieht funktioniert beides für die Ausführung von Aktionen. Liege ich da richtig?

        In der Doku ist eigentlich nur (noch) se_action_ beschrieben. In paar Beispielen finde ich aber auch noch se_set (unter "Pluginspezifische Templates").

        Ist se_set "deprecated" oder wie ist der Status?
        Eigentlich finde ich ja die Syntax von se_set gegenüber se_action smarter:

        se_set_height: value:0
        vs.
        se_action_height:
        - 'function: set'
        - 'to: value:0'
        Oder habe ich etwas übersehen? Was ist der Grund? Gibt es Unterschiede?

        Kommentar


          #64
          se_set ist insofern deprecated als dass ich es mit den ganzen neuen Features nie getestet habe - aber generell sollte es problemlos parallel zum se_action funktionieren.
          Historie: se_set ist tatsächlich simpel. Aber eben simpel. se_action ist deutlich flexibler, weil man da noch eine Menge andere Parameter angeben kann, die teilweise wichtig sein könnten.

          Bei deinen beiden Beispielen sollte exakt das gleiche Resultat rauskommen.

          Kommentar


            #65
            Hallo,

            da ich mit dem plugin über 30 Fenster beschatte, würde ich gerne verschiedene stateengines (z.B. je Stockwerk) versetzt triggern. Da ich die KNX-Buslast unmittelbar nach dem Triggern reduzieren möchte..

            Wie kann ich erreichen, dass der Trigger jede 5 Minuten abläuft, jedoch in den verschiedenen Stockwerken jeweils um 1 Minute versetzt:

            Code:
            #items/item.yaml
            dg:
                trigger:
                    raffstore:
                        type: bool
                        name: Gemeinsamer Trigger für alle Raffstores im Dachgeschoss
                        enforce_updates: yes
                        cycle: 300 = 1
            Gruß Ivan

            Kommentar


              #66
              Du hast also pro Stockwerk einen eigenen Trigger und die sollen verzögert triggern..? Probier's doch mal mit einer Logik, die sich bei "init" aktiviert und die einzelnen Trigger per Timer ansteuert. Also dg.trigger.raffstore.timer(5,1) usw. Die Frage ist, nach was sich der Cycle richtet. Startup oder was auch immer. Wäre ein eigener Thread denk ich, vielleicht kann da wer helfen.

              Kommentar


                #67
                Zitat von Onkelandy Beitrag anzeigen
                Du hast also pro Stockwerk einen eigenen Trigger und die sollen verzögert triggern..?
                genau.

                hab es mit 2 Hilfsitem mit einer Einschaltverzögerung (autotimer) gelöst..
                Code:
                Og:
                    Trigger: # Triggert alle 5 Minuten / jeweils um 1 Minute Verzögert
                        type: bool
                        enforce_updates: 'True'
                        eval: True if sh.Og.Ticker.Delay() == 1 else None
                        eval_trigger: Og.Ticker.Delay
                
                    Ticker: #aendert alle 2,5Minuten den Zustand
                        type: bool
                        enforce_updates: 'True'
                        cycle: 150
                        eval: not sh.Og.Ticker()
                
                        Delay: # Einschaltverzoegerung
                            type: num
                            autotimer: 60 = 2 = latest
                            eval: sh.Og.Ticker() if value == 2 else 0
                            eval_trigger: Og.Ticker
                Code:
                2020-05-13 16:13:30.186403 Update triggered by Eval (item=Dg.Bad.Jalousie.Fenster.AutoBlind.rules source=Dg.Trigger dest=None)
                2020-05-13 16:14:31.233377 Update triggered by Eval (item=Og.Bad.Jalousie.Fenster.AutoBlind.rules source=Og.Trigger dest=None)
                2020-05-13 16:15:28.370470 Update triggered by Eval (item=Eg.Bad.Jalousie.Fenster.AutoBlind.rules source=Eg.Trigger dest=None)

                Kommentar


                  #68
                  Ziemlich cool Lösung

                  Kommentar


                    #69
                    ivande Könntest du mir vielleicht schnell alle drei Stockwerke posten? Dann werde ich das verzögerte Triggern in nem Blogeintrag o.ä. gerne verewigen. Danke!

                    Kommentar


                      #70
                      Code:
                      Ticker: #aendert alle 150 Sekunden / 2,5Minuten den Zustand
                          type: bool
                          enforce_updates: True
                          cycle: 150
                          eval: not sh..()
                          DelayEg: # Einschaltverzoegerung Erdgeschoss 2Minuten
                              type: num
                              autotimer: 120 = 2 = latest
                              eval: sh...() if value == 2 else 0
                              eval_trigger: ..
                          DelayOg: # Einschaltverzoegerung Obergeschoss 1Minute
                              type: num
                              autotimer: 60 = 2 = latest
                              eval: sh...() if value == 2 else 0
                              eval_trigger: ..
                      
                      Eg:
                          Trigger: # Triggert alle 5 Minuten / jeweils um DelayEg (2min) verzögert
                          type: bool
                          enforce_updates: True
                          eval: True if sh.Ticker.DelayEg() == 1 else None
                          eval_trigger: Ticker.DelayEg
                      Og:
                          Trigger: # Triggert alle 5 Minuten / jeweils um DelayOg (1min) verzögert
                          type: bool
                          enforce_updates: True
                          eval: True if sh.Ticker.DelayOg() == 1 else None
                          eval_trigger: Ticker.DelayOg
                      Dg:
                          Trigger: # Triggert alle 5 Minuten ohne Verzögerung
                          type: bool
                          enforce_updates: True
                          eval: True if sh.Ticker() == 1 else None
                          eval_trigger: Ticker
                      hat ein bisschen gedauert..

                      Wieso werden hier im Forum (zumindest bei mir) beim Einfügen des Codes (STRG-V) die Einrückungen (Leerzeichen) nicht mit übernommen - die muss ich immer von Hand dazumachen?
                      Zuletzt geändert von ivande; 23.05.2020, 09:11.

                      Kommentar


                        #71
                        Zitat von ivande Beitrag anzeigen
                        Wieso werden hier im Forum (zumindest bei mir) beim Einfügen des Codes (STRG-V) die Einrückungen (Leerzeichen) nicht mit übernommen - die muss ich immer von Hand dazumachen?
                        Die Vorgehensweise ist in diesem Beitrag hier beschrieben...

                        Kommentar

                        Lädt...
                        X