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:[MARKIEREN]13[/MARKIEREN]:30.186403 Update triggered by Eval (item=Dg.Bad.Jalousie.Fenster.AutoBlind.rules source=Dg.Trigger dest=None)
                2020-05-13 16:[MARKIEREN]14[/MARKIEREN]:31.233377 Update triggered by Eval (item=Og.Bad.Jalousie.Fenster.AutoBlind.rules source=Og.Trigger dest=None)
                2020-05-13 16:[MARKIEREN]15[/MARKIEREN]: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


                          #72
                          Hi an alle, die das Stateengine Plugin nutzen. Mir sind letztens einige ganz grobe Probleme mit dem Manuell Item aufgefallen. Und da wundere ich mich grad, warum das nie aufgefallen ist - weder mir noch sonst wem.

                          Folgende Probleme:
                          - Beim Manuell Item wurde der Original Caller (für manual_exclude/include) anhand des letzten Changes statt Updates eruiert. Ich habe bei meinem manual_exclude ein "Init:*" dabei, damit nicht versehentlich beim Neustart ein Item in den suspend Modus geht. Das ist dann sinnvoll, wenn zB ein Item zwar enforce_updates (rauf/runter Jalousie), aber kein cache: True Attribut hat. Führt aber auch dazu, dass man beim manuellen Hinauffahren der Jalousie (Item Value = false) nicht in den Suspendmodus kommt.
                          - Oftmals wird die Evaluierung des Suspend Items auch durch das Stateengine Plugin getriggert. Wenn das nun nicht im manual_exclude ist, kann es durchaus sein, dass man versehentlich im Suspendmodus landet.

                          Beide Situationen kamen bei mir primär bei shng Neustarts vor. Im laufenden Betrieb gab es keine wirklichen Probleme, sporadisch aber wohl schon.

                          Kann die Probleme vielleicht jemand bestätigen bzw. mal mit dem develop Branch entsprechende Tests machen? Danke!

                          Kommentar


                            #73
                            Ich bin gerade dabei, die bei mir laufende Version zu aktualisieren: (git pull und Umstellung nach struct. Ich hatte noch eine alte Version, in der ich nur die Notwendigen Sachen von Autoblind auf Stateengine umgestellt hatte.)

                            Dabei ist mir aufgefallen und trotz lesen des BlogEintrages und diverser Sachen im Forum, bin ich nicht weiter gekommen:
                            In der Anleitung kommen in der Definition des Default-struct die Regeln für beide Hausseiten vor.
                            Diese gelten doch dann auch gleichzeitig, wenn ich das dann als default einbinde, oder?

                            Dann gibt es die Infos von eib@home (von der vorigen Seite), der eine ähnliche Lösung anstrebt.
                            Ich habe jetzt schon seit 3 Tagen versucht aus diesen Informationen eine laufende Version zu basteln. Irgendwie habe ich mich da verrannt.

                            Kann mal jemand ein Muster schicken, wie man das Struct und verschiedene Hausseiten nutzen kann, oder muss ich 4 komplette Templates schreiben, und dann jeweils das passende auswählen? Mein Wunsch wäre ein Template mit den allgemeinen Sachen und dann nur noch
                            # - die Sonnenhöhe mindestens 1° ist
                            se_min_sun_altitude: 1
                            # - die Sonne aus Richtung 90° bis 270° kommt
                            se_min_sun_azimut: 90
                            se_max_sun_azimut: 270

                            diese Werte über ein Weiteres Struct (Ost, Süd, West, Nord) hinzuzufügen.
                            Ich bekomme es aber nicht hin, bzw finde kein entsprechendes Beispiel, was ich umschreiben kann.

                            Wer kann ein Muster posten?

                            Ich glaube ich habe es: Ich muss ein Item Nachführen definieren und dort via as_use das entsprechende Seitenobjekt referenzierten.
                            Ist das richtig gedacht?

                            Gruss Andreas
                            Zuletzt geändert von McTao; 10.06.2020, 12:07.

                            Kommentar


                              #74
                              Achtung - se_use nicht as_use. Allerdings brauchst du das eigentlich auch gar nicht, wenn du eh mit structs arbeitest. Im aktuellen develop Branch der plugins sollte das mit den beiden Hausseiten in der Doku nun auch verständlicher sein.

                              Hier mal ein Beispiel etc/struct.yaml:
                              Code:
                              beschattung_se_state_suntrack:
                                  status:
                                      suntrack:
                                          osten:
                                              bool_helligkeit:
                                                  type: bool
                                                  visu_acl: ro
                                                  cache: True
                                                  eval: 1 if sh......settings.suntrack.min_helligkeit() <= sh.wetterstation.helligkeit.osten() else 0
                                                  eval_trigger:
                                                    - wetterstation.helligkeit.osten
                                                    - .....settings.suntrack.min_helligkeit        
                                  settings:
                                      suntrack:
                                          himmelsrichtung:
                                              type: str
                                              visu_acl: rw
                                              cache: True
                                              eval: >-
                                                "suedosten" if ("sueden_stiegenhaus" in sh..self.property.path) else
                                                "osten" if ("osten" in sh..self.property.path) else
                                                "sueden" if ("sueden" in sh..self.property.path) else
                                                "sueden" if ("markise" in sh..self.property.path) else
                                                "westen" if ("westen" in sh..self.property.path) else "unknown"
                                              enforce_updates: True
                                              crontab: init = "unknown"
                              
                                          min_helligkeit:
                                              type: num
                                              visu_acl: rw
                                              cache: True
                              
                                          min_altitude:
                                              type: num
                                              visu_acl: rw
                                              cache: True
                              
                                          max_altitude:
                                              type: num
                                              visu_acl: rw
                                              cache: True
                              
                                          min_azimut:
                                              type: num
                                              visu_acl: rw
                                              cache: True
                              
                                          max_azimut:
                                              type: num
                                              visu_acl: rw
                                              cache: True
                              
                                          hysterese_dauer:
                                              type: num
                                              visu_acl: rw
                                              cache: True
                              
                                  rules:
                                      se_eval_bool_helligkeit: se_eval.get_relative_item('..status.suntrack.{}.bool_helligkeit'.format(se_eval.get_relative_itemvalue('..settings.suntrack.himmelsrichtung')))
                                      se_template_bool_age: eval:sh...settings.suntrack.hysterese_dauer() * 60 * sh...settings.suntrack.helligkeit_enter_faktor() / 100
                              
                                      suntrack:
                                          enter_helligkeit:
                                              se_agemin_bool_helligkeit: template:bool_age
                                              se_value_bool_helligkeit: True
                                              se_min_sun_azimut: item:..settings.suntrack.min_azimut
                                              se_max_sun_azimut: item:..settings.suntrack.max_azimut
                                              se_min_sun_altitude: item:..settings.suntrack.min_altitude
                                              se_max_sun_altitude: item:..settings.suntrack.max_altitude
                              Mein Item sieht dann zB so aus:
                              Code:
                              jalousien:
                                  eg:
                                      osten_bad:
                                          automatik:
                                              rules:
                                                  eval_trigger:
                                                      - merge_unique*
                                                      - jalousien.stateengine.jalousientrigger_eg
                                              struct:
                                                - stateengine.general
                                                - beschattung_se_state_wind
                                                - stateengine.state_release
                                                - stateengine.state_lock
                                                - stateengine.state_suspend
                                                - beschattung_se_state_suntrack
                                                - beschattung_se_state_standard
                              Der Trick liegt eigentlich im "se_eval". Achtung: In meinem Beispiel haben tatsächlich ALLE Items ihre eigenen Settings von azimut, etc.
                              Du kannst aber natürlich auch auf deine "gloablen" Settings referenzieren anstatt die relativen Itempfade in den rules zu nutzen. Dann hättest du ein globales Settings-Item oder Struct, wo du min_altitude, etc. in ein Unteritem "osten", "sueden", etc. stopfst.

                              Du könntest dann sogar substruct nutzen, die es seit dem letzten Release gibt:
                              etc/struct.yaml
                              Code:
                              suntrack_settings_substruct:
                                  min_altitude:
                                      type: num
                                      visu_acl: rw
                                      cache: True
                              
                                  max_altitude:
                                      type: num
                                      visu_acl: rw
                                      cache: True
                              
                                  min_azimut:
                                      type: num
                                      visu_acl: rw
                                      cache: True
                              
                                  max_azimut:
                                      type: num
                                      visu_acl: rw
                                      cache: True
                              
                                  min_temperatur:
                                      type: num
                                      visu_acl: rw
                                      cache: True
                              
                                  hysterese_temperatur:
                                      type: num
                                      visu_acl: rw
                                      cache: True
                              
                                  force_temperatur:
                                      type: num
                                      visu_acl: rw
                                      cache: True
                              
                                  min_helligkeit:
                                      type: num
                                      visu_acl: rw
                              
                              suntrack_settings:
                                  osten:
                                      struct: suntrack_settings_substruct
                                  sueden:
                                      struct: suntrack_settings_substruct
                                  westen:
                                      struct: suntrack_settings_substruct
                              Dann referenzierst du auf die entsprechende Angabe z.B. so - unter der Annahme dass jedes deiner Items die Himmelsrichtung in einem Item settings.suntrack.himmelsrichtung deklariert hat:

                              Code:
                              min_sun_altitude: eval:se_eval.get_relative_item('stateengine.suntrack_settings.{}.min_altitude'.format(se_eval.get_relative_itemvalue('..settings.suntrack.himmelsrichtung')))

                              Kommentar


                                #75
                                Zitat von Onkelandy Beitrag anzeigen
                                Hi an alle, die das Stateengine Plugin nutzen. Mir sind letztens einige ganz grobe Probleme mit dem Manuell Item aufgefallen. Und da wundere ich mich grad, warum das nie aufgefallen ist - weder mir noch sonst wem.
                                ...
                                Hi,

                                also ich habe auch große Probleme mit dem Suspend und hatte auch schon mal versucht, das zu beschreiben. Siehe #36. Ich muss aber dazu sagen, dass ich vollkommen den Durchblick durch die Struktur der State-Engine verloren habe. Ihr seid da tief drin, aber wenn man sich nur ab und an damit beschäftigt, ist es echt schwer, diese sehr komplexen Konfigurationsmöglichkeiten und Wechselwirkungen im Blick zu haben. Letztendlich brauche ich eine Steuerung meiner Rollladen und teilweise Lampen, die an einigen Bedingungen hängt. Ich überlege schon, mit einfach ein paar Logiken zu schreiben, um wieder Herr des Verfahrens zu werden. Das alles ist keine Kritik, mir ist schon klar, dass die Komplexität der State-Enginge zustande gekommen ist, weil diese Anforderungen bei einigen oder vielen bestehen. Und ich bin ohnehin dankbar für alles, was ihr macht. Nur da ich vollkommen den Überblick verloren habe, muss ich mir wohl einen anderen Weg suchen.

                                Jedenfalls habe ich das Problem, dass nach Ablauf der Suspend-Time oftmals derselbe Befehl, der das Suspend ausgelöst hat, erneut registriert wird. Ohne dass ihn jemand ausgelöst hat. Das passiert aber auch nicht immer. Wenn ich teste, läuft oft alles so, wie es sein soll. Wenn ich dann in den Betrieb gehe, bleibt dann und wann irgendwo ein Rollladen im Dauer-Suspend.
                                Dann habe ich auch noch das Problem, dass ich einen Rollladen manuell öffne und wenn während der Öffnung (Rollladen läuft noch) der reguläre Trigger eine Neuberechnung auslöst, dann fährt der Rollladen wieder zurück. Also die normale Konfiguration wäre z.B. zu der Zeit "Rollladen geschlossen" und ich öffne ihn aber manuell. Dann kommt per Trigger in dem Moment eine Neuberechnung und er stoppt die Aufwärtsfahrt und fährt wieder nach unten. So, als ob der Suspend-Zustand nicht mehr rechtzeitig angekommen wäre...

                                Ich poste mal alle meine Konfigurationen. Vielleicht (oder ganz bestimmt) mache ich auch was Grundlegendes falsch.
                                Code:
                                #\etc\struct.yaml
                                stateengine_items_and_trigger_Rollladen:
                                    settings:
                                        suspendduration:          
                                            cache: false
                                            initial_value: 90
                                    rules:
                                        se_item_temperature: thz.outsideTemp
                                        se_item_anwesend: Hausmodi.Anwesenheit
                                        se_item_automatik_aus: Global.alle_Rollladen_manuell
                                        se_item_party: Hausmodi.Party
                                        se_item_urlaub: Hausmodi.Urlaub
                                        se_item_schulferien: Hausmodi.Schulferien
                                        se_item_Lara_schlaeft: Global.Lara_Rollladen_manuell
                                        se_item_Anna_schlaeft: Global.Anna_Rollladen_manuell
                                        se_item_Schlafzimmer_schlaeft: Global.Schlafzimmer_Rollladen_manuell
                                        se_item_Gaeste_schlaeft: Global.Gaeste_Rollladen_manuell
                                        se_item_Daemmerung1: Sonnenstand.normaleDaemmerung
                                        se_item_Daemmerung2: Sonnenstand.starkeDaemmerung
                                        se_item_Daemmerung3: Sonnenstand.Finsternis
                                        se_item_Helligkeit_morgens_wolkenlos: Sonnenstand.morgens_wolkenlos
                                        se_item_Helligkeit_gr43k: Sonnenstand.Helligkeit.gt43k
                                        se_item_Helligkeit_kl1k: Sonnenstand.Helligkeit.sm1k
                                        se_item_nachfuehren: Global.Rollladen_Hitzeschutz
                                        se_item_Frostschutz: Global.Rollladen_Frostschutz
                                        se_item_height: ...Position
                                        se_item_fahren: ...Fahren
                                        se_startup_delay: 30
                                
                                        eval_trigger:
                                            - Trigger_se.trigger_1
                                            - ..manuell
                                            - ..lock
                                            - ..suspend
                                            - ..retrigger
                                            - ..release
                                stateengine_items_and_trigger_Schaltungen:
                                    settings:
                                        remark: Use these settings for your condition values
                                        suspendduration:
                                            cache: false
                                            initial_value: 30
                                    rules:
                                        se_item_temperature: thz.outsideTemp
                                        se_item_anwesend: Hausmodi.Anwesenheit
                                        se_item_automatik_aus: Global.alle_Rollladen_manuell
                                        se_item_party: Hausmodi.Party
                                        se_item_urlaub: Hausmodi.Urlaub
                                        se_item_Daemmerung1: Sonnenstand.normaleDaemmerung
                                        se_item_Daemmerung2: Sonnenstand.starkeDaemmerung
                                        se_item_Daemmerung3: Sonnenstand.Finsternis
                                        se_item_Helligkeit_morgens_wolkenlos: Sonnenstand.morgens_wolkenlos
                                        se_item_Helligkeit_gr43k: Sonnenstand.Helligkeit.gt43k
                                        se_item_Helligkeit_kl1k: Sonnenstand.Helligkeit.sm1k
                                
                                        se_startup_delay: 30
                                
                                        eval_trigger:
                                            - Trigger_se.trigger_1
                                            - ..manuell
                                            - ..lock
                                            - ..suspend
                                            - ..retrigger
                                            - ..release
                                
                                stateengine_nichtstun:
                                    rules:
                                        nichts_tun:
                                            type: foo
                                            name: letzter_Zustand_ohne_Aktion
                                
                                          
                                stateengine_Rollladen_KG_manuell:
                                    manuell:
                                        eval_trigger:
                                            - ...Fahren
                                            - ...Stop
                                            - ......Zentral.alleZimmer.alle.Fahren
                                            - ......Zentral.alleZimmer.alle.Stop
                                            - ......Keller.alleZimmer.alle.Fahren
                                            - ......Keller.alleZimmer.alle.Stop
                                        se_manual_exclude:
                                            - 'Init:*'
                                            - 'database:*'
                                
                                stateengine_Rollladen_KG_nachts:
                                    rules:
                                        
                                        nachts:
                                            type: foo
                                            name: Rollladen Nacht_KG
                                            #se_set_fahren: 1
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'
                                            enter_1:
                                                se_value_Daemmerung1: 'True'
                                                se_min_time: 09:00
                                                se_max_time: '16:00'
                                                se_negate_time: true    # 16:00-09:00
                                                se_value_automatik_aus: 'False'
                                            enter_2:
                                                se_min_time: 09:00
                                                se_max_time: '16:00'
                                                se_negate_time: true
                                                # 16:00-09:00
                                                se_min_height: 245    
                                                # 255 wäre ganz geschlossen
                                                se_value_automatik_aus: 'False'
                                            enter_3:
                                                se_value_urlaub: 'True'
                                            enter_4:
                                                se_min_time: 06:30
                                                se_max_time: '18:00'
                                                se_negate_time: true  
                                                # 18:00-06:30
                                                se_min_height: 245    
                                                # 255 wäre ganz geschlossen
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                stateengine_Rollladen_KG_tags:
                                    rules:
                                        tags:
                                            type: foo
                                            name: Rollladen Tags
                                            se_action_fahren:
                                                - 'function: set'
                                
                                            enter_1:
                                                se_min_weekday: 0
                                                se_max_weekday: 4
                                                se_min_time: 07:00
                                                se_max_time: '20:00'
                                                se_value_party: 'False'
                                                se_value_schulferien: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                
                                            enter_2:
                                                se_min_weekday: 5
                                                se_max_weekday: 6
                                                se_min_time: 08:30
                                                se_max_time: '20:00'
                                                se_value_party: 'False'
                                                se_value_schulferien: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                
                                            enter_3:
                                                se_min_time: 09:00
                                                se_max_time: '20:00'
                                                se_value_party: 'False'
                                                se_value_schulferien: 'True'
                                                se_value_automatik_aus: 'False'
                                
                                              
                                stateengine_Rollladen_EG_manuell:
                                    manuell:
                                        eval_trigger:
                                            - ...Fahren
                                            - ...Stop
                                            - ......Zentral.alleZimmer.alle.Fahren
                                            - ......Zentral.alleZimmer.alle.Stop
                                            - ......Erdgeschoss.alleZimmer.alle.Fahren
                                            - ......Erdgeschoss.alleZimmer.alle.Stop
                                        se_manual_exclude:
                                            - 'Init:*'
                                            - 'database:*'
                                
                                stateengine_Rollladen_EG_nachts:
                                    rules:
                                        
                                        nachts_eg:
                                            type: foo
                                            name: Rollladen Nacht_EG
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'
                                
                                            enter_1:
                                                se_value_Daemmerung2: 'True'
                                                se_min_time: 06:30
                                                se_max_time: '16:00'
                                                se_negate_time: true    # 16:00-09:00
                                                se_min_month: 3
                                                se_max_month: 11
                                                se_negate_month: 'True'
                                                se_value_anwesend: 'True'
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                            enter_2:
                                                se_value_Daemmerung2: 'True'
                                                se_min_time: 06:30
                                                se_max_time: '16:00'
                                                se_negate_time: true    # 16:00-09:00
                                                se_min_month: 3
                                                se_max_month: 11
                                                se_negate_month: 'True'
                                                se_value_anwesend: 'False'
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                            enter_3:
                                                se_value_Daemmerung3: 'True'
                                                se_min_time: 06:30
                                                se_max_time: '16:00'
                                                se_negate_time: true    
                                                # 16:00-09:00
                                                se_min_month: 4
                                                se_max_month: 10
                                                se_value_anwesend: 'True'
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                
                                            enter_4:
                                                se_value_Daemmerung3: 'True'
                                                se_min_time: 06:30
                                                se_max_time: '16:00'
                                                se_negate_time: true    
                                                # 16:00-09:00
                                                se_min_month: 4
                                                se_max_month: 10
                                                se_value_anwesend: 'False'
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                            enter_5:
                                                se_min_time: 06:30
                                                se_max_time: '16:00'
                                                se_negate_time: true    
                                                # 16:00-09:00
                                                se_min_height: 245    
                                                # 255 wäre ganz geschlossen
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                
                                            enter_6:
                                                se_value_Daemmerung1: 'True'
                                                se_min_time: 06:30
                                                se_max_time: 08:15
                                                se_min_height: 245    
                                                # 255 wäre ganz geschlossen
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                
                                            enter_7:
                                                se_min_time: 06:30
                                                se_max_time: '18:00'
                                                se_negate_time: true    
                                                # 18:00-06:30
                                                se_min_height: 245  
                                                # 255 wäre ganz geschlossen
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                
                                
                                stateengine_Rollladen_EG_tags:
                                    rules:
                                        tags:
                                            type: foo
                                            name: Rollladen Tags
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 0'
                                
                                            enter_1:
                                                se_min_weekday: 0
                                                se_max_weekday: 4
                                                se_min_time: 07:00
                                                se_max_time: '20:00'
                                                se_value_party: 'False'
                                                se_value_schulferien: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                            enter_2:
                                                se_min_weekday: 5
                                                se_max_weekday: 6
                                                se_min_time: 08:30
                                                se_max_time: '20:00'
                                                se_value_party: 'False'
                                                se_value_schulferien: 'False'
                                
                                            enter_3:
                                                se_min_time: 09:00
                                                se_max_time: '20:00'
                                                se_value_party: 'False'
                                                se_value_schulferien: 'True'
                                                se_value_automatik_aus: 'False'
                                
                                stateengine_Rollladen_DG_manuell:
                                    manuell:
                                        eval_trigger:
                                            - ...Fahren
                                            - ...Stop
                                            - ......Zentral.alleZimmer.alle.Fahren
                                            - ......Zentral.alleZimmer.alle.Stop
                                            - ......Dachgeschoss.alleZimmer.alle.Fahren
                                            - ......Dachgeschoss.alleZimmer.alle.Stop
                                        se_manual_exclude:
                                            - 'Init:*'
                                            - 'database:*'
                                
                                        
                                stateengine_Rollladen_DG_nachts:
                                    rules:
                                        nachts_dg:
                                            type: foo
                                            name: Rollladen Nacht_DG
                                        
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'
                                
                                            enter_1:
                                                se_value_Daemmerung2: 'True'
                                                se_min_time: '16:00'
                                                se_max_time: '22:00'
                                                se_min_month: 3
                                                se_max_month: 11
                                                se_negate_month: 'True'
                                                se_value_automatik_aus: 'False'
                                
                                            enter_2:
                                                se_value_Daemmerung3: 'True'
                                                se_min_time: '16:00'
                                                se_max_time: '22:00'
                                                se_min_month: 4
                                                se_max_month: 10
                                                se_value_automatik_aus: 'False'
                                
                                            enter_3:
                                                se_min_time: '19:45'
                                                se_max_time: '20:00'
                                                se_min_month: 3
                                                se_max_month: 11
                                                se_negate_month: 'True'
                                                se_value_automatik_aus: 'False'
                                
                                            enter_4:
                                                se_min_time: '20:45'
                                                se_max_time: '21:00'
                                                se_min_month: 4
                                                se_max_month: 10
                                                se_value_automatik_aus: 'False'
                                
                                            enter_5:
                                                se_min_sun_altitude: -4
                                                se_min_time: 04:00
                                                se_max_time: 06:00
                                                se_value_automatik_aus: 'False'
                                
                                            enter_6:
                                                # se_min_sun_altitude = 0
                                                se_min_time: 06:00
                                                se_max_time: 07:00
                                                se_value_automatik_aus: 'False'
                                
                                            enter_7:
                                                se_min_time: 07:00
                                                se_max_time: 09:00    
                                                # einige Zimmer weiter unten veraendert
                                                se_min_height: 245    
                                                # 255 wäre ganz geschlossen
                                                se_value_automatik_aus: 'False'
                                
                                            enter_8:
                                                se_min_time: 07:00
                                                se_max_time: '18:00'
                                                se_negate_time: true    
                                                # 18:00-07:00
                                                se_min_height: 245    
                                                # 255 wäre ganz geschlossen
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'          
                                
                                stateengine_Rollladen_DG_tags:
                                    rules:
                                        tags:
                                            type: foo
                                            name: Rollalden Tags_DG
                                
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 0'
                                        
                                            enter_1:
                                                se_min_time: 07:00
                                                se_max_time: '20:00'
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                                    
                                stateengine_Rollladen_EG_Ost_nachfuehrung:
                                    rules:
                                        Nachfuehrung:
                                            type: foo
                                            name: Rollladen Nachfuehung_EG_Ost
                                            se_action_height:
                                                - 'function: set'
                                                - 'to: 166'
                                    
                                            enter_1:
                                                se_value_nachfuehren: 'True'
                                                se_min_sun_altitude: 10
                                                se_max_sun_altitude: 70
                                                se_min_sun_azimut: 30
                                                se_max_sun_azimut: 150
                                                se_value_automatik_aus: 'False'
                                                    
                                stateengine_Rollladen_DG_Ost_nachfuehrung:
                                    rules:
                                        Nachfuehrung:
                                            type: foo
                                            name: Rollladen Nachfuehung_DG_Ost
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'
                                
                                            enter_1:
                                                se_value_nachfuehren: 'True'
                                                se_min_sun_altitude: 10
                                                se_max_sun_altitude: 70
                                                se_min_sun_azimut: 30
                                                se_max_sun_azimut: 150
                                                se_value_automatik_aus: 'False'
                                
                                
                                
                                stateengine_Rollladen_DG_Sued_nachfuehrung:
                                    rules:
                                        Nachfuehrung:
                                            type: foo
                                            name: Rollladen Nachfuehung_DG_Sued
                                            #se_set_fahren: 1    # 100%
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'
                                            enter_1:
                                                se_value_nachfuehren: 'True'
                                                se_min_sun_altitude: 10
                                                se_max_sun_altitude: 70
                                                se_min_sun_azimut: 120
                                                se_max_sun_azimut: 240
                                                se_value_automatik_aus: 'False'
                                            
                                
                                
                                stateengine_Rollladen_DG_West_nachfuehrung:
                                    rules:
                                        Nachfuehrung:
                                            type: foo
                                            name: Rollladen Nachfuehung_DG_West
                                            #se_set_fahren: 1    # 100%
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'  
                                            enter_1:
                                                se_value_nachfuehren: 'True'
                                                se_min_sun_altitude: 5
                                                se_max_sun_altitude: 70
                                                se_min_sun_azimut: 210
                                                se_max_sun_azimut: 330
                                                se_value_automatik_aus: 'False'
                                
                                                
                                stateengine_Rollladen_DG_Nord_nachfuehrung:
                                    rules:
                                        Nachfuehrung:
                                            type: foo
                                            name: Rollladen Nachfuehung_DG_Nord
                                            #se_set_fahren: 1    # 100%
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'  
                                
                                            enter_1:
                                                se_value_nachfuehren: 'True'
                                                se_min_sun_altitude: 5
                                                se_max_sun_altitude: 70
                                                se_min_sun_azimut: 290
                                                se_max_sun_azimut: 330
                                                se_value_automatik_aus: 'False'
                                
                                
                                stateengine_Rollladen_DG_Dachfenster_nachts:
                                    rules:
                                        nachtsWinter:
                                            type: foo
                                            name: Rollladen Nacht_Dachfenster
                                          
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'  
                                
                                            
                                            enter_3:
                                                se_value_Daemmerung2: 'True'
                                                se_min_time: '16:00'
                                                se_max_time: '22:00'
                                                se_min_month: 4
                                                se_max_month: 10
                                                se_negate_month: 'True'
                                                se_value_automatik_aus: 'False'
                                
                                            enter_4:
                                                se_min_time: '20:00'
                                                se_max_time: '20:15'
                                                se_min_month: 4
                                                se_max_month: 10
                                                se_negate_month: 'True'
                                                se_value_automatik_aus: 'False'
                                
                                stateengine_Rollladen_DG_Dachfenster_nachfuehren:
                                    rules:
                                        nachfuehren:
                                            type: foo
                                            name: Rollladen Nachfuehung_DG_Dachfenster
                                            se_action_fahren:
                                             - 'function: set'
                                             - 'to: 1'
                                            enter:
                                                se_value_nachfuehren: 'True'
                                                se_min_time: '10:00'
                                                se_max_time: '20:00'
                                                se_min_sun_altitude: 10
                                                se_max_sun_altitude: 70
                                                se_min_sun_azimut: 120
                                                se_max_sun_azimut: 260
                                                se_value_automatik_aus: 'False'
                                                    
                                stateengine_Rollladen_EG_Kueche_Blendschutz:
                                    rules:
                                         Blendschutz:
                                            type: foo
                                            name: Rollladen Blendschutz_Kueche
                                            se_action_height:
                                                - 'function: set'
                                                - 'to: 133'
                                
                                            enter_1:
                                                se_value_Helligkeit_morgens_wolkenlos: 'True'
                                                se_min_sun_altitude: 0
                                                se_max_sun_altitude: 30
                                                se_min_sun_azimut: 60
                                                se_max_sun_azimut: 160
                                                se_min_time: 07:00
                                                se_max_time: '11:00'
                                                se_min_month: 3
                                                se_max_month: 10
                                                se_value_anwesend: 'True'
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                            enter_2:
                                                se_min_time: 07:00
                                                se_max_time: '11:00'
                                                se_min_height: 130    
                                                # 255 wäre ganz geschlossen
                                                se_max_height: 135
                                                se_value_party: 'False'
                                                se_value_automatik_aus: 'False'
                                
                                
                                
                                      
                                stateengine_Schaltungen_EG_Wohnzimmer:
                                    rules:
                                        WZ_Licht_nachts:
                                            type: foo
                                            name: Licht Nacht_Wohnzimmer
                                            se_action_light:
                                                - 'function: set'
                                                - 'to: 1'
                                    
                                            enter_1:
                                
                                                se_value_Helligkeit_kl1k: 'True'
                                                se_minage_Helligkeit_kl1k: 60
                                                se_min_time: '16:00'
                                                se_max_time: '23:00'
                                
                                            enter_2:
                                                se_min_time: 01:00
                                                se_max_time: '16:00'
                                                se_negate_time: 'True'
                                                se_value_light: 1
                                
                                            enter_3:
                                                se_min_time: 01:00
                                                se_max_time: 03:00
                                                se_value_anwesend: 'True'
                                                se_value_light: 1
                                
                                        WZ_Licht_tags:
                                            type: foo
                                            name: Licht Tags_Wohnzimmer
                                            se_action_light:
                                                - 'function: set'
                                                - 'to: 0'
                                
                                            enter:
                                                se_value_party: 'False'
                                                    
                                stateengine_Schaltungen_Aussen_Haustuer:
                                    rules:
                                        Haustuer_Licht_nachts:
                                            type: foo
                                            name: Licht Nacht_Haustuer
                                            se_action_light:
                                                - 'function: set'
                                                - 'to: 1'
                                
                                            enter:
                                                se_value_Daemmerung2: 'True'
                                                se_min_time: '16:00'
                                                se_max_time: '23:59'
                                
                                        Haustuer_Licht_tags:
                                            type: foo
                                            name: Licht Tags_Haustuer
                                            se_action_light:
                                                - 'function: set'
                                                - 'to: 0'
                                
                                            enter:
                                                se_value_party: 'False'
                                                
                                stateengine_Schaltungen_Aussen_Wintergarten:
                                    rules:
                                        Wintergarten_Ventilator_ein:
                                            type: foo
                                            name: Ventilator Wintergarten_ein
                                            se_action_light:
                                                - 'function: set'
                                                - 'to: 1'
                                
                                            enter_1:
                                                se_min_time: '13:30'
                                                se_max_time: '14:00'
                                
                                            enter_2:
                                                se_min_time: '22:00'
                                                se_max_time: '23:00'
                                
                                        Wintergarten_Ventilator_aus:
                                            type: foo
                                            name: Ventilator Wintergarten_aus
                                            se_action_light:
                                                - 'function: set'
                                                - 'to: 0'
                                
                                stateengine_Lara_ausschlafen:
                                    rules:
                                        ausschlafen:
                                            type: foo
                                            name: Lara Ausschlafen
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'        
                                            enter:
                                                se_value_Lara_schlaeft: 'True'
                                                se_value_automatik_aus: 'False'
                                stateengine_Anna_ausschlafen:
                                    rules:
                                        ausschlafen:
                                            type: foo
                                            name: Anna Ausschlafen
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'        
                                            enter:
                                                se_value_Anna_schlaeft: 'True'
                                                se_value_automatik_aus: 'False'
                                stateengine_Schlafzimmer_ausschlafen:
                                    rules:
                                        ausschlafen:
                                            type: foo
                                            name: Schlafzimmer Ausschlafen
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'        
                                            enter:
                                                se_value_Schlafzimmer_schlaeft: 'True'
                                                se_value_automatik_aus: 'False'
                                stateengine_Gaeste_ausschlafen:
                                    rules:
                                        ausschlafen:
                                            type: foo
                                            name: Gaeste Ausschlafen
                                            se_action_fahren:
                                                - 'function: set'
                                                - 'to: 1'        
                                            enter:
                                                se_value_Gaeste_schlaeft: 'True'
                                                se_value_automatik_aus: 'False'
                                Code:
                                #\etc\plugin.yaml
                                stateengine:
                                    plugin_name: stateengine
                                    log_level: 2
                                    log_directory: var/log/stateengine/
                                    log_maxage: 3
                                Und beispielhaft ein Item
                                Code:
                                #\items\rollladen.yaml
                                Rollladen:
                                    Erdgeschoss:
                                        Badezimmer:
                                            alle:
                                                Fahren:
                                                    type: bool
                                                    knx_dpt: 1
                                                    visu_acl: rw
                                                    enforce_updates: 'yes'
                                                    knx_send: 2/2/140
                                                    knx_listen: 2/2/140
                                                Stop:
                                                    type: bool
                                                    knx_dpt: 1
                                                    visu_acl: rw
                                                    enforce_updates: 'yes'
                                                    knx_send: 2/2/141
                                                    knx_listen: 2/2/141
                                                Position:
                                                    type: num
                                                    knx_dpt: 5
                                                    enforce_updates: 'yes'
                                                    knx_send: 2/2/144
                                                    knx_cache: 2/2/145
                                                StatusEndlageOben:
                                                    type: bool
                                                    knx_dpt: 1
                                                    knx_cache: 2/2/149
                                                StatusEndlageUnten:
                                                    type: bool
                                                    knx_dpt: 1
                                                    knx_cache: 2/2/150
                                                StatusPosition_gueltig:
                                                    type: bool
                                                    knx_dpt: 1
                                                    knx_cache: 2/2/147
                                                LEDSuspend:
                                                    type: bool
                                                    knx_dpt: 1
                                                    knx_send: 2/2/159
                                                    knx_listen: 2/2/159
                                                    knx_reply: 2/2/159
                                                    enforce_updates: 'yes'
                                                    database@mysqldb: init
                                                uzsu:
                                                    type: dict
                                                    uzsu_item: Rollladen.Erdgeschoss.Badezimmer.alle.Fahren
                                                    database@mysqldb: init
                                                    visu_acl: rw
                                                automatik:
                                                    struct:
                                                        - stateengine.general
                                                        - stateengine.state_release
                                                        - stateengine.state_lock
                                                        - stateengine.state_suspend
                                                        - stateengine_items_and_trigger_Rollladen
                                                        - stateengine_Rollladen_EG_manuell
                                                        - stateengine_Rollladen_EG_nachts
                                                        - stateengine_Rollladen_EG_tags
                                                        - stateengine_nichtstun

                                Kommentar

                                Lädt...
                                X