FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Christian72D am 07 April 2015, 04:09:28

Titel: Tür nach einer bestimmten Zeit verschließen
Beitrag von: Christian72D am 07 April 2015, 04:09:28
Ich habe bei mir im Flur einen Taster der Licht, Steckdosen und die Heizung ausschaltet.
Jetzt plane ich mit dem Keymatic die Tür zu verriegeln wenn ich die Wohnung verlasse.

Kann ich das so schalten daß die Tür 2 Minuten nach drücken des Tasters verriegelt wird?
Titel: Antw:Tür nach einer bestimmten Zeit verschließen
Beitrag von: fhainz am 07 April 2015, 07:23:01
Ja.
Titel: Antw:Tür nach einer bestimmten Zeit verschließen
Beitrag von: Christian72D am 08 April 2015, 06:08:19
Und wie?
Titel: Antw:Tür nach einer bestimmten Zeit verschließen
Beitrag von: KernSani am 08 April 2015, 06:55:49
z.B. mit einem DOIF mit wait-Attribut
Titel: Antw:Tür nach einer bestimmten Zeit verschließen
Beitrag von: Zrrronggg! am 08 April 2015, 21:35:28
Wow, DOIF ist offenbar so beliebt, das NICHTS mehr ohne gemacht werden kann. Selbst so Butter und Brot-Sachen wie "at" gehen jetzt nur noch mit DOIF.

Im Ernst:


Zitatdefine tuerzu_spaeter notify MeinTaster:on at +00:02:00 set  Keymatic zu

Wobei "MeinTaster" der Schalter ist den du drücken willst und "set  Keymatic zu" durch das zu ersetzen ist, was deine  Keymatic tatsächlich an Kommandos braucht um zu verriegeln.



Titel: Antw:Tür nach einer bestimmten Zeit verschließen
Beitrag von: KernSani am 09 April 2015, 06:33:26

Zitat von: Zrrronggg! am 08 April 2015, 21:35:28
Selbst so Butter und Brot-Sachen wie "at" gehen jetzt nur noch mit DOIF.
Nein es gibt viele Möglichkeiten. DOIF Ist ein Beispiel, notify/at ein anderes. Ich persönlich verwende i.d.R. nur noch DOIF, da auch einfache Schaltungen dazu tendieren komplexer zu werden und da arbeite ich lieber mit DOIF. Das soll aber jeder für sich entscheiden.
Titel: Antw:Tür nach einer bestimmten Zeit verschließen
Beitrag von: Damian am 11 April 2015, 09:03:45
Zitat von: KernSani am 09 April 2015, 06:33:26
Nein es gibt viele Möglichkeiten. DOIF Ist ein Beispiel, notify/at ein anderes. Ich persönlich verwende i.d.R. nur noch DOIF, da auch einfache Schaltungen dazu tendieren komplexer zu werden und da arbeite ich lieber mit DOIF. Das soll aber jeder für sich entscheiden.

Abgesehen davon ist:

define tuerzu_spaeter notify MeinTaster:on at +00:02:00 set  Keymatic zu

kein gutes Beispiel, denn bereits ein mehrfacher Tastendruck innerhalb von 2 Minuten führt jeweils zu einer Fehlermeldung, weil at bereits definiert ist. Wollte man es mit notify und at sauber lösen, dann müsste man mit if abfragen, ob at schon bereits definiert ist oder nicht und nur im zweiten Fall at definieren. Das wird bereits den Code umfangreicher machen und man muss wegen if auf Perlebene runter.

define tuerzu_spaeter DOIF ([MeinTaster:?on]) (set Keymatic zu)
attr tuerzu_spaeter wait 120
attr tuerzu_spaeter do always


Hiermit wird man das Problem nicht haben, egal wie oft man den Taster betätigt ;)

Gruß

Damian
Titel: Antw:Tür nach einer bestimmten Zeit verschließen
Beitrag von: Zrrronggg! am 11 April 2015, 16:15:47
Zitat
ZitatSelbst so Butter und Brot-Sachen wie "at" gehen jetzt nur noch mit DOIF.
Nein es gibt viele Möglichkeiten. DOIF Ist ein Beispiel, notify/at ein anderes. Ich persönlich verwende i.d.R. nur noch DOIF, da auch einfache Schaltungen dazu tendieren komplexer zu werden und da arbeite ich lieber mit DOIF. Das soll aber jeder für sich entscheiden.

Selbstverständlich gibt es viele Möglichkeiten. Das war ironisch gemaint. Ich kann sicher aus dem Stand auch noch 5-7 aufzählen. Manche davon sind ganz einfach, andern erfordern zunehmend bessere Kenntnisse komplexer Lösungsansätze.
Man kann sich auch die Hose mit einer Kneifzange zumachen.
Wer weiss, wie man Hosen sonst zumacht, kann diese Möglichkeit richtig einordnen. Wer es nicht weiss, wird eventuell annehmen, das die Kneifzange die beste Möglichkeit oder Best Praktice ist.

Mit anderen Worten: Ich würde einem Anfänger erst mal die einfachste Möglichkeit an die Hand geben.
die wäre vermutlich sogar:

define tuerzu_spaeter notify MeinTaster:on sleep 120 ;; set  Keymatic zu

Zitatkein gutes Beispiel, denn bereits ein mehrfacher Tastendruck innerhalb von 2 Minuten führt jeweils zu einer Fehlermeldung,
Ja, nur sieht man die normal nicht und sie hat keine Folgen. Diese Fehlermeldung als solche vernachlässigbar.
Die Fehlermeldung würde ausserdem nur kommen, wenn meine Beispiel funktionieren würde. Tut's aber nicht wegen eines Fehlers.  ;D

ZitatWollte man es mit notify und at sauber lösen, dann müsste man mit if abfragen, ob at schon bereits definiert ist oder nicht und nur im zweiten Fall at definieren.

Das kann man machen, muss man aber eher nicht, denn es bringt funktional keine Vorteile. Es hat nur den KOSMETISCHEN Vorteil, dass im Log eine Fehlermeldung nicht auftaucht, die KEINERLEI Folgen hat. Wenn man bedenkt wie oft man im Normalbetreib ins Log sieht hat es noch mal weniger Relevanz.

Aber okay, wenn man schon DOIF vorschlägt, warum dann nicht eben die 3 Beispielzeilen hinschreiben?
Ich finde auch diese aktuelle Mode auf Anfängerfragen wie " kann xy machen" mit "Ja" zu antworten überschaubar lustig.
Ja, zugegeben, die Fragenden sind oft faul und ungenau.

Ich versuche meistens (nicht immer) ihnen trotzdem zu helfen.
Titel: Antw:Tür nach einer bestimmten Zeit verschließen
Beitrag von: Damian am 11 April 2015, 19:18:11
Zitat von: Zrrronggg! am 11 April 2015, 16:15:47
define tuerzu_spaeter notify MeinTaster:on sleep 120 ;; set  Keymatic zu

Aber okay, wenn man schon DOIF vorschlägt, warum dann nicht eben die 3 Beispielzeilen hinschreiben?
Ich finde auch diese aktuelle Mode auf Anfängerfragen wie " kann xy machen" mit "Ja" zu antworten überschaubar lustig.
Ja, zugegeben, die Fragenden sind oft faul und ungenau.

Ich versuche meistens (nicht immer) ihnen trotzdem zu helfen.

ja, das sehe ich auch so, daher gebe ich auch immer konkrete Hinweise. Allerdings ist der Vorschlag:

define tuerzu_spaeter notify MeinTaster:on sleep 120 ;; set  Keymatic zu

auch nur suboptimal, denn hier wird so oft, wie der Taster betätigt wird (insb. innerhalb der 2 Minuten) der Befehl "set Keymatic zu" zeitverzögert ausgelöst. Ist zwar eine Kleinigkeit, dessen sollte sich insb. der Anfänger bewusst sein.


Gruß

Damian
Titel: Antw:Tür nach einer bestimmten Zeit verschließen
Beitrag von: Zrrronggg! am 13 April 2015, 00:44:18
Zitatdenn hier wird so oft, wie der Taster betätigt wird (insb. innerhalb der 2 Minuten) der Befehl "set Keymatic zu" zeitverzögert ausgelöst. Ist zwar eine Kleinigkeit, dessen sollte sich insb. der Anfänger bewusst sein.

Das ist zutreffend. Ist aber andererseits das, was der Threadownder erfragt hat. Nebenbedingungen hat er nicht gestellt.


Okay, zugegeben das haut jetzt fast in die selbe Kerbe wie:

"Kann man das und das machen?"
"ja"