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.
@@ -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
- expect(error).be.null;
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 + '/knx/src/dptlib'); //todo for the moment
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 1/1/1 format
103
+ * convert dpt into DPT1 or DPT1.001 format, input format is like DPT-275 or DPST-275-100
105
104
  */
106
- function convertDPTtype(dpt) {
107
- if (dpt.indexOf('-') != -1) {
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] = '00' + parts[2]
110
+ parts[2] = "00" + parts[2];
112
111
  } else if (parts[2].length === 2) {
113
- parts[2] = '0' + parts[2]
112
+ parts[2] = "0" + parts[2];
114
113
  }
115
- dpt = ('DPT' + parts[1] + '.' + parts[2]).replace(/' ', ''/);
114
+ dpt = ("DPT" + parts[1] + "." + parts[2]).replace(/' ', ''/);
116
115
  } else {
117
- dpt = ('DPT' + parts[1]).replace(/' ', ''/);
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 formatGa(gaName) {
134
- return gaName.replace(/[\.\s\/]/g, '_');
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 == 'DPT4' || dpt == 'DPT16' || dpt.startsWith('DPT4.') || dpt.startsWith('DPT16.'));
140
+ return (dpt == "DPT4" || dpt == "DPT16" || dpt.startsWith("DPT4.") || dpt.startsWith("DPT16."));
139
141
  }
140
142
 
141
143
  function isDateDPT(dpt) {
142
- return (dpt == 'DPT19' || dpt.startsWith('DPT19.') ||
143
- dpt == 'DPT10' || dpt.startsWith('DPT10.') ||
144
- dpt == 'DPT11' || dpt.startsWith('DPT11.')
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 == 'DPT9' || dpt.startsWith('DPT9.') ||
150
- dpt == 'DPT14' || dpt.startsWith('DPT14.')
151
+ return (dpt == "DPT9" || dpt.startsWith("DPT9.") ||
152
+ dpt == "DPT14" || dpt.startsWith("DPT14.")
151
153
  );
152
154
  }
153
155
 
154
- function isStriggerDPT(dpt) {
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 == 'DPT17' || dpt.startsWith('DPT17.'));
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
- convertDPTtype,
175
- formatGa,
193
+ formatDpt,
194
+ formatGaForIob,
176
195
  isStringDPT,
177
196
  isDateDPT,
178
197
  isUnknownDPT,
179
198
  isFloatDPT,
180
- isStriggerDPT,
181
- isEmptyObject
182
- };
199
+ isTriggerDPT,
200
+ isEmptyObject,
201
+ isGroupAddress,
202
+ isDeviceAddress
203
+ };