iobroker.idm-multitalent_002 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -4
- package/io-package.json +10 -1
- package/lib/idm-utils.js +3 -3
- package/lib/idm_datablocks.js +1 -0
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -20,16 +20,17 @@
|
|
|
20
20
|
Read sensor data and read and write settings of a iDM heatpump with multitalent.002 control.
|
|
21
21
|
|
|
22
22
|
Currently following versions are supported:
|
|
23
|
-
* TERRA050701 - idm701 (idm701100)... mostly supported, protocol information missing, one
|
|
23
|
+
* TERRA050701 - idm701 (idm701100)... mostly supported, protocol information missing, one installation, running since April 6th, 2022
|
|
24
24
|
* TERRA061001 - idm712 (idm712100)... supported, one experimental installation
|
|
25
25
|
* EVR-II071102 - idm750 (idm750100)... experimentally supported, protocol information available, but no installation
|
|
26
|
+
* EVR-II100201 - evr752 (evr752101)... support in development currently, stay tuned
|
|
26
27
|
|
|
27
28
|
You need a Ethernet to RS422 converter to connect to the multitalent control.
|
|
28
29
|
**Note** that you have to connect ground/shield of your converter to the ground of the control/heatpump in order to prevent electric influences on the sensor readings.
|
|
29
30
|
The values are read all 30 seconds. As the control is quite picky on the timing this is the fastest suggested polling time.
|
|
30
31
|
The changed values are also transferred once all 30 seconds (exactly before the values are read) to the control.
|
|
31
32
|
|
|
32
|
-
During bootup of the control (e.g. after a power loss) no values should be polled from the control. This is currently **NOT** ensured by the adapter. So you **manually** need to **stop** it. If the control of the heatpump did not start due to the adapter then simply stop the adapter and power cycle the control. This should fix the problem. Afterwards you can start the adapter again.
|
|
33
|
+
During bootup of the control (e.g. after a power loss) no values should be polled from the control. This is currently **NOT** ensured by the adapter. So you **manually** need to **stop** it. If the control of the heatpump did not start due to the adapter then simply stop the adapter and power cycle the control. This should fix the problem. Afterwards you can start the adapter again. I implemented a delayed switch-on of the serial server. This also mitigates the problem.
|
|
33
34
|
|
|
34
35
|
Example installation:
|
|
35
36
|
|
|
@@ -45,6 +46,14 @@ Settings of the serial adapter:
|
|
|
45
46
|
UART FIFO Disable
|
|
46
47
|
```
|
|
47
48
|
## Changelog
|
|
49
|
+
### 0.2.2 (2023-05-01)
|
|
50
|
+
* (zloe) fixed an issue writing values introduced with 0.2.0
|
|
51
|
+
* (zloe) updating dependencies
|
|
52
|
+
* (zloe) further fixing for version EVR752101
|
|
53
|
+
|
|
54
|
+
### 0.2.1 (2023-04-30)
|
|
55
|
+
* (zloe) fixed padding in datablock 7 for version IDM712100
|
|
56
|
+
|
|
48
57
|
### 0.2.0 (2023-04-30)
|
|
49
58
|
* (zloe) added experimental support for version EVR752101
|
|
50
59
|
* (zloe) fixed bug with signed values
|
|
@@ -66,7 +75,7 @@ Settings of the serial adapter:
|
|
|
66
75
|
## License
|
|
67
76
|
MIT License
|
|
68
77
|
|
|
69
|
-
Copyright (c)
|
|
78
|
+
Copyright (c) 2023 zloe <klaus@zloebl.net>
|
|
70
79
|
|
|
71
80
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
72
81
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -86,6 +95,15 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
86
95
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
87
96
|
SOFTWARE.
|
|
88
97
|
|
|
98
|
+
## Installation
|
|
99
|
+
As the adapter is not (yet) listed in the official ioBroker repository you have to download the tgz file from here (github or npmjs).
|
|
100
|
+
1. Upload the file to your ioBroker host
|
|
101
|
+
1. Install it locally (The paths are different on Windows):
|
|
102
|
+
```bash
|
|
103
|
+
cd /opt/iobroker
|
|
104
|
+
npm i /path/to/tarball.tgz
|
|
105
|
+
```
|
|
106
|
+
|
|
89
107
|
## Developer manual
|
|
90
108
|
Missing documentation about the data structures/blocks.
|
|
91
109
|
|
|
@@ -171,4 +189,6 @@ In order to install the adapter locally without publishing, the following steps
|
|
|
171
189
|
|
|
172
190
|
For later updates, the above procedure is not necessary. Just do the following:
|
|
173
191
|
1. Overwrite the changed files in the adapter directory (`/opt/iobroker/node_modules/iobroker.idm-multitalent_002`)
|
|
174
|
-
1. Execute `iobroker upload idm-multitalent_002` on the ioBroker host
|
|
192
|
+
1. Execute `iobroker upload idm-multitalent_002` on the ioBroker host
|
|
193
|
+
|
|
194
|
+
Copyright (c) 2023 zloe <klaus@zloebl.net>
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "idm-multitalent_002",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.2",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.2.2": {
|
|
7
|
+
"en": "* fixed issue when writing values\n\n## License\nMIT License\n\nCopyright (c) 2023 zloe <klaus@zloebl.net>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
|
|
8
|
+
},
|
|
9
|
+
"0.2.1": {
|
|
10
|
+
"en": "* fixed padding for datablock 7 in version IDM712100\n\n## License\nMIT License\n\nCopyright (c) 2023 zloe <klaus@zloebl.net>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
|
|
11
|
+
},
|
|
12
|
+
"0.2.0": {
|
|
13
|
+
"en": "* added experimental support for EVR752101 and IDM750100\n\n## License\nMIT License\n\nCopyright (c) 2023 zloe <klaus@zloebl.net>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
|
|
14
|
+
},
|
|
6
15
|
"0.1.2": {
|
|
7
16
|
"en": "* coming closer to final version\nerror and reconnect handling implemented\n\n## License\nMIT License\n\nCopyright (c) 2022 zloe <klaus@zloebl.net>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
|
|
8
17
|
},
|
package/lib/idm-utils.js
CHANGED
|
@@ -27,7 +27,7 @@ const idm_utils = {
|
|
|
27
27
|
return text;
|
|
28
28
|
},
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
get_value_string: function (value, size) {
|
|
31
31
|
const digits = new Int8Array(size * 2);
|
|
32
32
|
for (let i = 0; i < size * 2; i += 1) {
|
|
33
33
|
digits[i] = value % 16;
|
|
@@ -38,12 +38,12 @@ const idm_utils = {
|
|
|
38
38
|
text = text + digits[i + 1].toString(16).toUpperCase() + digits[i].toString(16).toUpperCase();
|
|
39
39
|
}
|
|
40
40
|
return text;
|
|
41
|
-
}
|
|
41
|
+
},/*
|
|
42
42
|
get_value_string: function (value, size) {
|
|
43
43
|
let text = value.toString(16).toUpperCase();
|
|
44
44
|
text = text.padStart(size * 2, '0');
|
|
45
45
|
return text;
|
|
46
|
-
}
|
|
46
|
+
},*/
|
|
47
47
|
|
|
48
48
|
stringToUInt8Array: function(text) {
|
|
49
49
|
if (!text) return [];
|
package/lib/idm_datablocks.js
CHANGED
|
@@ -276,6 +276,7 @@ const idm_datablocks = {
|
|
|
276
276
|
block_number: '07',
|
|
277
277
|
definition: [
|
|
278
278
|
{ statename: '', field: 'padding', description: 'padding', length: 2, factor: 1, writable: false, function: -1 },
|
|
279
|
+
{ statename: '', field: 'padding2', description: 'padding', length: 1, factor: 1, writable: false, function: -1 },
|
|
279
280
|
{ statename: 'Status.Relais01-SolePumpe', field: 'relais1', description: 'Relais1 Solepumpe', length: 1, factor: 1, writable: false, function: 116 },
|
|
280
281
|
{ statename: 'Status.Relais02-WP-Stufe-1', field: 'relais2', description: 'Relais2 WP Stufe 1', length: 1, factor: 1, writable: false, function: 117 },
|
|
281
282
|
{ statename: 'Status.Relais03-MischerA-Auf', field: 'relais3', description: 'Relais3 Mischer A - auf', length: 1, factor: 1, writable: false, function: 118 },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.idm-multitalent_002",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Read and write values of a iDM heatpump with multitalent.002 control.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "zloe",
|
|
@@ -24,24 +24,24 @@
|
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@alcalzone/release-script": "^3.5.9",
|
|
26
26
|
"@iobroker/testing": "^4.1.0",
|
|
27
|
-
"@types/chai": "^4.3.
|
|
27
|
+
"@types/chai": "^4.3.5",
|
|
28
28
|
"@types/chai-as-promised": "^7.1.5",
|
|
29
29
|
"@types/gulp": "^4.0.10",
|
|
30
30
|
"@types/mocha": "^10.0.1",
|
|
31
|
-
"@types/node": "^18.
|
|
31
|
+
"@types/node": "^18.16.3",
|
|
32
32
|
"@types/proxyquire": "^1.3.28",
|
|
33
33
|
"@types/sinon": "^10.0.13",
|
|
34
34
|
"@types/sinon-chai": "^3.2.9",
|
|
35
|
-
"axios": "^1.
|
|
35
|
+
"axios": "^1.4.0",
|
|
36
36
|
"chai": "^4.3.7",
|
|
37
37
|
"chai-as-promised": "^7.1.1",
|
|
38
|
-
"eslint": "^8.
|
|
38
|
+
"eslint": "^8.39.0",
|
|
39
39
|
"gulp": "^4.0.2",
|
|
40
40
|
"mocha": "^10.2.0",
|
|
41
41
|
"proxyquire": "^2.1.3",
|
|
42
|
-
"sinon": "^15.0.
|
|
42
|
+
"sinon": "^15.0.4",
|
|
43
43
|
"sinon-chai": "^3.7.0",
|
|
44
|
-
"typescript": "~5.0.
|
|
44
|
+
"typescript": "~5.0.4"
|
|
45
45
|
},
|
|
46
46
|
"main": "main.js",
|
|
47
47
|
"files": [
|