FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ag21368 am 22 Oktober 2018, 10:17:49

Titel: Reading - Wert berechnen
Beitrag von: ag21368 am 22 Oktober 2018, 10:17:49
Hallo zusammen,

ich möchte immer um 2:00 Uhr ein Reading setzen welches berechnet werden soll. Zum Beispiel

define at_licht_morgens_an at *02:00:00 {fhem("setreading A_sunrise_sunset_licht licht_an {sunset(-45000)}")
}

Der dort errechnete Wert soll in das reading geschrieben werden Bei mir wird aber nur der Text geschrieben.

Ich möchte dieses reading später nutzen um zu eben der errechneten Zeit etwas zu schalten.

Danke im Voraus

VG
Andreas

Titel: Antw:Reading - Wert berechnen
Beitrag von: Byte09 am 22 Oktober 2018, 10:56:57
Warum der Umweg über das at ? Du kannst doch auch direkt schalten . Geht in jedem Fall mit mswitch , mit doif etc.

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk

Titel: Antw:Reading - Wert berechnen
Beitrag von: Otto123 am 22 Oktober 2018, 11:04:18
Hallo ag21368,

Du musst Perlausdrücke im Ausführungsteil (set magic genannt) noch mal mit () klammern
{sunset(-45000)} -> {(sunset(-45000))}

Steht so (etwas implizit) in der Doku (https://commandref.fhem.de/commandref_DE.html#set).  :D
Zitat
set <devspec> <type-specific>

...

{(perlExpression)} mit dem Ergebnis der perlExpression. $DEV wird dabei mit dem Namen des vom set betroffenen Gerätes ersetzt.
Diese Ersetzungen sind unter dem Namen "set magic" bekannt.

Gruß Otto
Titel: Antw:Reading - Wert berechnen
Beitrag von: viegener am 22 Oktober 2018, 11:11:19
Wie oben schon beschrieben, kannst Du auch eine Berechnung zu sunset für Schaltvorgänge nutzen (siehe auch DOIF-Beispiele)

Wenn Du Dein at so erhalten willst, dann ist es nötig die Berechnung auf der perl-Ebene auch ausführen zu lassen, momentan steht sie im String:

define at_licht_morgens_an at *02:00:00 {fhem("setreading A_sunrise_sunset_licht licht_an "+sunset(-45000)) }

Ohne das jetzt im System auf Syntaxfehler überprüft zu haben.
Und eigentlich brauchst Du gar nicht für den setreading-Befehl auf die perl-Ausführungsebene.
Titel: Antw:Reading - Wert berechnen
Beitrag von: ag21368 am 23 Oktober 2018, 22:45:09
Habe es hinbekommen. Danke