[gelöst] Userreading if mit und/oder Verknüpfung

Begonnen von mthome, 12 Juli 2017, 07:33:18

Vorheriges Thema - Nächstes Thema

mthome

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!!!

CoolTux


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

mthome

Vielen Dank!!! Manchmal ist die Lösung doch so nah (wobei ich nicht verstehe, warum es mit gt nicht geht - aber egal funktioniert)  :D

CoolTux

Zahlen und Stringvergleich ist etwas knifflig
So ist zum Beispiel 9 größer 69 weil ja 9 größer 6 ist.
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

rvideobaer

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
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

CoolTux

#5
temperature_kor:.* {

Achte auf das Leerzeichen zwischen Sternchen und Klammer
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

CoolTux


temperature_kor:.* { minNum(ReadingsNum("HM_Sensor","temperature",0),ReadingsNum("HM_Sensor_Ausen_2","temperature",0)) }


minNum() ist eine Funktion aus der 99_Utils.pm
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

rvideobaer

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
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

CoolTux

Guten Morgen,

Und wie hast es gelöst? Mit minNum?
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

rvideobaer

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
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

CoolTux

Kann man sicherlich machen. Ich mache es ähnlich mit meinen Helligkeitssensoren.
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