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

Prof. Dr. Peter Henning

So,

wieder auf Deck.

Wenn YAAHM richtig gestartet wurde, wird automatisch um kurz nach Mitternacht eine Routine gestartet, die das Update der Tagesdaten (eben auch Sonnenauf- und Untergang) durchführt.

Es muss also einen Logeintrag geben, etwa

Zitat2017.09.12 00:00:34 1: [YAAHM_updater] on device YYY called for this day

LG

pah

UweH

Hallo pah,


den Logeintrag gibt es nicht. In der ersten Version von YAAHM hat das noch funktioniert, nach dem ersten Update dann nicht mehr. Und das auf zwei FHEM-Installationen.


Kann man denn YAAHM falsch starten?


Gruß
Uwe

Prof. Dr. Peter Henning

#47
Eigentlich nicht, wundert mich.

Versuch mal die angehängte Version 1.03 - da gibt es einen noch undokumentiertes "set initialize", das diesen Timer manuell neu startet.

LG

pah

UweH


UweH

Hall pah,

leider keine Änderung bzw. zumindest diese Logeinträge:

2017.09.14 00:00:33 1: [YAAHM_updater] on device Timer called for this day
2017.09.14 00:00:33 1: PERL WARNING: Argument "Datum 14.09.2017 12:00:00 \nJulianisches Datum 2458010.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2100.
2017.09.14 00:00:33 1: PERL WARNING: Argument "Datum 15.09.2017 12:00:00 \nJulianisches Datum 2458011.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2101.
2017.09.14 00:00:33 1: PERL WARNING: Use of uninitialized value $nga in substitution (s///) at ./FHEM/95_YAAHM.pm line 1566.
2017.09.14 00:00:33 1: PERL WARNING: Use of uninitialized value $nga in string eq at ./FHEM/95_YAAHM.pm line 1570.
2017.09.14 00:00:33 1: PERL WARNING: Use of uninitialized value $nga in string eq at ./FHEM/95_YAAHM.pm line 1576.


Letztes manuelles Update auf der einen Maschine am 11.09.:

Gruß
Uwe

Prof. Dr. Peter Henning

#50
Wundert mich nicht wirklich, die Ergänzung ist nämlich funktionslos geblieben...  :-[

Hier jetzt die korrekte Fassung

LG

pah

UweH

OK, habs eingespielt und werde morgen berichten.

2017.09.14 20:26:51 1: [YAAHM_updater] on device Timer called for this day
2017.09.14 20:26:51 1: PERL WARNING: Argument "Datum 14.09.2017 12:00:00 \nJulianisches Datum 2458010.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2096.
2017.09.14 20:26:51 1: PERL WARNING: Argument "Datum 15.09.2017 12:00:00 \nJulianisches Datum 2458011.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2097.
2017.09.14 20:26:51 1: PERL WARNING: Use of uninitialized value $nga in substitution (s///) at ./FHEM/95_YAAHM.pm line 1562.
2017.09.14 20:26:51 1: PERL WARNING: Use of uninitialized value $nga in string eq at ./FHEM/95_YAAHM.pm line 1566.
2017.09.14 20:26:51 1: PERL WARNING: Use of uninitialized value $nga in string eq at ./FHEM/95_YAAHM.pm line 1572.



Gruß
Uwe

UweH

Moin,

heute wieder der gleiche Logeintrag

2017.09.14 00:00:33 1: [YAAHM_updater] on device House called for this day
2017.09.14 00:00:33 1: PERL WARNING: Argument "Datum 14.09.2017 12:00:00 \nJulianisches Datum 2458010.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2100.
2017.09.14 00:00:33 1: PERL WARNING: Argument "Datum 15.09.2017 12:00:00 \nJulianisches Datum 2458011.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2101.
2017.09.14 00:00:33 1: PERL WARNING: Use of uninitialized value $nga in substitution (s///) at ./FHEM/95_YAAHM.pm line 1566.
2017.09.14 00:00:33 1: PERL WARNING: Use of uninitialized value $nga in string eq at ./FHEM/95_YAAHM.pm line 1570.
2017.09.14 00:00:33 1: PERL WARNING: Use of uninitialized value $nga in string eq at ./FHEM/95_YAAHM.pm line 1576.


aber keine Aktualisierung.
Die Zeiten in der Eventübersicht sind korrekt, im YAAHM-Modul stimmen sie nicht.

Gruß
Uwe

Prof. Dr. Peter Henning

#53
Ich glaubs nicht ganz.

In Zeile 2100 und Zeile 2101 der gestern hier hochgeladenen Datei kommt dieser String gar nicht vor, Zeilen 1570 und 1576 sind Kommentarzeilen.

Ganz sicher, dass das die richtige Datei ist ?

Die Variable $nga wird aus nächsten Weckzeit berechnet. Das kann schiefgehen, wenn die nicht richtig gesetzt wurde. Nachstehende Version hat da eine zusätzliche Sicherheitsabfrage.

Diese Warnungsmeldung kann aber NICHT dazu führen, dass die Zeiten für Sonnenauf- und Untergang inkorrekt sind.

DIe Funktion YAAHM_updater ruft nur YAAHM_GetDayStatus auf - und das geschieht ja ganz korrekt um 00:00:33

In der nachstehenden Version habe ich da drei weitere Logausgaben (temporär) eingebaut.

Bitte einspielen, und GLEICH "set House initialize" ausführen.

LG

pah

UweH


UweH

Nach dem Einspielen und reload wird folgender Eintrag erzeugt:
2017.09.15 08:54:19 1: [YAAHM_updater] on device House called for this day

An den Zeiten hat sich nichts geändert, daher mal vorsichtshalber einen restart und daraufhin diese Einträge:

2017.09.15 08:56:33 1: [YAAHM_updater] on device House called for this day
2017.09.15 08:56:33 1: PERL WARNING: Argument "Datum 15.09.2017 12" isn't numeric in sprintf at ./FHEM/95_YAAHM.pm line 2090.
2017.09.15 08:56:33 1: PERL WARNING: Argument "Datum 15.09.2017 12:00:00 \nJulianisches Datum 2458011.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2096.
2017.09.15 08:56:33 1: PERL WARNING: Argument "Datum 16.09.2017 12:00:00 \nJulianisches Datum 2458012.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2097.
2017.09.15 08:56:33 1: PERL WARNING: Use of uninitialized value $nga in substitution (s///) at ./FHEM/95_YAAHM.pm line 1562.
2017.09.15 08:56:33 1: PERL WARNING: Use of uninitialized value $nga in string eq at ./FHEM/95_YAAHM.pm line 1566.
2017.09.15 08:56:33 1: PERL WARNING: Use of uninitialized value $nga in string eq at ./FHEM/95_YAAHM.pm line 1572.


Bei den Weckzeiten gibt's von Anfang an das Problem, dass selbst erstellte Timer nach einem restart aus der Übersicht verschwinden, im Modul unter "Probably associated with" aber noch existieren.

Gruß
Uwe

Prof. Dr. Peter Henning

#56
Sieh an, sieh an.

Das hat irgendetwas mit den internen Calls von Perl zu tun, mutmaßlich mit dem localtime-Aufruf. Wenn ich YAAHM an der Stelle um 10 Millisekunden bremse, ist das Problem WEG.

Anbei die Version, in der das nicht mehr auftreten sollte.

Betreffend die Timer: Wenn man nach der Definition der eigenen Timer den Befehl "set <YAAHMDevice> save" aufruft, und nach dem Neustart ein "set <YAAHMDevice> restore", ist das Alles wieder da. Hängt damit zusammen, dass die recht komplexe Struktur mit allen YAAHM_Daten nicht in der normalen FHEM-Syve-Datei steht, sondern separat gesichert wird. Leider habe ich noch nicht implementiert, dass YAAHM beim Start auf das Vorhandensein einer solchen Datei schaut und sie automatisch lädt.

LG

pah

UweH


UweH

Hallo pah,

irgendwie klappt das noch nicht so ganz. Auf "set ...initialize" bekam ich eben folgende Antwort:
1505545710.49086
s_sunrise und s_sunset sind immer noch auf dem Stand des letzten manuellen Timerstarts (14.09., 18:03).

Im Log um Mitternacht diese Einträge:
2017.09.16 00:00:33 1: [YAAHM_updater] on device House called for this day
2017.09.16 00:00:33 1: PERL WARNING: Argument "Datum 16.09.2017 12:00:00 \nJulianisches Datum 2458012.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2087.
2017.09.16 00:00:33 1: PERL WARNING: Argument "Datum 17.09.2017 12:00:00 \nJulianisches Datum 2458013.9..." isn't numeric in array element at ./FHEM/95_YAAHM.pm line 2103.


Starte ich den Tages-Timer manuell, werden "s_sunrise", "s_sunset" usw. auf die korrekten Zeiten aktualisiert.

Brauchst Du noch mehr und andere Daten?

Gruß
Uwe

UweH

Den da hab ich noch. Das dürfte die Weckzeit "off" für den heutigen Tag sein.
2017.09.16 09:38:06 4: House.wtimer_0.IF timer_01_c02 error: Wrong timespec off: either HH:MM:SS or {perlcode}