NEWS
Adapter: Geofency
-
Kann jemand ausprobieren, ob die neue Änderungen funktionieren?
cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.geofency/tarball/master ```` `
funktioniert bestens bei mir. :mrgreen:
Daniel
-
Hallo.
Geofency läuft bei mir soweit.
Allerdings habe ich ein Phänomen entdeckt, welches mir einige Probleme bereit.
Ich kann nicht sagen, ob es ab geofency Adapter liegt, oder an etwas anderem.
Wenn ich per Web Hook einen neuen Status übermittele, dann ich diesen aktuell unter "Ereignisse" und im Log.
<size size="85">geofency-0 2016-01-22 13:04:22 info adapter geofency received webhook from device marc with values: name: Akazienweg 4, entry: 1</size>
Wo ich ihn allerdings NICHT sehe, ist unter Objekte!
Dort aktualisiert sich der Status nicht!
geofency.0.marc.Akazienweg 4.entry ändert sich nicht!
Wie gesagt… keine Ahnung, ob das an geofency, oder an was anderem liegt.
Aktuell ist es z.B. auch so, dass ein createState im JS keinen solchen im JS Modul erzeugt...
alles sehr seltsam.
-
Hallo,
Vielen Dank, bei mir funktioniert es nun. Ich hatte eine falsche Portweiterleitung eingerichtet.
Darüber hinaus hatte ich den Namen meines Ortes von Straßenname in zu Hause geändert. Dadurch stimmte die Variable leider nicht mehr. Und die neue Variable war erst nicht zu finden.
Aber nun geht's. Vielen Dank nochmal.
Nun bleibt nur noch die Frage ob ich mit einem Widget 2 Variablen abfragen kann?
Zu Hause grün
Büro gelb
Nicht zu Hause und nicht im Büro rot
Und kann ich die Variable irgendwie auch in der Ccu anzeigen lassen, um sie da für Programme zu nutzen?
Gruß Sven
Gesendet von iPhone mit Tapatalk
-
Es gibt neue Version von Geofency von soaf.
Weil ich es nicht testen kann, konnte jemand das ausprobieren und Bescheid sagen?
cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.geofency/tarball/master
Falls dann alles OK ist, dann publische ich das auf npm.
Danke,
Bluefox
-
Hallo,
ist es möglich eine globale Variable im Adapter anzulegen, welche die letze Aktion wiedergibt?
z.B. "xy hat die Arbeitsstelle betreten" oder "xy ist zu Zuhause angekommen"
Oder hat einer von euch ein fertiges Script mit welchem ihr das gelöst habt?
Bin ganz frisch und tue mich noch etwas schwer mit dem Scripten.
9054_1-abwesend.jpg
9054_2-anwesend.jpg -
Klasse, dass es Geofency nun als Adapter gibt Top!
Folgende Punkte sind mir aufgefallen:
Adapter Version 0.1.1 (neuste Version)
1.) Kategorie: Wartung
Passt nicht. Ich wüsste aber auch nicht die richtige Kategorie
2.) atHome funktioniert bei mir nicht
Ich habe als Ortsnahme für Zuhause Wohnung eingetragen.
Mein Device ist in der Webholk-URL mit 0 bezeichnet.
Der Datenpunkt 0.Wohnung.entry ändert sich auch korrekt.
Die Datenpunkte atHome und atHomeCount bleiben leer.
-
Wofür könnte man das brauchen, wenn die übergeordnete Variable at Home sich auch ändert?
Mir sind die zwei "globalen" Variablen auch aufgefallen und das sie sich nicht ändern, hab das aber auf meine fehlprogrammierung des Adapters geschoben.
Ich hatte gehofft, dass es sich um einen String handelt, welcher den aktuellen Standort respetive den letzten Standort im Klartext wiedergibt. Der count könnte so schön die verstrichene Zeit in min. Wiedergeben…das wäre doch was :roll:
Gruß
-
Hi Mr. Burns,
ich verstehe das so:
atHome
hier werden die Personen eingetragen, die derzeit am definierten Ort "zuhause" sind.
Die Namen der Personen sind dann die, die in der URL in geofency eingetragen sind.
z.B: "Gabi, Horst,"
atHomeCount
Die Anzahl der Personen, die gerade zuhause sind.
Im Beispiel oben: 2
Kann man auch selbst per Script lösen. Mit den beiden Datenpunkten ist diese Info für eine Anwesenheitserkennung über Geofency direkt als State verfügbar, ohne dass man ein Script verwenden muss.
Was Du möchtest kannst Du auch in Javascript lösen.
Du machst je Person ein on( mit RegEx auf den Ort) und erhält damit immer den jeweiligen aktuellen Ort (oder verlassenen Ort) der entsprechenden Person.
Meine Wünsche an den Adapter:
-
Leerzeichen in Ortsnamen werden in _ gewandelt. ein Punkt bleibt ein Punkt, z.B. in Dr. xyz. Damit habe ich eine Ebene mehr im Datensatz. Ggf. Konfigurierbar, ob Punkte auch im _ umgewandelt werden sollen.
-
die Info ob iBeacon oder Ort kann ich aus dem Device Object mit getObject extrahieren. schön wäre ggf. ein Datenpunkt mit der Info, bzw. konfigurierbar, dass man iBeacon Infos ausblenden kann. Wenn mein Auto in der Nähe meines Büros parkt, bin ich z.B. über iBeacon im Auto und gleichzeitig im Büro. Bekommt man aber auch per Javascript hin.
-
-
Hallo,
das Ersetzen eines Punktes durch einen Unterstrich habe ich implementiert und dafür einen Pullrequest gestellt.
Nicht ganz verstanden habe ich deinen Wunsch nach der Behandlung eine Beacons. Wenn der Beacon einen
eigenen Ortsnamen hat, kannst Du ihn doch von den Geo-Orten unterscheiden. Eine ggf. übergebene Beacon-ID
als Datenpunkt anzulegen ist aber kein Problem. Aber wo ist der tiefere Sinn, wenn durch den "Ortsnamen" schon
bekannt ist, dass es sich um einen Beacon handelt.
Viele Grüße.
-
Danke soef
ich glaube die Unterscheidung mit den iBeacons braucht man wirklich nicht
-
Ein toller Adapter…
vielen Dank dafür.
Hat schon jemand hinbekommen, das sich die Übergeordnete Variable ändert?
Bei mir bekomme ich das leider nicht hin.
Wenn ja könntet Ihr mal sagen wie Ihr das eingerichtet habt?
Gruß Sven
-
Zwei Punkte noch zum Adapter:
1.)
Die Datenpunkte atHome und atHomeCount füllen sich nicht
2.)
bei iBeacons kann man einstellen, dass die Adresse des Standorts aktualisiert wird.
Diese Daten werden in keinem Datenpunkt abgebildet (latitude, longitude, address)
Anwendungsfall:
iBeacon im Auto. ioBroker weiss, wo das Auto steht.
-
Hallo,
bin nicht so in der Adapterentwickjlung drinn.
Die HomeVariablen werden nicht gefüllt, weil das adapter.getState schief geht:
function setAtHome(userName, body) { if (body.name.toLowerCase() !== adapter.config.atHome.toLowerCase()) return; var atHomeCount, atHome; adapter.getState(stateAtHomeCount, function (err, obj) { if (err || !obj) return; atHomeCount = obj.val; adapter.getState(stateAtHome, function (err, obj) { if (err || !obj) return; atHome = obj.val ? JSON.parse(obj.val) : []; var idx = atHome.indexOf(userName); if (body.entry === '1') { if (idx < 0) { atHome.push(userName); adapter.setState(stateAtHome, JSON.stringify(atHome), true); } } else { if (idx >= 0) { atHome.splice(idx, 1); adapter.setState(stateAtHome, JSON.stringify(atHome), true); } } if (atHomeCount != atHome.length) adapter.setState(stateAtHomeCount, atHome.length, true); }); }); }
Warum: Aus meiner Sicht sieht alles gut aus…
err und obj sind beide "null".
=> Fehler? Beide States sind vorhanden, allerdings leer.
Hier müßte also 0 und "" zurück gegeben werden?
-
Hallo,
Umgehungslösung:
atHomeCount mit "0"
und
atHome mit "[]"
befüllen. Danach läuft es.
-
Hallo,
Beim Hinzufügen eines zweiten Gerätes:
raspberrypi 2016-03-07 00:43:19 error instance system.adapter.geofency.0 terminated with code 6 (uncaught exception) geofency-0 2016-03-07 00:43:19 info terminating http server on port 8000 TypeError: 2016-03-07 00:43:19 error at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/index.js:247:12) TypeError: 2016-03-07 00:43:19 error at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20) TypeError: 2016-03-07 00:43:19 error at Decoder. (/opt/iobroker/node_modules/component-bind/index.js:21:15) TypeError: 2016-03-07 00:43:19 error at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:333:8) TypeError: 2016-03-07 00:43:19 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20) TypeError: 2016-03-07 00:43:19 error at Manager. (/opt/iobroker/node_modules/component-bind/index.js:21:15) TypeError: 2016-03-07 00:43:19 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:229:12) TypeError: 2016-03-07 00:43:19 error at Socket.onack (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:305:9) TypeError: 2016-03-07 00:43:19 error at Socket. (/opt/iobroker/node_modules/iobroker.geofency/geofency.js:186:26) TypeError: 2016-03-07 00:43:19 error at setStates (/opt/iobroker/node_modules/iobroker.geofency/geofency.js:140:12) TypeError: 2016-03-07 00:43:19 error Cannot read property 'entry' of undefined uncaught 2016-03-07 00:43:18 error exception: Cannot read property 'entry' of undefined geofency-0 2016-03-07 00:43:18 info adapter geofency received webhook from device ipadwh with values: name: Home, entry: 0
-
Hallo,
Umgehungslösung:
atHomeCount mit "0"
und
atHome mit "[]"
befüllen. Danach läuft es. `
Super analyse! Danke!
Kannst Du ein Pull-Request (heisst das so?) auf Github machen?
Was wäre der beste Weg?in der io-package.json bei beiden Datenpunkten "def": anpassen?
-
Hallo,
hab' die Defaults angepasst. Auch müsste die vorgenommene Änderung am Source die beiden States bei Bedarf beim Start anpassen.
Pull Request ist gestellt. Müsste Bluefox nach seinem Urlaub dann mergen.
Viele Grüße.
-
Hallo zusammen!
Ich oute mich mal als ioBroker Anfänger.
Aktuell habe ich 2 Fragen zu dem Geofency Adapter:
- Was muss ich einstellen, damit https funktioniert?
Nach dem einfachen aktivieren erhalte ich nur diese Meldung im Log:
Error Cannot enable secure web server, because no certificates found: undefined, undefined
- Und ich verstehe nicht, warum es empfohlen ist, einen Reverse-Proxy vor den Dienst zu setzen?
Ob nun die FritzBox weiterleitet oder noch Proxy dazwischen ist, kommt doch auf´s selbe raus, oder?
Kennwort kann doch auch im Adapter aktiviert werden.
Ich danke euch im Voraus!
Gruß
Rene
-
Hallo,
dir fehlen dann wahrscheinlich in den Systemeinstellungen von ioBroker (ganz oben rechts das Zahnrad) die Zertifikate.
Viele Grüße.
-
Danke für deine Antwort.
Ich habe jetzt mal Zertifikate hinzugefügt (zusätzlich zu den Standard-Zertifikaten).
Der Fehler tritt weiterhin auf.
Ich vermute, ich kenne die Stelle nicht, an der man die zu verwendenden Zertifikate definiert.
Die Fehlermeldung sagt ja undefined. Aber in den Parametern und in der Doku finde ich nix.
Beste Grüße
René