iobroker.ebus 2.2.6 → 2.4.0
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/.github/workflows/test-and-release.yml +1 -1
- package/README.md +27 -4
- package/admin/index_m.html +206 -38
- package/admin/style.css +18 -0
- package/admin/words.js +9 -7
- package/io-package.json +34 -4
- package/main.js +286 -134
- package/package.json +14 -14
- package/.project +0 -17
- package/ebus.njsproj +0 -176
- package/ebus.njsproj.user +0 -6
- package/test.js +0 -128
- package/test1.js +0 -55
- package/todo.txt +0 -6
- package/typings/globals/node/index.d.ts +0 -4209
- package/typings/globals/node/typings.json +0 -8
- package/typings/index.d.ts +0 -1
package/README.md
CHANGED
|
@@ -11,12 +11,10 @@
|
|
|
11
11
|
[](https://nodei.co/npm/iobroker.ebus/)
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
|
|
15
14
|
**This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.**
|
|
16
15
|
For more details and for information how to disable the error reporting see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry reporting is used starting with js-controller 3.0.
|
|
17
16
|
|
|
18
17
|
|
|
19
|
-
|
|
20
18
|
**If you like it, please consider a donation:**
|
|
21
19
|
|
|
22
20
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YBAZTEBT9SYC2&source=url)
|
|
@@ -32,14 +30,39 @@ There is a possibillity to poll data which are not polled by ebusd directly. Com
|
|
|
32
30
|
|
|
33
31
|
Another feature is to send any command to ebusd and receive answer to work with e.g. scripts.
|
|
34
32
|
|
|
35
|
-
current supported ebusd-version:
|
|
33
|
+
current supported ebusd-version: 21.2
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## how to send commands to ebusd
|
|
37
|
+
1. write a single command or an command list on datapoint ebus.0.cmd
|
|
38
|
+
If you want to use more then one command, use , to separate single commands.
|
|
39
|
+
example:
|
|
40
|
+
read -f YieldTotal,read LegioProtectionEnabled,read -f -c broadcast outsidetemp
|
|
41
|
+
|
|
42
|
+
2. when command is executed you will receive results per command in datapoint ebus.0.cmdResult
|
|
43
|
+
The result is also comma-separeted
|
|
44
|
+
example:
|
|
45
|
+
2000, ERR: element not found, 10.5
|
|
46
|
+
|
|
47
|
+
Attention: command in datapoint ebus.0.cmd is deleted after executing of command!
|
|
48
|
+
|
|
36
49
|
|
|
37
50
|
## known issues
|
|
38
51
|
* please create issues at [github](https://github.com/rg-engineering/ioBroker.ebus/issues) if you find bugs or whish new features
|
|
39
52
|
|
|
40
53
|
## Changelog
|
|
41
54
|
|
|
42
|
-
## 2.
|
|
55
|
+
## 2.4.0 (in progress)
|
|
56
|
+
* (René) overwork handling of read datapoints and history datapoints, circuit added optionally
|
|
57
|
+
* (René) command can now include more then one command, just separate commands with ','
|
|
58
|
+
* (René) see issue #55: warnings changed to debug messages
|
|
59
|
+
|
|
60
|
+
## 2.3.2 (2021-09-02)
|
|
61
|
+
* (René) see issue #49: support for ebusd 21.2
|
|
62
|
+
* (René) see issue #40: option to use boolean instead string for values with on/off
|
|
63
|
+
* (René) dependencies updated
|
|
64
|
+
|
|
65
|
+
## 2.2.7 (2021-07-03)
|
|
43
66
|
* (René) dependencies updated
|
|
44
67
|
* (René) see issue #48: bug fix for wrong data type logs
|
|
45
68
|
|
package/admin/index_m.html
CHANGED
|
@@ -1,24 +1,54 @@
|
|
|
1
1
|
<html>
|
|
2
2
|
|
|
3
3
|
<head>
|
|
4
|
+
<!-- Load ioBroker scripts and styles-->
|
|
5
|
+
<link rel="stylesheet" type="text/css" href="../../lib/css/fancytree/ui.fancytree.min.css" />
|
|
4
6
|
<link rel="stylesheet" type="text/css" href="../../css/adapter.css" />
|
|
5
7
|
<link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
|
|
6
8
|
|
|
7
9
|
<script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
|
|
8
10
|
<script type="text/javascript" src="../../socket.io/socket.io.js"></script>
|
|
9
11
|
|
|
10
|
-
<script type="text/javascript" src="../../js/translate.js"></script>
|
|
11
12
|
<script type="text/javascript" src="../../lib/js/materialize.js"></script>
|
|
13
|
+
<script type="text/javascript" src="../../lib/js/jquery-ui.min.js"></script>
|
|
14
|
+
<script type="text/javascript" src="../../lib/js/jquery.fancytree-all.min.js"></script>
|
|
15
|
+
|
|
16
|
+
<script type="text/javascript" src="../../js/translate.js"></script>
|
|
17
|
+
<script type="text/javascript" src="../../lib/js/selectID.js"></script>
|
|
12
18
|
<script type="text/javascript" src="../../js/adapter-settings.js"></script>
|
|
19
|
+
|
|
20
|
+
<!-- my own styles -->
|
|
21
|
+
<link rel="stylesheet" type="text/css" href="style.css" />
|
|
13
22
|
<script type="text/javascript" src="words.js"></script>
|
|
14
23
|
|
|
15
24
|
|
|
16
25
|
<style>
|
|
17
|
-
|
|
18
|
-
|
|
26
|
+
|
|
27
|
+
#dialog-room-edit {
|
|
28
|
+
max-height: 95% !important;
|
|
29
|
+
max-width: 85% !important;
|
|
30
|
+
width: 80% !important;
|
|
31
|
+
height: 90% !important;
|
|
32
|
+
overflow: visible !important;
|
|
33
|
+
top: 10px !important;
|
|
19
34
|
}
|
|
20
|
-
|
|
21
|
-
|
|
35
|
+
|
|
36
|
+
#dialog-select-member {
|
|
37
|
+
max-height: 95% !important;
|
|
38
|
+
max-width: 85% !important;
|
|
39
|
+
width: 80% !important;
|
|
40
|
+
height: 90% !important;
|
|
41
|
+
overflow: visible !important;
|
|
42
|
+
top: 10px !important;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.collapsible-body {
|
|
46
|
+
margin-left: 2rem !important;
|
|
47
|
+
padding-top: 0 !important;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
redlabel {
|
|
51
|
+
color: red;
|
|
22
52
|
}
|
|
23
53
|
</style>
|
|
24
54
|
|
|
@@ -26,11 +56,6 @@
|
|
|
26
56
|
<!-- you have to define 2 functions in the global scope: -->
|
|
27
57
|
<script type="text/javascript">
|
|
28
58
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
59
|
// the function loadSettings has to exist ...
|
|
35
60
|
function load(settings, onChange) {
|
|
36
61
|
|
|
@@ -52,14 +77,94 @@
|
|
|
52
77
|
}
|
|
53
78
|
}
|
|
54
79
|
|
|
55
|
-
|
|
80
|
+
myOnChange = onChange;
|
|
56
81
|
// Signal to admin, that no changes yet
|
|
57
82
|
onChange(false);
|
|
58
83
|
|
|
59
84
|
M.updateTextFields();
|
|
60
85
|
|
|
86
|
+
FillTablePolledDP(settings);
|
|
87
|
+
FillTableHistoryDP(settings);
|
|
88
|
+
|
|
61
89
|
}
|
|
62
90
|
|
|
91
|
+
function FillTablePolledDP(settings) {
|
|
92
|
+
|
|
93
|
+
if (typeof settings.PolledDPs !== 'undefined' && settings.PolledDPs != null && settings.PolledDPs.length > 0) {
|
|
94
|
+
|
|
95
|
+
values2table('polledDP', settings.PolledDPs, OnChange, tablePolledDPOnReady);
|
|
96
|
+
console.log('using new PolledDPs from settings ' + JSON.stringify(settings.PolledDPs));
|
|
97
|
+
}
|
|
98
|
+
// make it compatible to older versions
|
|
99
|
+
else if (typeof settings.PolledValues !== 'undefined' && settings.PolledValues != null) {
|
|
100
|
+
|
|
101
|
+
var values = settings.PolledValues.split(",");
|
|
102
|
+
|
|
103
|
+
var newValues = [];
|
|
104
|
+
for (let i = 0; i < values.length; i++) {
|
|
105
|
+
console.log('add ' + values[i]);
|
|
106
|
+
const value = {
|
|
107
|
+
circuit: "",
|
|
108
|
+
name: values[i],
|
|
109
|
+
parameter: "",
|
|
110
|
+
}
|
|
111
|
+
newValues.push(value);
|
|
112
|
+
}
|
|
113
|
+
values2table('polledDP', newValues, OnChange, tablePolledDPOnReady);
|
|
114
|
+
console.log('using PolledValues from settings ' + JSON.stringify(settings.PolledValues) + " " + JSON.stringify(newValues));
|
|
115
|
+
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function tablePolledDPOnReady() {
|
|
121
|
+
|
|
122
|
+
showHideSettings();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
var myOnChange = null;
|
|
126
|
+
function OnChange() {
|
|
127
|
+
//do nothing
|
|
128
|
+
console.log('on change called');
|
|
129
|
+
|
|
130
|
+
if (myOnChange != null) {
|
|
131
|
+
myOnChange();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function showHideSettings() {
|
|
136
|
+
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function FillTableHistoryDP(settings) {
|
|
140
|
+
|
|
141
|
+
if (typeof settings.HistoryDPs !== 'undefined' && settings.HistoryDPs != null && settings.HistoryDPs.length > 0) {
|
|
142
|
+
|
|
143
|
+
values2table('historyDP', settings.HistoryDPs, OnChange, tableHistoryDPOnReady);
|
|
144
|
+
console.log('using new HistoryDPs from settings ' + JSON.stringify(settings.HistoryDPs));
|
|
145
|
+
}
|
|
146
|
+
// make it compatible to older versions
|
|
147
|
+
else if (typeof settings.HistoryValues !== 'undefined' && settings.HistoryValues != null) {
|
|
148
|
+
|
|
149
|
+
var values = settings.HistoryValues.split(",");
|
|
150
|
+
|
|
151
|
+
var newValues = [];
|
|
152
|
+
for (let i = 0; i < values.length; i++) {
|
|
153
|
+
console.log('add ' + values[i]);
|
|
154
|
+
const value = {
|
|
155
|
+
name: values[i],
|
|
156
|
+
}
|
|
157
|
+
newValues.push(value);
|
|
158
|
+
}
|
|
159
|
+
values2table('historyDP', newValues, OnChange, tableHistoryDPOnReady);
|
|
160
|
+
console.log('using HistoryValues from settings ' + JSON.stringify(settings.HistoryValues) + " " + JSON.stringify(newValues));
|
|
161
|
+
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function tableHistoryDPOnReady() {
|
|
166
|
+
|
|
167
|
+
}
|
|
63
168
|
|
|
64
169
|
// ... and the function save has to exist.
|
|
65
170
|
// you have to make sure the callback is called with the settings object as first param!
|
|
@@ -68,12 +173,26 @@
|
|
|
68
173
|
var obj = {};
|
|
69
174
|
$('.value').each(function () {
|
|
70
175
|
var $this = $(this);
|
|
71
|
-
|
|
176
|
+
|
|
177
|
+
var id = $this.attr('id');
|
|
178
|
+
|
|
179
|
+
if ($this.attr('type') === 'checkbox') {
|
|
180
|
+
obj[$this.attr('id')] = $this.prop('checked');
|
|
181
|
+
} else {
|
|
182
|
+
obj[$this.attr('id')] = $this.val();
|
|
183
|
+
}
|
|
72
184
|
});
|
|
185
|
+
|
|
186
|
+
obj.PolledDPs = table2values('polledDP');
|
|
187
|
+
obj.HistoryDPs = table2values('historyDP');
|
|
188
|
+
|
|
189
|
+
obj.PolledValues = "";
|
|
190
|
+
obj.HistoryValues = "";
|
|
191
|
+
|
|
73
192
|
callback(obj);
|
|
74
193
|
}
|
|
75
194
|
|
|
76
|
-
|
|
195
|
+
|
|
77
196
|
|
|
78
197
|
</script>
|
|
79
198
|
</head>
|
|
@@ -86,6 +205,8 @@
|
|
|
86
205
|
<ul class="tabs">
|
|
87
206
|
<li class="tab col s2"><a href="#tab-main" class="translate active">Main settings</a></li>
|
|
88
207
|
<li class="tab col s2 le-settings"><a href="#tab-ebusd" class="translate">ebusd</a></li>
|
|
208
|
+
<li class="tab col s2 le-settings"><a href="#tab-polledDP" class="translate">polledDP</a></li>
|
|
209
|
+
<li class="tab col s2 le-settings"><a href="#tab-historyDP" class="translate">historyDP</a></li>
|
|
89
210
|
</ul>
|
|
90
211
|
</div>
|
|
91
212
|
|
|
@@ -99,9 +220,6 @@
|
|
|
99
220
|
</div>
|
|
100
221
|
</div>
|
|
101
222
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
223
|
<div class="row">
|
|
106
224
|
<div class="input-field col s12 m8 l5">
|
|
107
225
|
<input type="text" id="targetIP" class="value" />
|
|
@@ -109,11 +227,12 @@
|
|
|
109
227
|
</div>
|
|
110
228
|
</div>
|
|
111
229
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
230
|
+
<div class="row">
|
|
231
|
+
<div class="input-field col s6">
|
|
232
|
+
<input type="checkbox" id="useBoolean4Onoff" class="value" />
|
|
233
|
+
<label for="useBoolean4Onoff" class="translate">useBoolean4Onoff</label>
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
117
236
|
|
|
118
237
|
</div>
|
|
119
238
|
|
|
@@ -134,50 +253,99 @@
|
|
|
134
253
|
<input class="value number" id="targetHTTPPort" size="5" maxlength="5" type="number" />
|
|
135
254
|
<label for="targetHTTPPort" class="translate">target_HTTPPort</label>
|
|
136
255
|
</div>
|
|
137
|
-
|
|
256
|
+
</div>
|
|
257
|
+
<div class="row">
|
|
138
258
|
<div class="input-field col s12 m4 l3">
|
|
139
259
|
<input class="value number" id="targetTelnetPort" size="5" maxlength="5" type="number" />
|
|
140
260
|
<label for="targetTelnetPort" class="translate">target_TelnetPort</label>
|
|
141
261
|
</div>
|
|
142
|
-
|
|
143
|
-
|
|
262
|
+
</div>
|
|
263
|
+
<div class="row">
|
|
144
264
|
<div class="input-field col s12 m4 l3">
|
|
145
265
|
<input class="value number" id="parseTimeout" size="3" maxlength="3" type="number" />
|
|
146
266
|
<label for="parseTimeout" class="translate">parse_timeout</label>
|
|
147
|
-
|
|
148
267
|
</div>
|
|
268
|
+
</div>
|
|
149
269
|
|
|
270
|
+
<!--
|
|
271
|
+
<div class="row">
|
|
272
|
+
<div class="input-field col s6">
|
|
273
|
+
<textarea class="value materialize-textarea polled" id="PolledValues"></textarea>
|
|
274
|
+
<label class="translate" for="PolledValues">ListOfAllPolledValues</label>
|
|
275
|
+
</div>
|
|
150
276
|
|
|
277
|
+
<div class="col s6">
|
|
278
|
+
<span class="translate">hint_ebusd_polled</span>
|
|
279
|
+
</div>
|
|
280
|
+
</div>
|
|
151
281
|
|
|
152
|
-
|
|
282
|
+
<div class="row">
|
|
283
|
+
<div class="input-field col s6">
|
|
284
|
+
<textarea class="value materialize-textarea polled" id="HistoryValues"></textarea>
|
|
285
|
+
<label class="translate" for="HistoryValues">ListOfAllHistoryValues</label>
|
|
286
|
+
</div>
|
|
153
287
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
288
|
+
<div class="col s6">
|
|
289
|
+
<span class="translate">hint_ebusd_history</span>
|
|
290
|
+
</div>
|
|
291
|
+
</div>
|
|
292
|
+
-->
|
|
293
|
+
|
|
294
|
+
</div>
|
|
295
|
+
|
|
296
|
+
<!-- tab "tab-polledDP" -->
|
|
297
|
+
<div id="tab-polledDP" class="col s12 page">
|
|
159
298
|
|
|
299
|
+
<div class="row">
|
|
160
300
|
<div class="col s6">
|
|
161
301
|
<span class="translate">hint_ebusd_polled</span>
|
|
162
302
|
</div>
|
|
163
303
|
</div>
|
|
164
304
|
|
|
165
|
-
<div class="
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
305
|
+
<div class="col s12" id="polledDP">
|
|
306
|
+
|
|
307
|
+
<a class="btn-floating waves-effect waves-light blue table-button-add"><i class="material-icons">add</i></a>
|
|
308
|
+
|
|
309
|
+
<div class="table-values-div">
|
|
310
|
+
<table id="table_polledDP" class="table-values" style="width: 100%;">
|
|
311
|
+
<thead>
|
|
312
|
+
<tr>
|
|
313
|
+
<th id="polledDP_col_1" data-name="circuit" style="width: 20%; background: #64b5f6 " class="translate">circuit</th>
|
|
314
|
+
<th id="polledDP_col_2" data-name="name" style="background: #64b5f6" class="translate">name</th>
|
|
315
|
+
<th id="polledDP_col_3" data-name="parameter" style="background: #64b5f6" class="translate">addParameter</th>
|
|
316
|
+
<th data-buttons="up down delete" style="width: 100px; background: #64b5f6"></th>
|
|
317
|
+
</tr>
|
|
318
|
+
</thead>
|
|
319
|
+
</table>
|
|
169
320
|
</div>
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
|
|
324
|
+
<!-- tab "tab-historyDP" -->
|
|
325
|
+
<div id="tab-historyDP" class="col s12 page">
|
|
170
326
|
|
|
327
|
+
<div class="row">
|
|
171
328
|
<div class="col s6">
|
|
172
329
|
<span class="translate">hint_ebusd_history</span>
|
|
173
330
|
</div>
|
|
174
331
|
</div>
|
|
175
|
-
|
|
176
332
|
|
|
177
|
-
|
|
333
|
+
<div class="col s12" id="historyDP">
|
|
178
334
|
|
|
179
|
-
|
|
335
|
+
<a class="btn-floating waves-effect waves-light blue table-button-add"><i class="material-icons">add</i></a>
|
|
180
336
|
|
|
337
|
+
<div class="table-values-div">
|
|
338
|
+
<table id="table_historyDP" class="table-values" style="width: 100%;">
|
|
339
|
+
<thead>
|
|
340
|
+
<tr>
|
|
341
|
+
<th id="historyDP_col_1" data-name="name" style="width: 20%; background: #64b5f6 " class="translate">name</th>
|
|
342
|
+
<th data-buttons="add up down delete" style="width: 100px; background: #64b5f6"></th>
|
|
343
|
+
</tr>
|
|
344
|
+
</thead>
|
|
345
|
+
</table>
|
|
346
|
+
</div>
|
|
347
|
+
</div>
|
|
348
|
+
</div>
|
|
181
349
|
|
|
182
350
|
</div>
|
|
183
351
|
</div>
|
package/admin/style.css
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* You can delete those if you want. I just found them very helpful */
|
|
2
|
+
* {
|
|
3
|
+
box-sizing: border-box
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.m {
|
|
7
|
+
/* Don't cut off dropdowns! */
|
|
8
|
+
overflow: initial;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Add your styles here */
|
|
12
|
+
.polled {
|
|
13
|
+
height: 100px !important;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.adapter-body {
|
|
17
|
+
overflow: auto;
|
|
18
|
+
}
|
package/admin/words.js
CHANGED
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
systemDictionary = {
|
|
5
|
-
"
|
|
6
|
-
"
|
|
5
|
+
"addParameter": { "en": "additional parameter", "de": "zusätzliche Parameter", "ru": "дополнительный параметр", "pt": "parâmetro adicional", "nl": "extra parameter", "fr": "paramètre supplémentaire", "it": "parametro aggiuntivo", "es": "parámetro adicional", "pl": "dodatkowy parametr", "zh-cn": "附加参数"},
|
|
6
|
+
"circuit": { "en": "circuit", "de": "Schaltkreis", "ru": "схема", "pt": "o circuito", "nl": "stroomkring", "fr": "circuit", "it": "circuito", "es": "circuito", "pl": "okrążenie", "zh-cn": "电路"},
|
|
7
7
|
"ebus_adapter_settings": { "en": "ebus adapter settings", "de": "ebus Adaptereinstellungen", "ru": "настройки адаптера ebus", "pt": "Configurações do adaptador ebus", "nl": "ebus-adapterinstellingen", "fr": "Paramètres de l'adaptateur ebus", "it": "impostazioni dell'adattatore ebus", "es": "configuración del adaptador ebus", "pl": "ustawienia adaptera ebus", "zh-cn": "ebus适配器设置"},
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
8
|
+
"hint_ebusd": { "en": "you need an running ebusd inclusive all necessary configurations. This adapter uses HTML to read data from ebusd. It uses TCP (Telnet) to write to ebusd.", "de": "Für ebusd interface benötigen Sie einen running ebusd incl. alle notwendigen Konfigurationen. Dieser Adapter verwendet HTML, um Daten von ebusd und TCP zu lesen, um auf ebusd zu schreiben", "ru": "для интерфейса ebusd вам необходимо запустить ebusd, вкл. все необходимые конфигурации. Этот адаптер использует HTML для чтения данных из ebusd и TCP для записи в ebusd", "pt": "Para a interface ebusd, você precisa de um ebusd executado. todas as configurações necessárias. Este adaptador usa HTML para ler dados de ebusd e TCP para escrever em ebusd", "nl": "voor ebusd-interface heeft u een lopende ebusd nodig. alle noodzakelijke configuraties. Deze adapter gebruikt HTML om gegevens van ebusd en TCP te lezen om naar ebusd te schrijven", "fr": "Pour l'interface ebusd, vous avez besoin d'un ebusd en cours d'exécution. toutes les configurations nécessaires. Cet adaptateur utilise le HTML pour lire les données d'ebusd et TCP pour écrire sur ebusd", "it": "per l'interfaccia ebusd hai bisogno di un ebusd in esecuzione incl. tutte le configurazioni necessarie Questo adattatore utilizza l'HTML per leggere i dati da ebusd e TCP per scrivere su ebusd", "es": "para la interfaz ebusd necesita un ebusd eb todas las configuraciones necesarias. Este adaptador usa HTML para leer datos de ebusd y TCP para escribir en ebusd", "pl": "do interfejsu ebusd potrzebny jest działający ebusd w tym. wszystkie niezbędne konfiguracje. Ten adapter używa HTML do odczytu danych z ebusd i TCP w celu zapisania do ebusd", "zh-cn": "对于ebusd接口,您需要一个正在运行的ebusd incl。"},
|
|
9
|
+
"hint_ebusd_history": { "en": "list of all datapoint names which should be used with ebus history widget. ", "de": "Liste aller Datenpunktnamen, die mit dem ebus-History-Widget verwendet werden sollen.", "ru": "список всех имен точек данных, которые следует использовать с виджетом истории ebus.", "pt": "lista de todos os nomes de pontos de dados que devem ser usados com o widget de histórico do ebus.", "nl": "lijst met alle datapuntnamen die moeten worden gebruikt met de ebus-geschiedeniswidget.", "fr": "liste de tous les noms de points de données qui doivent être utilisés avec le widget historique ebus.", "it": "elenco di tutti i nomi dei punti dati che dovrebbero essere utilizzati con il widget cronologia ebus.", "es": "lista de todos los nombres de puntos de datos que deben usarse con el widget de historial de ebus.", "pl": "lista wszystkich nazw punktów danych, które powinny być używane z widżetem historii ebus.", "zh-cn": "应与 ebus 历史小部件一起使用的所有数据点名称的列表。"},
|
|
10
|
+
"hint_ebusd_polled": { "en": "list of all datapoint names which should be polled from adapter. Do not add datapoints which are already polled from ebusd. Circuit and additional parameter are optionally.", "de": "Liste aller Datenpunktnamen, die vom Adapter abgefragt werden sollen. ", "ru": "список всех имен точек данных, которые должны быть опрошены от адаптера. ", "pt": "lista de todos os nomes de pontos de dados que devem ser pesquisados no adaptador. ", "nl": "lijst met alle datapuntnamen die van de adapter moeten worden opgevraagd. ", "fr": "liste de tous les noms de points de données qui doivent être interrogés à partir de l'adaptateur. ", "it": "elenco di tutti i nomi dei punti dati che devono essere interrogati dall'adattatore. ", "es": "lista de todos los nombres de puntos de datos que deben consultarse desde el adaptador. ", "pl": "lista wszystkich nazw punktów danych, które powinny być odpytywane z adaptera. ", "zh-cn": "应从适配器轮询的所有数据点名称的列表。"},
|
|
11
|
+
"historyDP": { "en": "history datapoints", "de": "Verlaufsdatenpunkte", "ru": "исторические данные", "pt": "pontos de dados de história", "nl": "geschiedenis datapunten", "fr": "points de données d'historique", "it": "punti dati della cronologia", "es": "puntos de datos históricos", "pl": "punkty danych historii", "zh-cn": "历史数据点"},
|
|
12
|
+
"name": { "en": "name", "de": "Name", "ru": "имя", "pt": "nome", "nl": "naam", "fr": "Nom", "it": "nome", "es": "nombre", "pl": "Nazwa", "zh-cn": "姓名"},
|
|
13
13
|
"parse_timeout": { "en": "download and poll timeout [seconds]", "de": "Download und Abfrage-Timeout [Sekunden]", "ru": "время ожидания загрузки и опроса [секунд]", "pt": "tempo de download e poll timeout [segundos]", "nl": "downloaden en poll time-out [seconden]", "fr": "délai de téléchargement et d'interrogation [secondes]", "it": "download e polling timeout [secondi]", "es": "tiempo de espera de descarga y encuesta [segundos]", "pl": "czas pobierania i odpytywania [sekundy]", "zh-cn": "下载和轮询超时[秒]"},
|
|
14
|
+
"polledDP": { "en": "polled datapoints", "de": "abgefragte Datenpunkte", "ru": "опрошенные точки данных", "pt": "pontos de dados sondados", "nl": "opgevraagde datapunten", "fr": "points de données interrogés", "it": "punti dati interrogati", "es": "puntos de datos sondeados", "pl": "odpytywane punkty danych", "zh-cn": "轮询数据点"},
|
|
14
15
|
"target_HTTPPort": { "en": "target HTTP Port to read data", "de": "target HTTP Port zum Lesen von Daten", "ru": "целевой HTTP-порт для чтения данных", "pt": "porta HTTP de destino para ler dados", "nl": "doel HTTP-poort om gegevens te lezen", "fr": "Port HTTP cible pour lire les données", "it": "Porta HTTP di destinazione per leggere i dati", "es": "target HTTP Port para leer datos", "pl": "docelowy port HTTP do odczytu danych", "zh-cn": "目标HTTP端口以读取数据"},
|
|
15
16
|
"target_IP": { "en": "target IP", "de": "Ziel-IP", "ru": "целевой IP-адрес", "pt": "IP alvo", "nl": "doel-IP", "fr": "cible IP", "it": "IP di destinazione", "es": "IP objetivo", "pl": "docelowy adres IP", "zh-cn": "目标IP"},
|
|
16
17
|
"target_TelnetPort": { "en": "target telnet Port to write data", "de": "target telnet Port zum Schreiben von Daten", "ru": "целевой порт telnet для записи данных", "pt": "destino telnet porta para escrever dados", "nl": "doel telnet-poort om gegevens te schrijven", "fr": "Port telnet cible pour écrire des données", "it": "Porta telnet target per scrivere dati", "es": "target telnet Port para escribir datos", "pl": "docelowy port telnet do zapisu danych", "zh-cn": "目标telnet用于写入数据的端口"},
|
|
18
|
+
"useBoolean4Onoff": { "en": "use boolean instead string for datapoints with on/off values ", "de": "Verwenden Sie Boolean anstelle von Strings für Datenpunkte mit Ein-/Aus-Werten", "ru": "используйте логическое значение вместо строки для точек данных со значениями включения / выключения", "pt": "use booleano em vez de string para pontos de dados com valores on / off", "nl": "gebruik in plaats daarvan booleaanse string voor datapunten met aan/uit-waarden", "fr": "utiliser une chaîne booléenne à la place pour les points de données avec des valeurs activées/désactivées", "it": "usa la stringa booleana invece per i punti dati con valori on/off", "es": "use booleano en lugar de cadena para puntos de datos con valores de encendido / apagado", "pl": "użyj wartości logicznej zamiast ciągu dla punktów danych z wartościami włączonymi / wyłączonymi", "zh-cn": "对具有开/关值的数据点使用布尔值代替字符串"},
|
|
17
19
|
};
|
package/io-package.json
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "ebus",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.4.0",
|
|
5
5
|
"news": {
|
|
6
|
-
"2.
|
|
6
|
+
"2.4.0": {
|
|
7
|
+
"en": "overwork handling of read and history datapoints; support of list of commands ",
|
|
8
|
+
"de": "Überarbeitung von Lese- und Verlaufsdatenpunkten; ",
|
|
9
|
+
"ru": "чрезмерная работа с точками чтения и истории; ",
|
|
10
|
+
"pt": "excesso de trabalho no manuseio de pontos de dados de leitura e histórico; ",
|
|
11
|
+
"nl": "overwerk afhandeling van lees- en geschiedenisdatapunten; ",
|
|
12
|
+
"fr": "traitement excessif des points de données de lecture et d'historique ; ",
|
|
13
|
+
"it": "gestione del lavoro eccessivo dei punti dati di lettura e cronologia; ",
|
|
14
|
+
"es": "manejo de exceso de trabajo de los puntos de datos de lectura e historial; ",
|
|
15
|
+
"pl": "przepracowanie obsługi odczytanych i historycznych punktów danych; ",
|
|
16
|
+
"zh-cn": "读取和历史数据点的过度处理;"
|
|
17
|
+
},
|
|
18
|
+
"2.3.1": {
|
|
19
|
+
"en": "support for ebusd 21.2",
|
|
20
|
+
"de": "unterstützung für ebusd 21.2",
|
|
21
|
+
"ru": "поддержка ebusd 21.2",
|
|
22
|
+
"pt": "suporte para ebusd 21.2",
|
|
23
|
+
"nl": "ondersteuning voor ebusd 21.2",
|
|
24
|
+
"fr": "prise en charge d'ebusd 21.2",
|
|
25
|
+
"it": "supporto per ebusd 21.2",
|
|
26
|
+
"es": "soporte para ebusd 21.2",
|
|
27
|
+
"pl": "obsługa ebusd 21,2",
|
|
28
|
+
"zh-cn": "支持 ebusd 21.2"
|
|
29
|
+
},
|
|
30
|
+
"2.2.7": {
|
|
7
31
|
"en": "bug fix for wrong data type logs",
|
|
8
32
|
"de": "Bugfix für falsche Datentyp-Logs",
|
|
9
33
|
"ru": "исправление ошибки для журналов неправильного типа данных",
|
|
@@ -142,7 +166,10 @@
|
|
|
142
166
|
}
|
|
143
167
|
],
|
|
144
168
|
"connectionType": "local",
|
|
145
|
-
"dataSource": "push"
|
|
169
|
+
"dataSource": "push",
|
|
170
|
+
"adminUI": {
|
|
171
|
+
"config": "materialize"
|
|
172
|
+
}
|
|
146
173
|
},
|
|
147
174
|
"native": {
|
|
148
175
|
"targetIP": "192.168.0.1",
|
|
@@ -151,6 +178,9 @@
|
|
|
151
178
|
"targetTelnetPort": 8890,
|
|
152
179
|
"PolledValues": "",
|
|
153
180
|
"HistoryValues": "",
|
|
154
|
-
"parseTimeout": 60
|
|
181
|
+
"parseTimeout": 60,
|
|
182
|
+
"useBoolean4Onoff": false,
|
|
183
|
+
"PolledDPs": [],
|
|
184
|
+
"HistoryDPs": []
|
|
155
185
|
}
|
|
156
186
|
}
|