iobroker.zeptrion 1.0.6 → 1.0.7

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
@@ -192,6 +192,9 @@ npm run test:integration # starts a real js-controller (takes longer)
192
192
 
193
193
  ## Changelog
194
194
 
195
+ ### 1.0.7 (2026-07-22)
196
+ - Enable global i18n support (jsonConfig i18n: true) with translation files under admin/i18n/ for all 11 supported languages, resolving the checker's i18n warnings the correct way (validatorErrorText stays a plain string per schema; ioBroker resolves the translation via the files, falling back to the English text if no entry is found). Added @iobroker/adapter-dev and @alcalzone/release-script as devDependencies with translate/release npm scripts. (Migrating to @iobroker/eslint-config was evaluated but reverted: its eslint-plugin-import dependency does not yet support eslint 10.x, which broke npm install.)
197
+
195
198
  ### 1.0.6 (2026-07-22)
196
199
  - Fix: reverted validatorErrorText for id/host/travelTimeSecCh back to plain strings - the admin jsonConfig schema requires validatorErrorText to be a string, not an i18n object (E5512). The i18n conversion in 1.0.5 passed lint but failed schema validation.
197
200
 
@@ -212,11 +215,7 @@ npm run test:integration # starts a real js-controller (takes longer)
212
215
  - 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.
213
216
  - Added the missing translations for the global info.connection object (was only en/de).
214
217
 
215
- ### 1.0.0 (2026-07-17)
216
- - 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).
217
- - 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).
218
-
219
- ### 0.8.6 and older
218
+ ### 1.0.0 and older
220
219
 
221
220
  Older changelog entries can be found in [CHANGELOG_OLD.md](CHANGELOG_OLD.md).
222
221
 
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Nur a-z, 0-9, _ und - (oder leer lassen)",
3
+ "Invalid host (no protocol, no spaces)": "Ungültiger Host (kein Protokoll, keine Leerzeichen)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Nur kommagetrennte Zahlen, max. 4 Werte (z. B. '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Only a-z, 0-9, _ and - (or leave empty)",
3
+ "Invalid host (no protocol, no spaces)": "Invalid host (no protocol, no spaces)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Comma-separated numbers only, max 4 values (e.g. '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Solo a-z, 0-9, _ y - (o dejar vacío)",
3
+ "Invalid host (no protocol, no spaces)": "Host no válido (sin protocolo, sin espacios)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Solo números separados por comas, máx. 4 valores (p. ej., '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Uniquement a-z, 0-9, _ et - (ou laisser vide)",
3
+ "Invalid host (no protocol, no spaces)": "Hôte invalide (pas de protocole, pas d'espaces)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Uniquement des nombres séparés par des virgules, 4 valeurs max. (p. ex. '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Solo a-z, 0-9, _ e - (o lasciare vuoto)",
3
+ "Invalid host (no protocol, no spaces)": "Host non valido (nessun protocollo, nessuno spazio)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Solo numeri separati da virgole, max 4 valori (ad es. '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Alleen a-z, 0-9, _ en - (of leeg laten)",
3
+ "Invalid host (no protocol, no spaces)": "Ongeldige host (geen protocol, geen spaties)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Alleen door komma's gescheiden getallen, max. 4 waarden (bijv. '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Tylko a-z, 0-9, _ i - (lub pozostaw puste)",
3
+ "Invalid host (no protocol, no spaces)": "Nieprawidłowy host (bez protokołu, bez spacji)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Tylko liczby oddzielone przecinkami, maks. 4 wartości (np. '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Apenas a-z, 0-9, _ e - (ou deixe vazio)",
3
+ "Invalid host (no protocol, no spaces)": "Host inválido (sem protocolo, sem espaços)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Apenas números separados por vírgulas, máx. 4 valores (por exemplo, '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Только a-z, 0-9, _ и - (или оставьте пустым)",
3
+ "Invalid host (no protocol, no spaces)": "Недопустимый хост (без протокола, без пробелов)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Только числа через запятую, максимум 4 значения (например, '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "Лише a-z, 0-9, _ і - (або залиште порожнім)",
3
+ "Invalid host (no protocol, no spaces)": "Недійсний хост (без протоколу, без пробілів)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "Лише числа через кому, максимум 4 значення (наприклад, '22,28')"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Only a-z, 0-9, _ and - (or leave empty)": "仅限 a-z、0-9、_ 和 -(或留空)",
3
+ "Invalid host (no protocol, no spaces)": "主机无效(不含协议,不含空格)",
4
+ "Comma-separated numbers only, max 4 values (e.g. '22,28')": "仅限逗号分隔的数字,最多 4 个值(例如 '22,28')"
5
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "i18n": false,
2
+ "i18n": true,
3
3
  "type": "tabs",
4
4
  "items": {
5
5
  "tabDevices": {
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "zeptrion",
4
- "version": "1.0.6",
4
+ "version": "1.0.7",
5
5
  "news": {
6
+ "1.0.7": {
7
+ "en": "Enable global i18n support (jsonConfig i18n: true) with translation files under admin/i18n/ for all 11 supported languages, resolving the checker's i18n warnings the correct way (validatorErrorText stays a plain string per schema; ioBroker resolves the translation via the files, falling back to the English text if no entry is found). Added @iobroker/adapter-dev and @alcalzone/release-script as devDependencies with translate/release npm scripts. (Migrating to @iobroker/eslint-config was evaluated but reverted: its eslint-plugin-import dependency does not yet support eslint 10.x, which broke npm install.)",
8
+ "de": "Globale i18n-Unterstützung aktiviert (jsonConfig i18n: true) mit Übersetzungsdateien unter admin/i18n/ für alle 11 unterstützten Sprachen - löst die i18n-Warnungen des Checkers auf die vorgesehene Weise (validatorErrorText bleibt gemäss Schema ein einfacher String; ioBroker löst die Übersetzung über die Dateien auf und fällt bei fehlendem Eintrag auf den englischen Text zurück). @iobroker/adapter-dev und @alcalzone/release-script als devDependencies mit translate/release-Skripten ergänzt. (Die Migration auf @iobroker/eslint-config wurde geprüft, aber zurückgenommen: dessen Abhängigkeit eslint-plugin-import unterstützt eslint 10.x noch nicht und hätte npm install gebrochen.)",
9
+ "ru": "Включена глобальная поддержка i18n (jsonConfig i18n: true) с файлами перевода в admin/i18n/ для всех 11 поддерживаемых языков - это правильно устраняет предупреждения чекера об i18n. Добавлены @iobroker/adapter-dev и @alcalzone/release-script.",
10
+ "pt": "Ativado suporte global a i18n (jsonConfig i18n: true) com ficheiros de tradução em admin/i18n/ para os 11 idiomas suportados. Adicionados @iobroker/adapter-dev e @alcalzone/release-script.",
11
+ "nl": "Globale i18n-ondersteuning ingeschakeld (jsonConfig i18n: true) met vertaalbestanden onder admin/i18n/ voor alle 11 ondersteunde talen. @iobroker/adapter-dev en @alcalzone/release-script toegevoegd.",
12
+ "fr": "Activation du support i18n global (jsonConfig i18n : true) avec des fichiers de traduction sous admin/i18n/ pour les 11 langues prises en charge. Ajout de @iobroker/adapter-dev et @alcalzone/release-script.",
13
+ "it": "Abilitato il supporto i18n globale (jsonConfig i18n: true) con file di traduzione in admin/i18n/ per tutte le 11 lingue supportate. Aggiunti @iobroker/adapter-dev e @alcalzone/release-script.",
14
+ "es": "Se habilitó el soporte global de i18n (jsonConfig i18n: true) con archivos de traducción en admin/i18n/ para los 11 idiomas soportados. Se añadieron @iobroker/adapter-dev y @alcalzone/release-script.",
15
+ "pl": "Włączono globalną obsługę i18n (jsonConfig i18n: true) z plikami tłumaczeń w admin/i18n/ dla wszystkich 11 obsługiwanych języków. Dodano @iobroker/adapter-dev i @alcalzone/release-script.",
16
+ "uk": "Увімкнено глобальну підтримку i18n (jsonConfig i18n: true) з файлами перекладу в admin/i18n/ для всіх 11 підтримуваних мов. Додано @iobroker/adapter-dev і @alcalzone/release-script.",
17
+ "zh-cn": "启用全局 i18n 支持(jsonConfig i18n: true),在 admin/i18n/ 下为所有 11 种支持的语言提供翻译文件。新增 @iobroker/adapter-dev 和 @alcalzone/release-script。"
18
+ },
6
19
  "1.0.6": {
7
20
  "en": "Fix: reverted validatorErrorText for id/host/travelTimeSecCh back to plain strings - the admin jsonConfig schema requires validatorErrorText to be a string, not an i18n object (E5512). The i18n conversion in 1.0.5 passed lint but failed schema validation.",
8
21
  "de": "Fix: validatorErrorText für id/host/travelTimeSecCh wieder auf einfache Strings zurückgesetzt - das Admin-jsonConfig-Schema verlangt für validatorErrorText zwingend einen String, kein i18n-Objekt (E5512). Die i18n-Umstellung in 1.0.5 bestand den Linter, aber nicht die Schema-Validierung.",
@@ -80,19 +93,6 @@
80
93
  "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.",
81
94
  "uk": "ВИПРАВЛЕННЯ: calibrate декларував роль 'level', але read=false - роль 'level' вимагає read=true згідно з каталогом ролей ioBroker. Змінено на read=true, розширено міграцію під час запуску. Додано відсутні переклади для глобального об'єкта info.connection.",
82
95
  "zh-cn": "修复:calibrate 声明角色为 'level',但 read=false——根据 ioBroker 角色目录,角色 'level' 要求 read=true。已更改为 read=true,并扩展了启动迁移。补充了全局 info.connection 对象缺失的翻译。"
83
- },
84
- "1.0.0": {
85
- "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).",
86
- "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).",
87
- "ru": "Первый релиз 1.0. ИСПРАВЛЕНИЕ: предыдущий релиз исправил роли calibrate/ntp.per и перевод info.connection, но ensureState() никогда не обновляет уже существующий объект - поэтому установки, обновлённые с более старой версии, навсегда сохраняли старые, неверные объекты. Добавлена одноразовая миграция при запуске, принудительно исправляющая именно эти известные объекты.",
88
- "pt": "Primeiro lançamento 1.0. CORREÇÃO: o lançamento anterior corrigiu as funções calibrate/ntp.per e a tradução info.connection, mas ensureState() nunca atualiza um objeto já existente - por isso as instalações atualizadas de uma versão mais antiga mantinham para sempre os objetos antigos incorretos. Adicionada uma migração única no arranque.",
89
- "nl": "Eerste 1.0-release. FIX: de vorige release corrigeerde de calibrate/ntp.per-rollen en de info.connection-vertaling, maar ensureState() werkt nooit een reeds bestaand object bij - installaties bijgewerkt vanaf een oudere versie behielden dus permanent de oude, onjuiste objecten. Eenmalige opstartmigratie toegevoegd.",
90
- "fr": "Première version 1.0. CORRECTIF : la version précédente a corrigé les rôles calibrate/ntp.per et la traduction info.connection, mais ensureState() ne met jamais à jour un objet déjà existant - les installations mises à jour depuis une version plus ancienne conservaient donc indéfiniment les anciens objets incorrects. Migration unique au démarrage ajoutée.",
91
- "it": "Prima versione 1.0. CORREZIONE: la versione precedente ha corretto i ruoli calibrate/ntp.per e la traduzione info.connection, ma ensureState() non aggiorna mai un oggetto già esistente - le installazioni aggiornate da una versione precedente mantenevano quindi per sempre i vecchi oggetti errati. Aggiunta una migrazione una tantum all'avvio.",
92
- "es": "Primera versión 1.0. CORRECCIÓN: la versión anterior corrigió los roles calibrate/ntp.per y la traducción de info.connection, pero ensureState() nunca actualiza un objeto ya existente, por lo que las instalaciones actualizadas desde una versión anterior conservaban para siempre los objetos antiguos incorrectos. Se añadió una migración única al inicio.",
93
- "pl": "Pierwsze wydanie 1.0. POPRAWKA: poprzednie wydanie naprawiło role calibrate/ntp.per oraz tłumaczenie info.connection, ale ensureState() nigdy nie aktualizuje już istniejącego obiektu - instalacje zaktualizowane ze starszej wersji na stałe zachowywały więc stare, błędne obiekty. Dodano jednorazową migrację przy starcie.",
94
- "uk": "Перший реліз 1.0. ВИПРАВЛЕННЯ: попередній реліз виправив ролі calibrate/ntp.per та переклад info.connection, але ensureState() ніколи не оновлює вже існуючий об'єкт - тому інсталяції, оновлені зі старішої версії, назавжди зберігали старі, неправильні об'єкти. Додано одноразову міграцію під час запуску.",
95
- "zh-cn": "首个 1.0 版本。修复:上一版本修正了 calibrate/ntp.per 角色和 info.connection 翻译,但 ensureState() 从不更新已存在的对象——因此从旧版本升级的安装会永久保留旧的、不正确的对象。新增了一次性启动迁移来强制修正这些已知对象。"
96
96
  }
97
97
  },
98
98
  "titleLang": {
package/package.json CHANGED
@@ -1,62 +1,66 @@
1
1
  {
2
- "name": "iobroker.zeptrion",
3
- "version": "1.0.6",
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
- "author": "Stefan Bühler",
6
- "license": "MIT",
7
- "homepage": "https://github.com/bueste/ioBroker.zeptrion",
8
- "funding": {
9
- "type": "buymeacoffee",
10
- "url": "https://buymeacoffee.com/stefanbuehler"
11
- },
12
- "repository": {
13
- "type": "git",
14
- "url": "https://github.com/bueste/ioBroker.zeptrion.git"
15
- },
16
- "bugs": {
17
- "url": "https://github.com/bueste/ioBroker.zeptrion/issues"
18
- },
19
- "keywords": [
20
- "ioBroker",
21
- "feller",
22
- "zeptrion",
23
- "zapp",
24
- "storen",
25
- "rolladen",
26
- "shutter",
27
- "wlan",
28
- "smart home",
29
- "hagel"
30
- ],
31
- "main": "main.js",
32
- "files": [
33
- "admin/",
34
- "main.js",
35
- "lib/",
36
- "io-package.json",
37
- "LICENSE"
38
- ],
39
- "engines": {
40
- "node": ">=22"
41
- },
42
- "dependencies": {
43
- "@iobroker/adapter-core": "^3.4.2",
44
- "axios": "^1.18.1",
45
- "fast-xml-parser": "^5.9.3",
46
- "bonjour-service": "^1.4.3"
47
- },
48
- "devDependencies": {
49
- "@iobroker/testing": "^5.3.0",
50
- "eslint": "^10.7.0",
51
- "@tsconfig/node22": "^22.0.5",
52
- "@types/node": "^22.20.1"
53
- },
54
- "scripts": {
55
- "start": "node main.js",
56
- "lint": "eslint . --ext .js",
57
- "test:package": "mocha test/package.js --exit",
58
- "test:unit": "mocha test/unit.js --exit",
59
- "test:integration": "mocha test/integration.js --exit --timeout 60000",
60
- "test": "npm run test:package && npm run test:unit"
61
- }
2
+ "name": "iobroker.zeptrion",
3
+ "version": "1.0.7",
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
+ "author": "Stefan Bühler",
6
+ "license": "MIT",
7
+ "homepage": "https://github.com/bueste/ioBroker.zeptrion",
8
+ "funding": {
9
+ "type": "buymeacoffee",
10
+ "url": "https://buymeacoffee.com/stefanbuehler"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "https://github.com/bueste/ioBroker.zeptrion.git"
15
+ },
16
+ "bugs": {
17
+ "url": "https://github.com/bueste/ioBroker.zeptrion/issues"
18
+ },
19
+ "keywords": [
20
+ "ioBroker",
21
+ "feller",
22
+ "zeptrion",
23
+ "zapp",
24
+ "storen",
25
+ "rolladen",
26
+ "shutter",
27
+ "wlan",
28
+ "smart home",
29
+ "hagel"
30
+ ],
31
+ "main": "main.js",
32
+ "files": [
33
+ "admin/",
34
+ "main.js",
35
+ "lib/",
36
+ "io-package.json",
37
+ "LICENSE"
38
+ ],
39
+ "engines": {
40
+ "node": ">=22"
41
+ },
42
+ "dependencies": {
43
+ "@iobroker/adapter-core": "^3.4.2",
44
+ "axios": "^1.18.1",
45
+ "fast-xml-parser": "^5.9.3",
46
+ "bonjour-service": "^1.4.3"
47
+ },
48
+ "devDependencies": {
49
+ "@alcalzone/release-script": "^3.8.0",
50
+ "@iobroker/adapter-dev": "^1.4.0",
51
+ "@iobroker/testing": "^5.3.0",
52
+ "@tsconfig/node22": "^22.0.5",
53
+ "@types/node": "^22.20.1",
54
+ "eslint": "^10.7.0"
55
+ },
56
+ "scripts": {
57
+ "start": "node main.js",
58
+ "lint": "eslint . --ext .js",
59
+ "test:package": "mocha test/package.js --exit",
60
+ "test:unit": "mocha test/unit.js --exit",
61
+ "test:integration": "mocha test/integration.js --exit --timeout 60000",
62
+ "test": "npm run test:package && npm run test:unit",
63
+ "translate": "translate-adapter",
64
+ "release": "release-script"
65
+ }
62
66
  }