NEWS
Test Adapter google-sharedlocations2
-
@Garfonso
Erster Test, der Adapter holt sich beim ersten Start einen Cookie. Damit kann er sich offenbar nicht anmelden.No shared locations found in the response, probably not logged in.Dann habe ich manuell einen Cookie aus Chrome geholt und ihn in den Datenpunkt eingetragen. Das hat der Adapter erkannt und auch gleich Positionsdaten abgerufen. (Warum die Cookies aus Chrome und Puppeteer so unterschiedlich aussehen weiß ich nicht)
Nach ca. 2h ist der Cookie abgelaufen:Trying to login to Google to get new cookies. Obtained new cookies from Google login.Und er ruft mit dem neuen "andersartigen" Cookie die Positionsdaten brav weiter ab.
Vielen Dank! Natürlich auch an @david-g. !@krys
Ich meine Locations bietet dir mehr Möglichkeiten. Du legst quasi einmalig Nutzer und Orte an und der Adapter sagt dir wer wo ist.
Hat den Vorteil, wenn man noch andere "Ortungsadapter" nutzt kann man die Daten da auch hinsenden.
Ich schicke z.B. meine Positionsdaten minütlich bei längeren Autofahrten via Owntracks auch an den Places Adapter. So kann meine Holde quasi live sehen wo ich bin. Google macht ja kein Echtzeittracking.meinst du Places? Das habe ich mir noch nicht genauer angeschaut und habe da noch keinen Ansatz.
War mit der bisherigen Lösung über den Adapter von Garfonso mehr als zufrieden.Muss ich mich wohl einfuchsen. Nutze iOS und zusätzlich noch Geofency.
Vielleicht hast du noch 2-3 Stichworte, die mir auf die Sprünge helfen :D
-
@BananaJoe
Der Adapter bringt alles mit. Sollte auch unter Linux (wo von iobroker unterstüzt) die ganzen Abhängigkeiten installieren.(falls die Frage nach dem puppeteer Adapter war: der wird nicht benötigt und ist unabhängig von diesem Adapter. puppeteer ist halt die Technologie hinter beiden Adaptern jetzt :-) )
@David-G. sagte in Test Adapter google-sharedlocations2:
Error in puppeteer: Timed out after waiting 30000ms
Hm. Das kommt, wenn er an einem Schritt vom login nicht weiter kam... das sind ja mehrere Schritte, Eingabefeld für Username finden, Weiter klicken, Eingabefeld für Passwort finden, Weiter klicken. Bei jedem kann dieser Fehler kommen (oder auch überhaupt beim Verbindungsaufbau, vermutlich). Leider hab ich da bisher nicht viel bessere Fehlermeldungen bekommen. Da muss ich mir nochwas überlegen (debug log sagt extra immer an, welchen Schritt er als nächstes versucht).
Ging es danach?
@Garfonso sagte in Test Adapter google-sharedlocations2:
Ging es danach?
Ja,
Email korrigiert unf alles lies top.
Offtopic:
Places nutze ich auch.
Finde ich sehr praktisch. Gibt noch ein paar nützliche DPs und mache Geräte orte ich nicht über google shared locations.
Da ist die zentrale Anlaufstelle praktisch.
Aber A kann man es ja selber über send to an Places senden und B sollte der neue Adapter ja erstmal an sich rund laufen bis die weiteren (gewohnten) Features rein kommen. -
meinst du Places? Das habe ich mir noch nicht genauer angeschaut und habe da noch keinen Ansatz.
War mit der bisherigen Lösung über den Adapter von Garfonso mehr als zufrieden.Muss ich mich wohl einfuchsen. Nutze iOS und zusätzlich noch Geofency.
Vielleicht hast du noch 2-3 Stichworte, die mir auf die Sprünge helfen :D
@Krys sagte in Test Adapter google-sharedlocations2:
meinst du Places? Das habe ich mir noch nicht genauer angeschaut und habe da noch keinen Ansatz.
War mit der bisherigen Lösung über den Adapter von Garfonso mehr als zufrieden.Die beiden Features sind halt weitgehend identisch. Bei beiden hast du eine Position mit einem Radius. Der Hauptunterschied ist die Art der Datenpunkte, die erzeugt werden. Bei den fences im Adapter hast du quasi nur einen true/false Wert. Bei places hast du für jeden Nutzer ne ganze Reihe inklusive einen, wo steht wo der Nutzer gerade ist und auch für die Places einen, wo steht, wie viele Nutzer bzw. welche Nutzer gerade da sind.
Wenn man mehrere Geolocation-Dienste nutzt, ist places sicher besser, weil es man es von mehreren Adaptern befüllen kann. Die Places Unterstützung ist auch nur ein send-To. Fences ist dafür etwas mehr Code im Adapter und besonders der Config.
-
Um noch einen Ansatz hinzu zu fügen: Ich nutze Traccar und sende die Positionen per http-Request von ioBroker zur diesem.
Über den Traccar-Adapter bekomme ich wiederum die Positionen zurück in ioBroker.
Vorteil Traccar ist das man da auch ungewöhnliche Fences ziehen kann:


-
@Krys sagte in Test Adapter google-sharedlocations2:
meinst du Places? Das habe ich mir noch nicht genauer angeschaut und habe da noch keinen Ansatz.
War mit der bisherigen Lösung über den Adapter von Garfonso mehr als zufrieden.Die beiden Features sind halt weitgehend identisch. Bei beiden hast du eine Position mit einem Radius. Der Hauptunterschied ist die Art der Datenpunkte, die erzeugt werden. Bei den fences im Adapter hast du quasi nur einen true/false Wert. Bei places hast du für jeden Nutzer ne ganze Reihe inklusive einen, wo steht wo der Nutzer gerade ist und auch für die Places einen, wo steht, wie viele Nutzer bzw. welche Nutzer gerade da sind.
Wenn man mehrere Geolocation-Dienste nutzt, ist places sicher besser, weil es man es von mehreren Adaptern befüllen kann. Die Places Unterstützung ist auch nur ein send-To. Fences ist dafür etwas mehr Code im Adapter und besonders der Config.
@Garfonso Ok, scheinbar bin ich zu hohl dafür. Mit owntracks bekomme ich es nicht hin, mit iOS Kurzbefehlen auch nicht. Ich bleibe bei deinem alten Adapter und hoffe, dass er erhalten bleibt. Dort kann ich per Blockly auch die Standorte abfragen, das passt schon so.
-
So, heute umgestellt, hat auf Anhieb geklappt.
Musste in meinen Skripten überall nur eine "2" einbauen (ausgoogle-sharedlocations.0.eingoogle-sharedlocations2.0.machen) und es läuft wie gewohnt -
So, heute umgestellt, hat auf Anhieb geklappt.
Musste in meinen Skripten überall nur eine "2" einbauen (ausgoogle-sharedlocations.0.eingoogle-sharedlocations2.0.machen) und es läuft wie gewohnt@BananaJoe sagte in Test Adapter google-sharedlocations2:
So, heute umgestellt, hat auf Anhieb geklappt.
Musste in meinen Skripten überall nur eine "2" einbauen (ausgoogle-sharedlocations.0.eingoogle-sharedlocations2.0.machen) und es läuft wie gewohntuserhat sich noch zuusersverändert.@Krys sagte in Test Adapter google-sharedlocations2:
@Garfonso Ok, scheinbar bin ich zu hohl dafür. Mit owntracks bekomme ich es nicht hin, mit iOS Kurzbefehlen auch nicht. Ich bleibe bei deinem alten Adapter und hoffe, dass er erhalten bleibt. Dort kann ich per Blockly auch die Standorte abfragen, das passt schon so.
Was genau bekommst du nicht hin? Places ist doch "einfach" ein Adapter in ioBroker...?
-
@garfonso
Seit dem ich den Adapter installiert bekomme ich regelmäßig eine Mail mit der Sicherheitsfrage ob ich mich wirklich eingeloggt habe.
Er meint von einem Windows Rechner aus.Hat das noch jemend?
Edit
Gtad im Code vom Adapter geschaut, gibt sich als Windows aus, dann wird es wirklich davon kommen.
Dabei hab ich gesehen, dass du die Fences und Places eingebaut hast. Super. -
@BananaJoe sagte in Test Adapter google-sharedlocations2:
So, heute umgestellt, hat auf Anhieb geklappt.
Musste in meinen Skripten überall nur eine "2" einbauen (ausgoogle-sharedlocations.0.eingoogle-sharedlocations2.0.machen) und es läuft wie gewohntuserhat sich noch zuusersverändert.@Krys sagte in Test Adapter google-sharedlocations2:
@Garfonso Ok, scheinbar bin ich zu hohl dafür. Mit owntracks bekomme ich es nicht hin, mit iOS Kurzbefehlen auch nicht. Ich bleibe bei deinem alten Adapter und hoffe, dass er erhalten bleibt. Dort kann ich per Blockly auch die Standorte abfragen, das passt schon so.
Was genau bekommst du nicht hin? Places ist doch "einfach" ein Adapter in ioBroker...?
@Garfonso sagte in Test Adapter google-sharedlocations2:
user hat sich noch zu users verändert.
Gut das du das geschrieben hast ... Danke!
-
@garfonso
Seit dem ich den Adapter installiert bekomme ich regelmäßig eine Mail mit der Sicherheitsfrage ob ich mich wirklich eingeloggt habe.
Er meint von einem Windows Rechner aus.Hat das noch jemend?
Edit
Gtad im Code vom Adapter geschaut, gibt sich als Windows aus, dann wird es wirklich davon kommen.
Dabei hab ich gesehen, dass du die Fences und Places eingebaut hast. Super. -
@David-G. sagte in Test Adapter google-sharedlocations2:
Hat das noch jemend?
Ja, hab ich auch mehrere bekommen.
@Garfonso sagte in Test Adapter google-sharedlocations2:
Ja, hab ich auch mehrere bekommen.
Man kann puppeteer ja einen Arbeitsordner mitgeben, um Session fortsetzen zu können.Evtl bekommt man es damit hin dass nicht jede Anmeldung als neues Gerät erkannt wird. Oder hast du es extra so gemacht, dass sicher ein login mit Passwort erscheint?
Edit.
Evtl nur mit Pw einloggen wenn das Coockie abgelaufen ist. Zum Ordner laut Gemini:Ja, das ist sogar eine sehr gute Idee! Bei Puppeteer nennt sich das userDataDir.
Wenn du diesen Ordner angibst, speichert Chrome dort das gesamte Browser-Profil – inklusive Cookies, Cache und vor allem den Session-Status. Beim nächsten Start greift Puppeteer auf diesen Ordner zu. Google sieht dann keinen "völlig neuen" Browser, was die Wahrscheinlichkeit massiv erhöht, dass du eingeloggt bleibst oder keine erneute 2FA-Abfrage kommt.
So baust du es in deine Cookie.ts ein
Du musst die puppeteer.launch-Optionen in der Methode loginToGetNewCookies anpassen.
1. Pfad definieren
Zuerst solltest du einen Pfad festlegen. Da es ein ioBroker-Adapter ist, bietet sich ein Ordner im Adapter-Verzeichnis an:const path = require('path'); // Im ioBroker-Kontext sinnvoll: ein Ordner im Instanz-Verzeichnis const dataDir = path.join(utils.getAbsoluteDefaultDataDir(), 'google-sharedlocations2-profile');- Den Launch-Befehl anpassen
Ändere den Block in deiner loginToGetNewCookies wie folgt ab:
this.browser = await puppeteer.launch({ headless: true, userDataDir: './google_profile', // Hier wird die Session gespeichert args: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-blink-features=AutomationControlled' ], ignoreDefaultArgs: ['--enable-automation'], });Warum das für dein Script wichtig ist:
Vermeidung von 2FA: Wenn du dich einmal erfolgreich eingeloggt hast (vielleicht indem du headless: false kurzzeitig zum Testen nutzt), erkennt Google das "Gerät" beim nächsten Mal wieder.
Cookie-Persistenz: Selbst wenn das Script abstürzt, sind die Cookies noch im userDataDir gespeichert und müssen nicht jedes Mal neu per Tipp-Simulation erzeugt werden.
Glaubwürdigkeit: Ein Browser mit Historie und Cache wirkt für die Google-Sicherheitsalgorithmen weniger wie ein bösartiger Bot.EDIT 2
Mein Script nutzt die Option eines Cookie-Refresh. Evtl kann der Adapter erstmal versuchen, sich mit dem per User und Pw abgerufenen Coockie zu verbinden und dieses zu aktualisieren, und das nächste mal dann mit diesem usw. Wenn das nicht klappt neu einloggen mit user und pw. - Den Launch-Befehl anpassen
-
@Garfonso sagte in Test Adapter google-sharedlocations2:
Ja, hab ich auch mehrere bekommen.
Man kann puppeteer ja einen Arbeitsordner mitgeben, um Session fortsetzen zu können.Evtl bekommt man es damit hin dass nicht jede Anmeldung als neues Gerät erkannt wird. Oder hast du es extra so gemacht, dass sicher ein login mit Passwort erscheint?
Edit.
Evtl nur mit Pw einloggen wenn das Coockie abgelaufen ist. Zum Ordner laut Gemini:Ja, das ist sogar eine sehr gute Idee! Bei Puppeteer nennt sich das userDataDir.
Wenn du diesen Ordner angibst, speichert Chrome dort das gesamte Browser-Profil – inklusive Cookies, Cache und vor allem den Session-Status. Beim nächsten Start greift Puppeteer auf diesen Ordner zu. Google sieht dann keinen "völlig neuen" Browser, was die Wahrscheinlichkeit massiv erhöht, dass du eingeloggt bleibst oder keine erneute 2FA-Abfrage kommt.
So baust du es in deine Cookie.ts ein
Du musst die puppeteer.launch-Optionen in der Methode loginToGetNewCookies anpassen.
1. Pfad definieren
Zuerst solltest du einen Pfad festlegen. Da es ein ioBroker-Adapter ist, bietet sich ein Ordner im Adapter-Verzeichnis an:const path = require('path'); // Im ioBroker-Kontext sinnvoll: ein Ordner im Instanz-Verzeichnis const dataDir = path.join(utils.getAbsoluteDefaultDataDir(), 'google-sharedlocations2-profile');- Den Launch-Befehl anpassen
Ändere den Block in deiner loginToGetNewCookies wie folgt ab:
this.browser = await puppeteer.launch({ headless: true, userDataDir: './google_profile', // Hier wird die Session gespeichert args: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-blink-features=AutomationControlled' ], ignoreDefaultArgs: ['--enable-automation'], });Warum das für dein Script wichtig ist:
Vermeidung von 2FA: Wenn du dich einmal erfolgreich eingeloggt hast (vielleicht indem du headless: false kurzzeitig zum Testen nutzt), erkennt Google das "Gerät" beim nächsten Mal wieder.
Cookie-Persistenz: Selbst wenn das Script abstürzt, sind die Cookies noch im userDataDir gespeichert und müssen nicht jedes Mal neu per Tipp-Simulation erzeugt werden.
Glaubwürdigkeit: Ein Browser mit Historie und Cache wirkt für die Google-Sicherheitsalgorithmen weniger wie ein bösartiger Bot.EDIT 2
Mein Script nutzt die Option eines Cookie-Refresh. Evtl kann der Adapter erstmal versuchen, sich mit dem per User und Pw abgerufenen Coockie zu verbinden und dieses zu aktualisieren, und das nächste mal dann mit diesem usw. Wenn das nicht klappt neu einloggen mit user und pw.Äh.. ja.. das mit dem Cookie-Refresh hatte ich eigentlich auch vor. Habe ich irgendwie vergessen zu implementieren. :-)
Data-Dir hab ich jetzt auch mal hinzugefügt.Auf npm / Github sollte eine 0.2.0 mit den Sachen erscheinen. Intern hat sich nochmal einiges geändert. Bei mir läufts gerade ein "refresh im Browser" hab ich aber noch nicht testen können (weiß grad nicht genau, wie, vielleicht muss ich da noch einen state für basteln oder so kopfkratz). Aber nach dem Login knallt chrome Daten in den Ordern.
- Den Launch-Befehl anpassen
-
Äh.. ja.. das mit dem Cookie-Refresh hatte ich eigentlich auch vor. Habe ich irgendwie vergessen zu implementieren. :-)
Data-Dir hab ich jetzt auch mal hinzugefügt.Auf npm / Github sollte eine 0.2.0 mit den Sachen erscheinen. Intern hat sich nochmal einiges geändert. Bei mir läufts gerade ein "refresh im Browser" hab ich aber noch nicht testen können (weiß grad nicht genau, wie, vielleicht muss ich da noch einen state für basteln oder so kopfkratz). Aber nach dem Login knallt chrome Daten in den Ordern.
Wird grün und holt Daten.
Eine Frage.
Ich sende die Koordinaten mit einem Blockly an Places, da ich dort schon User habe die anders benannt sind.Wenn ich mit dem Adapter die Daten an Places sende wird mein Log voll gehauen. Bei meinem Blockly kommt nichts. Liegt nicht am Parralelbetrieb,das Blockly ist deaktiviert.
places.0 2026-02-04 06:22:46.950 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:22:46.950 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:22:46.856 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182551298,"address":"","date":"2026-02-04 06:22:31","atHome":true,"distance":8,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:21:46.382 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:21:46.382 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:21:46.334 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182391556,"address":"","date":"2026-02-04 06:19:51","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:21:46.334 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:20:45.903 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:20:45.903 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:20:45.796 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182391556,"address":"","date":"2026-02-04 06:19:51","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:19:45.236 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:19:45.188 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182316430,"address":"","date":"2026-02-04 06:18:36","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:19:45.188 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:18:44.768 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770181996417,"address":"","date":"2026-02-04 06:13:16","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:18:44.768 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:18:44.675 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182316430,"address":"","date":"2026-02-04 06:18:36","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:17:43.814 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770181996417,"address":"","date":"2026-02-04 06:13:16","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:17:43.814 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:17:43.722 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182251214,"address":"","date":"2026-02-04 06:17:31","atHome":true,"distance":7,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} -
Wird grün und holt Daten.
Eine Frage.
Ich sende die Koordinaten mit einem Blockly an Places, da ich dort schon User habe die anders benannt sind.Wenn ich mit dem Adapter die Daten an Places sende wird mein Log voll gehauen. Bei meinem Blockly kommt nichts. Liegt nicht am Parralelbetrieb,das Blockly ist deaktiviert.
places.0 2026-02-04 06:22:46.950 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:22:46.950 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:22:46.856 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182551298,"address":"","date":"2026-02-04 06:22:31","atHome":true,"distance":8,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:21:46.382 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:21:46.382 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:21:46.334 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182391556,"address":"","date":"2026-02-04 06:19:51","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:21:46.334 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:20:45.903 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:20:45.903 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:20:45.796 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182391556,"address":"","date":"2026-02-04 06:19:51","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:19:45.236 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:19:45.188 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182316430,"address":"","date":"2026-02-04 06:18:36","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:19:45.188 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:18:44.768 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770181996417,"address":"","date":"2026-02-04 06:13:16","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:18:44.768 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:18:44.675 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182316430,"address":"","date":"2026-02-04 06:18:36","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:17:43.814 info Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770181996417,"address":"","date":"2026-02-04 06:13:16","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""} places.0 2026-02-04 06:17:43.814 warn Found a newer place for this user: skipping update places.0 2026-02-04 06:17:43.722 info Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182251214,"address":"","date":"2026-02-04 06:17:31","atHome":true,"distance":7,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}@David-G. sagte in Test Adapter google-sharedlocations2:
Wenn ich mit dem Adapter die Daten an Places sende wird mein Log voll gehauen. Bei meinem Blockly kommt nichts. Liegt nicht am Parralelbetrieb,das Blockly ist deaktiviert.
Ja, wenn du die Timestamps vergleichst, sieht man, wo es herkommt. Ich setze überall den timestamp, den Google mitliefert. Der scheint durchaus mal länger gleich zu bleiben. Passt ja auch, wenn man manuell guckt, steht da ja auch manchmal "vor x Minuten" oder so. Ist halt kein Realtime. Wenn die Position aber schon älter ist als das Abrufinterval, dann ist der timestamp der Position gleich und das teilt Places da mit.
Theoretisch müsste ich den timestamp prüfen und das update ausfallen lassen, wenn der sich nicht geändert hat.
In deinem blockly setzt du vermutlich da einfach den aktuellen Zeitpunkt. IIRC hat das der alte Adapter auch gemacht. Aber eigentlich muss places ja kein Update machen, wenn es eh keine neue Position gibt.
-
@David-G. sagte in Test Adapter google-sharedlocations2:
Wenn ich mit dem Adapter die Daten an Places sende wird mein Log voll gehauen. Bei meinem Blockly kommt nichts. Liegt nicht am Parralelbetrieb,das Blockly ist deaktiviert.
Ja, wenn du die Timestamps vergleichst, sieht man, wo es herkommt. Ich setze überall den timestamp, den Google mitliefert. Der scheint durchaus mal länger gleich zu bleiben. Passt ja auch, wenn man manuell guckt, steht da ja auch manchmal "vor x Minuten" oder so. Ist halt kein Realtime. Wenn die Position aber schon älter ist als das Abrufinterval, dann ist der timestamp der Position gleich und das teilt Places da mit.
Theoretisch müsste ich den timestamp prüfen und das update ausfallen lassen, wenn der sich nicht geändert hat.
In deinem blockly setzt du vermutlich da einfach den aktuellen Zeitpunkt. IIRC hat das der alte Adapter auch gemacht. Aber eigentlich muss places ja kein Update machen, wenn es eh keine neue Position gibt.
Das wird es sein....
Mein Blockly wartet auf eine Veränderung damit es triggert. Wartet dann ein paar ms (sonst ist ein Wert manchmal noch der alte wenn es zu schnell ist) und sendet die Daten an palces.Edit
Mache es jetzt aber über deinen Adapter, hab kurz gebraucht zu kapieren wie in Places das mit dem Namen ersetzt klappt. Hab den Namen immer wie in den DPs angegeben. Aber da werden bei Leerstelle _ eingebaut. Deshalb hatte es nur geklappt.EDIT 2
Wo finde ich denn den UserDataDir? Wollte mal reinschauen. -
Das wird es sein....
Mein Blockly wartet auf eine Veränderung damit es triggert. Wartet dann ein paar ms (sonst ist ein Wert manchmal noch der alte wenn es zu schnell ist) und sendet die Daten an palces.Edit
Mache es jetzt aber über deinen Adapter, hab kurz gebraucht zu kapieren wie in Places das mit dem Namen ersetzt klappt. Hab den Namen immer wie in den DPs angegeben. Aber da werden bei Leerstelle _ eingebaut. Deshalb hatte es nur geklappt.EDIT 2
Wo finde ich denn den UserDataDir? Wollte mal reinschauen. -
@David-G. sagte in Test Adapter google-sharedlocations2:
Wo finde ich denn den UserDataDir? Wollte mal reinschauen.
Das ist einfach der adapter Ordner, aslo
/opt/iobroker/iobroker-data/google-sharedlocations2.0/Der ist bei mir leer
david@iobroker:~$ cd /opt/iobroker/iobroker-data/google-sharedlocations2.0/david@iobroker:/opt/iobroker/iobroker-data/google-sharedlocations2.0$ ls -la total 25 drwxrwxr-x+ 2 iobroker iobroker 2 Feb 4 06:00 . drwxrwxr-x+ 19 iobroker iobroker 23 Feb 5 10:04 .. david@iobroker:/opt/iobroker/iobroker-data/google-sharedlocations2.0$