Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [Neuer Adapter] ioBroker.places

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Neuer Adapter] ioBroker.places

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

      @Kev0:

      Kannst du mir ein Skript für egigeozone zusammenzaubern?

      Ich weiss nicht wie ich den Syntax auslesen kann. `

      Mal wieder auf die Schnelle:

      var placesInstance          = "places.0";
      var cloudServiceInstance    = "cloud.0.services.custom_egigeofence";
      
      on({id: cloudServiceInstance, change: 'any'}, function (obj) {
          if (obj.newState.val.length > 0) {
              var search = obj.newState.val.substring(1);
              var tmp = JSON.parse('{"' + search.replace(/\//g, '","').replace(/=/g,'":"') + '"}', function(key, value) {
                  return key===""?value:decodeURIComponent(value);
              });
      
              sendTo(placesInstance, {
                      user: tmp.device, 
                      latitude: tmp.latitude, 
                      longitude: tmp.longitude, 
                      timestamp: obj.newState.ts
                  }, function (res) { log('places analyzed telegram position as: ' + JSON.stringify(res)); });
          }
      });
      
      

      Problem dabei ist, dass EgiGeoFence (scheinbar) nur eine ID schickt und keinen "richtigen" Benutzernamen. Das bedeutet, du müsstest im Places-Adapter ein Mapping von der ID auf den gewünschten Benutzer konfigurieren, dann sollte es gehen.

      1 Reply Last reply Reply Quote 0
      • K
        Kev0 last edited by

        dankesehr,

        da ich mittlerweile feststellen musste das egigeozone auch nicht ordnungsgemäß sendet und auch auf eigentlich unterstützten Geräten nicht zu installieren ist, fällt das für mich auch flach.

        Ich habe was sehr interessantes gefunden:

        viewtopic.php?p=144076#p144076

        dazu habe ich dein skript angepasst (sicherlich absolut nicht schön, da ich gar keinen Plan habe)

        `var placesInstance  = "places.0";
        var gslInstance     = "google-sharedlocations.0.user";
        
        // add google-sharedlocations.0 app instances: the name will be taken as username (add mapping in places if necessary)
        var gslUsers        = ["XXXXXUserkennungXXXX"];      
        
        for(var i = 0; i < gslUsers.length; i++) {
            var triggers = [gslInstance + "."+ gslUsers[i] +".lat", gslInstance + "."+ gslUsers[i] +".long"];
            on({id: triggers, change: "ne"}, function (obj) {
                var res = obj.id.split(".");
                var usr = res[3];
                var lat = getState(gslInstance + "."+ usr +".lat").val;
                var lng = getState(gslInstance + "."+ usr +".long").val;
                if (lat && lng) {
                    sendTo(placesInstance, {
                        user: usr, 
                        latitude: lat, 
                        longitude: lng, 
                        timestamp: obj.newState.ts
                    });
                }
            });
        }`
        
        es wäre denke ich der einfachste Geo-Adapter überhaupt wenn .places die funktion von .google-sharedlocations implementieren könnte, bzw du mit dem entwickler vielleicht mal schnackst ;-)[/i]
        
        1 Reply Last reply Reply Quote 0
        • B
          BasGo last edited by

          Ich habe mir den Adapter vorhin mal angeschaut und es sieht nicht so leicht aus, hier eine GPS-Position abgreifen zu können.

          Auf den ersten Blick sieht es so aus, als wenn der Adapter selbst prüft, ob sich ein Benutzer innerhalb eines definierten Orts befindet (also das, was Places ja macht) und erst wenn hier was gefunden wird, wird die Position als Datenpunkt geschrieben. Schöner wäre es, wenn ermittelte Positionen in Form einfacher GPS-Koordinaten pro Benutzer gespeichert würden … dann könnte ich mich dort einhaken 😞

          1 Reply Last reply Reply Quote 0
          • K
            Kev0 last edited by

            komisch ich habe einen Datenpunkt mit Koordinaten erhalten

            466_location.jpg

            den greife ich ab.

            1 Reply Last reply Reply Quote 0
            • X
              x4tlaoguo last edited by

              Hey Leute,

              Fehlermeldungen beim sharedlocations-Adapter treten auf wenn keine Fences angelegt sind (blöder Fehler, ist bei mir bereits gefixt und pushe das heute oder morgen aufs repo).

              Ich finde den places-adapter auch klasse, ich versuche zeitnah eine Schnittstelle bereitzustellen, leider muss ich vorher noch einige DInge erledigen:

              1. Bugfixes (sollte erledigt sein)

              2. Unterstützung von Admin3 (das habe ich mir bisher noch gar nicht angeschaut und ich würde dann sofort alle meine Adapter umstellen)

              Beste Grüße

              Christian

              1 Reply Last reply Reply Quote 0
              • X
                x4tlaoguo last edited by

                Hallo Leute,

                es gibt Neuigkeiten. Der iobroker.google-sharedlocations-Adapter kann die ermittelten Standorte an eine Instanz des iobroker.places-Adapters schicken. Kann das jemand testen? Der Adapter kann von hier https://github.com/t4qjXH8N/ioBroker.go … es_support bezogen werden.

                1 Reply Last reply Reply Quote 0
                • B
                  BasGo last edited by

                  Hi Christian,

                  sehr geil, danke für die Integration, werde es heute Abend direkt mal bei mir testen.

                  Eine Frage hätte ich zu meinem Verständnis: ich hatte letzte Woche mal erste Tests mit deinem Adapter gemacht und mir dabei die Response von Google per Debug ausgeben lassen … darin habe ich aber keine Usernamen gefunden. Woher bekommst du die bzw. was muss ich bei mir noch tun, damit ich auch einen "richtigen" Namen für Positionsangaben bekomme?

                  Viele Grüße

                  Bastian

                  1 Reply Last reply Reply Quote 0
                  • K
                    Kev0 last edited by

                    Hi,

                    @x4tlaoguo:

                    Die aktuelle Verison scheint bis dato durch zu rennen. Was jetzt noch cool wäre, ist eine Unterstützung für die 2-Faktor-Authentifizierung und irgend eine Möglichkeit die Sicherheitswahnungsmails von google beim login abzustellen.

                    Ansonsten top!

                    @BasGo

                    Gibts die Möglichkeit aktuelle Nutzer beim erstellen des Fences mit auf der Karte einzublenden?

                    Ist es machbar das die schon Angelegten Benutzer mit in der Liste erscheinen?

                    Läuft auch schon die ganze Zeit ohne Probleme durch!

                    Geil was ihr hier so reisst !

                    Grüße

                    Kevin

                    1 Reply Last reply Reply Quote 0
                    • B
                      BasGo last edited by

                      @Kev0:

                      Die aktuelle Verison scheint bis dato durch zu rennen. Was jetzt noch cool wäre, ist eine Unterstützung für die 2-Faktor-Authentifizierung und irgend eine Möglichkeit die Sicherheitswahnungsmails von google beim login abzustellen. `

                      Oh ja, das wäre nett, allerdings habe ich hier wenig Hoffnung: der Login, der im Adapter verwendet wird, ist normalerweise für Benutzer gedacht, d.h. es ist eigentlich richtig, dass Google hier warnt/informiert. Der schönste Weg wäre, wenn Google hier (endlich mal) eine API anbieten würde … aber damit würde ich nicht in den nächsten Wochen rechnen, leider 😞

                      @Kev0:

                      Gibts die Möglichkeit aktuelle Nutzer beim erstellen des Fences mit auf der Karte einzublenden? `

                      Kann ich mir gerne mal anschauen. Also einfach als Marker in der Map, in der man die Fences ziehen kann? Das sollte eigentlich schnell machbar sein … vielleicht heute im Laufe des Abends, da kündigt sich bei mir ein wenig "Freizeit" an 🙂

                      @Kev0:

                      Ist es machbar das die schon Angelegten Benutzer mit in der Liste erscheinen? `

                      Welche Liste meinst du? Die mit den Benutzermappings? Eigentlich sollte diese Liste nur Mappings - also wenn Benutzer mit Name XXX reinkommt, dann ändere ihn auf YYY - enthalten und keine Liste der Benutzer, die schon erfasst wurden, dafür gibt es ja die Objekte. Dennoch bin ich bei dir, dass es u.U. einfacher sein könnte, wenn man bereits bekannte Namen sieht und die ggf. direkt ersetzen könnte. Ich mache mir mal Gedanken. 😉

                      1 Reply Last reply Reply Quote 0
                      • O
                        ottokar last edited by

                        Hi,

                        ich hab leider im places Adapter keine Möglichkeit gefunden eine eigene URL zyklisch abzufragen.

                        Ich benutze aktuell meinen eigenen Server um diesem mitzuteilen ob ich zu Hause bin oder nicht.

                        aktuell sendet das Handy(mit Tasker, Egigeozone) halt true oder false an den Server und im Server gibt es unter einer bestimmten url eben dies zurück

                        bis vor kurzem hab ich das von der CCU2 gepollt im minutentakt und in eine sysvar geschrieben, das polling habe ich mittlerweile zum iobroker verlagert.

                        Ich hab ungern Ports nach aussen offen daher löse ich das so und funktionier ganz passable,

                        Mit Tasker wär es ja durchaus möglich das formal lat,long, (usr) an den server zu senden oder im server je nach url den user hinzuzufügen.

                        Könnte man das im Adapter mit einer custom URL + Polling Intervall hinzufügen?

                        Im Server Log sieht das aktuell dann so aus:

                        06.05.2018 11:32 ; false

                        06.05.2018 11:57 ; true

                        06.05.2018 13:09 ; false

                        06.05.2018 17:03 ; true

                        in der abfrage URL werte ich lediglich da true oder false aus, da ich jede Minute abfrage ist das leidlich genau(je nachdem wann das Handy sendet).

                        hier kommt es je nach Tool zu ca. 10 Minuten Abweichung bei der Abwesenheit. Trq64 hat auch super funktionier bis dann Android 8 kam, da sind dann die nächtlichen Aussetzer zu häufig geworden-> Stromsparmodi.

                        Ich hab leider noch nichts gefunden was genauer die Abwesenheit tracked ohne zutun des Users, einen extra Raspy zum BT tracken mag ich nicht aufstellen, (->Thema G-tac Schlüsselanhänger).

                        ein iBeacon werte ich schon zusätzlich aus um die Geschwindigkeit zu erhöhen, dieses wird aber ebenfalls vom Handy aus getracked.

                        Oli

                        1 Reply Last reply Reply Quote 0
                        • B
                          BasGo last edited by

                          Das Polling einer externen URL würde ich persönlich eher mit einem kurzen Script implementieren und nicht direkt im Adapter, weil …

                          Du hast für dich einen Weg mit der externen URL und die ließe sich bestimmt mit wenig Aufwand einbauen. Dann aber kommt der Nächste, der vielleicht zwei URLs abfragen will und/oder komplett andere Werte erhält und diese natürlich auch verarbeiten will. Auch das ließe sich dann natürlich einbauen.

                          Jetzt kommt das "aber": die Komplexität würde immer mehr steigen und streng genommen war genau diese Komplexität der Grund, einen "einfachen" Adapter zu bauen, der sich lediglich mit der Analyse von GPS-Positionen auseinandersetzt und keine Abhängigkeit von irgendwelchen anderen Dingen hat und auch keine Server-Funktionalitäten bereitstellt ... keep it simple 😉 Für mich liegt die gedankliche Grenze immer in dem, was innerhalb des ioBroker-Kosmos "bekannt" ist, d.h. in Strukturen eines anderen Adapters oder auch in Datenpunkten.

                          Nun zu deiner Problematik:

                          Wenn du von deinem Server per Request Daten (Name, Zeit, Position) bekommen kannst (z.B. ein Aufruf einer URL liefert ein JSON zurück), so ist die Weiterleitung in den places-Adapter mit einem kurzen Script (5 bis 6 Zeilen) gemacht. Vorteile: du hast jederzeit die Kontrolle, der Adapter bleibt weiterhin schlank und fokussiert und jeder andere kann eine für seine Situation passende Lösung bauen 🙂

                          1 Reply Last reply Reply Quote 0
                          • O
                            ottokar last edited by

                            Hi,

                            ja klar da hast du recht, ich hab einfach wieder zu kompliziert gedacht , im prinzip mach ich das ja jetzt genau so nur das ich halt nur true oder false abfrage und die Auswertung das Handy erledigt.

                            Ich hab mein Script jetzt mal auf Owntracks umgebaut und integriert, passt so weit und läuft.

                            Eine Frage hab ich noch, wahrscheinlich ist das so einfach das ich einfach wieder zu kompliziert denk 😉

                            gibt der Adapter auch ein einfaches true /false zurück oder muss ich den place String auswerten ?

                            Oli

                            1 Reply Last reply Reply Quote 0
                            • B
                              BasGo last edited by

                              Als Antwort auf ein sendTo bekommst du ein JSON zurück, das du mit

                              var obj = JSON.parse(...)
                              

                              in ein Objekt bekommst. Darin gibt es eine Eigenschaft "atHome":

                              {
                                  "user":         "Name of person",       // name of person (may have been replaced by user mapping)
                                  "latitude":     50.9576191,
                                  "longitude":    6.8272409,
                                  "timestamp":    1520932471000,
                                  "date":         "2018-03-13 10:14:31",  // date extracted from timestamp
                                  "atHome":       false,                  // true if inside the configured radius around ioBroker
                                  "homeDistance": 104898,                 // distance in meters between position and ioBroker
                                  "name":         "",                     // name of place found within the configuration
                                  "address":      "",                     // readable address (if geocoding is active)
                                  "elevation":    "",                     // elevation in meters (if geocoding is active)
                              }
                              
                              

                              Das sollte das sein was du benötigst, oder?

                              1 Reply Last reply Reply Quote 0
                              • O
                                ottokar last edited by

                                Hi,

                                nicht wirklich,

                                ich dachte er schreibt das gleich mit in einen Datenpunkt,

                                aber ist nicht weiter schlimm den kann ich mir ja selbst anlegen und jeweils befüllen..

                                nach einem iobroker restart hat er auch die 4 Default Werte befüllt das reicht mir im Prinzip ja auch schon für "alle Lampen" aus oder "achtung fenster noch offen" wenn keiner mehr da ist

                                (places.0.anybodyAtHome usw… )

                                Passt so weit , Danke für die Hilfe, jetzt muss ich nur noch das passendste Programm auf den Androiden herausfinden welches am

                                Schnellsten den Punkt setzt.

                                Und im Script noch einbauen das er auch nur schreibt wenn sich die Koordinaten auch geändert hab, Kosmetik also 😉

                                PS: ich bau das mit Blockly, so weit ich informiert bin gibts da kein Jason parse Funktion

                                Oli

                                1 Reply Last reply Reply Quote 0
                                • B
                                  BasGo last edited by

                                  @ottokar:

                                  ich dachte er schreibt das gleich mit in einen Datenpunkt, `

                                  Das passiert natürlich auch, aber die Response enthält auch das Ergebnis, ob sich die per sendTo übergebene Position atHome befindet.

                                  @ottokar:

                                  Passt so weit , Danke für die Hilfe, jetzt muss ich nur noch das passendste Programm auf den Androiden herausfinden welches am Schnellsten den Punkt setzt. Und im Script noch einbauen das er auch nur schreibt wenn sich die Koordinaten auch geändert hab, Kosmetik also 😉 `

                                  Wenn du ein gutes Programm hast: immer her mot der Info. Ich muss zugeben, dass ich bei Android etwas enttäuscht bin. Damals bei Apple gab es noch zumindest per iCloud die Chance, halbwegs aktuell ein Phone tracken zu können. Bei Android vermisse ich bis jett eine stabile Lösung, die mir zuverlässig spätestens alle x Minuten oder y Meter Abstand eine Position meldet. OwnTracks klappt, zickt aber manchmal rum, EgiGeoFence das gleiche und Tasker habe ich noch nicht wirklich durchblickt 😞

                                  @ottokar:

                                  Passt so weit , Danke für die Hilfe, jetzt muss ich nur noch das passendste Programm auf den Androiden herausfinden welches am Schnellsten den Punkt setzt. Und im Script noch einbauen das er auch nur schreibt wenn sich die Koordinaten auch geändert hab, Kosmetik also 😉 `

                                  Sorry, bei Blockly bin ich leider raus, schreibe selbst nur JavaScript. Aber Blockly kann kein JSON parsen? Irgendeinen (anderen) Weg wird es aber wohl geben … hoffe ich.

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

                                    Hallo,

                                    eigentlich finde ich ja die Abwesenheitserkennung mit Hilfe der Google-Koordinaten, also mit google-sharedlocations, ideal, da man dann auf Apps wie egigeozone, geofence, owntrack etc ganz verzichten könnte. Aber leider habe ich bisher noch nicht den richtigen Zugang dazu gefunden und habe keine Ahnung, wie ich den Adapter einrichten soll. Vielleicht kann mir ja hier jemand helfen.

                                    Google-sharedlocations ist installiert, Benutzername und Passwort sind eingegeben, das Objekt 'google-sharedlocations.0.info.connection' hat den Wert true. Und nun?

                                    Muss ich in Google-Maps noch irgendwas einstellen? In der Beschreibung des Adapters heißt es

                                    > It can not retrieve the location of the user that is used to access google.

                                    Bedeutet das, dass ich meine eigenen Koordinaten gar nicht sehen kann und erst noch einen Nutzer einrichten muss, der mir seine Koordination frei gibt? Sorry, aber ich stehe ziemlich auf dem Schlauch. Vielleicht kann mir jemand auf die Sprünge helfen.

                                    Gruß

                                    Strizz

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      NetFritz last edited by

                                      Hallo

                                      Google-sharedlocations ist installiert, Benutzername und Passwort habe ich erstmal so gelassen .

                                      Das Objekt 'google-sharedlocations.0.info.connection' hat den Wert true .

                                      Wie komm ich nun weiter?

                                      Gruß NetFritz

                                      1 Reply Last reply Reply Quote 0
                                      • N
                                        NetFritz last edited by

                                        Hallo

                                        Mal in der Adaoter index.htm geschaut und dort gesehen das von

                                        google_username": "google_password": eingetragen werden muss.

                                        Habe ich nachgeholt aber keine änderung.

                                        In der Places Konfig ist der API-Schlüssel für Google Maps auch eingetragen.

                                        Und nun, weis keiner einen Rat?

                                        Gruß NetFritz

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          BasGo last edited by

                                          Könntest du die Instanz mal so konfigurieren, dass Debug-Meldungen ins Log geschrieben werden und uns darüber weitere Informationen zukommen lassen?

                                          Der Google-Maps-Key ist prinzipiell unwichtig: er wird nur zur Darstellung der Google-Maps-Karte in der Konfiguration des places-Adapters verwendet. Viel wichtiger sind in deinem Fall aber die Zugangsdaten im google-sharedlocations-Adapter, deshalb: bitte diese Instanz im ioBroker unter Instanzen derart ändern, dass das Log-Level auf "Debug" steht, dann kurz später ins Log gucken und schauen, ob da Fehler kommen :?:

                                          1 Reply Last reply Reply Quote 0
                                          • N
                                            NetFritz last edited by

                                            Hallo

                                            Debug hatte ich schon heute Mittag eingeschaltet.

                                            google-sharedlocations.0	2018-06-04 17:41:50.051	debug	system.adapter.admin.0: logging true
                                            google-sharedlocations.0	2018-06-04 17:40:24.586	info	Checking fences.
                                            google-sharedlocations.0	2018-06-04 17:40:24.585	debug	Response: OK
                                            google-sharedlocations.0	2018-06-04 17:40:24.415	info	Polling locations.
                                            google-sharedlocations.0	2018-06-04 17:30:24.547	info	Checking fences.
                                            google-sharedlocations.0	2018-06-04 17:30:24.546	debug	Response: OK
                                            google-sharedlocations.0	2018-06-04 17:30:24.404	info	Polling locations.
                                            google-sharedlocations.0	2018-06-04 17:20:24.538	info	Checking fences.
                                            google-sharedlocations.0	2018-06-04 17:20:24.537	debug	Response: OK
                                            google-sharedlocations.0	2018-06-04 17:20:24.394	info	Polling locations.
                                            google-sharedlocations.0	2018-06-04 17:10:24.537	info	Checking fences.
                                            google-sharedlocations.0	2018-06-04 17:10:24.535	debug	Response: OK
                                            google-sharedlocations.0	2018-06-04 17:10:24.382	info	Polling locations.
                                            
                                            

                                            Gruß NetFritz

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            834
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            28
                                            99
                                            20771
                                            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