Ankündigung

Einklappen
Keine Ankündigung bisher.

Stateengine Plugin Support

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

    Ja! Das ist Gebäudeteil "Garage" und dann Raum "Garage" ...

    Kommentar


      mike Fixt das das Problem? https://github.com/smarthomeNG/plugi...601444f4b34b5c

      Kommentar


        Ja das fixt das Problem. Vielen Dank!

        Kommentar


          Zitat von Onkelandy Beitrag anzeigen
          gama Schon getestet? Hast du Ideen für den Code..? Ich hab mir überlegt, manche Infos in die States als Properties auszulagern, aber richtig was bringt das auch nicht.

          Was vermutlich vernünftig wäre.. beim ersten Start dafür zu sorgen, dass der Suspend nicht gleich aufgelöst werden kann, falls der auflösende Zustand eingenommen werden könnte. Sondern erst beim nächsten Mal..?
          Hi,
          am Wochenende habe ich (endlich) angefangen das die StateEngine umzubauen. Dabei wollte ich gleich die state_suspend_dynamic nutzen, komme aber nicht richtig weiter. Hast Du ein Beispiel welches das Zusammenspiel an der Praxis erläutert?

          Exemplarisch wäre eine kleine StateEngine mit einem Nacht Modus cool:
          * Ist ein normaler Suspend aktiv, jedoch der Zustand "Nacht" als gültig evaluiert, so wird der aktuelle Suspend aufgelöst.
          * Wird während der Nacht ein Suspend aktiviert, läuft dieser mit einer geänderten Zeit.
          * Ist Nacht Suspend aktiv, aber Nacht nicht mehr als gültig bestimmt, so wird der Nacht Suspend vorzeitig beendet.

          Vielen Dank und Grüße
          Markus

          Kommentar


            Hi!
            Ich würds mal simpel halten und das se_releasedby ausprobieren. Du hast den suspend ganz oben in der Hierarchie, über der Nacht und definierst dort eben, dass Nacht den Status "auflösen" darf. Das wegen der kürzeren Zeit kannst du dann mit se_suspend_time: eval:x if state1 else y lösen, wobei du da wohl Hilfsitems brauchst, die auf true oder false gesetzt werden, je nachdem, welcher Status grad aktiv ist.

            Kommentar


              Hallo Zusammen,

              ich (blutiger Anfänger im Bereich KNX und Python 😟) versuche mich gerade in die Funktionsweise des SmartHomeNG allgemein, und im speziellen der StateEngine, einzuarbeiten. Ich habe nun versucht dieses Beispiel aus der Anwender Doku nachzubauen, aber leider will es nicht funktionieren.

              Ich habe die drei Items wie im Beispiel beschrieben angelegt (1x Prüf-Item Wetterstation, 1x Trigger, 1x Raffstore Automatik) und das Item "Raffstore Automatik" mit meinen KNX-Adressen ergänzt. Unter Struct dann das "stateengine_default_raffstore:" angelegt (darin hab ich nichts verändert).

              Wenn ich jetzt SmartHomeNG neu starte, bekomme ich im Log folgende Fehlermeldungen:

              Code:
              2021-04-04 18:57:59 WARNING lib.item.item item 'beispiel.raffstore1.automatik.rules': trigger item 'beispiel.raffstore1.automatik.anwesenheit' not found for function 'True'
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Behanghöhe des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Lamellenwinkel des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Determined item 'beispiel.raffstore1.automatik.Nachfuehren_Osten' does not exist.
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules se_use is set up in a wrong way - ignoring None
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Behanghöhe des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Lamellenwinkel des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Behanghöhe des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Behanghöhe des Raffstores' not found!
              Die erste Warnung kann ich mir noch damit erklären, dass ich keine "Anwesenheit" "programmiert/konfiguriert" habe. Aber warum findet er die anderen Items nicht bzw. was sagt mir die Fehlermeldung zu "se_use"?

              Leider blicke ich bei einigen grundlegenden Dingen noch nicht ganz durch, was es nicht gerade leichter macht. Z. B. verstehe ich das mit den Punkten vor einem Item noch nicht wirklich. Als Beispiel hier mal "...hoehe", "...lamelle" und "..settings.himmelsrichtung" aus dem Doku-Beispiel:
              Code:
              rules:
                      # Item für Behanghöhe
                      se_item_hoehe: ...hoehe
                      
                      # Item für Lamellenwinkel
                      se_item_lamelle: ...lamelle
                      
                      # Keine Änderung des Lamellenwinkels wenn Abweichung kleiner 5
                      se_item_himmelsrichtung: ..settings.himmelsrichtung
              Ich denke mal, dass das mit den Einrückungen zu tun hat. Stimmt das und kann mir das vielleicht jemand noch etwas genauer erklären? Vielleicht einfach anhand dem vorgenannten Beispiel. Warum sind vor "hoehe" und "lamelle" drei Punkte und vor "settings" nur zwei?

              Ich hoffe ich quäle euch nicht mit solchen Anfänger-Fragen, aber irgendwie konnte ich mir meine Fragen durch lesen der sehr umfangreichen Doku nicht selbst beantworten.

              LG Maku

              Kommentar


                Hi!
                Die Punkte refernzieren auf relative Items. Wenn du auf Nummer sicher gehen willst, kannst du auch einfach die absoluten Pfade angeben, also z.b. raffstore.hoehe oder so. Beim SE Plugin werden die Referenzen immer von dem Item aus gesucht, in dem das se_plugin: active steht, also normalerweise "rules". Das rules Item wiederum ist ein Unteritem (eine Einrückung mehr) von "automatik". Und im automatik sind die settings Items. Daher dort nur zwei Punkte. Die drei Punkte, weil dann hoehe, etc. außerhalb von automatik sind. Hoffe, das war verständlich.

                Das se_use Beispiel in der Doku hat leider einen kleinen Fehler. Da darf nur EIN Punkt hin, in der Doku sind aber zwei bei "Nachfuehren.Osten".
                Probier das so nochmals aus, dann sollte es klappen. Die Doku wird aber definitiv nochmals überarbeitet, da noch nicht alles optimal ist. Vielleicht ist es auch leichter, mit dem Blogbeitrag zu starten: https://www.smarthomeng.de/starting-...toblind-plugin

                Kommentar


                  Hi Onkelandy,

                  danke für die schnelle und umfangreiche Antwort! Ich hab mich heute morgen noch mal dran gesetzt und versucht deine Info's und Tipps umzusetzen. Leider mit mäßigem Erfolg...

                  Zitat von Onkelandy Beitrag anzeigen
                  Die Punkte refernzieren auf relative Items. Wenn du auf Nummer sicher gehen willst, kannst du auch einfach die absoluten Pfade angeben, also z.b. raffstore.hoehe oder so.
                  Ah ok, dann lag ich ja nicht komplett falsch

                  Jetzt habe ich die Pfade absolut angegeben, aber die Fehlermeldungen bleiben. Hab es auch mit einer unterschiedlichen Anzahl an Punkten davor versucht, ohne Erfolg. Also irgendwas hab ich offensichtlich noch falsch weil nicht verstanden 🤔
                  Ich seh es doch richtig, dass die Fehlermeldung aus der struct "stateengine_default_raffstore" kommt, weil dort auf das Item "se_item_hoehe" referenziert wird, welches er offensichtlich nicht findet. Unter dem angegebenen absoluten Pfad "beispiel.raffstore1.hoehe" ist das Item aber doch da. Oder hab ich da noch einen Denkfehler? So wie ich es verstehe, habe ich wohl im Code für die Raffstore Steuerung noch einen Fehler. Vielleicht hat da noch jemand einen Tipp für mich?!
                  Code:
                  beispiel:
                      raffstore1:    
                          name: Raffstore Beispiel 1
                          hoehe:
                              type: num
                              name: Behanghöhe des Raffstores
                              knx_dpt: 5001
                              knx_send: 8/1/0
                              cache: 'on'
                                  
                          lamelle:
                              type: num
                              name: Lamellenwinkel des Raffstores
                              knx_dpt: 5001
                              knx_send: 8/2/0
                              cache: 'on'
                  Fehlermeldungen aus dem Log:
                  Code:
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Lamellenwinkel des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Lamellenwinkel des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Lamellenwinkel des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!

                  Zitat von Onkelandy Beitrag anzeigen
                  Beim SE Plugin werden die Referenzen immer von dem Item aus gesucht, in dem das se_plugin: active steht, also normalerweise "rules". Das rules Item wiederum ist ein Unteritem (eine Einrückung mehr) von "automatik". Und im automatik sind die settings Items. Daher dort nur zwei Punkte. Die drei Punkte, weil dann hoehe, etc. außerhalb von automatik sind. Hoffe, das war verständlich.
                  Teils teils. Aber ich denke, dass es mir zunehmend klarer wird, je mehr ich mich damit auseinandersetze. Mir fehlt einfach die Erfahrung. Es fühlt sich vieles für mich noch wie Swahili an 😅

                  Zitat von Onkelandy Beitrag anzeigen
                  Das se_use Beispiel in der Doku hat leider einen kleinen Fehler. Da darf nur EIN Punkt hin, in der Doku sind aber zwei bei "Nachfuehren.Osten".
                  Probier das so nochmals aus, dann sollte es klappen.
                  Bingo! Die Fehlermeldung bezüglich "se_use" ist weg. 👍

                  Zitat von Onkelandy Beitrag anzeigen
                  Vielleicht ist es auch leichter, mit dem Blogbeitrag zu starten: https://www.smarthomeng.de/starting-...toblind-plugin
                  Tatsächlich hatte ich ursprünglich mit genau diesem Beispiel angefangen. Das hat aber leider auch nicht komplett funktioniert. Da ist der Raffstore beim Neustart in die aktuell richtige Position gefahren, aber er hat sich nicht mehr aktualisiert.
                  Angehängte Dateien

                  Kommentar


                    Es gab ein Problem bei items mit Namen, das erst im develop gefixt ist. Zieh dir bitte mal die develop Version oder lösch die Name Attribute

                    Kommentar


                      Ich hab seit dem kürzlichen Update auf SH 1.9 ein paar WARNING's (4. Zeile) im Log:

                      Code:
                      2021-12-30 18:56:55.382324 Check if state 'Dg.Bad.Jalousie.Fenster_gross.AutoBlind.rules.Suspend' ('Pause bis 20:56:55') can be entered:
                      ...
                      2021-12-30 18:56:55.383006   Check condition set 'enter_stay'
                      ...
                      2021-12-30 18:56:55.383661     Condition 'manuell': Checking all relevant stuff
                      2021-12-30 18:56:55.383725         WARNING: Neither value nor min/max given. This might result in unexpected evalutions. Min None, max None, value None
                      2021-12-30 18:56:55.387518         Checking variable 'item.suspend_time', value 7200 from list ['var:item.suspend_time']
                      2021-12-30 18:56:55.387584         Variable result: 7200
                      2021-12-30 18:56:55.387646         Age of 'manuell': min=[None] max=[7200] negate=None current=0.036812
                      2021-12-30 18:56:55.387705         Testing valuepair min None and max 7200
                      2021-12-30 18:56:55.387755         given limits ok -> matching
                      Code:
                             Suspend:
                                  type: foo
                                  name: Automatik ausgesetzt bis ...
                                  enforce_updates: 'True'
                                  enter_stay:
                                      type: foo
                                      se_value_beschattenFuerZeit: 'False'
                                      se_value_laststate: var:current.state_id
                                      se_agemax_manuell: var:item.suspend_time
                                      se_value_suspend: 'True'
                                  se_name: "eval: se_eval.insert_suspend_time('..suspend', suspend_text='Pause bis %X')"
                      Zuletzt geändert von ivande; 30.12.2021, 19:42.

                      Kommentar


                        Du solltest fürs Suspend unbedingt die structs nutzen, die mitgeliefert werden.
                        Generell weist der Fehler darauf hin, dass du zwar ein agemax drin hast, aber keine Angabe, welchen Wert das manuell Item haben soll. Ein se_value_manuell: True sollte die Warnung beheben.

                        Kommentar


                          Zitat von Onkelandy Beitrag anzeigen
                          Du solltest fürs Suspend unbedingt die structs nutzen, die mitgeliefert werden.
                          das ist nicht so ganz ohne größeren Aufwand möglich, da ich noch vom alten Autoblind "umgezogen" bin - bei Gelegenheit müsste ich alles mal neu + sauber machen.

                          Zitat von Onkelandy Beitrag anzeigen
                          Generell weist der Fehler darauf hin, dass du zwar ein agemax drin hast, aber keine Angabe, welchen Wert das manuell Item haben soll. Ein se_value_manuell: True sollte die Warnung beheben.
                          hab die Zeile geändert:
                          Code:
                          se_agemax_manuell: var:item.suspend_time 
                          se_value_suspend: 'True'
                          in
                          Code:
                          se_agemax_suspend: var:item.suspend_time
                          se_value_suspend: 'True'
                          Danke - ohne Deinen Hinweis wäre ich nicht (so schnell) drauf gekommen.

                          Kommentar

                          Lädt...
                          X