Ja! Das ist Gebäudeteil "Garage" und dann Raum "Garage" ...
Ankündigung
Einklappen
Keine Ankündigung bisher.
Stateengine Plugin Support
Einklappen
X
-
Zitat von Onkelandy Beitrag anzeigengama 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..?
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!
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 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 anzeigenDie 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.
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'
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 anzeigenBeim 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.
Zitat von Onkelandy Beitrag anzeigenDas 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.
Zitat von Onkelandy Beitrag anzeigenVielleicht ist es auch leichter, mit dem Blogbeitrag zu starten: https://www.smarthomeng.de/starting-...toblind-pluginAngehängte Dateien
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
-
Zitat von Onkelandy Beitrag anzeigenDu solltest fürs Suspend unbedingt die structs nutzen, die mitgeliefert werden.
Zitat von Onkelandy Beitrag anzeigenGenerell 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.
Code:se_agemax_manuell: var:item.suspend_time se_value_suspend: 'True'
Code:se_agemax_suspend: var:item.suspend_time se_value_suspend: 'True'
Kommentar
Kommentar