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