FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: SirMarco am 15 Dezember 2019, 12:44:20

Titel: on-till als STATE reading
Beitrag von: SirMarco am 15 Dezember 2019, 12:44:20
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
Titel: Antw:on-till als STATE reading
Beitrag von: Beta-User am 18 Dezember 2019, 13:14:45
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...).
Titel: Antw:on-till als STATE reading
Beitrag von: justme1968 am 18 Dezember 2019, 14:17:36
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.