iobroker.e3oncan 0.6.9

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.
@@ -0,0 +1,594 @@
1
+ {
2
+ "i18n": true,
3
+ "type": "tabs",
4
+ "items": {
5
+ "tabCanAdapter": {
6
+ "type": "panel",
7
+ "label": "CAN Adapter",
8
+ "items": {
9
+ "introTabCanInstanceNotActiveTxt": {
10
+ "type": "staticText",
11
+ "text": "Please start this adapter instance to enable further configuration options.",
12
+ "newLine": true,
13
+ "hidden": "_alive",
14
+ "style": {
15
+ "color": "red"
16
+ }
17
+ },
18
+ "introTabCanPressSaveTxt": {
19
+ "type": "staticText",
20
+ "text": "Please press button 'Save', when you're done on this tab.",
21
+ "newLine": true,
22
+ "hidden": "!_changed",
23
+ "style": {
24
+ "color": "red"
25
+ }
26
+ },
27
+ "canExtHeader": {
28
+ "type": "header",
29
+ "text": "External CAN Adapter",
30
+ "size": 2,
31
+ "newLine": true
32
+ },
33
+ "canExtName": {
34
+ "type": "text",
35
+ "tooltip": "Device mame of CAN adapter connected to external bus, e.g. can0",
36
+ "default" : "vcan0",
37
+ "newLine": false
38
+ },
39
+ "canExtActivated": {
40
+ "type": "checkbox",
41
+ "label": "Connect to Adapter",
42
+ "tooltip": "Check, if this adapter shall be used.",
43
+ "default" : false,
44
+ "newLine": false
45
+ },
46
+ "canIntHeader": {
47
+ "type": "header",
48
+ "text": "Internal CAN Adapter",
49
+ "size": 2,
50
+ "newLine": true
51
+ },
52
+ "canIntName": {
53
+ "type": "text",
54
+ "tooltip": "Device mame of CAN adapter connected to internal bus, e.g. can1",
55
+ "default" : "vcan1",
56
+ "newLine": false
57
+ },
58
+ "canIntActivated": {
59
+ "type": "checkbox",
60
+ "label": "Connect to Adapter",
61
+ "tooltip": "Check, if this adapter shall be used.",
62
+ "default" : false,
63
+ "newLine": false
64
+ }
65
+ }
66
+ },
67
+ "tabUdsDevices": {
68
+ "type": "panel",
69
+ "label": "List of UDS devices",
70
+ "hidden": "if (!data.canExtActivated) { return true; } else {return false; }",
71
+ "items": {
72
+ "tableUdsDevicesHdr": {
73
+ "type": "header",
74
+ "text": "List of available devices",
75
+ "size": 2
76
+ },
77
+
78
+ "tableUdsDevicesWarning": {
79
+ "type": "staticText",
80
+ "text": "Configuration requires a running adapter instance!",
81
+ "hidden": "_alive",
82
+ "newLine": true,
83
+ "style": {
84
+ "color": "red"
85
+ }
86
+ },
87
+ "introTabUdsDevicesSaveTxt": {
88
+ "type": "staticText",
89
+ "text": "Please press button 'Save', when you're done on this tab.",
90
+ "newLine": true,
91
+ "hidden": "!_changed",
92
+ "style": {
93
+ "color": "red"
94
+ }
95
+ },
96
+ "introtableUdsDevicesTxt": {
97
+ "type": "staticText",
98
+ "text": "You may edit 2nd column to set name of state for the device (visible in object tree).",
99
+ "hidden": "if ((data.tableUdsDevices) && (data.tableUdsDevices.length > 0)) { return true; } else {return false; }",
100
+ "newLine": true
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
+ "introTableNoEmptyDevNameTxt": {
112
+ "type": "staticText",
113
+ "text": "'Device state name' must not be blank!",
114
+ "newLine": true,
115
+ "hidden": "if ( (data.tableUdsDevices) && (data.tableUdsDevices.length > 0) ) {for (const c of data.tableUdsDevices) {if (c.devStateName === '') return false;}; return true;} else return true;",
116
+ "style": {
117
+ "color": "red"
118
+ }
119
+ },
120
+ "introTableNoDotInDevNameTxt": {
121
+ "type": "staticText",
122
+ "text": "Symbol '.' not allowed in 'Device state name'!",
123
+ "newLine": true,
124
+ "hidden": "if ( (data.tableUdsDevices) && (data.tableUdsDevices.length > 0) ) {for (const c of data.tableUdsDevices) {if (c.devStateName.includes('.')) return false;}; return true;} else return true;",
125
+ "style": {
126
+ "color": "red"
127
+ }
128
+ },
129
+
130
+ "tableUdsDevices": {
131
+ "type": "table",
132
+ "defaultSendTo": "getUdsDevices",
133
+ "jsonData": "${JSON.stringify(data.tableUdsDevices)}",
134
+ "uniqueColumns": ["devStateName"],
135
+ "newLine": true,
136
+ "sm": 12,
137
+ "md": 12,
138
+ "lg": 12,
139
+ "label": "List of available devices",
140
+ "hidden": "!_alive",
141
+ "noDelete": true,
142
+ "import": true,
143
+ "export": true,
144
+ "items": [
145
+ {
146
+ "type": "text",
147
+ "attr": "devName",
148
+ "width": "15% ",
149
+ "title": "Device name (Viessmann)",
150
+ "tooltip": "Device ECU name (fixed)",
151
+ "filter": false,
152
+ "sort": false,
153
+ "readOnly": true
154
+ },
155
+ {
156
+ "type": "text",
157
+ "attr": "devStateName",
158
+ "width": "15% ",
159
+ "title": "Device state name",
160
+ "tooltip": "Device name in object tree. Must not contain dots.",
161
+ "filter": false,
162
+ "sort": false,
163
+ "validator": "if ( (data.devStateName === '') || (data.devStateName.includes('.')) ) { return false; } else { return true; }",
164
+ "validatorNoSaveOnError": true
165
+ },
166
+ {
167
+ "type": "text",
168
+ "attr": "devAddr",
169
+ "width": "10% ",
170
+ "title": "Device Address",
171
+ "tooltip": "Device ECU address (fixed)",
172
+ "filter": false,
173
+ "sort": false,
174
+ "readOnly": true
175
+ },
176
+ {
177
+ "type": "text",
178
+ "attr": "collectCanId",
179
+ "width": "10% ",
180
+ "title": "CAN id for collecting data",
181
+ "tooltip": "CAN id - still experimental. Leave blank for deactivation.",
182
+ "filter": false,
183
+ "sort": false,
184
+ "readOnly": false
185
+ }
186
+ ]
187
+ }
188
+ }
189
+ },
190
+ "tabUdsDids": {
191
+ "type": "panel",
192
+ "label": "List of datapoints",
193
+ "hidden": "if ((data.tableUdsDevices) && (data.tableUdsDevices.length == 0)) { return true; } else {return false; }",
194
+ "items": {
195
+ "tableUdsDidsWarning": {
196
+ "type": "staticText",
197
+ "text": "Configuration requires a running adapter instance!",
198
+ "hidden": "_alive",
199
+ "newLine": true,
200
+ "style": {
201
+ "color": "red"
202
+ }
203
+ },
204
+ "tableUdsDidsStartScan": {
205
+ "type": "sendTo",
206
+ "label": "Start scan for datapoints of all devices",
207
+ "variant": "outlined",
208
+ "showProcess": true,
209
+ "style": {
210
+ "align": "right"
211
+ },
212
+ "jsonData": "{}",
213
+ "command": "startDidScan",
214
+ "confirm": {
215
+ "condition": "true",
216
+ "title": "Confirm scan for datapoints",
217
+ "text": "Scan will take up to 5 minutes. Plaese make sure, no other UDSonCAN client (e.g. Open3Eclient.py) is running. Please do not close the tab during scan. You may follow up the progress by watching the Log in an additional tab.",
218
+ "ok": "OK",
219
+ "cancel": "Cancel"
220
+ },
221
+ "hidden": "!_alive",
222
+ "newLine": true,
223
+ "sm": 12,
224
+ "md": 12,
225
+ "lg": 12
226
+ },
227
+ "tableUdsDidsSelDev": {
228
+ "type": "selectSendTo",
229
+ "label": "Select device",
230
+ "jsonData": "{}",
231
+ "command": "getUdsDidsDevSelect",
232
+ "sm": 8,
233
+ "md": 6,
234
+ "lg": 4,
235
+ "default": "Select device",
236
+ "hidden": "!_alive",
237
+ "alsoDependsOn": ["udsSchedule","tableUdsDevices"],
238
+ "newLine": true
239
+ },
240
+
241
+ "tableUdsDidsButton": {
242
+ "type": "sendTo",
243
+ "command": "getUdsDids",
244
+ "jsonData": "${JSON.stringify(data.tableUdsDidsSelDev)}",
245
+ "label": "Update list of datapoints",
246
+ "variant": "outlined",
247
+ "hidden": "if ( (_alive) && (data.tableUdsDidsSelDev) ) { return false; }; return true;",
248
+ "useNative": true,
249
+ "showProcess": true,
250
+ "newLine": true,
251
+ "sm": 12,
252
+ "md": 12,
253
+ "lg": 12
254
+ },
255
+
256
+ "tableUdsDids": {
257
+ "type": "table",
258
+ "newLine": true,
259
+ "sm": 12,
260
+ "md": 12,
261
+ "lg": 12,
262
+ "label": "List of device specific datapoints",
263
+ "hidden": "if ( (_alive) && (data.tableUdsDidsSelDev) ) { return false; }; return true;",
264
+ "noDelete": true,
265
+ "import": true,
266
+ "export": true,
267
+ "items": [
268
+ {
269
+ "type": "number",
270
+ "attr": "didId",
271
+ "doNotSave": true,
272
+ "width": "10% ",
273
+ "title": "ID",
274
+ "tooltip": "Id of datapoint",
275
+ "filter": false,
276
+ "sort": false
277
+ },
278
+ {
279
+ "type": "number",
280
+ "attr": "didLen",
281
+ "doNotSave": true,
282
+ "width": "10% ",
283
+ "title": "Length",
284
+ "tooltip": "Length of datapoint",
285
+ "filter": false,
286
+ "sort": false
287
+ },
288
+ {
289
+ "type": "text",
290
+ "attr": "didName",
291
+ "doNotSave": true,
292
+ "width": "55% ",
293
+ "title": "Name",
294
+ "tooltip": "Name of datapoint",
295
+ "filter": true,
296
+ "sort": false,
297
+ "readOnly": true
298
+ },
299
+ {
300
+ "type": "text",
301
+ "attr": "didCodec",
302
+ "doNotSave": true,
303
+ "width": "25% ",
304
+ "title": "Codec",
305
+ "tooltip": "Codec used for datapoint",
306
+ "filter": true,
307
+ "sort": false,
308
+ "readOnly": true
309
+ }
310
+ ]
311
+ }
312
+ }
313
+ },
314
+ "tabCanAdapterExt": {
315
+ "type": "panel",
316
+ "label": "Assignments to External CAN Adapter",
317
+ "hidden": "if ((data.tableUdsDevices) && (data.tableUdsDevices.length == 0)) { return true; } else {return false; }",
318
+ "items": {
319
+ "tableCanAdapterExtWarning": {
320
+ "type": "staticText",
321
+ "text": "Configuration requires a running adapter instance!",
322
+ "hidden": "_alive",
323
+ "newLine": true,
324
+ "style": {
325
+ "color": "red"
326
+ }
327
+ },
328
+ "e380Header": {
329
+ "type": "header",
330
+ "text": "Energy Meter E380",
331
+ "size": 2,
332
+ "newLine": true
333
+ },
334
+ "e380WarnUpdateTime": {
335
+ "type": "staticText",
336
+ "text": "WARNING: Values below 2 seconds may cause heavy system load!",
337
+ "newLine": true,
338
+ "hidden": "if (data.e380Delay < 2) { return false; }; return true;",
339
+ "style": {
340
+ "color": "red"
341
+ }
342
+ },
343
+ "e380Active": {
344
+ "type": "checkbox",
345
+ "label": "active",
346
+ "tooltip": "Activate communication",
347
+ "default" : false,
348
+ "newLine": true
349
+ },
350
+ "e380Name": {
351
+ "type": "text",
352
+ "label": "Device state name",
353
+ "tooltip": "This text will be used as base for object tree",
354
+ "default" : "e380",
355
+ "newLine": false
356
+ },
357
+ "e380Delay": {
358
+ "type": "number",
359
+ "label": "Min. update time (s)",
360
+ "tooltip": "Minumum update time for states. 0 for immediate update.",
361
+ "default" : 5,
362
+ "min": 0,
363
+ "newLine": false
364
+ },
365
+ "tableHdrCol": {
366
+ "type": "header",
367
+ "text": "Collecting Data on External CAN Adapter",
368
+ "size": 2
369
+ },
370
+
371
+ "introTableColExt": {
372
+ "type": "staticText",
373
+ "text": "Devices for collecting data. No writing to CAN bus. Press '+' to add device.",
374
+ "hidden": "if (data.tableUdsDevices) {for(let i=0; i<data.tableUdsDevices.length; i++){if (data.tableUdsDevices[i].collectCanId != '') return false;}; return true;} else {return true;}",
375
+ "newLine": true
376
+ },
377
+
378
+ "introTableColExtNoDevs": {
379
+ "type": "staticText",
380
+ "text": "No device for collecting available (missing CAN ID).",
381
+ "hidden": "if (data.tableUdsDevices) {for(let i=0; i<data.tableUdsDevices.length; i++){if (data.tableUdsDevices[i].collectCanId != '') return true;}; return false;} else {return false;}",
382
+ "newLine": true
383
+ },
384
+
385
+ "tableColExtErrDevName": {
386
+ "type": "staticText",
387
+ "text": "ERROR: column 'Device state name' must contain unique text.",
388
+ "newLine": true,
389
+ "hidden": "const x={}; for(let ii=0; data.tableCollectCanExt && ii<data.tableCollectCanExt.length; ii++){const t=data.tableCollectCanExt[ii].collectCanId; if (x[t]==='x') return false; x[t]='x';}; return true;",
390
+ "style": {
391
+ "color": "red"
392
+ }
393
+ },
394
+
395
+ "tableCollectCanExt": {
396
+ "type": "table",
397
+ "newLine": true,
398
+ "sm": 12,
399
+ "md": 12,
400
+ "lg": 12,
401
+ "label": "",
402
+ "hidden": "if (data.tableUdsDevices) {for(let i=0; i<data.tableUdsDevices.length; i++){if (data.tableUdsDevices[i].collectCanId != '') return false;}; return true;} else {return true;}",
403
+ "showSecondAddAt": 5,
404
+ "items": [
405
+ {
406
+ "type": "checkbox",
407
+ "attr": "collectActive",
408
+ "width": "5% ",
409
+ "title": "active",
410
+ "tooltip": "Activate communication",
411
+ "filter": false,
412
+ "sort": false,
413
+ "default": true
414
+ },
415
+ { "type": "selectSendTo",
416
+ "title": "Select device",
417
+ "command": "getExtColDeviceSelect",
418
+ "attr": "collectCanId",
419
+ "jsonData": "${JSON.stringify(globalData.tableUdsDevices)}",
420
+ "width": "15%",
421
+ "default": "Select device",
422
+ "alsoDependsOn": ["collectActive","tableUdsDevices"],
423
+ "newLine": false,
424
+ "validator": "if (data.collectCanId === 'Select device') { return false; } else { return true; }",
425
+ "validatorNoSaveOnError": true
426
+ },
427
+ {
428
+ "type": "number",
429
+ "attr": "collectDelayTime",
430
+ "width": "15% ",
431
+ "title": "Min. update time (s)",
432
+ "tooltip": "Minumum update time for states. 0 for immediate update.",
433
+ "filter": false,
434
+ "sort": false,
435
+ "min": 0,
436
+ "step": 1,
437
+ "default": 5
438
+ }
439
+ ]
440
+ },
441
+ "tableHdrUds": {
442
+ "type": "header",
443
+ "text": "Requesting data on external CAN Adapter via UDSonCAN",
444
+ "size": 2
445
+ },
446
+
447
+ "introTableUds": {
448
+ "type": "staticText",
449
+ "text": "Specify schedules for devices, press '+' to begin.",
450
+ "newLine": true
451
+ },
452
+ "tableUdsSchedules": {
453
+ "type": "table",
454
+ "newLine": true,
455
+ "sm": 12,
456
+ "md": 12,
457
+ "lg": 12,
458
+ "label": "",
459
+ "showSecondAddAt": 5,
460
+ "items": [
461
+ {
462
+ "type": "checkbox",
463
+ "attr": "udsScheduleActive",
464
+ "width": "5% ",
465
+ "title": "active",
466
+ "tooltip": "Activate communication",
467
+ "filter": false,
468
+ "sort": false,
469
+ "default": true
470
+ },
471
+ {
472
+ "type": "number",
473
+ "attr": "udsSchedule",
474
+ "width": "10% ",
475
+ "title": "Schedule (s)",
476
+ "tooltip": "Schedule for requesting given datapoints. 0 for one time request on start of adapter instance.",
477
+ "filter": false,
478
+ "sort": false,
479
+ "min": 0,
480
+ "step": 1,
481
+ "default": 0
482
+ },
483
+ { "type": "selectSendTo",
484
+ "title": "Select device",
485
+ "command": "getUdsDeviceSelect",
486
+ "attr": "udsSelectDevAddr",
487
+ "jsonData": "${JSON.stringify(globalData.tableUdsDevices)}",
488
+ "width": "15%",
489
+ "default": "Select device",
490
+ "alsoDependsOn": ["udsSchedule","tableUdsDevices"],
491
+ "newLine": false,
492
+ "validator": "if (data.udsSelectDevAddr === 'Select device') { return false; } else { return true; }",
493
+ "validatorNoSaveOnError": true
494
+ },
495
+ {
496
+ "type": "text",
497
+ "attr": "udsScheduleDids",
498
+ "width": "30% ",
499
+ "title": "List of datapoints",
500
+ "tooltip": "Separate by comma! All given datapoints will be requested with specified schedule and ECU address.",
501
+ "filter": false,
502
+ "sort": false,
503
+ "default": "256"
504
+ }
505
+ ]
506
+ }
507
+
508
+ }
509
+ },
510
+ "tabCanAdapterInt": {
511
+ "type": "panel",
512
+ "label": "Assignments to Internal CAN Adapter",
513
+ "hidden": "return !data.canIntActivated;",
514
+ "items": {
515
+ "tableHdr": {
516
+ "type": "header",
517
+ "text": "Collecting Data on Internal CAN Adapter",
518
+ "size": 2
519
+ },
520
+
521
+ "introTableColInt": {
522
+ "type": "staticText",
523
+ "text": "Devices for collecting data. No writing to CAN bus. Press '+' to add device.",
524
+ "newLine": true
525
+ },
526
+
527
+ "tableCanAdapterIntWarning": {
528
+ "type": "staticText",
529
+ "text": "Configuration requires a running adapter instance!",
530
+ "hidden": "_alive",
531
+ "newLine": true,
532
+ "style": {
533
+ "color": "red"
534
+ }
535
+ },
536
+ "tableColIntErrDevName": {
537
+ "type": "staticText",
538
+ "text": "ERROR: column 'Device state name' must contain unique text.",
539
+ "newLine": true,
540
+ "hidden": "const x={}; for(let ii=0; data.tableCollectCanInt && ii<data.tableCollectCanInt.length; ii++){const t=data.tableCollectCanInt[ii].collectCanId; if (x[t]==='x') return false; x[t]='x';}; return true;",
541
+ "style": {
542
+ "color": "red"
543
+ }
544
+ },
545
+ "tableCollectCanInt": {
546
+ "type": "table",
547
+ "newLine": true,
548
+ "sm": 12,
549
+ "md": 12,
550
+ "lg": 12,
551
+ "label": "",
552
+ "showSecondAddAt": 5,
553
+
554
+ "items": [
555
+ {
556
+ "type": "checkbox",
557
+ "attr": "collectActive",
558
+ "width": "5% ",
559
+ "title": "active",
560
+ "tooltip": "Activate communication",
561
+ "filter": false,
562
+ "sort": false,
563
+ "default": false
564
+ },
565
+ { "type": "selectSendTo",
566
+ "title": "Select device",
567
+ "command": "getIntColDeviceSelect",
568
+ "attr": "collectCanId",
569
+ "jsonData": "${JSON.stringify(globalData.tableUdsDevices)}",
570
+ "width": "15%",
571
+ "default": "Select device",
572
+ "alsoDependsOn": ["collectActive","tableUdsDevices"],
573
+ "newLine": false,
574
+ "validator": "if (data.collectCanId === 'Select device') { return false; } else { return true; }",
575
+ "validatorNoSaveOnError": true
576
+ },
577
+ {
578
+ "type": "number",
579
+ "attr": "collectDelayTime",
580
+ "width": "15% ",
581
+ "title": "Min. update time (s)",
582
+ "tooltip": "Minumum update time for states. 0 for immediate update.",
583
+ "filter": false,
584
+ "sort": false,
585
+ "min": 0,
586
+ "step": 1,
587
+ "default": 5
588
+ }
589
+ ]
590
+ }
591
+ }
592
+ }
593
+ }
594
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "0x680": {
3
+ "tx": "0x680",
4
+ "dpList": "Open3Edatapoints_680.py",
5
+ "prop": "HPMUMASTER"
6
+ },
7
+ "0x684": {
8
+ "tx": "0x684",
9
+ "dpList": "Open3Edatapoints_684.py",
10
+ "prop": "HMI"
11
+ },
12
+ "0x68c": {
13
+ "tx": "0x68c",
14
+ "dpList": "Open3Edatapoints_68c.py",
15
+ "prop": "VCMU"
16
+ },
17
+ "0x6a1": {
18
+ "tx": "0x6a1",
19
+ "dpList": "Open3Edatapoints_6a1.py",
20
+ "prop": "EMCUMASTER"
21
+ },
22
+ "0x6c3": {
23
+ "tx": "0x6c3",
24
+ "dpList": "Open3Edatapoints_6c3.py",
25
+ "prop": "BACKENDGATEWAY"
26
+ },
27
+ "0x6c5": {
28
+ "tx": "0x6c5",
29
+ "dpList": "Open3Edatapoints_6c5.py",
30
+ "prop": "BACKENDGATEWAY"
31
+ },
32
+ "0x6cf": {
33
+ "tx": "0x6cf",
34
+ "dpList": "Open3Edatapoints_6cf.py",
35
+ "prop": "EHCU"
36
+ }
37
+ }