FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: griessbx am 04 Dezember 2022, 10:32:43

Titel: Gelöst Differenz zwischen zwei Werten
Beitrag von: griessbx am 04 Dezember 2022, 10:32:43
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
   
Titel: Antw:Differenz zwischen zwei Werten
Beitrag von: Nobbynews am 04 Dezember 2022, 10:55:53
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");
Titel: Antw:Differenz zwischen zwei Werten
Beitrag von: Miami am 04 Dezember 2022, 11:02:22
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.
Titel: Antw:Differenz zwischen zwei Werten
Beitrag von: Damian am 04 Dezember 2022, 11:09:53
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)
Titel: Antw:Differenz zwischen zwei Werten
Beitrag von: Nobbynews am 04 Dezember 2022, 11:19:40
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!
Titel: Antw:Differenz zwischen zwei Werten
Beitrag von: griessbx am 05 Dezember 2022, 18:26:47
Danke nun geht's
Gruß Roland
Titel: Antw:Gelöst Differenz zwischen zwei Werten
Beitrag von: Miami am 05 Dezember 2022, 20:11:50
Bitte poste doch mal, was nun funktioniert hat.