FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Gunther am 13 Dezember 2017, 19:50:33

Titel: [gelöst] Addition DOIF: condition c01: Argument "" isn't numeric in addition (+)
Beitrag von: Gunther am 13 Dezember 2017, 19:50:33
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 :-)
Titel: Antw:Addition im DOIF: condition c01: Argument "" isn't numeric in addition (+)
Beitrag von: Damian am 13 Dezember 2017, 19:52:48
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 ;)
Titel: Antw:Addition im DOIF: condition c01: Argument "" isn't numeric in addition (+)
Beitrag von: Gunther am 13 Dezember 2017, 20:01:48
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)
Titel: Antw:[gelöst] Addition DOIF: condition c01: Argument "" ...
Beitrag von: Per am 14 Dezember 2017, 11:40:45
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...
Titel: Antw:[gelöst] Addition DOIF: condition c01: Argument "" isn't numeric in addition (+)
Beitrag von: Gunther am 14 Dezember 2017, 13:27:07
Danke für den Tipp!