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?
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.
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.
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.
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.
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.
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
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.