Hallo zusammen,
Ich möchte mein Licht entsprechend der Tagezeit steuern.
Dazu nutze ich aktuell das Modul WeekdayTimer um die Tagezeit als reading für mein skript zur Verfügung zu stellen.
Abhängig vom Sonnen auf/Untergang bestimme ich wie folgt die Tageszeit
Internals:
COMMAND
CONDITION
DEF wdt_Tageslicht de $we,!$we|{sunrise_abs_dat($date,-3600,)}|Sonnenaufgang $we,!$we|{sunrise_abs_dat($date)}|Tag $we,!$we|{sunset_abs_dat($date,-3600)}|Sonnenuntergang $we,!$we|{sunset_abs_dat($date)}|Nacht
DEVICE wdt_Tageslicht
FUUID 5e00f3fb-f33f-aa80-e916-0f9d5e4a65f638f4
GlobalDaylistSpec
LANGUAGE de
NAME wdt_Tageslicht
NR 170410
Profil 0: Sonntag 06:23:30 Sonnenaufgang, 07:23:30 Tag, 15:58:51 Sonnenuntergang, 16:58:51 Nacht
Profil 1: Montag 06:23:59 Sonnenaufgang, 07:23:59 Tag, 15:59:22 Sonnenuntergang, 16:59:22 Nacht
Profil 2: Dienstag 06:24:27 Sonnenaufgang, 07:24:27 Tag, 15:59:55 Sonnenuntergang, 16:59:55 Nacht
Profil 3: Mittwoch 06:24:51 Sonnenaufgang, 07:24:51 Tag, 16:00:31 Sonnenuntergang, 17:00:31 Nacht
Profil 4: Donnerstag 06:25:13 Sonnenaufgang, 07:25:13 Tag, 16:01:09 Sonnenuntergang, 17:01:09 Nacht
Profil 5: Freitag 06:25:33 Sonnenaufgang, 07:25:33 Tag, 16:01:50 Sonnenuntergang, 17:01:50 Nacht
Profil 6: Samstag 06:25:50 Sonnenaufgang, 07:25:50 Tag, 16:02:33 Sonnenuntergang, 17:02:33 Nacht
Profil 7: Wochenende 06:25:50 Sonnenaufgang, 07:25:50 Tag, 16:02:33 Sonnenuntergang, 17:02:33 Nacht
Profil 8: Werktags 06:25:33 Sonnenaufgang, 07:25:33 Tag, 16:01:50 Sonnenuntergang, 17:01:50 Nacht
STATE Tag
STILLDONETIME 0
TYPE WeekdayTimer
OLDREADINGS:
READINGS:
2019-12-27 07:25:33 currValue Nacht
2019-12-27 07:25:33 nextUpdate 2019-12-28 06:25:50
2019-12-27 07:25:33 nextValue Sonnenaufgang
2019-12-27 07:25:33 state Tag
SWITCHINGTIMES:
$we,!$we|{sunrise_abs_dat($date,-3600,)}|Sonnenaufgang
$we,!$we|{sunrise_abs_dat($date)}|Tag
$we,!$we|{sunset_abs_dat($date,-3600)}|Sonnenuntergang
$we,!$we|{sunset_abs_dat($date)}|Nacht
TIMER:
wdt_Tageslicht_1:
HASH wdt_Tageslicht
MODIFIER 1
NAME wdt_Tageslicht_1
wdt_Tageslicht_2:
HASH wdt_Tageslicht
MODIFIER 2
NAME wdt_Tageslicht_2
wdt_Tageslicht_3:
HASH wdt_Tageslicht
MODIFIER 3
NAME wdt_Tageslicht_3
wdt_Tageslicht_4:
HASH wdt_Tageslicht
MODIFIER 4
NAME wdt_Tageslicht_4
wdt_Tageslicht_SetTimerOfDay:
HASH wdt_Tageslicht
MODIFIER SetTimerOfDay
NAME wdt_Tageslicht_SetTimerOfDay
SETTIMERATMIDNIGHT 1
dayNumber:
!$we 8
$we 7
di 2
do 4
fr 5
mi 3
mo 1
sa 6
so 0
helper:
daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
SWITCHINGTIME:
0:
06:23:30 Sonnenaufgang
07:23:30 Tag
15:58:51 Sonnenuntergang
16:58:51 Nacht
1:
06:23:59 Sonnenaufgang
07:23:59 Tag
15:59:22 Sonnenuntergang
16:59:22 Nacht
2:
06:24:27 Sonnenaufgang
07:24:27 Tag
15:59:55 Sonnenuntergang
16:59:55 Nacht
3:
06:24:51 Sonnenaufgang
07:24:51 Tag
16:00:31 Sonnenuntergang
17:00:31 Nacht
4:
06:25:13 Sonnenaufgang
07:25:13 Tag
16:01:09 Sonnenuntergang
17:01:09 Nacht
5:
06:25:33 Sonnenaufgang
07:25:33 Tag
16:01:50 Sonnenuntergang
17:01:50 Nacht
6:
06:25:50 Sonnenaufgang
07:25:50 Tag
16:02:33 Sonnenuntergang
17:02:33 Nacht
7:
06:25:50 Sonnenaufgang
07:25:50 Tag
16:02:33 Sonnenuntergang
17:02:33 Nacht
8:
06:25:33 Sonnenaufgang
07:25:33 Tag
16:01:50 Sonnenuntergang
17:01:50 Nacht
WEDAYS:
1 1
2 1
5 Neujahr
longDays:
de:
Sonntag
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Wochenende
Werktags
en:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
weekend
weekdays
fr:
Dimanche
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
weekend
jours de la semaine
nl:
Zondag
Maandag
Dinsdag
Woensdag
Donderdag
Vrijdag
Zaterdag
weekend
werkdagen
profil:
1:
EPOCH 1577424333
PARA Sonnenaufgang
TIME {sunrise_abs_dat($date,-3600,)}
WE_Override 0
TAGE:
7
8
2:
EPOCH 1577427933
PARA Tag
TIME {sunrise_abs_dat($date)}
WE_Override 0
TAGE:
7
8
3:
EPOCH 1577458910
PARA Sonnenuntergang
TIME {sunset_abs_dat($date,-3600)}
WE_Override 0
TAGE:
7
8
4:
EPOCH 1577462510
PARA Nacht
TIME {sunset_abs_dat($date)}
WE_Override 0
TAGE:
7
8
profile_IDX:
0:
06:23:30 1
07:23:30 2
15:58:51 3
16:58:51 4
1:
06:23:59 1
07:23:59 2
15:59:22 3
16:59:22 4
2:
06:24:27 1
07:24:27 2
15:59:55 3
16:59:55 4
3:
06:24:51 1
07:24:51 2
16:00:31 3
17:00:31 4
4:
06:25:13 1
07:25:13 2
16:01:09 3
17:01:09 4
5:
06:25:33 1
07:25:33 2
16:01:50 3
17:01:50 4
6:
06:25:50 1
07:25:50 2
16:02:33 3
17:02:33 4
7:
06:25:50 1
07:25:50 2
16:02:33 3
17:02:33 4
8:
06:24:27 1
06:24:51 1
06:25:13 1
06:25:33 1
07:24:27 2
07:24:51 2
07:25:13 2
07:25:33 2
15:59:55 3
16:00:31 3
16:01:09 3
16:01:50 3
16:59:55 4
17:00:31 4
17:01:09 4
17:01:50 4
shortDays:
de:
so
mo
di
mi
do
fr
sa
$we
!$we
en:
su
mo
tu
we
th
fr
sa
$we
!$we
fr:
di
lu
ma
me
je
ve
sa
$we
!$we
nl:
zo
ma
di
wo
do
vr
za
$we
!$we
Wie man in dem list sehen kann stimmt state und currValue nicht überein. Müsste das nicht so sein?
Komisch ist das aktuell um 12:30 Uhr das currValue noch den vorletzten Status hat, das nextValue gar keinen Sinn ergibt und das state reading den eigentlich korrekten.
Mach ich was falsch oder ist das ein Bug?
Danke im Voraus!
Ob es ein bug ist, kann ich noch nicht recht sagen...
Was den WDT auf alle Fälle irritiert (und vermutlich schon immer irritiert hat), ist eine Angabe wie "$we,!$we|". Die kann man einfach weglassen, also den Schaltzeitpunt z.B. so schreiben "{sunrise_abs_dat($date,-3600,)}|Sonnenaufgang". Sonst prüft der WDT, ob der betreffende Timer heute zuschlagen soll (nein, weil nicht $we ist und das die erste Angabe war), und man sieht diesen Schaltzeitpunkt nicht mehr in den Readings (ausgeführt wird er aber mit einiger Sicherheit)...
Wäre interessant zu wissen, warum du das so gesetzt hattest, denn der WDT-Code geht recht schlicht davon aus, dass man eben entweder einen oder mehrere Tage setzt, oder $we verwendet (bzw. das Gegenteil), aber eben keine Kombination davon. Ggf. muß ich da noch was nacharbeiten, zumindest, was die Doku angeht.
Dieser Thread gehört übrigens zu "Kalendermodule" (lt. MAINTAINER.txt), bitte bei Gelegenheit verschieben.
Okay ich teste es mal ohne die we,
Danke!