Zitat von Sisamiwe
Beitrag anzeigen
Ja, es ist möglich, ein einem eval die Zeitdifferenz in Sekunden zwischen einem Datetime in der Zukunft und dem Datetime Jetzt zu errechnen, und zwar so:
Code:
int((datetime.datetime.strptime(sh.heizung.abwesenheit.enddatetime_autotimer(), '%Y-%m-%dT%H:%M:%S') - datetime.datetime.now()).total_seconds())
Vielleicht braucht es mal einer.
Ach ja, was auch funktioniert und so nicht explizit in der Doku steht, ist dass man dem autotimer nicht nur über ein Hilfsitem die Dauer zuweisen kann, sondern auch den Wert, der nach Ablauf des Autotimers dem Item zugewiesen werden soll, per Hilfsitem festlegen.
Das sieht dann bspw so aus:
Code:
heizung:
abwesenheit:
type: num
autotimer: sh.heizung.abwesenheit.laufzeit_autotimer() = sh.heizung.abwesenheit.betriebsart_anwesenheit()
laufzeit_autotimer:
name: Dauer bis zur Deaktivierung in Sekunden
type: num
eval: int((datetime.datetime.strptime(sh.heizung.abwesenheit.enddatetime_autotimer(), '%Y-%m-%dT%H:%M:%S') - datetime.datetime.now()).total_seconds())
eval_trigger: heizung.abwesenheit.enddatetime_autotimer
enddatetime_autotimer:
name: Datetime für Ende des Standby
type: str
visu_acl: rw
cache: yes
on_update:
- heizung.abwesenheit = sh.heizung.abwesenheit.betriebsart_abwesenheit()
betriebsart_abwesenheit:
type: num
cache: yes
initial_value: 1
betriebsart_anwesenheit:
name: x
remark: ist eine Kopie der Betriebsart und wird per on_change mit geändert
type: num
cache: yes
initial_value: 0
Michael


Kommentar