Twilight - Maintainership (orphan 2020)

Begonnen von Beta-User, 05 September 2020, 10:06:33

Vorheriges Thema - Nächstes Thema

swsmily

Ok, hab das Attr gelöscht und im Def mein Wetter-Device eingetragen.
Worauf sollte ich genau achten?
Das Reading Cloudcover wurde jedenfalls direkt neu gesetzt. Momentan aber auf 0 (wie im Wetter-Device auch)

Wie soll sich das erweiterte Forcasting auswirken im Gegensatz zum Attribut useExtWeather?

Beta-User

Na ja, warte mal auf morgen früh, vielleicht wird es dann etwas klarer, vor allem, wenn das Wetter über den Tag nicht völlig unverändert, sondern etwas wechselhaft vorhergesagt wird ;) ...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

swsmily

An sich mag ich ja Überraschungen  ;D
aber in der IT-Landschaft sind die eher etwas merkwürdig. Daher wäre es gut zu wissen, was passieren könnte, worauf man achten soll. Auch wenn manche Dinge machmal sehr überraschend geschehen  ;D

Spaß beiseite, da du schreibst "wenn das Wetter über den Tag nicht völlig unverändert, sondern etwas wechselhaft vorhergesagt wird" so wie ich - ich sag mal "das alte Twilight" -gesehen habe, hat es ja eine Stunde vor dem "Weather"-Ereignis nochmal geschaut, wie das Wetter denn ist und demenstprechend die Zeit (damit auch State und Light) angepasst.

Daher wirklich mein Interesse, was genau mit erweiterten Forecasting gemeint ist.
Beobachten, was passiert und tatsächlich verstehen warum was passiert sind eben doch oft zeierlei Dinge  ;)

Beta-User

Na ja, eigentlich hatte ich geglaubt, das schon hier auch mal grob umrissen zu haben, und das, was zusätzlich bzw. anders ist, ist zum einen (mengenmäßig) nicht "soooo" viel und sollte auch halbwegs intuitiv zu verstehen sein. (Ggf. wird es etwas transparenter, wenn man eine Zeitlang mal die "Reading"-Variante und die "extended version" parallel laufen hat und vergleicht ;) ).
Es ging bei dem Hinweis aber eben auch darum rauszufinden, OB das verständlich ist, daher spare ich mir im Moment erst mal noch weitere Erläuterungen ;) .
Denn vermutlich gibt es da noch Verbesserungspotential, die eine oder andere Idee hätte ich dazu nämlich auch selbst ;D . Macht aber nur Sinn, wenn die "Richtung" aus Usersicht die richtige ist ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

swsmily

Ich hab nun mal paar Tage zwei Twilight-Devices gehabt. Eins mit attr useExtWeather Wetter:cloudCover und eins wo ich Wetter im DEF mit angegeben hatte.
Bei dem wo das Attribut genutzt wird, wird die sr_weather und ss_weather entsprechend angepasst.
Bei dem anderen wo es im DEF steht jedoch nicht. Da ist selbst heute, wo es stark bewölkt ist und es regnet indoor und weather gleich.
Oder muss ich im DEF auch das Reading mit angeben? Wobei in beiden Twilight-Devices das Reading cloudCover auf 75 gesetzt wurde. Es scheint also das Wetter auszulesen, aber bei der Zeit-Berechnung nicht einfließen zu lassen, wenn es nur im DEF angegeben wurde.

Beta-User

Hmm, eigentlich sollte es keinen Unterschied machen, ob das externe Wetter via Attribut oder in der DEF angegeben ist. Meines läuft via DEF.

Was ist das für ein Typ Wetter-Device? Das mit der "kurzen" Angabe sollte mit Weather und Proplanta klappen, und mein eigenes Device (mit Weather-Type-extWeather) sieht auch plausibel aus.

Kurz dazu, was eigentlich passieren sollte:
Du müßtest zwei neue Readings haben, nämlich cloudCover_sr und cloudCover_ss. Da sollten die forecast-Werte drinstehen, die zum zugehörigen r._indoor-Zeitpunkt vorhergesagt sind.
Sind die nicht vorhanden, gab es ein Problem, weil - entweder die dispatch-Routine ein Problem mit "nicht-default"-Weather-Devices hat oder der Proplanta-Teil nicht funktioniert (habe ich kein passendes Device).

Was ggf. noch verbesserungsbedürftig ist: im Moment wird geschaut, ob das "Hauptreading" bei Aktualisierung auch signifikant geändert ist, der Rest wird ignoriert. Wäre zu diskutieren, ob das so bleiben soll, u.A. bin ich auch deswegen an Testern interessiert... Weiter wäre selbstredend interessant, ob jemand Probleme mit den vorhandenen Dispatch-Funktionen hat wie oben angemerkt.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

swsmily

Die beiden genannten Readings sind vorhanden, stehen aber auf 0.
cloudCover auf 75
cloudCover_sr auf 0
cloudCover_ss auf 0

alle drei Readings um 2:06 Uhr aktualisiert.

Als Wettermodul nutze ich Weather mit API=OpenWeatherMapAPI

Die beiden Readings sind allerdings bei dem Device, so ich das Wetter als Attribut angegeben habe nicht vorhanden.

BroPi

Ich habe auch ein extra Twilight-Test-Device angelegt und im def mein Proplanta-Device angegeben. Bei mir scheint es mit den

cloudCover     100  2020-10-31 10:29:36
cloudCover_sr 87.5 2020-10-31 00:00:01
cloudCover_ss 100 2020-10-31 10:29:36

zu funktionieren. Bisher scheint es nur Aktualisierungen um 0:00 Uhr und ca. 10:29 Uhr zu geben.

Beta-User

Zitat von: BroPi am 31 Oktober 2020, 14:57:37
Ich habe auch ein extra Twilight-Test-Device angelegt und im def mein Proplanta-Device angegeben. Bei mir scheint es mit den

cloudCover     100  2020-10-31 10:29:36
cloudCover_sr 87.5 2020-10-31 00:00:01
cloudCover_ss 100 2020-10-31 10:29:36

zu funktionieren. Bisher scheint es nur Aktualisierungen um 0:00 Uhr und ca. 10:29 Uhr zu geben.

Danke für die Rückmeldung. Könnte  ok sein, vorausgesetzt, dass sich bis dato nichts wesentliches an dem Reading geändert hat, das als "cloudCover" abgefragt wird...

Zitat von: swsmily am 30 Oktober 2020, 20:24:35
Die beiden genannten Readings sind vorhanden, stehen aber auf 0.
cloudCover auf 75
cloudCover_sr auf 0
cloudCover_ss auf 0

alle drei Readings um 2:06 Uhr aktualisiert.

Als Wettermodul nutze ich Weather mit API=OpenWeatherMapAPI

Die beiden Readings sind allerdings bei dem Device, so ich das Wetter als Attribut angegeben habe nicht vorhanden.
Hmm, dann scheint es mit Weather+OpenWeather noch ein Problem zu geben. Wie sehen da die Readings aus? (Habe ich ein list übersehen?)
Vielleicht nochmal zum Verständnis des ganzen:
Twilight holt sich - wenn alles klappt - (zu den "indoor"-Uhrzeiten) passende Readings aus dem jeweiligen Wetter-Device und "labelt" die um. Die "Kunst" ist also eigentlich nur, eine Art passender Verweisungstabelle zu haben; das ist das, was die "dispatch"-Funktionen am Ende des Code-Teils des Moduls leisten sollten.

Sind die jeweiligen Uhrzeiten bereits um, wird nichts mehr geändert. Deswegen ist cloudCover_sr nicht mehr um 10:29 Uhr geändert worden, da war wohl sr_indoor schon vorbei.

Hoffe, das ist jetzt etwas klarer und macht auch aus eurer Sicht so Sinn...?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

swsmily

Unterdessen ist bei cloudCover_sr sogar ein anderer Wert als 0.

Hier mal List vom Weather-Device und den beiden Twilights.

Wetter:
Internals:
   API        OpenWeatherMapAPI
   APIKEY     9ba7d503cfe44a8833190dd6b6c7796e
   APIOPTIONS cachemaxage:600
   DEF        API=OpenWeatherMapAPI,cachemaxage:600 apikey=XXXXXXXXXXX location=XXXXXXXXXXX,XXXXXXXXXXX interval=3600 language=de
   FUUID      5f5a7d27-f33f-3401-3840-a2bc93ddb75ea5bd
   FVERSION   59_Weather.pm:v2.1.4-s22982/2020-10-17
   INTERVAL   3600
   LANG       de
   MODEL      OpenWeatherMapAPI
   NAME       Wetter
   NOTIFYDEV  global
   NR         530
   NTFY_ORDER 50-Wetter
   STATE      T: 13 °C F: 82 % W: 17 km/h P: 1019 hPa
   TYPE       Weather
   VERSION    v2.1.4
   READINGS:
     2020-10-31 20:06:36   apiMaintainer   Leon Gaultier (<a href=https://forum.fhem.de/index.php?action=profile;u=13684>CoolTux</a>)
     2020-10-31 20:06:36   apiVersion      v1.0.2
     2020-10-31 20:06:36   city            Leipzig
     2020-10-31 20:06:36   cloudCover      75
     2020-10-31 20:06:36   code            26
     2020-10-31 20:06:36   condition       Überwiegend bewölkt
     2020-10-31 20:06:36   country         DE
     2020-10-31 20:06:36   current_date_time Sat, 31 Oct 2020 20:06
     2020-10-31 20:06:36   hfc1_cloudCover 68
     2020-10-31 20:06:36   hfc1_code       26
     2020-10-31 20:06:36   hfc1_condition  Überwiegend bewölkt
     2020-10-31 20:06:36   hfc1_day_of_week Sat, 21:00
     2020-10-31 20:06:36   hfc1_high_c     13
     2020-10-31 20:06:36   hfc1_humidity   82
     2020-10-31 20:06:36   hfc1_icon       cloudy
     2020-10-31 20:06:36   hfc1_iconAPI    04n
     2020-10-31 20:06:36   hfc1_low_c      12
     2020-10-31 20:06:36   hfc1_pressure   1019
     2020-10-31 20:06:36   hfc1_pubDate    Sat, 31 Oct 2020 21:00
     2020-10-31 12:06:33   hfc1_rain3h     0.12
     2020-10-31 20:06:36   hfc1_tempHigh   13
     2020-10-31 20:06:36   hfc1_tempLow    12
     2020-10-31 20:06:36   hfc1_temp_c     13
     2020-10-31 20:06:36   hfc1_temperature 13
     2020-10-31 20:06:36   hfc1_wind       17
     2020-10-31 20:06:36   hfc1_wind_speed 17
     2020-10-31 20:06:36   hfc2_cloudCover 64
     2020-10-31 20:06:36   hfc2_code       26
     2020-10-31 20:06:36   hfc2_condition  Überwiegend bewölkt
     2020-10-31 20:06:36   hfc2_day_of_week Sun, 00:00
     2020-10-31 20:06:36   hfc2_high_c     12
     2020-10-31 20:06:36   hfc2_humidity   82
     2020-10-31 20:06:36   hfc2_icon       cloudy
     2020-10-31 20:06:36   hfc2_iconAPI    04n
     2020-10-31 20:06:36   hfc2_low_c      11
     2020-10-31 20:06:36   hfc2_pressure   1018
     2020-10-31 20:06:36   hfc2_pubDate    Sun,  1 Nov 2020 00:00
     2020-10-31 10:06:32   hfc2_rain3h     0.12
     2020-10-31 20:06:36   hfc2_tempHigh   12
     2020-10-31 20:06:36   hfc2_tempLow    11
     2020-10-31 20:06:36   hfc2_temp_c     12
     2020-10-31 20:06:36   hfc2_temperature 12
     2020-10-31 20:06:36   hfc2_wind       17
     2020-10-31 20:06:36   hfc2_wind_speed 17
     2020-10-31 20:06:36   hfc3_cloudCover 83
     2020-10-31 20:06:36   hfc3_code       26
     2020-10-31 20:06:36   hfc3_condition  Überwiegend bewölkt
     2020-10-31 20:06:36   hfc3_day_of_week Sun, 03:00
     2020-10-31 20:06:36   hfc3_high_c     11
     2020-10-31 20:06:36   hfc3_humidity   82
     2020-10-31 20:06:36   hfc3_icon       cloudy
     2020-10-31 20:06:36   hfc3_iconAPI    04n
     2020-10-31 20:06:36   hfc3_low_c      11
     2020-10-31 20:06:36   hfc3_pressure   1017
     2020-10-31 20:06:36   hfc3_pubDate    Sun,  1 Nov 2020 03:00
     2020-10-30 22:06:28   hfc3_rain3h     0.24
     2020-10-31 20:06:36   hfc3_tempHigh   11
     2020-10-31 20:06:36   hfc3_tempLow    11
     2020-10-31 20:06:36   hfc3_temp_c     11
     2020-10-31 20:06:36   hfc3_temperature 11
     2020-10-31 20:06:36   hfc3_wind       16
     2020-10-31 20:06:36   hfc3_wind_speed 16
     2020-10-31 20:06:36   high_c          13
     2020-10-31 20:06:36   humidity        82
     2020-10-31 20:06:36   icon            cloudy
     2020-10-31 20:06:36   iconAPI         04n
     2020-10-31 20:06:36   lastError       
     2020-10-31 20:06:36   lat             XXXXXXXXX
     2020-10-31 20:06:36   long            XXXXXXXXX
     2020-10-31 20:06:36   low_c           12
     2020-10-31 20:06:36   pressure        1019
     2020-10-31 20:06:36   pubDate         Sat, 31 Oct 2020 20:06
     2020-10-31 20:06:36   state           T: 13 °C F: 82 % W: 17 km/h P: 1019 hPa
     2020-10-31 20:06:36   status          ok
     2020-10-31 20:06:36   sunriseTime     Sat, 31 Oct 2020 07:02
     2020-10-31 20:06:36   sunsetTime      Sat, 31 Oct 2020 16:45
     2020-10-31 20:06:36   tempFeelsLike_c 10
     2020-10-31 20:06:36   tempHigh        13
     2020-10-31 20:06:36   tempLow         12
     2020-10-31 20:06:36   temp_c          13
     2020-10-31 20:06:36   temperature     13
     2020-10-31 20:06:36   validity        up-to-date
     2020-10-31 20:06:36   visibility      10000
     2020-10-31 20:06:36   wind            17
     2020-10-31 20:06:36   wind_condition  Wind: SSW 17 km/h
     2020-10-31 20:06:36   wind_direction  200
     2020-10-31 20:06:36   wind_speed      17
   fhem:
     LOCATION   XXXXXXXX,XXXXXXX
     allowCache 1
     interfaces temperature;humidity;wind
Attributes:
   forecastLimit 3
   room       sonstiges


List von Twilight ohne Attribut und Wetter im DEF:
Internals:
   DEF        2 Wetter
   FUUID      5f95318d-f33f-3401-49ae-8e21f377f076219d
   FVERSION   59_Twilight.pm:0.230180/2020-10-24
   INDOOR_HORIZON 2
   NAME       Daemmerung
   NOTIFYDEV  Wetter
   NR         537
   NTFY_ORDER 50-Daemmerung
   STATE      12
   SUNPOS_OFFSET 300
   TYPE       Twilight
   WEATHER_CORRECTION 6
   WEATHER_HORIZON 8
   READINGS:
     2020-10-31 18:37:13   aktEvent        ss_astro
     2020-10-31 21:06:34   azimuth         301.66
     2020-10-31 10:06:32   cloudCover      75
     2020-10-31 08:06:31   cloudCover_sr   90
     2020-10-31 10:06:32   cloudCover_ss   0
     2020-10-31 21:06:34   compasspoint    west-northwest
     2020-10-31 21:06:34   elevation       -40.9
     2020-10-31 18:37:13   horizon         -18
     2020-10-31 18:37:13   light           0
     2020-10-31 18:37:13   nextEvent       sr_astro
     2020-10-31 18:37:13   nextEventTime   05:10:31
     2020-10-31 00:00:01   sr              07:09:24
     2020-10-31 00:00:01   sr_astro        05:10:31
     2020-10-31 00:00:01   sr_civil        06:28:31
     2020-10-31 00:00:01   sr_indoor       07:23:33
     2020-10-31 00:00:01   sr_naut         05:49:09
     2020-10-31 08:06:31   sr_weather      08:18:00
     2020-10-31 00:00:01   ss              16:38:29
     2020-10-31 00:00:01   ss_astro        18:37:13
     2020-10-31 00:00:01   ss_civil        17:19:19
     2020-10-31 00:00:01   ss_indoor       16:24:20
     2020-10-31 00:00:01   ss_naut         17:58:38
     2020-10-31 10:06:32   ss_weather      16:24:20
     2020-10-31 18:37:13   state           12
     2020-10-31 21:06:34   twilight        0
     2020-10-31 21:06:34   twilight_weather 0
   TIMER:
     Daemmerung_Midnight:
       HASH       Daemmerung
       MODIFIER   Midnight
       NAME       Daemmerung_Midnight
     Daemmerung_sr:
       HASH       Daemmerung
       MODIFIER   sr
       NAME       Daemmerung_sr
     Daemmerung_sr_astro:
       HASH       Daemmerung
       MODIFIER   sr_astro
       NAME       Daemmerung_sr_astro
     Daemmerung_sr_civil:
       HASH       Daemmerung
       MODIFIER   sr_civil
       NAME       Daemmerung_sr_civil
     Daemmerung_sr_indoor:
       HASH       Daemmerung
       MODIFIER   sr_indoor
       NAME       Daemmerung_sr_indoor
     Daemmerung_sr_naut:
       HASH       Daemmerung
       MODIFIER   sr_naut
       NAME       Daemmerung_sr_naut
     Daemmerung_sr_weather:
       HASH       Daemmerung
       MODIFIER   sr_weather
       NAME       Daemmerung_sr_weather
     Daemmerung_ss:
       HASH       Daemmerung
       MODIFIER   ss
       NAME       Daemmerung_ss
     Daemmerung_ss_astro:
       HASH       Daemmerung
       MODIFIER   ss_astro
       NAME       Daemmerung_ss_astro
     Daemmerung_ss_civil:
       HASH       Daemmerung
       MODIFIER   ss_civil
       NAME       Daemmerung_ss_civil
     Daemmerung_ss_indoor:
       HASH       Daemmerung
       MODIFIER   ss_indoor
       NAME       Daemmerung_ss_indoor
     Daemmerung_ss_naut:
       HASH       Daemmerung
       MODIFIER   ss_naut
       NAME       Daemmerung_ss_naut
     Daemmerung_ss_weather:
       HASH       Daemmerung
       MODIFIER   ss_weather
       NAME       Daemmerung_ss_weather
     Daemmerung_sunpos:
       HASH       Daemmerung
       MODIFIER   sunpos
       NAME       Daemmerung_sunpos
   TW:
     sr:
       DEG        0
       LIGHT      4
       NAME       sr
       NAMENEXT   sr_indoor
       STATE      4
       SWIP       0
       TIME       1604124564.03
     sr_astro:
       DEG        -18
       LIGHT      1
       NAME       sr_astro
       NAMENEXT   sr_naut
       STATE      1
       SWIP       0
       TIME       1604117431
     sr_civil:
       DEG        -6
       LIGHT      3
       NAME       sr_civil
       NAMENEXT   sr
       STATE      3
       SWIP       0
       TIME       1604122111.02
     sr_indoor:
       DEG        2
       LIGHT      5
       NAME       sr_indoor
       NAMENEXT   sr_weather
       STATE      5
       SWIP       0
       TIME       1604125413.04
     sr_naut:
       DEG        -12
       LIGHT      2
       NAME       sr_naut
       NAMENEXT   sr_civil
       STATE      2
       SWIP       0
       TIME       1604119749.01
     sr_weather:
       DEG        9.2
       LIGHT      6
       NAME       sr_weather
       NAMENEXT   ss_weather
       STATE      6
       SWIP       0
       TIME       1604128680.07
     ss:
       DEG        0
       LIGHT      3
       NAME       ss
       NAMENEXT   ss_civil
       STATE      9
       SWIP       0
       TIME       1604158709.97
     ss_astro:
       DEG        -18
       LIGHT      0
       NAME       ss_astro
       NAMENEXT   sr_astro
       STATE      12
       SWIP       0
       TIME       1604165833
     ss_civil:
       DEG        -6
       LIGHT      2
       NAME       ss_civil
       NAMENEXT   ss_naut
       STATE      10
       SWIP       0
       TIME       1604161159.98
     ss_indoor:
       DEG        2
       LIGHT      4
       NAME       ss_indoor
       NAMENEXT   ss
       STATE      8
       SWIP       0
       TIME       1604157860.96
     ss_naut:
       DEG        -12
       LIGHT      1
       NAME       ss_naut
       NAMENEXT   ss_astro
       STATE      11
       SWIP       0
       TIME       1604163518.99
     ss_weather:
       DEG        9.2
       LIGHT      5
       NAME       ss_weather
       NAMENEXT   ss_indoor
       STATE      7
       SWIP       0
       TIME       1604157860.93
   helper:
     extWeather:
       Device     Wetter
       regexp     Wetter:cloudCover:.*
       dispatch:
         cloudCover cloudCover
Attributes:
   comment    attr useExtWeather Wetter:cloudCover
   group      Sensoren
   room       sonstiges
   sortby     1


Und hier mit Attribut und ohne Wetter im DEF:
nternals:
   DEF        2
   FUUID      5f97e141-f33f-3401-ad61-36906782f63bb7ca
   FVERSION   59_Twilight.pm:0.230180/2020-10-24
   INDOOR_HORIZON 2
   NAME       Daemmerung2
   NOTIFYDEV  Wetter
   NR         538
   NTFY_ORDER 50-Daemmerung2
   STATE      12
   SUNPOS_OFFSET 300
   TYPE       Twilight
   WEATHER_CORRECTION 6
   WEATHER_HORIZON 8
   READINGS:
     2020-10-31 18:37:13   aktEvent        ss_astro
     2020-10-31 21:06:34   azimuth         301.66
     2020-10-31 10:06:32   cloudCover      75
     2020-10-31 21:06:34   compasspoint    west-northwest
     2020-10-31 21:06:34   elevation       -40.9
     2020-10-31 18:37:13   horizon         -18
     2020-10-31 18:37:13   light           0
     2020-10-31 18:37:13   nextEvent       sr_astro
     2020-10-31 18:37:13   nextEventTime   05:10:31
     2020-10-31 00:00:01   sr              07:09:24
     2020-10-31 00:00:01   sr_astro        05:10:31
     2020-10-31 00:00:01   sr_civil        06:28:31
     2020-10-31 00:00:01   sr_indoor       07:23:33
     2020-10-31 00:00:01   sr_naut         05:49:09
     2020-10-31 08:06:31   sr_weather      08:18:00
     2020-10-31 00:00:01   ss              16:38:29
     2020-10-31 00:00:01   ss_astro        18:37:13
     2020-10-31 00:00:01   ss_civil        17:19:19
     2020-10-31 00:00:01   ss_indoor       16:24:20
     2020-10-31 00:00:01   ss_naut         17:58:38
     2020-10-31 10:06:32   ss_weather      15:39:30
     2020-10-31 18:37:13   state           12
     2020-10-31 21:06:34   twilight        0
     2020-10-31 21:06:34   twilight_weather 0
   TIMER:
     Daemmerung2_Midnight:
       HASH       Daemmerung2
       MODIFIER   Midnight
       NAME       Daemmerung2_Midnight
     Daemmerung2_sr:
       HASH       Daemmerung2
       MODIFIER   sr
       NAME       Daemmerung2_sr
     Daemmerung2_sr_astro:
       HASH       Daemmerung2
       MODIFIER   sr_astro
       NAME       Daemmerung2_sr_astro
     Daemmerung2_sr_civil:
       HASH       Daemmerung2
       MODIFIER   sr_civil
       NAME       Daemmerung2_sr_civil
     Daemmerung2_sr_indoor:
       HASH       Daemmerung2
       MODIFIER   sr_indoor
       NAME       Daemmerung2_sr_indoor
     Daemmerung2_sr_naut:
       HASH       Daemmerung2
       MODIFIER   sr_naut
       NAME       Daemmerung2_sr_naut
     Daemmerung2_sr_weather:
       HASH       Daemmerung2
       MODIFIER   sr_weather
       NAME       Daemmerung2_sr_weather
     Daemmerung2_ss:
       HASH       Daemmerung2
       MODIFIER   ss
       NAME       Daemmerung2_ss
     Daemmerung2_ss_astro:
       HASH       Daemmerung2
       MODIFIER   ss_astro
       NAME       Daemmerung2_ss_astro
     Daemmerung2_ss_civil:
       HASH       Daemmerung2
       MODIFIER   ss_civil
       NAME       Daemmerung2_ss_civil
     Daemmerung2_ss_indoor:
       HASH       Daemmerung2
       MODIFIER   ss_indoor
       NAME       Daemmerung2_ss_indoor
     Daemmerung2_ss_naut:
       HASH       Daemmerung2
       MODIFIER   ss_naut
       NAME       Daemmerung2_ss_naut
     Daemmerung2_ss_weather:
       HASH       Daemmerung2
       MODIFIER   ss_weather
       NAME       Daemmerung2_ss_weather
     Daemmerung2_sunpos:
       HASH       Daemmerung2
       MODIFIER   sunpos
       NAME       Daemmerung2_sunpos
   TW:
     sr:
       DEG        0
       LIGHT      4
       NAME       sr
       NAMENEXT   sr_indoor
       STATE      4
       SWIP       0
       TIME       1604124564.03
     sr_astro:
       DEG        -18
       LIGHT      1
       NAME       sr_astro
       NAMENEXT   sr_naut
       STATE      1
       SWIP       0
       TIME       1604117431
     sr_civil:
       DEG        -6
       LIGHT      3
       NAME       sr_civil
       NAMENEXT   sr
       STATE      3
       SWIP       0
       TIME       1604122111.02
     sr_indoor:
       DEG        2
       LIGHT      5
       NAME       sr_indoor
       NAMENEXT   sr_weather
       STATE      5
       SWIP       0
       TIME       1604125413.04
     sr_naut:
       DEG        -12
       LIGHT      2
       NAME       sr_naut
       NAMENEXT   sr_civil
       STATE      2
       SWIP       0
       TIME       1604119749.01
     sr_weather:
       DEG        9.2
       LIGHT      6
       NAME       sr_weather
       NAMENEXT   ss_weather
       STATE      6
       SWIP       0
       TIME       1604128680.07
     ss:
       DEG        0
       LIGHT      3
       NAME       ss
       NAMENEXT   ss_civil
       STATE      9
       SWIP       0
       TIME       1604158709.97
     ss_astro:
       DEG        -18
       LIGHT      0
       NAME       ss_astro
       NAMENEXT   sr_astro
       STATE      12
       SWIP       0
       TIME       1604165833
     ss_civil:
       DEG        -6
       LIGHT      2
       NAME       ss_civil
       NAMENEXT   ss_naut
       STATE      10
       SWIP       0
       TIME       1604161159.98
     ss_indoor:
       DEG        2
       LIGHT      4
       NAME       ss_indoor
       NAMENEXT   ss
       STATE      8
       SWIP       0
       TIME       1604157860.96
     ss_naut:
       DEG        -12
       LIGHT      1
       NAME       ss_naut
       NAMENEXT   ss_astro
       STATE      11
       SWIP       0
       TIME       1604163518.99
     ss_weather:
       DEG        9.2
       LIGHT      5
       NAME       ss_weather
       NAMENEXT   ss_indoor
       STATE      7
       SWIP       0
       TIME       1604155170.93
   helper:
     extWeather:
       Device     Wetter
       Reading    cloudCover
       regexp     Wetter:cloudCover:.*
Attributes:
   useExtWeather Wetter:cloudCover

Beta-User

OK, das erschien logisch: Bisher war ich davon ausgegangen, dass Weather auch immer 24+h als stündlichen forecast bereithält.

Eben habe ich einen update ins svn geschoben, der hoffentlich folgendes umsetzt:
- Weather wird durchsucht, wenn es "nur" forecasts gibt für die nächsten n Stunden, ist eben n statt n+x der relevante forecast-Wert (die "0" kam als dem alten default-Wert). Das sollte dann auch passen, wenn mal irgendwann eine andere API für Weather entwickelt wird, die andere Zeithorizonte kennt (12h, 16h,...).
- Wird getriggert, wird bei den dispatch-Varianten nachberechnet, wenn die letzte Aktualisierung des cloudCover-Readings älter ist als eine knappe Stunde. Damit sollte in diesen Fällen das untertägige Vorhersage-Verhalten verbessert sein.

Viel Spaß damit!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

swsmily

Vielen Dank!

Hab es mir jetzt aus dem SVN gezogen und gerade eingespielt.
Readings sind nun alle ausgefüllt. Beim Neustart vom FHEM gabs aber im Log folgende Fehlermeldung:

PERL WARNING: Found = in conditional, should be == at ./FHEM/59_Twilight.pm line 1037, <$fh> line 8068.


Finde es echt super, dass du das Modul angenommen hast und so weiter entwickelst!

Beta-User

Danke für die Info (und die allgemeine Rückmeldung :) ), sollte jetzt auch gefixt sein.

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Beta-User

#178
So, nächste Iteration, anflanschen von eigenem Code...
Zitat von: yersinia am 18 Oktober 2020, 10:30:58
Wie schon erwähnt, ich wäre für ein userReading - entweder im Twilight Device selbst oder irgendwo anders. Als das im Twilight-Modul selbst abzudecken. Aber des sind nur meine 2Pf.
Wie ihr wohl schon gemerkt hat, geht es nicht um einen Reading-Wert, sondern sinnvollerweise braucht man bis zu drei. Leider mag AnalyzePerlCommand() es nicht so sehr, wenn man Arrays zurückgeliefert haben will, daher habe ich das mit dem "angeflanschten Code" jetzt ein klein wenig modifiziert umgesetzt, nämlich, indem man die Werte getrennt durch einen Doppelpunkt zurückgibt, damit wäre dann auch die dritte Variante aus diesem Post erreicht :) :
Zitat von: Beta-User am 19 Oktober 2020, 15:30:17Künftig will ich unterscheiden können zwischen einer "starren" "Device:Reading"-Variante (keine Berücksichtigung der Vorhersage) und einer dynamischen "Device"-Variante und ggf. vielleicht sogar die Möglichkeit anflanschen, eigene Dispatch-Routinen verwenden zu können.

Damit kann mit userReadings arbeiten, wer das mag, die, die auf Automatismen stehen, können ggf. die nutzen, wenn sie vorhanden sind oder welche (außerhalb des eigentlichen Modulcodes) entwickeln, wenn das (noch) nicht der Fall ist.
Es hakt noch ein wenig an der Absicherung externen Codes, bitte dazu also noch etwas Geduld.
Da ich vorerst nicht sicher ausschließen kann, dass es zu Problemen kommt, wenn man "unsinnigen" oder kaputten Code angibt, erst mal als Testversion anbei. Wäre nett, wenn es jemand testen mag, der ggf. andere als die bereits integrierten dispatch-routinen einsetzt. Tendenziell bin ich immer noch der Meinung, dass man dann funktionierenden Code besser in das Modul integriert, aber so kann jeder leichter testen (und ich den Code dann auch recht einfach übernehmen, es muss dann nur vom "Doppelpunkt-Format" auf Array umgestellt werden und der interne dispatch-aufruf ergänzt.
Wie das beispielhaft aussehen kann, ist in der commandref beschreiben.



Vielleicht auch mal noch eine Antwort zu dem hier:
Zitat von: yersinia am 19 Oktober 2020, 16:24:13
Ich kann nur für mich sprechen: meine Erwartung an Twilight vor dem 5.9.'20 tendierte gegen Null
...meine Kenntnisse von Twilight waren auch gegen Null, ebenso fehlte mir etwas die Idee, wie man das eigentlich einsetzen kann...
Aber zwischenzeitlich gefallen mir die erzeugten Readings und Events ziemlich gut. Werde mal bei Gelegenheit schauen, ob und wie ich das mit dem "combine"-Modulvorschlag von justme1968 für mich in der Beleuchtungsautomatisierung nutzbar machen kann (https://forum.fhem.de/index.php/topic,110165.msg1041882.html#msg1041882); scheint einfacher zu sein, mit dem Twilight-Wert zu arbeiten wie rumzuüberlegen, ob es jetzt hell ist, weil die Lampe an ist oder eben schon die Sonne scheint...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

yersinia

Immer noch schön zu sehen, wie sich das Modul weiterentwickelt und an Funktionalität als auch Komfort gewinnt. Topp! 8)

Kleiner typo in Zeile 1033 (?) oder ich verstehe die, verhältnismäßig komplexe, 0-Zuweisung nicht. ;)
    my $rAge = int(ReadingsAge("extDev","cloudCover",0)/3600);
müsste da nicht $extDev als device-referenz hin?
    my $rAge = int(ReadingsAge($extDev,"cloudCover",0)/3600);

Apropos, du könntest auch das Attribut forecast des Weather-Devices auslesen
ZitatAttribute
    forecast - every/hourly/daily/off, Anzeige von forecast Daten. Alle, nur Stundenforecast, nur Tageforecast, keine.
https://fhem.de/commandref_DE.html#Weather
Dann könntest du zwischen hourly (hfc.*) und daily (fc.*) unterscheiden. Bei every müsste man mal schauen.
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl