Hauptmenü

stateFormat nach Neustart

Begonnen von R1F800, 02 Juli 2020, 08:22:13

Vorheriges Thema - Nächstes Thema

R1F800

Hallo,
mal eine Frage zu einem komischen Verhalten, dass ich mir nicht erklären kann.

Ich habe ein device, dass ich mit einem stateFormat versehen habe.
Nach einem NEUSTART des FHEM Servers sehe ich jedoch immer nur sen Status active auf dem device.
Erst wenn ich das Attribut stateFormat noch einmal anklicke und dann sehe ich erst wieder den korekten Wert.

BSP siehe Bilder.

gibt es hierzu orgendeine Lösung ?

Beta-User

Jein: Was angezeit wird, ist STATE. STATE als Internal wird erst aktualisiert, wenn die betreffende Modulinstanz irgendwas zu rechnen bekommt, also irgendein Reading aktualisiert wird (oder eben die Berechnung durch die Bearbeitung des Attributs ausgelöst wird).
Würde empfehlen, damit zu leben und eher auf Neustarts zu verzichten ;) .

Ansonsten: zumindest der mittlere screenshot wäre als Text einfacher zu lesen gewesen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

tux75at

Ich bin mir nicht sicher, aber dein Problem könnte durch einen Dummy gelöst werden.
Für die Anzeige einen Dummy dem du den Wer über ein notify setzt.
Dadurch hast du nach neustart noch den richtigen Wert, wenn FHEM sich den Zustand merkt, sollte meines Wissens so sein.

betateilchen

Ist denn das device, in dem das stateFormat definiert ist, das gleiche device, das auch den ReadingsVal() liefert?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

R1F800

Zitat von: betateilchen am 08 Juli 2020, 10:24:43
Ist denn das device, in dem das stateFormat definiert ist, das gleiche device, das auch den ReadingsVal() liefert?

nein, das device greift die Daten eines anderen ab
defmod Luftdruck cloneDummy BME280:pressure.*
attr Luftdruck group Dachgeschoss
attr Luftdruck icon weather_barometric_pressure
attr Luftdruck room Firmata,TempSensoren
attr Luftdruck stateFormat {sprintf("%.1f hPa",ReadingsVal("BME280","pressure",9999.9))}
...

betateilchen

Dann hast Du vermutlich schlichtweg ein Reihenfolgenproblem.


  • den unter "raw definition" Code von "Luftdruck"  kopieren und irgendwo sichern
  • das device "Luftdruck" löschen
  • save config
  • den gesicherten Code ausführen
  • save config

Nach einem "shutdown restart" prüfen, ob die Anzeige entsprechend den Wünschen aussieht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!