DOIF mehrere Bedingungen wahr für Aktion

Begonnen von elmer, 29 Mai 2017, 17:44:54

Vorheriges Thema - Nächstes Thema

elmer

Ich würde gerne eine Markise runter lassen, aber nur wenn jemand zuhause ist und nur wenn der Wind unter 3 ist und es muss Markise Eins offen sein und es darf nicht Regnen.

Bisher habe ich folgendes was aber leider nicht funktioniert, und beim windSpeed bekomme ich im DOIF die Temperatur angezeigt >:(

define Schattenplus_auf DOIF ([16:00-20:00] and [tahoma_1026532] eq "open" and [wetter_eigheim:windSpeed] < 3 and [Alle_Bewohner] eq "present" and ([HM_34C809_Rain:"dry"]) ( set Markise closed ) DOELSE (set Markise open)

Ellert

Dir müsste ein Klammerfehler angezeigt werden.
Deine Bedingung wird nur in dem Moment wahr, wenn der Regensensor ein Ereignis mit "dry" sendet, warum nutzt Du dort die Eventabfrage?

amenomade

ZitatDir müsste ein Klammerfehler angezeigt werden
Ja klar, da fehlt eine Klammer.

ZitatDeine Bedingung wird nur in dem Moment wahr, wenn der Regensensor ein Ereignis mit "dry" sendet
Nein, jede [], die ein Ereignis sendet wird das DOIF triggern. Dann werden die andere bewertet.
Z.B. [wetter_eigheim:windSpeed] wird < 3
oder [tahoma_1026532] wechselt auf "open"
oder 15:59 wird 16:00

Man muss überlegen, ob man wirklich auf allen Ereignisse triggern wird. Wenn einige das DOIF nicht triggern sollten, dann [?condition] statt [condition]
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

elmer

#3
Ich habe schon zig mal umgeschrieben aber leider immer keine Reaktion, habe tatsächlich eine Version erwischt die mir einen Klammerfehler anzeigt. Das ist der aktuelle Stand.


DEF
([16:00-20:00] and [tahoma_1026532] eq "open" and [wetter_eigheim:windSpeed] < 3 and [Alle_Bewohner] eq "present" and [HM_34C809_Rain:"dry"]) ( set Markise closed ) DOELSE (set Markise open)


Es sollen auf jeden Fall alle Bedingungen erfüllt sein damit die Markise ausfährt, aber evtl. wenn sie ausgefahren ist und wir das Haus verlassen soll sie draußen bleiben, jedoch wenn der Wind Stärker ist oder es zu Regnen beginnt muss sie rein.

Unter Probably associated with steht wie oben schon geschrieben, wetter_eigheim   32,5   HTTPMOD

Das ist die aktuelle Temperatur und nicht der Windspeed, anscheinend habe ich mehr Fehler wie mir lieb ist.

Wenn ich bei allen Devices ein ? setzte und nur bei [tahoma_1026532] eq "open" nicht wird nur das Tahoma Device getriggert aber alle anderen Bedingungen müssen erfüllt sein damit die Markise raus fährt, verstehe ich das richtig?

Damian

Du musst bedenken, dass

[HM_34C809_Rain:"dry"]

nur zum Zeitpunkt des Triggers wahr ist und sonst nicht. Wenn du nicht nur den Trigger abfragen willst, sondern auch den Zustand, dann musst du das so angeben:

[HM_34C809_Rain] eq "dry"
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

amenomade

Zitatnur zum Zeitpunkt des Triggers wahr ist und sonst nicht.
Aaah ! Das meinte Ellert! Jetzt habe ich verstanden, was er meinte! Hatte natürlich recht, sorry.

ZitatWenn ich bei allen Devices ein ? setzte und nur bei [tahoma_1026532] eq "open" nicht wird nur das Tahoma Device getriggert aber alle anderen Bedingungen müssen erfüllt sein damit die Markise raus fährt, verstehe ich das richtig?
Ja, richtig, es wird dann nur von tahoma getriggert, und alle anderen müssen erfüllt sein (angenommen die Anmerkung von Damian / Ellert).
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ellert

Zitat von: elmer am 29 Mai 2017, 18:59:30
Ich habe schon zig mal umgeschrieben aber leider immer keine Reaktion, habe tatsächlich eine Version erwischt die mir einen Klammerfehler anzeigt. Das ist der aktuelle Stand.


DEF
([16:00-20:00] and [tahoma_1026532] eq "open" and [wetter_eigheim:windSpeed] < 3 and [Alle_Bewohner] eq "present" and [HM_34C809_Rain:"dry"]) ( set Markise closed ) DOELSE (set Markise open)


Es sollen auf jeden Fall alle Bedingungen erfüllt sein damit die Markise ausfährt, aber evtl. wenn sie ausgefahren ist und wir das Haus verlassen soll sie draußen bleiben, jedoch wenn der Wind Stärker ist oder es zu Regnen beginnt muss sie rein.

Unter Probably associated with steht wie oben schon geschrieben, wetter_eigheim   32,5   HTTPMOD

Das ist die aktuelle Temperatur und nicht der Windspeed, anscheinend habe ich mehr Fehler wie mir lieb ist.

Wenn ich bei allen Devices ein ? setzte und nur bei [tahoma_1026532] eq "open" nicht wird nur das Tahoma Device getriggert aber alle anderen Bedingungen müssen erfüllt sein damit die Markise raus fährt, verstehe ich das richtig?

ZitatUnter Probably associated with ...
wird das Internal STATE angezeigt, das hat mit dem Reading windSpeed nichts zutun.

ZitatWenn ich bei allen Devices ein ? setzte und nur bei [tahoma_1026532] eq "open" nicht wird nur das Tahoma Device getriggert aber alle anderen Bedingungen müssen erfüllt sein damit die Markise raus fährt, verstehe ich das richtig?
Ja.

elmer

([16:00-20:00] and [tahoma_1026532] eq "open" and [?wetter_eigheim:windSpeed] < 3 and [?Alle_Bewohner] eq "present" and [?HM_34C809_Rain] eq "dry") (set Markise auf)

So sieht das Ganze erst mal ganz gut aus, ausgefahren ist sie auf jeden Fall.

Ich verwenden für den windSpeed einen HTTPMOD, wie stabil läuft so etwas, kann man sich darauf verlassen oder muss man mit Aussetzern rechnen.

Ich habe einen Somfy io Windsensor der lässt sich aber nicht in Fhem einbinden, gibt es eine zuverlässige Alternative die mit Fhem geht?

amenomade

ZitatIch verwenden für den windSpeed einen HTTPMOD, wie stabil läuft so etwas, kann man sich darauf verlassen oder muss man mit Aussetzern rechnen.

Läuft so lange die Webseite erreichbar ist ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

elmer

Zu früh gefreut, wenn ich eine Zeitspanne von 16:00-20:00 angebe und um 16:00 alle Bedingungen wahr sind fährt die Markise raus. Wenn ich aber um 16:00 absent bin und erst um 16:01 present bleibt das DOIF auf cmd2 stehen und die Markise bleibt geschlossen.

([15:45-20:00] and [tahoma_1026532] eq "open" and [?wetter_eigheim:windSpeed] < 8 and [?Alle_Bewohner] eq "present" and [?HM_34C809_Rain] eq "dry") (set Markise auf) DOELSE (set Markise off)

CoolTux

Das Fragezeichen bei alle Bewohner raus nehmen.
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

elmer

#11
Mit 20 Minuten Verspätung ist sie nun doch raus, wieso das auf einmal?

Genau um 16:04:41 hat tahoma_1026532 RSSILevelState aktualisiert laut Readings, genau in diesem Moment ist die Markise raus, was hat das für einen Zusammenhang?

CoolTux

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

pc1246

Zitat von: elmer am 30 Mai 2017, 16:06:26
Mit 20 Minuten Verspätung ist sie nun doch raus, wieso das auf einmal?

Genau um 16:04:41 hat tahoma_1026532 RSSILevelState aktualisiert laut Readings, genau in diesem Moment ist die Markise raus, was hat das für einen Zusammenhang?

Ganz einfach!
Tahoma ist Dein trigger. Wenn also ein event eintrifft und alle Bedingungen erfuellt sind , dann wird das entsprechende cmd ausgefuehrt!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

Ellert

Zitat von: elmer am 30 Mai 2017, 16:06:26
Mit 20 Minuten Verspätung ist sie nun doch raus, wieso das auf einmal?

Genau um 16:04:41 hat tahoma_1026532 RSSILevelState aktualisiert laut Readings, genau in diesem Moment ist die Markise raus, was hat das für einen Zusammenhang?

Aus der Commandref:
ZitatDas Modul wird getriggert, sobald das angegebene Device hier "remotecontrol" ein Event erzeugt.