DoIf und ReadingsTimestamp, Klammerregel

Begonnen von matzke, 28 März 2021, 09:03:32

Vorheriges Thema - Nächstes Thema

matzke

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?

Sany

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!
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

matzke

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.