FHEM > Codeschnipsel

Presence Benachrichtigung mit sich gegenseitig zurücksetzenden Watchdogs

(1/1)

f.reddy:
Ich wollte heute mal in etwas komplexere Themen einsteigen und bin auch prompt mehrfach gestolpert. Daher mal für andere Einsteiger hier das erfolgreich getestete Beispiel:


--- Code: ---

#Handy anlegen. Status wird direkt aus der Fritzbox abgefragt. Device so angeben, wie es dort angezeigt wird
define Hdy_Stefan PRESENCE fritzbox android-52374x2x685cfae9
attr Hdy_Stefan room Handys


#Watchdog der darauf wartet, dass das Handy 10 Minuten durchgängig nicht im WLAN ist. Dann eine Mail sendet und den Watchdog für die Rückkehr scharf schaltet
define wdog_Hdy_Stefan_abs watchdog Hdy_Stefan:absent 00:10 Hdy_Stefan:present { use FritzBoxUtils;;FB_mail('mail@domain.de','Stefan ist raus','Stefan hat das Haus verlassen');;fhem("setstate wdog_Hdy_Stefan_pre defined")}
attr wdog_Hdy_Stefan_abs regexp1WontReactivate 1
attr wdog_Hdy_Stefan_abs room Handys

#Watchdog der darauf wartet, dass das Handy 1 Minute durchgängig am Netz ist. Dann eine Mail sendet und den Watchdog für das Verlassen scharf schaltet
define wdog_Hdy_Stefan_pre watchdog Hdy_Stefan:present 00:01 Hdy_Stefan:absent { use FritzBoxUtils;;FB_mail('mail@domain.de','Stefan ist da','Stefan hat das Haus betreten');;fhem("setstate wdog_Hdy_Stefan_abs defined")}
attr wdog_Hdy_Stefan_pre regexp1WontReactivate 1
attr wdog_Hdy_Stefan_pre room Handys
--- Ende Code ---



Stolpersteine:
- In der Fritzbox muss unter System die Benachrichtigung aktiv sein. Die dort hinterlegte Mailadresse sollte mit der hier angegebenen übereinstimmen. Könnte auch mit einer anderen klappen.
- Selbst wenn die FritzBoxUtils über die 99_Utils per "use FritzBoxUtils" geladen werden bringt das nichts. Auch den FB_mail in die 99_Utlis einzufügen hat bei mir nichts gebracht. Per Loglevel 5 konnte ich sehen, dass diese geladen wird, die Einbindung wie Sie hier überall beschrieben wird klappt jedoch nicht. Ich habe beobachtet, dass es ausreicht Sie einmal über einen Watchdog zu laden - per telnet klappte jedoch auch nicht... drum hier einfach in jedem Watchdog vorgeschaltet, dann kann man sicher sein, dass FB_mail geladen ist.

Nun zu den Watchdogs selbst:
Diese sind so definiert, dass Sie eine gewisse Instabilität der WLAN Verbindung gewisser Handys ausgleichen. Erst nach 10 Minuten durchgängiger Abwesenheit wird der Befehl ausgelöst. Bei der Anwesenheit ists egal - von daher ist dort die Wartezeit auf 1 Minute gekürzt.
Da der Watchdog nur einmal läuft und dann im Status "triggered" verweilt, bis er wieder manuell auf "defined" gesetzt wird machen die Watchdogs das wechselseitig...
Gehe ich außer Haus, wird der Watchdog scharf geschaltet, der mich wieder erwartet. Komme ich heim wird der Watchdog wieder aktiviert, der mein Fortgehen überwacht. Ansonsten würden diese ja alle 10 resp. 1 Minute(n) die Mail auslösen...

Hoffe es kann den einen oder anderen Helfen.
Wenn hier mal jemand mit dem entsprechenden Hintergrundwissen drauf geschaut und ggf. korrigiert hat kann man das ggf. ja in den Wiki Artikel packen. Das Beispiel dort, welches den selben Watchdog wieder auf defined setzt war für mich erstmal missverständlich und unlogisch.

VG Stefan

Ralph:
Moin,
sowas ähnliches hatte ich auch schon mal "erfunden":

Link

Das mit Deinem FB_mail - Problem kann ich momentan nicht nachvollziehen, das geht bei mir.

abc2006:
Schön, dass ich jetzt dieses Beispiel gefunden habe xD

Hat mich nur wenige Tage gekostet, das Beispiel aus dem Wiki zu verstehen ;)
Sollte man wirklich mal updaten!

Bei mir läufts jetzt auch so ähnlich!
Nutle aber keine Mails - ich weiss ja, wann ich zuhause bin xD

lg
stephan

Kaesebombe:
Super Vielen Dank!
Konnte hiermit schnell eine Anweseheitssteuerung realisieren.
Hat mir sehr geholfen.


Noch ein kurzer Hinweis zu Mails / Stolpersteine:
Das Mail versenden ist hier recht gut beschrieben http://www.fhemwiki.de/wiki/E-Mail_senden
Wenn man es nach dieser Anleitung macht, dann kann man sich noch etwas Code im der Watchdog-Definition sparen. Hier wird die use FritzBoxUtils direkt in der 99_myUtils.pm deklariert und nicht jedesmal in der Watchdog-Definition.  ... zumindest funktioniert das bei mir.

Bei mir sieht es nun (exemplarisch) so aus:

--- Code: ---pr_Hdy_Name:absent 00:10 pr_Hdy_Name:present { FB_mail('emailadresse@provider.com','Name ist raus','Name hat das Haus verlassen');fhem("setstate wdog_pr_Hdy_Name_pre defined")}
--- Ende Code ---


Grüße
Ralph

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln