FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: noice am 16 Februar 2014, 16:47:15

Titel: (gelöst) Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 16 Februar 2014, 16:47:15
und wieder ich ...
ich versuche gerade eine Abhängigkeit mit Presence Modul zu verhunzen ....
Mein grobes Problem:
ich habe LED beleuchtung im Wohnzimmer die Über Fhem eingeschalten werden. Nun möchte ich das wenn ich den Fernseher ausschalte im zeitraum von 20 - 3 uhr 20 minuten später der beleuchtung begeschalten wird. wenn der TV in diesem Zeitraum nicht läuft soll das licht um 23:00 uhr ausschalten....
ich steh aufm schlauch:

allgemein funktioniert mein code schon nur eben nicht in abhängigkeit zur zeit:
define watchdog_Anwesenheit watchdog WZ_SamsungTV:absent 00:20 WZ_SamsungTV:present set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off
attr watchdog_Anwesenheit regexp1WontReactivate 1


Kann mir da wer weiterhelfen?

Danke schon mal im voraus ..
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: Zrrronggg! am 16 Februar 2014, 17:13:29
ZitatNun möchte ich das wenn ich den Fernseher ausschalte im zeitraum von 20 - 3 uhr 20 minuten später der beleuchtung begeschalten wird. wenn der TV in diesem Zeitraum nicht läuft soll das licht um 23:00 uhr ausschalten....

Will gerne versuchen dir zu helfen, aber habe 2 Fragen:

1. Was genau meint "begeschalten"? Ich kenne "ausgeschaltet wird" oder "eingeschaltet wird".
2. Was hat das mit dem Presencemodul zu tun?
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 16 Februar 2014, 17:33:41
wow .. schnelle antwort :-)

meinte natürlich ausschalten ....
das Presencemodul checkt über die Fritzbox ob der Fernseher noch online ist.

danke schon mal
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 16 Februar 2014, 17:42:27
und warum dazu noch ein Watchdog? Du beziehst dich doch in dem fall auf present und absent - oder?
Verschwindet der Fernseher wenn er an ist schonmal - wie es bei Bluetooth devices der fall ist?
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 16 Februar 2014, 17:44:14
nein das nicht da er permanent über Wlan online ist ...
es kann aber sein das wir mal nicht fernsehen (eher selten der Fall) daher eben auch die zeitabhängigkeit...
die Beleuchtung wird über den sunset befehl eingeschalten
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 16 Februar 2014, 17:59:42
Ich würde das mit Damians IF Modul lösen -
dann würde dir doch ein


define wohnen_aus notify WZ_SamsungTV IF (([WZ_SamsungTV:state] eq "absent") and (IF ($hour ~~ [20..3])) (define aus at +00:20:00 set licht off) ELSE (define aus at 23:00:00 set Licht off)


ausreichen - ungetestet...

Kein Watchdog - dafür aber das IF Modul...
Hoffentlich findet sich jemand anderes der Dir noch den Weg über Perl erläutert - würde mich nämlich auch interessieren..

Infos zum IF Modul findest du unter Automatisierung.

sei Dir aber im klaren darüber das wenn du mal nach 3 Uhr den Fernseher ausschaltest das Licht anbliest..

EDIT: absent muss natürlich die Bedingung sein...
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 16 Februar 2014, 18:03:39
das hört sich schon mal gut an ...
ich probiere das heut abend mal ... danke schon mal
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: Zrrronggg! am 16 Februar 2014, 19:19:31
Dazu musst du das IF Modul auch installiert haben.

Ansonsten würde ich das auch nicht über einen Watchdog machen, sondern ebenfalls mit If, aber den Perl weg.

Wenn Bedarf besteht schreib ich das hier rein.
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 16 Februar 2014, 22:09:50
Hallo zrrronggg! Ich bin für alle vorschläge offen.

Gesendet von meinem HTC Vision mit Tapatalk

Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 16 Februar 2014, 22:19:59
Hat es mit dem IF Modul nicht funktioniert?
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: Zrrronggg! am 16 Februar 2014, 22:34:17
Hat er noch nicht probiert würde ich denken. Ihm ist nur nicht klar, das wir über sowas auch nachdenken müssen, und wenns auch nur 2-3 Minuten sind und daher fragt er mal alles ab. Oder ihm ist es klar, dass wir auch etwas Arbeit damit haben, meint die 120 Sekunden sind ja kein Problem, vergiss abert, dass hier noch viel mehr Leute sind die solche Sachen Fragen und 100 x 2-3 Minuten auf einmal doch ne Menge ist.  ;)

Stüüümts?


Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 16 Februar 2014, 22:37:52
Ich habs ehrlich gesagt noch nicht probiert. Ich verlange aber auch von keinem das er mir das script schreibt... ich finde es allerdings gut wie einem hier geholfen wird. Auch das man zum denken angeregt wird wenn man mal nicht um vier Ecken denkt

Gesendet von meinem HTC Vision mit Tapatalk

Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: Zrrronggg! am 16 Februar 2014, 22:50:23
ich nagel dir was mit der althergebrachten Perlmethode zusammen, wenn du mit der-Lolos Vorschlag nicht weiterkommst. Die Perl Geschichte sähe sehr ähnlich aus. vermutlich würde ich aber 2 defines bauen:
eines das prüft ob es - wenn der Fernseher "verschwindet" prüft, ob die Uhrzeit stimmt und wenn ja  in 20 Minuten auschaltet.

... { if($hour < 2 || $hour >= 20) { fhem ("define Licht_in20_aus at +00:20:00 set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off") ) } }


Und ein zweites, das stumpf um 23:00 Uhr den Kram abschaltet, wenn das TV nicht "anwesend" ist.

Geht nur um die Details wir man prüft ob der TV da ist oder nicht, und da fehlen mir noch 2-3 Infos, da du die Anwesenheit offenbar über den Log in ins WLAN testest. Da hab ich keine Ahnung von. Ich halte das Presence-Modul prinzipbedingt für wenig zuverlässig und verwende es nicht.
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 16 Februar 2014, 22:56:26
Okey.. ich finde gerade für fest installierte geräte das presence modul über die fritzbox dochzuverlässig ... anders sieht es natürlich bei handys aus....
Aber dazu mehr morgen ... für heute ist der kopf erstmal zu nach 10 stunden fhem cfg wiederherstellen

Gesendet von meinem HTC Vision mit Tapatalk

Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: Zrrronggg! am 17 Februar 2014, 00:53:04
Zitatfür fest installierte geräte das presence modul über die fritzbox dochzuverlässig

Mag sein, hab den Bedarf nicht. Und ausserdem läuft Fhem bei mit auf einer Linkstation, da wäre dann zusatzlicher Aufwand nötig.

Aber egal: Ich wollte nur sagen; Ich benutze das Modul nicht und kenn mich daher damit nicht aus.

ZitatGesendet von meinem HTC Vision mit Tapatalk
Gebrauchsanweisung nicht gelesen oder sendest gerne Reklame?  8)
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 17 Februar 2014, 07:25:44
Nee nur tapatalk schnell installiert :)

Gesendet von meinem HTC Vision mit Tapatalk

Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 17 Februar 2014, 12:15:06
also hab den Skript etwas umgeschrieben um es zu testen:

define wohnen_aus notify Mirko IF (([Mirko:state] eq "absent") and (IF ($hour ~~ [12..3])) (define aus at +00:00:30 set set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off) ELSE (define aus at 23:00:00 set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off)


bekomme aber folgenden Log:
2014.02.17 12:14:26 3: wohnen_aus return value: IF: no right bracket: (([Mirko:state] eq "absent") and (IF ($hour ~~ [12..3])) (define aus at +00:00:30 set set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off) ELSE (define aus at 23:00:00 set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off)

IF Modul ist installiert
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 17 Februar 2014, 12:52:23
Ich sehe ein set zuviel nach 00:30:00
Die klammern sollten aber so passen..
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 17 Februar 2014, 13:05:58
stümmt ...

hab mal geändert:

define wohnen_aus notify Mirko IF (([Mirko:state] eq "absent") and (IF ($hour ~~ [12..3]))) (define aus at +00:00:30 set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off) ELSE (define aus at 23:00:00 set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off)


log gibt jetzt aus:
2014.02.17 13:05:26 3: wohnen_aus return value: Undefined subroutine &main::IF called at (eval 571) line 1, <in> line 2485.


hmm
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: Puschel74 am 17 Februar 2014, 13:10:17
Hallo,

ZitatIF Modul ist installiert
Und auch geladen?

reload xx_IF(das xx bitte gegen die Nummer tauschen)in die Befehlszeile eingeben und <Enter>

Grüsse
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 17 Februar 2014, 13:18:30
jop auch geladen ... hatte vorher nen restart gemacht ...
auch nach eingabe von reload 98_IF keine Besserung ...
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 17 Februar 2014, 13:48:00
Vielleicht ein rechte problem vom IF modul?
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 17 Februar 2014, 13:59:38
wie meinst du das?
Wie kann ich das prüfen?
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 17 Februar 2014, 15:46:49
Versuch mal ein update Check ins komandofeld - falls das IF Modul vorgeschlagen wird ein update,
Falls nicht würde ich ein update Force vorschlagen...
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 17 Februar 2014, 16:33:40
Force update erledigt ...

code nach rumspielen jetzt so:
define wohnen_aus notify Mirko IF (([Mirko:state] eq "absent") and ($hour ~~ [12..3])) (define aus at +00:00:30 (set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off)) ELSE (define aus at 23:00:00 (set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off))


Log Meldung:
2014.02.17 16:32:33 3: define aus at 23:00:00 (set WZ_LED_Stripe;Balkon_Licht;WZ_Licht;WZ_Spielekonsolen off) : aus already defined, delete it first
Unknown command Balkon_Licht, try help.
Unknown command WZ_Licht, try help.
Unknown command WZ_Spielekonsolen, try help.
2014.02.17 16:32:33 3: wohnen_aus return value: aus already defined, delete it first
Unknown command Balkon_Licht, try help.
Unknown command WZ_Licht, try help.
Unknown command WZ_Spielekonsolen, try help.


Und nochmals danke das du so viel Zeit investierst
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 17 Februar 2014, 18:40:08
Ich glaube im IF darf du nicht per Komma aufzählen musst also
(set Wz_licht on,set Wz_spielekonsolen on) ausschreiben...

Schau mal im Forum unter Automatisierung da dann unter if Modul - Damian hat einige gute Syntax Beispiele unter gebracht.
Define aus allready defined kannst du ignorieren oder eben während der Ausführung per delete aus wieder löschen.
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 17 Februar 2014, 20:35:16
Laut IF Modul nicht

ZitatFalls ein Komma im FHEM-Ausdruck vorkommt, muss dieser zusätzlich geklammert werden, damit das Komma nicht als Trennzeichen erkannt wird:


Code: [Auswählen]

define check at +00:10 IF ([outdoor:humidity] > 10) ((set switch1,switch2 off))
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 17 Februar 2014, 21:02:43
Müsstest du dann nicht alles in zwei Klammern fassen? Das define ist ja schließlich auch ein Befehl...

Hast du mal versucht was passiert wenn du es ausschreibst?
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 17 Februar 2014, 21:06:28
hab das ganze mal so probiert:
define wohnen_aus notify WZ_SamsungTV IF (([WZ_SamsungTV:state] eq "absent") and ($hour ~~ [20..3])) (define aus at +00:20:00 (set WZ_LED_Stripe off,set Balkon_Licht off,set WZ_Licht off,set WZ_Spielekonsolen off)) ELSE (define auser at 23:00:00 ((set WZ_LED_Stripe off,set Balkon_Licht off,set WZ_Licht off,set WZ_Spielekonsolen off)))
allerdings schaltet er sofort ab  obwohl der TV an ist ...

Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 17 Februar 2014, 21:11:21
Hm, Sorry dann hab ich jetzt auch keinen plan mehr - frag mal im IF Thread, Damian hilft sicher gerne. Wäre toll wenn du hinterher hier aber dann noch das Ergebnis präsentierst.
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 18 Februar 2014, 11:05:34
so es scheint zu funktionieren...
Dank Damian bin ich mit folgender lösung zufrieden:


define wohnen_aus notify WZ_SamsungTV IF (([WZ_SamsungTV:state] eq "absent") and ($hour ~~ [20..3])) ((define aus at +00:20:00 set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off)) ELSE ((define aus at 23:00:00 set WZ_LED_Stripe,Balkon_Licht,WZ_Licht,WZ_Spielekonsolen off))




allerdings würde mich die Perl Geschichte allein zur Information auch interessieren.
Titel: Antw:Anwesenheit in Abhängigkeit von Zeit
Beitrag von: der-Lolo am 18 Februar 2014, 15:29:29
Zitat von: der-Lolo am 17 Februar 2014, 21:02:43
Müsstest du dann nicht alles in zwei Klammern fassen? Das define ist ja schließlich auch ein Befehl...

Hast du mal versucht was passiert wenn du es ausschreibst?

Dann lag ich doch richtig mit der define Aussage, oder?
Titel: Antw:(gelöst) Anwesenheit in Abhängigkeit von Zeit
Beitrag von: noice am 18 Februar 2014, 17:59:21
Jop. Dann steht es aber falsch im if tread

Gesendet von meinem HTC One X mit Tapatalk