[gelöst:] holiday: Aktualisierung des Status mit get funktioniert nicht.

Begonnen von Ellert, 24 November 2015, 18:38:12

Vorheriges Thema - Nächstes Thema

Ellert

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

rudolfkoenig

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.

Ellert

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

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig



Ellert

{$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.

rudolfkoenig

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

Ellert

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.

rudolfkoenig

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.