NEWS
Adapter: Geofency
-
Hallo
Ich habe für die Webhooks von Geofency einen Adapter erstellt (das selbe gab's auch schon für ccu.io - aber nicht von mir).
Geofency http://www.geofency.comist eine mobile app (leider nur ios) um zu tracken wie lange man sich an definierten Orten aufgehalten hat. Z.B. zu Hause, im Büro, etc. Zusätzlich bietet es aber noch die Möglichkeit über einen Webhook einen HTTP Request zu versenden beim eintreten und verlassen eines definierten Ortes. Also z.B. beim Verlassen oder nach Hause kommen. in der Hausautomation also eine ganz sinnvolle Information 8-)
also zum Adapter:
installieren mit:
npm install iobroker.geofency
anschliessend ist der Adapter im Admin-Gui verfügbar und kann installiert werden.
Konfiguration:
Der Port, an den der Request der mobile app geschickt wird kann konfiguriert werden, sowie Benutzername und Passwort für die Autorisierung. Zur Zeit wird nur HTTP unterstützt.
Konfiguration der Mobile-App:
In der Mobile App einen Ort erstellen. Anschliessen in den Einstellungen "webhook" auswählen:
- in den URL Einstellungen die Domain (inkl. konfiguriertem Port) eintragen. Die URL soll lediglich den Ortsnamen enthalten (unter dem die Events dann im ioBroker gespeichert werden). Ansonsten so wie in dem Beispiel:
Zum Testen sind die beiden Buttons "Betreten" und "Verlassen" sehr praktisch :idea:
Nach dem ersten Event werden die Status für diesen Ort erzeugt:
"Entry" wir beim Eintreten auf 1 und beim Verlassen auf 0 gesetzt. Das Datum habe ich als eigenen Status eingefügt damit es (zumindest in meinem Fall) einfacher ist es in einem Script zu verwenden.Unter dem <ortsnamen>verstecken sich noch alle anderen Attribute aus dem geofency Aufruf:
Ich hoffe der Adapter ist hilfreich - Feedback nehme ich gerne entgegen.
viele Grüsse
Daniel</ortsnamen>
- in den URL Einstellungen die Domain (inkl. konfiguriertem Port) eintragen. Die URL soll lediglich den Ortsnamen enthalten (unter dem die Events dann im ioBroker gespeichert werden). Ansonsten so wie in dem Beispiel:
-
-
Hallo Daniel,
eine tolle Idee von dir, vielen Dank dafür. Ich wollte den adapter testen, allerdings tauchen bei der install warnungen auf und der Adapter leider nicht im Admin.
root@raspberrypi:~# npm install iobroker.geofency npm http GET https://registry.npmjs.org/iobroker.geofency npm http 304 https://registry.npmjs.org/iobroker.geofency npm http GET https://registry.npmjs.org/request npm http 304 https://registry.npmjs.org/request npm http GET https://registry.npmjs.org/extend npm http GET https://registry.npmjs.org/json-stringify-safe npm http GET https://registry.npmjs.org/forever-agent npm http GET https://registry.npmjs.org/form-data npm http GET https://registry.npmjs.org/mime-types npm http GET https://registry.npmjs.org/node-uuid npm http GET https://registry.npmjs.org/tunnel-agent npm http GET https://registry.npmjs.org/qs npm http GET https://registry.npmjs.org/tough-cookie npm http GET https://registry.npmjs.org/http-signature npm http GET https://registry.npmjs.org/oauth-sign npm http GET https://registry.npmjs.org/hawk npm http GET https://registry.npmjs.org/aws-sign2 npm http GET https://registry.npmjs.org/stringstream npm http GET https://registry.npmjs.org/combined-stream npm http GET https://registry.npmjs.org/isstream npm http GET https://registry.npmjs.org/is-typedarray npm http GET https://registry.npmjs.org/har-validator npm http GET https://registry.npmjs.org/bl npm http GET https://registry.npmjs.org/caseless npm http 304 https://registry.npmjs.org/json-stringify-safe npm http 304 https://registry.npmjs.org/extend npm http 304 https://registry.npmjs.org/forever-agent npm http 304 https://registry.npmjs.org/form-data npm http 304 https://registry.npmjs.org/node-uuid npm http 304 https://registry.npmjs.org/mime-types npm http 304 https://registry.npmjs.org/tunnel-agent npm http 304 https://registry.npmjs.org/qs npm http 304 https://registry.npmjs.org/tough-cookie npm http 304 https://registry.npmjs.org/http-signature npm http 304 https://registry.npmjs.org/oauth-sign npm http 304 https://registry.npmjs.org/hawk npm http 304 https://registry.npmjs.org/aws-sign2 npm http 304 https://registry.npmjs.org/stringstream npm http 304 https://registry.npmjs.org/combined-stream npm http 304 https://registry.npmjs.org/isstream npm http 304 https://registry.npmjs.org/is-typedarray npm http 304 https://registry.npmjs.org/har-validator npm http 304 https://registry.npmjs.org/bl npm http 304 https://registry.npmjs.org/caseless npm WARN engine hawk@3.1.2: wanted: {"node":">=0.10.32"} (current: {"node":"v0.10.22","npm":"1.3.14"}) npm http GET https://registry.npmjs.org/delayed-stream npm http GET https://registry.npmjs.org/mime-db npm http GET https://registry.npmjs.org/async npm http 304 https://registry.npmjs.org/delayed-stream npm http 304 https://registry.npmjs.org/mime-db npm http 304 https://registry.npmjs.org/async npm http GET https://registry.npmjs.org/readable-stream npm http GET https://registry.npmjs.org/sshpk npm http GET https://registry.npmjs.org/assert-plus npm http GET https://registry.npmjs.org/jsprim npm http 304 https://registry.npmjs.org/readable-stream npm http 304 https://registry.npmjs.org/sshpk npm http 304 https://registry.npmjs.org/assert-plus npm http 304 https://registry.npmjs.org/jsprim npm http GET https://registry.npmjs.org/chalk npm http GET https://registry.npmjs.org/commander npm http GET https://registry.npmjs.org/is-my-json-valid npm http GET https://registry.npmjs.org/pinkie-promise npm http 304 https://registry.npmjs.org/commander npm http 304 https://registry.npmjs.org/chalk npm http 304 https://registry.npmjs.org/is-my-json-valid npm http 304 https://registry.npmjs.org/pinkie-promise npm http GET https://registry.npmjs.org/pinkie npm http GET https://registry.npmjs.org/verror/1.3.6 npm http GET https://registry.npmjs.org/extsprintf/1.0.2 npm http GET https://registry.npmjs.org/json-schema/0.2.2 npm http GET https://registry.npmjs.org/ansi-styles npm http GET https://registry.npmjs.org/escape-string-regexp npm http GET https://registry.npmjs.org/has-ansi npm http GET https://registry.npmjs.org/strip-ansi npm http GET https://registry.npmjs.org/supports-color npm http 304 https://registry.npmjs.org/pinkie npm http 304 https://registry.npmjs.org/escape-string-regexp npm http 304 https://registry.npmjs.org/has-ansi npm http 304 https://registry.npmjs.org/ansi-styles npm http 304 https://registry.npmjs.org/strip-ansi npm http 304 https://registry.npmjs.org/supports-color npm http GET https://registry.npmjs.org/graceful-readlink npm http 304 https://registry.npmjs.org/verror/1.3.6 npm http 304 https://registry.npmjs.org/extsprintf/1.0.2 npm http 304 https://registry.npmjs.org/graceful-readlink npm http 304 https://registry.npmjs.org/json-schema/0.2.2 npm http GET https://registry.npmjs.org/ansi-regex npm http 304 https://registry.npmjs.org/ansi-regex npm http GET https://registry.npmjs.org/isarray/0.0.1 npm http GET https://registry.npmjs.org/process-nextick-args npm http GET https://registry.npmjs.org/string_decoder npm http GET https://registry.npmjs.org/util-deprecate npm http GET https://registry.npmjs.org/core-util-is npm http GET https://registry.npmjs.org/inherits npm http 304 https://registry.npmjs.org/string_decoder npm http 304 https://registry.npmjs.org/isarray/0.0.1 npm http 304 https://registry.npmjs.org/process-nextick-args npm http 304 https://registry.npmjs.org/util-deprecate npm http 304 https://registry.npmjs.org/core-util-is npm http 304 https://registry.npmjs.org/inherits npm http GET https://registry.npmjs.org/asn1 npm http GET https://registry.npmjs.org/dashdash npm http GET https://registry.npmjs.org/jsbn npm http GET https://registry.npmjs.org/jodid25519 npm http GET https://registry.npmjs.org/ecc-jsbn npm http GET https://registry.npmjs.org/tweetnacl npm http 304 https://registry.npmjs.org/dashdash npm http 304 https://registry.npmjs.org/jsbn npm http 304 https://registry.npmjs.org/jodid25519 npm http 304 https://registry.npmjs.org/tweetnacl npm http 304 https://registry.npmjs.org/asn1 npm http 304 https://registry.npmjs.org/ecc-jsbn npm http GET https://registry.npmjs.org/generate-function npm http GET https://registry.npmjs.org/generate-object-property npm http GET https://registry.npmjs.org/xtend npm http GET https://registry.npmjs.org/jsonpointer/2.0.0 npm http 304 https://registry.npmjs.org/generate-function npm http 304 https://registry.npmjs.org/generate-object-property npm http 304 https://registry.npmjs.org/xtend npm http 304 https://registry.npmjs.org/jsonpointer/2.0.0 npm http GET https://registry.npmjs.org/hoek npm http GET https://registry.npmjs.org/boom npm http GET https://registry.npmjs.org/cryptiles npm http GET https://registry.npmjs.org/sntp npm http 304 https://registry.npmjs.org/hoek npm http 304 https://registry.npmjs.org/boom npm http 304 https://registry.npmjs.org/cryptiles npm http 304 https://registry.npmjs.org/sntp npm WARN engine hoek@2.16.3: wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.22","npm":"1.3.14"}) npm WARN engine boom@2.10.1: wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.22","npm":"1.3.14"}) npm WARN engine cryptiles@2.0.5: wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.22","npm":"1.3.14"}) npm http GET https://registry.npmjs.org/is-property npm http 304 https://registry.npmjs.org/is-property npm http GET https://registry.npmjs.org/assert-plus npm http 304 https://registry.npmjs.org/assert-plus iobroker.geofency@0.0.1 node_modules/iobroker.geofency └── request@2.67.0 (is-typedarray@1.0.0, aws-sign2@0.6.0, forever-agent@0.6.1, caseless@0.11.0, stringstream@0.0.5, tunnel-agent@0.4.2, oauth-sign@0.8.0, isstream@0.1.2, json-stringify-safe@5.0.1, extend@3.0.0, node-uuid@1.4.7, combined-stream@1.0.5, qs@5.2.0, tough-cookie@2.2.1, form-data@1.0.0-rc3, mime-types@2.1.9, bl@1.0.0, har-validator@2.0.5, http-signature@1.1.0, hawk@3.1.2)
Gruss Sven
-
Hallo,
hervorragend! Habe den Adpter schon unter CCU.IO genutzt und bin wirklich froh, dass du ihn zu ioBroker portiert hast. Er funktioniert ohne Murren.
Danke und Gruß,
Pix
-
Ich habe dich zu Collaborators hinzugefügt.
Du kannst direkt dorthin puschen. Oder falls du bei sich den lassen willst, dann werde ich aus ioBroker Organisation löschen.P.S. Habe 2 Push-Request gestellt.
-
@Bluefox: Cool, danke!
Ich habe die Pfade nun auf iobroker/iobroker.gefency angepasst und als Version 0.0.2 auf npm publiziert - und dich als collaborator zum npm dazugefügt.
viele Grüsse
Daniel
-
@Sven
> Ich wollte den adapter testen, allerdings tauchen bei der install warnungen auf und der Adapter leider nicht im Admin.
hmm.. sieht eigetnlich nur nach Warnungen ein. Deine nodejs Version scheint nicht die gewünschte zu sein.
Hast du nach dem npm install auch ein Refresh der Adapter im Admin-Gui gemacht?
viele Grüsse
Daniel
-
Hallo Daniel,
leider ist auch nach dem refresh nichts unter Adapter erschienen. Allerdings gibt es auch keine neuere nodejs Version die mir im Admin angezeigt wird.
Aber mal anders, nachdem du hinzugefügt bist für den Adapter, müsste dieser doch eh mit dabei sein. Oder?
Gruß Sven
Gesendet von iPhone mit Tapatalk
-
noch eine blöde Frage: Von wo aus hast du npm aufgerufen? Du solltest dich dafür im iobroker Verzeichnis befinden.
viele Grüsse
Daniel
P.S.
es geht nicht um die Version von ioBroker, sondern um die node.js Version - die lässt sich nich im GUI updaten :roll:
-
Hey vielen Dank,
ich habe den Ordner natürlich nicht vorher gewechselt. Ich Depp!
Vielen dank nun funktioniert es soweit 100%
Danke für den tollen Adapter.
gruß Sven
-
Top!!! Funktioniert auf Anhieb!!! Vielen Dank!
-
Hallo, ich nochmal
ich habe heute die geofancy Meldung bekommen, das der Status abwesend nicht gesetzt werden kann.
Ist ja auch logisch, der Url nach habe ich ja auch die ip des raspi/Port/ablageort eingegeben. So ist diese von außen natürlich nicht erreichbar.
Kann ich nun die "feste ip"/Port/ablageort nehmen? Denn eigentlich fehlt ja die Zuordnung zum raspi dann oder?
2. Frage
mit welchem Widget habt ihr die Visualisierung für an bzw. Abwesenheit gemacht?
Frage 3
Ist es möglich das ich ein Icon als Widget nutze, das bei Anwesenheit grün/ bei Abwesenheit rot/ und bei Anwesenheit im Büro gelb ist?
Und wenn ja wie kann man das anlegen?
Ergibt ein weiterer geofancy Ort wenn ich den unter raspi ip/Port/ablageort 2 ?
Danke schonmal für eure Mühe :-))
Gruß Sven
Gesendet von iPhone mit Tapatalk
-
Hallo Sven:
zu 2 und 3) damit:
!
Metro Tile ValueList Widget[{"tpl":"tplMetroTileList8","data":{"oid":"geofency.0.pix.Zu Hause.entry","visibility-cond":"==","visibility-val":1,"label0":"abwesend","label1":"zu Hause","label2":"Value list","label3":"Value list","label4":"Value list","label5":"Value list","label6":"Value list","label7":"Value list","bg_class0":"bg-transparent","bg_class1":"bg-transparent","bg_class2":"bg-indigo","bg_class3":"bg-indigo","bg_class4":"bg-indigo","bg_class5":"bg-indigo","bg_class6":"bg-indigo","bg_class7":"bg-indigo","icon_class0":"icon-custom","icon_class1":"icon-custom","icon_class2":"icon-pencil","icon_class3":"icon-pencil","icon_class4":"icon-pencil","icon_class5":"icon-pencil","icon_class6":"icon-pencil","icon_class7":"icon-pencil","icon_badge0":"icon-custom","icon_badge1":"icon-custom","icon_badge2":"icon-pencil","icon_badge3":"icon-pencil","icon_badge4":"icon-pencil","icon_badge5":"icon-pencil","icon_badge6":"icon-pencil","icon_badge7":"icon-pencil","badge_bg_class0":"","badge_bg_class1":"","badge_bg_class2":"bg-cyan","badge_bg_class3":"bg-cyan","badge_bg_class4":"bg-cyan","badge_bg_class5":"bg-cyan","badge_bg_class6":"bg-cyan","badge_bg_class7":"bg-cyan","brand_bg_class0":"bg-darkOrange","brand_bg_class1":"bg-olive","brand_bg_class2":"ribbed-steel","brand_bg_class3":"ribbed-steel","brand_bg_class4":"ribbed-steel","brand_bg_class5":"ribbed-steel","brand_bg_class6":"ribbed-steel","brand_bg_class7":"ribbed-steel","badge_top":"0","badge_left":"0","name":"Geoposition J","label_prepend":"","comment":"Daten aus Handyortung","icon0":"/icons-mfd-png/status_man.png","icon1":"/icons-mfd-png/status_man.png","icon_width":"79","icon_height":"79","icon_top":"22","icon_left":"32"},"style":{"left":"588px","top":"434px","z-index":"25","width":"137px","height":"137px"},"widgetSet":"metro"}]
Jetzt zu meinem Problem:
Ich nutze ioBroker rauf Mac OS X. Leider ist der Mac, nachdem Geofency den Status geändert hat, nicht mehr erreichbar. Er läuft noch, aber weder Bildschirmfreigabe noch Zugriffe auf die Webserver funktionieren noch (also kein VIS, etc..). Ich habe es durch Probieren definitiv auf den Adapter eingrenzen können.
<size size="50">Kann ich den Port (7999) ändern, den der Adapter für seinen Webserver nutzt? Habe das Gefühl, der ist schon belegt.</size>
EDIT: Peinlich, peinlich. GIbt es ja in den Einstellungen :oops: :oops: :oops:
Gruß
Pix
-
Hallo zusammen und Danke Dschaedl für den Adapter,
leider bin ich nicht in der Lage ihn zu installieren. Nach der Eingabe von "npm install iobroker.geofency" im Ordner "/node modules" ist alles wunderbar ohne Mucken durchgelaufen. Es wird auch das Verzeichnis iobroker.geofency angelegt nur leider findet sich der Adapter nun nirgendwo wieder. Weder im Admin-GUI noch in der Konsole unter "list adapters"…
Habe ich noch irgendetwas nicht bedacht oder wo könnte der Fehler bei mir liegen?
Vielen Dank und Grüße,
Rob
-
Nicht im Ordner node_modules installieren, sondern eine Ebene höher.
npm install legt automatisch seine Software in den node_modules Ordner
Gesendet von meinem iPhone mit Tapatalk
-
Hey, Danke für die schnelle Anwort versteckt.
So hatte ich es eigentlich schon als allererstes gemacht. Habe jetzt nochmal das Verzeichnis gelöscht und so installiert, wie von dir beschrieben und siehe da, der Adapter taucht auf… :shock:
Vielen Dank!
-
Kann jemand ausprobieren, ob die neue Änderungen funktionieren?
cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.geofency/tarball/master
Ich habe kein iPhone.
-
Hallo Bluefox,
was hast du denn geändert?
Also auf was muss ich achten?
Gruß Sven
Gesendet von iPhone mit Tapatalk
-
Hallo Bluefox,
was hast du denn geändert?
Also auf was muss ich achten?
Gruß Sven
Gesendet von iPhone mit Tapatalk `
Ich habe ein Pull-Request gemerged. Was das genau macht weiß ich nicht:https://github.com/ioBroker/ioBroker.ge … 349de2871f
Vermutlich werden neue States erzeugt: "lastLeave", "lastEnter"
-
Hallo Bluefox,
ich teste das nachher wenn ich zu Hause bin.
@all
kann mir nochmal einer sagen welche URL ihr angegeben habt bei Geofancy? Denn der Status kann nicht gesetzt werden sagt geofancy.
Und was ich auch versuche, es ändert sich leider nichts
Gruß Sven