Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Adapter: Geofency

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Adapter: Geofency

    This topic has been deleted. Only users with topic management privileges can see it.
    • Mr. Burns
      Mr. Burns last edited by

      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

      1 Reply Last reply Reply Quote 0
      • ruhr70
        ruhr70 last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • Mr. Burns
          Mr. Burns last edited by

          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ß

          1 Reply Last reply Reply Quote 0
          • ruhr70
            ruhr70 last edited by

            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.

            1 Reply Last reply Reply Quote 0
            • S
              soef last edited by

              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.

              1 Reply Last reply Reply Quote 0
              • ruhr70
                ruhr70 last edited by

                Danke soef 🙂

                ich glaube die Unterscheidung mit den iBeacons braucht man wirklich nicht 🙂

                1 Reply Last reply Reply Quote 0
                • S
                  Sven2013 last edited by

                  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

                  1 Reply Last reply Reply Quote 0
                  • ruhr70
                    ruhr70 last edited by

                    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.

                    1 Reply Last reply Reply Quote 0
                    • sissiwup
                      sissiwup last edited by

                      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?

                      1 Reply Last reply Reply Quote 0
                      • sissiwup
                        sissiwup last edited by

                        Hallo,

                        Umgehungslösung:

                        atHomeCount mit "0"

                        und

                        atHome mit "[]"

                        befüllen. Danach läuft es.

                        1 Reply Last reply Reply Quote 0
                        • sissiwup
                          sissiwup last edited by

                          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
                          
                          1 Reply Last reply Reply Quote 0
                          • ruhr70
                            ruhr70 last edited by

                            @sissiwup:

                            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?

                            https://github.com/ioBroker/ioBroker.ge … ckage.json

                            1 Reply Last reply Reply Quote 0
                            • S
                              soef last edited by

                              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.

                              1 Reply Last reply Reply Quote 0
                              • R
                                rene_k last edited by

                                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

                                1 Reply Last reply Reply Quote 0
                                • S
                                  soef last edited by

                                  Hallo,

                                  dir fehlen dann wahrscheinlich in den Systemeinstellungen von ioBroker (ganz oben rechts das Zahnrad) die Zertifikate.

                                  Viele Grüße.

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    rene_k last edited by

                                    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é

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      soef last edited by

                                      Hallo,

                                      irgendwie ist das nicht vollständig implementiert. Wahrscheinlich fehlen in deiner Adapter.Config die Namen der zu verwendenden Zertifikate.

                                      Öffne einmal im ioBroker-Admin den "Objecte" Tap, aktiviere oben in der Toolbar "Zeige Systemobjecte" und suche den Eintrag "system.adapter.geofency".

                                      In der gefundenen Zeile dann ganz rechts auf das Zahnrad klicken. Unter dem Tap "Raw" das "native" Object betrachten.

                                      Für die Zertifikate sind die beiden Einträge "certPrivate" und "certPublic" wie hier unten notwendig. Die Konfiguration dieser Werte wurde wahrscheinlich vergessen.

                                        ...
                                        "native": {
                                          "port": 7999,
                                          "ssl": false,
                                          "user": "user",
                                          "pass": "password",
                                          "atHome": "Home",
                                          "certPrivate": "defaultPrivate",
                                          "certPublic": "defaultPublic",
                                          "usessl": false,
                                          "devices": "iPhone-xy"
                                        },
                                        ...
                                      
                                      

                                      Vor Anpassung dieses Objects den Geofency Adapter einmal beenden und nach erfolgter Änderung wieder starten.

                                      Viele Grüße.

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        Sukram last edited by

                                        Hallo zusammen,

                                        ich habe mal eine Frage zu diesem Adapter. Ich bin noch relativ neu im HM-Bereich und es kann sein das ich hier voll auf dem Holzweg bin. :?

                                        Ich habe eine CCU2, ein dutzend Aktoren, einen Raspberry 2 mit ioBroker und dem Geofency Adapter sowie den hm-rega und hm-rcp Adaptern.

                                        Das Ändern der Geofency Status für unsere beiden iPhones funktioniert in ioBroker auch wunderbar. Jetzt kommt aber mein Knackpunkt:

                                        Wie bekomme ich diese beiden States in die CCU oder wie kann ich da mit den States als Variable arbeiten?

                                        Grüße Markus

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          pix last edited by

                                          Hallo,

                                          willkommen hier im Forum.

                                          Du kannst den HM-REGA Adapter nutzen, um die States aus dem Geofency Adapter in eine Homematic Variable zu schreiben.

                                          • Variable in Homematic anlegen

                                          • rega-Adapter neu synchronisieren bzw neu starten

                                          • mini javascript anlegen:````
                                            on("geofency.0.NAME.Zu_Hause.entry"/entry/, hm-rega.0.NUMMERDERCCUVARIABLE); // für jede Variable diese zeile kopieren und anpassen

                                            
                                            
                                          • fertig; bei Änderung des Geofency Status, wird der gleiche Wert in die CCU Variable geschrieben.

                                          Gruß

                                          Pix

                                          PS: Bitt in Zukunft für eine neue Frage einfach einen neuen Thread mit passendem Titel (zB "Frage: geofency Status in CCU übertragen") aufmachen, danke.

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            Sven2013 last edited by

                                            Hallo,

                                            ich wollte mich hier nochmal melden, da die Variablen entry und leave leider bisher noch gleichzeitig geändert werden. Dazu gibt es auch schon einen Eintrag im GIT. Da ich die Funktion bisher eigentlich immer genutzt habe, würde ich gerne wissen ob ich die Möglichkeit habe wieder zu einer "älteren" Version des Adapters zurück zu kehren, in dem es noch funktioniert hat.

                                            Wenn ja wie?

                                            Oder ist da schon jemand dran das Problem zu lösen? Oder kann ich bei der Lösung in Form von Tests behilflich sein?

                                            Adapter programmieren kann ich leider nicht.

                                            Danke Gruß Sven

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            678
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            50
                                            205
                                            46421
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo