Geofencing Modul für Geofency.com und Geofancy.com

Begonnen von Loredo, 07 Januar 2014, 16:57:26

Vorheriges Thema - Nächstes Thema

netbus

hallo,
ich verwende geofancy am iphone und habe festgestellt das die app erst immer ungefähr 15 minuten später einen trigger auslöst.
es ist aber hintergrundaktualisierung aktiviert. hat noch jemand so ein problem?

moonsorrox

bei mir ist das vollkommen unterschiedlich, mal klappt das ganz gut, mal mit Verspätung und gestern sogar gar nicht als ich nach hause kam, da zeigte er mir auf meinem RSS bis zum Morgen an "unterwegs"  ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

netbus

Zitat von: moonsorrox am 13 Oktober 2014, 12:39:41
bei mir ist das vollkommen unterschiedlich
Na Toll.
Ich verwende nämlich (noch in der testphase) geofancy als alarm scharf/unscharf schalter.
Nur leider gibt es öfters einen Alarm wenn ich die Tür öffne da geofancy erst eine viertel stunde später die anlage entschärft  >:(

moonsorrox

das ist momentan noch absolut unzuverlässig, für eine Alarmanlage würde ich das nicht nutzen...
Ich fahre manchmal mit dem Auto weg und nach knapp ner Minute also sagen wir mal gerade Linie gefühlte 800m und das klappt hervorragend...
Manchmal aber bin ich schon 10min. unterwegs und dann kommt erst der Trommelwirbel  ;)
Ich hoffe das ändert sich noch irgendwann, denn ich möchte das ebenfalls für eine Alarmanlage nutzen...!
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Sailor

Zitat von: moonsorrox am 13 Oktober 2014, 13:06:30
Ich hoffe das ändert sich noch irgendwann, denn ich möchte das ebenfalls für eine Alarmanlage nutzen...!

FULL ACK
Das hoffe ich ebenfalls!

"Die Hoffnung stirbt zuletzt!"  8)

Gruß
   Sailor
******************************
Man wird immer besser...

TeeVau

Bei mir funktioniert das überhaupt nicht zuverlässig. Ich hatte bislang die Hoffnung, dass das an meinem alten iPhone 4 gibt. Aber augenscheinlich gibt es ja generelle Probleme.
Hin und wieder funktioniert es fast sofort, manchmal gar nicht, und manchmal nur mit extremer Verspätung (2-4 Stunden oder mehr)
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

peterk_de

#232
Ich nutze Geofencing seit einem Jahr eigentlich verdammt zuverlässig zum schärfen/entschärfen meiner Alarmanlage... allerdings ohne Geofancy-Modul, da es das, als ich es aufgesetzt habe, noch nicht so direkt gab ...

Meine Lösung ist eher als Provisorium zu bezeichnen: Ich habe einen kleinen node.js-Webserver geschrieben, der von der Geofency-App (mit e) auf meinem iPhone kontaktiert wird, und dann einen Dummy in FHEM mit der entsprechenden Zonenbezeichnung setzt. Hintergrund war ein bisschen meine partielle Paranoidität - ich mag FHEM oder irgendwas davon nicht nach draußen ins Internet exposen, das ist mir zu groß um es zu überblicken.

Das Node.js-Ding hingegen ist sehr schlank und einfach zu erkennen, wo ggf. Sicherheitsrisiken sind, da es ziemlich dumm ist. Sicher ist es aber wahrlich auch nicht ;-)


var express = require('express');
var https = require('https');
var path = require('path');
var fs = require('fs');
var sys = require('sys')


var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }

var app = express();

var options = {
  key: fs.readFileSync('/path/to/serverkey.pem'),
  cert: fs.readFileSync('/path/to/servercert.pem')
};

// all environments
app.set('port', process.env.PORT || 3000);
app.use(express.logger('dev'));
app.use(express.json());
app.use(app.router);

app.post('/geofency', express.json(), function(req, res){
console.log("request device raw = " + req.body.device);
  if (req.body.device == "XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX") {
if (req.body.entry == 1) {
  console.log("request device entry = " + req.body.device);
  exec("/opt/fhem/fhem.pl 7072 \"set anwesend.personX "+req.body.name+"\" \"setreading anwesend.personX timestamp "+req.body.date+"\"");
    } else {
  console.log("request device exit = " + req.body.device);
  exec("/opt/fhem/fhem.pl 7072 \"set anwesend.personX Unterwegs\" \"setreading anwesend.personX timestamp "+req.body.date+"\"");
}
  } else if (req.body.device == "YYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYY") {
if (req.body.entry == 1) {
  console.log("request device entry = " + req.body.device);
  exec("/opt/fhem/fhem.pl 7072 \"set anwesend.personY "+req.body.name+"\" \"setreading anwesend.personY timestamp "+req.body.date+"\"");
    } else {
  console.log("request device exit = " + req.body.device);
  exec("/opt/fhem/fhem.pl 7072 \"set anwesend.personY Unterwegs\" \"setreading anwesend.personY timestamp "+req.body.date+"\"");
}
  } else {
    console.log("Geofency Error: " + req.body);
  }
  res.end('Location update OK for device ' + req.body.device);
});

https.createServer(options, app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});


Vielleicht kann es ja trotzdem jemand gebrauchen. Wie man sieht, erfolgt die Authentifizierung ganz simpel über die UUID des iPhones (bessergesagt, von zweien, meins und meiner Partnerin) ... die bekommt man am einfachsten über nen Proberequest raus - wird dann in die Konsole geloggt. Das ganze nutzt SSL, was das mitlesen etwas erschwert; sollte ein Angreifer versuchen den Webservice auszuprobieren, bekommt er immer eine Erfolgsmeldung; Fehler werden nur in die Konsole geloggt, das macht dann auch ggf. das Brute-Forcing ein wenig mühsamer, wenn die SSL-Hürde gefallen ist. Security-Schwäche ist sicherlich die Code-Injektion-Möglichkeit in Richtung FHEM (kleine Übungsaufgabe: wo ist sie? ;-) ). Wollte ich irgendwann alles nochmal ordentlich machen, hatte ich bislang keine Lust zu. Eine Fail2ban Regel sollte ich bei der Gelegenheit gegen Hammering auch gleich noch basteln.

Jedenfalls, zur Zuverlässigkeit ... aufm iPhone 5s / Provider T-Mobile - meins - bislang in einem Jahr NULL Aussetzer (die ich nicht selbst zu verschulden hatte). Meine Partnerin - iPhone 4s, Provider O2 - ist zwei-drei mal in die scharfe Alarmanlage geraten, da der Webhook bei Annäherung an die Wohnung nicht gezündet hatte. Wir sind beide berufstätig, macht also etwa 0,5% Geofency-Unzuverlässigkeits-Fehlerquote. Vermutlich liegt das an ihrer schlechteren Netzzuverlässigkeit. Ich habe jetzt einfach eine zweite, größere Zone um unser Haus definiert, die den gleichen Call auslöst - seitdem bislang keine Aussetzer.

Konzeptionelle Probleme gibt es trotzdem: Handyakku leer, Handy im Flightmode gelassen oder Handy ganz im Büro vergessen. War bei mir natürlich alles auch schonmal gewesen. Deswegen triggert bei mir die Alarmanlage nur nen internen Alarm. Für die Sirene ist mir das zu Heikel, die wird momentan nur mit ausgelöst, wenn die Auto-Schärfung der Alarmanlage per Geofencing deaktiviert ist (d.h. ich im Urlaub bin und die Anlage auf Dauer-An habe). Sonst muss ich sie manuell auslösen. Eine Pushover-Nachricht (Alarm geschärft / Entschärft) bringt auch viel, wenn man sich dran gewöhnt hat, dass die kommen muss bevor man eintritt.
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Karlchen

Hallo Leute bekomme in der log folgenden fehler

nName.Presence return value: Please define name.homestatus first
Dasselbe auch für whereabout wie definiere ich den homestatus ?


Mit freundlichen Grüßen


netbus

#234
Zitat von: peterk_de am 04 Januar 2015, 02:04:28
Ich nutze Geofencing seit einem Jahr eigentlich verdammt zuverlässig zum schärfen/entschärfen meiner Alarmanlage...
Da bist du aber eine Ausnahme wie du siehst weil bei fast allen funkt es nur sporadisch.
Und es liegt nicht am Modul sondern lediglich am "geofencing" am Handy.
In meinen Apache logs sehe ich exakt ob ein request kam oder nicht und wenn er kam, hat das Geofence Modul einwandfrei gearbeitet.
Es bleibt leider ein Zufallsgenerator das Geofencing am Handy

stromer-12

Zitat von: Karlchen am 15 Januar 2015, 16:55:09
Hallo Leute bekomme in der log folgenden fehler

nName.Presence return value: Please define name.homestatus first
Dasselbe auch für whereabout wie definiere ich den homestatus ?

Da wird wohl in deiner notify Definition "nName.Presence" ein Fehler sein
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Karlchen


peterk_de

#237
Zitat von: netbus am 15 Januar 2015, 16:59:58
Da bist du aber eine Ausnahme wie du siehst weil bei fast allen funkt es nur sporadisch.
Und es liegt nicht am Modul sondern lediglich am "geofencing" am Handy.
In meinen Apache logs sehe ich exakt ob ein request kam oder nicht und wenn er kam, hat das Geofence Modul einwandfrei gearbeitet.
Es bleibt leider ein Zufallsgenerator das Geofencing am Handy

Nutzt du auch Geofency mit e (und nicht mit a, gibts wohl auch) unter iOS und was auch noch spannend wäre: Wo wohnst du (Stadt oder Land) / welches Smartphone / welcher Provider?
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Karlchen

Hallo

Ich such mir den Wolf was mache ich falsch
Fehler in der log 

name.absence Return value: syntax erfror at (eval 1370) line 1, near "\ if" missing right curly or square bracket at (eval 1370) line 1, at end of line



geofancy:currLoc_Name:.underway {\ if (Value("Name.homestatus") ne "gone" && Value("Name.homestatus") ne "absent"){\ fhem("set Name.homestatus absent");;\}

:(






stromer-12

Wenn du alles so in einer Zeile schreibst, dann sind die "\" falsch.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL