FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Ollek am 10 Mai 2016, 10:03:32

Titel: notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Ollek am 10 Mai 2016, 10:03:32
Hallo zusammen,

ich habe meine erste Lampe mit einem HM Empfänger verbaut und möchte nun meinen ersten schwierigeren notify schreiben.  ;)

Folgendes möchte ich erreichen: Die Lampe soll bei Abwesenheit Person1 und Person2 und nach eintreten des Sonnenuntergangs angehen. Ich habe dort folgenden notify mit meinem aktuellen wissen geschrieben. Zur Erklärung Person1 und person2 sind Watchdog's.

Würde das ganze so funktionieren? Gibt es Verbesserungsvorschläge?

Zitat
define FlurlampeAnBeiAbwesenheit notify (Person1|Person2|Sonnenuntergang) {
my $r1 = Value("Person1");;
my $r2 = Value("Person2");;
my $r3 = Value("Sonnenuntergang");;
my $hm = sprintf("%02d:%02d", $hour, $min);
if($hm gt $r3){
   if ($r1 eq "off" && $r2 eq "off") {
     fhem "set Flurlampe_EG on"
   } else {
     fhem "set Flurlampe_EG off"
   }
}
}

Vielen Dank für eure Unterstützung. :-)
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: frank am 10 Mai 2016, 11:41:49
ZitatWürde das ganze so funktionieren?
sei mutig. einfach ausprobieren und fhem.log und eventmonitor beobachten.
zum debuggen kannst du logzeilen einfügen und eventuell verbose vom notify hochdrehen.

ich denke, dass der zeitvergleich problematisch ist.
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Ollek am 10 Mai 2016, 12:59:47
Werde ich machen.

Allerdings habe ich noch eine andere Frage:
Wird der notify automatisch ausgeführt bzw, aufgerufen? Oder muss ich diesen irgendwo mit reinpacken, dass er ausgelöst wird?

Meine Idee wäre nun: Wenn Person1 oder Person2 das Haus verlässt, dann soll der notify auch mit ausgeführt werden?
Oder habe ich gerade einen Denkfehler? :-/
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: CoolTux am 10 Mai 2016, 13:36:59
Bitte lese zum Verständnis der Funktionsweise von FHEM und Notify im besonderen das Einsteiger PDF. Dann sind solche Frage bereits von Dir selbst beantwortet.

Zitat
Zur Erklärung Person1 und person2 sind Watchdog's.

Da ich diese Aussage nicht korrekt interpretieren kann, würde ich sagen das der Ansatz falsch ist. Person1 und Person2 sollten entweder presence Devices sein oder Dummy Devices. In beiden Fällen sollten die Zustande der jeweiligen Devicetypen entsprechend geschalten werden. Entweder durch sich selbst da die Modulfunktion das her gibt (presence) oder durch ein watchdog,DOIF,notify (Dummy).
Es gibt einen sehr ausführlichen Wikiartikel zum Thema Anwesenheitserkennung.


Grüße
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Morgennebel am 10 Mai 2016, 13:43:24
Läßt sich das nicht viel eleganter mit einem DOIF realisieren, in etwa:


define DI_FlurLichtPresence DOIF ([{sunset(0,"17:00","21:00")}-03:00] and [Person1:presence] eq "absent" or [Person2:presence] eq "absent")
   set FlurLicht on
DOELSE
   set FlurLicht off


Ciao, -MN
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Ollek am 10 Mai 2016, 17:15:14
Zitat von: CoolTux am 10 Mai 2016, 13:36:59
Da ich diese Aussage nicht korrekt interpretieren kann, würde ich sagen das der Ansatz falsch ist. Person1 und Person2 sollten entweder presence Devices sein oder Dummy Devices.

Sind beides Dummy Devices. :-)
Danke, werde ich mal lesen.
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Ollek am 10 Mai 2016, 18:02:50
Zitat von: Morgennebel am 10 Mai 2016, 13:43:24

define DI_FlurLichtPresence DOIF ([{sunset(0,"17:00","21:00")}-03:00] and [Person1:presence] eq "absent" or [Person2:presence] eq "absent")
   set FlurLicht on
DOELSE
   set FlurLicht off



So habe ich es mal umgesetzt und muss sagen, es ist wirklich einfacher.
Eine Frage habe ich noch die -03:00.. was bedeuten die? Diese habe ich mal rausgenommen. Werden drei Minuten von der Zeit heruntergenommen?

Danke!
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: CoolTux am 10 Mai 2016, 18:21:46
Die Antwort findest Du in der Commandref zu DOIF unter Zeitsteuerung und Zeitberechnung
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Ollek am 10 Mai 2016, 22:11:55
(http://uploads.tapatalk-cdn.com/20160510/d1047ca9c2c8fb6776fee01dde4a1af4.jpg)

Diese Fehlermeldung erhalte ich im log. Ist DOIF kein Type?

Danke. :)


Gesendet von iPhone mit Tapatalk
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Damian am 11 Mai 2016, 07:29:43
Zitat von: Ollek am 10 Mai 2016, 22:11:55
(http://uploads.tapatalk-cdn.com/20160510/d1047ca9c2c8fb6776fee01dde4a1af4.jpg)

Diese Fehlermeldung erhalte ich im log. Ist DOIF kein Type?

Danke. :)


Gesendet von iPhone mit Tapatalk

hast du die aktuelle Version?

$Id: 98_DOIF.pm 11314 2016-04-26 18:29:24Z damian-s $
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Ollek am 11 Mai 2016, 08:42:54
Hatte ich nicht, habe ein update gemacht. Bisher kein Error Eintrag im Log. Dann werde ich heute Abend mal schauen, ob es funktioniert. Danke dir. Solche Kleinigkeiten sehe ich nicht direkt, aber davon lernt man. :-)
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Ollek am 11 Mai 2016, 22:37:17
Habe heute Abend mal drauf geachtet und herumgespielt. Lampe ging nicht an.
Folgenden Log-Eintrag habe ich gefunden.

Zitat
2016.05.11 22:20:50 2: DI_FlurLichtPresence: set Flurlampe_EG on: Please define Flurlampe_EG first

Warum muss ich die Flurlampe definieren?
Kann ich den Empfänger nicht über den Alias ansprechen?
In der Definition des Moduls steht folgendes:

alias Flurlampe_EG

Die Fehlermeldung verwirrt mich etwas. oder besteht noch ein anderer Fehler?

Gruß
Titel: Antw:notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten
Beitrag von: Morgennebel am 12 Mai 2016, 10:11:47
Was sagt denn die Commandref zu dem Thema alias?

Ciao, -MN