FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: matzke am 28 März 2021, 09:03:32

Titel: DoIf und ReadingsTimestamp, Klammerregel
Beitrag von: matzke am 28 März 2021, 09:03:32
Hallo,
wenn ich "{ReadingsTimestamp("LichtschalterBad","channelA",0)}" oben in Befehlszeile von FHEM eingebe, dann wirft es die Zeit aus.

wenn ich die DOIF "define doif_Strommesser DOIF ([LichtSchalterBad:channelA] eq "on") (setreading Musikschaler Start {ReadingsTimestamp("LichtschalterBad","channelA",0)})" anlege, dann wirft er mir nicht die Zeit aus, sondern wieder "{ReadingsTimestamp("LichtschalterBad","channelA",0)}"

Ich vermute ein Klammerfehler. Ich habe schon alles vor und zurück mit Klammern probiert, aber ich bekomme es nicht hin. Was mache ich falsch?
Titel: Antw:DoIf und ReadingsTimestamp, Klammerregel
Beitrag von: Sany am 28 März 2021, 10:20:34
Stichwort(e):
ZitatBerechnungen im Ausführungsteil   

Berechnungen können in geschweiften Klammern erfolgen. Aus Kompatibilitätsgründen, muss die Berechnung unmittelbar mit einer runden Klammer beginnen. Innerhalb der Perlberechnung können Readings, Status oder Internals wie gewohnt in eckigen Klammern angegeben werden.

Anwendungsbeispiel: Es soll ein Vorgabewert aus zwei verschiedenen Readings ermittelt werden und an das set Kommando übergeben werden:

define di_average DOIF ([08:00]) (set TH_Modul desired {([default:temperature]+[outdoor:temperature])/2})
attr di_average do always

es sollte mit
Zitat(setreading Musikschaler Start {(ReadingsTimestamp("LichtschalterBad","channelA",0))})
funktionieren

Viel Erfolg!
Titel: Antw:DoIf und ReadingsTimestamp, Klammerregel
Beitrag von: matzke am 28 März 2021, 14:31:14
Oh man, da habe ich wirklich nur eine Klammer vergessen am Ende. Ich habe drei Trage rumprobiert.
Ich habe auch Anleitungen usw. gelesen. Ist aber schwierig als Anfänger.
Habe das auch noch nicht verstanden mit, wann Perl {} und wann nicht.

Vielen Dank auf jeden Fall. Hat funktioniert.