Hi Leute,
ich habe mir ja für meine Familienmitglieder über Presence-devices eine Anwesenheitsliste erstellt.
Jetzt möchte ich gerne beim Wechsel des Status eine Push-Benachrichtigung bekommen.
Pushbullet hab ich dafür schon eingerichtet.
Jetzt frag ich mich, wie ich das am sinnvollsten anstelle.
Ich könnte ein notify device anlegen, welches den fhem Befehl zum senden der Push Nachricht enthält. Und das Trigger-Event wäre das Presence device.
Das müsste ich für jedes Familienmitglied machen.
Es geht aber doch bestimmt auch geschickter, oder?
Gruß
Dodger
hab jetzt ein Notify device erstellt mit folgender Definition:
Anwesenheit_xxx:.* {if(ReadingsVal('Anwesenheit_xxx','presence','present') eq 'absent') {fhem(set Push_Message message xxx hat das Haus verlassen)} else {fhem(set Push_Message message xxx ist zu Hause angekommen)}}
Wenn ich set Push_Message message xxx hat das Haus verlassen
direkt in der Kommandozeile ausführe, wird die Push Nachricht versendet.
Wenn das Notify auslöst, bekomme ich folgende Fehlermeldung im Log:
push_xxx_presence return value: Can't locate object method "Hause" via package "angekommen" (perhaps you forgot to load "angekommen"?) at (eval 90211) line 1.
Ist mein Aufruf über fhem(...)
falsch?
Gruß
Dodger
***EDIT***
Selbst gelöst: die Anweisung muss in "" stehen:
fhem("hier kommt der ganze Befehl")
Zitat von: Dodger am 13 Dezember 2021, 08:35:17
Ist mein Aufruf über fhem(...)
falsch?
Gruß
Dodger
Probier mal
{fhem("set Push_Message message xxx hat das Haus verlassen")} else {fhem("set Push_Message message xxx ist zu Hause angekommen")}}
VG Sebastian
Ich Grunde brauchst Du lediglich ein Notify welches Du auf alle Deine present Devices triggern lässt. Du solltest dafür natürlich eine vernünftige Namenskonvention haben.
nehmen wir mal an Deine Present Devices heißen
present_Bewohner_Max
present_Bewohner_Moritz
present_Bewohner_Gudrun
und Du hast bei jedem present Device ein Alias mit dem Namen des Bewohners hinterlegt.
define notify_Anwensenheitsnachricht notify present_Bewohner_.*:presence:.(absent|present) { fhem("set Push_Message message [DEVICE:ALIAS] " . ($EVTPART1 eq 'present' ? 'ist zu Hause angekommen' : 'hat das Haus verlassen')) }
Sollte so passen. Den Bedingungsteil kann man sicherlich mit SetMagic noch anders und schlanker machen, weiß aber gerade nicht wie.
Zitat von: CoolTux am 13 Dezember 2021, 08:56:46
define notify_Anwensenheitsnachricht notify present_Bewohner_.*:presence:.(absent|present) { fhem("set Push_Message message [DEVICE:ALIAS] " . ($EVTPART1 eq 'present' ? 'ist zu Hause angekommen' : 'hat das Haus verlassen')) }
...gibt das ein NOTIFYDEV...?
Wenn nicht, wäre vielleicht das hier eine Variante (und jede Klammer, die man weglassen kann, sollte man auch weglassen, daher vermute ich, dass das auch so funktioniert):
define notify_Anwensenheitsnachricht notify present_Bewohner_.*:presence:.*sent { fhem("set Push_Message message [DEVICE:ALIAS] " . $EVTPART1 eq 'present' ? 'ist zu Hause angekommen' : 'hat das Haus verlassen') }
Allerdings bin ich mal gespannt, wann die Messages nerven...
Würde das eher in ein FileLog schreiben und bei Bedarf einen Plot (mit allen relevanten Devices auf einem Plot) generieren, aber das ist eine andere Geschichte.
HI!
Ich finde sowas ist am besten mit dem PRESENCE Modul https://commandref.fhem.de/#PRESENCE (https://commandref.fhem.de/#PRESENCE) mit einer FritzBox in Verbindung mit Telegram https://commandref.fhem.de/#TelegramBot (https://commandref.fhem.de/#TelegramBot).
Mit DOIF kannst du dir dann hervorragend einrichten wann du eine Nachricht bekommen sollst, welche Nachricht es sein soll und hats viele Möglichkeiten.
Habe das seit Jahren so am Laufen und keine Probleme bis jetzt.
Falls das PRESENCE in der "ping"-Variante ist: Ich mache das bewußt nicht mit PRESENCE, das "frißt" nämlich Speicher, was vielen leider nicht bewußt ist (es gibt eine speicherschonendere Variante von martinp876 irgendwo hier im Forum...)
Nutze die "function" .. habe es seit ca 4 Jahren so am laufen ...
Habe die MAC Adressen der Handys im Presence ... sobald sich das Handy im Heim WLAN befindet wird ein Dummy(des besitzers) auf "zuhause" geschaltet und schon verrichten gewisse doifs ihren dienst... Rolladen, beleuchtung usw...