Feature Request: Senden der GPS Position an IP-Symcon

Hallo Zusammen,

bin gerade über diese Seite tado.de gestolpert. Das sollte doch ein leichtes sein die iFront App mit der deaktivierbaren Funktion der Positionsübermittlung (zB mit einstellbarem Zeitintervall, evtl. kombiniert mit den in Smartphones integrierten Bewegungssensoren) zu erweitern.

Neben der Heizungssteuerung sehe ich noch viele weitere interessante Möglichkeiten :loveips:
Oder gibt es hier schon besseres/Alternativen?

Wie seht Ihr das?

Schau hier mal:

https://github.com/tylerhall/sosumi

und hier:

http://www.ip-symcon.de/forum/threads/16271-Sosumi-Find-my-iPhone?highlight=sosumi

wupperi herzlichen Dank,
das ist ein guter Ansatz, ich hatte „befürchtet“ das ich etwas nicht gefunden habe :wink:

Aber wäre die Funktion in iFront integriert nicht um einiges eleganter, push statt poll?

Glaube nicht. So kannst Du am Server Bedingungen konfigurieren, wann wer wie oft gepollt wird, bspw. in Abhängigkeit eines anderen System-Status.

Das wäre mit der IOS App nicht ohne weiteres möglich, Du würdest dann auch das Konzept umschmeißen, weil ja ein Teil der Serverfunktionalität (Handlung basierend auf dem Ergebnis einer Prüfung auf dem Gerät) in der app abläuft.

bei push gegenüber poll sehe ich doch einige Vorteile.

Als Beispiel, wenn das Smartphone nicht bewegt wird, muss auch nichts gesendet werden. Wobei mit den von Dir gezeigten Funktionen ja das Pollen weiter möglich ist, wenn man denn will.

ich glaube die Kombination aus einem in iFront integriertem push und dem schon vorhandenen poll könnte da einiges bringen.

Das wäre in der Tat ein Vorteil.

@Paresy: Denke aber das geht nicht so einfach, oder? Rein netzwerktechnisch müsste der IPS Server halt öffentlich erreichbar sein, damit fallen wahrscheinlich 90% aller User weg.

Mit dem M7 Co-Prozessor und der CoreMotion API könnte es vielleicht eine Möglichkeit geben dort etwas sinnvolles realisieren zu können (natürlich nur für iPhone 5c/iPhone 5s und neuer), ohne, dass der Akku sofort leer ist. Da die API aber Brand neu ist, müssen wir eh abwarten wie sich das Thema bzgl. Akku und guten Daten entwickelt. Die Idee ist übrigens nicht neu… Wir hatten vor einem Jahr schon einmal das selbe Thema. Wer solch ein Feature möchte, kann übrigens schon jetzt auf Latitude von Google (jetzt in Google+ integriert) zurückgreifen. Wir werden fürs erste dort keinerlei Zeit investieren.

paresy

Wobei Latitude damals glaube ich den Akku ziemlich leer gesaugt hatte.

Wobei ich gerade sehe, dass Latitude eingestellt wurde, es ist nicht nur in google+ integriert, aber die API ist eingestellt :frowning:

Bereits in Arbeit :wink:

Das „neue Latitude“ läuft im Background und ich konnte keine nenneswerten Akku-Einbußen mehr feststellen. Einzig die metergenaue GPS-Ortung braucht eingeschaltetes GPS. Aber das kann ja jeder selbst entscheiden.

Toni

Kennt jemand http://geohopper.com und hat damit Erfahrungen gemacht? Die App macht Geofencing, unterstützt web services und soll nach eigener Aussage die Batterie schonen. Dazu noch IFTTT sowie iBeacons.

Ich warte noch auf mein 5s, kann es daher nicht testen. Hört sich aber verdammt vielversprechend an!

Hab’s ausprobiert, funktioniert einigermassen wenn ich die Region verlasse, aber er erkennt bislang noch nicht das ich zurück komme … :frowning:

Das geht m.E. am besten über WLAN. Ich fand das Verlassen bisher das Schwierigste, daher könnte es meine Lösung werden. Mir fehlt nur noch das iPhone 5S - also bitte stellt eure Bestellungen endlich mal zurück :mad:

Hallo zusammen,
ich habe den Ansatz mit Geohopper und IFTTT mal getestet.

Das Absetzen der RSS-Feeds klappt recht zuverlässig. Jetzt stellt sich mir die Frage,
wie den jeweiligen RSS Feed triggern ?

Hier habe ich mal ein feines Code Schnipsel gefunden: http://www.t-jark.de/2013/04/rss-feedreader-mit-php/

  • wie kann ich mit diesen kurzen Zeilen eine Boolsche Varaiable schalten ?

Wäre super, wenn ein der PHP-Profis da mal nen Blick riskiert !

Vielen Dank für Eur eUnterstützung !

Find my iPhone funktioniert eigentlich perfekt.

Um den Akku zu schonen frag ich einfach in unterschiedlichen Intervallen ab. Je weiter ich von zu Hause weg bin, desto weniger fragt er ab. Komm ich näher, geht’s runter bis auf 1 Anfrage pro Minute.

Wenn ich zu Hause bin poste ich mal den Code vom Script.

Nachtrag (Die Abfragen, also die Push-Meldungen würd ich abschalten, die sind Akkulastig und hatte ich nur zum Testen verwendet. Entfernung Strasse funktioniert nicht, da hatte ich noch keine Zeit drüber zu schauen):

<?
include(„IPSInstaller.ips.php“);
require ‚class.sosumi.php‘;
include(„func_distance.ips.php“);
$aktiv = GetValueBoolean(45304 /[Hardware\Telefone\Mobil\iPhone Suche\Aktiv?]/ );

if ($aktiv == true) {

$ssm = new Sosumi('APPLE ACCOUNT MAIL', 'APPLE ACCOUNT PW');
$loc = $ssm-&gt;locate();
$loc_lat_home = xx.xxxxxx;
$loc_lon_home = xx.xxxxxx;
$parent_id = IPS_GetParent($IPS_SELF);
IPS_SetPosition($IPS_SELF, 999);
IPS_SetHidden($IPS_SELF, true);
$devicename = 'WIE AUCH IMMER';
$Profil_Name = array('Zuhause', 'Abwesend');
$Profil_Color = array(0 =&gt; 0xaaaaaa, 1 =&gt; 0xaaaaaa);
CreateProfile_Associations(".SosumiZuhause", $Profil_Name, "", $Profil_Color);
SetValue(CreateVariable("Maps", 3, $parent_id, 30, "~HTMLBox"), "
 &lt;iframe src=\"user/iphone/map.php?lat=".$loc['latitude']."&lng=".$loc['longitude']."&devicename=".$devicename."&altitude=".$loc['accuracy']."&date=".$loc['timestamp']."\" border=\"0\" frameborder=\"0\" style=\"top:0pt; bottom:0pt; left:0pt; right:0pt; width:100%; height:400px;\"/&gt;&lt;/iframe&gt;"
);
$mapsurl = 'http://maps.google.de/maps/nav?q=from:'.$loc_lat_home.','.$loc_lon_home.'%20to:'.$loc['latitude'].','.$loc['longitude'].'';
$mapsresult = file_get_contents($mapsurl);
$mapsdata = json_decode(utf8_encode($mapsresult), true);
$placemark = $mapsdata['Placemark'];
$strasse = $placemark[1]['address'];
$directions = $mapsdata['Directions'];
$meter = $directions['Distance']['meters'];
$zeit = $directions['Duration']['html'];
$km = $meter / 1000;
$diff = distance($loc_lat_home, $loc_lon_home, $loc['latitude'], $loc['longitude']);
SetValue(CreateVariable("Entfernung Luftlinie", 2, $parent_id, 24, ""), $diff);
if($diff &gt; 0.05) {  
    // Wenn Entfernung größer 1.0km dann abwesend
    SetValue(CreateVariable("Zuhause", 1, $parent_id, 10, ".SosumiZuhause"), 1);
    //SetValue(56926, false);
}
else
{
 SetValue(CreateVariable("Zuhause", 1, $parent_id, 10, ".SosumiZuhause"), 0);
// SetValue(56926, true);
}
SetValue(CreateVariable("Latitude", 2, $parent_id, 110, ""), $loc['latitude']);
SetValue(CreateVariable("Longitude", 2, $parent_id, 120, ""), $loc['longitude']);
SetValue(CreateVariable("Letzte Abfrage", 3, $parent_id, 130, "~String"), $loc['timestamp']);
#SetValue(CreateVariable("Meldung", 3, $parent_id, 25, "~String"), $loc['exception']);
$timer = CreateTimer_CyclicByMinutes("Timer for iPhone", $IPS_SELF, 15);
if ($diff &gt; 0.05) {
   $minute = 1;
   IPS_SetEventCyclic($timer, 0, 0, 0, 2, 2 , $minute);
   $ssm-&gt;sendMessage('Du bist '.$diff.' km Luftlinie und '.$km.' KM Strasse von zu Hause ( Das sind '.$zeit.') entfernt. Naechste Abfrage in '.$minute.' Minuten.', 0);
}
elseif ($diff &gt; 1.0) 
{
    $minute = 3;
    IPS_SetEventCyclic($timer, 0, 0, 0, 2, 2 , $minute); 
    $ssm-&gt;sendMessage('Du bist '.$diff.' km Luftlinie und '.$km.' KM Straße von zu Hause ( Das sind '.$zeit.') entfernt. Naechste Abfrage in '.$minute.' Minuten.', 0);
}
elseif ($diff &gt; 3.0) 
{
   $minute = 5;
   IPS_SetEventCyclic($timer, 0, 0, 0, 2, 2 , $minute); 
   $ssm-&gt;sendMessage('Du bist '.$diff.' km Luftlinie und '.$km.' KM Straße von zu Hause ( Das sind '.$zeit.') entfernt. Naechste Abfrage in '.$minute.' Minuten.', 0);
}
elseif ($diff &gt; 5.0) 
{
   $minute = 7;
   IPS_SetEventCyclic($timer, 0, 0, 0, 2, 2 , $minute); 
   $ssm-&gt;sendMessage('Du bist '.$diff.' km Luftlinie und '.$km.' KM Straße von zu Hause ( Das sind '.$zeit.') entfernt. Naechste Abfrage in '.$minute.' Minuten.', 0);
}
elseif ($diff &gt; 10.0) {
   $minute = 10;
   IPS_SetEventCyclic($timer, 0, 0, 0, 2, 2 , $minute);
   $ssm-&gt;sendMessage('Du bist '.$diff.' km Luftlinie und '.$km.' KM Straße von zu Hause ( Das sind '.$zeit.') entfernt. Naechste Abfrage in '.$minute.' Minuten.', 0);
}
elseif ($diff &gt; 15.0) {
   $minute = 15;
   IPS_SetEventCyclic($timer, 0, 0, 0, 2, 2 , $minute);
   $ssm-&gt;sendMessage('Du bist '.$diff.' Luftlinie und '.$km.' KM Straße von zu Hause ( Das sind '.$zeit.') entfernt. Naechste Abfrage in '.$minute.' Minuten.', 0);
}
else
{
   $minute = 5;
   IPS_SetEventCyclic($timer, 0, 0, 0, 2, 2 , $minute); 
   $ssm-&gt;sendMessage('Du bist zu Hause.', 0);
}
SetValue(CreateVariable("Abfragezyklus", 1, $parent_id, 26, ""), $minute);

}
?>