NEWS
Life360ng Adapter - Widget anbieten
-
Hallo zusammen.
Ich habe den Life360 Adapter überarbeitet und eine neue Version als Life360ng veröffentlicht.
So weit, so gut.
Jetzt kommt der schwierige Part:Ich habe vor, eine Art 'Fahrtenbuch' zu integrieren und bekomme jeden Tag ein GeoJSON mit folgendem Inhalt:
(läuft zur Zeit bei mir lokal im Script Adapter){"type":"Feature","geometry":{"type":"LineString","coordinates":[[8.1092108,53.375156],[8.1092214,53.3753376],[8.109268,53.3751492],[8.1092831,53.3755614],[8.1087375,53.3752636],[8.1091828,53.3752033],[8.1061711,53.3707939],[8.1204745,53.3577902],[8.1178562,53.3568921],[8.1169575,53.3571844],[8.1178577,53.3568928],[8.1207508,53.357289],[8.1201376,53.358266],[8.1188753,53.3591781],[8.1151099,53.3618768],[8.1138014,53.3628293],[8.1071239,53.3681901],[8.1083342,53.3749194],[8.1091339,53.3752177]]},"properties":{"timestamps":[1776809217372,1776839037107,1776853064038,1776854521466,1776854946156,1776855492689,1776856707181,1776857010849,1776857314572,1776877018575,1776878051562,1776884737864,1776884798671,1776884859406,1776884920151,1776884981224,1776885041832,1776885224092,1776885284738]}}Da kann so niemand etwas mit anfangen.
Jetzt meine Idee:
Ein Karten-Widget (VIS2) anzubieten, auf der man die Strecke sieht.
Aus dem oben genannten json wird z.B. diese Karte:

In der Runtime dann ein Dropdown um die passende json auswählen zu können

Auf einen anderen Adapter verweisen (zum Beispiel das Widget bei unserm Widget-Adapter einzubauen) finde ich persönlich schwierig. Man zwingt somit den User einen weiteren Adapter installieren zu müssen.
Alternative wäre das Map Widget von @oliverio .... das will ich mir am Wochenende angucken. Ich möchte es so userfreundlich wie möglich gestallten.
Ich habe gar keine Erfahrungen mit Widgets und möchte hier nachfragen, ob es überhaupt umsetzbar ist oder ob ich meine Idee direkt sein lassen sollte, bevor ich mich in etwas verrenne.
PS.:
@homoran .. wenn ich hier in der falschen Kategorie bin, bitte verschieben. -
-
H Homoran verschob dieses Thema von ioBroker Allgemein am
-
Da hattest du wohl einen Rückfahrschein gelöst

-
Hallo zusammen.
Ich habe den Life360 Adapter überarbeitet und eine neue Version als Life360ng veröffentlicht.
So weit, so gut.
Jetzt kommt der schwierige Part:Ich habe vor, eine Art 'Fahrtenbuch' zu integrieren und bekomme jeden Tag ein GeoJSON mit folgendem Inhalt:
(läuft zur Zeit bei mir lokal im Script Adapter){"type":"Feature","geometry":{"type":"LineString","coordinates":[[8.1092108,53.375156],[8.1092214,53.3753376],[8.109268,53.3751492],[8.1092831,53.3755614],[8.1087375,53.3752636],[8.1091828,53.3752033],[8.1061711,53.3707939],[8.1204745,53.3577902],[8.1178562,53.3568921],[8.1169575,53.3571844],[8.1178577,53.3568928],[8.1207508,53.357289],[8.1201376,53.358266],[8.1188753,53.3591781],[8.1151099,53.3618768],[8.1138014,53.3628293],[8.1071239,53.3681901],[8.1083342,53.3749194],[8.1091339,53.3752177]]},"properties":{"timestamps":[1776809217372,1776839037107,1776853064038,1776854521466,1776854946156,1776855492689,1776856707181,1776857010849,1776857314572,1776877018575,1776878051562,1776884737864,1776884798671,1776884859406,1776884920151,1776884981224,1776885041832,1776885224092,1776885284738]}}Da kann so niemand etwas mit anfangen.
Jetzt meine Idee:
Ein Karten-Widget (VIS2) anzubieten, auf der man die Strecke sieht.
Aus dem oben genannten json wird z.B. diese Karte:

In der Runtime dann ein Dropdown um die passende json auswählen zu können

Auf einen anderen Adapter verweisen (zum Beispiel das Widget bei unserm Widget-Adapter einzubauen) finde ich persönlich schwierig. Man zwingt somit den User einen weiteren Adapter installieren zu müssen.
Alternative wäre das Map Widget von @oliverio .... das will ich mir am Wochenende angucken. Ich möchte es so userfreundlich wie möglich gestallten.
Ich habe gar keine Erfahrungen mit Widgets und möchte hier nachfragen, ob es überhaupt umsetzbar ist oder ob ich meine Idee direkt sein lassen sollte, bevor ich mich in etwas verrenne.
PS.:
@homoran .. wenn ich hier in der falschen Kategorie bin, bitte verschieben. -
Ich würde sagen das ist umsetzbar.
Wenn du Fragen zur Logik von mapwidget hast, kannst du sie gerne stellen.
Der Adapter ist nicht im repository -
@Homoran .. und genau da war ich mit nicht sicher. Es sollte schon eine Frage an die Entwickler sein.
Bei Telegram geht es schnell unter. Ich muss mir wohl doch noch an Discord gewöhnen. ich hatte hier auf einen 'internen' gehofft ;)
@skvarel Deine Abneigung zu Discord versteh ich. In denen wo ich drin bin, ist es auch schnell unübersichtlich :(
Die Leute zu "zwingen" einen weiteren adapter zu installieren sehe ich nicht als Problem.
es muss ja niemand das Widget nutzen. Gibt da auch andere Adapter, die z.B. dann Datenpunkte für eCharts bereitstellen. -
Vielleicht kann @oliverio sein Widget so vorbereiten, das man einfach mein GeoJSON per Bindung einsetzen kannn

-
Vielleicht kann @oliverio sein Widget so vorbereiten, das man einfach mein GeoJSON per Bindung einsetzen kannn

puh das ist ein komplett anderes datenformat wie das standard Leaflet format (an das ich mich gehalten habe).
Das widget hat recht umfangreiche Logik zur synchronisation, so das bei einzelnen Änderungen nicht alle einzelnen Marker,Linien,etc gelöscht und wieder hinzugefügt werden müssen (man stelle 10000 Marker vor und nur einer davon wird geändert.
Ich habe Modifikationen bei den Icons/Images vorgenommen, so das es einfacher ist auf in vis verfügbare Grafiken referenzieren kann.Generell kann Leaflet auch GeoJSON
https://leafletjs.com/examples/geojson/Theoretisch kann man mit javascript im browser das auch nutzen.
Gern können wir gemeinsam mal schauen, wie du leaflet in einem eigenen widget geladen bekommst und dann geojson vom datenpunkt lädst -
puh das ist ein komplett anderes datenformat wie das standard Leaflet format (an das ich mich gehalten habe).
Das widget hat recht umfangreiche Logik zur synchronisation, so das bei einzelnen Änderungen nicht alle einzelnen Marker,Linien,etc gelöscht und wieder hinzugefügt werden müssen (man stelle 10000 Marker vor und nur einer davon wird geändert.
Ich habe Modifikationen bei den Icons/Images vorgenommen, so das es einfacher ist auf in vis verfügbare Grafiken referenzieren kann.Generell kann Leaflet auch GeoJSON
https://leafletjs.com/examples/geojson/Theoretisch kann man mit javascript im browser das auch nutzen.
Gern können wir gemeinsam mal schauen, wie du leaflet in einem eigenen widget geladen bekommst und dann geojson vom datenpunkt lädst@OliverIO ... können wir uns da über Telegram mal düber unterhalten? ... oder ist dir Discord lieber?
Ich weiß nicht, wie aufwendig es ist einen 'mormalen' Adapter fit für React (VIS2) zu bekommen. Deswegen die Idee, in meinem Adapter den Code und die Daten bereitzustellen und sie an einen Widget Adapter zu übergeben.
Ich habe noch eine Idee, die ich am Samtstag testen will. Änhlich wie ich es mit den einzelnen Karten mache. Da lege ich in einem Datenpunkt eine URL für einen iFrame ab.
Eventuell klappt das auch mit einer Route ?! Dann könnte ich 'einfach' pro GeoJSON eine URL bereitstellen.
-
@OliverIO ... können wir uns da über Telegram mal düber unterhalten? ... oder ist dir Discord lieber?
Ich weiß nicht, wie aufwendig es ist einen 'mormalen' Adapter fit für React (VIS2) zu bekommen. Deswegen die Idee, in meinem Adapter den Code und die Daten bereitzustellen und sie an einen Widget Adapter zu übergeben.
Ich habe noch eine Idee, die ich am Samtstag testen will. Änhlich wie ich es mit den einzelnen Karten mache. Da lege ich in einem Datenpunkt eine URL für einen iFrame ab.
Eventuell klappt das auch mit einer Route ?! Dann könnte ich 'einfach' pro GeoJSON eine URL bereitstellen.
kannst du mir mal einen export der datenpunkte deines adapters machen, in dem entsprechende testdaten enthalten sind?
leider habe ich selbst kein live360also einfach in der objektansicht den adapter markieren
dann auf den download/safe knopf drücken und in der folgenden ansicht
dann auf "only selected" drücken

-
kannst du mir mal einen export der datenpunkte deines adapters machen, in dem entsprechende testdaten enthalten sind?
leider habe ich selbst kein live360also einfach in der objektansicht den adapter markieren
dann auf den download/safe knopf drücken und in der folgenden ansicht
dann auf "only selected" drücken

@OliverIO .. von den GeoJSON? Die habe ich noch nicht im Adapter, weil das Script dazu zum Testen noch bei mir lokal im Javascript Adapter läuft.
Ich habe ein Javascript, welches mir die Koordionaten in das GeoJSON schreibt und jeden Tag um 00:00 wird ein neues GeoJSON angelegt.
Die Datei von den Adapterobjekten kann ich natürlich auch geben. Die hatte ich beim PR hochgeladen.
Ich habe hier am PC gerade keinen Zugriff auf Github. Ich versuche es übers Handy ...... moment
EDIT:
Ich bekomme die json vom Handy aus nicht hier ins Forum. Ich bin erst weider gegen 22 Uhr an meinem PC und/oder morgen Vormittag -
@OliverIO .. von den GeoJSON? Die habe ich noch nicht im Adapter, weil das Script dazu zum Testen noch bei mir lokal im Javascript Adapter läuft.
Ich habe ein Javascript, welches mir die Koordionaten in das GeoJSON schreibt und jeden Tag um 00:00 wird ein neues GeoJSON angelegt.
Die Datei von den Adapterobjekten kann ich natürlich auch geben. Die hatte ich beim PR hochgeladen.
Ich habe hier am PC gerade keinen Zugriff auf Github. Ich versuche es übers Handy ...... moment
EDIT:
Ich bekomme die json vom Handy aus nicht hier ins Forum. Ich bin erst weider gegen 22 Uhr an meinem PC und/oder morgen Vormittagich habe verstanden, das die daten so hinterlegt sind

ich interpretiere, das das viele einzelne datenpunkte sind, also für jeden Nutzer ein Ordner und jeweils ein Datenpunkt für einen Tag mit den Pfadangaben im Format GeoJSON.
In dieser Struktur ist es für ein widget etwas unhandlich, da man eigentlich im widget konkrete Datenpunkte angeben muss.
Ich habe bei mir zwar Mechanismen eingebaut, die selbst Datenpunkte abonnieren können, das ist aber mit vis1/vis2 Kompatibilität schwierig.Besser wäre es ein oder mehrere sendTo Funktionen einzubauen, die einem widget oder auch einem Skript aus dem javascript Adapter die Daten liefern kann.
Entweder alle Daten über eine Abfrage oder sogar mit ein wenig Filtern, so ala
Gib mir alle Daten für einen Nutzer (Sven) im Zeitraum A bis B.
Dann kommen die Daten in einem Objekt im widget an.
Vorteil, du musst deine DatenpunktStruktur nicht ändern.
Ein Adapter hat relativ einfachen Zugang zu seinen Datenpunkten. -
@OliverIO .. von den GeoJSON? Die habe ich noch nicht im Adapter, weil das Script dazu zum Testen noch bei mir lokal im Javascript Adapter läuft.
Ich habe ein Javascript, welches mir die Koordionaten in das GeoJSON schreibt und jeden Tag um 00:00 wird ein neues GeoJSON angelegt.
Die Datei von den Adapterobjekten kann ich natürlich auch geben. Die hatte ich beim PR hochgeladen.
Ich habe hier am PC gerade keinen Zugriff auf Github. Ich versuche es übers Handy ...... moment
EDIT:
Ich bekomme die json vom Handy aus nicht hier ins Forum. Ich bin erst weider gegen 22 Uhr an meinem PC und/oder morgen Vormittag -
ich habe verstanden, das die daten so hinterlegt sind

ich interpretiere, das das viele einzelne datenpunkte sind, also für jeden Nutzer ein Ordner und jeweils ein Datenpunkt für einen Tag mit den Pfadangaben im Format GeoJSON.
In dieser Struktur ist es für ein widget etwas unhandlich, da man eigentlich im widget konkrete Datenpunkte angeben muss.
Ich habe bei mir zwar Mechanismen eingebaut, die selbst Datenpunkte abonnieren können, das ist aber mit vis1/vis2 Kompatibilität schwierig.Besser wäre es ein oder mehrere sendTo Funktionen einzubauen, die einem widget oder auch einem Skript aus dem javascript Adapter die Daten liefern kann.
Entweder alle Daten über eine Abfrage oder sogar mit ein wenig Filtern, so ala
Gib mir alle Daten für einen Nutzer (Sven) im Zeitraum A bis B.
Dann kommen die Daten in einem Objekt im widget an.
Vorteil, du musst deine DatenpunktStruktur nicht ändern.
Ein Adapter hat relativ einfachen Zugang zu seinen Datenpunkten.@OliverIO .. genau und der Inhalt der Datenpunkte ist folgendes:
{"type":"Feature","geometry":{"type":"LineString","coordinates":[[8.1092108,53.375156],[8.1092214,53.3753376],[8.109268,53.3751492],[8.1092831,53.3755614],[8.1087375,53.3752636],[8.1091828,53.3752033],[8.1061711,53.3707939],[8.1204745,53.3577902],[8.1178562,53.3568921],[8.1169575,53.3571844],[8.1178577,53.3568928],[8.1207508,53.357289],[8.1201376,53.358266],[8.1188753,53.3591781],[8.1151099,53.3618768],[8.1138014,53.3628293],[8.1071239,53.3681901],[8.1083342,53.3749194],[8.1091339,53.3752177]]},"properties":{"timestamps":[1776809217372,1776839037107,1776853064038,1776854521466,1776854946156,1776855492689,1776856707181,1776857010849,1776857314572,1776877018575,1776878051562,1776884737864,1776884798671,1776884859406,1776884920151,1776884981224,1776885041832,1776885224092,1776885284738]}}Das sind dann die Koordinaten von einer Person über einen 24 Stunden Zeitraum.
-
Das mit den 24 Stunden habe ich mir bei Life360 abgeguckt. Da gibt es eine History für jeden Tag. Da komme ich über die API aber nicht ran, deswegen die Idee, es nachzubauen.
Wie gesagt, noch läuft es separat, ausserhalb vom Adapter.
Vorgehen:
Der Adapter holt sich alle 60 Sekunden den aktuellen Standort aller hinterlegten Personen;
Wenn die Entfernung zweier Standorte größer als 20m ist, schreibt das Script die Koordinaten ins GeoJSON .... und erweitert das json dann bis es um 00:00 ein neues json anlegt.Dadurch habe ich die Möglichkeit, mir jeden Tag die Tagesroute anzueigen zu lassen.
Ob man das nun umbedingt im Adapter braucht ?! Ist aber halt 'nice to have', wenn es machbar wäre.
-
@OliverIO .. genau und der Inhalt der Datenpunkte ist folgendes:
{"type":"Feature","geometry":{"type":"LineString","coordinates":[[8.1092108,53.375156],[8.1092214,53.3753376],[8.109268,53.3751492],[8.1092831,53.3755614],[8.1087375,53.3752636],[8.1091828,53.3752033],[8.1061711,53.3707939],[8.1204745,53.3577902],[8.1178562,53.3568921],[8.1169575,53.3571844],[8.1178577,53.3568928],[8.1207508,53.357289],[8.1201376,53.358266],[8.1188753,53.3591781],[8.1151099,53.3618768],[8.1138014,53.3628293],[8.1071239,53.3681901],[8.1083342,53.3749194],[8.1091339,53.3752177]]},"properties":{"timestamps":[1776809217372,1776839037107,1776853064038,1776854521466,1776854946156,1776855492689,1776856707181,1776857010849,1776857314572,1776877018575,1776878051562,1776884737864,1776884798671,1776884859406,1776884920151,1776884981224,1776885041832,1776885224092,1776885284738]}}Das sind dann die Koordinaten von einer Person über einen 24 Stunden Zeitraum.
habe mir gerade mal den adapter in einer dev umgebung installiert.
Sag mir mal wie die Datenstruktur weitergeht.Ich vermute mal unterhalb von people sieht man dann das aus dem Bild?
Also hat man dann einen Ordner mitlife360.0.people.Sven
und dann
life360.0.people.Sven.History_2026-04-21
life360.0.people.Sven.History_2026-04-22
und so fort
? -
habe mir gerade mal den adapter in einer dev umgebung installiert.
Sag mir mal wie die Datenstruktur weitergeht.Ich vermute mal unterhalb von people sieht man dann das aus dem Bild?
Also hat man dann einen Ordner mitlife360.0.people.Sven
und dann
life360.0.people.Sven.History_2026-04-21
life360.0.people.Sven.History_2026-04-22
und so fort
? -
habe mir gerade mal den adapter in einer dev umgebung installiert.
Sag mir mal wie die Datenstruktur weitergeht.Ich vermute mal unterhalb von people sieht man dann das aus dem Bild?
Also hat man dann einen Ordner mitlife360.0.people.Sven
und dann
life360.0.people.Sven.History_2026-04-21
life360.0.people.Sven.History_2026-04-22
und so fort
?Ich vermute mal unterhalb von people sieht man dann das aus dem Bild?
Also hat man dann einen Ordner mitlife360.0.people.Sven
und dann
life360.0.people.Sven.History_2026-04-21
life360.0.people.Sven.History_2026-04-22
und so fort
?Nein! Die Daten sind nicht in den Adapterdatenpunkten.
Die liegen bei mir im userdata.0, weil sie aus einem lokalen Script kommen und noch nicht aus dem Adapter.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden

