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 CHANGED
@@ -7,82 +7,129 @@
7
7
 
8
8
  [![NPM](https://nodei.co/npm/iobroker.openknx.png?downloads=true)](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@version
18
- iobroker add openknx
19
- after updates:
20
- iobroker upload openknx
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
- this adapter has is own namespace openknx
27
- for existing installation that are connected to knx signals of another namspace you can use the setting:
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, a new project import will then store the data in this object tree region.
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
- "_id": "path.and.name.to.object",
36
- "type": "state",
37
- "common": {
38
- "desc": "Basetype: 1-bit value, Subtype: switch", //informative
39
- "min": 0, //
40
- "max": 1,
41
- "name": "Aussen Melder Licht schalten", //informative description
42
- "read": true, //default this is set, if false incoming bus values are not updating the object
43
- "role": "", //tbd
44
- "type": "boolean", //boolean, number, string, object
45
- "unit": "", //informative, derived from dpt
46
- "write": true //default true, if set change on object is triggering knx write, succ. write sets then ack flag to true
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
- "force_encoding": "",
59
- "signedness": "",
60
- "valuetype": "basic"
61
- },
62
- "from": "system.adapter.openknx.0",
63
- "user": "system.user.admin",
64
- "ts": 1638913951639
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
- Supported DPTs 1-21,232,237,238
70
- Only time and date information is exchanged with KNX time based datatypes, e.g. DPT-19 has unsupported fields for signal quality
71
-
72
- Object send and receive values are of type boolean (eg DPT1), number (scaled, or unscaled), string.
73
- DPT 2 'expects a object {"priority":0,"data":1}' receive provides a strinified object of same type.
74
- Other joint DPTs have similar object notation.
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
- 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!
80
- DPT11 is date (dd/mm/yyyy): the same applies for DPT11, you'll need to ignore the time part.
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
- -import groupaddresses in XML format
85
- -import knxprj (only tested with ets 5.7.4 file format)
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 knxproj
107
- here you can upload your ETS Export in "knxproj" format.
108
- After successful import a message shows how much objects where recognized.
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
- ## Changelog
132
- ### 0.0.11 (7.12.2021)
193
+ ### 0.0.12
133
194
  * initial version
134
195
 
135
196