Schalten abhängig von Wetter Readin Condition

Begonnen von Chris83, 12 Januar 2016, 22:02:34

Vorheriges Thema - Nächstes Thema

Chris83

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

frank

if ((ReadingsVal("Wetter","condition",0) =~ m/Schnee/) && ( Value("Taste_B") eq "off"))
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Chris83

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

frank

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);
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

araym

#4
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.

CoolTux

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)
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

araym