Hallo Zusammen,
ich versuche gerade meine Bewässerung Wetterabhängig zu gestalten. Dazu möchte ich das PROPLANTA Device (Name ist Wettervorhersage) um ein userreadings "Bewaesserung_notwendig" erweitern. In diesem soll ja bzw nein eingetragen werden. Es soll nein rein wenn Regenwahrscheinlichkeit am Tag oder in der Nacht >69% ist und die Niederschlagsmenge 3 überschreitet. Dazu habe ich folgende Definition:
Bewaesserung_notwendig:.* {if( (ReadingsVal("Wettervorhersage","fc0_chOfRainDay",0) gt 69 || ReadingsVal("Wettervorhersage","fc0_chOfRainNight",0) gt 69) && ReadingsVal("Wettervorhersage","fc0_rain",0) gt 3) {sprintf("nein")} else {sprintf("ja")}}
Die oder-Verknüpfung alleine funktioniert. Aber sobald ich die und-Verknüpfung hinzufüge geht er in den ja Zweig >:( (auch wenn fc0_rain > 3 ist.)
Hat jemand eine Idee, wo mein Problem liegt???
Danke!!!
Bewaesserung_notwendig:.* { if( (ReadingsVal("Wettervorhersage","fc0_chOfRainDay",0) > 69 or ReadingsVal("Wettervorhersage","fc0_chOfRainNight",0) > 69) and ReadingsVal("Wettervorhersage","fc0_rain",0) > 3) { sprintf("nein")} else {sprintf("ja")} }
Eigentlich habe ich nichts anders gemacht mit ausnahme von qt umgeändert in > da es sich ja um nummerische Werte handelt.
Vielen Dank!!! Manchmal ist die Lösung doch so nah (wobei ich nicht verstehe, warum es mit gt nicht geht - aber egal funktioniert) :D
Zahlen und Stringvergleich ist etwas knifflig
So ist zum Beispiel 9 größer 69 weil ja 9 größer 6 ist.
Hallo,
ich versuche schon eine weile ein userReading zu erzeugen das 2 Readings 2er Sensoren vergleicht und den niedrigeren Wert als userreading setzt.
temperature_kor{
if(ReadingsVal("HM_Sensor","temperature",0) < ReadingsVal("HM_Sensor_Ausen_2","temperature",0)) { sprintf("%.1f", (ReadingsVal("HM_Sensor","temperature",0)))}
elsif { sprintf("%.1f", (ReadingsVal("HM_Sensor_Ausen_2","temperature",0)))}
}
leider funktioniert das nicht. Es gibt keinen Fehler aber es wird auch kein Wert gesetzt. Hat jemand einen kleinen Tip für mich?
Gruß Rolf
temperature_kor:.* {
Achte auf das Leerzeichen zwischen Sternchen und Klammer
temperature_kor:.* { minNum(ReadingsNum("HM_Sensor","temperature",0),ReadingsNum("HM_Sensor_Ausen_2","temperature",0)) }
minNum() ist eine Funktion aus der 99_Utils.pm
Hallo,
Klasse jetzt Funktioniert es.Danke.
Ich habe 2 Sensoren einer vor und einer hinter dem Haus. Der eine wird Früh von der Sonne beschienen der andere Nachmittags. Auf die Art hoffe ich jetzt etwas genauere Temp.Werte zu bekommen.
Gruß Rolf
Guten Morgen,
Und wie hast es gelöst? Mit minNum?
Hallo,
ja mit minNum, ich werde das jetzt noch eine weile beobachten aber ich denke schon das es jetzt so funktioniert wie ich es gerne möchte. Ich überlege jetzt auch ob man mit den 2 Sensoren so eine Art Differenz Temperatursensor Simulieren kann.
Gruß Rolf
Kann man sicherlich machen. Ich mache es ähnlich mit meinen Helligkeitssensoren.