iobroker.e3oncan 1.1.1 → 1.1.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 +3 -0
- package/io-package.json +14 -14
- package/lib/canUds.js +39 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -427,6 +427,9 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
|
|
|
427
427
|
Placeholder for the next version (at the beginning of the line):
|
|
428
428
|
### **WORK IN PROGRESS**
|
|
429
429
|
-->
|
|
430
|
+
### 1.1.2 (2026-07-16)
|
|
431
|
+
* (MyHomeMyData) Fixed missing update of meta data (unit, description) when user changes device specific data point definition
|
|
432
|
+
|
|
430
433
|
### 1.1.1 (2026-07-06)
|
|
431
434
|
* (MyHomeMyData) Update of list of data points for E3 devices to version 20260705 (common)
|
|
432
435
|
* (MyHomeMyData) Fixed duplicate display of variant data points in data point list of WebUI
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "e3oncan",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.2",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.1.2": {
|
|
7
|
+
"en": "Fixed missing update of meta data (unit, description) when user changes device specific data point definition",
|
|
8
|
+
"de": "Problem behoben: Fehlende Aktualisierung der Metadaten (Einheit, Beschreibung) bei Änderung der gerätespezifischen Datenpunktdefinition durch den Benutzer.",
|
|
9
|
+
"ru": "Исправлена ошибка, из-за которой отсутствовало обновление метаданных (единица измерения, описание) при изменении пользователем определения параметров конкретного устройства.",
|
|
10
|
+
"pt": "Corrigida a falha na atualização dos metadados (unidade, descrição) quando o usuário altera a definição do ponto de dados específico do dispositivo.",
|
|
11
|
+
"nl": "Het probleem is opgelost waarbij de metadata (eenheid, beschrijving) niet werd bijgewerkt wanneer de gebruiker de apparaatspecifieke datapuntdefinitie wijzigde.",
|
|
12
|
+
"fr": "Correction d'un problème de mise à jour des métadonnées (unité, description) lors de la modification de la définition des points de données spécifiques à l'appareil par l'utilisateur.",
|
|
13
|
+
"it": "Risolto il problema relativo all'aggiornamento mancante dei metadati (unità, descrizione) quando l'utente modifica la definizione del punto dati specifico del dispositivo.",
|
|
14
|
+
"es": "Se corrigió la falta de actualización de metadatos (unidad, descripción) cuando el usuario cambia la definición del punto de datos específico del dispositivo.",
|
|
15
|
+
"pl": "Naprawiono brak aktualizacji metadanych (jednostka, opis), gdy użytkownik zmienia definicję punktu danych konkretnego urządzenia",
|
|
16
|
+
"uk": "Виправлено відсутнє оновлення метаданих (одиниця, опис), коли користувач змінює визначення точки даних для конкретного пристрою",
|
|
17
|
+
"zh-cn": "修复了用户更改设备特定数据点定义时元数据(单位、描述)更新缺失的问题。"
|
|
18
|
+
},
|
|
6
19
|
"1.1.1": {
|
|
7
20
|
"en": "Update of list of data points for E3 devices to version 20260705 (common)\nFixed duplicate display of variant data points in data point list of WebUI",
|
|
8
21
|
"de": "Aktualisierung der Liste der Datenpunkte für E3-Geräte auf Version 20260705 für gemeinsame Datenpunkte\nDoppelte Anzeige von varianten Datenpunkten in der Datenpunktliste der WebUI behoben",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Adapter wymaga node.js > = 22\nUlepszone wykrywanie statusu skanowania: używa 'udsDidsWritable' zamiast 'didsMetaDict' w celu wiarygodnego wykrycia, czy skan punktowy danych został wykonany\nDodano podpowiedź rekomendacji ponownego skanowania w zakładce datapoints, gdy skanowanie istnieje, ale zbieranie autodetekcji nie zostało jeszcze uruchomione",
|
|
81
94
|
"uk": "Адаптер вимагає node.js >= 22 тепер\nУдосконалено виявлення стану сканування: використовує `udsDidsWritable` замість `didsMetaDict` для надійного виявлення, чи проводиться сканування точок даних\nДодано повторне сканування натиснення в вкладці даних, коли існує сканування, але Збір автодетекції ще не працює",
|
|
82
95
|
"zh-cn": "适配器需要节点.js 现在22\n改进扫描状态检测:使用“didsWriteble”而不是“didsMetaDict”可靠地检测是否已进行数据点扫描\n当扫描已经存在但收集自动检测尚未运行时, 在数据点标签中添加了重新扫描建议提示"
|
|
83
|
-
},
|
|
84
|
-
"1.0.0-beta.2": {
|
|
85
|
-
"en": "Fixed: saving schedules in the datapoints tab could leave stale entries under certain conditions\nAdded Topology button to the datapoints tab; opens the bus topology diagram in a modal dialog",
|
|
86
|
-
"de": "Behoben: Das Speichern von Zeitplänen in der Registerkarte Datenpunkte könnte unter bestimmten Bedingungen doppelte Einträge hinterlassen\nHinzugefügt: Button Topologie auf der Seite Datenpunkte öffnet die Topologie-Übersicht",
|
|
87
|
-
"ru": "Исправлено: сохранение графиков во вкладке «Точки данных» может оставить устаревшие записи при определенных условиях\nДобавлена кнопка «Топология» на вкладке «Точки данных»; открывается диаграмма топологии шины в модальном диалоге",
|
|
88
|
-
"pt": "Corrigido: salvar agendamentos na aba pontos de dados poderia deixar entradas antigas sob certas condições\nAdicionado botão de Topologia à página de pontos de dados; abre o diagrama de topologia de barramento numa janela modal",
|
|
89
|
-
"nl": "Fixed: het opslaan van schema's in het tabblad datapunten kan oude items onder bepaalde voorwaarden verlaten\nTopologieknop toegevoegd aan het tabblad datapunten; opent het bustopologiediagram in een modal dialoogvenster",
|
|
90
|
-
"fr": "Correction : enregistrer des horaires dans l'onglet points de données pourrait laisser des entrées bloquées sous certaines conditions\nAjout du bouton Topologie à l'onglet datapoints; ouverture du diagramme de topologie du bus dans une boîte de dialogue modale",
|
|
91
|
-
"it": "Risolto: gli orari di risparmio nella scheda datapoint potrebbero lasciare le voci stanti in determinate condizioni\nAggiunto Topologia pulsante per i punti di dati scheda; apre il diagramma topologia bus in una finestra di dialogo modale",
|
|
92
|
-
"es": "Fijación: los horarios de ahorro en la pestaña Puntos de datos podrían dejar entradas en ciertas condiciones\nBotón de Topología añadido a la pestaña puntos de datos; abre el diagrama de topología del bus en un diálogo modal",
|
|
93
|
-
"pl": "Naprawiono: Zapisywanie harmonogramów w zakładce punkty danych może zostawić nieświeże wpisy pod pewnymi warunkami\nDodano przycisk Topologia do zakładki punkty danych; otwiera schemat topologii autobusu w oknie modalnym",
|
|
94
|
-
"uk": "Виправлено: Зберегти графіки в вкладці даних може залишити записи за певними умовами\nДодано кнопку Топології до вкладки даних; відкриває схему топології автобуса в модальному діалоговому вікні",
|
|
95
|
-
"zh-cn": "固定:在数据点标签中保存时间表可能会在某些条件下留下呆滞的条目\n添加到数据点标签的地形按钮; 在模式对话框中打开总线地形图"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/lib/canUds.js
CHANGED
|
@@ -566,7 +566,46 @@ class uds {
|
|
|
566
566
|
await ctx.log.info(
|
|
567
567
|
`User requested change of UDS device specific datapoint definition on ${this.config.stateBase}`,
|
|
568
568
|
);
|
|
569
|
+
const oldDidsSpec = JSON.parse(JSON.stringify(this.storage.storageDids.didsDictDevSpec));
|
|
569
570
|
await this.storage.storageDids.readKnownDids(ctx, await this.getWorkerOpMode());
|
|
571
|
+
const unitsStr =
|
|
572
|
+
!this.config.devUnits || this.config.devUnits == 'n/a' ? ctx.udsMasterDevUnits : this.config.devUnits;
|
|
573
|
+
for (const [did, didInfo] of Object.entries(this.storage.storageDids.didsDictDevSpec)) {
|
|
574
|
+
if (did.length > 4) {
|
|
575
|
+
continue;
|
|
576
|
+
}
|
|
577
|
+
const didStr = this.storage.storageDids.getDidStr(did);
|
|
578
|
+
await this.storage.storageDids.setupCodecById(didInfo, `${this.config.stateBase}.${didStr}_`, unitsStr);
|
|
579
|
+
await ctx.log.info(`continue => ${JSON.stringify(oldDidsSpec[did])}`);
|
|
580
|
+
if (did in oldDidsSpec && JSON.stringify(oldDidsSpec[did]) === JSON.stringify(didInfo)) {
|
|
581
|
+
continue;
|
|
582
|
+
}
|
|
583
|
+
const idStr = didInfo.id.replace(ctx.FORBIDDEN_CHARS, '_').replace('.', '_');
|
|
584
|
+
const didStateName = `${didStr}_${idStr}`;
|
|
585
|
+
const raw = await this.storage.storageDids.getObjectVal(
|
|
586
|
+
ctx,
|
|
587
|
+
`${this.config.stateBase}.raw.${didStateName}`,
|
|
588
|
+
);
|
|
589
|
+
if (raw != null) {
|
|
590
|
+
const res = await this.storage.storageDids.decodeDid(
|
|
591
|
+
ctx,
|
|
592
|
+
this,
|
|
593
|
+
did,
|
|
594
|
+
didInfo,
|
|
595
|
+
this.storage.storageDids.toByteArray(raw),
|
|
596
|
+
);
|
|
597
|
+
await ctx.delObjectAsync(`${ctx.namespace}.${this.config.stateBase}.tree.${didStateName}`, {
|
|
598
|
+
recursive: true,
|
|
599
|
+
});
|
|
600
|
+
await this.storage.storageDids.storeObjectTree(
|
|
601
|
+
ctx,
|
|
602
|
+
did,
|
|
603
|
+
res.idStr,
|
|
604
|
+
`${this.config.stateBase}.tree.${didStr}_${res.idStr}`,
|
|
605
|
+
res.val,
|
|
606
|
+
);
|
|
607
|
+
}
|
|
608
|
+
}
|
|
570
609
|
await ctx.setStateAsync(id, { val: state.val, ack: true }); // Acknowlegde user command
|
|
571
610
|
return;
|
|
572
611
|
}
|
package/package.json
CHANGED