Ich bekomme die folgende Fehlermeldung bei meinem DOIF:
condition c01: Argument "" isn't numeric in addition (+)
Ich verstehe die Fehlermeldung nur bedingt. Was ist ""?
Do sieht das DEF des DOIF aus:
([eg_ku_Kuehlschrank:temperature] >= [eg_ku_Kuehlschrank_solltemp:STATE] + [eg_ku_Kuehlschrank_difftemp:STATE])
(set kuehlwarnung an)
(setreading kuehlwarnung device Kühlschrank Küche)
DOELSEIF
([eg_ku_Kuehlschrank:temperature] <= [eg_ku_Kuehlschrank_solltemp:STATE] + [eg_ku_Kuehlschrank_difftemp:STATE])
(set kuehlwarnung aus)
(deletereading kuehlwarnung device)
DOELSE
(set kuehlwarnung aus)
(deletereading kuehlwarnung device)
Ich habe hier schon mit verschiedenen Klammern []{}(), Leerstellen und state/STATE experimentiert. Leider ohne Erfolg. Stehe irgendwie auf dem Schlauch.
Sollte nicht ein Wert zurückgegeben werden, wenn ich in die FHEM-Komandozeile z. B. folgendes eingebe:
{[eg_ku_Kuehlschrank_solltemp:STATE]}
Die beiden Dummys die ich zusammenrechnen möchte sehen so aus:
Internals:
NAME eg_ku_Kuehlschrank_difftemp
NR 4001
STATE 2
TYPE dummy
READINGS:
2017-12-13 18:53:50 state 2
Attributes:
group Kuehlschrank
room Logik
setList state:slider,-25,0.5,12
webCmd state
Internals:
NAME eg_ku_Kuehlschrank_solltemp
NR 4000
STATE -2
TYPE dummy
READINGS:
2017-12-13 19:38:15 state -2
Attributes:
group Kuehlschrank
room Logik
setList state:slider,-25,0.5,12
webCmd state
Freue mich über einen Tipp :-)
Das gleiche Problem wie hier: https://forum.fhem.de/index.php/topic,80442.msg730941.html#msg730941
In deinem Fall gibt es STATE nicht, das Reading heißt state ;)
oh, danke für die schnelle Info.
war auch noch ein Klammerproblem drin.
Hatte es gerade erfolgreich mit folgendem DEF zum Laufen bekommen:
([eg_ku_Kuehlschrank:temperature] >= ([eg_ku_Kuehlschrank_solltemp:state]+[eg_ku_Kuehlschrank_difftemp:state]))
(set kuehlwarnung an)
(setreading kuehlwarnung device Kühlschrank Küche)
DOELSEIF
([eg_ku_Kuehlschrank:temperature] <= ([eg_ku_Kuehlschrank_solltemp:state]+[eg_ku_Kuehlschrank_difftemp:state]))
(set kuehlwarnung aus)
(deletereading kuehlwarnung device)
DOELSE
(set kuehlwarnung aus)
(deletereading kuehlwarnung device)
Bevor das nächste Problem kommt, lass um das Plus Platz (Leerzeichen). Sonst bekommst du mal sowas wie 2+-1, was Perl nicht auflösen kann...
Danke für den Tipp!