OldReadingsVal wird nicht gesaved -nach shutdown/restart undefined

Begonnen von Jamo, 29 Januar 2019, 08:41:43

Vorheriges Thema - Nächstes Thema

Jamo

Hallo,
nach einem save und anschliessendem shutdown/restart ist der Wert von OldReadingsVal immer undefined. Ich verstehe das der OldReadingsVal ein Internal ist und kein Reading, aber sollte der Wert nicht beim 'Save config' trotzdem gespeichert werden, so dass der OldReadingsVal einen neustart übersteht?
Immerhin hängt zumindest bei mir die Programmausführung davon ab.
Wenn man den OldreadingsVal in einer Bedingung benutzt, kommt erstmal das falsche Ergebnis, das muss man dann mühsam abfangen.

Ist das gewollt, so das man sich für diese Funktion lieber ein userreading definiert?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

CoolTux

Naja ein Internal ist es nicht, es ist schon ein Reading. Aber ob es im statefile gespeichert wird kann ich gerade nicht sagen. Muss ich selbst erstmal schauen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Jamo

Wird im statefile nicht gespeichert, kann man an einem dummy schnell ausprobieren. Nach einem neustart liefert bei mir z.B.  {OldReadingsVal("Telefon","Rufbehandlung","none")} immer ein 'none', danach aber immer den richtigen alter Readingswert.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

CoolTux

Was in meinen Augen auch Sinn macht. Es gab bis zum Start ja auch noch keine alten Readings. Der Status eines Gerätes ist ja bis zum ersten einlesen auch unbekannt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Zitatsollte der Wert nicht beim 'Save config' trotzdem gespeichert werden, so dass der OldReadingsVal einen neustart übersteht?
Das waere eine erhebliche Aenderung, und ich bin z.Zt. noch nicht ueberzeugt, dass es Wert ist.

Jamo

ZitatWas in meinen Augen auch Sinn macht. Es gab bis zum Start ja auch noch keine alten Readings. Der Status eines Gerätes ist ja bis zum ersten einlesen auch unbekannt.
Natürlich hat es zum Start schon ein altes Reading gegeben. Es wird ja auch gespeichert ob ich 'home' oder 'absent' bin. Wenn mich aber interessiert ob ich vorher 'awoken' oder 'asleep' war, bevor ich auf 'home' stelle, dann kann ich das nach einem Neustart nicht mehr feststellen.
ZitatDas waere eine erhebliche Aenderung, und ich bin z.Zt. noch nicht ueberzeugt, dass es Wert ist.
Dann werde ich mir erstmal weiterhin meine oldReadings in einem userreading erzeugen.

Gibt es dazu einen Einzeiler? Ich kanns bis jetzt nur in einem 2-zeiler mit zwischenvariable.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

DeeSPe

Zitat von: inoma am 29 Januar 2019, 11:59:23
Natürlich hat es zum Start schon ein altes Reading gegeben. Es wird ja auch gespeichert ob ich 'home' oder 'absent' bin. Wenn mich aber interessiert ob ich vorher 'awoken' oder 'asleep' war, bevor ich auf 'home' stelle, dann kann ich das nach einem Neustart nicht mehr feststellen.

Wenn es Dir um die RESIDENT/ROOMMATE/GUEST geht, dann nimm doch einfach das jeweilige Reading "lastState".
Das sollte dem OldReadingsVal von "state" entsprechen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Jamo

Nein, mir gehts nicht um speziell um RESIDENT/ROOMMATE/GUEST, das war nur ein Beispiel zur Veranschauung, weil CoolTux meinte beim Start gäbe es noch keinen alten Wert. Ich benutze den OldreadingsVal an 4 verschiedenen Stellen, 3 davon sind dummy devices. Ich werde es einfach über ein userreading loesen, damit funktionierts ja. 
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack