iobroker.life360ng 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -292,6 +292,9 @@ Note: The original [repository](https://github.com/MiGoller/ioBroker.life360) is
292
292
  <!--
293
293
  ### **WORK IN PROGRESS**
294
294
  -->
295
+ ### 1.2.3 (2026-05-03)
296
+ - (skvarel) Fixed circle map header name
297
+
295
298
  ### 1.2.2 (2026-05-03)
296
299
  - (skvarel) Modified map - Endpoint of the past days as a dot instead of a pin
297
300
 
@@ -307,10 +310,6 @@ Note: The original [repository](https://github.com/MiGoller/ioBroker.life360) is
307
310
  - (skvarel) Removed dependency on Places adapter
308
311
  - (skvarel) NOTE: Delete all adapter objects after updating (see Migration Notes)
309
312
 
310
- ### 1.0.21 (2026-04-13)
311
- - (skvarel) Improved help tab in the config
312
- - (skvarel) Added new screenshots of browser DevTools
313
-
314
313
  ## Older changes
315
314
  - [CHANGELOG_OLD.md](CHANGELOG_OLD.md)
316
315
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "debugging_verbose": "Aktiviere hier die ausführliche Protokollierung",
3
3
  "family_map_header_name": "Name der Kreiskarten-Kopfzeile (optional)",
4
- "family_map_header_name_help": "Wenn dieser Name festgelegt ist, wird er als Kopfzeile in der Kreiskarte angezeigt. Lassen das Feld leer, um den Kreisnamen oder die Standardeinstellung 'Circle' zu verwenden.",
4
+ "family_map_header_name_help": "Wenn dieser Name festgelegt ist, wird er als Kopfzeile in der Kreiskarte angezeigt. Lassen das Feld leer, um den Kreisnamen aus der App oder die Standardeinstellung 'Circle' zu verwenden.",
5
5
  "help_txt": "Weitere Informationen findest du im „Hilfe“-Tab!",
6
6
  "helps": "Hilfe & FAQ",
7
7
  "intro_txt": "Hilfe & FAQ",
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "life360ng",
4
- "version": "1.2.2",
4
+ "version": "1.2.3",
5
5
  "news": {
6
+ "1.2.3": {
7
+ "en": "Fixed circle map header name",
8
+ "de": "Feste Kreiskarten-Headername",
9
+ "ru": "Название заголовка карты фиксированного круга",
10
+ "pt": "Nome fixo do cabeçalho do mapa do círculo",
11
+ "nl": "Naam vaste cirkelkaartkop",
12
+ "fr": "Nom d'en-tête de la carte du cercle fixe",
13
+ "it": "Nome dell'intestazione della mappa del cerchio fisso",
14
+ "es": "Nombre del encabezado del mapa del círculo fijo",
15
+ "pl": "Poprawiona nazwa nagłówka mapy okręgu",
16
+ "uk": "Фіксоване коло ім'я заголовка",
17
+ "zh-cn": "固定圆形地图头名称"
18
+ },
6
19
  "1.2.2": {
7
20
  "en": "Modified map - Endpoint of the past days as a dot instead of a pin",
8
21
  "de": "Geänderte Karte - Endpunkt der letzten Tage als Punkt anstelle eines Stiftes",
@@ -80,19 +93,6 @@
80
93
  "pl": "Usunięta reakcja i mui\nEdytuj readme",
81
94
  "uk": "Зняти реагацію і мус\nРедагувати читання",
82
95
  "zh-cn": "删除反应和 mui\n编辑读取器"
83
- },
84
- "1.0.19": {
85
- "en": "Translations adjusted",
86
- "de": "Übersetzungen bereinigt",
87
- "ru": "Переводы скорректированы",
88
- "pt": "Traduções ajustadas",
89
- "nl": "Vertalingen aangepast",
90
- "fr": "Corrigé des traductions",
91
- "it": "Traduzioni regolate",
92
- "es": "Traducciones ajustadas",
93
- "pl": "Korekta tłumaczeń",
94
- "uk": "Переклади",
95
- "zh-cn": "经调整的翻译"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -1105,7 +1105,9 @@ class Tracker {
1105
1105
  this.adapter.log.debug(`[Tracker] CircleMap: using user-defined header name: ${circleName}`);
1106
1106
  } else {
1107
1107
  try {
1108
- // Try to get circle name from state
1108
+ const ns = this.config.namespace;
1109
+ // Try to find a circleId from the person objects, then fall back to
1110
+ // querying the circles channel objects directly from the object store.
1109
1111
  const firstPerson = personFCs[0]?.person;
1110
1112
  let circleId = firstPerson?.circleId;
1111
1113
  if (!circleId && this.config.circleId) {
@@ -1114,9 +1116,24 @@ class Tracker {
1114
1116
  if (!circleId && this.config.people?.length > 0) {
1115
1117
  circleId = this.config.people[0]?.circleId;
1116
1118
  }
1119
+
1120
+ if (!circleId) {
1121
+ // No circleId in config — query circle channels from object store
1122
+ const circleObjects = await this.adapter.getObjectViewAsync("system", "channel", {
1123
+ startkey: `${ns}.circles.`,
1124
+ endkey: `${ns}.circles.\u9999`,
1125
+ });
1126
+ const circleRow = circleObjects?.rows?.find(
1127
+ r => r.id && r.id.split(".").length === ns.split(".").length + 2,
1128
+ );
1129
+ if (circleRow) {
1130
+ circleId = circleRow.id.split(".").pop();
1131
+ this.adapter.log.debug(`[Tracker] CircleMap: circleId from object store: ${circleId}`);
1132
+ }
1133
+ }
1134
+
1117
1135
  this.adapter.log.debug(`[Tracker] CircleMap: detected circleId = ${circleId}`);
1118
1136
  if (circleId) {
1119
- const ns = this.config.namespace;
1120
1137
  const stateId = `${ns}.circles.${circleId}.name`;
1121
1138
  const state = await this.adapter.getStateAsync(stateId);
1122
1139
  this.adapter.log.debug(`[Tracker] CircleMap: reading state ${stateId}, value: ${state?.val}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.life360ng",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "An ioBroker adapter for Life360.",
5
5
  "author": "skvarel <skvarel@inventwo.com>",
6
6
  "homepage": "https://github.com/inventwo/ioBroker.life360ng",