FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Damian am 11 April 2019, 22:36:06

Titel: Weekday-Timer mit DOIF: neue Funktion set_Timer
Beitrag von: Damian am 11 April 2019, 22:36:06
Ich plane die Funktion set_Timer für wiederholende Timer in den Perlmodus einzubauen, sie würde wie set_Exec funktionieren, statt Sekundenangabe würde aber die komplette Timer-Syntax von DOIF funktionieren.

Bsp,

Schalte die Lampe um 10:00 Uhr:

set_Timer ("timer1","[10:00]",'fhem_set("lamp off")')

Damit könnte man sich elegant seinen eigenen Weekday-Timer mit eigener Syntax wie hier bauen: https://forum.fhem.de/index.php/topic,84969.msg848315.html#msg848315

z. B.

init {$_temps="
Raum,         Befehl,         05:00,08:00,12:00,17:00,20:00,23:00
TH_Keller_HM, desired-temp,   20,   19.5, ,     ,     ,     19.5
TH_Kueche,    desired,        21,   17,   19.5, ,     17,
TH_Bad_HM,    desired-temp,   21,   17,   ,     17,   17,
TH_DG_HM,     desired-temp,   21,   20,   21,   ,     20,
TH_WZ_HM,     desired-temp,   21,   17,   21,   ,     20,
TH_Kz_w_HM,   desired-temp,   20,   17,   21,   ,     20,"
}
...


Das Setzen der Timer mit den angegebenen Zeiten und den jeweiligen Befehl ließe sich dann universell in einer Perlfunktion (wie im Link) realisieren.

Der Aufbau kann natürlich sehr individuell gestaltet werden:
z. B.
init {$_temps="
TH_Keller_HM, desired-temp,   05:00,20, 08:00,19.5, 23:00,19.5
TH_Kueche,    desired,        05:00,21, 08:30,17, 13:00,19.5, 23:00,17,
...


oder

init {$_temps="
TH_Keller_HM, 06:00|WE,05:00|AT,20, 22:00|WE,21:00|AT,18
...


usw.

Man muss dann nur noch die entsprechende Perlfunktion zum Setzen der Timer anpassen.
Titel: Antw:Weekday-Timer mit DOIF: neue Funktion set_Timer
Beitrag von: ch.eick am 04 November 2021, 16:26:46
Hallo Damian,
das ist zwar schon sehr alt, aber jetzt würde ich sowas für die E-Auto Klimatisierung brauchen können.
Das Grundgerippe ist bereits DOIF mit uiTable.

Hast Du hieran weiter gearbeitet, oder könntest Du mir sogar ein Beispiel schicken?

Gruß
    Christian
Titel: Antw:Weekday-Timer mit DOIF: neue Funktion set_Timer
Beitrag von: Damian am 04 November 2021, 17:22:59
set_Timer wurde in der Form nicht realisiert. Es gibt die Perlfunktion set_Exec https://fhem.de/commandref_DE.html#DOIF_set_Exec, mit der kann man einen Timer  für eine Zeitspanne in Sekunden stellen. Einen Timer-Zeitpunkt kann man in uiTable über ein Reading setzen, welches als indirekte Zeit definiert wurde.

defmod di_timer_input DOIF {[[$SELF:time]];;fhem_set("Lampe on")}
attr di_timer_input uiTable {package ui_Table}\
\
"Zeitpunkt"|widget([$SELF:time],"time")

setstate di_timer_input initialized
setstate di_timer_input 2021-11-04 17:19:17 mode enabled
setstate di_timer_input 2021-11-04 17:19:17 state initialized
setstate di_timer_input 2021-11-04 17:19:25 time 03:00
setstate di_timer_input 2021-11-04 17:19:25 timer_01_c01 05.11.2021 03:00:00
Titel: Antw:Weekday-Timer mit DOIF: neue Funktion set_Timer
Beitrag von: ch.eick am 04 November 2021, 17:42:50
Zitat von: Damian am 04 November 2021, 17:22:59
set_Timer wurde in der Form nicht realisiert. Es gibt die Perlfunktion set_Exec https://fhem.de/commandref_DE.html#DOIF_set_Exec, mit der kann man einen Timer  für eine Zeitspanne in Sekunden stellen. Einen Timer-Zeitpunkt kann man in uiTable über ein Reading setzen, welches als indirekte Zeit definiert wurde.

Danke für die schnelle Rückmeldung. Ich habe da schon eine Idee in kombination mit einem Kalender.

VG
   Christian