iobroker.e3oncan 0.6.10 → 0.6.11

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
@@ -40,14 +40,14 @@ A scan for datapoints of each device is also available and should be done during
40
40
  All services provided by this adapter are based on device list of your specific Viessmann E3 setup. Therefore you have to follow following steps for first setup:
41
41
 
42
42
  **Configuration**
43
- * When installation od adapter has finished a confuration dialog will show up to configure up to two CAN bus adapters (tab "CAN ADAPTER")
43
+ * When installation of adapter has finished a confuration dialog will show up to configure up to two CAN bus adapters (tab "CAN ADAPTER")
44
44
  * Edit name of adapter and check the "Connect to adapter" checkbox at least the external adapter
45
- * When you're done, press "SAVE" button to apply the changes. This step is **mandatory**. The instance will restart, connect to the CAN adapter and do a scan for devices available on bus. **Please be patient** - this may take up to 20 seconds. You may watch the activities in a 2nd browser tab by looking on the logging info of the adapter.
46
- * When scan was successful new tabs will get visible in adapter confuration: "LIST OF UDS DEVICES", "LIST OF DATAPOINTS" and "ASSIGNMENTS TO EXTERNAL CAN ADAPTER".
47
- * Go to the "LIST OF UDS DEVICES" and check the list of devices. You may change the naming on 2nd column. Those names will be used to store all collected data in ioBoker's object tree. Again press "SAVE" button when you did your changes. Again this step is **mandatory**.
48
- * Instance will restart again and after a few seconds you are ready to a scan for available datapoints. Go to tab "LIST OF DATAPOINTS", press button "Start scan ..." and confirm with "OK" to start the scan. Again, **please be patient** - this may take **up to 5 minutes**. You may watch the progress in a 2nd browser tab by looking on the logging info of the adapter.
45
+ * When you're done, press "SAVE" button to apply the changes. This step is **mandatory**. The instance will restart and connect to the CAN adapter.
46
+ * Go to tab "LIST OF UDS DEVICES" and do a scan for devices available on bus by pressing the scan button. **This will take a few seconds.** You may watch the activities in a 2nd browser tab by looking on the logging info of the adapter.
47
+ * You may change the naming of the devices at 2nd column. Those names will be used to store all collected data in ioBoker's object tree. Again press "SAVE" button when you did your changes.
48
+ * Instance will restart again and after a few seconds you are ready to do a scan for available datapoints. Go to tab "LIST OF DATAPOINTS", press button "Start scan ..." and confirm with "OK". **Please be patient** - this may take **up to 5 minutes**. You may watch the progress in a 2nd browser tab by looking on the logging info of the adapter.
49
49
  This step is not mandatory but strongly recomended. If you would like to write to datapoints you need to do a datapoint scan first.
50
- * When datapoint scan was completed successfully, the datapoints are available in object tree for each device. You may view the datapoints in configuration by selecting a device and pressing button "Update list of datapoints". Press filter symbol and type search pattern to filter for name and/or codec. This is for your information only. Please deactivate filtering before selecting another device to avoid error messages.
50
+ * When datapoint scan was completed successfully, the datapoints are available in the object tree for each device. You may view the datapoints in configuration by selecting a device and pressing button "Update list of datapoints". Press filter symbol and type search pattern to filter for name and/or codec. This is for your information only. Please deactivate filtering before selecting another device to avoid error messages.
51
51
  * Last step is to configure schedules for collecting data on tab "ASSIGNMENTS TO EXTERNAL CAN ADAPTER".
52
52
  * For **energy meter E380** (if available in your setup) you just can activate or not. Please notice the value "Min. update time (s)". Updates to single datapoints are done no faster than the given value (default is 5 seconds). By choosing zero every received data will be stored. Since E380 is sending data very fast (more than 20 values per second), it's recommended not to use zero here. This would put a high load on the ioBroker system.
53
53
  * If you have connected E3 devices via CAN bus, e.g. Vitocal and VX3, you can collect data exchanged between those devices in realtime by listening. Press "+" to add a line, check "active" chackbox, select a device and edit "Min. update time (s)". It's feasable to use 0s here, however, I recommend to keep to the 5s.
@@ -84,12 +84,11 @@ You may use datapoints informations on tab "LIST OF DATAPOINTS" for reference (o
84
84
  * At present, the communication protocol is known only for Vitocal (listener on CAN id 0x693) and Vitocharge VX3 (listener on CAN id 0x451).
85
85
 
86
86
  ## What is different to open3e project?
87
- * Obviously, the main differece is the direct integration to ioBroker. Configuration can be done via dialogs, data get's directly listed in object tree.
88
- * **WriteByDid is supported for all data types** but restricted to datapoints on device specific white list, see info section of device. You need to do a datapoint scan to enable writing. Writing of data is triggered by storing the datapoint with ack=false - yes, it's that simple! The datapoint will be read again from device two seconds after writing. If datapoint not get's acknowledged, please take a look to the logs.
89
- * A scan for datapoints per device (as depict tool of open3e is doing) is available now. After a successful scan, device specific datapoints are listed in object tree.
90
- * In addation to open3e real time collecting of data via listening is supported.
87
+ * Obviously, the main differece is the direct integration to ioBroker. Configuration can be done via dialogs, data get's directly listed in object trees.
88
+ * **WriteByDid is supported for all data types** but restricted to datapoints on device specific white list, see info section of devices. You need to do a datapoint scan to enable writing. Writing of data is triggered by storing the datapoint with ack=false - yes, it's that simple! The datapoint will be read again from device two seconds after writing. If datapoint not get's acknowledged, please take a look to the logs.
89
+ * In addition to open3e real time collecting of data via listening is supported.
91
90
 
92
- ## May open3 be used in parallel?
91
+ ## May open3e be used in parallel?
93
92
  Yes, that is possible under certain conditions:
94
93
  * If you only use data collecting here, you can use open3e with no limitiations.
95
94
  * If you use UDSonCAN here, it's important not to do this for the same devices as open3e does. If you would do so, you will have sporadic communications errors.
@@ -99,6 +98,9 @@ Yes, that is possible under certain conditions:
99
98
  Placeholder for the next version (at the beginning of the line):
100
99
  ### **WORK IN PROGRESS**
101
100
  -->
101
+ ### 0.6.11 (2024-01-17)
102
+ * (MyHomeMyData) Improved layout of configuration dialog for device scan
103
+
102
104
  ### 0.6.10 (2024-01-15)
103
105
  * (MyHomeMyData) Removed code for Rawmode because it's never activated
104
106
 
@@ -56,5 +56,6 @@
56
56
  "Separate by comma! All given datapoints will be requested with specified schedule and ECU address.": "Durch Komma trennen! Alle angegebenen Datenpunkte werden mit der angegebenen Wiederholungszeit von der ECU-Adresse angefordert.",
57
57
  "Assignments to Internal CAN Adapter": "Zuordnungen zum internen CAN-Adapter",
58
58
  "Collecting Data on Internal CAN Adapter": "Sammeln von Daten auf dem internen CAN-Adapter",
59
- "Update list of datapoints": "Liste der Datenpunkte aktualisieren"
59
+ "Update list of datapoints": "Liste der Datenpunkte aktualisieren",
60
+ "Start scan to update list of devices": "Scan starten, um die Liste der UDS-Geräte zu aktualisieren"
60
61
  }
@@ -56,5 +56,6 @@
56
56
  "Separate by comma! All given datapoints will be requested with specified schedule and ECU address.":"Separate by comma! All given datapoints will be requested with specified schedule and ECU address.",
57
57
  "Assignments to Internal CAN Adapter":"Assignments to Internal CAN Adapter",
58
58
  "Collecting Data on Internal CAN Adapter":"Collecting Data on Internal CAN Adapter",
59
- "Update list of datapoints":"Update list of datapoints"
59
+ "Update list of datapoints":"Update list of datapoints",
60
+ "Start scan to update list of devices":"Start scan to update list of devices"
60
61
  }
@@ -58,5 +58,6 @@
58
58
  "Collecting Data on Internal CAN Adapter": "Recopilación de datos en el adaptador CAN interno",
59
59
  "Listen for data on addresses given in this table. No writing to CAN bus.": "Escuche los datos sobre las direcciones que figuran en esta tabla. No se puede escribir en el bus CAN.",
60
60
  "Devices for collecting data. No writing to CAN bus. Press '+' to add device.": "Dispositivos para la recogida de datos. No se puede escribir en el bus CAN. Presione '+' para agregar el dispositivo.",
61
- "Update list of datapoints": "Actualizar lista de puntos de datos"
61
+ "Update list of datapoints": "Actualizar lista de puntos de datos",
62
+ "Start scan to update list of devices": "Iniciar escaneo para actualizar la lista de dispositivos"
62
63
  }
@@ -58,5 +58,6 @@
58
58
  "Collecting Data on Internal CAN Adapter": "Collecte de données sur l'adaptateur CAN interne",
59
59
  "Listen for data on addresses given in this table. No writing to CAN bus.": "Écoutez les données sur les adresses indiquées dans ce tableau. Pas d'écriture sur le bus CAN.",
60
60
  "Devices for collecting data. No writing to CAN bus. Press '+' to add device.": "Appareils de collecte de données. Pas d'écriture sur le bus CAN. Appuyez sur « + » pour ajouter un appareil.",
61
- "Update list of datapoints": "Mettre à jour la liste des points de données"
61
+ "Update list of datapoints": "Mettre à jour la liste des points de données",
62
+ "Start scan to update list of devices": "Démarrer l'analyse pour mettre à jour la liste des appareils"
62
63
  }
@@ -58,5 +58,6 @@
58
58
  "Collecting Data on Internal CAN Adapter": "Raccolta dati sull'adattatore CAN interno",
59
59
  "Listen for data on addresses given in this table. No writing to CAN bus.": "Ascoltare i dati sugli indirizzi forniti in questa tabella. Nessuna scrittura sul bus CAN.",
60
60
  "Devices for collecting data. No writing to CAN bus. Press '+' to add device.": "Dispositivi per la raccolta dei dati. Nessuna scrittura sul bus CAN. Premi \"+\" per aggiungere il dispositivo.",
61
- "Update list of datapoints": "Aggiorna l'elenco dei punti dati"
61
+ "Update list of datapoints": "Aggiorna l'elenco dei punti dati",
62
+ "Start scan to update list of devices": "Avvia la scansione per aggiornare l'elenco dei dispositivi"
62
63
  }
@@ -58,5 +58,6 @@
58
58
  "Collecting Data on Internal CAN Adapter": "Gegevens verzamelen over de interne CAN-adapter",
59
59
  "Listen for data on addresses given in this table. No writing to CAN bus.": "Luister naar gegevens over adressen in deze tabel. Geen schrijven naar CAN-bus.",
60
60
  "Devices for collecting data. No writing to CAN bus. Press '+' to add device.": "Apparaten voor het verzamelen van gegevens. Geen schrijven naar CAN-bus. Druk op '+' om apparaat toe te voegen.",
61
- "Update list of datapoints": "Lijst met datapunten bijwerken"
61
+ "Update list of datapoints": "Lijst met datapunten bijwerken",
62
+ "Start scan to update list of devices": "Start de scan om de lijst met apparaten bij te werken"
62
63
  }
@@ -58,5 +58,6 @@
58
58
  "Collecting Data on Internal CAN Adapter": "Zbieranie danych na wewnętrznym adapterze CAN",
59
59
  "Listen for data on addresses given in this table. No writing to CAN bus.": "Posłuchaj danych o adresach podanych w tej tabeli. Brak zapisu do magistrali CAN.",
60
60
  "Devices for collecting data. No writing to CAN bus. Press '+' to add device.": "Urządzenia do gromadzenia danych. Brak zapisu do magistrali CAN. Naciśnij „+”, aby dodać urządzenie.",
61
- "Update list of datapoints": "Zaktualizuj listę punktów danych"
61
+ "Update list of datapoints": "Zaktualizuj listę punktów danych",
62
+ "Start scan to update list of devices": "Rozpocznij skanowanie, aby zaktualizować listę urządzeń"
62
63
  }
@@ -58,5 +58,6 @@
58
58
  "Collecting Data on Internal CAN Adapter": "Coletando dados no adaptador CAN interno",
59
59
  "Listen for data on addresses given in this table. No writing to CAN bus.": "Ouça os dados sobre os endereços fornecidos nesta tabela. Não há gravação no barramento CAN.",
60
60
  "Devices for collecting data. No writing to CAN bus. Press '+' to add device.": "Dispositivos para coleta de dados. Não há gravação no barramento CAN. Pressione '+' para adicionar dispositivo.",
61
- "Update list of datapoints": "Atualizar lista de pontos de dados"
61
+ "Update list of datapoints": "Atualizar lista de pontos de dados",
62
+ "Start scan to update list of devices": "Inicie a verificação para atualizar a lista de dispositivos"
62
63
  }
@@ -58,5 +58,6 @@
58
58
  "Collecting Data on Internal CAN Adapter": "Сбор данных о внутреннем CAN-адаптере",
59
59
  "Listen for data on addresses given in this table. No writing to CAN bus.": "Прослушайте данные по адресам, указанным в этой таблице. Нет записи в CAN-шину.",
60
60
  "Devices for collecting data. No writing to CAN bus. Press '+' to add device.": "Устройства для сбора данных. Нет записи в CAN-шину. Нажмите «+», чтобы добавить устройство.",
61
- "Update list of datapoints": "Обновить список точек данных"
61
+ "Update list of datapoints": "Обновить список точек данных",
62
+ "Start scan to update list of devices": "Запустите сканирование, чтобы обновить список устройств."
62
63
  }
@@ -58,5 +58,6 @@
58
58
  "Collecting Data on Internal CAN Adapter": "Збір даних про внутрішній адаптер CAN",
59
59
  "Listen for data on addresses given in this table. No writing to CAN bus.": "Прослухайте дані за адресами, наведені в цій таблиці. Немає запису на шину CAN.",
60
60
  "Devices for collecting data. No writing to CAN bus. Press '+' to add device.": "Пристрої для збору даних. Немає запису на шину CAN. Натисніть «+», щоб додати пристрій.",
61
- "Update list of datapoints": "Оновити список точок даних"
61
+ "Update list of datapoints": "Оновити список точок даних",
62
+ "Start scan to update list of devices": "Почніть сканування, щоб оновити список пристроїв"
62
63
  }
@@ -58,5 +58,6 @@
58
58
  "Collecting Data on Internal CAN Adapter": "收集内部 CAN 适配器的数据",
59
59
  "Listen for data on addresses given in this table. No writing to CAN bus.": "侦听此表中给出的地址上的数据。不写入 CAN 总线。",
60
60
  "Devices for collecting data. No writing to CAN bus. Press '+' to add device.": "用于收集数据的设备。不写入 CAN 总线。按“+”添加设备。",
61
- "Update list of datapoints": "更新数据点列表"
61
+ "Update list of datapoints": "更新数据点列表",
62
+ "Start scan to update list of devices": "开始扫描以更新设备列表"
62
63
  }
@@ -99,15 +99,6 @@
99
99
  "hidden": "if ((data.tableUdsDevices) && (data.tableUdsDevices.length > 0)) { return true; } else {return false; }",
100
100
  "newLine": true
101
101
  },
102
- "introTableScanIsActiveTxt": {
103
- "type": "staticText",
104
- "text": "UDS device scan is ongoing. This may take up to 20 seconds.",
105
- "newLine": true,
106
- "hidden": "if ((data.tableUdsDevices) && (data.tableUdsDevices.length > 0)) { return true; } else {return false; }",
107
- "style": {
108
- "color": "red"
109
- }
110
- },
111
102
  "introTableNoEmptyDevNameTxt": {
112
103
  "type": "staticText",
113
104
  "text": "'Device state name' must not be blank!",
@@ -126,11 +117,23 @@
126
117
  "color": "red"
127
118
  }
128
119
  },
120
+ "tableUdsDevicesButton": {
121
+ "type": "sendTo",
122
+ "label": "Start scan to update list of devices",
123
+ "variant": "outlined",
124
+ "showProcess": true,
125
+ "command": "getUdsDevices",
126
+ "jsonData": "{}",
127
+ "useNative": true,
128
+ "hidden": "!_alive",
129
+ "newLine": true,
130
+ "sm": 12,
131
+ "md": 12,
132
+ "lg": 12
133
+ },
129
134
 
130
135
  "tableUdsDevices": {
131
136
  "type": "table",
132
- "defaultSendTo": "getUdsDevices",
133
- "jsonData": "${JSON.stringify(data.tableUdsDevices)}",
134
137
  "uniqueColumns": ["devStateName"],
135
138
  "newLine": true,
136
139
  "sm": 12,
@@ -206,9 +209,6 @@
206
209
  "label": "Start scan for datapoints of all devices",
207
210
  "variant": "outlined",
208
211
  "showProcess": true,
209
- "style": {
210
- "align": "right"
211
- },
212
212
  "jsonData": "{}",
213
213
  "command": "startDidScan",
214
214
  "confirm": {
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "e3oncan",
4
- "version": "0.6.10",
4
+ "version": "0.6.11",
5
5
  "news": {
6
+ "0.6.11": {
7
+ "en": "Improved layout of configuration dialog for device scan",
8
+ "de": "Verbessertes Layout des Konfigurationsdialogs für den Gerätescan",
9
+ "ru": "Улучшен диалог настройки для сканирования устройства",
10
+ "pt": "Melhor layout da caixa de diálogo de configuração para verificação do dispositivo",
11
+ "nl": "Verbeterde lay-out van configuratiedialoog voor apparaatscans",
12
+ "fr": "Mise en page améliorée de la boîte de dialogue de configuration pour l'analyse des périphériques",
13
+ "it": "Miglioramento del layout della finestra di dialogo di configurazione per la scansione del dispositivo",
14
+ "es": "Diseño mejorado del diálogo de configuración para el análisis del dispositivo",
15
+ "pl": "Ulepszony układ okna konfiguracji skanowania urządzenia",
16
+ "uk": "Покращений макет діалогу конфігурації для сканування пристроїв",
17
+ "zh-cn": "设备扫描配置对话框的改进版式"
18
+ },
6
19
  "0.6.10": {
7
20
  "en": "Removed code for Rawmode because it's never activated",
8
21
  "de": "Entfernter Code für Rawmode, weil es nie aktiviert ist",
package/main.js CHANGED
@@ -46,7 +46,6 @@ class E3oncan extends utils.Adapter {
46
46
  this.udsDidForScan = 256; // Busidentification is in this id
47
47
  this.udsScanWorker = new udsScan.udsScan();
48
48
  this.udsScanDevices = []; // UDS devices found during scan
49
- this.doUdsDevScan = false;
50
49
  this.udsDevAddrs = [];
51
50
  this.udsDevStateNames = [];
52
51
  this.udsDidsMaxNmbr = 3000; // Max. number of dids per device for scan
@@ -80,10 +79,6 @@ class E3oncan extends utils.Adapter {
80
79
  this.udsDevStateNames.push(dev.devStateName);
81
80
  }
82
81
 
83
- // Check for required scan for UDS devices
84
- this.doUdsDevScan = (this.config.tableUdsDevices.length == 0);
85
- if (this.doUdsDevScan) await this.log.info('UDS device scan is required.');
86
-
87
82
  // Setup external CAN bus if required
88
83
  // ==================================
89
84
 
@@ -326,25 +321,18 @@ class E3oncan extends utils.Adapter {
326
321
  if (obj.command === 'getUdsDevices') {
327
322
  if (obj.callback) {
328
323
  if (!this.udsDevScanIsRunning) {
329
- if (this.doUdsDevScan) {
330
- let success = false;
331
- this.udsDevScanIsRunning = true;
332
- await this.log.silly(`Received data - ${JSON.stringify(obj)}`);
333
- //this.udsScanDevices = obj.message.udsDevices;
334
- success = await this.udsScanWorker.scanUdsDevices(this);
335
- await this.sendTo(obj.from, obj.command, this.udsDevices, obj.callback);
336
- if (success) this.doUdsDevScan = false;
337
- this.udsDevScanIsRunning = false;
338
- } else {
339
- // Scan not required. Do nothing
340
- this.sendTo(obj.from, obj.command, obj.message, obj.callback);
341
- }
324
+ this.udsDevScanIsRunning = true;
325
+ await this.log.silly(`Received data - ${JSON.stringify(obj)}`);
326
+ await this.udsScanWorker.scanUdsDevices(this);
327
+ await this.log.silly(`Data to send - ${JSON.stringify({native: {tableUdsDevices: this.udsDevices}})}`);
328
+ await this.sendTo(obj.from, obj.command, {native: {tableUdsDevices: this.udsDevices}}, obj.callback);
329
+ this.udsDevScanIsRunning = false;
342
330
  } else {
343
331
  await this.log.debug('Request "getUdsDevice" during running UDS scan!');
344
- this.sendTo(obj.from, obj.command, obj.message, obj.callback);
332
+ this.sendTo(obj.from, obj.command, {native: {tableUdsDevices: this.udsDevices}}, obj.callback);
345
333
  }
346
334
  } else {
347
- this.sendTo(obj.from, obj.command, [], obj.callback);
335
+ this.sendTo(obj.from, obj.command, {native: {tableUdsDevices: []}}, obj.callback);
348
336
  }
349
337
  }
350
338
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.e3oncan",
3
- "version": "0.6.10",
3
+ "version": "0.6.11",
4
4
  "description": "Collect data on CAN bus for Viessmann E3 devices, e.g. Vitocal, Vitocharge, Energy Meter E380",
5
5
  "author": {
6
6
  "name": "Juergen",