Standortbestimmung für Android mit Tasker

Hallo,

man kann durchaus einen Tasker HTTP Post auf einen IPS Server Socket machen.

Da kommt dann sowas bei rauss:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: 
User-Agent: Tasker/1.3u1 (Android/4.0.4)
Host: vips:9988
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 36

loc=07.14932677%2C05.53813966

Gruss, Michael

[QUOTE=mibu;180655]Hallo,

man kann durchaus einen Tasker HTTP Post auf einen IPS Server Socket machen.

Da kommt dann sowas bei rauss:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: 
User-Agent: Tasker/1.3u1 (Android/4.0.4)
Host: vips:9988
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 36

loc=07.14932677%2C05.53813966

Gruss, Michael

Jupp, habs auch hinbekommen :rolleyes:

Mhm :confused::confused::confused::confused:

kann mir jemand auf die Sprünge helfen, was mus ich in Takser (IPS) einstellen damit es direkt funktioniert, ich habe nun die FTP Lösung am Laufen, musste allerdins auf allen relevanten Handys die Prg. einrichten…

Gruss
Jürgen

In der Version brauchst du auch den Tasker auf jedem Handy, dann einen server client in ips mit port xxxx.
Portfreigabe in der Fritzbox
Im Tasker ein Task http post an deine ip plus den port xxxx, im task musst du unter Content Typ die %LOC variable eintragen.
Jetzt nur noch das Ankommende in ips aufdröseln.

Bei mehreren Handys hätte ich allerdings die ftp Variante laufen, und jedes Handy einen anderen Ordner gegeben, ich weiss nicht, wie ich die unter dem http post unterscheiden kann. Oder halt für jedes Handy ein Server Client.

Das sind alles keine plug and play Versionen, wir spielen doch nur :wink:

Gesendet von meinem NEXT mit Tapatalk 2

In der Version brauchst du auch den Tasker auf jedem Handy

ich habs weiter oben geschrieben, die App Factory installieren und die Profile als App exportieren, Tasker brauchts danach nicht mehr.

Zur client Identifikation kann man ja beliebigen text zusätzlich ‚posten‘…

so habe nun ServerSocket in IPS erstellt, Port in Fritzbox geöffnet, mit Tasker ein HTTP-Post mit dem Wort „hallo“ gemacht und eine RegisterVariable mit dem ServerSocket verbunden, im Debug Modus seh ich dass da was ankommt

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Tasker/1.2.1u1m
Host: myserver:1234
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 5

hallo

nun habe ich ein Script erstellt in welchem ich den Inhalt der Registervariable in einen String schiebe, so wie es scheint ist dann der Inhalt im String und den kann ich dann mit allen Stringmitteln manipulieren.

Beispielsweise… …

Angelika:49.411…,8.999…

Ist das der richtige Weg? :confused:

Kann ich auf den gleichen Socket mehrere Posts machen oder verweigert mir Tasker dann den Post… Ich kenn mich zuwenig mit dem Socket aus.
Gruss
Jürgen

Klar, so geht das. Und den mitgesendeten Text wertest du halt mit aus . Top !

Danke für die Unterstützung!!

Funktioniert soweit mit 2 Androiden sehr gut :smiley: :smiley:

Nur ab und zu erhalte ich auf dem Handy einen SocketTimeout Error im Tasker,

Jemand 'ne Idee wie ich das wegbekomme?

Jürgen

Erhöhe doch mal den timeout im http post — Nachtrag: Das bringt nix.

Mach das Häkchen bei continue task after error.

Gesendet von meinem NEXT mit Tapatalk 2

Da kommt dann sowas bei rauss:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: 
User-Agent: Tasker/1.3u1 (Android/4.0.4)
Host: vips:9988
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 36

loc=07.14932677%2C05.53813966

Hallo,
wie habt Ihr das zerlegt um an die Daten zu kommen, ich stehe da momentan auf dem Schlauch. ALso alles nach Content-Length: 36, wobei die 36 sich ändern kann.

Gruß Uwe

Hallo,

ich habe es jetzt so gemacht. Ich kann in einmal mehre Sachen (ARRAY) übertragen und auswerten.

<?
// Senden von Androide -> IPS als HTTP-Post (Format) Inhalts Typ -> (text/*).
// Data Format -> 	$Type1, Wert1, Wert2 usw.
//          		$Type2, Wert1, Wert2 usw.
//------------------------------------------------------------------------------

If($_IPS['SENDER'] == "RegisterVariable"){
$Data_String             = $_IPS['VALUE'];

$Data                        = substr($Data_String, strpos($Data_String, '$'));
$Data_ARRAY_Gesamt = explode('$', $Data);
$Data_ARRAY_Gesamt = str_replace(" ,", "", $Data_ARRAY_Gesamt);
$Data_ARRAY_Gesamt = array_filter($Data_ARRAY_Gesamt);
$Data_ARRAY_Gesamt = array_splice($Data_ARRAY_Gesamt,0);																						
foreach($Data_ARRAY_Gesamt as $key => $wert){
	$Data_ARRAY = explode(",", $Data_ARRAY_Gesamt[$key]);
	$Data_ARRAY = str_replace(" ", "", $Data_ARRAY);
	$Type            = $Data_ARRAY[0];

	Switch ($Type){
		case "Profile":
                      setValue(10916, $Data_ARRAY[1]);
			break;

		case "Info":
			print $Data_ARRAY[1];
			print $Data_ARRAY[2];
		   break;
	}
}
}


?>

Gruß Uwe

Hallo

Momentan habe ich das Problem das nicht immer alle gesendeten Daten von Tasker per Httpost in IPS ankommen.
Ich sende alle 15min an IPS, aber es kommt jeden Tag mehrmals vor das 1-2 Stunden in IPS nichts ankommt.

Warum weiß ich nicht, könnt Ihr mir einen Tip geben.

Gruß Uwe

Funzt wunderbar :slight_smile: Cooles Script.

Hallo zusammen,

kann mir jemand eine Tip geben, wie ich die gewonnenen LatLon Werte nun in einer Google oder OSM Karte einbinden und im Webfront anzeigen lassen kann?

Grüße,
Doc

Zum Beispiel so:

$longitude = *******;  
$latitude = *********;
$htmlbox = 12345; // Variable einer String Variable mit Variablenprofil "~HTMLBox"

$KartenMode = "t=s&amp";    // Straßen-Ansicht
//$KartenMode = "t=h&amp";    // SAT-Ansicht
$zoom = 14;
$koordinaten = $latitude.",".$longitude;

SetValue($htmlbox,"<iframe width=\"100%\" height=\"340\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" src=\"https://maps.google.de/?q=$koordinaten&ie=UTF8&$KartenMode;z=$zoom&ll=$koordinaten&output=embed\"></iframe><br /><small><a href=\"https://maps.google.de/?q=$koordinaten&ie=UTF8&t=m&z=$zoom&ll=$koordinaten&source=embed\" </a></small>");

Und die HTMLBox-Variable ins WebFront verlinken. Gegebenenfalls noch die WIDTH und HEIGHT auf dein WebFront anpassen. Fertig :slight_smile:

Grüße,
Chris

Danke dir.
Werde ich gleich mal testen.
Wenn wir schon dabei sind, kann ich auch mehrere Koordinaten auf ein Karte bringen?

Grüße,
Doc

Das Thema hatten wir im „FinyMyIphone“ Thread auch kürzlich…da wurde an diese Stelle verlinkt >> Tonis Bastelkeller - Wo ist mein Android? [Updated] - Seite 3

Aber 2 Geräte ist so eine Sache, wenn die weit auseinander sind, dann zoomt die Karte ewig weit raus…also vlt. lieber pro Gerät eine Karte…

-Chris-

Mir ist noch nicht ganz klar, wo ich das

&markers=color:blue%7Clabel:A%7C'.$pos1.'&markers=color:green%7Clabel:J%7C'.$pos2.'

in dein Script mit einbauen muss.
Grund ist, das bei deinem Script eine „bewegliche“ Karte erzeugt wird und nicht nur ein Bild.
Mit fehlt es da etwas an HTML …

Grüße,
Doc

Ich behaupte mal, dass das in meiner Variante gar nicht funktioniert. Da wirst du die statische Map aus dem verlinkten Beispiel mit den 2 Markern verwenden müssen. Aber 100% kann dir das nur die Google API Doku sagen, da hab ich auch nicht so den Durchblick…

…kann den ganzen Google API Kram eh nicht leiden :mad:

Vielleicht hat aber jemand anderes das schon umgesetzt und kann dir helfen.

MfG,
Chris