iobroker.e3oncan 1.0.0-beta.2 → 1.0.1
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.de.md +7 -46
- package/README.md +15 -3
- package/admin/icon_open_tab.svg +1 -0
- package/admin/tab.html +74 -5
- package/io-package.json +40 -40
- package/lib/data-points.md +1 -2
- package/lib/storage.js +1 -1
- package/lib/udsScan.js +14 -0
- package/main.js +3 -0
- package/package.json +3 -3
package/README.de.md
CHANGED
|
@@ -60,7 +60,7 @@ Welche Modi verfügbar sind, hängt von der Gerätekonfiguration ab. Weitere Det
|
|
|
60
60
|
|
|
61
61
|
### Datenpunkte-Seite
|
|
62
62
|
|
|
63
|
-
Eine neue **e3oncan Datenpunkte**-Seite ist direkt in der Instanzzeile des Adapters in der ioBroker-Instanzansicht verankert. Sie bietet eine dedizierte Oberfläche zum Verwalten von Zeitplänen und Collect-Einstellungen je Gerät und Datenpunkt — ohne dass der vollständige Adapterkonfigurationsdialog geöffnet werden muss.
|
|
63
|
+
Eine neue **e3oncan Datenpunkte**-Seite ist direkt in der Instanzzeile des Adapters in der ioBroker-Instanzansicht verankert. Klicke auf die Schaltfläche <img src="admin/icon_open_tab.svg" height="20"> in der Instanzzeile, um sie zu öffnen. Sie bietet eine dedizierte Oberfläche zum Verwalten von Zeitplänen und Collect-Einstellungen je Gerät und Datenpunkt — ohne dass der vollständige Adapterkonfigurationsdialog geöffnet werden muss.
|
|
64
64
|
|
|
65
65
|
### Automatische Erkennung von Energiezählern
|
|
66
66
|
|
|
@@ -210,11 +210,11 @@ Die **e3oncan Datenpunkte**-Seite ist die zentrale Stelle zum Durchsuchen von Da
|
|
|
210
210
|
|
|
211
211
|
Alle Geräte und erkannte Energiezähler werden als aufklappbare Karten angezeigt, standardmäßig zugeklappt für einen schnellen Überblick über das gesamte System. Ein Klick auf den Karten-Header klappt die Karte auf. Das Suchfeld filtert nach Name oder ID, passende Karten werden automatisch ausgeklappt.
|
|
212
212
|
|
|
213
|
-
Wenn für ein Gerät noch kein Datenpunktscan durchgeführt wurde, erscheint oben auf der Seite ein Warnbanner als Erinnerung.
|
|
213
|
+
Wenn für ein Gerät noch kein Datenpunktscan durchgeführt wurde, erscheint oben auf der Seite ein Warnbanner als Erinnerung. Wenn ein Scan vorhanden ist, die in v1.x eingeführte Collect-Auto-Erkennung aber noch nicht ausgeführt wurde, empfiehlt ein Info-Banner einen erneuten Scan. Dieser Hinweis kann per Instanz dauerhaft ausgeblendet werden (Schaltfläche **Nicht mehr anzeigen**).
|
|
214
214
|
|
|
215
215
|
**Gerätekarten**
|
|
216
216
|
|
|
217
|
-
Jede Gerätekarte listet ihre Datenpunkte mit ID, Name, Codec und Zeitplaneinstellungen auf. Der Collect-Schalter und die minimale Aktualisierungszeit erscheinen im Karten-Header. Wenn während des Datenpunktscans Collect-Traffic vom Gerät erkannt wurde, wird im Karten-Header ein grünes Pin-Symbol als Bestätigung angezeigt.
|
|
217
|
+
Jede Gerätekarte listet ihre Datenpunkte mit ID, Name, Codec und Zeitplaneinstellungen auf. Der Collect-Schalter und die minimale Aktualisierungszeit erscheinen im Karten-Header. Wenn während des Datenpunktscans Collect-Traffic vom Gerät erkannt wurde, wird im Karten-Header ein grünes Pin-Symbol als Bestätigung angezeigt. Sind Datenpunkte eingeplant, erscheint ein grünes **N scheduled**-Badge — ein Klick darauf klappt die Karte auf und zeigt nur die eingeplanten Datenpunkte. Nochmaliger Klick auf das Badge hebt den Filter auf; ein Klick auf den Karten-Header hebt den Filter auf und klappt die Karte ein oder vollständig auf, je nachdem, ob das Badge sie geöffnet hatte.
|
|
218
218
|
|
|
219
219
|
**Energiezähler-Karten**
|
|
220
220
|
|
|
@@ -376,49 +376,10 @@ Ja. Den State `e3oncan.0.<GERÄT>.cmnd.udsReadByDid` bearbeiten und eine Liste v
|
|
|
376
376
|
Wenn Ihnen dieses Projekt gefällt — oder Sie einfach großzügig sind — würde ich mich über ein Bier freuen. Prost! :beers:
|
|
377
377
|
|
|
378
378
|
## Changelog
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
### **WORK IN PROGRESS**
|
|
384
|
-
* (MyHomeMyData) Behoben: Beim Speichern von Schedules in der Datenpunkte-Seite konnten unter bestimmten Umständen veraltete Einträge verbleiben
|
|
385
|
-
* (MyHomeMyData) Topology-Schaltfläche in der Datenpunkte-Seite ergänzt; öffnet das Bus-Topologie-Diagramm in einem modalen Dialog
|
|
386
|
-
|
|
387
|
-
### 1.0.0-beta.1 (2026-04-30)
|
|
388
|
-
* (MyHomeMyData) Bus-Topologie-Analyse wird jetzt automatisch nach dem Datenpunktscan erstellt; Ergebnisse werden in `info.topology` (JSON) und `info.topologyHtml` (HTML) gespeichert; Details im Readme
|
|
389
|
-
* (MyHomeMyData) Eingabevalidierung für Intervall- und Verzögerungsfelder in der Datenpunkte-Seite ergänzt — nur positive ganze Zahlen werden akzeptiert
|
|
390
|
-
|
|
391
|
-
### 1.0.0-beta.0 (2026-04-26)
|
|
392
|
-
* (MyHomeMyData) Neue e3oncan Datenpunkte-Webseite, direkt in der Adapterinstanzzeile verankert
|
|
393
|
-
* (MyHomeMyData) Energiezähler (E380, E3100CB) werden jetzt während des Gerätescans durch passives CAN-Lauschen auf beiden Kanälen automatisch erkannt
|
|
394
|
-
* (MyHomeMyData) State-Namen für Energiezähler werden automatisch anhand von CAN-Adresse und Kanal vergeben; Details im Readme
|
|
395
|
-
* (MyHomeMyData) Collect-Schalter und Verzögerung für Energiezähler werden ausschließlich in der e3oncan Datenpunkte-Seite konfiguriert; Änderungen werden nach Adapter-Neustart wirksam
|
|
396
|
-
* (MyHomeMyData) Beim ersten Start nach einem Upgrade wird die Aktiv-Einstellung automatisch aus der bisherigen Adapterkonfiguration migriert
|
|
397
|
-
* (MyHomeMyData) Collect-fähige Geräte werden jetzt während des Datenpunktscans durch passives CAN-Lauschen automatisch erkannt; ein Pin-Symbol wird im Gerätekarten-Header für jedes erkannte Gerät angezeigt
|
|
398
|
-
* (MyHomeMyData) Option hinzugefügt, das Speichern von Datenpunktwerten während des Datenpunktscans zu unterdrücken
|
|
399
|
-
|
|
400
|
-
### 0.11.1 (2026-04-23)
|
|
401
|
-
* (MyHomeMyData) Robustheit verbessert: Ein Datenpunkt der Länge null wird als „negative response" behandelt
|
|
402
|
-
* (MyHomeMyData) Metadaten werden jetzt auch nach dem Löschen eines Datenpunkts wiederhergestellt
|
|
403
|
-
* (MyHomeMyData) Testfälle für deutsche Systemsprache angepasst
|
|
404
|
-
|
|
405
|
-
### 0.11.0 (2026-04-14)
|
|
406
|
-
* (MyHomeMyData) Für volle Unterstützung von Varianten-Datenpunkten und Metadaten bitte einen Gerätescan gefolgt von einem Datenpunktscan durchführen
|
|
407
|
-
* (MyHomeMyData) Unterstützung für Varianten-Datenpunkte und Geräte-Datenformatkonfiguration hinzugefügt; Details unter https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md
|
|
408
|
-
* (MyHomeMyData) Metadaten zu mehreren Datenpunkten hinzugefügt, z. B. Beschreibung, Einheit, Link zu weiteren Infos
|
|
409
|
-
* (MyHomeMyData) Beim Datenpunktscan werden jetzt Metadaten zu den Datenpunkt-Objekten hinzugefügt
|
|
410
|
-
* (MyHomeMyData) Handhabung schreibbarer Datenpunkte geändert; diese Information ist jetzt auch in der Datenpunktdefinition verfügbar; die Handhabung der Whitelist für Schreibzugriffe ist unverändert
|
|
411
|
-
* (MyHomeMyData) Beim Gerätescan werden die verwendeten Datenformate (Datenpunkt 382) ausgewertet
|
|
412
|
-
* (MyHomeMyData) Struktur vieler Datenpunkte aktualisiert; Details im [Changelog](lib/data-points.md#changelog-of-data-point-definitions)
|
|
413
|
-
|
|
414
|
-
### 0.10.14 (2025-11-03)
|
|
415
|
-
* (MyHomeMyData) Elemente zu enums.js basierend auf PR Nr. 182 von open3e hinzugefügt
|
|
416
|
-
* (MyHomeMyData) Konfiguration der Dids-Scan-Grenzen im Quellcode vereinfacht
|
|
417
|
-
* (MyHomeMyData) Scan bis Did 3338 erweitert
|
|
418
|
-
* (MyHomeMyData) Hinweis zum Scanbereich im Readme ergänzt
|
|
419
|
-
* (MyHomeMyData) Korrekturen für Issue #169 (Repository Checker)
|
|
420
|
-
* (MyHomeMyData) Bugfix: Manuelle Änderung gerätespezifischer Dids wurde für Collect-Worker nicht ausgewertet
|
|
421
|
-
* (MyHomeMyData) Liste der Datenpunkte für E3-Geräte auf Version 20251102 aktualisiert
|
|
379
|
+
|
|
380
|
+
### Historie der Änderungen
|
|
381
|
+
|
|
382
|
+
Die Changelog-Einträge sind in der englischen Verison der (README.MD)[README.MD#changelog] verfügbar.
|
|
422
383
|
|
|
423
384
|
### Ältere Versionen
|
|
424
385
|
|
package/README.md
CHANGED
|
@@ -61,7 +61,7 @@ Which modes are available depends on your device topology. See the [device topol
|
|
|
61
61
|
|
|
62
62
|
### Datapoints tab
|
|
63
63
|
|
|
64
|
-
A new **e3oncan datapoints** page is pinned directly to the adapter's instance row in the ioBroker instances view. It provides a dedicated UI for managing schedules and Collect settings per device and data point — no need to open the full adapter configuration dialog for day-to-day changes.
|
|
64
|
+
A new **e3oncan datapoints** page is pinned directly to the adapter's instance row in the ioBroker instances view. Click the <img src="admin/icon_open_tab.svg" height="20"> button in the instance row to open it. It provides a dedicated UI for managing schedules and Collect settings per device and data point — no need to open the full adapter configuration dialog for day-to-day changes.
|
|
65
65
|
|
|
66
66
|
### Auto-detection of energy meters
|
|
67
67
|
|
|
@@ -229,11 +229,11 @@ The **e3oncan datapoints** page is the primary place for browsing data points an
|
|
|
229
229
|
|
|
230
230
|
All devices and any detected energy meters are shown as expandable cards, starting collapsed so you get an overview of your whole system at a glance. Click a card header to expand it. The search box filters by name or ID, and matching cards are expanded automatically.
|
|
231
231
|
|
|
232
|
-
If a data point scan has not been performed yet for a device, a warning banner is shown at the top of the page as a reminder.
|
|
232
|
+
If a data point scan has not been performed yet for a device, a warning banner is shown at the top of the page as a reminder. If a scan has been done but the Collect auto-detection introduced in v1.x has not yet run, an info banner recommends running a new data point scan. This hint can be permanently dismissed per instance with the **Don't show again** button.
|
|
233
233
|
|
|
234
234
|
**Device cards**
|
|
235
235
|
|
|
236
|
-
Each device card lists its data points with ID, name, codec, and schedule settings. The Collect toggle and min. update time appear in the card header. If Collect traffic from the device was detected during the data point scan, a green pin icon is shown in the card header as a confirmation.
|
|
236
|
+
Each device card lists its data points with ID, name, codec, and schedule settings. The Collect toggle and min. update time appear in the card header. If Collect traffic from the device was detected during the data point scan, a green pin icon is shown in the card header as a confirmation. If any data points are scheduled, a green **N scheduled** badge appears — click it to expand the card and show only the scheduled data points. Click the badge again to remove the filter; clicking the card header removes the filter and collapses or fully expands the card, depending on whether the badge had opened it.
|
|
237
237
|
|
|
238
238
|
**Energy meter cards**
|
|
239
239
|
|
|
@@ -399,6 +399,15 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
|
|
|
399
399
|
Placeholder for the next version (at the beginning of the line):
|
|
400
400
|
### **WORK IN PROGRESS**
|
|
401
401
|
-->
|
|
402
|
+
### 1.0.1 (2026-05-11)
|
|
403
|
+
* (MyHomeMyData) Clicking the green scheduled badge on a device card filters the view to show only its scheduled data points; clicking the badge again or the card header restores the full view
|
|
404
|
+
* (MyHomeMyData) Fixed: saving from the datapoints tab now preserves inactive schedules (disabled in the old config UI) for full backward compatibility
|
|
405
|
+
|
|
406
|
+
### 1.0.0 (2026-05-06)
|
|
407
|
+
* (MyHomeMyData) Adapter requires node.js >= 22 now
|
|
408
|
+
* (MyHomeMyData) Improved scan status detection: uses `udsDidsWritable` instead of `didsMetaDict` to reliably detect whether a data point scan has been performed
|
|
409
|
+
* (MyHomeMyData) Added re-scan recommendation hint in datapoints tab when a scan exists but Collect auto-detection has not yet been run
|
|
410
|
+
|
|
402
411
|
### 1.0.0-beta.2 (2026-05-02)
|
|
403
412
|
* (MyHomeMyData) Fixed: saving schedules in the datapoints tab could leave stale entries under certain conditions
|
|
404
413
|
* (MyHomeMyData) Added Topology button to the datapoints tab; opens the bus topology diagram in a modal dialog
|
|
@@ -416,6 +425,9 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
|
|
|
416
425
|
* (MyHomeMyData) Collect-capable devices are now auto-detected during the data point scan by passive CAN listening; a pin icon is shown in the device card header for each detected device
|
|
417
426
|
* (MyHomeMyData) Added option to suppress storing of data point values during data point scan
|
|
418
427
|
|
|
428
|
+
### 0.11.3 (2026-05-03)
|
|
429
|
+
* (MyHomeMyData) The accidentally mentioned data points 1415-1418 have been removed from the changelog of version 0.11.0
|
|
430
|
+
|
|
419
431
|
### 0.11.2 (2026-05-02)
|
|
420
432
|
* (MyHomeMyData) Added "What's new in v0.11.x" section to Readme with upgrade notes for data point structure changes
|
|
421
433
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24" fill="#4caf50"><path d="M160-160q-33 0-56.5-23.5T80-240v-120h80v120h640v-480H160v120H80v-120q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm300-140-56-58 83-82H80v-80h407l-83-82 56-58 180 180-180 180Z"/></svg>
|
package/admin/tab.html
CHANGED
|
@@ -86,6 +86,14 @@
|
|
|
86
86
|
The assignment of data points to devices is unknown and writing of data points is locked.
|
|
87
87
|
Please run a data point scan from the adapter configuration dialog (<strong>List of Data Points</strong> tab).
|
|
88
88
|
</div>
|
|
89
|
+
<div id="rescan-hint" class="alert alert-info d-none" role="alert">
|
|
90
|
+
<i class="bi bi-info-circle-fill"></i>
|
|
91
|
+
<strong>Re-scan recommended.</strong>
|
|
92
|
+
A data point scan with adapter v1.x has not been performed yet.
|
|
93
|
+
Please run a new data point scan from the adapter configuration dialog (<strong>List of Data Points</strong> tab)
|
|
94
|
+
to enable auto-detection of Collect-capable devices and energy meters.
|
|
95
|
+
<button type="button" class="btn btn-sm btn-outline-secondary ms-3" id="btn-dismiss-rescan-hint">Don't show again</button>
|
|
96
|
+
</div>
|
|
89
97
|
<div id="devices-container"></div>
|
|
90
98
|
|
|
91
99
|
<div class="modal fade" id="topology-modal" tabindex="-1">
|
|
@@ -117,6 +125,13 @@
|
|
|
117
125
|
let sock = null;
|
|
118
126
|
let loadedEnergyMeters = {};
|
|
119
127
|
let topologyHtml = '';
|
|
128
|
+
let scheduledFilter = null;
|
|
129
|
+
let filterWasCollapsed = false;
|
|
130
|
+
|
|
131
|
+
document.getElementById('btn-dismiss-rescan-hint').addEventListener('click', function() {
|
|
132
|
+
localStorage.setItem('rescanHintDismissed_' + namespace, '1');
|
|
133
|
+
document.getElementById('rescan-hint').classList.add('d-none');
|
|
134
|
+
});
|
|
120
135
|
|
|
121
136
|
function initSocket() {
|
|
122
137
|
return new Promise(function(resolve) {
|
|
@@ -170,7 +185,10 @@
|
|
|
170
185
|
const totalDids = allDevices.reduce(function(s, d) { return s + d.dids.length; }, 0);
|
|
171
186
|
setStatus('Loaded ' + totalDids + ' datapoints across ' + allDevices.length + ' device(s).');
|
|
172
187
|
const anyScanMissing = allDevices.some(function(d) { return !d.scanDone; });
|
|
188
|
+
const collectScanDone = !!result.collectScanDone;
|
|
189
|
+
const rescanHintDismissed = !!localStorage.getItem('rescanHintDismissed_' + namespace);
|
|
173
190
|
document.getElementById('scan-warning').classList.toggle('d-none', !anyScanMissing);
|
|
191
|
+
document.getElementById('rescan-hint').classList.toggle('d-none', anyScanMissing || collectScanDone || rescanHintDismissed);
|
|
174
192
|
document.getElementById('btn-load').disabled = false;
|
|
175
193
|
sock.emit('getState', namespace + '.info.topologyHtml', function(_err, state) {
|
|
176
194
|
setTopologyButton(state && state.val ? state.val : '');
|
|
@@ -301,7 +319,7 @@
|
|
|
301
319
|
'<div class="dev-name-col"><strong>' + dev.devStateName + '</strong>' +
|
|
302
320
|
'<code class="ms-2 small">' + dev.devAddr + '</code>' +
|
|
303
321
|
'<span class="badge bg-secondary ms-2">' + dev.dids.length + ' DIDs</span>' +
|
|
304
|
-
(activeCount > 0 ? '<span class="badge bg-success ms-1 scheduled-badge">' + activeCount + ' scheduled</span>' : '') +
|
|
322
|
+
(activeCount > 0 ? '<span class="badge ' + (scheduledFilter === dev.devStateName ? 'bg-primary' : 'bg-success') + ' ms-1 scheduled-badge" style="cursor:pointer" onclick="event.stopPropagation();toggleScheduledFilter(\'' + dev.devStateName.replace(/\\/g, '\\\\').replace(/'/g, "\\'") + '\')">' + activeCount + ' scheduled</span>' : '') +
|
|
305
323
|
'</div>' +
|
|
306
324
|
collectHtml +
|
|
307
325
|
'</div>' +
|
|
@@ -322,7 +340,17 @@
|
|
|
322
340
|
const chevron = card.querySelector('.bi-chevron-down');
|
|
323
341
|
card.querySelector('.card-header').addEventListener('click', function(e) {
|
|
324
342
|
if (e.target.closest('.collect-area')) return;
|
|
325
|
-
|
|
343
|
+
if (scheduledFilter === dev.devStateName) {
|
|
344
|
+
scheduledFilter = null;
|
|
345
|
+
const badge = card.querySelector('.scheduled-badge');
|
|
346
|
+
if (badge) { badge.classList.remove('bg-primary'); badge.classList.add('bg-success'); }
|
|
347
|
+
if (!filterWasCollapsed) {
|
|
348
|
+
bootstrap.Collapse.getOrCreateInstance(collapseEl).hide();
|
|
349
|
+
}
|
|
350
|
+
filterRows();
|
|
351
|
+
} else {
|
|
352
|
+
bootstrap.Collapse.getOrCreateInstance(collapseEl).toggle();
|
|
353
|
+
}
|
|
326
354
|
});
|
|
327
355
|
chevron.style.transform = 'rotate(-90deg)';
|
|
328
356
|
collapseEl.addEventListener('hide.bs.collapse', function() { chevron.style.transform = 'rotate(-90deg)'; });
|
|
@@ -382,9 +410,13 @@
|
|
|
382
410
|
const schedMode = document.querySelector('input[name="schedFilter"]:checked').value;
|
|
383
411
|
const ivStr = document.getElementById('filter-interval-val').value.trim();
|
|
384
412
|
const ivFilter = (schedMode === 'interval' && ivStr) ? parseInt(ivStr, 10) : null;
|
|
385
|
-
const hasActiveFilter = search || schedMode !== 'all';
|
|
413
|
+
const hasActiveFilter = search || schedMode !== 'all' || scheduledFilter;
|
|
386
414
|
|
|
387
415
|
document.querySelectorAll('.ecu-group').forEach(function(group) {
|
|
416
|
+
if (scheduledFilter && group.dataset.devStateName !== scheduledFilter) {
|
|
417
|
+
group.style.display = 'none';
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
388
420
|
let visibleCount = 0;
|
|
389
421
|
group.querySelectorAll('tbody tr').forEach(function(row) {
|
|
390
422
|
const textOk = !search ||
|
|
@@ -392,7 +424,11 @@
|
|
|
392
424
|
(row.dataset.name || '').includes(search) ||
|
|
393
425
|
(row.dataset.desc || '').includes(search);
|
|
394
426
|
let schedOk = true;
|
|
395
|
-
if (
|
|
427
|
+
if (scheduledFilter) {
|
|
428
|
+
const onstart = row.querySelector('.onstart-check').checked;
|
|
429
|
+
const iv = row.querySelector('.interval-input').value.trim();
|
|
430
|
+
schedOk = onstart || iv !== '';
|
|
431
|
+
} else if (schedMode === 'onstart') {
|
|
396
432
|
schedOk = row.querySelector('.onstart-check').checked;
|
|
397
433
|
} else if (schedMode === 'interval') {
|
|
398
434
|
const iv = row.querySelector('.interval-input').value.trim();
|
|
@@ -423,6 +459,34 @@
|
|
|
423
459
|
});
|
|
424
460
|
}
|
|
425
461
|
|
|
462
|
+
function toggleScheduledFilter(devStateName) {
|
|
463
|
+
let group = null;
|
|
464
|
+
document.querySelectorAll('.ecu-group').forEach(function(g) {
|
|
465
|
+
if (g.dataset.devStateName === devStateName) group = g;
|
|
466
|
+
});
|
|
467
|
+
const collapseEl = group ? group.querySelector('.collapse') : null;
|
|
468
|
+
|
|
469
|
+
if (scheduledFilter === devStateName) {
|
|
470
|
+
scheduledFilter = null;
|
|
471
|
+
if (filterWasCollapsed && collapseEl) {
|
|
472
|
+
bootstrap.Collapse.getOrCreateInstance(collapseEl).hide();
|
|
473
|
+
}
|
|
474
|
+
} else {
|
|
475
|
+
filterWasCollapsed = collapseEl ? !collapseEl.classList.contains('show') : false;
|
|
476
|
+
scheduledFilter = devStateName;
|
|
477
|
+
if (collapseEl) bootstrap.Collapse.getOrCreateInstance(collapseEl).show();
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
document.querySelectorAll('.ecu-group').forEach(function(g) {
|
|
481
|
+
const badge = g.querySelector('.scheduled-badge');
|
|
482
|
+
if (!badge) return;
|
|
483
|
+
const isActive = scheduledFilter && g.dataset.devStateName === scheduledFilter;
|
|
484
|
+
badge.classList.toggle('bg-success', !isActive);
|
|
485
|
+
badge.classList.toggle('bg-primary', !!isActive);
|
|
486
|
+
});
|
|
487
|
+
filterRows();
|
|
488
|
+
}
|
|
489
|
+
|
|
426
490
|
function markChanged() {
|
|
427
491
|
hasChanges = true;
|
|
428
492
|
document.getElementById('btn-save').disabled = false;
|
|
@@ -446,6 +510,8 @@
|
|
|
446
510
|
if (!badge) {
|
|
447
511
|
badge = document.createElement('span');
|
|
448
512
|
badge.className = 'badge bg-success ms-1 scheduled-badge';
|
|
513
|
+
badge.style.cursor = 'pointer';
|
|
514
|
+
badge.onclick = (function(name) { return function(e) { e.stopPropagation(); toggleScheduledFilter(name); }; })(card.dataset.devStateName);
|
|
449
515
|
nameCol.appendChild(badge);
|
|
450
516
|
}
|
|
451
517
|
badge.textContent = count + ' scheduled';
|
|
@@ -493,7 +559,10 @@
|
|
|
493
559
|
|
|
494
560
|
const tabDevAddrs = new Set(allDevices.map(function(d) { return Number(d.devAddr); }));
|
|
495
561
|
const newSchedules = (adapterNative.tableUdsSchedules || []).filter(function(s) {
|
|
496
|
-
|
|
562
|
+
// Keep schedules for devices not managed by this tab, and keep
|
|
563
|
+
// inactive schedules for tab devices (backward compatibility with
|
|
564
|
+
// the old config UI that allows disabling a schedule without deleting it).
|
|
565
|
+
return !tabDevAddrs.has(Number(s.udsSelectDevAddr)) || !s.udsScheduleActive;
|
|
497
566
|
});
|
|
498
567
|
const newCollectExt = JSON.parse(JSON.stringify(adapterNative.tableCollectCanExt || []));
|
|
499
568
|
const newCollectInt = JSON.parse(JSON.stringify(adapterNative.tableCollectCanInt || []));
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "e3oncan",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.1",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.0.1": {
|
|
7
|
+
"en": "Clicking the green scheduled badge on a device card filters the view to show only its scheduled data points; clicking the badge again or the card header restores the full view\nFixed: saving from the datapoints tab now preserves inactive schedules (disabled in the old config UI) for full backward compatibility",
|
|
8
|
+
"de": "Ein Klick auf das grüne Badge auf einer Gerätekarte filtert die Ansicht für die aktivierten Datenpunkte; erneutes Klicken hebt den Filter wieder auf\nBehoben: Speichern von der Registerkarte Datenpunkte bewahrt nun inaktive Zeitpläne (in der alten config UI) für volle Rückwärtskompatibilität",
|
|
9
|
+
"ru": "Нажатие зеленого значка на карте устройства фильтрует вид, чтобы показать только его запланированные точки данных; нажатие снова на значок или заголовок карты восстанавливает полный вид\nИсправлено: сохранение со вкладки «Точки данных» теперь сохраняет неактивные графики (отключены в старом интерфейсе конфигурирования) для полной обратной совместимости",
|
|
10
|
+
"pt": "Clicar no crachá agendado verde num cartão de dispositivo filtra a vista para mostrar apenas os seus pontos de dados agendados; clicar novamente no crachá ou o cabeçalho do cartão restaura a visão completa\nCorrigido: salvar da aba pontos de dados agora preserva agendas inativas (desativadas na interface de configuração antiga) para compatibilidade com o backward completo",
|
|
11
|
+
"nl": "Klik op de groene geplande badge op een apparaatkaart filtert het uitzicht om alleen de geplande datapunten te tonen; opnieuw op de badge klikken of de kaartkop herstelt de volledige weergave\nFixed: opslaan vanaf het tabblad datapoints bewaart nu inactieve schema's (uitgeschakeld in de oude configuratie-UI) voor volledige compatibiliteit achterwaarts",
|
|
12
|
+
"fr": "Cliquer sur l'insigne programmé vert sur une carte de périphérique filtre la vue pour afficher seulement ses points de données programmés; cliquer de nouveau sur l'insigne ou l'en-tête de la carte restaure la vue complète\nCorrection : l'enregistrement depuis l'onglet datapoints préserve désormais les horaires inactifs (désactivés dans l'ancienne interface de configuration) pour une compatibilité arrière complète",
|
|
13
|
+
"it": "Fare clic sul badge verde programmato su una scheda di dispositivo filtra la vista per mostrare solo i suoi punti di dati programmati; fare clic sul badge di nuovo o l'intestazione della carta ripristina la vista completa\nRisolto: salvare dalla scheda datapoint ora conserva i programmi inattivi (disabilitati nella vecchia configurazione UI) per la piena compatibilità all'indietro",
|
|
14
|
+
"es": "Hacer clic en la placa verde programada en una tarjeta de dispositivo filtra la vista para mostrar sólo sus puntos de datos programados; hacer clic en la placa de nuevo o el encabezado de la tarjeta restaura la vista completa\nFijado: el ahorro de la ficha datapoints ahora preserva los horarios inactivos (desactivados en la antigua interfaz de usuario) para la compatibilidad atrasada completa",
|
|
15
|
+
"pl": "Kliknięcie zielonej planowej odznaki na karcie urządzenia filtruje widok, aby wyświetlić tylko swoje zaplanowane punkty danych; kliknięcie ponownie na odznakę lub nagłówek karty przywraca pełny widok\nNaprawiono: zapisywanie z zakładki datapoints teraz zachowuje nieaktywne harmonogramy (wyłączone w starym konfigu interfejsu) dla pełnej kompatybilności wstecznej",
|
|
16
|
+
"uk": "Натискання зеленої запланованої значки на картці пристрою фільтрує вигляд, щоб показати лише свої заплановані дані; натискання значка знову або заголовок картки відновлює повне подання\nВиправлено: збереження з вкладки даних тепер зберігає неактивні графіки (здатні у старій конфігурації UI) для повної сумісності з резервними сторонами",
|
|
17
|
+
"zh-cn": "在设备卡片上单击绿色的预定徽章过滤视图,只显示其预定的数据点;再次点击徽章或卡片头恢复全视图\n固定: 现在从数据点标签中保存不活动调度表( 在旧配置 UI 中已失效) , 完全向后兼容"
|
|
18
|
+
},
|
|
19
|
+
"1.0.0": {
|
|
20
|
+
"en": "Adapter requires node.js >= 22 now\nImproved scan status detection: uses `udsDidsWritable` instead of `didsMetaDict` to reliably detect whether a data point scan has been performed\nAdded re-scan recommendation hint in datapoints tab when a scan exists but Collect auto-detection has not yet been run",
|
|
21
|
+
"de": "Adapter benötigt node.js >= 22\nVerbesserte Scan-Status-Erkennung: verwendet `udsDidsWritable` anstelle von `didsMetaDict`, um sicher zu erkennen, ob ein Datenpunkt-Scan durchgeführt wurde\nZusätzlicher re-scan Hinweis in Datenpunkte Tab, wenn ein Scan existiert, aber Collect Auto-Detektion noch nicht ausgeführt wurde",
|
|
22
|
+
"ru": "Адаптер требует node.js >= 22 сейчас\nУлучшенное обнаружение статуса сканирования: использует «udsDidsWritable» вместо «didsMetaDict», чтобы надежно определить, было ли выполнено сканирование точки данных\nДобавлен намек на рекомендацию повторного сканирования на вкладке точки данных, когда существует сканирование, но автоматическое обнаружение еще не запущено",
|
|
23
|
+
"pt": "Adaptador requer nod.js >= 22 agora\nDetecção de status de digitalização melhorada: usa `udsDidsWritable` em vez de `didsMetaDict` para detectar de forma confiável se uma varredura de ponto de dados foi realizada\nAdicionado re- scan sugestão de recomendação na aba pontos de dados quando uma varredura existe, mas Coletar auto- detecção ainda não foi executado",
|
|
24
|
+
"nl": "Voor de adapter zijn node.js < 22 nu nodig\nVerbeterde scanstatus detectie: maakt gebruik van \nToegevoegd re-scan aanbeveling hint in datapoints tabblad wanneer een scan bestaat, maar verzamelen auto-detectie is nog niet uitgevoerd",
|
|
25
|
+
"fr": "Adaptateur nécessite node.js >= 22 maintenant\nAmélioration de la détection de l'état de l'analyse: utilise `udsDidsWritable` au lieu de `didsMetaDict` pour détecter de manière fiable si une analyse de points de données a été effectuée\nAjout d'un indice de recommandation de re-scan dans l'onglet datapoints lorsqu'un scan existe mais Collecter la détection automatique n'a pas encore été exécuté",
|
|
26
|
+
"it": "Adattatore richiede node.js >= 22 ora\nRilevamento dello stato di scansione migliorato: utilizza `udsDidsWritable` invece di `didsMetaDict` per rilevare in modo affidabile se è stata eseguita una scansione del punto di dati\nAggiunto suggerimento re-scan nella scheda datapoints quando una scansione esiste ma Collect auto-detection non è ancora stato eseguito",
|
|
27
|
+
"es": "Adaptador requiere node.js ю= 22 ahora\nMejora de la detección del estado del escaneo: utiliza `udsDidsWritable` en lugar de `didsMetaDict` para detectar fiablemente si se ha realizado un análisis de puntos de datos\nAñadido re-escan recomendación indirecto en la pestaña puntos de datos cuando existe un escaneo, pero aún no se ha realizado la detección automática",
|
|
28
|
+
"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",
|
|
29
|
+
"uk": "Адаптер вимагає node.js >= 22 тепер\nУдосконалено виявлення стану сканування: використовує `udsDidsWritable` замість `didsMetaDict` для надійного виявлення, чи проводиться сканування точок даних\nДодано повторне сканування натиснення в вкладці даних, коли існує сканування, але Збір автодетекції ще не працює",
|
|
30
|
+
"zh-cn": "适配器需要节点.js 现在22\n改进扫描状态检测:使用“didsWriteble”而不是“didsMetaDict”可靠地检测是否已进行数据点扫描\n当扫描已经存在但收集自动检测尚未运行时, 在数据点标签中添加了重新扫描建议提示"
|
|
31
|
+
},
|
|
6
32
|
"1.0.0-beta.2": {
|
|
7
33
|
"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",
|
|
8
34
|
"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",
|
|
@@ -42,6 +68,19 @@
|
|
|
42
68
|
"uk": "Нова веб-сторінка точок даних e3oncan, закріплена в рядку екземпляра адаптера\nЛічильники електроенергії (E380, E3100CB) тепер автоматично виявляються під час сканування пристроїв шляхом пасивного прослуховування CAN на обох каналах\nІмена станів для лічильників електроенергії призначаються автоматично на основі адреси CAN та каналу; подробиці у Readme\nПеремикач Collect і затримка для лічильників електроенергії налаштовуються виключно на сторінці точок даних e3oncan; зміни набирають чинності після перезапуску адаптера\nПри першому запуску після оновлення активне налаштування автоматично переноситься з попередньої конфігурації адаптера\nПристрої з підтримкою Collect тепер автоматично виявляються під час сканування точок даних; значок шпильки відображається у заголовку картки пристрою\nДодано опцію для відключення збереження значень точок даних під час сканування",
|
|
43
69
|
"zh-cn": "新的e3oncan数据点网页固定在适配器实例行中\n能量表(E380、E3100CB)现在在设备扫描期间通过对两个CAN通道的被动监听自动检测\n能量表的状态名称根据CAN地址和通道自动分配;详情请参阅Readme\n能量表的Collect开关和延迟仅在e3oncan数据点页面中配置;更改在适配器重启后生效\n升级后首次运行时,激活设置会自动从之前的适配器配置中迁移\n在数据点扫描期间,通过被动CAN监听自动检测支持Collect模式的设备;每个检测到的设备在设备卡片标题中显示图钉图标\n添加了在扫描期间抑制数据点值存储的选项"
|
|
44
70
|
},
|
|
71
|
+
"0.11.3": {
|
|
72
|
+
"en": "The accidentally mentioned data points 1415-1418 have been removed from the changelog of version 0.11.0",
|
|
73
|
+
"de": "Die versehentlich erwähnten Datenpunkte 1415-1418 wurden aus dem Changelog der Version 0.11.0 entfernt",
|
|
74
|
+
"ru": "Случайно упомянутые точки 1415-1418 данных были удалены из журнала изменений версии 0.11.0",
|
|
75
|
+
"pt": "Os dados referidos acidentalmente pontos 1415-1414 foram retirados do changelog da versão 0.11.0",
|
|
76
|
+
"nl": "De per ongeluk genoemde gegevenspunten 1415-1418 zijn verwijderd uit het changelog van versie 0.11.0",
|
|
77
|
+
"fr": "Les points de données accidentellement mentionnés 1415-1418 ont été supprimés du journal de changement de la version 0.11.0",
|
|
78
|
+
"it": "I punti di dati menzionati accidentalmente 1415-1418 sono stati rimossi dal changelog della versione 0.11.0",
|
|
79
|
+
"es": "Los puntos de datos mencionados accidentalmente 1415-1418 han sido eliminados del cambio de la versión 0.11.0",
|
|
80
|
+
"pl": "Przypadkowo wymienione punkty danych 1415- 1418 zostały usunięte z changelog wersji 0.11.0",
|
|
81
|
+
"uk": "У випадково зазначених пунктах даних 1415-1418 було вилучено з зміни версії 0.11.0",
|
|
82
|
+
"zh-cn": "无意中提到的1415-1418数据点已经从0.110"
|
|
83
|
+
},
|
|
45
84
|
"0.11.2": {
|
|
46
85
|
"en": "Added \"What's new in v0.11.x\" section to Readme with upgrade notes for data point structure changes",
|
|
47
86
|
"de": "Hinzugefügt \"Was ist neu in v0.11.x\" Abschnitt zu Readme mit Upgrade-Notizen für Datenpunkt Strukturänderungen",
|
|
@@ -54,45 +93,6 @@
|
|
|
54
93
|
"pl": "Dodano \"Co nowego w sekcji v0.11.x\" do Readme z notatkami aktualizacji zmian struktury punktów danych",
|
|
55
94
|
"uk": "Додано розділ \"Що нового в v0.11.x\" для читання з оновленнями нот для змін структури даних",
|
|
56
95
|
"zh-cn": "添加「 v0. 11. x. 中的新内容」 部分至 Readme, 并附有数据点结构变化的升级注释"
|
|
57
|
-
},
|
|
58
|
-
"0.11.1": {
|
|
59
|
-
"en": "Improved robustness: Receiving a data point of length zero is treated as a \"negative response\"\nThe metadata is now also restored after a data point is deleted \nAligned test cases for German system language",
|
|
60
|
-
"de": "Verbesserte Robustheit: Der Empfang eines Datenpunktes der Länge Null wird als \"negative Antwort\" behandelt\nDie Metadaten werden nun auch wiederhergestellt, nachdem ein Datenpunkt gelöscht wurde\nTestfälle für deutsche Systemsprache angepasst",
|
|
61
|
-
"ru": "Повышение надежности: получение нулевой точки данных рассматривается как «отрицательный ответ»\nМетаданные также восстанавливаются после удаления точки данных\nВыровненные тесты для немецкого системного языка",
|
|
62
|
-
"pt": "Maior robustez: Receber um ponto de dados de comprimento zero é tratado como uma \"resposta negativa\"\nOs metadados também são restaurados depois de um ponto de dados ser apagado\nCasos de teste alinhados para a língua do sistema alemão",
|
|
63
|
-
"nl": "Verbeterde robuustheid: Het ontvangen van een datapunt van lengte nul wordt behandeld als een \"negatieve respons\"\nDe metagegevens worden nu ook hersteld nadat een datapunt is verwijderd\nUitgelijnde testcases voor de Duitse systeemtaal",
|
|
64
|
-
"fr": "Amélioration de la robustesse : la réception d'un point de données de longueur zéro est traitée comme une \"réponse négative\"\nLes métadonnées sont maintenant également restaurées après la suppression d'un point de données\nCas d'essai alignés pour la langue du système allemand",
|
|
65
|
-
"it": "Maggiore robustezza: la ricezione di un data point di lunghezza zero viene trattata come una \"risposta negativa\"\nI metadati vengono ora ripristinati anche dopo la cancellazione di un data point\nCasi di prova allineati per la lingua del sistema tedesco",
|
|
66
|
-
"es": "Mayor robustez: Recibir un punto de datos de la longitud cero es tratado como una \"respuesta negativa\"\nLos metadatos ahora también se restauran después de que se elimina un punto de datos\nCasos de prueba de los Alineados para el lenguaje del sistema alemán",
|
|
67
|
-
"pl": "Lepsza odporność: Otrzymanie punktu danych o długości zero jest traktowane jako \"odpowiedź negatywna\"\nMetadane są teraz również przywrócone po usunięciu punktu danych\nDopasowanie przypadków testowych dla języka niemieckiego",
|
|
68
|
-
"uk": "Покращена надійність: Отримання точки даних довжини нульового обробляється як \"негативна відповідь\"\nМетадані також відновлюються після видалення даних\nВизначені тестові випадки для німецької мови системи",
|
|
69
|
-
"zh-cn": "增强强性:接收长度为0的数据点作为\"负反应\"处理\n在删除一个数据点后, 元数据现在也被恢复\n德语系统语言的对齐测试例"
|
|
70
|
-
},
|
|
71
|
-
"0.11.0": {
|
|
72
|
-
"en": "To take full advantage of the variant data points and metadata, please perform a device scan followed by a data point scan\nAdded handling for variant data points and for device's data format configuration, refer to https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md for details\nAdded metadata to several data points, e.g. description, unit, link to further info\nDuring scan of data points now metadata are added to data point objects\nChanged handling of writable data points; this info now also is available within definition of data point; however, there is no change to handling of the whitelist of writables\nDuring device scan the information about used data formats (data point 382) is evaluated\nUpdated structure of many data points; for details see this [changelog](lib/data-points.md#changelog-of-data-point-definitions)",
|
|
73
|
-
"de": "Um das Konzept der varianten Datenpunkte und der Metadaten voll auszunutzen, führen Sie bitte einen Gerätescan an, gefolgt von einem Datenpunktscan durch\nNeues Konzept für variante Datenpunkte und für die Konfiguration des Datenformats des Geräts finden Sie unter https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md für Details\nMetadaten zu vielen Datenpunkten hinzugefügt, z.B. Beschreibung, Einheit, Link zu weiteren Informationen\nBeim Scannen von Datenpunkten werden nun Metadaten zu Datenpunktobjekten hinzugefügt\nGeänderte Handhabung von schreibbaren Datenpunkten; diese Informationen sind nun auch innerhalb der Definition von Datenpunkt verfügbar; es gibt jedoch keine Änderung der Handhabung der Whitelist\nBeim Gerätescannen werden die Informationen über verwendete Datenformate (Datenpunkt 382) ausgewertet\nAktualisierte Struktur vieler Datenpunkte; für Details siehe diese [changelog](lib/data-points.md#changelog-of-data-point-definitions)",
|
|
74
|
-
"ru": "Чтобы в полной мере использовать различные точки данных и метаданные, пожалуйста, выполните сканирование устройства с последующим сканированием точки данных\nДобавленная обработка для точек данных варианта и конфигурации формата данных устройства, см. https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md для деталей\nДобавлены метаданные в несколько точек данных, например описание, блок, ссылка на дополнительную информацию\nВо время сканирования точек данных метаданные добавляются к объектам точек данных\nИзмененная обработка записываемых точек данных; эта информация теперь также доступна в определении точки данных; однако нет никаких изменений в обработке белого списка записываемых данных\nПри сканировании устройства оценивается информация об используемых форматах данных (точка 382)\nОбновленная структура многих точек данных; для получения подробной информации см. [changelog](lib/data-points.md#changelog-of-data-point-definitions)",
|
|
75
|
-
"pt": "Para tirar o máximo proveito dos pontos de dados e metadados variantes, por favor realize uma varredura do dispositivo seguida de uma varredura do ponto de dados\nManuseamento adicionado para os pontos de dados variantes e para a configuração do formato de dados do dispositivo, consulte https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md para detalhes\nAdicionados metadados a vários pontos de dados, por exemplo, descrição, unidade, link para informações adicionais\nDurante a varredura de pontos de dados agora os metadados são adicionados aos objetos do ponto de dados\nManuseamento alterado de pontos de dados graváveis; esta informação agora também está disponível dentro da definição de ponto de dados; no entanto, não há nenhuma alteração no manuseio da lista de dados graváveis\nDurante a verificação do dispositivo, são avaliadas as informações sobre os formatos de dados utilizados (ponto de dados 382)\nEstrutura atualizada de muitos pontos de dados; para detalhes veja este [changelog](lib/data-points.md#changelog-of-data-point-definitions)",
|
|
76
|
-
"nl": "Om optimaal gebruik te maken van de verschillende datapunten en metadata, voert u een apparaatscan uit gevolgd door een datapointscan\nZie https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md voor details\nToegevoegd metadata aan verschillende datapunten, bijvoorbeeld beschrijving, eenheid, link naar verdere informatie\nTijdens het scannen van datapunten worden nu metadata toegevoegd aan datapuntobjecten\nGewijzigde behandeling van schrijfbare datapunten; deze informatie is nu ook beschikbaar binnen de definitie van datapunt; er is echter geen verandering in de verwerking van de whitelist van schrijfbare gegevens\nTijdens het scannen van het apparaat wordt de informatie over gebruikte gegevensformaten (gegevenspunt 382) geëvalueerd\nBijgewerkte structuur van veel datapunten; zie voor details deze [changelog](lib/data-points.md#changelog-of-data-point-definitions)",
|
|
77
|
-
"fr": "Pour profiter pleinement des différents points de données et métadonnées, veuillez effectuer une analyse de périphérique suivie d'une analyse de points de données\nAjout du traitement pour les points de données variables et pour la configuration du format de données de l'appareil, consultez https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md pour plus de détails\nAjout de métadonnées à plusieurs points de données, par exemple description, unité, lien vers d'autres informations\nLors de l'analyse des points de données, les métadonnées sont désormais ajoutées aux objets de points de données\nTraitement modifié des points de données en écriture; cette information est maintenant également disponible dans la définition de point de données; cependant, il n'y a pas de changement au traitement de la liste blanche des points en écriture\nLors de l'analyse de l'appareil, les informations sur les formats de données utilisés (point 382) sont évaluées\nMise à jour de la structure de nombreux points de données; pour plus de détails, voir cette [changelog](lib/data-points.md#changelog-of-data-point-définitions)",
|
|
78
|
-
"it": "Per sfruttare appieno i punti di dati e i metadati della variante, eseguire una scansione del dispositivo seguita da una scansione del punto dati\nGestione aggiuntiva per i punti di dati variante e per la configurazione del formato di dati del dispositivo, fare riferimento a https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md per i dettagli\nAggiunto metadati a diversi punti di dati, ad esempio descrizione, unità, link a ulteriori informazioni\nDurante la scansione dei punti di dati ora i metadati vengono aggiunti agli oggetti del punto di dati\nModificata la gestione dei punti di dati scrivibili; questa informazione ora è disponibile anche all'interno della definizione del punto di dati; tuttavia, non vi è alcuna modifica alla gestione della whitelist dei scrivibili\nDurante la scansione del dispositivo le informazioni sui formati di dati utilizzati (data point 382) vengono valutate\nStruttura aggiornata di molti punti di dati; per i dettagli vedere questo [changelog](lib/data-points.md#changelog-of-data-point-definitions)",
|
|
79
|
-
"es": "Para aprovechar plenamente los puntos de datos y metadatos de la variante, por favor realice un análisis del dispositivo seguido de un análisis de puntos de datos\nSe agregó el manejo para puntos de datos variantes y para la configuración del formato de datos del dispositivo, consulte https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md para detalles\nMetadatos añadidos a varios puntos de datos, por ejemplo, descripción, unidad, enlace a más información\nDurante el escaneo de puntos de datos ahora los metadatos se agregan a los objetos de puntos de datos\nModificación del manejo de los puntos de datos caritativos; esta información ahora también está disponible dentro de la definición de punto de datos; sin embargo, no hay cambio en el manejo de la lista blanca de writables\nDurante el análisis del dispositivo se evalúa la información sobre los formatos de datos usados (punto de datos 382)\nEstructura actualizada de muchos puntos de datos; para más detalles ver este [changelog](lib/data-points.md#changelog-of-data-point-definitions)",
|
|
80
|
-
"pl": "Aby w pełni wykorzystać alternatywne punkty danych i metadane, należy wykonać skanowanie urządzenia, a następnie skanowanie punktów danych\nDodano obsługę odmiennych punktów danych i konfiguracji formatu danych urządzenia, zobacz https: / / github.com / MyHomeMyData / ioBroker.e3oncan / lib / data- points.md w celu uzyskania szczegółowych informacji\nDodano metadane do kilku punktów danych, np. opis, jednostka, link do dalszych informacji\nPodczas skanowania punktów danych teraz metadane są dodawane do obiektów punktów danych\nZmieniona obsługa zapisywalnych punktów danych; informacja ta jest teraz dostępna również w definicji punktu danych; jednak nie ma zmian w obsłudze Whitelist pisanych\nPodczas skanowania urządzenia ocenia się informacje o używanych formatach danych (punkt danych 382)\nAktualizacja struktury wielu punktów danych; szczegółowe informacje można znaleźć w [changelog] (lib / data- points.md # changelog- of- data- point-definitions)",
|
|
81
|
-
"uk": "Щоб скористатися перевагами точок та метаданих, скористайтеся скануванням пристрою, що слідує скануванням точок даних\nДодано обробку для параметра міток даних і для конфігурації формату пристрою, див. на https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md для деталей\nДодано метадані в кілька точок даних, наприклад, опис, блок, посилання на подальшу інформацію\nПід час сканування точок даних додано метадані дані\nУ зв'язку з тим, що інформація доступна також у визначенні точки даних, однак, не існує змін до обробки білим переліком витратних матеріалів\nПід час сканування інформації про використовувані формати даних (тариф даних 382) оцінюється\nОновлена структура багатьох точок даних; для деталей див. це [changelog](lib/data-points.md#changelog-of-data-point-definitions)",
|
|
82
|
-
"zh-cn": "为了充分利用变位数据点和元数据,请进行设备扫描,然后进行数据点扫描\n添加了变体数据点和设备数据格式配置的处理,详见https://github.com/MyHomeMyData/ioBroker.e3oncan/lib/data-points.md\n添加元数据到多个数据点, 例如描述、 单位、 链接到进一步的信息\n在扫描数据点时,将元数据添加到数据点对象中\n更改了可写数据点的处理方式;这一信息现在也可以在数据点定义中找到;然而,对可写字点白名单的处理没有变化\n在设备扫描期间,将评价关于旧数据格式的信息(数据点382)\n许多数据点的更新结构;详情参见此[changelog](lib/data-points.md#changelog-of-data-point-designs)"
|
|
83
|
-
},
|
|
84
|
-
"0.10.14": {
|
|
85
|
-
"en": "Added elements to enums.js based of PR no. 182 of open3e\nSimplified configuration of dids scan limits in source code\nExtended scan up to did 3338\nAdded hint regarding scan range in Readme\nFixes for issue #169 (repository checker)\nBugfix: Manual change of device specific dids was not evaluated for collect workers\nUpdate of list of data points for E3 devices to version 20251102",
|
|
86
|
-
"de": "Elemente zu enums.js hinzugefügt, basierend auf PR-Nr. 182 von open3e\nVereinfachte Konfiguration der Grenzen des Datenpunt-Scans im Quellcode\nErweiterter Scan bis Datenpunkt 3338\nHinweis auf Scan-Bereich in Readme hinzugefügt\nFixes für Issue #169 (Repository Checker)\nBugfix: Manuelle Änderung der gerätespezifischen Datenpunkte wurde nicht für Collect-Worker aktualisiert\nAktualisierung der Liste der Datenpunkte für E3 Geräte auf Version 20251102",
|
|
87
|
-
"ru": "Добавлены элементы в enums.js на основе PR No 182 open3e\nУпрощенная конфигурация ограничений сканирования в исходном коде\nРасширенное сканирование до 3338\nДобавлен намек на диапазон сканирования в Readme\nИсправления для выпуска #169 (проверка хранилища)\nBugfix: ручная смена устройств не оценивалась для коллекционных работников\nОбновление списка точек данных для устройств E3 до версии 20251102",
|
|
88
|
-
"pt": "Elementos adicionados a enums.js baseados em PR n.o 182 de open3e\nConfiguração simplificada dos limites de digitalização do dids no código fonte\nEscaneamento estendido até 3338\nAdicionada dica sobre o intervalo de varredura no Readme\nCorrecções para o número 169 (verificador de repositório)\nBugfix: Não foi avaliada a mudança manual de dids específicos do dispositivo para trabalhadores de coleta\nActualização da lista de pontos de dados para os dispositivos E3 na versão 20251102",
|
|
89
|
-
"nl": "Toegevoegd elementen aan enums.js op basis van PR nr. 182 van open3e\nVereenvoudigde configuratie van dids-scanlimieten in broncode\nUitgebreide scan tot 3338\nTips toegevoegd met betrekking tot scanbereik in Readme\nFixes voor nummer #169 (repository checker)\nBugfix: Handmatige verandering van apparaat specifieke dids werd niet geëvalueerd voor collect werknemers\nUpdate van de lijst van gegevenspunten voor E3-apparaten naar versie 20251102",
|
|
90
|
-
"fr": "Ajout d'éléments à enums.js basés sur le PR n° 182 de open3e\nConfiguration simplifiée des limites de dids scan dans le code source\nScannage étendu jusqu'à 3338\nAjout d'un indice concernant la plage de balayage dans Readme\nCorrections pour l'émission #169 (vérificateur de dépôt)\nBugfix: La modification manuelle des dids spécifiques de l'appareil n'a pas été évaluée pour les travailleurs de collecte\nMise à jour de la liste des points de données pour les appareils E3 vers la version 20251102",
|
|
91
|
-
"it": "Aggiunto elementi a enums.js basato di PR n. 182 di open3e\nConfigurazione semplificata dei limiti di scansione dei fatti nel codice sorgente\nControllo esteso fino a 3338\nAggiunto suggerimento per quanto riguarda la gamma di scansione in Readme\nCorrezioni per numero #169 (repository checker)\nBugfix: Il cambio manuale dei dispositivi specifici non è stato valutato per i lavoratori collettivi\nAggiornamento dell'elenco dei punti di dati per i dispositivi E3 alla versione 20251102",
|
|
92
|
-
"es": "Elementos añadidos a enums.js basado en PR No 182 de open3e\nConfiguración simplificada de los límites de escaneado en código fuente\nEscaneo extendido hasta 3338\nInsinuación agregada con respecto al rango de exploración en Readme\nArreglos para el número #169 (repositorio)\nBugfix: No se evaluó el cambio manual de piezas específicas del dispositivo para los trabajadores coleccionistas\nActualización de la lista de puntos de datos para dispositivos E3 a la versión 20251102",
|
|
93
|
-
"pl": "Dodano elementy enums.js oparte na PR nr 182 open3e\nUproszczona konfiguracja didów w kodzie źródłowym\nRozszerzone skanowanie do 3338\nDodano podpowiedź odnośnie zakresu skanowania w Readme\nFixes for issue # 169 (repository checker)\nBugfix: Ręczna zmiana dysków specyficznych dla urządzenia nie była oceniana dla pracowników zbierających\nAktualizacja wykazu punktów danych dla urządzeń E3 do wersji 20251102",
|
|
94
|
-
"uk": "Додано елементи для enums.js на основі PR No 182 відкрито3e\nСпрощена конфігурація лімітів сканування даних у вихідному коді\nРозширене сканування до 3338\nДодано підказок про діапазон сканування в Readme\nВиправлення для випуску #169 (репозиторійний чекер)\nВиправлення помилок: Ручна зміна параметрів пристрою не оцінювалася для збору робітників\nОновлення списку точок даних для пристроїв E3 до версії 20251102",
|
|
95
|
-
"zh-cn": "在基于open3e第182号公关规则的enums.js中添加元素\n简化源代码中 dos 扫描限制的配置\n扩展扫描至完成 3338\n关于Readme 扫描范围的添加提示\n修复第169期(仓库检查器)\nBugfix:没有评估收集工人手动更改设备特定操作\nE3设备数据点列表更新至20251102版本"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/lib/data-points.md
CHANGED
|
@@ -147,9 +147,8 @@ Updated structure of the following data points:
|
|
|
147
147
|
|
|
148
148
|
**Notes:**
|
|
149
149
|
- For all sensor data points the last entry `Unknown` was renamed to `SensorStatus`. This is the reason for the large number of changed data points.
|
|
150
|
-
- For the frequently used data points 531,
|
|
150
|
+
- For the frequently used data points 531, 2351, 2532 and 2735 the numerical value has been moved to a sub-state `ID`:
|
|
151
151
|
- `0531_DomesticHotWaterOperationState.ID`
|
|
152
|
-
- `1415_MixerOneCircuitOperationState.State.ID`
|
|
153
152
|
- `2351_HeatPumpCompressor.PowerState.ID`
|
|
154
153
|
- `2352_AdditionalElectricHeater.PowerState.ID`
|
|
155
154
|
- `2735_FourThreeWayValveValveCurrentPosition.ID`
|
package/lib/storage.js
CHANGED
|
@@ -232,7 +232,7 @@ class storageDids {
|
|
|
232
232
|
this.dids = await this.mergeDids(this.didsDictDevCom, this.didsDictDevSpec);
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
|
-
this.didsScanDone = Object.keys(this.
|
|
235
|
+
this.didsScanDone = Object.keys(this.didsWritable).length > 0;
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
/**
|
package/lib/udsScan.js
CHANGED
|
@@ -4,6 +4,20 @@ const E3DidsVarDict = require('./didsE3var.json');
|
|
|
4
4
|
const E3DidsWritable = require('./didsE3Writables.json');
|
|
5
5
|
const { buildTopologySummary, TOPOLOGY_DIDS } = require('./topologyAnalysis');
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Scan status indicators used by tab.html to show warnings:
|
|
9
|
+
*
|
|
10
|
+
* | State | anyScanMissing | collectScanDone | scan-warning | rescan-hint |
|
|
11
|
+
* |--------------------------------------------|----------------|-----------------|--------------|-------------|
|
|
12
|
+
* | No scan done | true | false | shown | — |
|
|
13
|
+
* | Old scan (pre-v1.x), no collect data | false | false | — | shown |
|
|
14
|
+
* | New v1.x scan, no collect devices found | false | true | — | — |
|
|
15
|
+
* | New v1.x scan, collect devices found | false | true | — | — |
|
|
16
|
+
*
|
|
17
|
+
* anyScanMissing: any device has didsScanDone=false (storage.js: Object.keys(didsWritable).length === 0)
|
|
18
|
+
* collectScanDone: info.collect exists in v1.x format (detectedIds array) — set in main.js on adapter start
|
|
19
|
+
*/
|
|
20
|
+
|
|
7
21
|
/**
|
|
8
22
|
* Perform scan for devices or scan for data points of a specific device
|
|
9
23
|
*/
|
package/main.js
CHANGED
|
@@ -79,6 +79,7 @@ class E3oncan extends utils.Adapter {
|
|
|
79
79
|
this.udsScanWorker = new udsScan.udsScan();
|
|
80
80
|
this.detectedEnergyMeters = { e380_97: '', e380_98: '', e3100cb: '' };
|
|
81
81
|
this.detectedCollectCanIds = new Set();
|
|
82
|
+
this.collectScanDone = false; // true if info.collect exists in v1.x format (detectedIds array)
|
|
82
83
|
this.udsScanDevices = []; // UDS devices found during scan
|
|
83
84
|
this.udsDevAddrs = [];
|
|
84
85
|
this.udsDevStateNames = [];
|
|
@@ -173,6 +174,7 @@ class E3oncan extends utils.Adapter {
|
|
|
173
174
|
const co = JSON.parse(String(sCo.val));
|
|
174
175
|
if (Array.isArray(co.detectedIds)) {
|
|
175
176
|
// Current format: array of numeric CAN IDs
|
|
177
|
+
this.collectScanDone = true;
|
|
176
178
|
for (const id of co.detectedIds) {
|
|
177
179
|
this.detectedCollectCanIds.add(Number(id));
|
|
178
180
|
}
|
|
@@ -1045,6 +1047,7 @@ class E3oncan extends utils.Adapter {
|
|
|
1045
1047
|
devices: result,
|
|
1046
1048
|
energyMeters: this.detectedEnergyMeters,
|
|
1047
1049
|
detectedCollectCanIds: [...this.detectedCollectCanIds],
|
|
1050
|
+
collectScanDone: this.collectScanDone,
|
|
1048
1051
|
energyMeterDelays: { e380: this.e380Delay, e3100cb: this.e3100cbDelay },
|
|
1049
1052
|
energyMeterActive: { e380: this.e380Active, e3100cb: this.e3100cbActive },
|
|
1050
1053
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.e3oncan",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Collect data on CAN bus for Viessmann E3 devices, e.g. Vitocal, Vitocharge, Energy Meters E380CA and E3100CB",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Juergen",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"url": "https://github.com/MyHomeMyData/ioBroker.e3oncan.git"
|
|
23
23
|
},
|
|
24
24
|
"engines": {
|
|
25
|
-
"node": ">=
|
|
25
|
+
"node": ">= 22"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@iobroker/adapter-core": "^3.3.2",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@iobroker/eslint-config": "^2.2.0",
|
|
39
39
|
"@iobroker/testing": "^5.2.2",
|
|
40
40
|
"@tsconfig/node22": "^22.0.5",
|
|
41
|
-
"@types/node": "^25.
|
|
41
|
+
"@types/node": "^25.6.0",
|
|
42
42
|
"@types/proxyquire": "^1.3.31",
|
|
43
43
|
"proxyquire": "^2.1.3",
|
|
44
44
|
"typescript": "~5.8.3"
|