Hallo Leute,
ich würde gerne abhängig vom aktuellen Wetter einen Schaltbefel ausführen.
Das habe ich in einem Notify so aufgebaut:
DM7020HD {
if ((ReadingsVal("Wetter","condition",0) eq "Schnee") && ( Value("Taste_B") eq "off")) {
fhem("set Taste_B on")
}
}
Das funktioniert auch so weit.
Leider kann das Reading aber auch eine Kombination aus zwei Worten sein wie z.B. Regen und Schnee oder auch leichte Schneeschauer.
Ich würde gerne bei allem was Schnee enthält schalten kann mir jemand sagen wie ich das mache?
Gruß
Chris
if ((ReadingsVal("Wetter","condition",0) =~ m/Schnee/) && ( Value("Taste_B") eq "off"))
Hi,
erstmal vielen dank für die Hilfe. Ich teste jetzt schon ein paar Tage damit rum , aber komischerweise funktioniert es nicht immer.
Was bedeutet denn eigentlich das m vor dem / ?
Hast du eine Idee wiso es nicht immer funktioniert.
Gruß Chris
m => matching operator.
baue eine log-ausgabe in dein notify, damit du alle variablen siehst, wenn es nicht funktioniert. schematisch:
Log (1,"test ".$var1." ".$var2);
Hallo,
Bei mir kommt immer ein fehler
3: notify_Schnee return value: Not enough arguments for main::ReadingsVal at (eval 5533) line 1, near "0) "
Wetter.* { if ((ReadingsVal("Wetter","condition",0) =~ m/Schnee/) && (ReadingsVal("Wetter"."temperature",0) < 0)) { fhem ("set Schnee on") }}
Ich probiere schon seid stunden doch finde den Fehler nicht.
Benutze bitte Codetags, so kann man das schwer lesen
Wetter.* { if ((ReadingsVal("Wetter","condition",0) =~ m/Schnee/) && (ReadingsVal("Wetter"."temperature",0) < 0)) { fhem ("set Schnee on") }}
Du hast ein Punkt statt einem Komma
(ReadingsVal("Wetter"."temperature",0)
OK danke das wars ;D