Neues Modul YAAHM - Yet Another Auto Home Module

Begonnen von Prof. Dr. Peter Henning, 09 August 2017, 08:01:55

Vorheriges Thema - Nächstes Thema

BerndMiles

#300
Zitat von: Prof. Dr. Peter Henning am 05 November 2019, 13:03:59
@BerndMiles: Das ist ein ganz anderes Problem. Diese Timer sind FHEM-Devices und arbeiten nach jedem Neustart ordentlich, wenn die Konfiguration einmal gesichert worden ist.  Hm. Warum baue ich wohl drei fette Buttons "Start ..-Timer" auf die Benutzungsoberfläche?


LG

pah

Hallo pah,

wenn es bei mir funktionieren würde, dann würde ich doch hier nicht schreiben. Und da es bei mir halt nicht klappt, frage ich doch nach. Ich kann doch nicht nach jedem Neustart manuell auf die "fetten" Buttons auf der Oberfläche klicken.

Gruß Bernd

BerndMiles

Hallo pah,

und noch was anderes. Das Reading housephase und wahrscheinlich noch mehr vom YAAHM Device wird dann auch nicht mehr aktualisiert. So hatte ich dort heute mittags um zwölf noch nighttime drinnen stehen.

Viele Grüße Bernd

Prof. Dr. Peter Henning

Na, dann scheint an der gesamten FHEM-Konfiguration etwas nicht zu stimmen.

ZitatIch kann doch nicht nach jedem Neustart manuell
Das ist auch nicht nötig, und war auch nicht gefragt. Gefragt war vielmehr
ZitatAber ich habe jetzt keine Ahnung, wie ich den Start der Timer als Befehl ausführen kann

pah


ioT4db

Zitat von: andies am 03 November 2019, 08:44:23
Hallo pah, ich habe eine Frage. Das Datum/Wochentag innerhalb von yaahm ist falsch (siehe screenshot von heute, Sonntag), aber der Rechner selbst hat ein korrektes Datum. Kann ich das händisch einstellen oder ist das ein Bug? Ich vermute, dass das seit der Zeitumstellung falsch war.

Hallo,

habe heute ähnliches Verhalten bei mir festgestellt (siehe Screenshot).

Habe dann {YAAHM_GetDayStatus($defs{'<name des YAAHM-Devices>'})} ausgeführt. Danach wird wieder korrekt angezeigt.

Ich beobachte mal...

VG...
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

Prof. Dr. Peter Henning

Oder eben einfach ausführen "set <YAAHM-Device> initialize".

LG

pah

BerndMiles

Hallo pah,

mal ein Beispiel. Ich ändere die Zeit vom Ereignis evening auf 20:26 Uhr. Dann starte ich den Tagestimer neu und speichere auch noch die config. Dann starte ich FHEM neu. Da läuft auch alles wunderbar durch. Und dann, wenn das Ereignis evening ausgelöst wird, steht dann folgendes im Logfile:

2019.11.05 20:26:01 1: PERL WARNING: Use of uninitialized value $mval in substitution (s///) at ./FHEM/95_YAAHM.pm line 1209.
2019.11.05 20:26:01 3: eval: {YAAHM_time('HA_YAAHM','evening',1)}
2019.11.05 20:26:01 1: PERL WARNING: Use of uninitialized value $nval in substitution (s///) at ./FHEM/95_YAAHM.pm line 1210.
2019.11.05 20:26:01 3: eval: {YAAHM_time('HA_YAAHM','evening',1)}
2019.11.05 20:26:01 1: PERL WARNING: Use of uninitialized value $tval in substitution (s///) at ./FHEM/95_YAAHM.pm line 1211.
2019.11.05 20:26:01 3: eval: {YAAHM_time('HA_YAAHM','evening',1)}
2019.11.05 20:26:01 1: PERL WARNING: Use of uninitialized value $mval in numeric ge (>=) at ./FHEM/95_YAAHM.pm line 1214.
2019.11.05 20:26:01 3: eval: {YAAHM_time('HA_YAAHM','evening',1)}
2019.11.05 20:26:01 1: PERL WARNING: Use of uninitialized value $nval in numeric gt (>) at ./FHEM/95_YAAHM.pm line 1214.
2019.11.05 20:26:01 3: eval: {YAAHM_time('HA_YAAHM','evening',1)}
2019.11.05 20:26:01 1: PERL WARNING: Use of uninitialized value $xval in concatenation (.) or string at ./FHEM/95_YAAHM.pm line 1337.
2019.11.05 20:26:01 3: eval: {YAAHM_time('HA_YAAHM','evening',1)}
2019.11.05 20:26:01 1: PERL WARNING: Use of uninitialized value $xval in concatenation (.) or string at ./FHEM/95_YAAHM.pm line 1339.
2019.11.05 20:26:01 3: eval: {YAAHM_time('HA_YAAHM','evening',1)}
2019.11.05 20:26:01 1: [YAAHM_time] executing
2019.11.05 20:26:01 1: PERL WARNING: Use of uninitialized value $cmd in pattern match (m//) at fhem.pl line 1072.
2019.11.05 20:26:01 3: eval: {YAAHM_time('HA_YAAHM','evening',1)}


Dann wird natüprlich houseTimeHelper('evening') nicht ausgeführt.

Vielleicht fehlt ja bei mir auch noch irgendwas an der Konfiguration.

Viele Grüsse Bernd

Prof. Dr. Peter Henning

Ich vermute einen Konfigurationsfehler....

Was steht denn im Reading s_evening des YAAHM-Device?

LG

pah

BerndMiles

Also ich habe es jetzt noch einmal gemacht für afternoon. Ich habe afternoon auf 13.35 gesetzt und im reading s_afternoon steht das auch korrekt drin. Der Fehler kommt natürlich trotzdem. Ich gebe mal die Werte vom YAAHM-Device mit. Vielleicht hilft das ja weiter.


2019.11.06 13:35:00 1: PERL WARNING: Use of uninitialized value $mval in substitution (s///) at ./FHEM/95_YAAHM.pm line 1209.
2019.11.06 13:35:00 3: eval: {YAAHM_time('HA_YAAHM','afternoon',1)}
2019.11.06 13:35:00 1: PERL WARNING: Use of uninitialized value $nval in substitution (s///) at ./FHEM/95_YAAHM.pm line 1210.
2019.11.06 13:35:00 3: eval: {YAAHM_time('HA_YAAHM','afternoon',1)}
2019.11.06 13:35:00 1: PERL WARNING: Use of uninitialized value $tval in substitution (s///) at ./FHEM/95_YAAHM.pm line 1211.
2019.11.06 13:35:00 3: eval: {YAAHM_time('HA_YAAHM','afternoon',1)}
2019.11.06 13:35:00 1: PERL WARNING: Use of uninitialized value $mval in numeric ge (>=) at ./FHEM/95_YAAHM.pm line 1214.
2019.11.06 13:35:00 3: eval: {YAAHM_time('HA_YAAHM','afternoon',1)}
2019.11.06 13:35:00 1: PERL WARNING: Use of uninitialized value $nval in numeric gt (>) at ./FHEM/95_YAAHM.pm line 1214.
2019.11.06 13:35:00 3: eval: {YAAHM_time('HA_YAAHM','afternoon',1)}
2019.11.06 13:35:00 1: PERL WARNING: Use of uninitialized value $xval in concatenation (.) or string at ./FHEM/95_YAAHM.pm line 1337.
2019.11.06 13:35:00 3: eval: {YAAHM_time('HA_YAAHM','afternoon',1)}
2019.11.06 13:35:00 1: PERL WARNING: Use of uninitialized value $xval in concatenation (.) or string at ./FHEM/95_YAAHM.pm line 1339.
2019.11.06 13:35:00 3: eval: {YAAHM_time('HA_YAAHM','afternoon',1)}
2019.11.06 13:35:00 1: [YAAHM_time] executing
2019.11.06 13:35:00 1: PERL WARNING: Use of uninitialized value $cmd in pattern match (m//) at fhem.pl line 1072.
2019.11.06 13:35:00 3: eval: {YAAHM_time('HA_YAAHM','afternoon',1)}



Internals:
   FUUID      5dc18a44-f33f-7d11-2445-a0a1b7a69ba850ff
   NAME       HA_YAAHM
   NOTIFYDEV  global,HA_YAAHM
   NR         1990
   STATE      Initialized
   TYPE       YAAHM
   VERSION    3.1
   DATA:
     savedate   2019-11-06 13:33:01
     DD:
       HASH(0x55b01dc15b50)
       HASH(0x55b01dbe9550)
       HASH(0x55b01dc0b2a0)
     DT:
       aftermidnight:
         00:01
         00:01
         {houseTimeHelper('aftermidnight')}
         ;
       afternoon:
         13:35
         undef
         {houseTimeHelper('afternoon')}
         ;
       aftersunrise:
         07:08
         00:01
         {houseTimeHelper('aftersunrise')}
         ;
       aftersunset:
         16:51
         00:16
         {houseTimeHelper('aftersunset')}
         ;
       beforemidnight:
         23:58
         00:02
         {houseTimeHelper('beforemidnight')}
         ;
       beforesunrise:
         07:05
         00:02
         {houseTimeHelper('beforesunrise')}
         ;
       beforesunset:
         16:33
         00:02
         {houseTimeHelper('beforesunset')}
         ;
       evening:
         18:00
         undef
         {houseTimeHelper('evening')}
         ;
       morning:
         06:00
         undef
         {houseTimeHelper('morning')}
         ;
       night:
         22:00
         undef
         {houseTimeHelper('night')}
         ;
       noon:
         12:00
         undef
         {houseTimeHelper('noon')}
         ;
       sleep:
         22:30
         undef
         undef
         undef
       sunrise:
         07:07
         undef
         {houseTimeHelper('sunrise')}
         ;
       sunset:
         16:35
         undef
         {houseTimeHelper('sunset')}
         ;
       wakeup:
         06:15
         undef
         undef
         undef
     HSM:
       mode       normal
       state      unsecured
       time       noon
     WT:
       HASH(0x55b01dbfa258)
       HASH(0x55b01dc0fd70)
       HASH(0x55b01dc090d0)
       HASH(0x55b01dbdff68)
     XT:
       Rolladen hoch:
         cmd       
         earliest   
         event      sunrise
         latest     
         name       Rolladen hoch
       Rolladen runter:
         cmd       
         earliest   
         event      sunset
         latest     
         name       Rolladen runter
   READINGS:
     2019-11-05 19:57:40   housemode       normal
     2019-11-06 13:33:00   housephase      daytime
     2019-11-06 12:00:00   housetime       noon
     2019-11-05 15:43:29   lockstate       0
     2019-11-06 13:33:00   next_0         
     2019-11-06 00:00:33   next_1         
     2019-11-06 13:33:00   next_2         
     2019-11-06 00:00:33   next_3         
     2019-11-06 12:00:00   next_housetime  beforesunrise
     2019-11-05 19:57:40   prev_housemode  absence
     2019-11-06 12:00:00   prev_housetime  wakeup
     2019-11-06 13:33:00   ring_0          07:30
     2019-11-06 13:33:00   ring_0_1        07:30
     2019-11-06 13:33:00   ring_0_1x       07:30
     2019-11-06 13:33:00   ring_0x         07:30
     2019-11-06 13:33:00   ring_1          22:30
     2019-11-06 13:33:00   ring_1_1        22:30
     2019-11-06 13:33:00   ring_1_1x       22:30
     2019-11-06 13:33:00   ring_1x         22:30
     2019-11-06 13:33:00   ring_2          07:00
     2019-11-06 13:33:00   ring_2_1        07:00
     2019-11-06 13:33:00   ring_2_1x       07:00
     2019-11-06 13:33:00   ring_2x         07:00
     2019-11-06 13:33:00   ring_3          22:30
     2019-11-06 13:33:00   ring_3_1        22:30
     2019-11-06 13:33:00   ring_3_1x       22:30
     2019-11-06 13:33:00   ring_3x         22:30
     2019-11-06 13:33:00   s_aftermidnight 00:01
     2019-11-06 13:33:00   s_afternoon     13:35
     2019-11-06 13:33:00   s_aftersunrise  07:08
     2019-11-06 13:33:00   s_aftersunset   16:51
     2019-11-06 13:33:00   s_beforemidnight 23:58
     2019-11-06 13:33:00   s_beforesunrise 07:05
     2019-11-06 13:33:00   s_beforesunset  16:33
     2019-11-06 13:33:00   s_evening       18:00
     2019-11-06 13:33:00   s_morning       06:00
     2019-11-06 13:33:00   s_night         22:00
     2019-11-06 13:33:00   s_noon          12:00
     2019-11-06 13:33:00   s_sleep         22:30
     2019-11-06 13:33:00   s_sunrise       07:07
     2019-11-06 13:33:00   s_sunset        16:35
     2019-11-06 13:33:00   s_wakeup        06:15
     2019-11-06 13:33:01   savedate        2019-11-06 13:33:01
     2019-11-06 13:31:27   state           Initialized
     2019-11-05 15:42:20   todayDesc       --
     2019-11-05 15:42:20   todayType       workday
     2019-11-06 13:33:00   today_0         07:30
     2019-11-06 13:33:00   today_0_e       enabled
     2019-11-06 13:33:00   today_1         22:30
     2019-11-06 13:33:00   today_1_e       enabled
     2019-11-06 13:33:00   today_2         07:00
     2019-11-06 13:33:00   today_2_e       enabled
     2019-11-06 13:33:00   today_3         22:30
     2019-11-06 13:33:00   today_3_e       enabled
     2019-11-05 15:42:20   tomorrowDesc    --
     2019-11-05 15:42:20   tomorrowType    workday
     2019-11-06 13:33:00   tomorrow_0      07:30
     2019-11-06 13:33:00   tomorrow_0_e    enabled
     2019-11-06 13:33:00   tomorrow_1      22:30
     2019-11-06 13:33:00   tomorrow_1_e    enabled
     2019-11-06 13:33:00   tomorrow_2      07:00
     2019-11-06 13:33:00   tomorrow_2_e    enabled
     2019-11-06 13:33:00   tomorrow_3      22:30
     2019-11-06 13:33:00   tomorrow_3_e    enabled
     2019-11-05 19:57:42   tr_errmsg       
     2019-11-05 19:57:40   tr_housemode    Normal
     2019-11-06 13:33:00   tr_housephase   Tageszeit
     2019-11-06 12:00:00   tr_housetime    Mittag
     2019-11-05 15:42:20   tr_todayType    Arbeitstag
     2019-11-05 15:42:20   tr_tomorrowType Arbeitstag
     2019-11-05 15:42:20   tr_twodaysType  Arbeitstag
     2019-11-06 13:33:00   tr_wake_0       7:30 morgen
     2019-11-06 13:33:00   tr_wake_1       22:30 heute
     2019-11-06 13:33:00   tr_wake_2       7:00 morgen
     2019-11-06 13:33:00   tr_wake_3       22:30 heute
     2019-11-05 15:42:20   twodaysDesc     --
     2019-11-05 15:42:20   twodaysType     workday
   TIMER:
     HA_YAAHM_aftermidnight:
       HASH       HA_YAAHM
       MODIFIER   aftermidnight
       NAME       HA_YAAHM_aftermidnight
     HA_YAAHM_check:
       HASH       HA_YAAHM
       MODIFIER   check
       NAME       HA_YAAHM_check
     HA_YAAHM_daytime:
       HASH       HA_YAAHM
       MODIFIER   daytime
       NAME       HA_YAAHM_daytime
     HA_YAAHM_nighttime:
       HASH       HA_YAAHM
       MODIFIER   nighttime
       NAME       HA_YAAHM_nighttime
Attributes:
   modeAuto   1
   modeHelper houseModeHelper
   room       Timecontrol
   sunrise    SunRise
   sunset     SunSet
   timeHelper houseTimeHelper

Prof. Dr. Peter Henning

 ::) Wenn ich nach einem Reading frage, will ich keine 80 Zeilen haben...

Die Timer werden komplett korrekt ausgeführt, der Fehler ist also in der Routine houseTimeHelper zu suchen. Und sorry: Für die bin ich nicht verantwortlich.


LG

pah


BerndMiles

Hallo pah,

du hast recht es liegt an der HouseTimeHelper-Routine. Nun habe ich mal nur das template genommen und es funktioniert.
Sobald ich aber eine Zeile dazuschreibe, kommt der Fehler wieder. Das ist schon sehr mysteriös. So was komisches hatte ich noch nie.

VG Bernd


  #---------------------------------------------------------------------
  }elsif( $event eq "sunrise" ){

  #---------------------------------------------------------------------
  }elsif( $event eq "afternoon" ){
    Log 3, "Aufruf: HouseTimeHelper - afternoon";
  }elsif( $event eq "beforesunrise" ){

  #---------------------------------------------------------------------
  }elsif( $event eq "evening" ){

andies

Zitat von: friesenjung am 05 November 2019, 16:36:26
habe heute ähnliches Verhalten bei mir festgestellt (siehe Screenshot).
Das erste Mal taucht die Verschiebung nach Umstellung auf die Winterzeit auf:

2019.10.27 23:00:34 1: [YAAHM_updater] on device Profil called for this day

Vorher und nach initialize anscheinend auch danach aber nicht mehr. Ich vermute daher, dass es mit dieser Umstellung zu tun hatte.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

BerndMiles

Ich denke ich habe jetzt die Ursache gefunden. Nachdem ich fhem neu gestartet habe und das nächste Event ausgelöst wird, steht housephase plötzlich auf nighttime. Das hat nun aber ganz und gar nichts mit mir zu tun. Oder ich lasse das Template unberührt, was mir aber leider dann auch nichts nützt :-).

Prof. Dr. Peter Henning

ZitatIch vermute daher, dass es mit dieser Umstellung zu tun hatte.
Das hatte ich doch schon geschrieben. Weil die Auslösung um 00:00:33 Sommerzeit eben am Tag nach(!) der Zeitumstellung nur 23:00:33 ist. Um das abzufangen, müsste ich das Astro-Modul um den Termin der Zeitumstellung erweitern und an diesem Tag den Timer abändern. Mache ich auch irgendwann.

ZitatSobald ich aber eine Zeile dazuschreibe, kommt der Fehler wieder.
Zeichensatzfehler beim Herunterladen und Editieren. Sollte man aber bereits merken, wenn das Hilfsmodul geladen wird, in dem die houseTimeHelper-Routine steht (Fehlermeldung ...)

LG

pah


andies

Zitat von: Prof. Dr. Peter Henning am 06 November 2019, 17:44:24
Mache ich auch irgendwann.
(Hatte ich nicht kapiert, dass das Astro war.) Das Problem taucht einmal im Jahr auf, ist übersichtlich. Ich trage was ins Wiki ein und dann kann das bei Gelegenheit raus.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Prof. Dr. Peter Henning

ZitatHatte ich nicht kapiert, dass das Astro war
Steht in Astro im Reading ObsIsDST

LG

pah