iobroker.openknx 0.0.11 → 0.0.16
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 +126 -65
- package/admin/index_m.html +36 -363
- package/admin/openknx.png +0 -0
- package/admin/words.js +2 -10
- package/io-package.json +1 -1
- package/lib/generateGAS.js +47 -28
- package/lib/tools.js +46 -1
- package/main.js +174 -127
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,82 +7,129 @@
|
|
|
7
7
|
|
|
8
8
|
[](https://nodei.co/npm/iobroker.openknx/)
|
|
9
9
|
|
|
10
|
+
This adapter serves as a communication interface between Iobroker Object tree and a IP Gateway on the KNX bus.
|
|
11
|
+
This adapter allows to generate the communication objects by importing of knxproj Files from ETS.
|
|
12
|
+
All generated Communication Objects are initially configured readable and writeable.
|
|
13
|
+
|
|
10
14
|
# Installation of early versions
|
|
11
|
-
This is an early untested version
|
|
12
|
-
Please make a good backup of all your data!
|
|
15
|
+
This is an early untested version
|
|
16
|
+
Please make a good backup of all your data!
|
|
13
17
|
Please do not test in critical environments
|
|
14
18
|
|
|
15
|
-
in shell
|
|
16
|
-
cd /opt/iobroker/node_modules
|
|
17
|
-
npm i iobroker.openknx
|
|
18
|
-
iobroker add openknx
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
install in shell
|
|
20
|
+
cd /opt/iobroker/node_modules
|
|
21
|
+
npm i iobroker.openknx
|
|
22
|
+
iobroker add openknx
|
|
23
|
+
npm i knx
|
|
24
|
+
|
|
25
|
+
updates:
|
|
26
|
+
npm i iobroker.openknx
|
|
27
|
+
iobroker upload openknx
|
|
28
|
+
|
|
29
|
+
# GA import
|
|
21
30
|
|
|
22
|
-
This adapter serves as a communication interface between Iobroker Object tree and a IP Gateway on the KNX bus.
|
|
23
|
-
This adapter allows to generate the communication objects by importing of knxproj Files from ETS.
|
|
24
31
|
|
|
25
32
|
# Compatibility
|
|
26
|
-
|
|
27
|
-
for existing
|
|
33
|
+
This adapter has its own namespace 'openknx'.
|
|
34
|
+
for existing applications, that are connected to knx signals of other knx adapters you can use the setting:
|
|
28
35
|
Override object path
|
|
29
|
-
to e.g. knx.0
|
|
30
|
-
Objects are not compatible, remove them before and disable all other knx adapters.
|
|
31
|
-
Leave setting empty to use own namespace.
|
|
36
|
+
to e.g. knx.0. A new project import will then store the data in this object tree space.
|
|
37
|
+
Objects are not compatible, remove them manually before the import and disable all other knx adapters.
|
|
38
|
+
Leave setting empty to use the adapters own namespace.
|
|
39
|
+
|
|
40
|
+
# log level
|
|
41
|
+
|
|
32
42
|
|
|
33
43
|
# Adapter setting Interface Description
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"native": {
|
|
49
|
-
"address": "0/0/7", //knx address
|
|
50
|
-
"answer_groupValueResponse": false, //default false, if set to true adapter responds with value on GroupValue_Read
|
|
51
|
-
"autoread": true, //default true, adapter sends a GroupValue_read on start to sync its states
|
|
52
|
-
"bitlength": 1, //size ob knx data
|
|
53
|
-
"dpt": "DPT1.001", //DPT
|
|
54
|
-
"encoding": { //informative
|
|
55
|
-
"0": "Off",
|
|
56
|
-
"1": "On"
|
|
44
|
+
|
|
45
|
+
{
|
|
46
|
+
"_id": "path.and.name.to.object", //derieved from the KNX structure
|
|
47
|
+
"type": "state",
|
|
48
|
+
"common": {
|
|
49
|
+
"desc": "Basetype: 1-bit value, Subtype: switch", //informative
|
|
50
|
+
"min": 0, //
|
|
51
|
+
"max": 1,
|
|
52
|
+
"name": "Aussen Melder Licht schalten", //informative description
|
|
53
|
+
"read": true, //default this is set, if false incoming bus values are not updating the object
|
|
54
|
+
"role": "", //tbd
|
|
55
|
+
"type": "boolean", //boolean, number, string, object
|
|
56
|
+
"unit": "", //informative, derived from dpt
|
|
57
|
+
"write": true //default true, if set change on object is triggering knx write, succ. write sets then ack flag to true
|
|
57
58
|
},
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
"native": {
|
|
60
|
+
"address": "0/0/7", //knx address
|
|
61
|
+
"answer_groupValueResponse": false, //default false, if set to true adapter responds with value on GroupValue_Read
|
|
62
|
+
"autoread": true, //default true, adapter sends a GroupValue_read on start to sync its states
|
|
63
|
+
"bitlength": 1, //size ob knx data
|
|
64
|
+
"dpt": "DPT1.001", //DPT
|
|
65
|
+
"encoding": { //informative
|
|
66
|
+
"0": "Off",
|
|
67
|
+
"1": "On"
|
|
68
|
+
},
|
|
69
|
+
"force_encoding": "",
|
|
70
|
+
"signedness": "",
|
|
71
|
+
"valuetype": "basic" //composite means set via a specific object
|
|
72
|
+
},
|
|
73
|
+
"from": "system.adapter.openknx.0",
|
|
74
|
+
"user": "system.user.admin",
|
|
75
|
+
"ts": 1638913951639
|
|
76
|
+
}
|
|
66
77
|
|
|
67
78
|
|
|
68
79
|
# Adapter communication Interface Description
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
handeled DPTs 1-21,232,237,238
|
|
81
|
+
|
|
82
|
+
Unhandeled DPTs are written as raw buffers, the iterface is a sequencial string of hexadecimal number. For example write '0102feff' to send values 0x01 0x02 0xfe 0xff on the bus.
|
|
83
|
+
Where number, see scaling.
|
|
84
|
+
|
|
85
|
+
Description of handeled DPTs
|
|
86
|
+
|
|
87
|
+
javascript datatype special values range
|
|
88
|
+
DPT-1 boolean false, true
|
|
89
|
+
DPT-2 object {"priority":1 bit,"data":1 bit} -
|
|
90
|
+
DPT-3 object {"decr_incr":1 bit,"data":2 bit} -
|
|
91
|
+
DPT-18 object {"save_recall":0,"scenenumber":0}
|
|
92
|
+
DPT-21 object {"outofservice":0,"fault":0,"overridden":0,"inalarm":0,"alarmunack":0} -
|
|
93
|
+
DPT-232 object {red:0..255, green:0.255, blue:0.255} -
|
|
94
|
+
DPT-237 object {"address":0,"addresstype":0,"readresponse":0,"lampfailure":0,"ballastfailure":0,"convertorerror":0} -
|
|
95
|
+
DPT-4 string one character sent as 8-bit character
|
|
96
|
+
DPT-16 string one character sent as 16-character string
|
|
97
|
+
DPT-5 number 8-bit unsigned value
|
|
98
|
+
DPT-5.001 number 0..100 [%] scaled to 1-byte
|
|
99
|
+
DPT-5.003 number 0..360 [°] scaled to 1-byte
|
|
100
|
+
DPT-6 number 8-bit signed -128..127
|
|
101
|
+
DPT-7 number 16-bit unsigned value
|
|
102
|
+
DPT-8 number 2-byte signed value -32768..32767
|
|
103
|
+
DPT-9 number 2-byte floating point value
|
|
104
|
+
DPT-14 number 4-byte floating point value
|
|
105
|
+
DPT-12 number 4-byte unsigned value
|
|
106
|
+
DPT-13 number 4-byte signed value
|
|
107
|
+
DPT-15 number 4-byte
|
|
108
|
+
DPT-17 number 1-byte
|
|
109
|
+
DPT-20 number 1-byte
|
|
110
|
+
DPT-238 number 1-byte
|
|
111
|
+
DPT-10 number for Date Object -
|
|
112
|
+
DPT-11 number for Date Object -
|
|
113
|
+
DPT-19 number for Date Object -
|
|
114
|
+
rest object {0 .. } -
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
Only time and date information is exchanged with KNX time based datatypes, e.g. DPT-19 has unsupported fields for signal quality
|
|
118
|
+
|
|
119
|
+
Object send and receive values are of type boolean (eg DPT1), number (scaled, or unscaled), string.
|
|
120
|
+
DPT 2 'expects a object {"priority":0,"data":1}' receive provides a strinified object of same type.
|
|
121
|
+
Other joint DPTs have similar object notation.
|
|
75
122
|
DPT19 expects a Number from a Date Object, Iobroker can not handle objects, fields of KNX ko that cannot be derived from timestamp are not implemented eg. quality flags
|
|
76
123
|
|
|
77
|
-
Date and time DPTs (DPT10, DPT11)
|
|
78
|
-
Please have in mind that Javascript and KNX have very different base type for time and date.
|
|
79
|
-
|
|
80
|
-
|
|
124
|
+
Date and time DPTs (DPT10, DPT11)
|
|
125
|
+
Please have in mind that Javascript and KNX have very different base type for time and date.
|
|
126
|
+
DPT10 is time (hh:mm:ss) plus "day of week". This concept is unavailable in JS, so you'll be getting/setting a regular Date Js object, but please remember you'll need to ignore the date, month and year. The exact same datagram that converts to "Mon, Jul 1st 12:34:56", will evaluate to a wildly different JS Date of "Mon, Jul 8th 12:34:56" one week later. Be warned!
|
|
127
|
+
DPT11 is date (dd/mm/yyyy): the same applies for DPT11, you'll need to ignore the time part.
|
|
81
128
|
|
|
82
129
|
|
|
83
130
|
# Features
|
|
84
|
-
|
|
85
|
-
|
|
131
|
+
* import groupaddresses in XML format
|
|
132
|
+
* import knxprj (only tested with ets 5.7.4 file format)
|
|
86
133
|
|
|
87
134
|
# Adapterconfiguration
|
|
88
135
|
After installing this adapter, open the adapter configuration. Fill in:
|
|
@@ -103,16 +150,20 @@ The adapter uses openknx.0 for first instance as default path for Iobroker objec
|
|
|
103
150
|
If your existing installation has a lot of references to existing knx objects to an existing folder, then you can specify its location, for example knx.0.
|
|
104
151
|
This feature will be removed in future.
|
|
105
152
|
|
|
106
|
-
##### Upload
|
|
107
|
-
|
|
108
|
-
|
|
153
|
+
##### Upload configuration
|
|
154
|
+
1st In the ETS go to Group Addresses, select Export Grou Adresses
|
|
155
|
+
Select XML Output Format
|
|
156
|
+
2nd upload your ETS Export XML in the adapter via the GA XML-Import dialog
|
|
157
|
+
|
|
158
|
+
After the successful import a message shows how much objects where recognized.
|
|
109
159
|
Press "save & close" or "save" to restart the adapter and take over the changes.
|
|
110
160
|
When starting, the adapter tries to read all GroupAdresses with have the autoread flag (default setting). This could take a while and can produce a higher load on your KNX-bus. This ensures that the adapter operates with up-to-date values from the start.
|
|
161
|
+
Autoread is done on the first connection with the knx bus after an adapter start or restart, not on every knx reconnection.
|
|
111
162
|
|
|
112
163
|
## Objects
|
|
113
164
|
In Objects the group adress tree like in your ETS project.
|
|
114
165
|
|
|
115
|
-
#Usage
|
|
166
|
+
# Usage
|
|
116
167
|
If the adapter startet successfully your datapoints will be available for communication interaction.
|
|
117
168
|
|
|
118
169
|
## Datapoint Types
|
|
@@ -122,14 +173,24 @@ Wide DPT (datapoint type) support (DPT1 - DPT21, DPT232, DPT237, DPT238 supporte
|
|
|
122
173
|
|
|
123
174
|
|
|
124
175
|
# Known Problems
|
|
125
|
-
- raw value write where missing DPTs not implemented
|
|
176
|
+
- raw value write where missing DPTs not fully implemented
|
|
177
|
+
- cannot receive ga of unsupported dpt
|
|
126
178
|
- sends write instead of response on GroupValue_Read
|
|
179
|
+
- setting onlyAddNewObjects not working
|
|
180
|
+
- knxprj file only tested from ETS 5.7.4
|
|
181
|
+
- IOBroker object role definition missing
|
|
127
182
|
|
|
183
|
+
# limitations
|
|
184
|
+
- only three level group address are supported
|
|
128
185
|
|
|
186
|
+
## Changelog
|
|
187
|
+
### 0.0.16
|
|
188
|
+
* raw value handling
|
|
129
189
|
|
|
190
|
+
### 0.0.14
|
|
191
|
+
* import ga xml
|
|
130
192
|
|
|
131
|
-
|
|
132
|
-
### 0.0.11 (7.12.2021)
|
|
193
|
+
### 0.0.12
|
|
133
194
|
* initial version
|
|
134
195
|
|
|
135
196
|
|