Modul Twilight zeigt falsche Werte

Begonnen von en-trust, 01 Dezember 2020, 22:03:26

Vorheriges Thema - Nächstes Thema

en-trust

Heute aber auch vorgestern zeigt mir twilight einen State, der nichts mit der Realität zu tun hat. Warum?

Internals:
.FhemMetaInternals 1
CFGFN ./FHEM/fhem_weather.cfg
DEF 1
FUUID 5ccbe8a2-f33f-e9d9-8e6c-253da75045bf38d4
FVERSION 59_Twilight.pm:0.230820/2020-11-03
INDOOR_HORIZON 1
NAME twilight
NR 1014
NTFY_ORDER 50-twilight
STATE 12
SUNPOS_OFFSET 300
TYPE Twilight
WEATHER_CORRECTION 0
WEATHER_HORIZON 1
.attraggr:
.attrminint:
READINGS:
2020-12-01 18:28:33 aktEvent ss_astro
2020-12-01 21:35:01 azimuth 296.04
2020-11-03 10:06:44 cloudCover -1
2020-12-01 21:35:01 compasspoint west-northwest
2019-01-11 15:04:08 condition 28
2019-01-11 15:04:08 condition_txt Mostly Cloudy
2020-12-01 21:35:01 elevation -46.53
2020-12-01 18:28:33 horizon -18
2020-12-01 18:28:33 light 0
2020-12-01 18:28:33 nextEvent sr_astro
2020-12-01 18:28:33 nextEventTime 06:15:26
2020-12-01 00:00:01 sr 08:23:43
2020-12-01 00:00:01 sr_astro 06:15:26
2020-12-01 00:00:01 sr_civil 07:37:59
2020-12-01 00:00:01 sr_indoor 08:31:50
2020-12-01 00:00:01 sr_naut 06:55:41
2020-12-01 00:00:01 sr_weather 08:31:50
2020-12-01 00:00:01 ss 16:20:18
2020-12-01 00:00:01 ss_astro 18:28:33
2020-12-01 00:00:01 ss_civil 17:06:02
2020-12-01 00:00:01 ss_indoor 16:12:11
2020-12-01 00:00:01 ss_naut 17:48:18
2020-12-01 00:00:01 ss_weather 16:12:11
2020-12-01 18:28:33 state 12
2020-12-01 21:35:01 twilight 0
2020-12-01 21:35:01 twilight_weather 0
TIMER:
twilight_Midnight:
HASH twilight
MODIFIER Midnight
NAME twilight_Midnight
twilight_sr:
HASH twilight
MODIFIER sr
NAME twilight_sr
twilight_sr_astro:
HASH twilight
MODIFIER sr_astro
NAME twilight_sr_astro
twilight_sr_civil:
HASH twilight
MODIFIER sr_civil
NAME twilight_sr_civil
twilight_sr_indoor:
HASH twilight
MODIFIER sr_indoor
NAME twilight_sr_indoor
twilight_sr_naut:
HASH twilight
MODIFIER sr_naut
NAME twilight_sr_naut
twilight_sr_weather:
HASH twilight
MODIFIER sr_weather
NAME twilight_sr_weather
twilight_ss:
HASH twilight
MODIFIER ss
NAME twilight_ss
twilight_ss_astro:
HASH twilight
MODIFIER ss_astro
NAME twilight_ss_astro
twilight_ss_civil:
HASH twilight
MODIFIER ss_civil
NAME twilight_ss_civil
twilight_ss_indoor:
HASH twilight
MODIFIER ss_indoor
NAME twilight_ss_indoor
twilight_ss_naut:
HASH twilight
MODIFIER ss_naut
NAME twilight_ss_naut
twilight_ss_weather:
HASH twilight
MODIFIER ss_weather
NAME twilight_ss_weather
twilight_sunpos:
HASH twilight
MODIFIER sunpos
NAME twilight_sunpos
TW:
sr:
DEG 0
LIGHT 4
NAME sr
NAMENEXT sr_indoor
STATE 4
SWIP 0
TIME 1606807423.03
sr_astro:
DEG -18
LIGHT 1
NAME sr_astro
NAMENEXT sr_naut
STATE 1
SWIP 0
TIME 1606799726
sr_civil:
DEG -6
LIGHT 3
NAME sr_civil
NAMENEXT sr
STATE 3
SWIP 0
TIME 1606804679.02
sr_indoor:
DEG 1
LIGHT 5
NAME sr_indoor
NAMENEXT sr_weather
STATE 5
SWIP 0
TIME 1606807910.04
sr_naut:
DEG -12
LIGHT 2
NAME sr_naut
NAMENEXT sr_civil
STATE 2
SWIP 0
TIME 1606802141.01
sr_weather:
DEG 1
LIGHT 6
NAME sr_weather
NAMENEXT ss_weather
STATE 6
SWIP 0
TIME 1606807910.05
ss:
DEG 0
LIGHT 3
NAME ss
NAMENEXT ss_civil
STATE 9
SWIP 0
TIME 1606836018.97
ss_astro:
DEG -18
LIGHT 0
NAME ss_astro
NAMENEXT sr_astro
STATE 12
SWIP 0
TIME 1606843713
ss_civil:
DEG -6
LIGHT 2
NAME ss_civil
NAMENEXT ss_naut
STATE 10
SWIP 0
TIME 1606838762.98
ss_indoor:
DEG 1
LIGHT 4
NAME ss_indoor
NAMENEXT ss
STATE 8
SWIP 0
TIME 1606835531.96
ss_naut:
DEG -12
LIGHT 1
NAME ss_naut
NAMENEXT ss_astro
STATE 11
SWIP 0
TIME 1606841298.99
ss_weather:
DEG 1
LIGHT 5
NAME ss_weather
NAMENEXT ss_indoor
STATE 7
SWIP 0
TIME 1606835531.95
helper:
.LATITUDE 51.457636
.LONGITUDE 6.821997
extWeather:
Attributes:
DbLogExclude .*
group Umwelt
room Wettervorhersage

en-trust


Beta-User

Zitat von: en-trust am 01 Dezember 2020, 22:03:26
Heute aber auch vorgestern zeigt mir twilight einen State, der nichts mit der Realität zu tun hat. Warum?
Habe jetzt einige Zeit auf die list-Infos gestarrt und kann nicht so recht nachvollziehen, wo das Problem liegen soll?
Dabei bin ich davon ausgegangen, dass mit "State" das Reading "state" gemeint ist. Und wenn eben der Astro-Sonnenuntergang durch ist, ist "12" doch korrekt, oder?
Falls du den Eindruck hast, dass da was komplett falsch ist, checke doch bitte deine long/lat-Einstellungen in global.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

en-trust

Also Lat/Long sind korrekt. Ich wollte mit folgendem Statement erreichen, dass ddie Beleichtung zwischen 5:30 und 12:00 und/oder 14:30 und 18:00 angeht wenn es dunkel genug ist (light < 6). Heute Morgen im List zeigt er bei Twilight (e_twilight_light 1).
Soweit so gut. 18:00 (gestern) waren die Lichter aus und bei Twilight stand 12, obwohl ja die Sonne schon zu der Jahreszeit untergegangen ist.

Internals:
   DEF        ([twilight:light] < 6 and ([05:30-12:00] or [14:30-18:00])) (set GZ.Fensterbeleuchtung_CUL on)
DOELSEIF ([00:05]) (set GZ.Fensterbeleuchtung_CUL off)
DOELSE (set GZ.Fensterbeleuchtung_CUL off)
   FUUID      5fc093fe-f33f-e9d9-cca4-2e9d2e10635f645c
   MODEL      FHEM
   NAME       GZ.Fensterbeleuchtung_CUL.Auto
   NOTIFYDEV  global,twilight
   NR         1243
   NTFY_ORDER 50-GZ.Fensterbeleuchtung_CUL.Auto
   STATE      cmd_1
   TYPE       DOIF
   VERSION    22913 2020-10-04 21:46:02
   .attraggr:
   .attrminint:
   READINGS:
     2020-12-04 06:18:42   Device          twilight
     2020-12-04 05:30:00   cmd             1
     2020-12-04 05:30:00   cmd_event       timer_1
     2020-12-04 05:30:00   cmd_nr          1
     2020-12-04 06:18:42   e_twilight_light 1
     2020-12-02 14:53:01   mode            enabled
     2020-12-04 05:30:00   state           cmd_1
     2020-12-03 12:00:00   timer_01_c01    04.12.2020 05:30:00
     2020-12-03 12:00:00   timer_02_c01    04.12.2020 12:00:00
     2020-12-03 18:00:00   timer_03_c01    04.12.2020 14:30:00
     2020-12-03 18:00:00   timer_04_c01    04.12.2020 18:00:00
     2020-12-04 00:05:00   timer_05_c02    05.12.2020 00:05:00
   Regex:
     accu:
     cond:
       twilight:
         0:
           light      ^twilight$:^light:
         1:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'twilight','light') < 6 and (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms))
     1          ::DOIF_time_once($hash,4,$wday)
   days:
   do:
     0:
       0          set GZ.Fensterbeleuchtung_CUL on
     1:
       0          set GZ.Fensterbeleuchtung_CUL off
     2:
       0          set GZ.Fensterbeleuchtung_CUL off
   helper:
     DEVFILTER  ^global$|^twilight$
     NOTIFYDEV  global|twilight
     event      1,light: 1,horizon: -18,aktEvent: sr_astro,nextEvent: sr_naut,nextEventTime: 06:59:05
     globalinit 1
     last_timer 5
     sleeptimer -1
     timerdev   twilight
     timerevent 1,light: 1,horizon: -18,aktEvent: sr_astro,nextEvent: sr_naut,nextEventTime: 06:59:05
     triggerDev twilight
     timerevents:
       1
       light: 1
       horizon: -18
       aktEvent: sr_astro
       nextEvent: sr_naut
       nextEventTime: 06:59:05
     timereventsState:
       state: 1
       light: 1
       horizon: -18
       aktEvent: sr_astro
       nextEvent: sr_naut
       nextEventTime: 06:59:05
     triggerEvents:
       1
       light: 1
       horizon: -18
       aktEvent: sr_astro
       nextEvent: sr_naut
       nextEventTime: 06:59:05
     triggerEventsState:
       state: 1
       light: 1
       horizon: -18
       aktEvent: sr_astro
       nextEvent: sr_naut
       nextEventTime: 06:59:05
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   intervaltimer:
   localtime:
     0          1607056200
     1          1607079600
     2          1607088600
     3          1607101200
     4          1607123100
   readings:
     all         twilight:light
   realtime:
     0          05:30:00
     1          12:00:00
     2          14:30:00
     3          18:00:00
     4          00:05:00
   time:
     0          05:30:00
     1          12:00:00
     2          14:30:00
     3          18:00:00
     4          00:05:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          1
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
   timers:
     0           0  1  2  3
     1           4
   trigger:
   triggertime:
     1607079600:
       localtime  1607079600
       hash:
     1607088600:
       localtime  1607088600
       hash:
     1607101200:
       localtime  1607101200
       hash:
     1607123100:
       localtime  1607123100
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   group      Zeitschaltuhr
   icon       light_on-for-timer
   room       Automation,IT-Schalter


Oder ist an der Definition des Devise etwas falsch oder sollte es anders gelöst werden ?
([twilight:light] < 6 and ([05:30-12:00] or [14:30-18:00])) (set GZ.Fensterbeleuchtung_CUL on)
DOELSEIF ([00:05]) (set GZ.Fensterbeleuchtung_CUL off)
DOELSE (set GZ.Fensterbeleuchtung_CUL off)

Beta-User

Zitat von: en-trust am 04 Dezember 2020, 07:06:22
Soweit so gut. 18:00 (gestern) waren die Lichter aus und bei Twilight stand 12, obwohl ja die Sonne schon zu der Jahreszeit untergegangen ist.
Das list von gestern (18:28) zeigt für "state" "12", was korrekt war, und für "light" "0", was wohl auch korrekt war. Im Moment kann ich keinen Fehler entdecken, und zu DOIF kann ich wenig sagen, in meinen ungeübten Augen sieht das ok aus.

Sicher, dass dir da nicht was anderes quergeschossen hat?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Thyraz

Wenn das Licht ausgegangen ist, scheint light ja einen Wert angenommen zu haben der gering genug ist.
Verstehe auch noch nicht so ganz welcher Wert dich nun verwundert.

State ist nicht light und hat eine ganz andere Bedeutung.
Siehe Doku zum Modul.

Dass state am Ende des Tages 12 ist, ist IMO völlig korrekt.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Frank_Huber

Zitat von: en-trust am 04 Dezember 2020, 07:06:22
Also Lat/Long sind korrekt. Ich wollte mit folgendem Statement erreichen, dass ddie Beleichtung zwischen 5:30 und 12:00 und/oder 14:30 und 18:00 angeht wenn es dunkel genug ist (light < 6). Heute Morgen im List zeigt er bei Twilight (e_twilight_light 1).
Soweit so gut. 18:00 (gestern) waren die Lichter aus und bei Twilight stand 12, obwohl ja die Sonne schon zu der Jahreszeit untergegangen ist.

Oder ist an der Definition des Devise etwas falsch oder sollte es anders gelöst werden ?
([twilight:light] < 6 and ([05:30-12:00] or [14:30-18:00])) (set GZ.Fensterbeleuchtung_CUL on)
DOELSEIF ([00:05]) (set GZ.Fensterbeleuchtung_CUL off)
DOELSE (set GZ.Fensterbeleuchtung_CUL off)


Frage,
waqs passiert deiner Meinung nach um 12:01 oder 18:01?
CMD1 = unwahr
CMD2 = unwahr
DOELSE greift.
Also um 12:01 und 18:01 geht das Licht aus.

en-trust

#7
Jetzt wo Frank geantwortet hat und ich länger auf die Definition schaue, muss es glaube ich so aussehen...


([twilight:light] < 6 and ([05:30-12:00] or [14:30-00:05])) (set GZ.Fensterbeleuchtung_CUL on)
DOELSE (set GZ.Fensterbeleuchtung_CUL off)


Hat also nichts mit dem twilight an sich zu tun. Wobei mir noch nicht klar ist, warum Twilight selbst 12 zeigt, obwohl es finster ist.

Beta-User

Zitat von: en-trust am 04 Dezember 2020, 08:48:42
Hat also nichts mit dem twilight an sich zu tun.
Wie wäre es dann, wenn du den Titel änderst und ein
Zitat[geklärt] Modul Twilight zeigt (keine) falschen Werte
draus machst?
ZitatWobei mir noch nicht klar ist, warum Twilight selbst 12 zeigt, ob es finster ist.
12 steht da, weil es genau so in der Doku (commandref) von Twilight steht, und ansonsten verstehe ich den Satz schon grammatikalisch nicht...

Und Frank wollte dir wohl sagen, dass du den Thread nach "DOIF" verschieben solltest, wenn du jemanden suchst, der die Syntax von diesem Modul erklärt. Mit meinen DAU-Kenntnissen von DOIF würde ich tippen, du solltest dir die Bedeutung von Fragezeichen vergegenwärtigen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files