vor einiger Zeit hatten wir hier an dem DOIF für eine Kalenderwoche gebastelt.
Das hatte bisher auch gut funktioniert, nun aber zeigt es mir die Kalnederwoche 00 an, wie kann ich das jetzt ändern
Hier das list:
Internals:
CFGFN ./FHEM/System.cfg
DEF ([00:00])
MODEL FHEM
NAME di_Kalenderwoche
NR 4293
NTFY_ORDER 50-di_Kalenderwoche
STATE 00
TYPE DOIF
READINGS:
2019-01-02 00:00:00 cmd 1
2019-01-02 00:00:00 cmd_event timer_1
2019-01-02 00:00:00 cmd_nr 1
2018-03-09 14:46:43 mode enabled
2019-01-02 00:00:00 state 00
2019-01-02 00:00:00 timer_01_c01 03.01.2019 00:00:00
Regex:
attr:
cmdState:
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday)
days:
devices:
do:
0:
0
1:
helper:
event timer_1
globalinit 1
last_timer 1
sleeptimer -1
timerdev
timerevent timer_1
timereventsState
triggerDev
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: timer_1
state: 00
timerevents:
timer_1
triggerEvents:
timer_1
internals:
interval:
intervalfunc:
itimer:
localtime:
0 1546470000
perlblock:
readings:
realtime:
0 00:00:00
time:
0 00:00:00
timeCond:
0 0
timer:
0 0
timers:
0 0
triggertime:
1546470000:
localtime 1546470000
hash:
uiState:
uiTable:
Attributes:
do always
room HWR
state {(strftime ('%W', localtime))}
Hi,
schau mal hier -> https://forum.fhem.de/index.php?topic=37427.0
Gruß Otto
Ich habe dort einiges gefunden unter anderem diese Aussage:
ZitatErstens wird die erste Kalenderwoche als nullte Woche eingesetzt, und zweitens beginnt danach die Kalenderwoche schon Sonntags.
Aber etwas einfaches mit DOIF habe ich nicht gefunden, alle anderen Dinge sind aufwendiger ich fand mein DOIF von Damian eigentlich sehr komfortabel ;)
Dann werde ich mal schauen ob ich einen passende Perlcode finde den ich in meinem DOIF bereit stelle.
Habe schon einiges probiert, aber nichts hat geklappt :-\
Vielleicht sieht es nächste Woche schon anders aus... :D
siehe: https://perlmaven.com/simple-timestamp-generation-using-posix-strftime
Zitat%W Week number of the year as a decimal number. 44
(Monday as the first day of the week)
All days in a new year preceding the first Monday
are considered to be in week 0.
Dieses Jahr haben wir Pech gehabt, danach ist Week number das ganze Jahr über um eins zu klein.
Der passende Perlcode steht doch zu Hauf in dem Thread? z.B. https://forum.fhem.de/index.php/topic,37427.msg468855.html#msg468855
Oder lese ich da zu flüchtig? Und dein DOIF kannst Du doch lassen wie es ist, Du musst doch nur den Code ändern
Gruß Otto
Du kannst dein DOIF wie folgt anpassen und schauen, ob es bei dir funktioniert:
DOIF ([00:00])
attr state {(localtime->week)}
attr do always
oder
DOIF init {[00:00];set_State(::localtime->week)}
vielen Dank Damian,
DOIF ([00:00])
attr state {(localtime->week)}
attr do always
ich habe diese Variante genommen, wobei ich nur den state ausgetauscht habe der Rest war ja OK