wie Reading im DOIF erstellen

Begonnen von Space_Teddy, 24 September 2021, 08:09:33

Vorheriges Thema - Nächstes Thema

Space_Teddy

Hallo und guten Morgen,

ich habe ein mehr oder weniger komplexes DOIF in dem ich ein paar Werte berechne und je nach Zustand eines Devices (Gaszähler) ein tmp value sicher.

Zitat
Beispiel: Heizung geht in WarmWasser Mode -> Zählerstand sichern (tmp); Heizung ist mit WW fertig -> Berechnung Aktueller_Zählerstand minus tmp-value.

Ich habe jetzt das tmp-reading mit einem userReading eintrag erstellt und dann den Eintrag wieder gelöscht, damit ich das reading habe, aber das ist natürlich total umständlich wenn man mal das system neu aufsetzen will. Schöner wäre es, wenn ich das reading im DOIF erstellen kann und auch prüfen, ob es schon vorhanden ist, damit man es nicht ständig neu erstellen muss.

Geht sowas?

dank euch
Chris


rabehd

Irgendwie verstehe ich Deinen Prozess nicht.
Warum löscht Du das Userreading wieder?

Zitatwenn ich das reading im DOIF erstellen kann
Klar kann man das.
Auch funktionierende Lösungen kann man hinterfragen.

Space_Teddy

Hi,

ich lösche das spezielle userreading nur im Eintrag "Attribut" userReadings. Das Reading selber bleibt natürlich bestehen, damit ich dort Werte abspeichern kann.

lg,
Christian

Christoph Morrison

Setzen: setreading $SELF reading-name reading-value
Löschen: deletereading $SELF reading-name

Space_Teddy

ja ok, danke. Das war einfach.  ;D :o
Kann man auch überprüfen, ob das reading vorhanden ist und man kommt eine definierte Antwort vom system? Also keine große Fehlermeldung wenn das reading nicht existiert. Dachte da so an 0 oder 1.

danke

Christoph Morrison

Du kannst beim Zugriff auf ein Reading einen Default-Wert angeben, der zurückgeliefert wird, wenn das Reading nicht existiert. Wie du das machst, kommt drauf an, was zu nutzt. ReadingsVal() funktioniert immer. In DOIF geht das über einen Default-Wert [device:reading,default-wert].

Space_Teddy

#6
alright, das ich werde ich so mal probieren.
Dank dir und schönes WE

-> Funzt! Danke :)