[gelöst] DOIF - Problem mit der "und" Verknüpfung

Begonnen von schwabenuwe2103, 24 Februar 2017, 10:30:48

Vorheriges Thema - Nächstes Thema

schwabenuwe2103

Hallo liebes Forum,
ich habe ein Problem mit den "und" Verknüpfungen in einem DOIF. Ziel ist es, dass die Lichter im Haus ausgehen, wenn folgende Bedingungen erfüllt sind:

1) im Zeitraum 7.00 - 09.00 Uhr
und
2) Helligkeit > 1000 Lux
und
3) Lichtautomatik ist eingeschalten

Dazu habe ich folgenden DOIF angelegt:

([07:00-09:00|0123456] and [Helligkeit.Aussen] gt "1000.0 Lux" and [Lichtautomatik] eq "ja") (set Beleuchtung off)


Resultat: Die Lichter gehen aus, sobald die erste Bedingung erfüllt ist - also Punkt 7.00 Uhr. Die weiteren Bedingungen werden offensichtlich nicht mehr geprüft.

Ich habe schon mit den Klammern experimentiert, aber irgendwie will es nicht klappen. Hat jemand eine Idee?

Grüße, Uwe

CoolTux

Setze Dein Code bitte mal in Code Tags. Desweiteren könnte ich mir vorstellen das es sicherlich ein Eintrag im Logfile gibt.
Sollte sich da nichts finden kannst Du die DOIF Tools mal installieren.
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

Devender

Ich vermute mal, dir ist eher wichtiger wenn die 1000 lux erreicht sind.

So könntest du das DOIF bauen:

([?07:00-09:00|0123456] and [Helligkeit.Aussen] gt "1000.0 Lux" and [?Lichtautomatik] eq "ja") (set Beleuchtung off)


Durch. Die ? wird beim Eintreten von 07-09 Uhr sowie Änderung der Lichtautomatik das Doif nicht getriggert.
Schaltet aber trotzdem erst wenn alle drei Bedingungen erfüllt sind. Sprich getriggert wird beim ersten eintreten von mehr als 1000Lux
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

Damian

Zitat von: schwabenuwe2103 am 24 Februar 2017, 10:30:48
Hallo liebes Forum,
ich habe ein Problem mit den "und" Verknüpfungen in einem DOIF. Ziel ist es, dass die Lichter im Haus ausgehen, wenn folgende Bedingungen erfüllt sind:

1) im Zeitraum 7.00 - 09.00 Uhr
und
2) Helligkeit > 1000 Lux
und
3) Lichtautomatik ist eingeschalten

Dazu habe ich folgenden DOIF angelegt:

([07:00-09:00|0123456] and [Helligkeit.Aussen] gt "1000.0 Lux" and [Lichtautomatik] eq "ja") (set Beleuchtung off)


Resultat: Die Lichter gehen aus, sobald die erste Bedingung erfüllt ist - also Punkt 7.00 Uhr. Die weiteren Bedingungen werden offensichtlich nicht mehr geprüft.

Ich habe schon mit den Klammern experimentiert, aber irgendwie will es nicht klappen. Hat jemand eine Idee?

Grüße, Uwe

Die werden mit Sicherheit überprüft, allerdings vergleichst du hier Zeichenketten und da gilt die lexikografische Reihenfolge wie im Telefonbuch. Damit ist z. B. 900 Lux größer als 1000 Lux.  Ich würde dir empfehlen nur Zahlen zu vergleichen, hier dann so:

([?07:00-09:00|0123456] and [Helligkeit.Aussen:state:d] > 1000 and [?Lichtautomatik] eq "ja") (set Beleuchtung off)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

pc1246

Zitat von: Damian am 24 Februar 2017, 11:47:34

([?07:00-09:00|0123456] and [Helligkeit.Aussen:state:d] > 1000 and [?Lichtautomatik] eq "ja") (set Beleuchtung off)

([?07:00-09:00] and [Helligkeit.Aussen:state:d] > 1000 and [?Lichtautomatik] eq "ja") (set Beleuchtung off)

Ist aber gleichwertig, oder?

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

Damian

Zitat von: pc1246 am 24 Februar 2017, 12:10:10
([?07:00-09:00] and [Helligkeit.Aussen:state:d] > 1000 and [?Lichtautomatik] eq "ja") (set Beleuchtung off)

Ist aber gleichwertig, oder?

Gruss Christoph

Es sind ja alle Tage der Woche, also ist es das Gleiche.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

schwabenuwe2103

Prima. Habt vielen Dank für Eure schnelle Hilfe und die konkreten Korrekturen. Habe mein DOIF nun entsprechend angepaßt. Läuft :-).