FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Spook112 am 12 August 2021, 13:00:02

Titel: OldReadingsVal auch für userReadings anwendbar ?
Beitrag von: Spook112 am 12 August 2021, 13:00:02
Hi,
eine vermutlich einfache Frage, auf die ich bisher keine Antwort gefunden habe.

Kann man auch eigene userReadings im Attribut oldreadings eintragen und erhält dann auch das gewünschte Ergebnis?
(Ich habe den Verdacht das geht nicht. Also eintragen kann man das schon, aber es scheint nicht zu funktionieren)

Anwendungsfall:
oldreadings LastActionResult, previous_LastActionResult
userReadings previous_LastActionResult {sprintf (OldReadingsVal("$NAME","LastActionResult","-1"))},
former_LastActionResult (sprintf (OldReadingsVal("$NAME","previous_LastActionResult","-1"))}


Auch nach mehreren Aktionen die "LastActionResult" verändern entteht das userReadings  "former_LastActionResult" nicht.

Habe ich da einen Überlegungsfehler oder geht das per Definition nicht ?
(Das userReadings  "previous_LastActionResult" wird bei jedem Wechsel aktualisiert)
Titel: Antw:OldReadingsVal auch für userReadings anwendbar ?
Beitrag von: frank am 12 August 2021, 13:18:22
in der definition von former_LastActionResult fehlt mindestens die öffnende, geschweifte klammer.
keine fehlermeldung in fhem.log?
Titel: Antw:OldReadingsVal auch für userReadings anwendbar ?
Beitrag von: MadMax-FHEM am 12 August 2021, 13:28:42
Naja du hast ja auch ein Leerzeichen VOR dem previous_LastActionResult im Attribut!

Zitat von: commandref
oldreadings
Dieses Attribut enthält eine durch Kommata getrennte Liste von Readings. regex sind erlaubt. Für jedes Reading aus der Liste speichert FHEM intern den vorherigen Wert wenn sich das Reading ändert. Zum Zugriff auf die Werte gibt es die OldReadings.* Routinen.

Komma-separiert heißt halt auch wirklich Komma-separiert!

Gruß, Joachim
Titel: Gelöst | Antw:OldReadingsVal auch für userReadings anwendbar ?
Beitrag von: Spook112 am 12 August 2021, 14:23:18
Danke für die Tipps.
Beide waren berechtigt, wobei ich das ohne Leerzeichen, also im Attribut oldreadings tatsächlich nur durch Komma separiert, auch schon probiert hatte. Ohne Erfolg.

Das Problem lag in der falschen Klammer vor dem  "sprintf" bei
(sprintf (OldReadingsVal("$NAME","previous_LastActionResult","-1"))}

Wenn man natürlich ( anstatt { nimmt kann es nicht funktionieren :-)