Hallo Zusammen,
ich habe eine Rollladenautomatisierung über FHEM und Homematic "gebastelt".
Hierzu hatte ich mir dass hier gemacht:
define Rollladen_Runter at *09:00 {if (Value("proplanta:fc0_uv")>3) {fhem("set room=Rollladen off")}}
Jeden Tag um 09:00 Uhr soll er prüfen ob der vorhergesagte UV-Wert für diesen Tag über 3 ist und wenn ja dann die Rollläden runter fahren.
Es scheint auch zu klappen, jedoch kommt immer diese Fehlermeldung nach Ausführung im LOG:
2019.08.24 09:00:00 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 389843) line 1.
2019.08.24 09:00:00 3: eval: {if (Value("proplanta:fc0_uv")>3) {fhem("set room=Rollladen off")}}
Ich hatte es mit sowas hier versucht, ging aber auch nicht:
{if ((split(' ',Value("proplanta:fc0_uv")))[0] > 3) {fhem("set room=Rollladen on")}}
Kann mir evtl. jemand helfen?
Dank
Frank
Moin,
ich hatte in meiner Rolladensteuerung etwas Ähnliches die Tage mit dem Attribut temperature:
2019.09.22 19:54:17 1: PERL WARNING: Argument "-" isn't numeric in numeric gt (>) at (eval 350728) line 1.
Das Problem bei mir war, dass das Proplanta-Modul das Attribut mit "-" gefüllt hat. Anscheinend gab es da Probleme mit den Rückgabewerten. Die Webseite zeigte alles korrekt an, so hab ich manuell dann mehrfach das Modul neue Werte einlesen lassen, bis irgendwann wieder eine Zahl bei temperature stand. Danach war der Fehler im Log auch weg.
Gruß
Michael
Moin,
der Ausdruck Value("proplanta:fc0_uv") ist schlichtweg Unfug.
Teste mal deine Ausdrücke in der Kommandozeile:
{Value("proplanta:fc0_uv")}
Dann versuch mal die richtige Form:
{ReadingsVal("proplanta","fc0_uv","")}
Edit Danke an den Hinweis von Joachim
{ReadingsNum("proplanta","fc0_uv",999)}
Kannst Du hier nachzulesen: https://commandref.fhem.de/#perl ;D
Gruß Otto
Moin Otto! ;)
@all: klitzekleine Ergänzung:
wenn nur der Zahlenwert eines Readings (ohne Einheit etc.) gebraucht wird: ReadingsNum("DeviceName","ReadingName",Ersatzwert)
Gruß, Joachim