Hauptmenü

Zeitsteuerung und DOIF

Begonnen von mikel279, 30 September 2014, 10:18:28

Vorheriges Thema - Nächstes Thema

mikel279

Hallo zusammen,

ich würde gerne DOIF für meine Anforderung nutzen, habe aber hierzu eine Anfängerfrage.

Folgende Anforderung: Ich möchte mit meinem Fernseher eine Lampe einschalten. Diese möchte ich natürlich erst nach dem Sonnenuntergang einschalten und das automatisch auch wenn ich den Fernseher vor dem Sonnenuntergang eingeschaltet habe. Wenn ich den Fernseher nach dem Sonnenuntergang einschalte, soll natürlich die Lampe sofort einschalten. Also hierzu mein erster Ansatz - leider ohne Erfolg.

define FSLampeOn DOIF (([twil:ss_indoor] < [{FmtTime(time())}]) and [Fernsehen] eq "on") \
                      set ogwz_DimmerStL 50 \
                 DOELSE \
                      deleteattr ogwz_DimmerStLAuto disable)

twil verwendet das Twilight-Modul und die Lampe wird über ein

define ogwz_DimmerStLAuto at *{sunset("REAL",0,"16:00","23:00")} set ogwz_DimmerStL 50

welches disabled ist und von der DOIF enabled wird (weil die Lampe nicht schalten soll, wenn ich nicht zuhause bin  ;)), geschaltet (will ich dann natürlich auch noch auf Twilight umstellen).

Vielen Dank für Euer Feedback!

Michael

Damian

Zitat von: mikel279 am 30 September 2014, 10:18:28
Hallo zusammen,

ich würde gerne DOIF für meine Anforderung nutzen, habe aber hierzu eine Anfängerfrage.

Folgende Anforderung: Ich möchte mit meinem Fernseher eine Lampe einschalten. Diese möchte ich natürlich erst nach dem Sonnenuntergang einschalten und das automatisch auch wenn ich den Fernseher vor dem Sonnenuntergang eingeschaltet habe. Wenn ich den Fernseher nach dem Sonnenuntergang einschalte, soll natürlich die Lampe sofort einschalten. Also hierzu mein erster Ansatz - leider ohne Erfolg.

define FSLampeOn DOIF (([twil:ss_indoor] < [{FmtTime(time())}]) and [Fernsehen] eq "on") \
                      set ogwz_DimmerStL 50 \
                 DOELSE \
                      deleteattr ogwz_DimmerStLAuto disable)

twil verwendet das Twilight-Modul und die Lampe wird über ein

define ogwz_DimmerStLAuto at *{sunset("REAL",0,"16:00","23:00")} set ogwz_DimmerStL 50

welches disabled ist und von der DOIF enabled wird (weil die Lampe nicht schalten soll, wenn ich nicht zuhause bin  ;)), geschaltet (will ich dann natürlich auch noch auf Twilight umstellen).

Vielen Dank für Euer Feedback!

Michael

Das Problem ist, dass ss_indoor um Mitternacht gesetzt wird und somit keinen Trigger zum jeweiligen Zeitpunkt erzeugt.
Du könntest aber mit Zeitintervallen arbeiten. Deine Anwesenheit könntest du auch gleich abfragen. Den Befehl zum Ausschalten habe ich auch gleich eingebaut, den kannst du natürlich auch weglassen, dann aber bitte mit do always als Attribut arbeiten. Den at-Befehl brauchst du auch nicht mehr.

define FSLampeOn DOIF ([{ReadingsVal('twil','ss_indoor','')}-02:00] and [Fernsehen] eq "on" and [anwesend] eq "on")
  (set ogwz_DimmerStL 50)
DOELSE
  (set ogwz_DimmerStL 0)


Gruß

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

mikel279

vielen Dank für Dein super schnelles Feedback - werde heute Abend testen und berichten  :)

mikel279

habe getestet und läuft :D

Allerdings habe ich auch gelesen, dass kein \ zum Zeilenumbruch benötigt wird - wie auch von Dir angeben. Dies führt jedoch bei mir zu einer Fehlermeldung das die umgebrochenen Zeilen nicht erkannt werden. Wenn ich den \ einfüge läuft es jedoch einwandfrei.

Vielen Dank noch mal

Michael

Puschel74

Hallo,

du sollst auch die Finger von der fhem.cfg lassen  ;)
Mach alles über das Frontend und du brauchst dich um \ oder ; oder ;; nicht zu kümmern.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Damian

Zitat von: mikel279 am 30 September 2014, 20:36:57
habe getestet und läuft :D

Allerdings habe ich auch gelesen, dass kein \ zum Zeilenumbruch benötigt wird - wie auch von Dir angeben. Dies führt jedoch bei mir zu einer Fehlermeldung das die umgebrochenen Zeilen nicht erkannt werden. Wenn ich den \ einfüge läuft es jedoch einwandfrei.

Vielen Dank noch mal

Michael

Du fummelst wohl nicht in der cfg-Datei.  ;)

Formatierungsanpassungen am besten immer über WEB-Oberfläche vornehmen. Einfach auf DEF-Button klicken und anpassen. Dann brauchst du nicht um Interna wie \ kümmern.

Gruß

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

mikel279

okay, habe verstanden - Asche über mein Haupt - halt Anfänger  :D

Damian

Da fällt mir noch ein. Falls du die Lösung mit Ausschalten der Lampe hast, dann kannst du z. B.

attr  FSLampeOn wait 0:60

definieren.

Damit kommst du nach dem Ausschalten deines Fernsehers noch in der Helligkeit aus dem Zimmer, und musst nicht in der Dunkelheit nach der Klinke suchen. ;)

Gruß

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

mikel279

hatte ich schon verstanden, habe ja doch vorher schon Deine Doku gelesen - hat auch prima funktioniert  ;)

Trotzdem danke für den Tipp

Michael