Guten Morgen,
Bei as_item_<name> kann bisher eine statische Item-Id angegeben werden. Der Datentyp AbValue, über den "eval:<funktion>" bzw "item:<itemname>" angegeben werden ist dort noch nicht berücksichtigt. Das soll aber auch noch kommen, die Funktion get_item ist ja genau für den Anwendungsfall vorgesehen. (Wobei ich da auch noch eine andere Idee habe, aber das muss ich erst mal austesten)
Es werden immer die Steckdosen geschaltet, die sich das Attribut teilen, dass du bei as_byattr angegeben hast. Daher kannst du bei zwei Status zwei unterschiedliche Attribute verwenden und bei den Steckdosen definieren. In deinem Fall könntest du z. B. die Attribute "if_outside_lt_300lux" und "if_outside_lt_100lux" zu den Steckdosen-Items hinzufügen.
Bei der ersten Steckdose ergänzt du ein
Bei der zweiten Steckdose ergänzt du ein
Im Zustand "Helligkeit < 300 Lux" setzt du die Aktion
Im Zustand "Helligkeit < 100 Lux" setzt du die Aktion
Für nur eine Steckdose je Zustand (wie in dem Beispiel) ist das etwas oversized, aber wenn du in diesen Zuständen weitere Objekte schalten willst, kann das einiges an Tipparbeit sparen.
Die Attribute sind einheitlich englisch benannt, nur im Post habe ich mich da wohl vertippt. Müssen die Nachwirkungen der Silvesternacht sein ... Die Attribute heißen
Wenn du "as_mindelta_<Aktionsname>" weglässt, sollte das das Problem beseitigen, nicht jedoch die eigentliche Ursache des Problems
Die Funktion "insert_suspend_time" ermittelt die Endezeit des Suspends. Dazu wird ein Item gebraucht, das im Suspend-Zustand auf "true" und in den anderen Zuständen auf "false" gesetzt wird. Die Funktion "insert_suspend_time" nimmt nun die definierte Suspend-Zeit, zieht davon das Alter dieses Suspend-Items ab. Dies ergibt die Restdauer des Suspends, die einfach zur aktuellen Uhrzeit addiert wird um die Endezeit zu bekommen.
Über das Attribut "as_name" im Zustands-Item kann der Name eines Zustands, wie er in das über "as_laststate_item_name" geschrieben wird, geändert werden. Hier kann beim Suspend-Zustand die Funktion "insert_suspend_time" eingesetzt werden, um "wie früher" das Ende des Suspends anzuzeigen. Die Funktion "insert_suspend_time" braucht als ersten Parameter die Id des Items, das im Suspend-Zustand auf "true" gesetzt wird. Der zweite Parameter ist optional, hier kann der Text angegeben werden, in den die Endezeit eingesetzt wird. Standardwert für den Text ist "Ausgesetzt bis %X".
Wenn du die Endezeit in ein anderes Item schreiben möchtest, musst du beim entsprechenden Zustand etwas wie
angeben.
Grüße
offline
Zitat von Onkelandy
Beitrag anzeigen
Zitat von Onkelandy
Beitrag anzeigen
Bei der ersten Steckdose ergänzt du ein
Code:
if_outside_lt_300lux = True
Code:
if_outside_lt_100lux = True
Code:
as_byattr_steckdosen = if_outside_lt_300lux
Code:
as_byattr_steckdosen = if_outside_lt_100lux
Zitat von Onkelandy
Beitrag anzeigen
- as_manual_invert
- as_manual_include
- as_manual_exclude
Zitat von Onkelandy
Beitrag anzeigen
Zitat von Onkelandy
Beitrag anzeigen
Über das Attribut "as_name" im Zustands-Item kann der Name eines Zustands, wie er in das über "as_laststate_item_name" geschrieben wird, geändert werden. Hier kann beim Suspend-Zustand die Funktion "insert_suspend_time" eingesetzt werden, um "wie früher" das Ende des Suspends anzuzeigen. Die Funktion "insert_suspend_time" braucht als ersten Parameter die Id des Items, das im Suspend-Zustand auf "true" gesetzt wird. Der zweite Parameter ist optional, hier kann der Text angegeben werden, in den die Endezeit eingesetzt wird. Standardwert für den Text ist "Ausgesetzt bis %X".
Wenn du die Endezeit in ein anderes Item schreiben möchtest, musst du beim entsprechenden Zustand etwas wie
Code:
"as_set_<wasauchimmer> = eval:insert_suspend_time(my.suspend.item)
Grüße
offline
Kommentar