EgiGeoZone Geofence (Android)

vielen Dank für die Feedbacks,

habt ihr eine Erklärung hierfür? Ist ja schon irgendwie komisch, dass es bei dem einen geht und bei dem anderen nicht.
Zu mal es ja bei mir ( am Anfang funktionierte ) !

SmartHomeSchweiz, läuft den die App bei Dir „sichtbar“ im Hintergrund ?, das ist bei mir nicht der Fall.

Gruß Achim

läuft den die App bei Dir „sichtbar“ im Hintergrund

ja, sonst geht da nichts

Hallo SmartHomeSchweiz,

das wird das Problem sein.

Bei mir ist das so, dass wenn ich die App offen lasse oder nicht und dann zu den laufenden TASK switche, die App nicht sichtbar ist.
Ich habe mich mal im EgiGeoZone Forum registriert, mal schauen ob der Entwickler einen Rat weiß.

Gruß Achim

. . ., es ist so. Ist der Radius zu klein ( bei mir waren es unter 30 Meter ) sie ihren Dienst versagt.
stelle ich es um auf 150 Meter, alles scheint soweit rund zu laufen.

Nähere Infos hier http://rpi.spdns.eu/egigeozone/index.php?topic=20.msg55#msg55

Gruß Achim

Hallo,

mache ich die Erkennung nur über CELL, dann wird das verlassen der Zone innerhalb von 2Minuten erkannt. Das
betreten der Zone kann schon mal bis 1 Stunde später kommen.

mache ich die Erkennung über GRPS, dann wird das verlassen der Zone innerhalb von 2Minuten erkannt. Das
betreten der Zone wird dann auch innerhalb von 2Minuten erkannt.

Der Radius steht jeweils auf 200m. Die APP läuft jeweils im Hintergrund.

GPRS habe ich eigentlich immer ausgeschaltet um den Akku zu schonen.

da das einchecken doch manchmal sehr lange dauert, hab ich mal ein bisschen mit Tasker rumprobiert.

Über die json-api folgendes an IPS senden:

das Script bei Variablenänderung ausführen:

<?
$zelle 		= GetValue(49069 /*[Handy\Variablen Handy Jürg\Position\Zellinfo]*/);
$zelle 		= explode("|", $zelle);

$zeit 			= date("H:i");
$signalstaerke = $zelle[0];
$service 		= $zelle[1];
$zell_id 		= $zelle[2];
$zell_id 		= str_replace("GSM:", "", $zell_id);
$lac_zelle 		= substr($zell_id ,0, 4);
$cell_id 		= substr($zell_id ,5, 8);

SetValue(40507 /*[Handy\Variablen Handy Jürg\Position\Zellenstärke]*/ , $signalstaerke);
SetValue(14208 /*[Handy\Variablen Handy Jürg\Position\Zelle Service]*/ , $service);
SetValue(30837 /*[Handy\Variablen Handy Jürg\Position\Zellen ID]*/ , $zell_id);

$zell_txt = "Standort:$standort - Zellstärke:$signalstaerke - Service:$service - Zell-ID:$zell_id";

$file_inhalt = array("$zeit", "$standort", "$signalstaerke", "$service", "$zell_id");
$filename 		= "Zell-Info.csv";
$filename   	= IPS_GetKernelDir()."\\web\\$filename";// anpassen
$fileHandle 	= fopen($filename, 'a');
fputcsv($fileHandle, $file_inhalt, ';');
fclose($fileHandle);

if ((preg_match('#2323.16917505#', "$zell_id")==true) or (preg_match('#2323.16837121#', "$zell_id")==true))
	{
    	SetValue(13692 /*[Handy\Variablen Handy Jürg\Position\ZellID Position]*/ , 1);
		//SetValue(22896 /*[Hinweise\Webfront Variablen\Notification Jürg]*/ , "du bist jetzt in der Zelle Home");
		SetValue(48930 /*[Handy\Variablen Handy Jürg\Geofancy\Geofancy Ort]*/ , 1);
	}
else
	{
		$zell_id = substr($zell_id ,5, 8);
		SetValue(30837 /*[Handy\Variablen Handy Jürg\Position\Zellen ID]*/ , $zell_id);
		SetValue(13692 /*[Handy\Variablen Handy Jürg\Position\ZellID Position]*/ , 0);
		SetValue(48930 /*[Handy\Variablen Handy Jürg\Geofancy\Geofancy Ort]*/ , 0);
		SetValue(22896 /*[Hinweise\Webfront Variablen\Notification Jürg]*/ , "du verlässt jetzt die Zelle Home");
		
	}
?>

die csv-Sache war da am Anfang ganz nützlich zum beobachten, wann ich in welcher Zelle bin.

Die Geschwindigkeit ist ebenfalls besser als in der App.

Hallo Jürg,

hast Du über den Tasker auch die Möglichkeit des Radius?
So wie ich verstanden habe, hast Du einen festen Wert im Tasker, der gematch wird, oder ?

Gruß Achim

Im Profil kannst du bei Cell Tower ja die Zellen scannen, welche du berücksichtigen willst. Deswegen ist ja die csv ganz nützlich.

Bei mir sieht das so aus:

CellNear GSM:2323.16917505,*

das hier ist auch noch ganz nützlich:

bei opencellid.org einen Api-Key holen.

<?
$api = 'persönlicher api-key';
$mcc = '228'; //mobile Country Code Schweiz
$mnc = '01';  //mobile network code Swisscom
$cellid = GetValue(30837 /*[Handy\Variablen Handy Jürg\Position\Zellen ID]*/);
$lac = substr($cellid ,0, 4);
$cellid = substr($cellid ,5, 8);
$signal = GetValue(40507 /*[Handy\Variablen Handy Jürg\Position\Zellenstärke]*/ );
$limit = 20;
$offset = 0;
$xml = simplexml_load_file(utf8_encode("http://www.opencellid.org/cell/get?key=$api&mcc=$mcc&mnc=$mnc&lac=$lac&cellid=$cellid&limit=$limit&offset=$offset"));
//print_r($xml);
$lat = $xml->cell['lat'];
$lon = $xml->cell['lon'];
print_r ("$lat,$lon");
?>

Hallo Jürg,

hab mich mal an Script probiert, funktioniert soweit auch ganz gut, nur leider weiß ich nicht, wo du den Standort her bekommst, siehe folgender Ausschnitt:

$zell_txt = "Standort:$standort - Zellstärke:$signalstaerke - Service:$service - Zell-ID:$zell_id"; 

Könntest du mir hier weiter helfen?

Danke!

Schöne Grüße
Dan

Die Position kommt vom Tasker.

gesendet von meinem Handy

Hallo Jürg,

danke für die Antwort. Wie bestimmst du die Position in Tasker? Über GPS oder Netz?
Dann einfach einen HTTP Post mit der bestimmten Position (%LOC), oder?

Danke!

Grüße
Dan

damit solltest du ans Ziel kommen