Hallo,
define n_Wind_AUS notify Wetter:wind_condition.* { fhem "set Wind_AUS ".ReadingsVal("Wetter","wind_condition",0)." " }
schreibt mir
Wind: WSW 35 km/h
in meinen dummy. Ich möchte es aber ohne
Wind:
haben.
Mein laienhafter Ansatz war
Wetter:wind_condition.* { fhem "set Wind_AUS "substr(.ReadingsVal("Wetter","wind_condition",0)." ", 6) }
Das scheint aber nicht zu funktionieren, wirft aber auch keinen Error im Log aus.
Jemand eine Idee?
Gruß
Eisix
Probiere es mit $EVTPART (ReadingsVal ist hier gar nicht notwendig). Siehe dazu commandref zu notify.
Hallo,
es sollte auch stateFormat möglich sein. Ich habe mir ein userReading gebaut
Richtung:windDirection {CompassPoint (ReadingsVal("CombiOutdoorSensor","windDirection",0))}, WindChill:windSpeed {WindChill (ReadingsVal("CombiOutdoorSensor","windSpeed",0), ReadingsVal("CombiOutdoorSensor","temperature",0))}
Dazu die 99_myUtils aus dem Anhang - dann kannst Du mit dem Reading machen was Du möchtest.
Gruß Christoph
Danke für die prompte Antwort.
Wetter:humidity.* set Luftfeuchte_AUS $EVTPART1 %
ergibt dann z.B.: 93 %
Wetter:wind_condition.* set Wind_AUS $EVTPART2 $EVTPART3 $EVTPART4
ergibt dann z.B.: W 34 km/h
Das heißt die Einheiten oder was auch immer können einfach dahinter geschrieben werden wie im ersten Beispiel.
Gruß
Eisix
Hallo,
bei condition habe ich ein Problem da es je nach Wetterlage 1 oder 2 Textblöcke sind.
DEF Wetter:condition.* set Condition_AUS $EVTPART1 $EVTPART2
gibt dann
STATE heiter $EVTPART2
gibt es da einen einfachen Trick? Ansonsten bleibe ich bei dem Fall bei der Lösung mit ReadingsVal.
Gruß
Eisix
Wetter:condition.* {
if ($EVTPART2) {
fhem("set Condition_AUS $EVTPART1 $EVTPART2");
}
else {
fhem("set Condition_AUS $EVTPART1");
}
}
Und es gibt dabei keinen Fehler, wenn $EVTPART2 nicht definiert ist? Habe gerade nur ein Tablet zur Hand, sonst hätte ich es kurz ausprobiert.
Sollte es nicht.
Alternative:
Wetter:condition.* {
if (length $EVTPART2) {
fhem("set Condition_AUS $EVTPART1 $EVTPART2");
}
else {
fhem("set Condition_AUS $EVTPART1");
}
}
Edit: Doch, du hast recht. Ich habe hier etwas php-lastig gedacht. Eventuell kann man hier mit length arbeiten oder $EVENT per split aufteilen.
Wenn length nicht funktionieren sollte, dann kann man an eine sub übergeben, die nicht als Prototyp deklariert ist und auf optionale Parameter prüfen. muss man wohl selbst splitten, wie Du schon geschrieben hast. Hatte ich falsch in Erinnerung.
Beide Varianten haben nicht funktioniert aber auch keinen error im Log produziert. Habe auch noch ein paar andere nach Perl Doku probiert aber mit dem gleichen negativen Ergebnis.
Mit ReadingsVal funktioniert es ja, also kein Problem.
Danke nochmal für die Hilfe.
Gruß
Eisix