Hauptmenü

DOIF Ausschaltverzögerung

Begonnen von MarkBinary, 05 Mai 2019, 08:48:25

Vorheriges Thema - Nächstes Thema

MarkBinary

Hallo zusammen.

Ich habe mir ein DOIF für meine Terrassenbeleuchtung angelegt.

Das DOIF hat 3 Vorwahlen: "HAND", "AUS", "AUTO"
Das umschalten der jeweiligen Vorwahlen funktioniert schon ganz gut.

In meinem Fall werden die Betriebsarten "AUS" und "AUTO" über ein notify eines 433Mhz Senders gewechselt und klappt soweit.
Die Betriebsart "HAND" nur per GUI im Ausnahmefall.

Die Kernaufgabe der Betriebsart "AUTO" soll sein, in Abhängigkeit von Twilight meine Terrassenbeleuchtung beim öffnen der Terrassentür einzuschalten und 10min nach schließen dieser, das Licht auszuschalten. Dabei soll ein kurzzeitiges schließen der Tür die Abschaltverzögerung NEU starten.

Leider musste ich morgens immer wieder feststellen, das die Beleuchtung die ganze zeit munter weiter leuchtet.

Wer kann sich meine definition mal ansehen, oder hat tipps, den fehler einzukreisen.
Ich habe mir mittels DOIFTools ein FileLog erstellen lassen, welches ich jedoch nicht wirklich verstehe. :-\
Diese habe ich angehangen.

Besten Dank im voraus,
Markus

433MHz Notify

defmod Terrasse_2_H0A_notify notify IT_F0FF00000F.* {\
if ($EVENT eq "on") {fhem("set Bodenlicht_doif Schalter AUTO")}\
elsif ($EVENT eq "off") {fhem("set Bodenlicht_doif Schalter AUS")}\
}
attr Terrasse_2_H0A_notify room Garten->Doif


Türkontakt

defmod TK_Terrasse HMCCUDEV NEQ00xxxxx
attr TK_Terrasse IODev DIN_W93_ccu2
attr TK_Terrasse devStateIcon 0:fts_door 1:fts_door_open@red
attr TK_Terrasse event-on-change-reading .*
attr TK_Terrasse eventMap false:0 true:1
attr TK_Terrasse icon scene_terrace
attr TK_Terrasse room Homematic


Twilight

defmod Tlight Twilight xx.xx2493 y.yy81888 3 zzzzzz
attr Tlight event-min-interval .*:30
attr Tlight group Wetter
attr Tlight room Garten->Doif
attr Tlight stateFormat twilight %


DOIF

defmod Bodenlicht_doif DOIF ([$SELF:"Schalter: HAND"])\
(set Bodenlicht_2_S7 1)\
\
DOELSEIF(([$SELF:Schalter] eq "AUTO") and ([TK_Terrasse:state] eq "1") and ([Tlight:twilight] <45 ))\
(set Bodenlicht_2_S7 1)\
\
DOELSEIF(([$SELF:Schalter] eq "AUTO") and ([TK_Terrasse:state] eq "0"))\
(set Bodenlicht_2_S7 0)\
\
DOELSE\
(set Bodenlicht_2_S7 0)
attr Bodenlicht_doif checkall all
attr Bodenlicht_doif devStateIcon AUS:rc_0 HAND:time_manual_mode@yellow AUTO:rc_REPEAT@green
attr Bodenlicht_doif do resetwait
attr Bodenlicht_doif initialize AUTO
attr Bodenlicht_doif readingList Schalter
attr Bodenlicht_doif room Garten->Doif
attr Bodenlicht_doif selftrigger all
attr Bodenlicht_doif setList Schalter:uzsuSelectRadio,HAND,AUS,AUTO
attr Bodenlicht_doif startup set $SELF checkall
attr Bodenlicht_doif stateFormat Schalter
attr Bodenlicht_doif wait 0:0:600:0
attr Bodenlicht_doif webCmd Schalter


Anforderung Beleuchtung

defmod Bodenlicht_2_S7 S7_DWrite db 1 0.0
attr Bodenlicht_2_S7 IODev PCS_7
attr Bodenlicht_2_S7 event-on-change-reading state
attr Bodenlicht_2_S7 eventMap on:1 off:0
attr Bodenlicht_2_S7 room 001_Testplatz,Garten->Doif



Per

Muss es nicht setreading heissen?
defmod Terrasse_2_H0A_notify notify IT_F0FF00000F.* {\
if ($EVENT eq "on") {fhem("setreading Bodenlicht_doif Schalter AUTO")}\
elsif ($EVENT eq "off") {fhem("setreading Bodenlicht_doif Schalter AUS")}\
}


Und warum ist das kein DOIF bzw. sogar im anderen DOIF integriert?

MarkBinary

Hallo Per.

Mit dem notify reagiere ich nur auf den über die 433MHz dekorierten Signale. Und auch auf den exakten Zustand.
Das notify stellt auch richtig die Betriebswahl des eigentlichen DOIF.
Klappt wirklich, auch wenn es vielleicht etwas komisch aussieht.

Mein Problem mit der Beleuchtung sehe ich auch eher mit den Attributen des wait timers

Per

Dann wirst du wohl mal zwei Lists machen müssen, eins innerhalb der 10 min und eins danach.


Ich würde es aber verstehen, wenn das Licht vorab ausgeschaltet wird (DOELSE!).