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.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Stateengine Plugin Support
Einklappen
X
-
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 -> matchingCode: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.
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
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...
Ah ok, dann lag ich ja nicht komplett falschZitat 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?!
Fehlermeldungen aus dem Log: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!
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 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.
Bingo! Die Fehlermeldung bezüglich "se_use" ist weg. 👍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.
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.Zitat von Onkelandy Beitrag anzeigenVielleicht ist es auch leichter, mit dem Blogbeitrag zu starten: https://www.smarthomeng.de/starting-...toblind-pluginAngehängte Dateien
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
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:
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"?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:
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?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
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
Hi,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
Einen Kommentar schreiben:
-
mike Fixt das das Problem? https://github.com/smarthomeNG/plugi...601444f4b34b5c
Einen Kommentar schreiben:
-
Ja! Das ist Gebäudeteil "Garage" und dann Raum "Garage" ...
Einen Kommentar schreiben:
-
Schau ich mal. Dass dein item doppelt garage, also
garage.garage.ladeplatz1.automatik.rules ist Absicht?!
Einen Kommentar schreiben:
-
Ja, da hatte ich versucht das zu fixen, da es mir auch einfach erschien. Das war dann aber doch nichts. Ich habe da nicht den rechten Überblick was genau das Problem ist.Zitat von Onkelandy Beitrag anzeigenDas sollte leicht fixbar sein. Hab einen PR auf github gesehen, der aber wieder geschlossen wurde?
Einen Kommentar schreiben:
-
Das sollte leicht fixbar sein. Hab einen PR auf github gesehen, der aber wieder geschlossen wurde?
Einen Kommentar schreiben:
-
Ich habe eine merkwürdige Meldung im Log (smarthomeNG 1.8.1, plugin-Version 1.8.2):
Das ganze kommt von StateEngineItem.py:782. Die dort aufgelöste "item_id" wird (soweit ich das verstanden habe) in StateEngineCondition.py:109 in das Dictionary getan. Dort allerdings via "str(self.__item)", also mit dem Namen.Code:2021-02-24 07:23:45 WARNING plugins.stateengine.garage.garage.ladeplatz1.automatik.rules Item 'Name vom Item' not found!
Solange das Item keinen Namen über das Attribut "name" bekommen hat, wird als Name der Pfad verwendet. D.h. sobald man dem Item einen Namen gibt, dann kommt es zu dieser Meldung.
Einen Kommentar schreiben:

Einen Kommentar schreiben: