Hallo
ich habe folgendes DOIF.
([":temperature"]
and [$DEVICE:temperature] > [?Rekorde:$DEVICE_TEMP_max])
(setreading Rekorde $DEVICE_TEMP_max [$DEVICE:temperature])
DOELSE
Es vergleicht 2 Werte und schreibt je nach dem, wenn der Wert höher ist, einen neuen Rekord. Ich wollte dies machen, weil das statistik Modul in die Devices schreibt und zu unübersichtlich ist. So ist es einfacher.
Es funktioniert mit den bestehenden Devices-Temperatursensoren ganz gut. Doch wenn ich ein neues Device erstelle mit einem Reading Temperature, dann kommt immer die Fehlermeldung
[Sun Aug 5 01:31:35 2018] fhem.pl: Argument "" isn't numeric in numeric lt (<) at (eval 17415) line 1.
[Sun Aug 5 01:31:35 2018] fhem.pl: Argument "" isn't numeric in numeric gt (>) at (eval 17417) line 1.
[Sun Aug 5 01:31:35 2018] fhem.pl: Argument "" isn't numeric in numeric gt (>) at (eval 17417) line 1.
[Sun Aug 5 01:31:35 2018] fhem.pl: Argument "" isn't numeric in numeric lt (<) at (eval 17419) line 1.
[Sun Aug 5 01:31:35 2018] fhem.pl: Argument "" isn't numeric in numeric lt (<) at (eval 17419) line 1.
jemand eine Ahnung? Danke.
lg c
Vielleicht hilft https://fhem.de/commandref_DE.html#DOIF_notexist
oder
and [$DEVICE:temperature] > [?Rekorde:$DEVICE_TEMP_max,-99])
hab ich so gemacht. Es geht aber nicht. es kommt folgende Meldung, welche ich nicht wirklich interpretieren kann. Ich will ja nicht Devices per , separieren, oder?
[Sun Aug 5 15:49:49 2018] fhem.pl: Argument "" isn't numeric in numeric gt (>) at (eval 135351) line 1.
2018.08.05 15:49:49 2: Rekorde_TEMP_MAX_DOIF: setreading Rekorde Water_Control_TEMP_max : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
[Sun Aug 5 15:59:52 2018] fhem.pl: Argument "" isn't numeric in numeric lt (<) at (eval 137667) line 1.
2018.08.05 15:59:52 2: Rekorde_HUMIDITY_MIN_DOIF: setreading Rekorde Sensor_HUMIDITY_min : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
usw usf
Konkret hat er bei den neuen Devices von Gardena (Sensor, Water_Control), welche beide folgende Readings (Auszug aus Readings) haben:
ambient_temperature-frost_warning kein Frost 2018-07-27 00:34:50
ambient_temperature-temperature 33 2018-08-05 15:54:50
humidity-humidity 77 2018-08-05 15:54:50 (nur bei Device Sensor)
soil_temperature-temperature 27 2018-08-05 15:59:52 (nur bei Device Sensor)
Ahnung?
Gib auch im Befehl einen Defaultwert an.
danke. wir kommen dem ganzen schon näher. ;)
([":temperature"]
and [$DEVICE:temperature] > [?Rekorde:$DEVICE_TEMP_max,-99])
(setreading Rekorde $DEVICE_TEMP_max [$DEVICE:temperature,-99])
DOELSE
Trotzdem kommt folgendes.
[Sun Aug 5 16:31:00 2018] fhem.pl: Argument "" isn't numeric in numeric gt (>) at (eval 144751) line 1.
[Sun Aug 5 16:31:00 2018] fhem.pl: Argument "" isn't numeric in numeric lt (<) at (eval 144756) line 1.
[Sun Aug 5 16:31:00 2018] fhem.pl: Argument "" isn't numeric in numeric gt (>) at (eval 144761) line 1.
[Sun Aug 5 16:31:00 2018] fhem.pl: Argument "" isn't numeric in numeric lt (<) at (eval 144766) line 1.
[Sun Aug 5 16:31:00 2018] fhem.pl: Argument "" isn't numeric in numeric gt (>) at (eval 144771) line 1.
[Sun Aug 5 16:31:00 2018] fhem.pl: Argument "" isn't numeric in numeric lt (<) at (eval 144776) line 1.
Leider weiss ich nicht, welches der 3 Gardena Devices genau gemeint ist. Könnte es an dem Reading ambient_temperature-frost_warning liegen, welches keinen numerischen Wert liefert?
EDIT: mir fällt auf, dass nun alle Rekorde wie folgt die Werte legen..
Sensor_HUMIDITY_max
-99
2018-08-05 16:56:07
Sensor_HUMIDITY_min
99
2018-08-05 16:56:07
Sensor_TEMP_max
-99
2018-08-05 16:56:08
Sensor_TEMP_min
99
2018-08-05 16:56:08
Technik_Klima_HUMIDITY_max
60
2018-06-11 14:23:48
Technik_Klima_HUMIDITY_min
17
2018-02-27 04:40:08
Technik_Klima_TEMP_max
28.7
2018-07-20 17:43:06
Technik_Klima_TEMP_min
18.3
2018-02-26 09:24:19
Water_Control_TEMP_max
-99
2018-08-05 16:56:08
Water_Control_TEMP_min
99
2018-08-05 16:56:08
Gib dem anderen Reading auch einen Default.
immer noch nicht
([":temperature"]
and [$DEVICE:temperature,0] > [?Rekorde:$DEVICE_TEMP_max,-99])
(setreading Rekorde $DEVICE_TEMP_max [$DEVICE:temperature,-99])
DOELSE
Im Reading steht -99
und im Logfile immer noch
[Sun Aug 5 20:36:59 2018] fhem.pl: Argument "" isn't numeric in numeric gt (>) at (eval 201150) line 1.
[Sun Aug 5 20:36:59 2018] fhem.pl: Argument "" isn't numeric in numeric lt (<) at (eval 201155) line 1.