FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mthome am 12 Juli 2017, 07:33:18

Titel: [gelöst] Userreading if mit und/oder Verknüpfung
Beitrag von: mthome am 12 Juli 2017, 07:33:18
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!!!
Titel: Antw:Userreading if mit und/oder Verknüpfung
Beitrag von: CoolTux am 12 Juli 2017, 08:12:07

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.
Titel: Antw:Userreading if mit und/oder Verknüpfung
Beitrag von: mthome am 12 Juli 2017, 08:29:02
Vielen Dank!!! Manchmal ist die Lösung doch so nah (wobei ich nicht verstehe, warum es mit gt nicht geht - aber egal funktioniert)  :D
Titel: Antw:[gelöst] Userreading if mit und/oder Verknüpfung
Beitrag von: CoolTux am 12 Juli 2017, 08:58:48
Zahlen und Stringvergleich ist etwas knifflig
So ist zum Beispiel 9 größer 69 weil ja 9 größer 6 ist.
Titel: Antw:[gelöst] Userreading if mit und/oder Verknüpfung
Beitrag von: rvideobaer am 29 März 2018, 00:51:53
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
Titel: Antw:[gelöst] Userreading if mit und/oder Verknüpfung
Beitrag von: CoolTux am 29 März 2018, 01:25:37
temperature_kor:.* {

Achte auf das Leerzeichen zwischen Sternchen und Klammer
Titel: Antw:[gelöst] Userreading if mit und/oder Verknüpfung
Beitrag von: CoolTux am 29 März 2018, 01:40:21

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


minNum() ist eine Funktion aus der 99_Utils.pm
Titel: Antw:[gelöst] Userreading if mit und/oder Verknüpfung
Beitrag von: rvideobaer am 29 März 2018, 01:59:13
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
Titel: Antw:[gelöst] Userreading if mit und/oder Verknüpfung
Beitrag von: CoolTux am 29 März 2018, 07:35:47
Guten Morgen,

Und wie hast es gelöst? Mit minNum?
Titel: Antw:[gelöst] Userreading if mit und/oder Verknüpfung
Beitrag von: rvideobaer am 29 März 2018, 11:15:08
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
Titel: Antw:[gelöst] Userreading if mit und/oder Verknüpfung
Beitrag von: CoolTux am 29 März 2018, 11:30:39
Kann man sicherlich machen. Ich mache es ähnlich mit meinen Helligkeitssensoren.