iobroker.openknx 0.1.9 → 0.1.13
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 +230 -81
- package/admin/i18n/de/translations.json +11 -2
- package/admin/i18n/en/translations.json +11 -2
- package/admin/i18n/es/translations.json +7 -1
- package/admin/i18n/fr/translations.json +7 -1
- package/admin/i18n/it/translations.json +7 -1
- package/admin/i18n/nl/translations.json +7 -1
- package/admin/i18n/pl/translations.json +7 -1
- package/admin/i18n/pt/translations.json +7 -1
- package/admin/i18n/ru/translations.json +7 -1
- package/admin/i18n/zh-cn/translations.json +7 -1
- package/admin/index_m.html +439 -366
- package/admin/words.js +83 -206
- package/io-package.json +9 -4
- package/lib/doubleKeyedMap.js +56 -0
- package/lib/knx/package-lock.json +675 -0
- package/lib/knx/src/dptlib/dpt11.js +1 -1
- package/lib/knx/src/dptlib/dpt14.js +1 -1
- package/lib/knx/src/dptlib/dpt18.js +1 -1
- package/lib/knx/src/dptlib/dpt2.js +5 -3
- package/lib/knx/src/dptlib/dpt21.js +4 -2
- package/lib/knx/src/dptlib/dpt232.js +1 -1
- package/lib/knx/src/dptlib/dpt237.js +1 -1
- package/lib/knx/src/dptlib/dpt3.js +1 -1
- package/lib/knx/src/dptlib/dpt4.js +1 -1
- package/lib/knx/src/dptlib/dpt7.js +8 -1
- package/lib/projectImport.js +146 -48
- package/lib/projectImport.test.js +14 -7
- package/lib/tools.js +47 -26
- package/main.js +103 -104
- package/package.json +8 -20
- package/admin/exportGA.png +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable quotes */
|
|
1
2
|
"use strict";
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -15,25 +16,31 @@ const { utils } = require("@iobroker/testing");
|
|
|
15
16
|
const projectImport = require(__dirname + "/../lib/projectImport");
|
|
16
17
|
|
|
17
18
|
// eslint-disable-next-line no-useless-escape
|
|
18
|
-
const xml =
|
|
19
|
-
'<?xml version="1.0" encoding="utf-8" standalone="yes"?>\r\n<GroupAddress-Export xmlns="http://knx.org/xml/ga-export/01">\r\n <!--GroupRange:-->\r\n <!-- @Name: The name of the group range (1 to 255 characters)-->\r\n <!-- @RangeStart: The inclusive start address of the range as specified in free group address style-->\r\n <!-- @RangeEnd: The inclusive end address of the range as specified in free group address style-->\r\n <!-- @Description: The group ranges\' description if available-->\r\n <!--GroupAddress:-->\r\n <!-- @Name: The name of the group range (1 to 255 characters)-->\r\n <!-- @Address: The address as specified either in three-level (1/2/3 or two-level (1/3) or numeric (12345) or hexadecimal ($1Fa3 or 0x1fa3) group address value-->\r\n <!-- @Central: True if the group address has the Central flag set-->\r\n <!-- @Unfiltered: True if the group address has the Unfiltered flag set-->\r\n <!-- @Description: The group addresses\' description if available-->\r\n <!-- @DTPs: The Data Point Types associated with the group address if available, comma separated, e.g. \'1.001, 1.002\'-->\r\n <GroupRange Name="test" RangeStart="63488" RangeEnd="65535">\r\n <GroupRange Name="testin" RangeStart="63488" RangeEnd="63743">\r\n <GroupAddress Name="dpt1" Address="31/0/1" Description="dpt 1" DPTs="DPT-1" />\r\n <GroupAddress Name="dpt 2" Address="31/0/2" Description="dpt 2" DPTs="DPT-2" />\r\n <GroupAddress Name="dpt 3" Address="31/0/3" Description="dpt 3" DPTs="DPT-3" />\r\n <GroupAddress Name="dpt1.001" Address="31/0/4" Description="dpt 1" DPTs="DPST-1-1" />\r\n <GroupAddress Name="dpt 2.1" Address="31/0/5" Description="dpt 2" DPTs="DPST-2-1" />\r\n <GroupAddress Name="dpt3.007" Address="31/0/6" Description="dpt 3" DPTs="DPST-3-7" />\r\n <GroupAddress Name="dpt 4.001" Address="31/0/7" Description="dpt 4" DPTs="DPST-4-1" />\r\n <GroupAddress Name="dpt 5" Address="31/0/8" Description="dpt 5" DPTs="DPT-5" />\r\n <GroupAddress Name="dpt 6" Address="31/0/9" Description="dpt 6" DPTs="DPT-6" />\r\n <GroupAddress Name="dpt 7" Address="31/0/10" Description="dpt 7" DPTs="DPT-7" />\r\n <GroupAddress Name="dpt 8" Address="31/0/11" Description="dpt 8" DPTs="DPT-8" />\r\n <GroupAddress Name="dpt 9" Address="31/0/12" Description="dpt 9" DPTs="DPT-9" />\r\n <GroupAddress Name="dpt 10" Address="31/0/13" Description="dpt 10" DPTs="DPT-10" />\r\n <GroupAddress Name="dpt 11" Address="31/0/14" Description="dpt 11" DPTs="DPST-11-1" />\r\n <GroupAddress Name="dpt 12" Address="31/0/15" Description="dpt 12" DPTs="DPT-12" />\r\n <GroupAddress Name="dpt 13" Address="31/0/16" Description="dpt 13" DPTs="DPT-13" />\r\n <GroupAddress Name="dpt 14" Address="31/0/17" Description="dpt 14" DPTs="DPT-14" />\r\n <GroupAddress Name="dpt 15" Address="31/0/18" Description="dpt 15" DPTs="DPT-15" />\r\n <GroupAddress Name="dpt 16" Address="31/0/19" Description="dpt 16" DPTs="DPT-16" />\r\n <GroupAddress Name="dpt 17" Address="31/0/20" Description="dpt 17" DPTs="DPT-17" />\r\n <GroupAddress Name="dpt 18" Address="31/0/21" Description="dpt 18" DPTs="DPT-18" />\r\n <GroupAddress Name="dpt 19" Address="31/0/22" Description="dpt 19" DPTs="DPT-19" />\r\n <GroupAddress Name="dpt 20" Address="31/0/23" Description="dpt 20" DPTs="DPT-20" />\r\n <GroupAddress Name="dpt 21" Address="31/0/24" Description="dpt 21" DPTs="DPT-21" />\r\n <GroupAddress Name="dpt 22" Address="31/0/25" Description="dpt 22" DPTs="DPT-22" />\r\n <GroupAddress Name="dpt 22.1010" Address="31/0/26" Description="dpt 22" DPTs="DPST-22-1010" />\r\n <GroupAddress Name="dpt 29" Address="31/0/27" Description="dpt 29" DPTs="DPT-29" />\r\n <GroupAddress Name="dpt 23" Address="31/0/28" Description="dpt 23" DPTs="DPT-23" />\r\n <GroupAddress Name="dpt 29.010" Address="31/0/29" Description="dpt 29" DPTs="DPST-29-10" />\r\n <GroupAddress Name="dpt 25" Address="31/0/30" Description="dpt 25" DPTs="DPT-25" />\r\n <GroupAddress Name="dpt 26" Address="31/0/31" Description="dpt 26" DPTs="DPT-26" />\r\n <GroupAddress Name="dpt 27" Address="31/0/32" Description="dpt 27" DPTs="DPT-27" />\r\n <GroupAddress Name="dpt 30" Address="31/0/33" Description="dpt 30" DPTs="DPT-30" />\r\n <GroupAddress Name="dpt 206" Address="31/0/34" Description="dpt 206" DPTs="DPT-206" />\r\n <GroupAddress Name="dpt 217" Address="31/0/35" Description="dpt 217" DPTs="DPT-217" />\r\n <GroupAddress Name="dpt 219" Address="31/0/36" Description="dpt 219" DPTs="DPT-219" />\r\n <GroupAddress Name="dpt 222" Address="31/0/37" Description="dpt 222" DPTs="DPT-222" />\r\n <GroupAddress Name="dpt 225" Address="31/0/38" Description="dpt 225" DPTs="DPT-225" />\r\n <GroupAddress Name="dpt 229" Address="31/0/39" Description="dpt 229" DPTs="DPT-229" />\r\n <GroupAddress Name="dpt 230" Address="31/0/40" Description="dpt 230" DPTs="DPT-230" />\r\n <GroupAddress Name="dpt 232" Address="31/0/41" Description="dpt 232" DPTs="DPT-232" />\r\n <GroupAddress Name="dpt 234" Address="31/0/42" Description="dpt 234" DPTs="DPT-234" />\r\n <GroupAddress Name="dpt 235" Address="31/0/43" Description="dpt 235" DPTs="DPT-235" />\r\n <GroupAddress Name="dpt 236" Address="31/0/44" Description="dpt 236" DPTs="DPT-236" />\r\n <GroupAddress Name="dpt 237" Address="31/0/45" Description="dpt 237" DPTs="DPT-237" />\r\n <GroupAddress Name="dpt 238" Address="31/0/46" Description="dpt 238" DPTs="DPT-238" />\r\n <GroupAddress Name="dpt 240" Address="31/0/47" Description="dpt 240" DPTs="DPT-240" />\r\n <GroupAddress Name="dpt 242" Address="31/0/48" Description="dpt 242" DPTs="DPT-242" />\r\n <GroupAddress Name="dpt 244" Address="31/0/49" Description="dpt 244" DPTs="DPT-244" />\r\n <GroupAddress Name="dpt 245" Address="31/0/50" Description="dpt 245" DPTs="DPT-245" />\r\n <GroupAddress Name="dpt 246" Address="31/0/51" Description="dpt 246" DPTs="DPT-246" />\r\n <GroupAddress Name="dpt 249" Address="31/0/52" Description="dpt 249" DPTs="DPT-249" />\r\n <GroupAddress Name="dpt 250" Address="31/0/53" Description="dpt 250" DPTs="DPT-250" />\r\n <GroupAddress Name="dpt 251" Address="31/0/54" Description="dpt 251" DPTs="DPT-251" />\r\n <GroupAddress Name="dpt 252" Address="31/0/55" Description="dpt 252" DPTs="DPT-252" />\r\n <GroupAddress Name="dpt 254" Address="31/0/56" Description="dpt 254" DPTs="DPT-254" />\r\n <GroupAddress Name="dpt 255" Address="31/0/57" Description="dpt 255" DPTs="DPT-255" />\r\n <GroupAddress Name="dpt 275" Address="31/0/58" Description="dpt 275" DPTs="DPT-275" />\r\n <GroupAddress Name="dpt 275.100" Address="31/0/59" Description="dpt 275" DPTs="DPST-275-100" />\r\n </GroupRange>\r\n <GroupRange Name="testout" RangeStart="63744" RangeEnd="63999">\r\n <GroupAddress Name="dpt1" Address="31/1/0" Description="dpt 1" DPTs="DPT-1" />\r\n <GroupAddress Name="dpt 2" Address="31/1/1" Description="dpt 2" DPTs="DPT-2" />\r\n <GroupAddress Name="dpt 3" Address="31/1/2" Description="dpt 3" DPTs="DPT-3" />\r\n <GroupAddress Name="dpt1.001" Address="31/1/3" Description="dpt 1" DPTs="DPST-1-1" />\r\n <GroupAddress Name="dpt 2.1" Address="31/1/4" Description="dpt 2" DPTs="DPST-2-1" />\r\n <GroupAddress Name="dpt3.007" Address="31/1/5" Description="dpt 3" DPTs="DPST-3-7" />\r\n <GroupAddress Name="dpt 4.001" Address="31/1/6" Description="dpt 4" DPTs="DPST-4-1" />\r\n <GroupAddress Name="dpt 5" Address="31/1/7" Description="dpt 5" DPTs="DPT-5" />\r\n <GroupAddress Name="dpt 6" Address="31/1/8" Description="dpt 6" DPTs="DPT-6" />\r\n <GroupAddress Name="dpt 7" Address="31/1/9" Description="dpt 7" DPTs="DPT-7" />\r\n <GroupAddress Name="dpt 8" Address="31/1/10" Description="dpt 8" DPTs="DPT-8" />\r\n <GroupAddress Name="dpt 9" Address="31/1/11" Description="dpt 9" DPTs="DPT-9" />\r\n <GroupAddress Name="dpt 10" Address="31/1/12" Description="dpt 10" DPTs="DPT-10" />\r\n <GroupAddress Name="dpt 11" Address="31/1/13" Description="dpt 11" DPTs="DPST-11-1" />\r\n <GroupAddress Name="dpt 12" Address="31/1/14" Description="dpt 12" DPTs="DPT-12" />\r\n <GroupAddress Name="dpt 13" Address="31/1/15" Description="dpt 13" DPTs="DPT-13" />\r\n <GroupAddress Name="dpt 14" Address="31/1/16" Description="dpt 14" DPTs="DPT-14" />\r\n <GroupAddress Name="dpt 15" Address="31/1/17" Description="dpt 15" DPTs="DPT-15" />\r\n <GroupAddress Name="dpt 16" Address="31/1/18" Description="dpt 16" DPTs="DPT-16" />\r\n <GroupAddress Name="dpt 17" Address="31/1/19" Description="dpt 17" DPTs="DPT-17" />\r\n <GroupAddress Name="dpt 18" Address="31/1/20" Description="dpt 18" DPTs="DPT-18" />\r\n <GroupAddress Name="dpt 19" Address="31/1/21" Description="dpt 19" DPTs="DPT-19" />\r\n <GroupAddress Name="dpt 20" Address="31/1/22" Description="dpt 20" DPTs="DPT-20" />\r\n <GroupAddress Name="dpt 21" Address="31/1/23" Description="dpt 21" DPTs="DPT-21" />\r\n <GroupAddress Name="dpt 22" Address="31/1/24" Description="dpt 22" DPTs="DPT-22" />\r\n <GroupAddress Name="dpt 22.1010" Address="31/1/25" Description="dpt 22" DPTs="DPST-22-1010" />\r\n <GroupAddress Name="dpt 29" Address="31/1/26" Description="dpt 29" DPTs="DPT-29" />\r\n <GroupAddress Name="dpt 23" Address="31/1/27" Description="dpt 23" DPTs="DPT-23" />\r\n <GroupAddress Name="dpt 29.010" Address="31/1/28" Description="dpt 29" DPTs="DPST-29-10" />\r\n <GroupAddress Name="dpt 25" Address="31/1/29" Description="dpt 25" DPTs="DPT-25" />\r\n <GroupAddress Name="dpt 26" Address="31/1/30" Description="dpt 26" DPTs="DPT-26" />\r\n <GroupAddress Name="dpt 27" Address="31/1/31" Description="dpt 27" DPTs="DPT-27" />\r\n <GroupAddress Name="dpt 30" Address="31/1/32" Description="dpt 30" DPTs="DPT-30" />\r\n <GroupAddress Name="dpt 206" Address="31/1/33" Description="dpt 206" DPTs="DPT-206" />\r\n <GroupAddress Name="dpt 217" Address="31/1/34" Description="dpt 217" DPTs="DPT-217" />\r\n <GroupAddress Name="dpt 219" Address="31/1/35" Description="dpt 219" DPTs="DPT-219" />\r\n <GroupAddress Name="dpt 222" Address="31/1/36" Description="dpt 222" DPTs="DPT-222" />\r\n <GroupAddress Name="dpt 225" Address="31/1/37" Description="dpt 225" DPTs="DPT-225" />\r\n <GroupAddress Name="dpt 229" Address="31/1/38" Description="dpt 229" DPTs="DPT-229" />\r\n <GroupAddress Name="dpt 230" Address="31/1/39" Description="dpt 230" DPTs="DPT-230" />\r\n <GroupAddress Name="dpt 232" Address="31/1/40" Description="dpt 232" DPTs="DPT-232" />\r\n <GroupAddress Name="dpt 234" Address="31/1/41" Description="dpt 234" DPTs="DPT-234" />\r\n <GroupAddress Name="dpt 235" Address="31/1/42" Description="dpt 235" DPTs="DPT-235" />\r\n <GroupAddress Name="dpt 236" Address="31/1/43" Description="dpt 236" DPTs="DPT-236" />\r\n <GroupAddress Name="dpt 237" Address="31/1/44" Description="dpt 237" DPTs="DPT-237" />\r\n <GroupAddress Name="dpt 238" Address="31/1/45" Description="dpt 238" DPTs="DPT-238" />\r\n <GroupAddress Name="dpt 240" Address="31/1/46" Description="dpt 240" DPTs="DPT-240" />\r\n <GroupAddress Name="dpt 242" Address="31/1/47" Description="dpt 242" DPTs="DPT-242" />\r\n <GroupAddress Name="dpt 244" Address="31/1/48" Description="dpt 244" DPTs="DPT-244" />\r\n <GroupAddress Name="dpt 245" Address="31/1/49" Description="dpt 245" DPTs="DPT-245" />\r\n <GroupAddress Name="dpt 246" Address="31/1/50" Description="dpt 246" DPTs="DPT-246" />\r\n <GroupAddress Name="dpt 249" Address="31/1/51" Description="dpt 249" DPTs="DPT-249" />\r\n <GroupAddress Name="dpt 250" Address="31/1/52" Description="dpt 250" DPTs="DPT-250" />\r\n <GroupAddress Name="dpt 251" Address="31/1/53" Description="dpt 251" DPTs="DPT-251" />\r\n <GroupAddress Name="dpt 252" Address="31/1/54" Description="dpt 252" DPTs="DPT-252" />\r\n <GroupAddress Name="dpt 254" Address="31/1/55" Description="dpt 254" DPTs="DPT-254" />\r\n <GroupAddress Name="dpt 255" Address="31/1/56" Description="dpt 255" DPTs="DPT-255" />\r\n <GroupAddress Name="dpt 275" Address="31/1/57" Description="dpt 275" DPTs="DPT-275" />\r\n <GroupAddress Name="dpt 275.100" Address="31/1/58" Description="dpt 275" DPTs="DPST-275-100" />\r\n </GroupRange>\r\n </GroupRange>\r\n</GroupAddress-Export>';
|
|
20
|
-
const expectedfncRes =
|
|
21
|
-
'[{"_id":"test.testin.dpt1","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/0/1","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1","valuetype":"basic"}},{"_id":"test.testin.dpt_2","type":"state","common":{"desc":"Basetype: 1-bit value with priority","name":"dpt 2","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/2","answer_groupValueResponse":false,"autoread":true,"bitlength":2,"dpt":"DPT2","valuetype":"composite"}},{"_id":"test.testin.dpt_3","type":"state","common":{"desc":"Basetype: 4-bit relative dimming control","name":"dpt 3","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/3","answer_groupValueResponse":false,"autoread":true,"bitlength":4,"dpt":"DPT3","valuetype":"composite"}},{"_id":"test.testin.dpt1_001","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1.001","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/0/4","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.001","valuetype":"basic"}},{"_id":"test.testin.dpt_2_1","type":"state","common":{"desc":"Basetype: 1-bit value with priority","name":"dpt 2.1","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/5","answer_groupValueResponse":false,"autoread":true,"bitlength":2,"dpt":"DPT2.001","valuetype":"composite"}},{"_id":"test.testin.dpt3_007","type":"state","common":{"desc":"Basetype: 4-bit relative dimming control","name":"dpt3.007","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/6","answer_groupValueResponse":false,"autoread":true,"bitlength":4,"dpt":"DPT3.007","valuetype":"composite"}},{"_id":"test.testin.dpt_4_001","type":"state","common":{"desc":"Basetype: 8-bit character","name":"dpt 4.001","read":true,"role":"text","type":"string","write":true},"native":{"address":"31/0/7","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT4.001","valuetype":"basic"}},{"_id":"test.testin.dpt_5","type":"state","common":{"desc":"Basetype: 8-bit unsigned value","min":0,"max":255,"name":"dpt 5","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/8","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT5","valuetype":"basic"}},{"_id":"test.testin.dpt_6","type":"state","common":{"desc":"Basetype: 8-bit signed value","min":-128,"max":127,"name":"dpt 6","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/9","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT6","valuetype":"basic"}},{"_id":"test.testin.dpt_7","type":"state","common":{"desc":"Basetype: 16-bit unsigned value","min":0,"max":65535,"name":"dpt 7","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/10","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT7","valuetype":"basic"}},{"_id":"test.testin.dpt_8","type":"state","common":{"desc":"Basetype: 16-bit signed value","min":-32768,"max":32767,"name":"dpt 8","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/11","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT8","valuetype":"basic"}},{"_id":"test.testin.dpt_9","type":"state","common":{"desc":"Basetype: 16-bit floating point value","name":"dpt 9","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/12","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT9","valuetype":"basic"}},{"_id":"test.testin.dpt_10","type":"state","common":{"desc":"Basetype: day of week + time of day","name":"dpt 10","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/0/13","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT10","valuetype":"basic"}},{"_id":"test.testin.dpt_11","type":"state","common":{"desc":"Basetype: 3-byte date value","name":"dpt 11","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/0/14","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT11.001","valuetype":"composite"}},{"_id":"test.testin.dpt_12","type":"state","common":{"desc":"Basetype: 4-byte unsigned value","min":0,"max":4294967295,"name":"dpt 12","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/15","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT12","valuetype":"basic"}},{"_id":"test.testin.dpt_13","type":"state","common":{"desc":"Basetype: 4-byte signed value","min":-2147483648,"max":2147483647,"name":"dpt 13","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/16","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT13","valuetype":"basic"}},{"_id":"test.testin.dpt_14","type":"state","common":{"desc":"Basetype: 32-bit floating point value","name":"dpt 14","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/17","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT14","valuetype":"basic"}},{"_id":"test.testin.dpt_15","type":"state","common":{"desc":"Basetype: 4-byte access control data","min":0,"max":4294967295,"name":"dpt 15","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/18","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT15","valuetype":"basic"}},{"_id":"test.testin.dpt_16","type":"state","common":{"desc":"Basetype: 14-character string","name":"dpt 16","read":true,"role":"text","type":"string","write":true},"native":{"address":"31/0/19","answer_groupValueResponse":false,"autoread":true,"bitlength":112,"dpt":"DPT16","valuetype":"basic"}},{"_id":"test.testin.dpt_17","type":"state","common":{"desc":"Basetype: scene number","min":0,"max":255,"name":"dpt 17","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/20","answer_groupValueResponse":false,"autoread":false,"bitlength":8,"dpt":"DPT17","valuetype":"basic"}},{"_id":"test.testin.dpt_18","type":"state","common":{"desc":"Basetype: 8-bit Scene Activate/Learn + number","name":"dpt 18","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/21","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT18","valuetype":"composite"}},{"_id":"test.testin.dpt_19","type":"state","common":{"desc":"Basetype: 8-byte Date+Time","name":"dpt 19","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/0/22","answer_groupValueResponse":false,"autoread":true,"bitlength":64,"dpt":"DPT19","valuetype":"composite"}},{"_id":"test.testin.dpt_20","type":"state","common":{"desc":"Basetype: 1-byte","min":null,"name":"dpt 20","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/23","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT20","valuetype":"basic"}},{"_id":"test.testin.dpt_21","type":"state","common":{"desc":"Basetype: 1-byte","name":"dpt 21","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/24","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT21","valuetype":"composite"}},{"_id":"test.testin.dpt_22","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 22","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/25","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT22"}},{"_id":"test.testin.dpt_22_1010","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 22.1010","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/26","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT22.1010"}},{"_id":"test.testin.dpt_29","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 29","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/27","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT29"}},{"_id":"test.testin.dpt_23","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 23","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/28","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT23"}},{"_id":"test.testin.dpt_29_010","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 29.010","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/29","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT29.010"}},{"_id":"test.testin.dpt_25","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 25","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/30","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT25"}},{"_id":"test.testin.dpt_26","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 26","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/31","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT26"}},{"_id":"test.testin.dpt_27","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 27","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/32","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT27"}},{"_id":"test.testin.dpt_30","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 30","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/33","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT30"}},{"_id":"test.testin.dpt_206","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 206","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/34","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT206"}},{"_id":"test.testin.dpt_217","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 217","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/35","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT217"}},{"_id":"test.testin.dpt_219","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 219","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/36","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT219"}},{"_id":"test.testin.dpt_222","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 222","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/37","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT222"}},{"_id":"test.testin.dpt_225","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 225","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/38","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT225"}},{"_id":"test.testin.dpt_229","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 229","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/39","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT229"}},{"_id":"test.testin.dpt_230","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 230","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/40","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT230"}},{"_id":"test.testin.dpt_232","type":"state","common":{"desc":"Basetype: RGB array","name":"dpt 232","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/41","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT232","valuetype":"composite"}},{"_id":"test.testin.dpt_234","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 234","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/42","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT234"}},{"_id":"test.testin.dpt_235","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 235","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/43","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT235"}},{"_id":"test.testin.dpt_236","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 236","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/44","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT236"}},{"_id":"test.testin.dpt_237","type":"state","common":{"desc":"Basetype: 2-byte","name":"dpt 237","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/45","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT237","valuetype":"composite"}},{"_id":"test.testin.dpt_238","type":"state","common":{"desc":"Basetype: 1-byte","min":null,"name":"dpt 238","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/46","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT238","valuetype":"basic"}},{"_id":"test.testin.dpt_240","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 240","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/47","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT240"}},{"_id":"test.testin.dpt_242","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 242","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/48","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT242"}},{"_id":"test.testin.dpt_244","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 244","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/49","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT244"}},{"_id":"test.testin.dpt_245","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 245","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/50","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT245"}},{"_id":"test.testin.dpt_246","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 246","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/51","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT246"}},{"_id":"test.testin.dpt_249","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 249","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/52","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT249"}},{"_id":"test.testin.dpt_250","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 250","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/53","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT250"}},{"_id":"test.testin.dpt_251","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 251","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/54","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT251"}},{"_id":"test.testin.dpt_252","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 252","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/55","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT252"}},{"_id":"test.testin.dpt_254","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 254","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/56","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT254"}},{"_id":"test.testin.dpt_255","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 255","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/57","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT255"}},{"_id":"test.testin.dpt_275","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 275","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/58","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT275"}},{"_id":"test.testin.dpt_275_100","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 275.100","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/59","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT275.100"}},{"_id":"test.testout.dpt1","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/1/0","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1","valuetype":"basic"}},{"_id":"test.testout.dpt_2","type":"state","common":{"desc":"Basetype: 1-bit value with priority","name":"dpt 2","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/1","answer_groupValueResponse":false,"autoread":true,"bitlength":2,"dpt":"DPT2","valuetype":"composite"}},{"_id":"test.testout.dpt_3","type":"state","common":{"desc":"Basetype: 4-bit relative dimming control","name":"dpt 3","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/2","answer_groupValueResponse":false,"autoread":true,"bitlength":4,"dpt":"DPT3","valuetype":"composite"}},{"_id":"test.testout.dpt1_001","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1.001","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/1/3","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.001","valuetype":"basic"}},{"_id":"test.testout.dpt_2_1","type":"state","common":{"desc":"Basetype: 1-bit value with priority","name":"dpt 2.1","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/4","answer_groupValueResponse":false,"autoread":true,"bitlength":2,"dpt":"DPT2.001","valuetype":"composite"}},{"_id":"test.testout.dpt3_007","type":"state","common":{"desc":"Basetype: 4-bit relative dimming control","name":"dpt3.007","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/5","answer_groupValueResponse":false,"autoread":true,"bitlength":4,"dpt":"DPT3.007","valuetype":"composite"}},{"_id":"test.testout.dpt_4_001","type":"state","common":{"desc":"Basetype: 8-bit character","name":"dpt 4.001","read":true,"role":"text","type":"string","write":true},"native":{"address":"31/1/6","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT4.001","valuetype":"basic"}},{"_id":"test.testout.dpt_5","type":"state","common":{"desc":"Basetype: 8-bit unsigned value","min":0,"max":255,"name":"dpt 5","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/7","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT5","valuetype":"basic"}},{"_id":"test.testout.dpt_6","type":"state","common":{"desc":"Basetype: 8-bit signed value","min":-128,"max":127,"name":"dpt 6","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/8","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT6","valuetype":"basic"}},{"_id":"test.testout.dpt_7","type":"state","common":{"desc":"Basetype: 16-bit unsigned value","min":0,"max":65535,"name":"dpt 7","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/9","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT7","valuetype":"basic"}},{"_id":"test.testout.dpt_8","type":"state","common":{"desc":"Basetype: 16-bit signed value","min":-32768,"max":32767,"name":"dpt 8","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/10","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT8","valuetype":"basic"}},{"_id":"test.testout.dpt_9","type":"state","common":{"desc":"Basetype: 16-bit floating point value","name":"dpt 9","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/11","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT9","valuetype":"basic"}},{"_id":"test.testout.dpt_10","type":"state","common":{"desc":"Basetype: day of week + time of day","name":"dpt 10","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/1/12","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT10","valuetype":"basic"}},{"_id":"test.testout.dpt_11","type":"state","common":{"desc":"Basetype: 3-byte date value","name":"dpt 11","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/1/13","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT11.001","valuetype":"composite"}},{"_id":"test.testout.dpt_12","type":"state","common":{"desc":"Basetype: 4-byte unsigned value","min":0,"max":4294967295,"name":"dpt 12","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/14","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT12","valuetype":"basic"}},{"_id":"test.testout.dpt_13","type":"state","common":{"desc":"Basetype: 4-byte signed value","min":-2147483648,"max":2147483647,"name":"dpt 13","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/15","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT13","valuetype":"basic"}},{"_id":"test.testout.dpt_14","type":"state","common":{"desc":"Basetype: 32-bit floating point value","name":"dpt 14","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/16","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT14","valuetype":"basic"}},{"_id":"test.testout.dpt_15","type":"state","common":{"desc":"Basetype: 4-byte access control data","min":0,"max":4294967295,"name":"dpt 15","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/17","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT15","valuetype":"basic"}},{"_id":"test.testout.dpt_16","type":"state","common":{"desc":"Basetype: 14-character string","name":"dpt 16","read":true,"role":"text","type":"string","write":true},"native":{"address":"31/1/18","answer_groupValueResponse":false,"autoread":true,"bitlength":112,"dpt":"DPT16","valuetype":"basic"}},{"_id":"test.testout.dpt_17","type":"state","common":{"desc":"Basetype: scene number","min":0,"max":255,"name":"dpt 17","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/19","answer_groupValueResponse":false,"autoread":false,"bitlength":8,"dpt":"DPT17","valuetype":"basic"}},{"_id":"test.testout.dpt_18","type":"state","common":{"desc":"Basetype: 8-bit Scene Activate/Learn + number","name":"dpt 18","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/20","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT18","valuetype":"composite"}},{"_id":"test.testout.dpt_19","type":"state","common":{"desc":"Basetype: 8-byte Date+Time","name":"dpt 19","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/1/21","answer_groupValueResponse":false,"autoread":true,"bitlength":64,"dpt":"DPT19","valuetype":"composite"}},{"_id":"test.testout.dpt_20","type":"state","common":{"desc":"Basetype: 1-byte","min":null,"name":"dpt 20","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/22","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT20","valuetype":"basic"}},{"_id":"test.testout.dpt_21","type":"state","common":{"desc":"Basetype: 1-byte","name":"dpt 21","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/23","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT21","valuetype":"composite"}},{"_id":"test.testout.dpt_22","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 22","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/24","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT22"}},{"_id":"test.testout.dpt_22_1010","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 22.1010","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/25","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT22.1010"}},{"_id":"test.testout.dpt_29","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 29","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/26","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT29"}},{"_id":"test.testout.dpt_23","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 23","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/27","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT23"}},{"_id":"test.testout.dpt_29_010","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 29.010","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/28","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT29.010"}},{"_id":"test.testout.dpt_25","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 25","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/29","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT25"}},{"_id":"test.testout.dpt_26","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 26","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/30","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT26"}},{"_id":"test.testout.dpt_27","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 27","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/31","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT27"}},{"_id":"test.testout.dpt_30","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 30","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/32","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT30"}},{"_id":"test.testout.dpt_206","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 206","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/33","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT206"}},{"_id":"test.testout.dpt_217","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 217","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/34","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT217"}},{"_id":"test.testout.dpt_219","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 219","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/35","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT219"}},{"_id":"test.testout.dpt_222","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 222","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/36","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT222"}},{"_id":"test.testout.dpt_225","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 225","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/37","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT225"}},{"_id":"test.testout.dpt_229","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 229","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/38","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT229"}},{"_id":"test.testout.dpt_230","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 230","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/39","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT230"}},{"_id":"test.testout.dpt_232","type":"state","common":{"desc":"Basetype: RGB array","name":"dpt 232","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/40","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT232","valuetype":"composite"}},{"_id":"test.testout.dpt_234","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 234","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/41","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT234"}},{"_id":"test.testout.dpt_235","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 235","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/42","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT235"}},{"_id":"test.testout.dpt_236","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 236","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/43","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT236"}},{"_id":"test.testout.dpt_237","type":"state","common":{"desc":"Basetype: 2-byte","name":"dpt 237","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/44","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT237","valuetype":"composite"}},{"_id":"test.testout.dpt_238","type":"state","common":{"desc":"Basetype: 1-byte","min":null,"name":"dpt 238","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/45","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT238","valuetype":"basic"}},{"_id":"test.testout.dpt_240","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 240","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/46","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT240"}},{"_id":"test.testout.dpt_242","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 242","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/47","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT242"}},{"_id":"test.testout.dpt_244","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 244","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/48","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT244"}},{"_id":"test.testout.dpt_245","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 245","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/49","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT245"}},{"_id":"test.testout.dpt_246","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 246","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/50","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT246"}},{"_id":"test.testout.dpt_249","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 249","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/51","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT249"}},{"_id":"test.testout.dpt_250","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 250","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/52","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT250"}},{"_id":"test.testout.dpt_251","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 251","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/53","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT251"}},{"_id":"test.testout.dpt_252","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 252","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/54","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT252"}},{"_id":"test.testout.dpt_254","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 254","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/55","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT254"}},{"_id":"test.testout.dpt_255","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 255","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/56","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT255"}},{"_id":"test.testout.dpt_275","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 275","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/57","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT275"}},{"_id":"test.testout.dpt_275_100","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 275.100","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/58","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT275.100"}}]';
|
|
19
|
+
const xml = '"<GroupRange Name=\"test\" RangeStart=\"63488\" RangeEnd=\"65535\"> <GroupRange Name=\"testin\" RangeStart=\"63488\" RangeEnd=\"63743\"> <GroupAddress Name=\"dpt1.024\" Address=\"31/0/0\" Description=\"dpt 1\" DPTs=\"DPST-1-24\" /> <GroupAddress Name=\"dpt1\" Address=\"31/0/1\" Description=\"dpt 1\" DPTs=\"DPST-1-6\" /> <GroupAddress Name=\"dpt 2\" Address=\"31/0/2\" Description=\"dpt 2\" DPTs=\"DPST-2-1\" /> <GroupAddress Name=\"dpt 3\" Address=\"31/0/3\" Description=\"dpt 3\" DPTs=\"DPST-3-7\" /> <GroupAddress Name=\"dpt1.001\" Address=\"31/0/4\" Description=\"dpt 1\" DPTs=\"DPST-1-1\" /> <GroupAddress Name=\"dpt 2.1\" Address=\"31/0/5\" Description=\"dpt 2\" DPTs=\"DPST-2-1\" /> <GroupAddress Name=\"dpt3.007\" Address=\"31/0/6\" Description=\"dpt 3\" DPTs=\"DPST-3-7\" /> <GroupAddress Name=\"dpt 4.001\" Address=\"31/0/7\" Description=\"dpt 4\" DPTs=\"DPST-4-1\" /> <GroupAddress Name=\"dpt 5.001\" Address=\"31/0/8\" Description=\"dpt 5\" DPTs=\"DPST-5-1\" /> <GroupAddress Name=\"dpt 6\" Address=\"31/0/9\" Description=\"dpt 6\" DPTs=\"DPST-6-1\" /> <GroupAddress Name=\"dpt 7\" Address=\"31/0/10\" Description=\"dpt 7\" DPTs=\"DPST-7-1\" /> <GroupAddress Name=\"dpt 8\" Address=\"31/0/11\" Description=\"dpt 8\" DPTs=\"DPST-8-1\" /> <GroupAddress Name=\"dpt 9\" Address=\"31/0/12\" Description=\"dpt 9\" DPTs=\"DPST-9-1\" /> <GroupAddress Name=\"dpt 10\" Address=\"31/0/13\" Description=\"dpt 10\" DPTs=\"DPST-10-1\" /> <GroupAddress Name=\"dpt 11.001\" Address=\"31/0/14\" Description=\"dpt 11.001\" DPTs=\"DPST-11-1\" /> <GroupAddress Name=\"dpt 12\" Address=\"31/0/15\" Description=\"dpt 12\" DPTs=\"DPST-12-1\" /> <GroupAddress Name=\"dpt 13\" Address=\"31/0/16\" Description=\"dpt 13\" DPTs=\"DPST-13-1\" /> <GroupAddress Name=\"dpt 14\" Address=\"31/0/17\" Description=\"dpt 14\" DPTs=\"DPST-14-0\" /> <GroupAddress Name=\"dpt 15\" Address=\"31/0/18\" Description=\"dpt 15\" DPTs=\"DPST-15-0\" /> <GroupAddress Name=\"dpt 16\" Address=\"31/0/19\" Description=\"dpt 16\" DPTs=\"DPST-16-0\" /> <GroupAddress Name=\"dpt 17\" Address=\"31/0/20\" Description=\"dpt 17\" DPTs=\"DPST-17-1\" /> <GroupAddress Name=\"dpt 18\" Address=\"31/0/21\" Description=\"dpt 18\" DPTs=\"DPST-18-1\" /> <GroupAddress Name=\"dpt 19\" Address=\"31/0/22\" Description=\"dpt 19\" DPTs=\"DPST-19-1\" /> <GroupAddress Name=\"dpt 20\" Address=\"31/0/23\" Description=\"dpt 20\" DPTs=\"DPST-20-1\" /> <GroupAddress Name=\"dpt 21\" Address=\"31/0/24\" Description=\"dpt 21\" DPTs=\"DPST-21-1\" /> <GroupAddress Name=\"dpt 22\" Address=\"31/0/25\" Description=\"dpt 22\" DPTs=\"DPST-22-100\" /> <GroupAddress Name=\"dpt 29\" Address=\"31/0/27\" Description=\"dpt 29\" DPTs=\"DPST-29-11\" /> <GroupAddress Name=\"dpt 23\" Address=\"31/0/28\" Description=\"dpt 23\" DPTs=\"DPST-23-3\" /> <GroupAddress Name=\"dpt 29.010\" Address=\"31/0/29\" Description=\"dpt 29\" DPTs=\"DPST-29-10\" /> <GroupAddress Name=\"dpt 25\" Address=\"31/0/30\" Description=\"dpt 25\" DPTs=\"DPST-25-1000\" /> <GroupAddress Name=\"dpt 26\" Address=\"31/0/31\" Description=\"dpt 26\" DPTs=\"DPST-26-1\" /> <GroupAddress Name=\"dpt 27\" Address=\"31/0/32\" Description=\"dpt 27\" DPTs=\"DPST-27-1\" /> <GroupAddress Name=\"dpt 30\" Address=\"31/0/33\" Description=\"dpt 30\" DPTs=\"DPST-30-1010\" /> <GroupAddress Name=\"dpt 206\" Address=\"31/0/34\" Description=\"dpt 206\" DPTs=\"DPST-206-102\" /> <GroupAddress Name=\"dpt 217\" Address=\"31/0/35\" Description=\"dpt 217\" DPTs=\"DPST-217-1\" /> <GroupAddress Name=\"dpt 219\" Address=\"31/0/36\" Description=\"dpt 219\" DPTs=\"DPST-219-1\" /> <GroupAddress Name=\"dpt 222\" Address=\"31/0/37\" Description=\"dpt 222\" DPTs=\"DPST-222-100\" /> <GroupAddress Name=\"dpt 225\" Address=\"31/0/38\" Description=\"dpt 225\" DPTs=\"DPST-225-1\" /> <GroupAddress Name=\"dpt 229\" Address=\"31/0/39\" Description=\"dpt 229\" DPTs=\"DPST-229-1\" /> <GroupAddress Name=\"dpt 230\" Address=\"31/0/40\" Description=\"dpt 230\" DPTs=\"DPST-230-1000\" /> <GroupAddress Name=\"dpt 232\" Address=\"31/0/41\" Description=\"dpt 232\" DPTs=\"DPST-232-600\" /> <GroupAddress Name=\"dpt 234\" Address=\"31/0/42\" Description=\"dpt 234\" DPTs=\"DPST-234-1\" /> <GroupAddress Name=\"dpt 235\" Address=\"31/0/43\" Description=\"dpt 235\" DPTs=\"DPST-235-1\" /> <GroupAddress Name=\"dpt 236\" Address=\"31/0/44\" Description=\"dpt 236\" DPTs=\"DPST-236-1\" /> <GroupAddress Name=\"dpt 237\" Address=\"31/0/45\" Description=\"dpt 237\" DPTs=\"DPST-237-600\" /> <GroupAddress Name=\"dpt 238\" Address=\"31/0/46\" Description=\"dpt 238\" DPTs=\"DPST-238-600\" /> <GroupAddress Name=\"dpt 240\" Address=\"31/0/47\" Description=\"dpt 240\" DPTs=\"DPST-240-800\" /> <GroupAddress Name=\"dpt 242\" Address=\"31/0/48\" Description=\"dpt 242\" DPTs=\"DPST-242-600\" /> <GroupAddress Name=\"dpt 244\" Address=\"31/0/49\" Description=\"dpt 244\" DPTs=\"DPST-244-600\" /> <GroupAddress Name=\"dpt 245\" Address=\"31/0/50\" Description=\"dpt 245\" DPTs=\"DPST-245-600\" /> <GroupAddress Name=\"dpt 246\" Address=\"31/0/51\" Description=\"dpt 246\" DPTs=\"DPST-246-600\" /> <GroupAddress Name=\"dpt 249\" Address=\"31/0/52\" Description=\"dpt 249\" DPTs=\"DPST-249-600\" /> <GroupAddress Name=\"dpt 250\" Address=\"31/0/53\" Description=\"dpt 250\" DPTs=\"DPST-250-600\" /> <GroupAddress Name=\"dpt 251\" Address=\"31/0/54\" Description=\"dpt 251\" DPTs=\"DPST-251-600\" /> <GroupAddress Name=\"dpt 252\" Address=\"31/0/55\" Description=\"dpt 252\" DPTs=\"DPST-252-600\" /> <GroupAddress Name=\"dpt 255\" Address=\"31/0/56\" Description=\"dpt 255\" DPTs=\"DPST-255-1\" /> <GroupAddress Name=\"dpt 275\" Address=\"31/0/57\" Description=\"dpt 275\" DPTs=\"DPST-275-101\" /> <GroupAddress Name=\"dpt 275.100\" Address=\"31/0/58\" Description=\"dpt 275\" DPTs=\"DPST-275-100\" /> <GroupAddress Name=\"dpt1_status\" Address=\"31/0/59\" Description=\"dpt 1\" DPTs=\"DPST-1-1\" /> <GroupAddress Name=\"dpt 5\" Address=\"31/0/60\" Description=\"dpt 5\" DPTs=\"DPST-5-5\" /> <GroupAddress Name=\"ohne\" Address=\"31/0/61\" DPTs=\"DPST-1-5\" /> </GroupRange> <GroupRange Name=\"testout\" RangeStart=\"63744\" RangeEnd=\"63999\"> <GroupAddress Name=\"dpt1.024\" Address=\"31/1/0\" Description=\"dpt 1\" DPTs=\"DPST-1-24\" /> <GroupAddress Name=\"dpt1\" Address=\"31/1/1\" Description=\"dpt 1\" DPTs=\"DPST-1-6\" /> <GroupAddress Name=\"dpt 2\" Address=\"31/1/2\" Description=\"dpt 2\" DPTs=\"DPST-2-1\" /> <GroupAddress Name=\"dpt 3\" Address=\"31/1/3\" Description=\"dpt 3\" DPTs=\"DPST-3-7\" /> <GroupAddress Name=\"dpt1.001\" Address=\"31/1/4\" Description=\"dpt 1\" DPTs=\"DPST-1-1\" /> <GroupAddress Name=\"dpt 2.1\" Address=\"31/1/5\" Description=\"dpt 2\" DPTs=\"DPST-2-1\" /> <GroupAddress Name=\"dpt3.007\" Address=\"31/1/6\" Description=\"dpt 3\" DPTs=\"DPST-3-7\" /> <GroupAddress Name=\"dpt 4.001\" Address=\"31/1/7\" Description=\"dpt 4\" DPTs=\"DPST-4-1\" /> <GroupAddress Name=\"dpt 5.001\" Address=\"31/1/8\" Description=\"dpt 5\" DPTs=\"DPST-5-1\" /> <GroupAddress Name=\"dpt 6\" Address=\"31/1/9\" Description=\"dpt 6\" DPTs=\"DPST-6-1\" /> <GroupAddress Name=\"dpt 7\" Address=\"31/1/10\" Description=\"dpt 7\" DPTs=\"DPST-7-1\" /> <GroupAddress Name=\"dpt 8\" Address=\"31/1/11\" Description=\"dpt 8\" DPTs=\"DPST-8-1\" /> <GroupAddress Name=\"dpt 9\" Address=\"31/1/12\" Description=\"dpt 9\" DPTs=\"DPST-9-1\" /> <GroupAddress Name=\"dpt 10\" Address=\"31/1/13\" Description=\"dpt 10\" DPTs=\"DPST-10-1\" /> <GroupAddress Name=\"dpt 11.001\" Address=\"31/1/14\" Description=\"dpt 11.001\" DPTs=\"DPST-11-1\" /> <GroupAddress Name=\"dpt 12\" Address=\"31/1/15\" Description=\"dpt 12\" DPTs=\"DPST-12-1\" /> <GroupAddress Name=\"dpt 13\" Address=\"31/1/16\" Description=\"dpt 13\" DPTs=\"DPST-13-1\" /> <GroupAddress Name=\"dpt 14\" Address=\"31/1/17\" Description=\"dpt 14\" DPTs=\"DPST-14-0\" /> <GroupAddress Name=\"dpt 15\" Address=\"31/1/18\" Description=\"dpt 15\" DPTs=\"DPST-15-0\" /> <GroupAddress Name=\"dpt 16\" Address=\"31/1/19\" Description=\"dpt 16\" DPTs=\"DPST-16-0\" /> <GroupAddress Name=\"dpt 17\" Address=\"31/1/20\" Description=\"dpt 17\" DPTs=\"DPST-17-1\" /> <GroupAddress Name=\"dpt 18\" Address=\"31/1/21\" Description=\"dpt 18\" DPTs=\"DPST-18-1\" /> <GroupAddress Name=\"dpt 19\" Address=\"31/1/22\" Description=\"dpt 19\" DPTs=\"DPST-19-1\" /> <GroupAddress Name=\"dpt 20\" Address=\"31/1/23\" Description=\"dpt 20\" DPTs=\"DPST-20-1\" /> <GroupAddress Name=\"dpt 21\" Address=\"31/1/24\" Description=\"dpt 21\" DPTs=\"DPST-21-1\" /> <GroupAddress Name=\"dpt 22\" Address=\"31/1/25\" Description=\"dpt 22\" DPTs=\"DPST-22-100\" /> <GroupAddress Name=\"dpt 29\" Address=\"31/1/26\" Description=\"dpt 29\" DPTs=\"DPST-29-11\" /> <GroupAddress Name=\"dpt 23\" Address=\"31/1/27\" Description=\"dpt 23\" DPTs=\"DPST-23-3\" /> <GroupAddress Name=\"dpt 29.010\" Address=\"31/1/28\" Description=\"dpt 29\" DPTs=\"DPST-29-10\" /> <GroupAddress Name=\"dpt 25\" Address=\"31/1/29\" Description=\"dpt 25\" DPTs=\"DPST-25-1000\" /> <GroupAddress Name=\"dpt 26\" Address=\"31/1/30\" Description=\"dpt 26\" DPTs=\"DPST-26-1\" /> <GroupAddress Name=\"dpt 27\" Address=\"31/1/31\" Description=\"dpt 27\" DPTs=\"DPST-27-1\" /> <GroupAddress Name=\"dpt 30\" Address=\"31/1/32\" Description=\"dpt 30\" DPTs=\"DPST-30-1010\" /> <GroupAddress Name=\"dpt 206\" Address=\"31/1/33\" Description=\"dpt 206\" DPTs=\"DPST-206-102\" /> <GroupAddress Name=\"dpt 217\" Address=\"31/1/34\" Description=\"dpt 217\" DPTs=\"DPST-217-1\" /> <GroupAddress Name=\"dpt 219\" Address=\"31/1/35\" Description=\"dpt 219\" DPTs=\"DPST-219-1\" /> <GroupAddress Name=\"dpt 222\" Address=\"31/1/36\" Description=\"dpt 222\" DPTs=\"DPST-222-100\" /> <GroupAddress Name=\"dpt 225\" Address=\"31/1/37\" Description=\"dpt 225\" DPTs=\"DPST-225-1\" /> <GroupAddress Name=\"dpt 229\" Address=\"31/1/38\" Description=\"dpt 229\" DPTs=\"DPST-229-1\" /> <GroupAddress Name=\"dpt 230\" Address=\"31/1/39\" Description=\"dpt 230\" DPTs=\"DPST-230-1000\" /> <GroupAddress Name=\"dpt 232\" Address=\"31/1/40\" Description=\"dpt 232\" DPTs=\"DPST-232-600\" /> <GroupAddress Name=\"dpt 234\" Address=\"31/1/41\" Description=\"dpt 234\" DPTs=\"DPST-234-1\" /> <GroupAddress Name=\"dpt 235\" Address=\"31/1/42\" Description=\"dpt 235\" DPTs=\"DPST-235-1\" /> <GroupAddress Name=\"dpt 236\" Address=\"31/1/43\" Description=\"dpt 236\" DPTs=\"DPST-236-1\" /> <GroupAddress Name=\"dpt 237\" Address=\"31/1/44\" Description=\"dpt 237\" DPTs=\"DPST-237-600\" /> <GroupAddress Name=\"dpt 238\" Address=\"31/1/45\" Description=\"dpt 238\" DPTs=\"DPST-238-600\" /> <GroupAddress Name=\"dpt 240\" Address=\"31/1/46\" Description=\"dpt 240\" DPTs=\"DPST-240-800\" /> <GroupAddress Name=\"dpt 242\" Address=\"31/1/47\" Description=\"dpt 242\" DPTs=\"DPST-242-600\" /> <GroupAddress Name=\"dpt 244\" Address=\"31/1/48\" Description=\"dpt 244\" DPTs=\"DPST-244-600\" /> <GroupAddress Name=\"dpt 245\" Address=\"31/1/49\" Description=\"dpt 245\" DPTs=\"DPST-245-600\" /> <GroupAddress Name=\"dpt 246\" Address=\"31/1/50\" Description=\"dpt 246\" DPTs=\"DPST-246-600\" /> <GroupAddress Name=\"dpt 249\" Address=\"31/1/51\" Description=\"dpt 249\" DPTs=\"DPST-249-600\" /> <GroupAddress Name=\"dpt 250\" Address=\"31/1/52\" Description=\"dpt 250\" DPTs=\"DPST-250-600\" /> <GroupAddress Name=\"dpt 251\" Address=\"31/1/53\" Description=\"dpt 251\" DPTs=\"DPST-251-600\" /> <GroupAddress Name=\"dpt 252\" Address=\"31/1/54\" Description=\"dpt 252\" DPTs=\"DPST-252-600\" /> <GroupAddress Name=\"dpt 255\" Address=\"31/1/55\" Description=\"dpt 255\" DPTs=\"DPST-255-1\" /> <GroupAddress Name=\"dpt 275\" Address=\"31/1/56\" Description=\"dpt 275\" DPTs=\"DPST-275-101\" /> <GroupAddress Name=\"dpt 275.100\" Address=\"31/1/57\" Description=\"dpt 275\" DPTs=\"DPST-275-100\" /> <GroupAddress Name=\"dpt1_status\" Address=\"31/1/58\" Description=\"dpt 1\" DPTs=\"DPST-1-1\" /> <GroupAddress Name=\"dpt 5\" Address=\"31/1/59\" Description=\"dpt 5\" DPTs=\"DPST-5-5\" /> <GroupAddress Name=\"ohne\" Address=\"31/1/60\" DPTs=\"DPST-1-5\" /> </GroupRange> <GroupRange Name=\"test\" RangeStart=\"64000\" RangeEnd=\"64255\"> <GroupAddress Name=\"xx\" Address=\"31/2/0\" DPTs=\"DPST-5-1\" /> <GroupAddress Name=\"yy\" Address=\"31/2/1\" DPTs=\"DPST-5-1\" /> <GroupAddress Name=\"Neue Gruppenadresse\" Address=\"31/2/2\" DPTs=\"DPT-1\" /> </GroupRange> </GroupRange></GroupAddress-Export>"';
|
|
20
|
+
|
|
21
|
+
const expectedfncRes = '[{"_id":"test.testin.dpt1_024","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1.024","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/0/0","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.024","valuetype":"basic"}},{"_id":"test.testin.dpt1","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/0/1","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.006","valuetype":"basic"}},{"_id":"test.testin.dpt_2","type":"state","common":{"desc":"Basetype: 1-bit value with priority","name":"dpt 2","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/2","answer_groupValueResponse":false,"autoread":true,"bitlength":2,"dpt":"DPT2.001","valuetype":"composite"}},{"_id":"test.testin.dpt_3","type":"state","common":{"desc":"Basetype: 4-bit relative dimming control","name":"dpt 3","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/3","answer_groupValueResponse":false,"autoread":true,"bitlength":4,"dpt":"DPT3.007","valuetype":"composite"}},{"_id":"test.testin.dpt1_001","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1.001","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/0/4","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.001","valuetype":"basic"}},{"_id":"test.testin.dpt_2_1","type":"state","common":{"desc":"Basetype: 1-bit value with priority","name":"dpt 2.1","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/5","answer_groupValueResponse":false,"autoread":true,"bitlength":2,"dpt":"DPT2.001","valuetype":"composite"}},{"_id":"test.testin.dpt3_007","type":"state","common":{"desc":"Basetype: 4-bit relative dimming control","name":"dpt3.007","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/6","answer_groupValueResponse":false,"autoread":true,"bitlength":4,"dpt":"DPT3.007","valuetype":"composite"}},{"_id":"test.testin.dpt_4_001","type":"state","common":{"desc":"Basetype: 8-bit character","name":"dpt 4.001","read":true,"role":"text","type":"string","write":true},"native":{"address":"31/0/7","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT4.001","valuetype":"basic"}},{"_id":"test.testin.dpt_5_001","type":"state","common":{"desc":"Basetype: 8-bit unsigned value","min":0,"max":100,"name":"dpt 5.001","read":true,"role":"state","type":"number","unit":"%","write":true},"native":{"address":"31/0/8","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT5.001","valuetype":"basic"}},{"_id":"test.testin.dpt_6","type":"state","common":{"desc":"Basetype: 8-bit signed value","min":-128,"max":127,"name":"dpt 6","read":true,"role":"state","type":"number","unit":"%","write":true},"native":{"address":"31/0/9","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT6.001","valuetype":"basic"}},{"_id":"test.testin.dpt_7","type":"state","common":{"desc":"Basetype: 16-bit unsigned value","min":0,"max":65535,"name":"dpt 7","read":true,"role":"state","type":"number","unit":"pulses","write":true},"native":{"address":"31/0/10","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT7.001","valuetype":"basic"}},{"_id":"test.testin.dpt_8","type":"state","common":{"desc":"Basetype: 16-bit signed value","min":-32768,"max":32767,"name":"dpt 8","read":true,"role":"state","type":"number","unit":"pulses","write":true},"native":{"address":"31/0/11","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT8.001","valuetype":"basic"}},{"_id":"test.testin.dpt_9","type":"state","common":{"desc":"Basetype: 16-bit floating point value","name":"dpt 9","read":true,"role":"state","type":"number","unit":"°C","write":true},"native":{"address":"31/0/12","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT9.001","valuetype":"basic"}},{"_id":"test.testin.dpt_10","type":"state","common":{"desc":"Basetype: day of week + time of day","name":"dpt 10","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/0/13","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT10.001","valuetype":"basic"}},{"_id":"test.testin.dpt_11_001","type":"state","common":{"desc":"Basetype: 3-byte date value","name":"dpt 11.001","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/0/14","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT11.001","valuetype":"composite"}},{"_id":"test.testin.dpt_12","type":"state","common":{"desc":"Basetype: 4-byte unsigned value","min":0,"max":4294967295,"name":"dpt 12","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/15","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT12.001","valuetype":"basic"}},{"_id":"test.testin.dpt_13","type":"state","common":{"desc":"Basetype: 4-byte signed value","min":-2147483648,"max":2147483647,"name":"dpt 13","read":true,"role":"state","type":"number","unit":"pulses","write":true},"native":{"address":"31/0/16","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT13.001","valuetype":"basic"}},{"_id":"test.testin.dpt_14","type":"state","common":{"desc":"Basetype: 32-bit floating point value","name":"dpt 14","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/17","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT14.000","valuetype":"basic"}},{"_id":"test.testin.dpt_15","type":"state","common":{"desc":"Basetype: 4-byte access control data","min":0,"max":4294967295,"name":"dpt 15","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/18","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT15.000","valuetype":"basic"}},{"_id":"test.testin.dpt_16","type":"state","common":{"desc":"Basetype: 14-character string","name":"dpt 16","read":true,"role":"text","type":"string","write":true},"native":{"address":"31/0/19","answer_groupValueResponse":false,"autoread":true,"bitlength":112,"dpt":"DPT16.000","force_encoding":"US-ASCII","valuetype":"basic"}},{"_id":"test.testin.dpt_17","type":"state","common":{"desc":"Basetype: scene number","min":0,"max":255,"name":"dpt 17","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/20","answer_groupValueResponse":false,"autoread":false,"bitlength":8,"dpt":"DPT17.001","valuetype":"basic"}},{"_id":"test.testin.dpt_18","type":"state","common":{"desc":"Basetype: 8-bit Scene Activate/Learn + number","name":"dpt 18","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/21","answer_groupValueResponse":false,"autoread":false,"bitlength":8,"dpt":"DPT18.001","valuetype":"composite"}},{"_id":"test.testin.dpt_19","type":"state","common":{"desc":"Basetype: 8-byte Date+Time","name":"dpt 19","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/0/22","answer_groupValueResponse":false,"autoread":true,"bitlength":64,"dpt":"DPT19.001","valuetype":"composite"}},{"_id":"test.testin.dpt_20","type":"state","common":{"desc":"Basetype: 1-byte","min":null,"name":"dpt 20","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/23","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT20.001","valuetype":"basic"}},{"_id":"test.testin.dpt_21","type":"state","common":{"desc":"Basetype: 1-byte","name":"dpt 21","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/24","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT21.001","valuetype":"composite"}},{"_id":"test.testin.dpt_22","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 22","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/25","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT22.100"}},{"_id":"test.testin.dpt_29","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 29","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/27","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT29.011"}},{"_id":"test.testin.dpt_23","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 23","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/28","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT23.003"}},{"_id":"test.testin.dpt_29_010","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 29.010","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/29","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT29.010"}},{"_id":"test.testin.dpt_25","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 25","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/30","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT25.1000"}},{"_id":"test.testin.dpt_26","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 26","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/31","answer_groupValueResponse":false,"autoread":false,"dpt":"DPT26.001"}},{"_id":"test.testin.dpt_27","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 27","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/32","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT27.001"}},{"_id":"test.testin.dpt_30","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 30","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/33","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT30.1010"}},{"_id":"test.testin.dpt_206","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 206","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/34","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT206.102"}},{"_id":"test.testin.dpt_217","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 217","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/35","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT217.001"}},{"_id":"test.testin.dpt_219","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 219","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/36","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT219.001"}},{"_id":"test.testin.dpt_222","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 222","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/37","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT222.100"}},{"_id":"test.testin.dpt_225","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 225","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/38","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT225.001"}},{"_id":"test.testin.dpt_229","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 229","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/39","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT229.001"}},{"_id":"test.testin.dpt_230","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 230","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/40","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT230.1000"}},{"_id":"test.testin.dpt_232","type":"state","common":{"desc":"Basetype: RGB array","name":"dpt 232","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/41","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT232.600","valuetype":"composite"}},{"_id":"test.testin.dpt_234","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 234","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/42","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT234.001"}},{"_id":"test.testin.dpt_235","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 235","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/43","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT235.001"}},{"_id":"test.testin.dpt_236","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 236","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/44","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT236.001"}},{"_id":"test.testin.dpt_237","type":"state","common":{"desc":"Basetype: 2-byte","name":"dpt 237","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/0/45","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT237.600","valuetype":"composite"}},{"_id":"test.testin.dpt_238","type":"state","common":{"desc":"Basetype: 1-byte","min":null,"name":"dpt 238","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/0/46","answer_groupValueResponse":false,"autoread":false,"bitlength":8,"dpt":"DPT238.600","valuetype":"basic"}},{"_id":"test.testin.dpt_240","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 240","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/47","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT240.800"}},{"_id":"test.testin.dpt_242","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 242","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/48","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT242.600"}},{"_id":"test.testin.dpt_244","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 244","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/49","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT244.600"}},{"_id":"test.testin.dpt_245","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 245","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/50","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT245.600"}},{"_id":"test.testin.dpt_246","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 246","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/51","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT246.600"}},{"_id":"test.testin.dpt_249","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 249","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/52","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT249.600"}},{"_id":"test.testin.dpt_250","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 250","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/53","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT250.600"}},{"_id":"test.testin.dpt_251","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 251","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/54","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT251.600"}},{"_id":"test.testin.dpt_252","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 252","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/55","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT252.600"}},{"_id":"test.testin.dpt_255","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 255","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/56","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT255.001"}},{"_id":"test.testin.dpt_275","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 275","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/57","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT275.101"}},{"_id":"test.testin.dpt_275_100","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 275.100","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/0/58","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT275.100"}},{"_id":"test.testin.dpt1_status","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1_status","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/0/59","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.001","valuetype":"basic"}},{"_id":"test.testin.dpt_5","type":"state","common":{"desc":"Basetype: 8-bit unsigned value","min":0,"max":255,"name":"dpt 5","read":true,"role":"state","type":"number","unit":"ratio","write":true},"native":{"address":"31/0/60","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT5.005","valuetype":"basic"}},{"_id":"test.testin.ohne","type":"state","common":{"desc":"Basetype: 1-bit value","name":"ohne","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/0/61","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.005","valuetype":"basic"}},{"_id":"test.testout.dpt1_024","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1.024","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/1/0","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.024","valuetype":"basic"}},{"_id":"test.testout.dpt1","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/1/1","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.006","valuetype":"basic"}},{"_id":"test.testout.dpt_2","type":"state","common":{"desc":"Basetype: 1-bit value with priority","name":"dpt 2","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/2","answer_groupValueResponse":false,"autoread":true,"bitlength":2,"dpt":"DPT2.001","valuetype":"composite"}},{"_id":"test.testout.dpt_3","type":"state","common":{"desc":"Basetype: 4-bit relative dimming control","name":"dpt 3","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/3","answer_groupValueResponse":false,"autoread":true,"bitlength":4,"dpt":"DPT3.007","valuetype":"composite"}},{"_id":"test.testout.dpt1_001","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1.001","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/1/4","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.001","valuetype":"basic"}},{"_id":"test.testout.dpt_2_1","type":"state","common":{"desc":"Basetype: 1-bit value with priority","name":"dpt 2.1","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/5","answer_groupValueResponse":false,"autoread":true,"bitlength":2,"dpt":"DPT2.001","valuetype":"composite"}},{"_id":"test.testout.dpt3_007","type":"state","common":{"desc":"Basetype: 4-bit relative dimming control","name":"dpt3.007","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/6","answer_groupValueResponse":false,"autoread":true,"bitlength":4,"dpt":"DPT3.007","valuetype":"composite"}},{"_id":"test.testout.dpt_4_001","type":"state","common":{"desc":"Basetype: 8-bit character","name":"dpt 4.001","read":true,"role":"text","type":"string","write":true},"native":{"address":"31/1/7","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT4.001","valuetype":"basic"}},{"_id":"test.testout.dpt_5_001","type":"state","common":{"desc":"Basetype: 8-bit unsigned value","min":0,"max":100,"name":"dpt 5.001","read":true,"role":"state","type":"number","unit":"%","write":true},"native":{"address":"31/1/8","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT5.001","valuetype":"basic"}},{"_id":"test.testout.dpt_6","type":"state","common":{"desc":"Basetype: 8-bit signed value","min":-128,"max":127,"name":"dpt 6","read":true,"role":"state","type":"number","unit":"%","write":true},"native":{"address":"31/1/9","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT6.001","valuetype":"basic"}},{"_id":"test.testout.dpt_7","type":"state","common":{"desc":"Basetype: 16-bit unsigned value","min":0,"max":65535,"name":"dpt 7","read":true,"role":"state","type":"number","unit":"pulses","write":true},"native":{"address":"31/1/10","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT7.001","valuetype":"basic"}},{"_id":"test.testout.dpt_8","type":"state","common":{"desc":"Basetype: 16-bit signed value","min":-32768,"max":32767,"name":"dpt 8","read":true,"role":"state","type":"number","unit":"pulses","write":true},"native":{"address":"31/1/11","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT8.001","valuetype":"basic"}},{"_id":"test.testout.dpt_9","type":"state","common":{"desc":"Basetype: 16-bit floating point value","name":"dpt 9","read":true,"role":"state","type":"number","unit":"°C","write":true},"native":{"address":"31/1/12","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT9.001","valuetype":"basic"}},{"_id":"test.testout.dpt_10","type":"state","common":{"desc":"Basetype: day of week + time of day","name":"dpt 10","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/1/13","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT10.001","valuetype":"basic"}},{"_id":"test.testout.dpt_11_001","type":"state","common":{"desc":"Basetype: 3-byte date value","name":"dpt 11.001","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/1/14","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT11.001","valuetype":"composite"}},{"_id":"test.testout.dpt_12","type":"state","common":{"desc":"Basetype: 4-byte unsigned value","min":0,"max":4294967295,"name":"dpt 12","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/15","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT12.001","valuetype":"basic"}},{"_id":"test.testout.dpt_13","type":"state","common":{"desc":"Basetype: 4-byte signed value","min":-2147483648,"max":2147483647,"name":"dpt 13","read":true,"role":"state","type":"number","unit":"pulses","write":true},"native":{"address":"31/1/16","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT13.001","valuetype":"basic"}},{"_id":"test.testout.dpt_14","type":"state","common":{"desc":"Basetype: 32-bit floating point value","name":"dpt 14","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/17","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT14.000","valuetype":"basic"}},{"_id":"test.testout.dpt_15","type":"state","common":{"desc":"Basetype: 4-byte access control data","min":0,"max":4294967295,"name":"dpt 15","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/18","answer_groupValueResponse":false,"autoread":true,"bitlength":32,"dpt":"DPT15.000","valuetype":"basic"}},{"_id":"test.testout.dpt_16","type":"state","common":{"desc":"Basetype: 14-character string","name":"dpt 16","read":true,"role":"text","type":"string","write":true},"native":{"address":"31/1/19","answer_groupValueResponse":false,"autoread":true,"bitlength":112,"dpt":"DPT16.000","force_encoding":"US-ASCII","valuetype":"basic"}},{"_id":"test.testout.dpt_17","type":"state","common":{"desc":"Basetype: scene number","min":0,"max":255,"name":"dpt 17","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/20","answer_groupValueResponse":false,"autoread":false,"bitlength":8,"dpt":"DPT17.001","valuetype":"basic"}},{"_id":"test.testout.dpt_18","type":"state","common":{"desc":"Basetype: 8-bit Scene Activate/Learn + number","name":"dpt 18","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/21","answer_groupValueResponse":false,"autoread":false,"bitlength":8,"dpt":"DPT18.001","valuetype":"composite"}},{"_id":"test.testout.dpt_19","type":"state","common":{"desc":"Basetype: 8-byte Date+Time","name":"dpt 19","read":true,"role":"date","type":"number","write":true},"native":{"address":"31/1/22","answer_groupValueResponse":false,"autoread":true,"bitlength":64,"dpt":"DPT19.001","valuetype":"composite"}},{"_id":"test.testout.dpt_20","type":"state","common":{"desc":"Basetype: 1-byte","min":null,"name":"dpt 20","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/23","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT20.001","valuetype":"basic"}},{"_id":"test.testout.dpt_21","type":"state","common":{"desc":"Basetype: 1-byte","name":"dpt 21","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/24","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT21.001","valuetype":"composite"}},{"_id":"test.testout.dpt_22","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 22","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/25","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT22.100"}},{"_id":"test.testout.dpt_29","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 29","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/26","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT29.011"}},{"_id":"test.testout.dpt_23","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 23","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/27","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT23.003"}},{"_id":"test.testout.dpt_29_010","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 29.010","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/28","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT29.010"}},{"_id":"test.testout.dpt_25","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 25","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/29","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT25.1000"}},{"_id":"test.testout.dpt_26","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 26","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/30","answer_groupValueResponse":false,"autoread":false,"dpt":"DPT26.001"}},{"_id":"test.testout.dpt_27","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 27","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/31","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT27.001"}},{"_id":"test.testout.dpt_30","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 30","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/32","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT30.1010"}},{"_id":"test.testout.dpt_206","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 206","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/33","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT206.102"}},{"_id":"test.testout.dpt_217","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 217","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/34","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT217.001"}},{"_id":"test.testout.dpt_219","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 219","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/35","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT219.001"}},{"_id":"test.testout.dpt_222","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 222","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/36","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT222.100"}},{"_id":"test.testout.dpt_225","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 225","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/37","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT225.001"}},{"_id":"test.testout.dpt_229","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 229","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/38","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT229.001"}},{"_id":"test.testout.dpt_230","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 230","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/39","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT230.1000"}},{"_id":"test.testout.dpt_232","type":"state","common":{"desc":"Basetype: RGB array","name":"dpt 232","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/40","answer_groupValueResponse":false,"autoread":true,"bitlength":24,"dpt":"DPT232.600","valuetype":"composite"}},{"_id":"test.testout.dpt_234","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 234","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/41","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT234.001"}},{"_id":"test.testout.dpt_235","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 235","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/42","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT235.001"}},{"_id":"test.testout.dpt_236","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 236","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/43","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT236.001"}},{"_id":"test.testout.dpt_237","type":"state","common":{"desc":"Basetype: 2-byte","name":"dpt 237","read":true,"role":"state","type":"object","write":true},"native":{"address":"31/1/44","answer_groupValueResponse":false,"autoread":true,"bitlength":16,"dpt":"DPT237.600","valuetype":"composite"}},{"_id":"test.testout.dpt_238","type":"state","common":{"desc":"Basetype: 1-byte","min":null,"name":"dpt 238","read":true,"role":"state","type":"number","write":true},"native":{"address":"31/1/45","answer_groupValueResponse":false,"autoread":false,"bitlength":8,"dpt":"DPT238.600","valuetype":"basic"}},{"_id":"test.testout.dpt_240","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 240","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/46","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT240.800"}},{"_id":"test.testout.dpt_242","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 242","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/47","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT242.600"}},{"_id":"test.testout.dpt_244","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 244","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/48","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT244.600"}},{"_id":"test.testout.dpt_245","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 245","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/49","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT245.600"}},{"_id":"test.testout.dpt_246","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 246","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/50","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT246.600"}},{"_id":"test.testout.dpt_249","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 249","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/51","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT249.600"}},{"_id":"test.testout.dpt_250","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 250","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/52","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT250.600"}},{"_id":"test.testout.dpt_251","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 251","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/53","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT251.600"}},{"_id":"test.testout.dpt_252","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 252","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/54","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT252.600"}},{"_id":"test.testout.dpt_255","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 255","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/55","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT255.001"}},{"_id":"test.testout.dpt_275","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 275","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/56","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT275.101"}},{"_id":"test.testout.dpt_275_100","type":"state","common":{"desc":"Basetype: raw value","name":"dpt 275.100","read":true,"role":"state","type":"string","write":true},"native":{"address":"31/1/57","answer_groupValueResponse":false,"autoread":true,"dpt":"DPT275.100"}},{"_id":"test.testout.dpt1_status","type":"state","common":{"desc":"Basetype: 1-bit value","name":"dpt1_status","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/1/58","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.001","valuetype":"basic"}},{"_id":"test.testout.dpt_5","type":"state","common":{"desc":"Basetype: 8-bit unsigned value","min":0,"max":255,"name":"dpt 5","read":true,"role":"state","type":"number","unit":"ratio","write":true},"native":{"address":"31/1/59","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT5.005","valuetype":"basic"}},{"_id":"test.testout.ohne","type":"state","common":{"desc":"Basetype: 1-bit value","name":"ohne","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/1/60","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1.005","valuetype":"basic"}},{"_id":"test.test.xx","type":"state","common":{"desc":"Basetype: 8-bit unsigned value","min":0,"max":100,"name":"xx","read":true,"role":"state","type":"number","unit":"%","write":true},"native":{"address":"31/2/0","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT5.001","valuetype":"basic"}},{"_id":"test.test.yy","type":"state","common":{"desc":"Basetype: 8-bit unsigned value","min":0,"max":100,"name":"yy","read":true,"role":"state","type":"number","unit":"%","write":true},"native":{"address":"31/2/1","answer_groupValueResponse":false,"autoread":true,"bitlength":8,"dpt":"DPT5.001","valuetype":"basic"}},{"_id":"test.test.Neue_Gruppenadresse","type":"state","common":{"desc":"Basetype: 1-bit value","name":"Neue Gruppenadresse","read":true,"role":"switch","type":"boolean","write":true},"native":{"address":"31/2/2","answer_groupValueResponse":false,"autoread":true,"bitlength":1,"dpt":"DPT1","valuetype":"basic"}}]';
|
|
22
22
|
|
|
23
23
|
const { adapter, database } = utils.unit.createMocks();
|
|
24
24
|
|
|
25
25
|
const { expect } = require("chai");
|
|
26
26
|
// import { functionToTest } from "./moduleToTest";
|
|
27
27
|
|
|
28
|
+
//howto:
|
|
29
|
+
// export xml from ets, past in stringified const xml
|
|
30
|
+
// asses expected result and past in expectedfncRes
|
|
31
|
+
|
|
28
32
|
describe("module to test: projectImport => function to test: parseInput", () => {
|
|
29
33
|
// initializing logic
|
|
30
|
-
//const expected = 5;
|
|
31
34
|
|
|
35
|
+
/* skip for the moment
|
|
32
36
|
it("expect no dpt error in the given xml example", () => {
|
|
33
|
-
projectImport.parseInput(adapter, xml, (error) => {
|
|
34
|
-
|
|
37
|
+
projectImport.parseInput(adapter, xml, (error, res) => {
|
|
38
|
+
console.log("error: " + error, " res: " + res);
|
|
39
|
+
JSON.stringify(error).should.equal('"test.test.Neue_Gruppenadresse 31/2/2 has only set a base DPT in ETS. No additional information (e.g. unit) for this GA available."');
|
|
40
|
+
//expect(error).be.null;
|
|
35
41
|
});
|
|
36
42
|
});
|
|
43
|
+
*/
|
|
37
44
|
|
|
38
45
|
it("compare objects output to expected value", () => {
|
|
39
46
|
projectImport.parseInput(adapter, xml, (error, res) => {
|
package/lib/tools.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/* eslint-disable quotes */
|
|
2
1
|
const axios = require("axios").default;
|
|
3
|
-
const DPTLib = require(__dirname +
|
|
4
|
-
|
|
2
|
+
const DPTLib = require(__dirname + "/knx/src/dptlib"); //todo for the moment
|
|
3
|
+
const FORBIDDEN_CHARS = /[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;
|
|
5
4
|
/**
|
|
6
5
|
* Tests whether the given variable is a real object and not an Array
|
|
7
6
|
* @param {any} it The variable to test
|
|
@@ -101,20 +100,20 @@ async function translateGoogle(text, targetLang) {
|
|
|
101
100
|
}
|
|
102
101
|
|
|
103
102
|
/*
|
|
104
|
-
* convert dpt into
|
|
103
|
+
* convert dpt into DPT1 or DPT1.001 format, input format is like DPT-275 or DPST-275-100
|
|
105
104
|
*/
|
|
106
|
-
function
|
|
107
|
-
if (dpt.indexOf(
|
|
108
|
-
const parts = dpt.split(
|
|
105
|
+
function formatDpt(dpt) {
|
|
106
|
+
if (dpt.indexOf("-") != -1) {
|
|
107
|
+
const parts = dpt.split("-");
|
|
109
108
|
if (parts.length == 3) {
|
|
110
109
|
if (parts[2].length === 1) {
|
|
111
|
-
parts[2] =
|
|
110
|
+
parts[2] = "00" + parts[2];
|
|
112
111
|
} else if (parts[2].length === 2) {
|
|
113
|
-
parts[2] =
|
|
112
|
+
parts[2] = "0" + parts[2];
|
|
114
113
|
}
|
|
115
|
-
dpt = (
|
|
114
|
+
dpt = ("DPT" + parts[1] + "." + parts[2]).replace(/' ', ''/);
|
|
116
115
|
} else {
|
|
117
|
-
dpt = (
|
|
116
|
+
dpt = ("DPT" + parts[1]).replace(/' ', ''/);
|
|
118
117
|
}
|
|
119
118
|
}
|
|
120
119
|
return dpt;
|
|
@@ -130,31 +129,38 @@ function isEmptyObject(obj) {
|
|
|
130
129
|
/*
|
|
131
130
|
* iobroker does not support all characters, substitte by _
|
|
132
131
|
*/
|
|
133
|
-
function
|
|
134
|
-
|
|
132
|
+
function formatGaForIob(gaName) {
|
|
133
|
+
//filter forbidden characters
|
|
134
|
+
gaName = gaName.replace(FORBIDDEN_CHARS, "_");
|
|
135
|
+
//format gaName
|
|
136
|
+
return gaName.replace(/[\.\s\/]/g, "_");
|
|
135
137
|
}
|
|
136
138
|
|
|
137
139
|
function isStringDPT(dpt) {
|
|
138
|
-
return (dpt ==
|
|
140
|
+
return (dpt == "DPT4" || dpt == "DPT16" || dpt.startsWith("DPT4.") || dpt.startsWith("DPT16."));
|
|
139
141
|
}
|
|
140
142
|
|
|
141
143
|
function isDateDPT(dpt) {
|
|
142
|
-
return (dpt ==
|
|
143
|
-
dpt ==
|
|
144
|
-
dpt ==
|
|
144
|
+
return (dpt == "DPT19" || dpt.startsWith("DPT19.") ||
|
|
145
|
+
dpt == "DPT10" || dpt.startsWith("DPT10.") ||
|
|
146
|
+
dpt == "DPT11" || dpt.startsWith("DPT11.")
|
|
145
147
|
);
|
|
146
148
|
}
|
|
147
149
|
|
|
148
150
|
function isFloatDPT(dpt) {
|
|
149
|
-
return (dpt ==
|
|
150
|
-
dpt ==
|
|
151
|
+
return (dpt == "DPT9" || dpt.startsWith("DPT9.") ||
|
|
152
|
+
dpt == "DPT14" || dpt.startsWith("DPT14.")
|
|
151
153
|
);
|
|
152
154
|
}
|
|
153
155
|
|
|
154
|
-
function
|
|
156
|
+
function isTriggerDPT(dpt) {
|
|
155
157
|
//used to exclude from autoread
|
|
156
158
|
//scene is a trigger, do not request trigger on start, more to add
|
|
157
|
-
return (dpt ==
|
|
159
|
+
return (dpt == "DPT17" || dpt.startsWith("DPT17.") ||
|
|
160
|
+
dpt == "DPT18" || dpt.startsWith("DPT18.") ||
|
|
161
|
+
dpt == "DPT26" || dpt.startsWith("DPT26.") ||
|
|
162
|
+
dpt == "DPT238" || dpt.startsWith("DPT238.")
|
|
163
|
+
);
|
|
158
164
|
}
|
|
159
165
|
|
|
160
166
|
function isUnknownDPT(dpt) {
|
|
@@ -167,16 +173,31 @@ function isUnknownDPT(dpt) {
|
|
|
167
173
|
return dptObj == null;
|
|
168
174
|
}
|
|
169
175
|
|
|
176
|
+
/* check if it is a Device Adress is in a.b.c format */
|
|
177
|
+
function isDeviceAddress(element) {
|
|
178
|
+
const format = "\\d+\\.\\d+\\.\\d+";
|
|
179
|
+
return (element.match(format) != null);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* check if it is a Group Address is in a/b/c format */
|
|
183
|
+
function isGroupAddress(element) {
|
|
184
|
+
const format = "\\d+/\\d+/\\d+";
|
|
185
|
+
return (element.match(format) != null);
|
|
186
|
+
}
|
|
187
|
+
|
|
170
188
|
module.exports = {
|
|
189
|
+
FORBIDDEN_CHARS,
|
|
171
190
|
isArray,
|
|
172
191
|
isObject,
|
|
173
192
|
translateText,
|
|
174
|
-
|
|
175
|
-
|
|
193
|
+
formatDpt,
|
|
194
|
+
formatGaForIob,
|
|
176
195
|
isStringDPT,
|
|
177
196
|
isDateDPT,
|
|
178
197
|
isUnknownDPT,
|
|
179
198
|
isFloatDPT,
|
|
180
|
-
|
|
181
|
-
isEmptyObject
|
|
182
|
-
|
|
199
|
+
isTriggerDPT,
|
|
200
|
+
isEmptyObject,
|
|
201
|
+
isGroupAddress,
|
|
202
|
+
isDeviceAddress
|
|
203
|
+
};
|