Hauptmenü

DOIF Uhrzeit hinzufügen

Begonnen von TWART016, 26 September 2018, 18:06:25

Vorheriges Thema - Nächstes Thema

TWART016

Hallo,

ich habe folgendes DOIF das sehr gut funktioniert. Wenn der Mode schlafen oder alles_aus ist oder niemand zu Hause, wird die Lampe ausgeschalten. Jetzt möchte ich aber, dass dieses DOIF nicht zwischen 6 und 8 Uhr morgens gilt. Wie muss ich die Zeit einfügen?

([Wohnzimmer_Modi] eq "schlafen" or [alles_aus] eq "einfach_geniessen" or [Bewohner:residentsHome] == 0) (set Schlafzimmer_Schranklampe off) DOELSE (set Schlafzimmer_Schranklampe on)


Gruß
TWART016


Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Esjay

Hatte bis zu dem Punkt gescrollt. Hab noch nicht gescheckt, wann er die Position als url übernimmt  ::) :D :)

Ja ok, wenn ich es in der Übersicht anklicke  ;D

TWART016

Auch mit einem bestimmten Zeitraum funktioniert es nicht. Das DOIF wird jetzt gar nicht mehr geschalten.

(([Wohnzimmer_Modi] eq "schlafen" or [Wohnzimmer_Modi] eq "einfach_geniessen" or [Bewohner:residentsHome] == 0) and [08:00-04:00])

TWART016

So funktioniert es nun:
(([Wohnzimmer_Modi] eq "schlafen" or [Wohnzimmer_Modi] eq "einfach_geniessen" or [Bewohner:residentsHome] == 0) and [08:00-04:00]) (set Schlafzimmer_Schranklampe off;set Telegram msg Schranklampe aus) DOELSE (set Schlafzimmer_Schranklampe on;set Telegram msg Schranklampe ein)


Nur wird um 4 Uhr die Lampe eingeschalten. Wie muss ich den Code ändern?

Damian

Zitat von: TWART016 am 19 Oktober 2018, 17:11:24
So funktioniert es nun:
(([Wohnzimmer_Modi] eq "schlafen" or [Wohnzimmer_Modi] eq "einfach_geniessen" or [Bewohner:residentsHome] == 0) and [08:00-04:00]) (set Schlafzimmer_Schranklampe off;set Telegram msg Schranklampe aus) DOELSE (set Schlafzimmer_Schranklampe on;set Telegram msg Schranklampe ein)


Nur wird um 4 Uhr die Lampe eingeschalten. Wie muss ich den Code ändern?

Dann musst du den Trigger aus dem Zeitintervall rausnehmen:

.... [?08:00-04:00]
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

TWART016

Kann man auch in das DOELSE eine Bedingung machen? Ich möchte, dass zwischen 8 und 4 das Licht nicht eingeschalten wird.

Per

Nein. DOELSE = Tue sonst, wenn keine andere Bedingung zutrifft.

Aber extra für dich wurde DOELSEIF (Bedingung) erfunden ;)

TWART016

Wenn ich jetzt DOELSEIF verwende, werden dann die ersten 3 Bedingungen auch noch abgefragt?

In das DOELSEIF alle 3 Bedingungen + die Zeit reinschreiben würde ich gerne vermeiden. Das wäre doppelter Code.

Per

Wird es zwar, aber nicht verschachtelt (weil DOIF ist ein DEVICE), das geht nur mit IF (ist ein Hilfskonstrukt).
Aber du kannst DOIF_readings nehmen, dann hast du die "komplexe" Abfrage nur einmal und kannst dich in jeden Zweig darauf beziehen.

Ist aber in jeder Programmiersprache so.

Damian

Zitat von: TWART016 am 08 November 2018, 16:29:21
Wenn ich jetzt DOELSEIF verwende, werden dann die ersten 3 Bedingungen auch noch abgefragt?

In das DOELSEIF alle 3 Bedingungen + die Zeit reinschreiben würde ich gerne vermeiden. Das wäre doppelter Code.

Wenn du den Perlmodus wählst, kannst du if-Befehle beliebig schachteln.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF