iobroker.zeptrion 1.0.0 → 1.0.2

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
@@ -190,6 +190,13 @@ npm run test:integration # starts a real js-controller (takes longer)
190
190
 
191
191
  ## Changelog
192
192
 
193
+ ### 1.0.2 (2026-07-17)
194
+ - FIX: the global (adapter-level) info.connection translations added in 1.0.1 are only synced automatically by js-controller on certain update paths (e.g. 'iobroker upgrade'), not reliably when installing via 'iobroker url' - added this to the startup migration too, so it no longer depends on that.
195
+
196
+ ### 1.0.1 (2026-07-17)
197
+ - FIX: calibrate declared role 'level' but read=false - role 'level' requires read=true per the ioBroker role catalogue. Changed to read=true and extended the startup migration to also correct existing objects still holding the old read=false.
198
+ - Added the missing translations for the global info.connection object (was only en/de).
199
+
193
200
  ### 1.0.0 (2026-07-17)
194
201
  - First 1.0 release - the adapter has reached a stable, complete feature set (multicast command bundling, mDNS discovery, hail bulk commands, position estimation, Smartfront support, CSV import, full i18n).
195
202
  - FIX: the previous release corrected calibrate/ntp.per roles and the info.connection translation, but ensureState() never updates an object that already exists - so installations updated from an older version kept the old, incorrect objects forever. Added a one-time startup migration that force-corrects exactly those known objects via extendObjectAsync(), without touching anything else (including the adapter's own built-in root info.connection object).
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "zeptrion",
4
- "version": "1.0.0",
4
+ "version": "1.0.2",
5
5
  "news": {
6
+ "1.0.2": {
7
+ "en": "FIX: the global (adapter-level) info.connection translations added in 1.0.1 are only synced automatically by js-controller on certain update paths (e.g. 'iobroker upgrade'), not reliably when installing via 'iobroker url' - added this to the startup migration too, so it no longer depends on that.",
8
+ "de": "FIX: die in 1.0.1 ergänzten Übersetzungen für das globale (adapter-eigene) info.connection werden von js-controller nur bei bestimmten Update-Wegen (z.B. 'iobroker upgrade') automatisch synchronisiert, nicht zuverlässig bei Installation via 'iobroker url' - auch in die Start-Migration aufgenommen, damit das nicht mehr davon abhängt.",
9
+ "ru": "ИСПРАВЛЕНИЕ: глобальные переводы info.connection, добавленные в 1.0.1, синхронизируются js-controller автоматически только при определённых способах обновления, ненадёжно при установке через 'iobroker url' - добавлено также в миграцию при запуске.",
10
+ "pt": "CORREÇÃO: as traduções globais de info.connection adicionadas na 1.0.1 só são sincronizadas automaticamente pelo js-controller em determinados caminhos de atualização, não de forma fiável ao instalar via 'iobroker url' - adicionado também à migração de arranque.",
11
+ "nl": "FIX: de globale info.connection-vertalingen toegevoegd in 1.0.1 worden alleen automatisch gesynchroniseerd door js-controller bij bepaalde update-paden, niet betrouwbaar bij installatie via 'iobroker url' - ook toegevoegd aan de opstartmigratie.",
12
+ "fr": "CORRECTIF : les traductions globales info.connection ajoutées en 1.0.1 ne sont synchronisées automatiquement par js-controller que sur certains chemins de mise à jour, pas de manière fiable lors d'une installation via 'iobroker url' - ajouté également à la migration au démarrage.",
13
+ "it": "CORREZIONE: le traduzioni globali di info.connection aggiunte nella 1.0.1 vengono sincronizzate automaticamente da js-controller solo su determinati percorsi di aggiornamento, non in modo affidabile quando si installa tramite 'iobroker url' - aggiunto anche alla migrazione all'avvio.",
14
+ "es": "CORRECCIÓN: las traducciones globales de info.connection añadidas en 1.0.1 solo se sincronizan automáticamente mediante js-controller en determinadas rutas de actualización, no de forma fiable al instalar mediante 'iobroker url' - añadido también a la migración de inicio.",
15
+ "pl": "POPRAWKA: globalne tłumaczenia info.connection dodane w 1.0.1 są automatycznie synchronizowane przez js-controller tylko przy określonych ścieżkach aktualizacji, niewiarygodnie przy instalacji przez 'iobroker url' - dodano również do migracji przy starcie.",
16
+ "uk": "ВИПРАВЛЕННЯ: глобальні переклади info.connection, додані в 1.0.1, синхронізуються js-controller автоматично лише за певних шляхів оновлення, ненадійно при встановленні через 'iobroker url' - додано також до міграції під час запуску.",
17
+ "zh-cn": "修复:1.0.1 中添加的全局 info.connection 翻译仅在特定更新路径(例如 'iobroker upgrade')下由 js-controller 自动同步,通过 'iobroker url' 安装时并不可靠——现已同样加入启动迁移中。"
18
+ },
19
+ "1.0.1": {
20
+ "en": "FIX: calibrate declared role 'level' but read=false - role 'level' requires read=true per the ioBroker role catalogue. Changed to read=true and extended the startup migration to also correct existing objects still holding the old read=false. Added the missing translations for the global info.connection object (was only en/de).",
21
+ "de": "FIX: calibrate deklarierte Rolle 'level', aber read=false - die Rolle 'level' erfordert laut ioBroker-Rollenkatalog read=true. Auf read=true geändert und die Start-Migration erweitert, damit auch bestehende Objekte mit dem alten read=false korrigiert werden. Fehlende Übersetzungen für das globale info.connection-Objekt ergänzt (waren nur en/de).",
22
+ "ru": "ИСПРАВЛЕНИЕ: calibrate объявлял роль 'level', но read=false - роль 'level' требует read=true согласно каталогу ролей ioBroker. Изменено на read=true, миграция при запуске расширена. Добавлены отсутствующие переводы для глобального объекта info.connection.",
23
+ "pt": "CORREÇÃO: calibrate declarava a função 'level', mas read=false - a função 'level' exige read=true segundo o catálogo de funções do ioBroker. Alterado para read=true, migração de arranque estendida. Adicionadas as traduções em falta para o objeto global info.connection.",
24
+ "nl": "FIX: calibrate declareerde rol 'level', maar read=false - rol 'level' vereist read=true volgens de ioBroker-rolcatalogus. Gewijzigd naar read=true, opstartmigratie uitgebreid. Ontbrekende vertalingen voor het globale info.connection-object toegevoegd.",
25
+ "fr": "CORRECTIF : calibrate déclarait le rôle 'level', mais read=false - le rôle 'level' nécessite read=true selon le catalogue de rôles ioBroker. Changé en read=true, migration au démarrage étendue. Traductions manquantes pour l'objet global info.connection ajoutées.",
26
+ "it": "CORREZIONE: calibrate dichiarava il ruolo 'level', ma read=false - il ruolo 'level' richiede read=true secondo il catalogo dei ruoli di ioBroker. Cambiato in read=true, migrazione all'avvio estesa. Aggiunte le traduzioni mancanti per l'oggetto globale info.connection.",
27
+ "es": "CORRECCIÓN: calibrate declaraba el rol 'level', pero read=false - el rol 'level' requiere read=true según el catálogo de roles de ioBroker. Cambiado a read=true, migración de inicio ampliada. Se añadieron las traducciones faltantes para el objeto global info.connection.",
28
+ "pl": "POPRAWKA: calibrate deklarował rolę 'level', ale read=false - rola 'level' wymaga read=true zgodnie z katalogiem ról ioBroker. Zmieniono na read=true, rozszerzono migrację przy starcie. Dodano brakujące tłumaczenia dla globalnego obiektu info.connection.",
29
+ "uk": "ВИПРАВЛЕННЯ: calibrate декларував роль 'level', але read=false - роль 'level' вимагає read=true згідно з каталогом ролей ioBroker. Змінено на read=true, розширено міграцію під час запуску. Додано відсутні переклади для глобального об'єкта info.connection.",
30
+ "zh-cn": "修复:calibrate 声明角色为 'level',但 read=false——根据 ioBroker 角色目录,角色 'level' 要求 read=true。已更改为 read=true,并扩展了启动迁移。补充了全局 info.connection 对象缺失的翻译。"
31
+ },
6
32
  "1.0.0": {
7
33
  "en": "First 1.0 release. FIX: the previous release corrected calibrate/ntp.per roles and the info.connection translation, but ensureState() never updates an object that already exists - so installations updated from an older version kept the old, incorrect objects forever. Added a one-time startup migration that force-corrects exactly those known objects via extendObjectAsync(), without touching anything else (including the adapter's own built-in root info.connection object). No other functional changes since 0.8.6 - the version bump to 1.0.0 reflects that the adapter has reached a stable, complete feature set (multicast command bundling, mDNS discovery, hail bulk commands, position estimation, Smartfront support, CSV import, full i18n).",
8
34
  "de": "Erstes 1.0-Release. FIX: Das vorherige Release hat die calibrate/ntp.per-Rollen und die info.connection-Übersetzung korrigiert, aber ensureState() aktualisiert nie ein bereits existierendes Objekt - Installationen, die von einer älteren Version aktualisiert haben, behielten die alten, falschen Objekte dauerhaft. Eine einmalige Start-Migration ergänzt, die genau diese bekannten Objekte per extendObjectAsync() zwangskorrigiert, ohne sonst etwas anzufassen (auch nicht das adaptereigene, eingebaute root-info.connection-Objekt). Keine weiteren funktionalen Änderungen seit 0.8.6 - der Sprung auf 1.0.0 spiegelt wider, dass der Adapter einen stabilen, vollständigen Funktionsumfang erreicht hat (Multicast-Befehlsbündelung, mDNS-Discovery, Hagel-Sammelbefehle, Positionsschätzung, Smartfront-Unterstützung, CSV-Import, vollständige i18n).",
@@ -177,7 +203,16 @@
177
203
  "role": "indicator.connected",
178
204
  "name": {
179
205
  "en": "At least one device reachable",
180
- "de": "Mindestens ein Gerät erreichbar"
206
+ "de": "Mindestens ein Gerät erreichbar",
207
+ "ru": "Доступно хотя бы одно устройство",
208
+ "pt": "Pelo menos um dispositivo acessível",
209
+ "nl": "Ten minste één apparaat bereikbaar",
210
+ "fr": "Au moins un appareil accessible",
211
+ "it": "Almeno un dispositivo raggiungibile",
212
+ "es": "Al menos un dispositivo accesible",
213
+ "pl": "Co najmniej jedno urządzenie dostępne",
214
+ "uk": "Принаймні один пристрій доступний",
215
+ "zh-cn": "至少有一个设备可访问"
181
216
  },
182
217
  "type": "boolean",
183
218
  "read": true,
package/main.js CHANGED
@@ -136,8 +136,8 @@ class Zeptrion extends utils.Adapter {
136
136
  if (!obj || obj.type !== 'state' || !obj.common) {
137
137
  continue;
138
138
  }
139
- if (/\.calibrate$/.test(id) && obj.common.role === 'value') {
140
- await this.extendObjectAsync(id, { common: { role: 'level' } });
139
+ if (/\.calibrate$/.test(id) && (obj.common.role === 'value' || obj.common.read === false)) {
140
+ await this.extendObjectAsync(id, { common: { role: 'level', read: true } });
141
141
  fixedCount++;
142
142
  } else if (/\.ntp\.per$/.test(id) && obj.common.role === 'value') {
143
143
  await this.extendObjectAsync(id, { common: { role: 'level' } });
@@ -161,6 +161,35 @@ class Zeptrion extends utils.Adapter {
161
161
  }
162
162
  });
163
163
  fixedCount++;
164
+ } else if (
165
+ (id === 'info.connection' || /^[^.]+\.\d+\.info\.connection$/.test(id)) &&
166
+ obj.common.name &&
167
+ typeof obj.common.name === 'object' &&
168
+ !obj.common.name.ru
169
+ ) {
170
+ // The global (adapter-level, not per-device) info.connection instanceObject:
171
+ // io-package.json has the full translation since 1.0.1, but instanceObjects are
172
+ // only synced by js-controller on certain update paths (e.g. 'iobroker upgrade')
173
+ // - not reliably when installing via 'iobroker url', which some users do. Force
174
+ // it here too so it doesn't depend on that.
175
+ await this.extendObjectAsync(id, {
176
+ common: {
177
+ name: {
178
+ en: 'At least one device reachable',
179
+ de: 'Mindestens ein Gerät erreichbar',
180
+ ru: 'Доступно хотя бы одно устройство',
181
+ pt: 'Pelo menos um dispositivo acessível',
182
+ nl: 'Ten minste één apparaat bereikbaar',
183
+ fr: 'Au moins un appareil accessible',
184
+ it: 'Almeno un dispositivo raggiungibile',
185
+ es: 'Al menos un dispositivo accesible',
186
+ pl: 'Co najmniej jedno urządzenie dostępne',
187
+ uk: 'Принаймні один пристрій доступний',
188
+ 'zh-cn': '至少有一个设备可访问'
189
+ }
190
+ }
191
+ });
192
+ fixedCount++;
164
193
  }
165
194
  }
166
195
  if (fixedCount > 0) {
@@ -587,7 +616,7 @@ class Zeptrion extends utils.Adapter {
587
616
  });
588
617
  await this.ensureState(`${ch}.calibrate`, {
589
618
  name: 'Schätzung setzen OHNE Fahrt (z.B. nach manueller Bedienung am Wandtaster): aktuellen Ist-Zustand in % eintragen',
590
- type: 'number', role: 'level', min: 0, max: 100, read: false, write: true
619
+ type: 'number', role: 'level', min: 0, max: 100, read: true, write: true
591
620
  });
592
621
  await this.extendObjectAsync(`${ch}.tiltOpen`, {
593
622
  type: 'state',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.zeptrion",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "ioBroker Adapter für Feller zeptrion / zApp WLAN-Aktoren (WLAN-Nebenstelle 4K, WLAN-Zwischenmodul 2K) über die zrap Webservice API - inkl. Sammelbefehlen für Hagelalarm und mDNS-Discovery",
5
5
  "author": {
6
6
  "name": "Stefan",