Ankündigung

Einklappen
Keine Ankündigung bisher.

Stateengine Plugin Support

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

    Musste tatsächlich tief graben, aber hab das Problem gefunden. Das hier sollte es lösen, bitte testen:
    https://github.com/smarthomeNG/plugins/pull/948

    Kommentar


      Danke, es scheint nun zu klappen.

      Kommentar


        Gut, habs zusammen mit ein paar weiteren Fixes gemergt, ist nun im develop

        Kommentar


          hab eine NOTICE im Log gefunden (PLUGIN_VERSION = '2.0.0'):

          Code:
          2024-07-17  07:16:26 NOTICE   lib.metadata        Item 'Dg.Wohnzimmer.Jalousie.Fenster.AutoBlind.rules.Beschatten', attribute 'se_name': Attribute is undefined and has value 'eval: ('Beschatten-' + sh....Parameter.Himmelsrichtung())'
          Zuletzt geändert von ivande; 17.07.2024, 06:23.

          Kommentar


            Guten Abend zusammen,

            ich versuche mich gerade in der Stateengine. Hier mein erstes Item:

            Code:
            # 00_Beschattung.yaml
            
            beschattung:
                triggeritem:
                    type: bool
                    name: Trigger
                    cycle: 120 = 1
                    enforce_update: True
            
                automatik:
                    struct: stateengine.general
                    rules:
                        type: bool
                        se_log_level: 2
                        se_plugin: active
                        se_item_height: EG.Buero.Rolladen.Fenster.Wert
                        se_item_sun_altitude: env.location.sun_position.azimut.degrees
                        se_item_temperature: DG.Dach.Wetterstation.Temperatur
                        eval: True
                        eval_trigger: beschattung.triggeritem
                        
                        suntrack:
                            enter_Sonnenstand:
                                se_min_sun_altitude: 170
                                se_max_sun_altitude: 310
                                se_min_temperature: 5
                            on_enter_or_Stay:
                                se_action_height:
                                    - 'function: set'
                                    - 'to: 60'
                        standard:
                            on_enter_or_Stay:
                                se_action_height:
                                  - 'function: set'
                                  - 'to: 0'  ​
            Im Plugin sieht auch alles gut aus:

            Screenshot 2025-03-26 184054.png

            Nach einem Neustart von SHNG kann ich nur einen Fehler sehen, wobei ich mich Frage wo der herkommt.

            Code:
            25-03-26  17:17:38 NOTICE   lib.smarthome       --------------------   SmartHomeNG restarting, initiated by admin interface   --------------------
            2025-03-26  17:17:53 NOTICE   lib.smarthome       --------------------   SmartHomeNG stopped   --------------------
            2025-03-26  17:17:54 NOTICE   lib.smarthome       --------------------   Init SmartHomeNG v1.10.0-master (4b25822a0)   --------------------
            2025-03-26  17:17:54 NOTICE   lib.smarthome       Running in Python interpreter 'v3.10.12 final', from directory /usr/local/smarthome
            2025-03-26  17:17:54 NOTICE   lib.smarthome        - operating system 'Linux Mint 21.3' (pid=702433)
            2025-03-26  17:17:56 NOTICE   lib.smarthome        - on 'Intel(R) Core(TM) i5-7400T CPU @ 2.40GHz'
            2025-03-26  17:18:10 NOTICE   lib.metadata        Item 'beschattung.triggeritem', attribute 'enforce_update': Attribute is undefined and has value 'True' (defined in 00_Beschattung.yaml)
            [B]2025-03-26  17:18:11 ERROR    lib.triggertimes    crontab entry '' has fewer than 4 parts and is invalid[/B]
            2025-03-26  17:18:11 NOTICE   lib.smarthome       --------------------   SmartHomeNG initialization finished   --------------------
            ​
            Mein Problem:

            Der Rolladen wird nicht angesprochen. Das Item "EG.Buero.Rolladen.Fenster.Wert" wird an anderer Stelle erfolgreich eingesetzt, das kann es also nicht sein.

            Code:
            2025-03-26 14:52:39.536763  ===============================================================================
            2025-03-26 14:52:39.561559 Set log level to startup log level 2
            2025-03-26 14:52:39.561990 Initialize Item beschattung.automatik.rules (Log stateengine.beschattung.automatik.rules, Level set to -1, default log level is 0)
            2025-03-26 14:52:39.562768 Testing for relative item declaration ..state_id
            2025-03-26 14:52:39.563439 Testing for relative item declaration ..state_name
            2025-03-26 14:52:39.563543 Testing for relative item declaration ..previousstate_id
            2025-03-26 14:52:39.563648 Testing for relative item declaration ..previousstate_name
            2025-03-26 14:52:39.563706 Testing for relative item declaration ..conditionset_id
            2025-03-26 14:52:39.563763 Testing for relative item declaration ..conditionset_name
            2025-03-26 14:52:39.563815 Testing for relative item declaration ..previousconditionset_id
            2025-03-26 14:52:39.563867 Testing for relative item declaration ..previousconditionset_name
            2025-03-26 14:52:39.563920 Testing for relative item declaration ..previousstate_conditionset_id
            2025-03-26 14:52:39.563973 Testing for relative item declaration ..previousstate_conditionset_name
            2025-03-26 14:52:39.564248 Init state beschattung.automatik.rules.suntrack
            2025-03-26 14:52:39.568427     Added 0 action(s) based on item configuration: 0 on_enter, 0 on_stay , 0 on_enter_or_stay, 0 on_leave
            2025-03-26 14:52:39.610723     Added 1 condition set(s) based on item configuration
            2025-03-26 14:52:39.612094 Appended state beschattung.automatik.rules.suntrack
            2025-03-26 14:52:39.612783 Init state beschattung.automatik.rules.standard
            2025-03-26 14:52:39.614152     Added 0 action(s) based on item configuration: 0 on_enter, 0 on_stay , 0 on_enter_or_stay, 0 on_leave
            2025-03-26 14:52:39.625545     Added 0 condition set(s) based on item configuration
            2025-03-26 14:52:39.626193 Appended state beschattung.automatik.rules.standard
            2025-03-26 14:52:39.627595 ________________________________________________________________________________
            2025-03-26 14:52:39.630612 Recalculating state order. Current order: [SeState item: beschattung.automatik.rules.suntrack, id beschattung.automatik.rules.suntrack., SeState item: beschattung.automatik.rules.standard, id beschattung.automatik.rules.standard.]
            2025-03-26 14:52:39.650025 Recalculated state order. New order: [SeState item: beschattung.automatik.rules.suntrack, id beschattung.automatik.rules.suntrack., SeState item: beschattung.automatik.rules.standard, id beschattung.automatik.rules.standard.]
            2025-03-26 14:52:39.653443 ________________________________________________________________________________
            2025-03-26 14:52:39.667005 Testing for relative item declaration ..settings.instant_leaveaction
            2025-03-26 14:52:39.670084 Using instant_leaveaction ['item:beschattung.automatik.settings.instant_leaveaction'] from attribute se_instant_leaveaction. Default value is False
            2025-03-26 14:52:39.678077 ________________________________________________________________________________
            2025-03-26 14:52:39.686867 Configuration of item beschattung.automatik.rules ==============================
            2025-03-26 14:52:39.691141 Startup Delay: 10 (<class 'int'>)
            2025-03-26 14:52:39.720136 Suspension time on manual changes: 3600 (<class 'int'>)
            2025-03-26 14:52:39.725294 Instant Leave Action from item: beschattung.automatik.settings.instant_leaveaction
            2025-03-26 14:52:39.733568 Currently item results in -1
            2025-03-26 14:52:39.736326 Cycle: Inactive
            2025-03-26 14:52:39.736504 Cron: Inactive
            2025-03-26 14:52:39.736578 Trigger: beschattung.triggeritem
            2025-03-26 14:52:39.736682 Repeat actions if state is not changed: True (<class 'bool'>)
            2025-03-26 14:52:39.736776 Item 'Laststate Id': beschattung.automatik.state_id
            2025-03-26 14:52:39.736846 Item 'Laststate Name': beschattung.automatik.state_name
            2025-03-26 14:52:39.785246 Item 'Previousstate Id': beschattung.automatik.previousstate_id
            2025-03-26 14:52:39.807528 Item 'Previousstate Name': beschattung.automatik.previousstate_name
            2025-03-26 14:52:39.826258 Item 'Lastcondition Id': beschattung.automatik.conditionset_id
            2025-03-26 14:52:39.826350 Item 'Lastcondition Name': beschattung.automatik.conditionset_name
            2025-03-26 14:52:39.826398 Item 'Previouscondition Id': beschattung.automatik.previousconditionset_id
            2025-03-26 14:52:39.826438 Item 'Previouscondition Name': beschattung.automatik.previousconditionset_name
            2025-03-26 14:52:39.826641 Item 'Previousstate condition Id': beschattung.automatik.previousstate_conditionset_id
            2025-03-26 14:52:39.844581 Item 'Previousstate condition Name': beschattung.automatik.previousstate_conditionset_name
            2025-03-26 14:52:39.857191 ________________________________________________________________________________
            2025-03-26 14:52:39.857294 Initializing released_by attributes
            2025-03-26 14:52:39.857384 ________________________________________________________________________________
            2025-03-26 14:52:39.857438 State beschattung.automatik.rules.suntrack:
            2025-03-26 14:52:39.857548     State Name: suntrack (<class 'str'>)
            2025-03-26 14:52:39.857602     State Order: 1 (<class 'int'>)
            2025-03-26 14:52:39.857652     Updating Web Interface...
            2025-03-26 14:52:39.859909     Finished Web Interface Update
            2025-03-26 14:52:39.896648     Condition sets to enter state:
            2025-03-26 14:52:39.902418         Condition Set 'enter_Sonnenstand':
            2025-03-26 14:52:39.902794             Condition 'sun_altitude':
            2025-03-26 14:52:39.903065                 item: sun_altitude (env.location.sun_position.azimut.degrees)
            2025-03-26 14:52:39.903264                 min: 170 (<class 'int'>)
            2025-03-26 14:52:39.903442                 max: 310 (<class 'int'>)
            2025-03-26 14:52:39.903542                 negate: False
            2025-03-26 14:52:39.903675             Condition 'temperature':
            2025-03-26 14:52:39.903790                 item: temperature (DG.Dach.Wetterstation.Temperatur)
            2025-03-26 14:52:39.903895                 min: 5 (<class 'int'>)
            2025-03-26 14:52:39.903955                 negate: False
            2025-03-26 14:52:39.928399 State beschattung.automatik.rules.standard:
            2025-03-26 14:52:39.928618     State Name: standard (<class 'str'>)
            2025-03-26 14:52:39.928715     State Order: 2 (<class 'int'>)
            2025-03-26 14:52:39.928793     Updating Web Interface...
            2025-03-26 14:52:39.928874     Finished Web Interface Update
            2025-03-26 14:52:39.928992 ________________________________________________________________________________
            2025-03-26 14:52:39.929065
            2025-03-26 14:52:39.929131 These attributes are not used: height. Please check extended log file for details.
            2025-03-26 14:52:39.929193
            2025-03-26 14:52:39.929256 The following attributes have issues:
            2025-03-26 14:52:39.929321     Definition height not used in any action or condition.
            2025-03-26 14:52:39.929389 ________________________________________________________________________________
            2025-03-26 14:52:39.929562 Will start stateengine evaluation at 14:52:49, 26.03.
            2025-03-26 14:52:39.929795 Reset log level to -1
            ​
            ​
            Wo ist mein Fehler? Ich kann ihn nicht finden

            Danke schon mal im Voraus für die Hilfe

            Michael
            Zuletzt geändert von MrSetup; 26.03.2025, 20:17.

            Kommentar


              2 Kleinigkeiten mit großen Auswirkungen:
              https://smarthomeng.github.io/dev_do...s.html#index-2

              on_enter_or_Stay muss on_enter_or_stay heißen.

              Kommentar


                Super, vielen Dank. das habe ich tatsächlich nicht gesehen. Es funktioniert. Freu mich schon auf die unendlichen Möglichkeiten

                Gruß
                Michael

                Kommentar


                  Hallo schon wieder,

                  bin jetzt schon ein ganzes Stück weiter bekommen. Allerdings habe ich einen Knoten im Kopf wie ich mit stateengine.state_lock und stateengine.state_release umgehe.

                  Ich habe ein Item, welches wie folgt definiert ist:

                  Code:
                  allgemein:
                      status:
                          automatik_manuell_aus:
                              type: bool
                              knx_dpt: 1
                              knx_listen: 0/7/10
                              knx_init: 0/7/10
                              knx_send: 0/7/10​
                  Jetzt möchte ich, wenn ich das Item auf "Aus" also "false" setzte, dass state_release ausgelöst wird (also das erneute Ausführen der stateengine, z.B. zum definierten Nachführen der Rolläden, welche evtl. vorher manuell verstellt wurden. Klar möchte ich auch, wenn ich das Item auf "Ein" also "true" setzte, das state_Lock angesprochen wird.

                  Mein Item sieht derzeit wie folgt aus:

                  Code:
                  beschattung:
                      triggeritem:
                          type: bool
                          name: Trigger
                          cycle: 300 = 1
                          #crontab: '* */5 8-19 * *'
                          enforce_updates: true
                      EG:
                          Buero:
                              automatik:
                                  struct:
                                      - stateengine.general
                                      - stateengine.state_suspend
                                      - stateengine.state_lock
                                      - stateengine.state_release
                                      #- beschattung_default
                                  manuell:
                                      eval_trigger:
                                          - EG.Buero.Rolladen.Fenster.Wert.knx_send
                                          - EG.Buero.Rolladen.Fenster.Fahren
                                          - EG.Buero.Rolladen.Fenster.Stopp
                                      se_manual_exclude:
                                          - KNX:1.1.11:0.0.0
                                  
                                  rules:
                                      type: bool
                                      se_log_level: 0
                                      se_plugin: active
                                      se_item_height: EG.Buero.Rolladen.Fenster.Wert
                                      se_item_sun_altitude: env.location.sun_position.azimut.degrees
                                      se_item_sun_elevation: env.location.sun_position.elevation.degrees
                                      se_item_fassade4: allgemein.status.rolladen_automatik_fassade4
                                      se_repeat_actions: false
                                      eval_trigger:
                                          - beschattung.EG.Buero.automatik.manuell
                                          #- beschattung.EG.Buero.automatik.release
                                          #- beschattung.EG.Buero.automatik.lock
                                          - beschattung.triggeritem
                                      eval: true​
                                      ...
                  Wo und wie muss ich jetzt die Zuordnung von
                  beschattung.EG.Buero.automatik.lock zu allegmein.status.automatik_manuell_aus = true
                  und
                  beschattung.EG.Buero.automatik.release zu allegmein.status.automatik_manuell_aus = false
                  machen? In den verschiedenen Dokus und Hilfeseiten habe ich das nicht gefunden, oder ich habe Tomaten auf den Augen, sry dafür.

                  Danke im voraus

                  Michael

                  P.S. weil ich es gerade sehe: wenn ich den crontab nutzen möchte, funktioniert das irgendwie auch nicht.

                  Kommentar


                    Die Reihenfolge wäre release, lock, suspend. Da brauchst du dann kein automatik_manuell_aus, sondern du triggerst einfach den release State. Dafür gibt es das Item .automatik.release -> True

                    Um zu sperren, setzt du das lock Item auf True, das ist schon fix im struct. Wichtig ist die korrekte Hierarchie der States.
                    Zuletzt geändert von Onkelandy; 04.04.2025, 16:30.

                    Kommentar


                      Hallo Onkelandy,

                      erst einmal Danke. Bin noch nicht dazu gekommen es zu testen. Ich schaue mal wie ich damit zurecht komme.

                      Gruß

                      Michael

                      Kommentar


                        --
                        Zuletzt geändert von Jackhammer; 26.05.2025, 11:00. Grund: ich bin blöd :D

                        Kommentar

                        Lädt...
                        X