FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Ellert am 24 November 2015, 18:38:12

Titel: [gelöst:] holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: Ellert am 24 November 2015, 18:38:12
Nach einer Änderung der holiday-Datei wollte ich die Datei mit get sh today neu einlesen, um den Status des holiday Device und $we zu aktualisieren und um nicht nicht bis Mitternacht warten zu müssen.

In der Commandref fand ich den Hinweis:
ZitatAuch jeder "get" Befehl liest die Datei neu ein.

Das hat nicht geklappt. Was mache ich falsch?

Im Popup-Fenster wird der geänderte Dateiinhalt richtig angezeigt.

Mit defmod sh sh ist der Status und $we aktualisiert worden.

Meine Konfiguration:
attr global holiday2we sh
define sh holiday

Eintrag in der Datei sh.holiday:
1 11-24 test
Titel: Antw:holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: rudolfkoenig am 24 November 2015, 19:43:45
Das Problem liegt an featurelevel 5.7: holiday2we verwendet das nicht mehr gefuellte $value{}.
Habs geaendert, eingecheckt, ab morgen per update verfuegbar.
Workaround bis morgen: "attr global featurelevel 5.6" setzen.
Titel: Antw:holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: Ellert am 25 November 2015, 10:29:18
Leider hat es nach dem Update heute morgen nicht geklappt.

Eintrag in sh.holiday: #1 11-25 test

Update und Restart durchgeführt.

get sh today liefert "none" im Popup-Fenster
   Readings:
     2015-11-25 09:57:39   state           none
     2015-11-25 09:57:39   tomorrow        none
     2015-11-25 09:57:39   yesterday       none


{return "\$we: $we"} liefert $we: 0

soweit ist alles o.k., dann Eintrag in sh.holiday 1 11-25 test
get sh today liefert "test" im Popup-Fenster.
Die Readings bleiben nach einem Reload unverändert.
   Readings:
     2015-11-25 09:57:39   state           none
     2015-11-25 09:57:39   tomorrow        none
     2015-11-25 09:57:39   yesterday       none

{return "\$we: $we"} liefert $we: 0
Auch $we bleibt 0

Ein Aufruf von defmod sh sh führt zur Aktualisierung von sh und $we
   Readings:
     2015-11-25 10:24:43   state           test
     2015-11-25 10:24:43   tomorrow        none
     2015-11-25 10:24:43   yesterday       none


{return "\$we: $we"} liefert $we: 1
Titel: Antw:holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: betateilchen am 25 November 2015, 13:06:50
Die readings werden nach einem "get" nicht aktualisiert. Das Aktualisieren der Readings erfolgt einmal pro Tag, kurz nach Mitternacht.

Mach mal einen fhem-Neustart und schau nach, ob die readings anhand Deiner Testdaten dann korrekt gefüllt sind.
Titel: Antw:holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: rudolfkoenig am 25 November 2015, 13:58:54
Workaround: modify sh
Titel: Antw:holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: Ellert am 25 November 2015, 14:29:58
Danke!
Titel: Antw:[gelöst:] holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: Ellert am 27 November 2015, 20:51:11
{$value("sh")} liefert unter featurelevel 5.7 immer noch nichts zurück.
Mit attr global featurelevel 5.6 wird der Feiertag angezeigt.
Mein letztes Update ist vom 26.11.2015, 8.49 Uhr.
Titel: Antw:[gelöst:] holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: rudolfkoenig am 28 November 2015, 08:36:47
Zitat{$value("sh")} liefert unter featurelevel 5.7 immer noch nichts zurück.

Dann ist es gut, funktioniert noch wie beabsichtigt.
Siehe Ankuendigung fuer 5.7
Titel: Antw:[gelöst:] holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: Ellert am 28 November 2015, 09:53:38
Es verdichtet sich die Erkenntnis, dass ich
Zitat...das nicht mehr gefuellte $value{}.
Habs geaendert...
falsch verstanden habe.

Ich hatte es so verstanden, dass $value{} nach dem update doch wieder gefüllt wird.

Danke für die Geduld.
Titel: Antw:[gelöst:] holiday: Aktualisierung des Status mit get funktioniert nicht.
Beitrag von: rudolfkoenig am 28 November 2015, 11:12:48
Nein, und es bleibt auch so, weil $value{} sehr ineffizient ist: vor jedem Perl-Ausdruck muss der Status aller Geraete nach $value{} kopiert werden. Nachdem mir bewusst geworden ist, dass Installationen mit mehreren hundert Definitionen keine Seltenheit sind, wollte ich es abloesen, und das ist mit featurelevel mAn sauber moeglich.