Geofency mit Webhook

Vielen Dank :slight_smile:

Ich habe unten einfach das hier rangehängt.

	//IPS
	$Ankunftszeit=GetValueString(55421);
	if ($isEntry)
	{
	SetValueString (56796,$Ankunftszeit);
	SetValueBoolean (38895, true);
	SetValueString (55421, (date('d.m.Y H:i:s')));
	SetValueString (26950, $locationName);
	}
	else
	{
	SetValueBoolean (38895, false);
	SetValueString (58171, (date('d.m.Y H:i:s')));
	SetValueString (22570, $locationName);
	}

Geht auch eleganter, zum spielen und testen reicht es aber…einfach in die geo.php eintragen und IDs anpassen.

Viele Grüße
Martin

Vielen Dank erstmal. Das baue ich dann mal ein. Hast Du im App unter „POST Einstellungen“ die JSON-enkodierung aktiviert? Und benötigt man unter „Authentifizierung“ etwas eintragen?

Vielen Dank, Frank

Ich hab JSON aktiviert, Authentifizierung aber nicht. Ohne SSL ist das eh Kindergarten.

witzig, bei mir ist’s andersrum :slight_smile:

json ist aus, Authentifizeirung an, User ist frei, PW das von der externen WebFront Seite…

Genau das würde ich nicht machen, da PW dann unverschlüsselt übers Netz geht. Ich habe über Reverse-Proxy nur das Skript freigeschaltet - alles andere geht nicht…

Gesendet von meinem iPhone mit Tapatalk

Wie testet ihr denn das Script, wenn bei der Test-Taste keine Daten übertragen werden?
Ich habe gerade keine Lust, immer aus dem Haus die Straße runter zu rennen :smiley:

Hier meine aktuelle Version.
Mehrere Geraete und Googlemap in einer HTMLBox.

geofency.zip (1.54 KB)

$data = array ('date' => '2013-11-25T21:23:46Z' , 'name' => 'Home' , 'longitude' => '8', 'latitude' => '49');
$data = http_build_query($data);

$context = stream_context_create(array(
    'http' => array(
      'method'  => 'POST',
      'header'  => "Content-type: application/x-www-form-urlencoded",
      'content' => $data
    ),
  ));
$return = file_get_contents('http://192.168.10.8:82/user/Geofency/geofency.php?device=iPhone', false, $context);

Ich verschiebe immer testweise den Bereich sodass ich entweder drin bin oder nicht!! Geht so ganz gut zum testen!

Nabend!

Leider habe ich hier irgendwie keinen Erfolg. Da ich auch kein PHP Experte bin, fummel ich da eher so vor mich hin.
Ich habe jetzt nochmal alles auf Anfang gedreht.

  • Die Originale geo.php ist im web Verzeichnis von IPS

  • Wenn ich vom iPhone aus den Verbindungstest mache, kommt „Erfolgreich“

  • im Log File wird eine Zeile eingetragen. Allerdings ohne Daten aber das ist ja wohl normal

  • Beim Test kommen aber auch noch einige Fehlermeldungen zurück:
    „Undefined index: date in geo.php on line 13“
    „Undefined index: ebtry in geo.php on line 13“

  • Wenn ich nach Hause komme, wird auch ein Eintrag erzeugt aber auch keine Daten angezeigt

Was kann denn das Problem sein?

Happy Day und Dank, Frank

Hast du in der App bei den POST Einstellungen JSON-enkodiert angewaehlt ?

Ist aktiviert bei mir

Entweder ausschalten oder das Script geo_json.php nehmen.

Die obigen Fehler kommen beim Verbindungstest i.V.m. den Beispielskripten immer. Es werden ja keine Daten mitgeschickt, daher schlagen die Array-Aufrufe fehl… Das hat jemand nicht ganz zu Ende gedacht… :frowning:

In meiner Version fang ich das ab.
http://www.ip-symcon.de/forum/threads/23348-Geofency-mit-Webhook?p=211240#post211240
Ich benutze aber die IPSLibrary ,zur Info.

Stimmt , aber wenn er JSON angewaehlt hat kommen die POST-Variablen wohl nicht .

Danke. Ich habe jetzt mal eine Mischung aus Original und Deiner Datei erstellt. Deine Datei ist für mich etwas zu hoch. Und da ich noch die dezent ältere Version von IPS verwende, muss ich da ein wenig umschreiben. Die Fehler kommen jetzt schon mal nicht mehr und morgen will ich dann mal testen, ob ich die Daten erhalte, wenn es nicht der Verbindungstest ist :slight_smile:

Happy Day und Dank, Frank

Extra fuer dich hab ich doch gestern noch das Testscript geschrieben :wink:
http://www.ip-symcon.de/forum/threads/23348-Geofency-mit-Webhook?p=211245#post211245
musst nur die URL an deine anpassen.

Vielen Dank dafür :slight_smile:

Leider kommt ein Fehler:
<br />
<b>Warning</b>: file_get_contents(http://192.168.178.32/web/geofency/geo.php) [<a href=‚function.file-get-contents‘>function.file-get-contents</a>]: failed to open stream: HTTP request failed! in <b>C:\Programme\IP-SYMCON\scripts.currentscript</b> on line <b>20</b><br />

Passt aber vermutlich auch nur zu Deiner geänderten geofency.php oder?