Hallo zusammen
Schönen 3. Advent :)
Komme nicht ganz weiter, kann mir jemand behilflich sein?
Ich hätte gerne, wenn er schaltet "on-till 22:30" als Reading.
Structure gerät:
Internals:
ATTR room
CHANGEDCNT 27
DEF room LG_Garten_HM_Licht_Terrasse LG_Garten_HM_Licht_Brunnen LG_Garten_HM_Licht_Garten
FUUID 5de163fe-f33f-cd85-8b45-2fb7ec99f1f88c0c
NAME LG_Garten_Christmas_Komplett
NR 106
NTFY_ORDER 50-LG_Garten_Christmas_Komplett
STATE off
TYPE structure
READINGS:
2019-12-15 12:36:33 LastDevice LG_Garten_HM_Licht_Brunnen
2019-12-15 12:36:33 LastDevice_Abs LG_Garten_HM_Licht_Brunnen
2019-12-15 12:36:33 state off
Attributes:
DbLogExclude .*
room 14_Lounge
Schalte das gnaze über einen "Timer"
Internals:
COMMAND set LG_Garten_Christmas_Komplett on-till 22:30
DEF +*{sunset_rel(-900,"17:00","17:30")} set LG_Garten_Christmas_Komplett on-till 22:30
FUUID 5de27feb-f33f-cd85-0c17-cdd77c7a6c899541
NAME Timer_Christmas_Outdoor
NR 119
NTM 17:00:00
PERIODIC yes
RELATIVE yes
REP -1
STATE Next: 17:00:00
TIMESPEC {sunset_rel(-900,"17:00","17:30")}
TRIGGERTIME 1576425600.5776
TRIGGERTIME_FMT 2019-12-15 17:00:00
TYPE at
READINGS:
2019-12-15 11:59:49 state Next: 17:00:00
Attributes:
DbLogExclude .*
group Timer
room 11_Christmas,30_Logik
Ist as überhaupt machbar?
LG
SirMarco
Hi,
da sich bisher keiner gefunden hat...:
Vermutlich geht das nicht so einfach. Du kannst zwar einen separaten Event-Handler (z.B. notify) bauen, der reagiert, wenn ein "set" auf die structure ausgeführt wird und dann das, was gesetzt wird, als Reading bei der structure setzt (setreading), aber das ist m.E. ein übler hack.
structure verteilt einfach die erhaltenen Befehle an die einzelnen Devices weiter und konsolidiert dann wieder den state. Würden also alle Devices der structure das "on-till" im "state" haben, wäre der "state" der structure auch entsprechend (und darüber auch das Internal STATE mangels anderer Anweisungen z.B. in stateFormat).
Es ist aber schon nicht so einfach, ein "on-till" in jedem Device in den state zu bekommen (bzw. teilweise unmöglich...), je nachdem kann man nur indirekt feststellen, ob für das Device ein Timer läuft (und wenn ja: wo...).
STATE ist kein reading sondern ein internal. state wäre ein reading. es ist aber eher ungeschickt vorhanden readings zu überschreiben.
wenn die einzelnen devices die SetExtensions nutzen siehst du die zeit im timedOn internal. falls es hm devices sind kannst du wie oben vorgeschlagen auf das set... reagieren und die die zeit merken. bei den code schnipseln gibt es ein beispiel das dies für on-for-timer macht.
aber da du schon einen timer device hast: warum merkst du dir nicht einfach dort die zeit mit einem setreading?
du könntest auch WeekdayTimer statt dem at verwenden. da siehst du dir schaltzeiten der ganzen woche in den internals und die nächste schaltzeit auch in einem reading.
es gibt viele möglichkeiten. da du nicht schreibst was du erreichen willst und wie du den gemerkten wert weiterverarbeiten willst ist es eine ziemliche raterei.