FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: DD am 02 Oktober 2016, 19:50:36

Titel: Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: DD am 02 Oktober 2016, 19:50:36
Hallo,

ich möchte gerne zwei Bewegungsmelder nutzen, eine Zeitfunktion immer wieder neu zu starten / zurück zu setzen.
Mit dem ersten "Start" durch einen Bewegungsmelder soll eine Aktion, z.B. ein Licht an, gestratet werden.
Einfacher gesagt, ein Licht soll 5min an sein. Immer dann wenn sich etwas bewegt soll die Zeit von neuem beginnen.

Ich habe keine Idee wie so ein, vermutlich sehr einfaches Programm aussieht.

Kann mir jemand helfen?
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: Ellert am 02 Oktober 2016, 19:53:24
Schau Dir mal DOIF (http://fhem.de/commandref_DE.html#DOIF) an, in der Befehlsreferenz gibt es bestimmt ein Beispiel.

Etwa so:

([BM:"motion"]) (set lamp on) (set lamp off)

und die Attribute

wait 0,600
do resetwait


Hier noch ein paar Tips: DOIF: Tips leichtere Bedienung Syntaxhervorhebung Klammerprüfung Suchen&Ersetzen (https://forum.fhem.de/index.php/topic,45373.0.html)
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: KölnSolar am 02 Oktober 2016, 20:07:31
define lichtnachbewegung notify bewegungsmeldereinregexp set licht on-for-timer 300
wäre aus meiner Sicht das Einfachste.
Grüße Markus
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: Damian am 02 Oktober 2016, 22:04:13
Zitat von: KölnSolar am 02 Oktober 2016, 20:07:31
define lichtnachbewegung notify bewegungsmeldereinregexp set licht on-for-timer 300
wäre aus meiner Sicht das Einfachste.
Grüße Markus

Hat aber den Nachteil, dass bei jeder Bewegung ein set-Befehl abgesetzt wird.
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: DD am 02 Oktober 2016, 22:23:32
danke für eure Unterstützung!
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: CoolTux am 02 Oktober 2016, 22:23:42

define lichtnachbewegung notify bewegungsmeldereinregexp set licht:FILTER=state=off on-for-timer 300
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: Damian am 03 Oktober 2016, 08:35:49
Zitat von: CoolTux am 02 Oktober 2016, 22:23:42

define lichtnachbewegung notify bewegungsmeldereinregexp set licht:FILTER=state=off on-for-timer 300


Diese Lösung hat wiederum den Nachteil, dass die Lampe erst ausgehen muss, bevor die Ausschaltzeit bei Bewegung verlängert wird.

Beide genannten Probleme gibt es beim Vorschlag von Ellert nicht. Hier wird nicht unnötig geschaltet und jede Bewegung verlängert die Ausschaltzeit.

Gruß

Damian
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: CoolTux am 03 Oktober 2016, 09:35:17
Stimmt hast Recht. Die beste Lösung ist in der Tat die von Ellert.
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: justme1968 am 03 Oktober 2016, 09:42:36
wenn man DOIF mag :).

sonst ist es auch mit einem einfachen cancel mySleep quiet; set licht:FILTER=state=off on; sleep 300 mySleep; set licht offim notify getan.

gruss
  andre
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: CoolTux am 03 Oktober 2016, 09:58:59
Kannst das kurz erläutern bitte.

Beende den sleep mySleep wenn quiet? Was heißt hier quiet?
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: justme1968 am 03 Oktober 2016, 10:00:02
keine meldung wenn es den sleep nicht gibt.
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: CoolTux am 03 Oktober 2016, 10:02:22
Alles klar, jetzt verstehe ich auch den Zusammenhang. Danke Dir.
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: KölnSolar am 03 Oktober 2016, 10:06:17
ZitatHat aber den Nachteil, dass bei jeder Bewegung ein set-Befehl abgesetzt wird.
und was ist dabei genau der Nachteil oder gar ein "Problem" ?
Ich finde  DOIF gut, aber gerade für newbies viel zu komplex und schlecht "lesbar"
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: justme1968 am 03 Oktober 2016, 10:11:54
der nachteil ist das die funklast steigt. die sollte so weit es geht minimiert werden. ob das ein problem ist hängt davon ab wie viele geräte du hast.

die sleep variante oben sendet auch nur ein mal. ohne DOIF.
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: Damian am 03 Oktober 2016, 10:14:10
Zitat von: KölnSolar am 03 Oktober 2016, 10:06:17
und was ist dabei genau der Nachteil oder gar ein "Problem" ?
Ich finde  DOIF gut, aber gerade für newbies viel zu komplex und schlecht "lesbar"

Deine credits, wenn es dir was sagt. Die solltest du bei der vorgeschriebenen 1%-Regel immer im Auge behalten. ;)

Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: KölnSolar am 03 Oktober 2016, 10:45:04
Danke.
doch sagt mir was  ;) Hab aber nie Probleme damit gehabt. oder liegt das vielleicht daran, dass die 1% nur für 868 MHz gelten oder der von mir genutzte RFXTRX die Regel nicht berücksichtigt ?(sorry, leicht off-topic, aber wenn man mal so viele Experten beisammen hat  ;) )
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: CoolTux am 03 Oktober 2016, 10:54:50
Diese Regel gibt es wohl nur im 868er Bereich soweit mir bekannt
Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: Damian am 03 Oktober 2016, 10:59:02
Zitat von: KölnSolar am 03 Oktober 2016, 10:45:04
Danke.
doch sagt mir was  ;) Hab aber nie Probleme damit gehabt. oder liegt das vielleicht daran, dass die 1% nur für 868 MHz gelten oder der von mir genutzte RFXTRX die Regel nicht berücksichtigt ?(sorry, leicht off-topic, aber wenn man mal so viele Experten beisammen hat  ;) )

Wird wohl so sein. Dennoch sollte man sich immer Gedanken über die "Funklast" machen, denn es ist ja immer wieder ärgerlich, wenn ein Signal aufgrund von Kollisionen nicht durchkommt und je mehr ein FHEM-System wächst, desto höher ist die Wahrscheinlichkeit, dass es passiert.

Gruß

Damian

Titel: Antw:Kleines Programm mit Zeitfunktion hinterlegen
Beitrag von: CoolTux am 03 Oktober 2016, 11:51:00
Gerade bei 443er kann es schnell blockierend sein, siehe viele Beiträge wo die Fernbedienung dauergedrückt war.