Hallo,
irgendwie bin ich zu Blöd und bekomme das nicht hin . In einem Dummy habe ich 2 Werte die ich zu einer bestimmten Tageszeit von einander abziehen möchte und in den Dummy zurückschreiben möchte
hier der code
DOELSEIF ([00:01]) (setreading Strom_calc Wrt_0 {ReadingsVal("Strom_calc","Str_24 ",0) - ReadingsVal(""Strom_calc","Str_18 ",0)})
Als Ergebnis erhalte ich Inhalt von Wrt_0 :{ReadingsVal("Strom_calc","Wrt_24 ",0) - ReadingsVal(""Strom_calc","Wrt_18 ",0)}
Gruß und schon mal vielen Dank Roland
Warum es hier mal wieder ein doif sein muss, erschließt sich mir nicht.
Ein simples at reicht doch völlig aus:
Der Fehler dürfte hier liegen:
Zitat{ReadingsVal("Strom_calc","Str_24 ",0) - ReadingsVal(""Strom_calc","Str_18 ",0)}
Da sind wohl Leerzeichen hinter Str_24 und Str_18 und ein " zuviel.
Ansonsten mit einem at:
define at_Differenz at *00:01 {
my $diff = ReadingsVal("Strom_calc","Str_24",0) - ReadingsVal("Strom_calc","Str_18",0);
fhem ("setreading Strom_calc Wrt_0 $diff");
Probiere mal (ungetestet!):
DOELSEIF ([00:01]) ( {my $diff=ReadingsNum("Strom_calc","Str_24",0) - ReadingsNum("Strom_calc","Str_18",0); fhem("setreading Strom_calc Wrt_0 $diff") } )
Ich habe ReadingVal durch ReadingsNum ersetzt, da ich davon ausgehe, dass es sich um Zahlenwerte handelt.
Zitat von: Nobbynews am 04 Dezember 2022, 10:55:53
Warum es hier mal wieder ein doif sein muss, erschließt sich mir nicht.
Weil es offenbar nur ein Ausschnitt einer größeren Definition ist (DOELSEIF)
Zitat
Ein simples at reicht doch völlig aus:
s.o.
Zitat
Der Fehler dürfte hier liegen:Da sind wohl Leerzeichen hinter Str_24 und Str_18 und ein " zuviel.
nicht nur, Perlcode innerhalb eines FHEM-Befehls muss mit {( eingeleitet werden (das gilt auch für ats, notifys und alle anderen FHEM-Module)
Zitat von: Damian am 04 Dezember 2022, 11:09:53
Weil es offenbar nur ein Ausschnitt einer größeren Definition ist (DOELSEIF)s.o.nicht nur, Perlcode innerhalb eines FHEM-Befehls muss mit {( eingeleitet werden
Das ist ein Punkt. Habe ich übersehen...
Mein Fehler!
Danke nun geht's
Gruß Roland
Bitte poste doch mal, was nun funktioniert hat.