NEWS
Geofency 0.2.0: Message-Support und Authentication Fix
-
Servus…
Sorry für die verspätet Rückmeldung, hatte das aber total vergessen
Ich habe natürlich das Ganze jetzt installiert und getestet, es funktioniert bei mir nicht wie du das beschreibst
nach dem update funktioniert die alte Methode gar nicht mehr, bekomme die folgende Meldung im Log angezeigt
geofency.0 2017-09-28 19:02:58.231 warn Authorization Header missing but user/pass defined
Update: Die Meldung bekomme ich auch ab und an im Log
geofency.0 2017-09-28 19:13:33.994 error : message handler implemented, but messagebox not enabled. Define common.messagebox in io-package.json for adapter or delete message handler.
Nehme ich User/Passwort komplett raus, funktioniert der Webhook!!!
Die neue Methode, funktioniert aber nicht so wie sie soll, beim betreten und verlassen der festgelegten Zone, bekomme ich eine Meldung "Fehlgeschlagen (result: OK)"
das JSON kommt auch im ioBroker an. Das Script läuft aber Geofency verarbeitet das nicht, denn der Geofency State ändert sich leider nicht
Mach ich vielleicht was falsch? :oops:
Gruß
Adrian
-
Lass bitte mal in Debug laufen (Instanzen-expertenmodus) und schick dann mal log gesamt vom Start und einem call.
Zu Messagebox Fehler: mach mal an kommandozeile iobroker upload geofency und danach ggf iobroker stop/start
-
Also….
ich habe iobroker upload geofency + stop/start ohne Erfolg ausgeführt.
hier der Auszug aus dem Log im DEBUG Modus
Neue Methode: Json landet bei iobroker, aber Geofency kann nichts damit anfangen
geofency.0 2017-09-28 19:27:25.200 info adapter geofency received webhook from device Adrian with values: name: Zuhause, entry: 1 geofency.0 2017-09-28 19:27:25.200 info Message received = {"command":"send","message":{"user":"Adrian","data":{"device":"E3FDF3F9-A422-4C42-9BCC-7068681DC2B1","radius":100,"longitude":8.435085,"id":"36C6729C-DF91-42BA-98DD-B767788757D5","a geofency.0 2017-09-28 19:27:25.200 debug inMem message messagebox.system.adapter.geofency.0 messagebox.system.adapter.geofency.0 host.HQ-ioBroker-Produktion 2017-09-28 19:27:08.957 info instance system.adapter.vis-google-fonts.0 terminated while should be started once geofency.0 2017-09-28 19:27:03.291 info http server listening on port 7999 geofency.0 2017-09-28 19:27:03.285 info Adapter got 'Ready' Signal - initiating Main function... geofency.0 2017-09-28 19:27:03.283 info starting. Version 0.2.0 in /opt/iobroker/node_modules/iobroker.geofency, node: v6.11.2 geofency.0 2017-09-28 19:27:03.265 debug statesDB connected geofency.0 2017-09-28 19:27:03.246 debug objectDB connected
Script das ich nutze:
on({id: "cloud.0.services.custom_geofency_adrian", change: 'any'}, function(obj) { try { data = JSON.parse(obj.state.val); } catch (err) { data = null; } if (! data) { log('ERROR: Geofency data invalid: ' + data, 'error'); return; } var user = 'Adrian'; sendTo('geofency.0', {'user': user, 'data': data}); });
Alte Methode: (Mit hinterlegten Passwort) Funktioniert nicht!
geofency.0 2017-09-28 19:32:30.323 warn Authorization Header missing but user/pass defined geofency.0 2017-09-28 19:32:30.323 debug Authorization Header is:
Alte Methode: (Ohne Passwort) Funktioniert!
geofency.0 2017-09-28 19:34:08.293 info adapter geofency received webhook from device Cedric with values: name: Zuhause, entry: 1 geofency.0 2017-09-28 19:34:08.246 debug request path:undefined
Hilft dir das weiter?
-
Interessant…. :shock:
Jetzt wird das JSON doch verarbeitet....
Aber die Meldung auf dem Handy bekomme ich immer noch
Gruss
Adrian
-
Das es verarbeitet wird zeigt das log. Sobald die Kinder im Bett sind schau ich nochmal rein.
-
Soooo, Rechercheergebnisse:
Geofency und Username/Passwort: Die App sendet KEINEN HTTP-Authorization Header, damit kann der Server die Usernamen/Passwort gar nicht validieren … er kriegt die gar nicht Laut Google ist das Problem wohl wirklich ein Problem der App.
Ich hab mal den App-Hersteller angeschrieben. Mal schauen was der sagt.
Also aktuell einfach im Adapter leer lassen.
Ansonsten mit Cloud tut bei mir alles. Achja: Ich hatte auch mal Fehlgeschlagen mit "result OK" ... lag daran das ich die URL geändert hatte und in der App nicht auf "Sichern" geklickt habe sondern direkt getestet hatte. Versuch das mal
-
Interessant … Nimm https://github.com/ioBroker/ioBroker.geofency als URL für "Custom" Install `
Hallo kann die Version leider nicht installieren bekomme im Log eine Fehlermeldung wo ich aber nicht weis wie ich das ändern kann.
Sorry kenne mich nicht so gut aus. Vielleicht kann mir ja mal jemand helfen
-
Wenn ich das richtig sehe, hast du ein Problem mit npm. Meinst du das?
Was gibt die Konsole aus bei
sudo node -v sudo npm -v
Gruß
Rainer
-
das kommt dabei raus
! pi@raspberrypi:/opt/iobroker $ sudo node -v
! v4.3.2
! pi@raspberrypi:/opt/iobroker $ sudo npm -v
! ERROR: npm is known not to run on Node.js v4.3.2
! Node.js 4 is supported but the specific version you're running has
! a bug known to break npm. Please update to at least ${rel.min} to use this
! version of npm. You can find the latest release of Node.js at https://nodejs.org/
! pi@raspberrypi:/opt/iobroker $ -
dann solltest du mal dein nodejs updaten oder gar upgraden
Gruß
Rainer
-
Hallo,
nach dem Update auf 0.2.0 ging es bei mir auch nicht mehr.
Bekam diese Fehlermeldung: Authorization Header missing but user/pass defined
und in der App als Status Fehlgeschlagen.
Jetzt lass ich im Adapter user und pass frei, damit das erstmal funktioniert.
Meine Frage zum neuen Adapter, muss ich diese Cloud-Sache machen damit ich den weiter nutzen kann?
Welchen Namen muss ich in der Whitelist eintragen?
Es ist für mich leider etwas verwirrend. Eine kleine Step by Step Anleitung wäre super.
-
Hi,
Wenn Du Den Port vom Server den der Adapter bereitstellt im internet freigegeben hast und soalles tut kannst Du das so weiternutzen.
Die Variante mit dem Cloud-Adapter macht es etwas sicherer weil du den Port nicht nach aussen freigeben musst.
Ich mache die Tage mal ne Step-by-Step-Anleitung
-
Dazu musst Du PRO DEVICE einen custom_* Namen anlegen, also z.B. custom_geofency_device1 .
Dann trägt man die passende URL bei Geofency ein: https://iobroker.net/service/custom_geo … loud-Token> (nichts weiter anfügen)
Damit bekommt man das JSON von der Geofency App am Ende im Datenpunkt cloud.0.services.custom_geofency_device1
Daher braucht man dann noch das oben gepostete JavaScript was darauf reagiert wenn sich der Datenpunkt ändert und es dann per "Message" an den Adapter sendet. `
Ich habe diesen Post übersehen. Der macht das schon etwas durchsichtiger.
1. Den custom_geofency_device1 trage ich in der Whiteliste ein? Sagen wir mal Klaus.
2. Muss dann die URL so aussehen? https://iobroker.net/service/Klaus/12345
12345 ist die Zahle die in der Cloud-URL angegeben ist.
Oder ist der Token der APP-Key?
3. Und das Script schaut dann so aus?
on({id: "cloud.0.services.Klaus", change: 'any'}, function(obj) { try { data = JSON.parse(obj.state.val); } catch (err) { data = null; } if (! data) { log('ERROR: Geofency data invalid: ' + data, 'error'); return; } var user = 'Klaus'; sendTo('geofency.0', {'user': user, 'data': data}); });
-
Grundsätzlich korrekt, ausser das es maximal custom_Klaus heissen kann. Also "custom_" zu Beginn muss sein. Alles andere sind Namen die für den Cloud-Adapter selbst "reserviert" sind.
-
Dann muss die URL so sein https://iobroker.net/service/custom_Klaus/12345?
Ist der Token denn der APP-KEY?
-
der Token ist der APP-Key, ich habe es tatsächlich am laufen obwohl mir die geofency App
einen Fehler meldet wird es sauber in geofency.0 eingetragen.
So läuft die Url bei mir https://iobroker.net/service/custom_geo … y/<App-Key,>
Gruß Sunnylaila
-
Bei mir geht es jetzt auch.
Mein Fehler war das ich custom_geofency_Klaus in die Whitelist eingetragen habe. Da darf nur geofency_Klaus rein.
Bestätigt wird mit fehlgeschlagen und OK.
Wird aber alles sauber übernommen.
-
Gibt es eigentlich ein Widget für VIS womit ich mir Anwesenheit oder Abwesenheit vom Geofency
anzeigen lassen kann?
-
Nicht direkt. Am Ende gehen aber alle „Bool“ widgets
-
Hi,
Wenn Du Den Port vom Server den der Adapter bereitstellt im internet freigegeben hast und soalles tut kannst Du das so weiternutzen.
Die Variante mit dem Cloud-Adapter macht es etwas sicherer weil du den Port nicht nach aussen freigeben musst.
Ich mache die Tage mal ne Step-by-Step-Anleitung `
Ich lasse mein iPhone beim Aufruf einer bestimmten IP einen VPN-Tunnel aufbauen. Damit geht es ganz gut (95% korrekte Meldungen). Übersteuere dann noch mit der WLAN Einbuchung, falls beim Heimkommen von Geofency nicht der korrekte Status gesetzt wurde.Aber: Ist diese alte Variante nicht mehr möglich in den neuen Versionen des Adapters? Ich bin wieder auf 0.1.5 zurück.
Gruß
Pix