Frage zu Geofancy

Begonnen von Breaked, 27 April 2015, 20:00:24

Vorheriges Thema - Nächstes Thema

Breaked

Hallo zusammen!  :)

Ich habe zuvor eine Anwesenheitserkennung via WLAN/Bluetooth genutzt. Via Presence und watchdog..
Den Code habe ich von dieser Seite: Klick
Falls Link nicht erwünscht, einfach löschen..

Nun bin ich auf das Geofancy-Modul gestoßen - ist auch soweit schon eingerichtet.
Da ich allerdings kein Coding-Profi bin, stellt sich für mich nun die Frage, wie ich die An-/Abwesenheitskontrolle über das Geofancy-Modul realisieren kann.

Im Endeffekt bekomme ich, sofern ich abwesend bin, eine Push-Nachricht aufs iPhone sobald meine Wohnungstüre geöffnet wird.
Wenn ich zu Hause bin, macht so eine Benachrichtigung aber natürlich keinen Sinn.

Vielleicht habt ihr ja ein paar Codezeilen direkt parat  ;)
Lieben Gruß




EDIT:
Es funktioniert nun. Falls jemand ebenfalls Probleme mit der Push-Benachrichtung hat (wenn keiner mehr anwesend ist und eine Türe/Fenster geöffnet wird) hier der Code:

#UnautorisierteTueroeffnung definieren
define UnautorisierteTueroeffnung dummy
attr UnautorisierteTueroeffnung room Haus

#UnautorisierteTueroeffnung definieren
define FLUnautorisierteTueroeffnungAn notify Eingangstuere:open.* { fhem ("set UnautorisierteTueroeffnung on") if (Value("HomeStatus") eq "absent")}
define FLUnautorisierteTueroeffnungAus notify Eingangstuere:open.* { fhem ("set UnautorisierteTueroeffnung off") if (Value("HomeStatus") eq "present")}

#Pushover Notification bei unautorisierter Türöffnung
define UnautorisierteTueroeffnungPushover notify UnautorisierteTueroeffnung:on { system ("curl -s -F 'token=XXXXXXXXXXXXX' -F 'user=XXXXXXXXX' -F 'message=ACHTUNG\nUnautorisierte Türöffnung' https://api.pushover.net/1/messages.json")}
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

Hallo Breaked,

mir hat das Wiki gut geholfen. Da ist sehr detailliert beschrieben, wie man das Ganze einrichtet.

http://www.fhemwiki.de/wiki/Anwesenheitserkennung#Das_GEOFANCY_Modul

gruss, Carsten
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

Hallo,

ja das habe ich mir auch schon durchgelesen, aber leider bin ich nicht so fit, wie ich alles zusammensetze.
Hast du evtl auch so eine ähnliche Schaltung realisiert?
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

Mmmmh,

wo soll man denn anfangen? Schreib doch mal, was Du gemacht hast. Erkennst Du in FHEM im geofancy Modul, wenn Du abwesend bist? Wie machst Du die Erkennung der offenen Haustür?

Etwas mehr Information wäre schon nett, meine Glaskugel ist gerade zur Reparatur....


gruss, Carsten
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

Hallo Carsten,

nun ja, das mir der Erkennung ob ich abwesend bin, gestaltet sich nicht so einfach, da ich (bzw. mein Handy) dafür weg sein müssten.
Zeitgleich auf den PC schauen und weg sein übersteigt meine Fähigkeiten ;D

Auf deine Frage wie ich die Erkennung derzeit mache, antworte ich am besten mit den Codezeilen.
Alles andere wäre denke ich zu schwer um zu erklären.

##Bluetooth-Anwesenheit#
define HA.MiPhoneBluetooth PRESENCE lan-ping 10.0.0.39 30
########################
##HA.MiPhone definieren
########################
define HA.MiPhone dummy
attr HA.MiPhone eventMap 1
attr HA.MiPhone room Haus
define FileLog_HA.MiPhone FileLog ./log/HA.MiPhone-%Y-%m.log HA.MiPhone
attr FileLog_HA.MiPhone logtype text
########################
##HA.MiPhone auf on setzen bei Anwesenheit
define HAMiPhoneOn notify HA.MiPhoneBluetooth:present { fhem ("set HA.MiPhone on;; setstate watchdogHAMiPhoneBluetoothAbwesend defined") if (Value("HA.MiPhone") ne "on") }
########################
##HA.MiPhone auf off setzen nach 3 Min Abwesenheit
define watchdogHAMiPhoneBluetoothAbwesend watchdog HA.MiPhoneBluetooth:absent 00:03 HA.MiPhoneBluetooth:present set HA.MiPhone off
attr watchdogHAMiPhoneBluetoothAbwesend regexp1WontReactivate 1
attr watchdogHAMiPhoneBluetoothAbwesend room Haus
#############################################################################
#FL.UnautorisierteTueroeffnung definieren
define FL.UnautorisierteTueroeffnung dummy
attr FL.UnautorisierteTueroeffnung alias UnautorisierteTueroeffnung
attr FL.UnautorisierteTueroeffnung room Haus

#FL.UnautorisierteTueroeffnung definieren
define FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.* { fhem ("set FL.UnautorisierteTueroeffnung on") if (Value("HA.MiPhone") eq "off")}
define FLUnautorisierteTueroeffnungAus notify FL.Tuerkontakt:open.* { fhem ("set FL.UnautorisierteTueroeffnung off") if (Value("HA.MiPhone") eq "on")}

#Pushover Notification bei unautorisierter Türöffnung
define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system ("curl -s -F 'token=XXXXXXXXXXXX' -F 'user=XXXXXXXXXXXX' -F 'priority=1' -F 'message=Flur\nUnautorisierte Türöffnung' https://api.pushover.net/1/messages.json")}


Bitte nicht verwirrt sein!
Es war vorher ein Bluetooth-Ping, da ich nur eher WLAN anstatt Bluetooth eingeschaltet habe, hab ichs' einfach auf einen LAN-Ping geändert.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

Ok, ich hatte verstanden, dass Du das Modul geofancy nutzen wolltest. Davon sehe ich jetzt in Deiner Beschreibung nichts.

Damit geofancy funktioniert wird eine App ( bei der Apfelfraktion z. B. geofency oder geofancy) auf dem Handy installiert und dort werden Standorte z. B. "home" ;) ) definiert. Dort kannst Du auch einstellen, dass die App nach hause telefoniert sobald Du diese Location erreicht hast (in einem bestimmbaren Umkreis). Darauf hin wird im geofancy Modul ein Reading gesetzt, dass Du zuhause bist. Ähnliches passiert beim verlassen, das Modul weiß also, ob Du anwesend bist oder nicht...

Wenn nun die Wohnungstür aufgeht, kann FHEM prüfen (notify oder DOIF), ob Du anwesend bist und bei Abwesenheit dir eine Push Notification ( z. B. mit PushOver oder PushBullet oder PushNotifier oder....) schicken.

Soweit das Prinzip....

HTH.

gruss, Carsten
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

Ich glaube wir haben aneinander vorbei gesprochen ..  :P

Das Prinzip von Geofancy ist mir klar - ist auch soweit auf dem Raspberry FHEM Server und dem iPhone eingerichtet.
Die Request usw. erreichen auch FHEM korrekt. Ebenso werden die Reading korrekt angezeigt.
Habe es mittels des Wiki-Eintrages so komplett konfiguriert.

Allerdings scheitere ich an der Zusammensetzung des benötigten Codes.
Mir will nicht ganz einleuchten, wie ich mir weiterhin eine Push-Nachricht aufs iPhone schicken lasse, sofern Geofancy weiß, dass ich unterwegs bin und es ein Einbrecher sein könnte.
Ich möchte ja nun die Bluetooth (bzw. derzeit LAN-Ping) Erkennung komplett tauschen gegen Geofancy!
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

Mmmmh, wir reden nicht aneinander vorbei, sondern Du rückst nur stückchenweise mit der ganzen Geschichte raus...

Warum prüfst Du in Deinem notify

Zitatdefine FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.* { fhem ("set FL.UnautorisierteTueroeffnung on") if (Value("HA.MiPhone") eq "off")}

nicht einfach auf das Reading curloc_<deindevice>? Dies geht mit der Funktion ReadingsVal(<devicename>,<reading>,<defaultvalue>)

gruss, Carsten

FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

Genau daran haperts' ja.

Wo ich dies genau einsetzen müsste, damit es funktioniert, weiß ich nicht.
Evtl kann ich mir ja auch einiges aus dem derzeit noch aktuellen Code löschen, wenn man zu Geofancy umsteigt?!  ???
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

define FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.* { fhem ("set FL.UnautorisierteTueroeffnung on") if (ReadingsVal(<yourgeofancydevice>,curloc_<yourgeofancyphone>,"home") ne "home")}

die Bezeichner in spitzen Klammern musst Du noch passend ersetzen... Da kann ich Dir leider nicht helfen, da Du immer noch nicht Deine geofancy config verrätst.
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

Was genau ist denn der Unterschied zw. Geofancydevice und Geofancyphone?

ZitatDa kann ich Dir leider nicht helfen, da Du immer noch nicht Deine geofancy config verrätst.
Sehr viel ist da noch nicht konfiguriert..
###GEOFANCY###
define geofancy GEOFANCY geo
attr geofancy devAlias 534XXXX-XXXX-XXXX-XXXX-3B592XXXXXX:Michael
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

ZitatSehr viel ist da noch nicht konfiguriert..
Immerhin soviel, dass man einige Readings sehen kann...

ReadingsVal(geofancy,curloc_Michael,"home")
Das sollte Dein notify beflügeln....
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

Fühle mich echt wie ein absoluter Neuling, aber wohin muss dieser Code nun?
Mit in meinen Geofancy-"Bereich"?
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

Ich hatte doch weiter oben Dein notify in abgeänderter Form aufgeschrieben. Dort steht im "if"-Zweig statt einer Abfrage auf ein Value nun eine Abfrage auf ein Reading von Deinem geofancy device....

HTH.
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

Oh man  ::)
Vor lauter Wald seh' ich noch kaum die Bäume.

Danke erstmal. Gebe noch Rückmeldung wenn es so funktioniert!
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

 ;D

Schön, dass der Groschen gefallen ist.  8)

Viel Erfolg.
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

Es scheint nicht so ganz zu funktionieren. Eine Push-Nachricht erhalte ich nicht, wobei es auch daran liegen kann, dass ich nur ein Test-Request von Geofancy gesendet habe.
Allerdings müsste er ja dann denken, dass ich nicht daheim bin und eine Nachricht senden - meiner Meinung nach.
Naja, ich werds' morgen nochmal in Ruhe testen (falls ich dazu komme)  :P
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

Breaked

Läuft noch nicht  :(
Woran es nun liegt - keine Ahnung ...
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

Dann stelle ich doch mal die üblichen Standardfragen:

1) verbose hochgesetzt?
2) was sagt das log?
3) funktioniert das PushOver alleine, wenn Du es in der Kommandozeile absetzt?
4) Bei geofency für iOS kann man manuell ein Event auslösen. Kommt das an?
5) wenn ja, was ist denn der state des DIOF?
....

Du musst Dich bei der Fehlersuche entlang der Kette von Auslösern und Reaktionen hangeln. Nur so findest Du den Fehler.

Und wenn ich Dir weiter helfen soll, musst Du ein genaueres Fehlerbild und ALLE Informationen liefern, mit "läuft nicht" kann ich nichts anfangen.


gruss, Carsten
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

#19
Zitat1) 1) verbose hochgesetzt?
2) was sagt das log?
3) funktioniert das PushOver alleine, wenn Du es in der Kommandozeile absetzt?
4) Bei geofency für iOS kann man manuell ein Event auslösen. Kommt das an?
5) wenn ja, was ist denn der state des DIOF?

1: Steht auf 3
2: Kann ich nicht mehr sagen, wegen Hausputz in der cfg.
3: Ja
4: Ja
5: DIOF?! Keine Ahnung davon


So, hatte jetzt mit dem ganzen Gestricke die Schna*** voll und hab mal aufgeräumt in der cfg.
Fange jetzt mit der Anwesenheitskontrolle quasi auf Null an, damit man auch einen Überblick hat.

Möchte auch gerne mit Residents arbeiten - habe ich neulich erst gelesen, dass es nur Vorteile hat.
Im Prinzip möchte ich einfach nur für zwei Personen anlegen. Konfiguriert ist dies schon, allerdings hat die Geofancy App fürs' iPhone im Moment ein paar Probleme und ich muss auf ein Update warten.

Woran es nun eigentlich hapert, ist eine vernünftige Benachrichtigung anzulegen, die zu einen erst kontrolliert ob einer der beiden Personen zu Hause ist (Geofancy und evtl. Lan-Ping) und dann den Magnetkontakt an der Eingangstüre "scharf" schaltet. Sobald dieser dann geöffnet wird, soll dann eine Push-Nachricht auf mein iPhone kommen.

Mein eigentliches Problem ist eigentlich, dass ich bisher nur "fertige" Code-Zeilen benutzt habe, aus Mangel von Kenntnissen in Perl.
Daher wird es auch daran scheitern, beide Funktionen so zusammen zu führen.


Für ein paar Codeschnipsel wäre ich sehr dankbar! So komme ich sonst einfach nicht weiter ..

P.S.: Kann man die Geofancy-Funktion eigentlich komplett testen, ohne das man abwesend sein muss???

Liebe Grüße



EDIT:
So etwas kann bestimmt nicht funktionieren, oder?
Bei mir läuft es jedenfalls nicht  :P


###GEOFANCY###
define geofancy GEOFANCY geo
attr geofancy devAlias XXXXXXX-84EB-XXXXX-XXXXX-XXXXXXXXXXX:Person1
define rgr_Residents RESIDENTS
attr rgr_Residents alias Residents
attr rgr_Residents devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home .*:user_unknown:home
attr rgr_Residents group Home State
attr rgr_Residents icon control_building_filled
attr rgr_Residents room Residents
attr rgr_Residents webCmd state
define rr_Person1 ROOMMATE rgr_Residents
attr rr_Person1 alias Status
attr rr_Person1 devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Person1 group Person1
attr rr_Person1 icon people_sensor
attr rr_Person1 room Residents
attr rr_Person1 rr_realname alias
attr rr_Person1 sortby 1
attr rr_Person1 webCmd state
define rr_Person2 ROOMMATE rgr_Residents
attr rr_Person2 alias Status
attr rr_Person2 devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Person2 group Person2
attr rr_Person2 icon people_sensor
attr rr_Person2 room Residents
attr rr_Person2 rr_realname alias
attr rr_Person2 sortby 1
attr rr_Person2 webCmd state

##Geofancy -> Notify##
define n_rr_Person1.homestatus notify geofancy:currLoc_Person1:.* set rr_Person1:FILTER=location!=$EVTPART1 location $EVTPART1
define n_rr_Person2.homestatus notify geofancy:currLoc_Person2:.* set rr_Person2:FILTER=location!=$EVTPART1 location $EVTPART1


#Wenn alle abwesend, dann Eingangstüre-Alarm
define n_Residents.absent NOTIFY rgr_Residents:presence:.absent set UnautorisierteTueroeffnung on

#UnautorisierteTueroeffnung definieren
define UnautorisierteTueroeffnung dummy
attr UnautorisierteTueroeffnung room Haus

#FL.UnautorisierteTueroeffnung definieren
define UnautorisierteTueroeffnungAn notify Eingangstuere:open.* { fhem ("set UnautorisierteTueroeffnung on") if ReadingsVal(rgr_Residents,lastActivity,"absent")
define UnautorisierteTueroeffnungAus notify Eingangstuere:open.* { fhem ("set UnautorisierteTueroeffnung off") if ReadingsVal(rgr_Residents,lastActivity,"present")

#Pushover Notification bei unautorisierter Türöffnung
define UnautorisierteTueroeffnungPushover notify #UnautorisierteTueroeffnung:on { system ("curl -s -F 'token=XXXXXXXXXXX' -F #'user=XXXXXXXXXX' -F 'priority=1' -F #'message=ACHTUNG\nUnautorisierte Türöffnung' https://api.pushover.net/1/messages.json")}
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

Hallo,

zum Residents Modul kann ich nichts sagen, das verwende ich bisher nicht. Auch ich kann Perl nur in Ansa4tzen lesen, programmieren ist nicht mein Ding. Aber um ehrlich zu sein, brauche ich es bisher auch nicht. Die Konfiguration hat erst einmal herzlich wenig mit Perl zu tun, vielmehr mit verstehen, was man da konfiguriert. Insofern wäre ich skeptisch gleich das nächste Modul anzugehen, wenn nicht klar ist, wo es klemmt.

Bei der iOS Version von Geofency (nur die kenne ich) kann man die Ankunft und Abwesenheitsevents manuell auslösen. Diese werden (bei richtiger Konfiguration) in dem geofency device in FHEM angezeigt.

Der Magnetkontakt sollte m. E. immer eine geöffnete Tür melden (also ein Event auslösen. Das kannst Du auch in den Readings des entsprechenden devices prüfen. Dieses Event kann ein notify oder ein DOIF triggern. Dort prüfst du, ob du abwesend bist (also Reading Deines geofency devices). Wenn du abwesend bist, sendest Du ein pushOver. Ein entsprechendes notify hatte ich Dir bereits gepostet. Wenn das nicht funktioniert (weil ungeprüft), gibt es zumindest einen Fehler im Log, der Dich auf die Lösung bringen (oder hier gepostet werden) sollte.

gruss, Carsten
   
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

Breaked

Muss mich da halt noch etwas hartnäkig durchhangeln, aber nun gut.

Zu der iOS Geofancy App: Wo kann ich Ankunft und Abwesenheit manuell auslösen? Ich sehe bei mir in den Einstellungen lediglich einen Test-Request den ich auslösen kann, bei dem dann eine zufällige Location gesetzt wird. Jedoch nicht home/absent oder sowas.

P.S.: Bin das noch alles am testen mit dem Türkontakt, aber bisher hat es halt an der Testfunktion mittels Geofancy gescheitert, da ich keine Abwesenheit/Anwesenheit simulieren konnte.
Wenn du mir kurz schildern könntest, wo du diese Funktion findest, käme ich evtl. schon weiter.

LG
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

det.

Ich bin seinerzeit nach Hinweis von Loredo auf die geofency  App ( die mit e ) umgestiegen, die funktioniert bei mir sehr gut. Da kannst Du über eine definierte Location-> Zahnradsymbol-> webhook-> Verbindungtest Eintritt/ Verbindungstest Austritt solange testen, bis Du sicher bist dass es funktioniert.
LG
det.

Breaked

#23
Super, das werde ich mal probieren!

Hatte erst die kostenlose mit a genommen. Man muss ja nicht immer unnötig Geld zum Fenster heraus werfen :P

EDIT: Die App funktioniert. So kann man das ganze Spektakel auch wunderbar testen! Danke dir!
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MrRight

Na, da bist Du ja schon mal ein Stück weiter. Ich hatte auch mal mit der kostenlosen App (Genfancy) begonnen. Der Preis für die andere App lohnt sich jedoch m. E. allemal.

Dann viel Erfolg bei den weiteren Schritten.
FHEM 5.7 auf Cubietruck mit MySQL
CUL + HMLAN + HUE Bridge + Firmata over Ethernet + Ardunino + 1wire + MiLight + FTUI + Homekit

EmmPee

Hast Du es jetzt hin gekriegt?

Breaked

Bereit für dein eigenes Smart Home?
http://ownsmarthome.de