Ich plage mich seit ein paar Tagen mit der Geofency App (iPhone) herum und komme nicht weiter.. Ich bekomme einfach keine Readings vom GEOFANCY-Modul angezeigt, obwohl meine App sich scheinbar erfolgreich mit FHEM unterhält. Der Reihe nach:
In der fhem.cfg habe ich entsprechend des Wiki-Artikels von Loredo (THX!):
define geofency GEOFANCY geo
attr geofency room Alles
define WEBhook FHEMWEB 8088 global
attr WEBhook HTTPS 1
attr WEBhook hiddenroom LogFiles,Floorplans,FileLogs,<... Liste aller Räume>
attr WEBhook room hidden
attr WEBhook webname webhook
define allowedWEBhook allowed
attr allowedWEBhook basicAuth { "$user:$password" eq "username:password" }
attr allowedWEBhook allowedCommands ,
attr allowedWEBhook allowedDevices ,
attr allowedWEBhook validFor WEBhook
Dann habe ich in Geofency einen Webbhook mit der Adresse
https://meine.domain.de:8088/webhook/geo/
...für EINTRITT und AUSTRITT angelegt und die Credentials eingegeben. Manueller Ein-/Austritt: "Erfolgreich. NOK No data received. OK". Wenn ich mit Safari auf dieselbe Adresse surfe (innerhalb und außerhalb des LANs), bekomme ich dasselbe. Wenn ich das nicht falsch verstehe, scheint das in Ordnung zu sein.
Nun erwarte ich aber, dass ich auf der Server-Seite irgendeine Reaktion sehe, aber weder erhalte ich irgendwelche Readings, noch zeigt mir der Event Monitor irgend etwas an.
Was läuft da falsch?
Hallo!? Jemand zu Hause?
Ich kann nur vermuten, dass es an der Konstellation HTTPS via FHEM liegt (z.B. nicht valides Zertifikat). Probiere es doch zunächst einmal über normales HTTP, um das auszuschließen.
Wenn die Verbindung wirklich erfolgreich war, dann bekommst du auch für den Test eine Änderung beim state-Reading.
Ich habe nun alles aus der fhem.cfg herausgenommen, was entbehrlich aussieht. Übrig bleibt:
define geofency GEOFANCY geo
attr geofency room Alles
define WEBhook FHEMWEB 8088 global
attr WEBhook webname webhook
Dann habe ich in der Geofency-App den hinterlegten Benutzernamen/Password gelöscht und die Adresse von https auf http geändert. Zusätzlich habe ich auch noch auf dem Router die Ports 80 und 443 an den RPI weitergeleitet (sicher ist sicher).
Und wieder bekomme ich "Erfolgreich. NOK No data received." - und wieder keine Änderung bei den Readings. Es ist zum Mäuse melken...
Du schreibst "... Konstellation HTTPS via FHEM ...". Soll ich FHEM mal auf den Apache umstellen?
Schau mal, dass du die URL in Geofency richtig angibst.
Am Ende hast du einen Slash, das sollte ohne Slash angegeben werden:
https://meine.domain.de:8088/webhook/geo
Manno! Kleine Ursache, große Wirkung. Das war's tatsächlich: Slash weg, Readings kommen an. Ich weiß gar nicht, wie ich Dir danken soll. Schön, dass es solche Experten wie Dich gibt!!
Liebe Grüße,
Andreas
Ich habe ein ähnliches Problem.
Wobei bei mir die Daten aus der App im logifle ankommen.
Allerdings werden die readings im device Geofancy nicht angezeigt?
Da steht immer nur:
[/Readings
state initialized 2017-01-23 12:17:49
code]
von dem Tag wo ich das device angelegt habe. Aber mehr kommt nicht?
Wie bekomme ich die empfangenen Daten schlussendlich angezeigt unter readings?
Hilfreich ist ein list vom Geofancy Device und vom Webhook Device. Passwort beim Webhook Device bitte raus nehmen sofern vorhanden
Mach Mal eine testsendung, dann sollte testzone stehen
send from OP3
Internals:
DEF Frank
NAME geofancy
NR 127
STATE initialized
TYPE GEOFANCY
Readings:
2017-01-25 12:43:31 state initialized
Fhem:
infix Frank
Attributes:
verbose 5
STD port habe ich geändert.
Aber wie gesagt die Daten werden erfolgreich geschickt und kommen auch an. Ich poste es mal ganz unten was im logfile erscheint.
Internals:
Internals:
CONNECTS 20
DEF 38093 global
FD 25
NAME WEBhook
NR 94
NTFY_ORDER 50-WEBhook
PORT 38093
SSL 1
STATE Initialized
TYPE FHEMWEB
Attributes:
HTTPS 1
room 99_System
webname webhook
2017.01.27 12:31:43 4: WEBhook_192.xxx.x.xxx_59332 POST /FHEM/Frank&device=xxxxxxx-567A-42B7-A2B1-D0D095CFE98B&radius=100&longitude=6.xx6091&id=xxxxxxx-E060-44BE-BADB-xxxxxxxxxxE&address=xxxxx%C3%9Fe%2013%0Axxxxx%20xxxxxr%0ADeutschland&date=2017-01-27T11:31:42Z&latitude=4x.xxxx26&entry=1&name=Frank; BUFLEN:0
2017.01.27 12:31:43 4: WEBhook: redirecting /FHEM/Frank&device=xxxxxxxxx-42B7-A2B1-xxxxxxxxxxx&radius=100&longitude=x.xxxxx6091&id=xxxxxxx-E060-44BE-BADB-05CC3051767E&address=xxxxxxx%9Fe%2013%0Axxxxxxx%20xxxxxr%0ADeutschland&date=2017-01-27T11:31:42Z&latitude=xx.xxxxxx26&entry=1&name=Frank to /webhook
2017.01.27 12:31:43 4: WEBhook_192.xxx.x.xxx_59332 GET /webhook; BUFLEN:0
2017.01.27 12:31:43 4: name: /webhook / RL:1548 / text/html; charset=UTF-8 / Content-Encoding: gzip
Du verwendest die falsche URI (auch gut zu erkennen an "WEBhook: redirecting..." im Log). Die Geofencing-Apps müssten diesem Redirect folgen und die Anfrage ein zweites Mal senden, was die meisten nicht tun (und auch nicht tun sollten).
Im FHEMWEB Device WEBhook hast du das Attribut webname=webhook gesetzt. Deshalb ist der Anfang der URI nicht /FHEM, sondern /webhook.
Die richtige URI, die du ansprechen musst, ist also insgesamt /webhook/Frank.
Übrigens brauchst du nur eine Instanz von GEOFANCY, auch bei mehreren Devices/Nutzern. Du musst den Infix deshalb nicht unbedingt "Frank" nennen in der Annahme, dass du später noch ein zweites Gerät mit dem Infix "Schatz" anlegen würdest ;)
Vielen, vielen Dank :).
Genau das war es. Das Forum hier ist echt toll.
Was bin ich so froh das ich mich für FHEM entschieden habe.