FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: no_Legend am 04 Januar 2015, 18:03:29

Titel: Timer für HM-Sec-Key
Beitrag von: no_Legend am 04 Januar 2015, 18:03:29
Hi,

ich hab einen HM-Sec-Key in Betrieb.
Dazu habe ich einen HM-Sec-SC-2 an der Tür.

Nun würde ich gerne einen Timer einrichten.
Dieser Timer soll wenn der Türkontakt geschlossen zum Beispiel 30min laufen.
Ist der Timer aufgelaufen soll der HM-Sec-Key abschließen.
Wird die Tür während  der Timer lauf geöffnet soll der Timer stoppen.
Wir die Tür erneut geschlossen, soll der Timer wieder auf 30min gesetzten werden und herunter zählen.

Dazu würde ich gerne den Timer auch später in einen Floorplan oder im Dashboard angezeigt bekommen.

Habt Ihr eine Idee dazu?
Kann hier mit einem Dummy arbeiten?

Danke und Gruß Robert
Titel: Antw:Timer für HM-Sec-Key
Beitrag von: Rampler am 05 Januar 2015, 12:58:14
Ich habe das etwas anders gelöst, denke damit kannst du aber auch leben:

define WF.keymatic.lock at *22:00:00 { fhem("set WF.keymatic lock") if ( "%" ne "locked" && Value("WF.tuerkontakt") eq "closed") }

define WF.keymatic.autoclose notify WF.tuerkontakt.contact:.closed.* { if (FmtTime(time()) gt "22:00" or FmtTime(time()) lt sunrise_abs("REAL",0)) { fhem("set WF.keymatic lock") }}

gruß
Klaus
Titel: Antw:Timer für HM-Sec-Key
Beitrag von: Puschel74 am 05 Januar 2015, 13:47:22
Hallo,

zu:
define WF.keymatic.lock at *22:00:00 { fhem("set WF.keymatic lock") if ( "%" ne "locked" && Value("WF.tuerkontakt") eq "closed") }
fällt mir was auf.

"%" ne "locked"
wird mMn immer true ergeben da
a) in einem at % als Platzhalter für das Event nicht existiert und
b) die Zeichenkette "%" niemals equal "locked" sein wird da "%" nur equal "%" sein kann - wie gesagt existiert % nicht.
c) aber selbst wenn % existieren würde würde niemals "locked" drinnen stehen.

Bist du sicher das deine Tür nur verschlossen wird wenn sie nicht bereits verschlossen ist?

Keine Panik - deine Tür wird auf alle Fälle jeden Tag um 22 Uhr verschlossen solange zu diesem Zeitpunkt Value("WF.tuerkontakt") eq "closed") zutrifft.
Sie wird mMn aber auch verschlossen wenn sie vorher bereits abgeschlossen wurde.

Grüße
Titel: Timer für HM-Sec-Key
Beitrag von: no_Legend am 06 Januar 2015, 21:30:50
Danke für eure Vorschläge ich habe bereits ein Script im Einsatz welches die Tür schließt.
Nur arbeite ich hier mit einer Verzögerung von 30min was das senden des Befehls angeht.
Hier ist halt das Problem, dass die Verzögerung nicht von neu anfängt wenn die Tür erneut geschlossen worde.

Ich kann morgen mal das Script Posten, habe den Rechner heute umgestellt und noch nicht angeschlossen.

Edit: Man könnte es auch als CountDown bezeichnen.
Ist vielleicht besser als es Timer zu nenn.

Danke und Gruß Robert
Titel: Antw:Timer für HM-Sec-Key
Beitrag von: no_Legend am 11 Januar 2015, 20:57:29

define 1OG.Haustuer.SchlossAutoZu DOIF ([1OG.Haustuer.Kontakt] eq "closed" and [1OG.Haustuer.Schloss] eq "unlocked")\
   (\
set 1OG.Haustuer.Schloss lock,\
{fhem("set pushmsg msg '1OG.Haustuer.Schloss' 'LOCKED Automatik 30m' ''0''")}\
)\
\
DOELSEIF ([1OG.Haustuer.Kontakt] eq "closed" and [1OG.Haustuer.Schloss] eq "locked (uncertain)")\
   (\
set 1OG.Haustuer.Schloss lock,\
{fhem(set pushmsg msg '1OG.Haustuer.Schloss' 'Türstatus locked (uncertain)' ''0'')}\
)\
\
DOELSEIF ([1OG.Haustuer.Kontakt] eq "closed" and [1OG.Haustuer.Schloss] eq "unlocked (uncertain)")\
   (\
set 1OG.Haustuer.Schloss lock,\
{fhem("set pushmsg msg '1OG.Haustuer.Schloss' 'Türstatus unlocked (uncertain)' ''0''")}\
)\
\
DOELSEIF ([1OG.Haustuer.Kontakt] eq "closed" and [1OG.Haustuer.Schloss] eq "NACK")\
   (\
set 1OG.Haustuer.Schloss lock,\
{fhem("set pushmsg msg '1OG.Haustuer.Schloss' 'Türstatus NACK' ''0''")}\
)
attr 1OG.Haustuer.SchlossAutoZu do always
attr 1OG.Haustuer.SchlossAutoZu room 2.01_Flur
attr 1OG.Haustuer.SchlossAutoZu wait 1800:180:180:180


Hier das Script was ich benutze.
Ich arbeitet momentan mit einer Sende Verzögerung.
Diese würde ich gerne durch eine Timer im Script ersetzten.
Titel: Antw:Timer für HM-Sec-Key
Beitrag von: Damian am 11 Januar 2015, 21:40:27
Zitat von: no_Legend am 11 Januar 2015, 20:57:29

define 1OG.Haustuer.SchlossAutoZu DOIF ([1OG.Haustuer.Kontakt] eq "closed" and [1OG.Haustuer.Schloss] eq "unlocked")\
   (\
set 1OG.Haustuer.Schloss lock,\
{fhem("set pushmsg msg '1OG.Haustuer.Schloss' 'LOCKED Automatik 30m' ''0''")}\
)\
\
DOELSEIF ([1OG.Haustuer.Kontakt] eq "closed" and [1OG.Haustuer.Schloss] eq "locked (uncertain)")\
   (\
set 1OG.Haustuer.Schloss lock,\
{fhem(set pushmsg msg '1OG.Haustuer.Schloss' 'Türstatus locked (uncertain)' ''0'')}\
)\
\
DOELSEIF ([1OG.Haustuer.Kontakt] eq "closed" and [1OG.Haustuer.Schloss] eq "unlocked (uncertain)")\
   (\
set 1OG.Haustuer.Schloss lock,\
{fhem("set pushmsg msg '1OG.Haustuer.Schloss' 'Türstatus unlocked (uncertain)' ''0''")}\
)\
\
DOELSEIF ([1OG.Haustuer.Kontakt] eq "closed" and [1OG.Haustuer.Schloss] eq "NACK")\
   (\
set 1OG.Haustuer.Schloss lock,\
{fhem("set pushmsg msg '1OG.Haustuer.Schloss' 'Türstatus NACK' ''0''")}\
)
attr 1OG.Haustuer.SchlossAutoZu do always
attr 1OG.Haustuer.SchlossAutoZu room 2.01_Flur
attr 1OG.Haustuer.SchlossAutoZu wait 1800:180:180:180


Hier das Script was ich benutze.
Ich arbeitet momentan mit einer Sende Verzögerung.
Diese würde ich gerne durch eine Timer im Script ersetzten.

1. Warum setzt du die set-Befehle in {fhem("....")}? Bei DOIF bist du doch schon auf der FHEM-Ebene.

2. Einen Waittimer für eine Verzögerung von 30 Minuten kannst du mit dem Attribut do resetwait zurücksetzen lassen.

Gruß

Damian
Titel: Antw:Timer für HM-Sec-Key
Beitrag von: frank am 12 Januar 2015, 12:29:59
hallo robert,

dein scenario sollte eigentlich auch ohne fhem zu realisieren sein. also mit gepeertem fk. im fk das register eventDlyTime auf 30min einstellen, => 1800 sekunden. dann gibt es nur events, wenn sich der status open/closed 30 min nicht gändert hat. in der keymatic dann das verhalten der trigger einstellen.