NEWS
[Neuer Adapter] Life360
-
@liv-in-sky Hey. Ich befürchte, das kann ich miteinander kombinieren.
-
@migoller aktuell die Life-Places, keinen Kreis im Adapter definiert
sollte ich das umstellen?
wo sehe ich denn die Zeit von einem Verzeichnis? kann das nur bei einem Objekt sehen. -
@humidor Ich bin grad unterwegs, aber ich schicke Dir nachher einen Screenshot. In der Ansicht der Objekte gibt es die Ansicht der Werte. Da bitte ein GPS-Datenpunkt eines Life360 Places auswählen. Dort findest Du dann auch Spalten für die letzte Änderung und die letzte Aktualisierung.
-
@migoller life360/circles/places/home/
createdat steht 3.4, das wäre der Tag wo ich (glaube) alles neu gemacht habe
letzte Aktualisierung ist aktuell, er schafft es ja immer wieder und dann wieder nicht usw.
das Löschen entnehme ich dem Log.danke, dass du den Adapter machst!!
jetzt gerade wieder: da steht no places found, removed.
damit ändert sich der State vom Objekt "isPresent" und da schmeißts dann meine Automation.life360.0 2021-04-08 12:06:53.408 debug (23334) Removed Home from Life360 circle Familie. life360.0 2021-04-08 12:06:53.407 debug (23334) Removed Arbeit from Life360 circle Familie. life360.0 2021-04-08 12:06:53.304 debug (23334) Life360 cloud data processed. life360.0 2021-04-08 12:06:53.303 debug (23334) Published 1 circle(s) to ioBroker. life360.0 2021-04-08 12:06:53.285 debug (23334) Published 2 people to ioBroker. life360.0 2021-04-08 12:06:53.263 debug (23334) Published 0 place(s) to ioBroker. life360.0 2021-04-08 12:06:53.263 debug (23334) Removed Home from Life360 places. life360.0 2021-04-08 12:06:53.263 debug (23334) Removed Arbeit from Life360 places. life360.0 2021-04-08 12:06:53.259 debug (23334) Published 0 MyPlaces to ioBroker. life360.0 2021-04-08 12:06:53.255 debug (23334) Pushing cloud_data to callback function life360.0 2021-04-08 12:06:53.254 warn (23334) No places found! life360.0 2021-04-08 12:06:51.679 debug (23334) Fetching Life360 cloud data ... life360.0 2021-04-08 12:06:38.730 warn (23334) State "life360.0.circles.14f1c5bd-3344-4634-a4ef-9e50713590e9.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.membersPresent" has no existing object, this might lead to an error in future version life360.0 2021-04-08 12:06:38.665 warn (23334) State "life360.0.circles.14f1c5bd-3344-4634-a4ef-9e50713590e9.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.0752c6f7-6d19-47c3-a2b2-4a6fd92f11a1.isPresent" has no existing object, this might le life360.0 2021-04-08 12:06:38.644 warn (23334) State "life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.urlMap" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.638 warn (23334) State "life360.0.circles.14f1c5bd-3344-4634-a4ef-9e50713590e9.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.90f13baf-5e18-4c48-9612-158dc63804ca.isPresent" has no existing object, this might le life360.0 2021-04-08 12:06:38.633 warn (23334) State "life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.urlMap" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.575 warn (23334) State "life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.radius" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.573 warn (23334) State "life360.0.circles.14f1c5bd-3344-4634-a4ef-9e50713590e9.places.5b77c866-6142-421a-b781-828ea05b798c.membersPresent" has no existing object, this might lead to an error in future version life360.0 2021-04-08 12:06:38.568 warn (23334) State "life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.radius" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.502 warn (23334) State "life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.gps-coordinates" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.502 warn (23334) This object will not be created in future versions. Please report this to the developer. life360.0 2021-04-08 12:06:38.502 warn (23334) Object life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.gps-coordinates is invalid: obj.common.type has an invalid value (text) but has to be one of number, string, boolean, array, objec life360.0 2021-04-08 12:06:38.500 warn (23334) State "life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.gps-coordinates" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.500 warn (23334) This object will not be created in future versions. Please report this to the developer. life360.0 2021-04-08 12:06:38.498 warn (23334) Object life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.gps-coordinates is invalid: obj.common.type has an invalid value (text) but has to be one of number, string, boolean, array, objec life360.0 2021-04-08 12:06:38.487 warn (23334) State "life360.0.circles.14f1c5bd-3344-4634-a4ef-9e50713590e9.places.5b77c866-6142-421a-b781-828ea05b798c.0752c6f7-6d19-47c3-a2b2-4a6fd92f11a1.isPresent" has no existing object, this might le life360.0 2021-04-08 12:06:38.476 warn (23334) State "life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.longitude" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.465 warn (23334) State "life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.longitude" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.457 warn (23334) State "life360.0.circles.14f1c5bd-3344-4634-a4ef-9e50713590e9.places.5b77c866-6142-421a-b781-828ea05b798c.90f13baf-5e18-4c48-9612-158dc63804ca.isPresent" has no existing object, this might le life360.0 2021-04-08 12:06:38.445 warn (23334) State "life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.latitude" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.444 warn (23334) State "life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.latitude" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.381 warn (23334) State "life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.name" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.378 warn (23334) State "life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.name" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.365 warn (23334) State "life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.circleId" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.356 warn (23334) State "life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.circleId" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.344 warn (23334) State "life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.ownerId" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.343 warn (23334) State "life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.ownerId" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.291 debug (23334) Life360 cloud data processed. life360.0 2021-04-08 12:06:38.291 debug (23334) Published 1 circle(s) to ioBroker. life360.0 2021-04-08 12:06:38.289 warn (23334) State "life360.0.places.ab561360-7317-427a-8a54-cc8d9f2b41ea.id" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.281 warn (23334) State "life360.0.places.5b77c866-6142-421a-b781-828ea05b798c.id" has no existing object, this might lead to an error in future versions life360.0 2021-04-08 12:06:38.280 debug (23334) Published 2 people to ioBroker.
-
@humidor Hey.
No places found!
und nach ein paar Minuten liefert die API dann doch wieder Informationen zu den Orten. Egal, ich habe Anpassungen am Code vorgenommen, dass Life360 Places erst nach 30 Tagen gelöscht werden, nicht aber sofort. Und keine Angst: In einem späteren Release wird dieser Zeitraum konfigurierbar.Jetzt schauen wir erst einmal, dass die Places nicht dauernd gelöscht werden, wenn die API einen Schluckauf hat. Einverstanden? Die ersten Tests bei mir sehen schon ganz gut aus.
@liv-in-sky Das Abfrageintervall über einen Datenpunkt konfigurierbar zu gestalten, packe ich dann gleich mit an.
-
@humidor Hey. Bekommst Du noch
No places found!
Meldungen? Ich erhalte keine mehr. -
@migoller hatte wohl Schluckauf
aktuell funktioniert es, im Log stehen verm. nur unbedeutende Sachen, zyklisch:2021-04-09 00:15:37.716 - [34mdebug[39m: life360.0 (23334) Fetching Life360 cloud data ... 2021-04-09 00:15:37.716 - [34mdebug[39m: life360.0 (23334) Not authenticated against Life360. Will try to connect ... 2021-04-09 00:15:37.716 - [34mdebug[39m: life360.0 (23334) Connecting to Life360 service ...
das mit dem Updateintervall werde ich auch ändern, sobald du es im Adapter hast
gr. Update, wenn zu Hause, 15s wenn unterwegs (öffnet mir die Garage)
(mit dem Updateintervall von 15s hat mir heute die Garage nicht aufgemacht, die Aktualisierung hat damit nicht im 15s Intervall fkt., die letzte Woche schon)ist es nun besser myHome im Life360 oder Adapter zu machen und weniger zu syncen?
-
@humidor Versuche bitte mal die Version 0.2.14 über Guthub oder npm. Jetzt sollten die Life360 Places nicht mehr verschwinden und dann hoffentlich wieder erscheinen. In meinen Tests hat es funktioniert. Es greift aktuell ein - zukünftig konfigurierbarer - Mechanismus, der nicht mehr von der API gelieferte Objekte erst nach 30 Tagen entfernt.
Um auf Deine Frage einzugehen, ob es besser sei, Orte im Adapter oder in der Life360 App anzulegen... Um ehrlich zu sein, es hat beides so Vor- und Nachteile.
- Legst Du Orte in der App an, so musst Du diese auch nur in der App pflegen und nicht noch an einer weiteren Stelle. In meinem Fall war es aber so, dass die Mitglieder eines Kreises denselben Ort unterschiedlich benannt hatten. Life360 liefert damit denselben Ort mehrfach. Hat gedauert, bis ich das herausgefunden hatte, da es "plötzlich" aufgetreten ist. Dass jemand denselben Ort unter einem anderen Namen angelegt hatte, hatte ich erst beim genauen Hinschauen erkannt.
Meinen Anwendungsfall hatte das leider nur komplizierter gestaltet: Ich wollte doch nur wissen, wer aus einem Kreis alles an einem Ort ist. An einem Ort...
- Das war die Geburtsstunde der "MyPlaces" im Adapter. Orte, die ich für die Gebäudesteuerung verwende, überlasse ich nicht mehr der Life360 App; diese definiere ich im Adapter. Life360 kennt eh schon meinen Aufenthaltsort und den anderer; da muss Life360 nicht auch noch um "besondere" Orte wissen, die eine Funktion auslösen.
Ich hoffe, der Ansatz hilft Dir weiter.
VG, MiGoller
-
@migoller Super, werde ich machen.
die Places ziehe ich dann auch in den Adapter.aber ich kann es aus deiner Formulierung nicht klar rauslesen, die Objekte löschst du jetzt nach 30 Tage, es soll die Werte auch nicht "verändert" werden, wenn keine korrekte Kommunikation stattfindet (true/false).
-
passen diese Einstellungen für Places im Adapter?
und welche GPS Verfolgung ist eine "schnelle" ? -
@humidor Hey. Wenn die API keine Informationen liefert, werden auch keine vorhandenen Datenpunkte verändert... und jetzt auch nicht mehr gelöscht. Werden Datenpunkte allerdings 30 Tage nacheinander nicht von der API mit Informationen bedient, dann kommt der große Frühjahrsputz.
-
@migoller OK, denn das hatte ich ja isPresent true/false, das hast du somit optimiert, super
ich habe jetzt einen Place im Adapter angelegt, damit werde ich das Verhalten von Life360 nicht mehr sehen.
wie ist das noch mit dem GPS tracking, kannst du das bitte aufklären welche Einstellung das was ist? Danke!!
-
@humidor Die Einstellungen sehen ok aus. Ich persönlich nutze noch das Verarbeiten der Life360-Kreise, um Änderungen an den Kreisen mitzubekommen. Wenn Du das nicht brauchst, kannst Du es so belassen.
-
@migoller ich meine dieses da, kannst du das noch etwas ausführen, oder könnt ich das wo nachlesen?
-
@humidor Ach so, danke für den Hinweis. Es geht darum, in welcher Form der Adapter GPS-Koordinaten darstellen soll. Das hängt ein wenig davon ab, in welcher Form Du diese ggf. für Deine Skripte, etc. benötigst. Es gibt da leider unterschiedliche Darstellungen von einem einfachen Zahlentupel bis zu Objekten, die deren Attribute einfach unterschiedlich benannt sind. In meiner Wahrnehmung ist das
LatLng-Objekt
die gebräuchlichste Darstellung, aber eben nicht die einzige.Ich nutze die
geolocation-utils
, die genau diese Darstellung ermöglichen (s. https://bitbucket.org/teqplay/geolocation-utils/src/master/README.md unter "Data Structures").LonLat-Tupel
Das LonLat-Tupel ist ein Array in der Form
[longitude: number, latitude: number]
.latitude
gibt den Breitengrad an.longitude
gibt den Längengrad an.
Beachtet bitte die abweichende Reihenfolge zu den anderen Darstellungen.
LatLon-Objekt
Das LatLon-Objekt ist ein Objekt in der Form
{lat: number, lon: number}
mit den Attributen:lat
gibt den Breitengrad an.lon
gibt den Längengrad an.
LatLng-Objekt
Das LatLng-Objekt ist ein Objekt in der Form
{lat: number, lng: number}
mit den Attributen:lat
gibt den Breitengrad an.lng
gibt den Längengrad an.
LatitudeLongitude-Objekt
DasLatitudeLongitude-Objekt ist ein Objekt in der Form
{latitude: number, longitude: number}
mit den Attributen:latitude
gibt den Breitengrad an.longitude
gibt den Längengrad an.
Wenn Du keine konkreten Anforderungen an die Notation für weitere Services, APIs, etc. haben solltest, dann kannst Du m.E. die Darstellung so belassen, wie Du diese aktuell hast.
Ich hoffe, Dir damit weiterhelfen zu können.
-
@migoller alles klar, danke für die Ausführung!
damit hat das keinen Einfluss auf die Genauigkeit bzw. Frequenz der Positionsübergabe von Life360Ich suche noch die Möglichkeit aus Lat/Long einen Kreis abzubilden, der dann Bestimmt ob man @Home ist (GPS-Auto). Hättest du da eine Info für mich?
-
@humidor Hey. genau das kannst Du in den Einstellungen des Adapters bzw. der Instanz des Adapters tun. Unter "Meine Orte" kannst Du dann genau einen solchen Ort, nennen wir ihn "Home", anlegen; gib dann auch einen Radius (Einheit m) zu den GPS-Koordinaten an, um einen Kreis zu definieren.
Optional kannst Du noch angeben, aus welchem Kreis - hier kommt es auch die Bezeichnung des Life360 Kreises an - die Mitglieder bei der Präsenzinformation genutzt werden sollen.
Im Objektbaum findest Du dann nach Neustart des Adapters bzw. der Instanz diese Ort unter Life360 MyPlaces wieder.
Für Deinen Anwendungsfall dürfte dann der Datenpunkt
life360.0.myplaces.<Name des Orts>.membersPresentCount
interessant sein. Ist der Wert größer als 0, so ist jemand an dem Ort.Beachte aber bitte bei der Wahl des Radius, dass die Genauigkeit der Ortung der Life360 App von verschiedenen Einflüssen abhängt. Mir sind folgende bekannt:
- Hardware des Smartphones. Es gibt sehr genaue und weniger genaue GPS-Chips.
- Zusätzliche Positionsbestimmung über WLAN und Mobilfunknetz.
- Akku-Optimierungseinstellungen der Endgeräte. Das ist gerade bei Android immer wieder ein Thema. Senden Android-Devices nicht mehr regelmäßig oder nur noch näherungsweise die Positionen, dann ist das ein guter Punkt zur Überprüfung. Fast alle Hersteller "optimieren" die Akku-Einstellungen bei Firmware-Updates, auch wenn Du das für einzelne Apps wie Life360 abweichend eingestellt hast. Apple kann das mit iOS aktuell auch gut.
- Hängt das Gerät am Ladekabel? Ist bei Anwendungsfällen mit Autos und Garage wichtig.
Ich sehe in der Praxis Positionsabweichungen von bis zu 50m bei demselben Gerät. Ist das Gerät per Kabel mit einer Stromversorgung verbunden, sind es meist weniger als 30m.
VG, MiGoller
-
@migoller Morgen MiGoller, danke wieder für deine ausführliche Erklärung.
Ich suche aber noch eine andere / weitere Möglichkeit.
Ein nicht im Life360 enthaltene Person, nämlich ein Auto. Das hat eine interne Sim und daher kann ich dieses nicht im Life360 anlegen.
Ich habe durch einen Adapter (Zoe) im ioBroker die Lat/Long Werte drin, wenn das Auto in den Kreis "Home" ist oder nicht, würde ich das gerne wissen (um die Steuerung der Garagentore sicherer zu machen, bzw. um zu wissen ob das eine oder andere Auto unterwegs ist). -
@humidor Hallo. Aktuell geht das leider nicht. Eine Möglichkeit wäre es, per Skript die entsprechenden Datenpunkte bei Veränderung abzufragen und z.B. an den Places-Adapter zu senden. Ich kenne das Thema u.a. auch von VW, Audi, BMW, Mercedes, etc. Leider kann das schnell recht unübersichtlich werden.
Der Life360-Adapter bietet ja auch die Möglichkeit, die GPS-Koordinaten der Personen an den Places-Adapter zu senden. Wenn der Zoe-Adapter keine integrierte Möglichkeit zum Sender der GPS-Koordinaten anbietet, würde ich es aktuell mit einem Skript erledigen... sollte sogar als Blockly-Skript gehen, aber bei Blockly kann ich nicht mitreden. Mit JavaScript geht es in jedem Fall.
-
@migoller Places, ja den hab ich auch schon gedacht, kapier aber nicht wie ich dem die Position übergebe. Im Blockly läuft alles über Trigger, dh eine Änderung an Lat/Long löst ein Event aus szsg. dh es kann dann was gemacht werden.