From 56d3fa099d9c98222d6cf5043891c6ba2f1df6bf Mon Sep 17 00:00:00 2001
From: Rob Peters <info@domoticz.com>
Date: Sun, 12 May 2019 15:56:26 +0200
Subject: [PATCH] Updated OpenZWave to version 1.6

---
 .travis.yml                                   |    2 +-
 Config/2gig/ct100.xml                         |  158 +-
 Config/2gig/ct101.xml                         |   11 +-
 Config/2gig/ct30.xml                          |   33 +-
 Config/2gig/ct32.xml                          |  155 +-
 Config/2gig/ct50e.xml                         |   11 +-
 Config/2gig/ct80.xml                          |   11 +-
 Config/BeNext/1poleswitch.xml                 |    2 +-
 Config/BeNext/2poleswitch.xml                 |    2 +-
 Config/BeNext/AlarmSound.xml                  |  121 +-
 Config/BeNext/BuiltinDimmer.xml               |    2 +-
 Config/BeNext/DoorSensor.xml                  |   82 +-
 Config/BeNext/EnergySwitch.xml                |    3 +-
 Config/BeNext/HeatingControl.xml              |   62 +-
 Config/BeNext/Molite.xml                      |  157 +-
 Config/BeNext/P1dongle.xml                    |  136 +-
 Config/BeNext/PanicButton.xml                 |   71 +-
 Config/BeNext/PanicWatch.xml                  |   56 +-
 Config/BeNext/PluginDimmer.xml                |    2 +-
 Config/BeNext/SceneController.xml             |    3 +-
 Config/BeNext/TagReader.xml                   |   83 +-
 Config/BeNext/TagReader500.xml                |  101 +-
 Config/BeNext/mydisplay.xml                   |   37 +
 Config/BeNext/mygate.xml                      |   20 +
 Config/Localization.xml                       | 2262 +++++++++
 Config/Localization.xsd                       |   69 +
 Config/NotificationCCTypes.xml                |  551 +++
 Config/NotificationCCTypes.xsd                |   64 +
 Config/act/lfm20.xml                          |   30 +-
 Config/act/zdm230.xml                         |  201 +-
 Config/act/zdp100.xml                         |   21 +
 Config/act/zdw103.xml                         |    2 +-
 Config/act/zdw232.xml                         |    2 +-
 Config/act/zir010.xml                         |   88 +-
 Config/act/zrm230.xml                         |   25 +
 Config/act/zrp100.xml                         |   23 +
 Config/act/zrp110.xml                         |    2 +-
 Config/act/zrw103.xml                         |   89 +-
 Config/act/zrw230.xml                         |   25 +
 Config/aeotec/dsa03202.xml                    |  118 +-
 Config/aeotec/dsa22.xml                       |    2 +-
 Config/aeotec/dsa38.xml                       |   37 +-
 Config/aeotec/dsb04100.xml                    |   96 +-
 Config/aeotec/dsb05.xml                       |  139 +-
 Config/aeotec/dsb09104.xml                    |   78 +-
 Config/aeotec/dsb28-zweu.xml                  |   17 +
 Config/aeotec/dsb28.xml                       |   83 +-
 Config/aeotec/dsb29.xml                       |  100 +-
 Config/aeotec/dsb45.xml                       |   75 +-
 Config/aeotec/dsb54.xml                       |   73 +-
 Config/aeotec/dsc06106.xml                    |   65 +-
 Config/aeotec/dsc08101.xml                    |    2 +-
 Config/aeotec/dsc10.xml                       |   84 +-
 Config/aeotec/dsc11.xml                       |   96 +-
 Config/aeotec/dsc12104.xml                    |    2 +-
 Config/aeotec/dsc13104.xml                    |    2 +-
 Config/aeotec/dsc14104.xml                    |    2 +-
 Config/aeotec/dsc18103.xml                    |   68 +-
 Config/aeotec/dsc19103.xml                    |   81 +-
 Config/aeotec/dsc24.xml                       |   76 +-
 Config/aeotec/dsc26103.xml                    |   59 +-
 Config/aeotec/dsc27103.xml                    |   63 +-
 Config/aeotec/dsc35103.xml                    |    2 +-
 Config/aeotec/dsd37.xml                       |   57 +-
 Config/aeotec/zw056.xml                       |  170 +-
 Config/aeotec/zw062.xml                       |  212 +-
 Config/aeotec/zw074.xml                       |  194 +-
 Config/aeotec/zw075.xml                       |   96 +-
 Config/aeotec/zw078.xml                       |  101 +-
 Config/aeotec/zw080.xml                       |  152 +-
 Config/aeotec/zw088.xml                       |   58 +-
 Config/aeotec/zw089.xml                       |  137 +-
 Config/aeotec/zw090.xml                       |  113 +-
 Config/aeotec/zw095.xml                       |  203 +-
 Config/aeotec/zw096.xml                       |  106 +-
 Config/aeotec/zw097.xml                       |   47 +-
 Config/aeotec/zw098.xml                       |  179 +-
 Config/aeotec/zw099.xml                       |  101 +-
 Config/aeotec/zw100.xml                       |  468 +-
 Config/aeotec/zw111.xml                       |    2 +-
 Config/aeotec/zw112.xml                       |  107 +-
 Config/aeotec/zw116.xml                       |   16 +-
 Config/aeotec/zw117.xml                       |   79 +-
 Config/aeotec/zw120.xml                       |   95 +-
 Config/aeotec/zw121.xml                       |    2 +-
 Config/aeotec/zw122.xml                       |  299 +-
 Config/aeotec/zw129.xml                       |  126 +-
 Config/aeotec/zw130.xml                       |  134 +-
 Config/aeotec/zw132.xml                       |    2 +-
 Config/aeotec/zw139.xml                       |    2 +-
 Config/aeotec/zw140.xml                       |    2 +-
 Config/aeotec/zw141.xml                       |    2 +-
 Config/aeotec/zw162.xml                       |   15 +-
 Config/aeotec/zwa001.xml                      |    2 +-
 Config/aeotec/zwa002.xml                      |    2 +-
 Config/aeotec/zwa003.xml                      |   10 +-
 Config/aeotec/zwa004.xml                      |    2 +-
 Config/aeotec/zwa005.xml                      |  302 +-
 Config/aeotec/zwa006.xml                      |    2 +-
 Config/aeotec/zwa008.xml                      |  121 +
 Config/airlinemechanical/zds-ud10.xml         |   15 +
 Config/assa_abloy/ConexisL1.xml               |    2 +-
 Config/assa_abloy/KeyfreeConnected-plus.xml   |    2 +-
 Config/assa_abloy/KeyfreeConnected.xml        |   27 +-
 Config/assa_abloy/PushButtonDeadbolt.xml      |  168 +-
 Config/assa_abloy/PushButtonLever.xml         |    3 +-
 Config/assa_abloy/TouchDeadbolt.xml           |  172 +-
 Config/assa_abloy/TouchLever.xml              |  126 +-
 Config/assa_abloy/nexTouch.xml                |    2 +-
 Config/august/asl-03.xml                      |    2 +-
 Config/buffalo/hw-100v15a-zw.xml              |   14 +
 Config/comfort/ucm.xml                        |   15 +
 Config/cooper/RF9501.xml                      |   82 +-
 Config/cooper/RF9505-T.xml                    |   68 +-
 Config/cooper/RF9505-T.xml.zip                |  Bin 0 -> 890 bytes
 Config/cooper/RF9517.xml                      |   46 +-
 Config/cooper/RF9540-N.xml                    |  109 +-
 Config/cooper/RF9542-Z.xml                    |   75 +-
 Config/cooper/RFWC5.xml                       |   70 +-
 Config/cooper/rf9534.xml                      |   18 +
 Config/danfoss/living.xml                     |   35 +-
 Config/danfoss/rsroom.xml                     |   61 +-
 Config/danfoss/z.xml                          |   34 +-
 Config/device_classes.xml                     |    2 +-
 Config/device_classes.xsd                     |    4 +-
 Config/device_configuration.xsd               |  207 +-
 Config/devolo/connectz.xml                    |   16 +-
 Config/devolo/mt02648.xml                     |   91 +-
 Config/devolo/mt02755.xml                     |   82 +-
 Config/devolo/mt02758.xml                     |   59 +-
 Config/devolo/mt02792.xml                     |    2 +-
 Config/devolo/mt2646.xml                      |   90 +-
 Config/devolo/mt2647.xml                      |   92 +-
 Config/devolo/mt2651.xml                      |   23 +-
 Config/devolo/mt2652.xml                      |  202 +-
 Config/devolo/mt2653.xml                      |  201 +-
 Config/devolo/mt2756.xml                      |   78 +-
 Config/devolo/rs014G0159.xml                  |  111 +-
 Config/diehlcontrols/766366.xml               |   15 +
 Config/dlink/dch-z110.xml                     |   91 +-
 Config/dlink/dch-z120.xml                     |   97 +-
 Config/dlink/dch-z510.xml                     |   48 +-
 Config/dome/0002.xml                          |    2 +-
 Config/dome/0083.xml                          |    2 +-
 Config/dome/0085.xml                          |    3 +-
 Config/dome/0086.xml                          |    2 +-
 Config/dome/0087.xml                          |    2 +-
 Config/dome/0088.xml                          |    2 +-
 Config/dome/0101.xml                          |    2 +-
 Config/dome/0201.xml                          |    2 +-
 Config/domitech/zb22uk.xml                    |    4 +-
 Config/domitech/ze27eu.xml                    |    4 +-
 Config/domux/DX1CA-Z.xml                      |    2 +-
 Config/domux/DX1CG-Z.xml                      |    2 +-
 Config/domux/DX1DS-Z.xml                      |    2 +-
 Config/domux/DX1HT-Z.xml                      |    2 +-
 Config/domux/DX1MS-Z.xml                      |    2 +-
 Config/domux/DX1SA-Z.xml                      |    2 +-
 Config/domux/DX1WL-Z.xml                      |    2 +-
 Config/domux/DX2SK-Z.xml                      |    2 +-
 Config/dragontech/wd-100.xml                  |   71 +-
 Config/duwi/05458.xml                         |    2 +-
 Config/duwi/ZWES1000.xml                      |   23 +-
 Config/duwi/ZWESJ300.xml                      |    2 +-
 Config/duwi/zw-edan-300.xml                   |   17 +
 Config/duwi/zw-zdan-300.xml                   |   17 +
 Config/duwi/zwfb.xml                          |    2 +-
 Config/duwi/zwws.xml                          |   18 +
 Config/ecolink/doorwindow.xml                 |   58 +-
 Config/ecolink/firefighter.xml                |   23 +-
 Config/ecolink/motion.xml                     |   78 +-
 Config/ecolink/sensor.xml                     |   54 +-
 Config/ecolink/tiltsensor.xml                 |   37 +
 Config/electronicsolutions/dbmz.xml           |   49 +-
 Config/enblink/ss201-us-w_1308.xml            |   16 +
 Config/enerwave/zw15rmplus.xml                |    2 +-
 Config/enerwave/zw15s.xml                     |    2 +-
 Config/enerwave/zw20r.xml                     |   23 +-
 Config/enerwave/zw20rm.xml                    |    2 +-
 Config/enerwave/zw500d.xml                    |    2 +-
 Config/enerwave/zwn-bpc.xml                   |   15 +-
 Config/enerwave/zwn-sc7.xml                   |    2 +-
 Config/enerwave/zwnrsm1plus.xml               |    2 +-
 Config/enerwave/zwnrsm2plus.xml               |    2 +-
 Config/eurotronic/eur_cometz.xml              |   43 +-
 Config/eurotronic/eur_spiritz.xml             |  154 +-
 Config/eurotronic/eur_stellaz.xml             |   62 +-
 Config/everspring/ad146.xml                   |   46 +-
 Config/everspring/ad147.xml                   |   45 +-
 Config/everspring/an145.xml                   |    3 +-
 Config/everspring/an157.xml                   |   24 +
 Config/everspring/an158.xml                   |   32 +-
 Config/everspring/an163.xml                   |   33 +-
 Config/everspring/an179.xml                   |   74 +-
 Config/everspring/an180.xml                   |   70 +-
 Config/everspring/an181.xml                   |   95 +-
 Config/everspring/hac01.xml                   |   49 +-
 Config/everspring/han01.xml                   |   20 +
 Config/everspring/han02-1.xml                 |   19 +
 Config/everspring/hsp02.xml                   |   51 +-
 Config/everspring/lptdm1u.xml                 |   25 +
 Config/everspring/se812.xml                   |   33 +-
 Config/everspring/sf812.xml                   |   34 +-
 Config/everspring/sm103.xml                   |   77 +-
 Config/everspring/sp103.xml                   |   57 +-
 Config/everspring/sp814.xml                   |   60 +-
 Config/everspring/sp815.xml                   |   55 +-
 Config/everspring/sp816.xml                   |   14 +-
 Config/everspring/st812.xml                   |   52 +-
 Config/everspring/st814.xml                   |   99 +-
 Config/everspring/st815.xml                   |   85 +-
 Config/everspring/tse03.xml                   |   46 +-
 Config/everspringct/hsm02.xml                 |  141 +-
 Config/evolve/lfm-20.xml                      |   14 +
 Config/evolve/lrm-as.xml                      |    2 +-
 Config/evolve/lsm-15.xml                      |    2 +-
 Config/evolve/ltm-5.xml                       |  116 +-
 Config/fakro/arz.xml                          |   16 +
 Config/fakro/zwp10.xml                        |    2 +-
 Config/fakro/zwrs.xml                         |    2 +-
 Config/fakro/zws12.xml                        |   21 +-
 Config/fakro/zws230.xml                       |    4 +-
 Config/fibaro/fgbs001.xml                     |  131 +-
 Config/fibaro/fgbs222.xml                     |  251 +
 Config/fibaro/fgcd001.xml                     |  194 +-
 Config/fibaro/fgd211.xml                      |    2 +-
 Config/fibaro/fgd212.xml                      |  253 +-
 Config/fibaro/fgdw2.xml                       |    2 +-
 Config/fibaro/fgfs101.xml                     |  120 +-
 Config/fibaro/fgfs101zw5.xml                  |  204 +-
 Config/fibaro/fggc001.xml                     |    2 +-
 Config/fibaro/fgk001.xml                      |  174 +-
 Config/fibaro/fgk10x.xml                      |    2 +-
 Config/fibaro/fgkf601.xml                     |    2 +-
 Config/fibaro/fgms.xml                        |  249 +-
 Config/fibaro/fgmszw5.xml                     |  359 +-
 Config/fibaro/fgpb101.xml                     |    2 +-
 Config/fibaro/fgr221.xml                      |    2 +-
 Config/fibaro/fgr223.xml                      |    6 +-
 Config/fibaro/fgrgbwm441.xml                  |  137 +-
 Config/fibaro/fgrm222.xml                     |    9 +-
 Config/fibaro/fgs211.xml                      |    2 +-
 Config/fibaro/fgs212.xml                      |    2 +-
 Config/fibaro/fgs213.xml                      |   97 +-
 Config/fibaro/fgs221.xml                      |  106 +-
 Config/fibaro/fgs222.xml                      |  104 +-
 Config/fibaro/fgs223.xml                      |  353 +-
 Config/fibaro/fgsd002.xml                     |  242 +-
 Config/fibaro/fgss101.xml                     |  234 +-
 Config/fibaro/fgt001.xml                      |   99 +-
 Config/fibaro/fgwpe.xml                       |  223 +-
 Config/fibaro/fgwpfzw5.xml                    |  301 +-
 Config/fibaro/fgwpg111.xml                    |  271 +-
 Config/firstalert/zcombo.xml                  |   20 +-
 Config/followgood/swz-1002.xml                |   14 +
 Config/forest/fs2z5232000002.xml              |   43 +-
 Config/fortrezz/fmi.xml                       |    2 +-
 Config/fortrezz/gdc1_fortrezz_1501.xml        |   14 +
 Config/fortrezz/mimo2plus.xml                 |    2 +-
 Config/fortrezz/mimolite.xml                  |    2 +-
 Config/fortrezz/ssa2.xml                      |   48 +-
 Config/fortrezz/ssa3.xml                      |   46 +-
 Config/fortrezz/wv01.xml                      |   48 +-
 Config/fortrezz/wwa-01aa.xml                  |   19 +
 Config/fortrezz/wwa02.xml                     |   58 +-
 Config/frostdale/fdn2311.xml                  |   17 +
 Config/frostdale/fdn2nxx.xml                  |    8 +-
 Config/ge/12719-plugin-switch.xml             |   30 +-
 Config/ge/12724-dimmer.xml                    |   92 +-
 Config/ge/12727.xml                           |   18 +
 Config/ge/14282-plugin-switch.xml             |   53 +-
 Config/ge/14288-outlet.xml                    |    2 +-
 Config/ge/14291-switch.xml                    |   65 +-
 Config/ge/14292-toggle-switch.xml             |    2 +-
 Config/ge/14294-dimmer.xml                    |  105 +-
 Config/ge/14295-dimmer-toggle.xml             |    2 +-
 Config/ge/26931-motion-switch.xml             |    2 +-
 Config/ge/26933-motion-dimmer.xml             |    2 +-
 Config/ge/28167-plugin-dimmer.xml             |   45 +-
 Config/ge/28169-plugin-switch.xml             |   53 +-
 Config/ge/45604.xml                           |   30 +
 Config/ge/dimmer.xml                          |  103 +-
 Config/ge/dimmer_module.xml                   |   87 +-
 Config/ge/hinge-pin.xml                       |    2 +-
 Config/ge/receptacle.xml                      |   42 +-
 Config/ge/relay.xml                           |   56 +-
 Config/ge/ze26i.xml                           |    2 +-
 Config/ge/zw4001-switch.xml                   |    2 +-
 Config/ge/zw6302.xml                          |    2 +-
 Config/gocontrol/GC-TBZ48L.xml                |  209 +-
 Config/gr/gr105.xml                           |   31 +-
 Config/gr/gr105n.xml                          |    2 +-
 Config/gr/grb3.xml                            |    9 +
 Config/graber/brz1.xml                        |    2 +-
 Config/graber/vcz1.xml                        |    2 +-
 Config/greenwave/gs1110-1-gr-1.xml            |   17 +
 Config/greenwave/powernode1.xml               |   77 +-
 Config/greenwave/powernode6.xml               |   85 +-
 Config/hank/hkzw-dws01.xml                    |    2 +-
 Config/hank/hkzw-fld01.xml                    |    2 +-
 Config/hank/hkzw-ms01.xml                     |    2 +-
 .../hank/{hkzw-ms02.xml => hkzw-ms02-200.xml} |    2 +-
 Config/hank/hkzw-ms02-300.xml                 |   54 +
 Config/hank/hkzw-rgb01.xml                    |    4 +-
 Config/hank/hkzw-so01-smartplug.xml           |    2 +-
 Config/hank/hkzw-so03.xml                     |    2 +-
 Config/hank/hkzw-so05-smartplug.xml           |    2 +-
 Config/hank/scenecontroller1.xml              |    4 +-
 Config/hank/scenecontroller4.xml              |    4 +-
 Config/heiman/HS1CA-Z.xml                     |    2 +-
 Config/heiman/HS1CG-Z.xml                     |    2 +-
 Config/heiman/HS1DS-Z.xml                     |    2 +-
 Config/heiman/HS1HT-Z.xml                     |    2 +-
 Config/heiman/HS1MS-Z.xml                     |    2 +-
 Config/heiman/HS1SA-Z.xml                     |    2 +-
 Config/heiman/HS1WL-Z.xml                     |    2 +-
 Config/heiman/HS2SK-Z.xml                     |    2 +-
 Config/heiman/HS2WD-Z.xml                     |   12 +
 Config/heltun/he-zw-therm-fl2.xml             |  240 +-
 Config/homeseer/ezmotionplus.xml              |   87 +-
 Config/homeseer/hs-fc200plus.xml              |  189 +-
 Config/homeseer/hs-fls100plus.xml             |    2 +-
 Config/homeseer/hs-fs100plus.xml              |   44 +
 Config/homeseer/hs-ls100plus.xml              |    2 +-
 Config/homeseer/hs-ms100plus.xml              |    2 +-
 Config/homeseer/hs-wd100plus.xml              |    2 +-
 Config/homeseer/hs-wd200plus.xml              |    2 +-
 Config/homeseer/hs-ws100plus.xml              |    2 +-
 Config/homeseer/hs-ws200plus.xml              |    2 +-
 Config/homeseer/hsm100.xml                    |   81 +-
 Config/homeseer/hsm200.xml                    |   88 +-
 Config/homeseer/ztroller.xml                  |    2 +-
 Config/honeywell/39351-ZW3005.xml             |    2 +-
 Config/honeywell/lynx-touch-l5100.xml         |   17 +-
 Config/honeywell/th6320zw2003.xml             |  388 ++
 Config/honeywell/th8320zw1000.xml             |   23 +-
 Config/horstmann/asrzw.xml                    |   20 +-
 Config/horstmann/hrt4zw.xml                   |   56 +-
 Config/horstmann/scsc17.xml                   |   46 +-
 Config/horstmann/ses301.xml                   |   16 +
 Config/horstmann/ses302.xml                   |   51 +-
 Config/horstmann/ses303.xml                   |   55 +-
 Config/horstmann/sir321.xml                   |   47 +-
 Config/horstmann/srt321.xml                   |   30 +-
 Config/horstmann/srt323.xml                   |   50 +-
 Config/horstmann/ssr302.xml                   |   28 +-
 Config/horstmann/ssr303.xml                   |   15 +-
 Config/icare/zw-66.xml                        |   14 +
 Config/idlock/idlock101.xml                   |    2 +-
 Config/idlock/idlock150.xml                   |    4 +-
 Config/ingersoll/dwzwave1.xml                 |   48 +-
 Config/inovelli/nzw1201.xml                   |    2 +-
 Config/inovelli/nzw30.xml                     |   32 +-
 Config/inovelli/nzw31.xml                     |   87 +-
 Config/inovelli/nzw36.xml                     |    2 +-
 Config/inovelli/nzw37.xml                     |    2 +-
 Config/inovelli/nzw39.xml                     |    2 +-
 Config/inovelli/nzw96.xml                     |    2 +-
 Config/inovelli/nzw97.xml                     |    2 +-
 Config/inovelli/simple_module.xml             |    2 +-
 Config/intermatic/ca8900.xml                  |   11 +-
 Config/iris/rangeextender.xml                 |    2 +-
 Config/iwatsu/ne-4ct-2p.xml                   |   16 +
 Config/iwatsu/ne-4ct.xml                      |   16 +
 Config/jasco/45601.xml                        |   26 +
 Config/kaipule/im20.xml                       |    2 +-
 Config/kaipule/ix32.xml                       |    2 +-
 Config/kwikset/smartcode.xml                  |  515 ++-
 Config/leviton/dz15s.xml                      |   39 +-
 Config/leviton/dz6hd.xml                      |   93 +-
 Config/leviton/dzpd3.xml                      |   80 +-
 Config/leviton/rzi10.xml                      |    9 +-
 Config/leviton/vrcpg.xml                      |    9 +-
 Config/leviton/vrcs2.xml                      |   21 +
 Config/leviton/vrcz4.xml                      |   18 +
 Config/leviton/vre06.xml                      |   11 +-
 Config/leviton/vrf01.xml                      |   26 +-
 Config/leviton/vri06.xml                      |    9 +-
 Config/leviton/vri10.xml                      |   21 +-
 Config/leviton/vrs15.xml                      |   18 +
 Config/linear/GC-TBZ48.xml                    |  165 +-
 Config/linear/LB60Z-1.xml                     |   64 +-
 Config/linear/PD300Z-2.xml                    |    2 +-
 Config/linear/WA00Z-1.xml                     |    9 +-
 Config/linear/WA105DBZ-1.xml                  |   45 +-
 Config/linear/WADWAZ-1.xml                    |   52 +-
 Config/linear/WAPIRZ-1.xml                    |    2 +-
 Config/linear/WD500Z-1.xml                    |    2 +-
 Config/linear/WD500Z5-1.xml                   |    2 +-
 Config/linear/WS15Z-1.xml                     |    2 +-
 Config/linear/WT00Z-1.xml                     |    2 +-
 Config/linear/ngd00z.xml                      |   20 +
 Config/logicsoft/ZHC5002.xml                  |    2 +-
 Config/logicsoft/ZHC5010.xml                  |  429 +-
 Config/manufacturer_specific.xml              | 4080 ++++++++---------
 Config/manufacturer_specific.xsd              |    5 +-
 Config/mcohome/a8-9.xml                       |    2 +-
 Config/mcohome/mh7h.xml                       |   67 +-
 Config/mcohome/mh8fceu.xml                    |   52 +-
 Config/mcohome/mh9co2.xml                     |    2 +-
 Config/mcohome/mhp210.xml                     |    4 +-
 Config/mcohome/mhs311.xml                     |    4 +-
 Config/mcohome/mhs312.xml                     |   27 +-
 Config/mcohome/mhs314.xml                     |   38 +-
 Config/mcohome/mhs411.xml                     |    4 +-
 Config/mcohome/mhs412.xml                     |   27 +-
 Config/mcohome/mhs513.xml                     |   29 +-
 Config/merten/5044xx.xml                      |   24 +
 Config/merten/5046xx.xml                      |   15 +
 Config/merten/506004.xml                      |   21 +
 Config/merten/507801.xml                      |   31 +-
 Config/merten/508244.xml                      |   21 +
 Config/merten/50x5xx.xml                      |   56 +-
 Config/miyakawaelectric/me-d101.xml           |   15 +
 Config/nexia/db100z.xml                       |   63 +-
 Config/nodon/asp3100SmartPlug.xml             |  186 +-
 Config/nodon/crc3100OctanRemote.xml           |  162 +-
 Config/nodon/crc360xSofremote.xml             |  159 +-
 Config/nodon/cws3101wallswitch.xml            |  162 +-
 Config/nodon/msp31xxMicroSmartPlug.xml        |    2 +-
 Config/northq/nq9021.xml                      |  109 +-
 Config/northq/nq9121.xml                      |   32 +-
 Config/northq/nq92021.xml                     |   43 +-
 Config/oomi/ft100.xml                         |  356 +-
 Config/oomi/ft111.xml                         |    2 +-
 Config/options.xml                            |    4 +-
 Config/options.xsd                            |    4 +-
 Config/philio/pad02.xml                       |    4 +-
 Config/philio/pan03.xml                       |  119 +-
 Config/philio/pan04.xml                       |  122 +-
 Config/philio/pan05.xml                       |   81 +
 Config/philio/pan06.xml                       |  128 +-
 Config/philio/pan07.xml                       |  120 +-
 Config/philio/pan08.xml                       |   93 +-
 Config/philio/pan11-1.xml                     |   27 +
 Config/philio/pan11.xml                       |  127 +-
 Config/philio/pan16.xml                       |    4 +-
 Config/philio/phpab01.xml                     |   77 +-
 Config/philio/phpat02.xml                     |  136 +-
 Config/philio/phpsg01.xml                     |   67 +-
 Config/philio/pse02.xml                       |   59 +-
 Config/philio/psm02.xml                       |  110 +-
 Config/philio/psp05.xml                       |    2 +-
 Config/philio/psr03-1b.xml                    |  139 +-
 Config/philio/psr04.xml                       |   71 +-
 Config/philio/pst02-1c.xml                    |   91 +-
 Config/philio/pst02-b.xml                     |   98 +-
 Config/philio/pst02.xml                       |  123 +-
 Config/polycontrol/doorlock.xml               |  168 +-
 Config/polycontrol/doorlockv3.xml             |   76 +-
 Config/polycontrol/keypad.xml                 |   49 +-
 Config/polycontrol/polylock.xml               |   69 +-
 Config/popp/004407.xml                        |    2 +-
 Config/popp/009105.xml                        |    4 +-
 Config/popp/009303.xml                        |    2 +-
 Config/popp/009402.xml                        |    2 +-
 Config/popp/009501.xml                        |    2 +-
 Config/popp/012501.xml                        |    2 +-
 Config/popp/123580.xml                        |    2 +-
 Config/popp/123601.xml                        |    2 +-
 Config/popp/123658.xml                        |    2 +-
 Config/popp/700045.xml                        |    2 +-
 Config/popp/700168.xml                        |    2 +-
 Config/popp/700397.xml                        |  129 +
 Config/popp/700793.xml                        |   22 +
 Config/popp/smoke-detector.xml                |    2 +-
 Config/popp/solar-siren.xml                   |    2 +-
 Config/popp/zweather.xml                      |    2 +-
 Config/prowell/zw-702.xml                     |   18 +
 Config/qees/reto-dimmer-plus.xml              |   51 +-
 Config/qees/reto-plugin-switch.xml            |   49 +-
 Config/qubino/ZMNHAA2.xml                     |    2 +-
 Config/qubino/ZMNHADx.xml                     |  254 +-
 Config/qubino/ZMNHBA2.xml                     |    2 +-
 Config/qubino/ZMNHBDx.xml                     |  214 +-
 Config/qubino/ZMNHCA2.xml                     |    2 +-
 Config/qubino/ZMNHCDx.xml                     |  165 +-
 Config/qubino/ZMNHDA2.xml                     |  157 +-
 Config/qubino/ZMNHDDx.xml                     |  290 +-
 Config/qubino/ZMNHIA2.xml                     |  176 +-
 Config/qubino/ZMNHIDxS1.xml                   |    8 +-
 Config/qubino/ZMNHIDxS2.xml                   |  354 +-
 Config/qubino/ZMNHJA2.xml                     |  186 +-
 Config/qubino/ZMNHJD1.xml                     |  186 +-
 Config/qubino/ZMNHKDx.xml                     |  291 +-
 Config/qubino/ZMNHLAx.xml                     |  284 +-
 Config/qubino/ZMNHLDx.xml                     |  382 +-
 Config/qubino/ZMNHNDx.xml                     |  201 +-
 Config/qubino/ZMNHODx.xml                     |    2 +-
 Config/qubino/ZMNHSDx.xml                     |  197 +-
 Config/qubino/ZMNHTDx.xml                     |  254 +-
 Config/qubino/ZMNHTDxS3.xml                   |   18 +-
 Config/qubino/ZMNHUD1.xml                     |  108 +-
 Config/qubino/ZMNHVDx.xml                     |    2 +-
 Config/qubino/ZMNHWD1.xml                     |   75 +-
 Config/qubino/ZMNHXDx.xml                     |  127 +-
 Config/qubino/ZMNHYDx.xml                     |    4 +-
 Config/qubino/ZMNHZDx.xml                     |  201 +-
 Config/qubino/ZMNKIDx.xml                     |  170 +
 Config/quby/qb2.xml                           |   15 +
 Config/rcs/em52-zw.xml                        |   38 +-
 Config/rcs/pm12-zw.xml                        |    2 +-
 Config/rcs/therm0005.xml                      |   43 +-
 Config/rcs/therm0007.xml                      |   80 +-
 Config/rcs/therm0009.xml                      |   36 +-
 Config/remotec/bw8120eu.xml                   |   14 +
 Config/remotec/zfm-80.xml                     |   74 +-
 Config/remotec/zrc-90.xml                     |    2 +-
 Config/remotec/zts-110.xml                    |  149 +-
 Config/remotec/zts-500.xml                    |  231 +-
 Config/remotec/zurc.xml                       |   54 +-
 Config/remotec/zxt-120.xml                    |  226 +-
 Config/remotec/zxt-310.xml                    |   66 +
 Config/remotec/zxt-600.xml                    |  268 +-
 Config/schlage/BE468.xml                      |    2 +-
 Config/schlage/BE469.xml                      |  173 +-
 Config/schlage/BE469ZP.xml                    |    2 +-
 Config/schlage/fe599.xml                      |   17 +
 Config/schlagelink/41.xml                     |   15 +
 Config/schlagelink/itemp.xml                  |    2 +-
 Config/schlagelink/minikeypad.xml             |   72 +-
 Config/sensative/strips.xml                   |    2 +-
 Config/sensative/stripscomfort.xml            |    2 +-
 Config/sercomm/sw-clp01-eu.xml                |   14 +
 Config/shenzen_neo/ls01ch.xml                 |    2 +-
 Config/shenzen_neo/ls02ch.xml                 |    2 +-
 Config/shenzen_neo/nas-ab01z.xml              |    2 +-
 Config/shenzen_neo/nas-ds01z.xml              |    2 +-
 Config/shenzen_neo/nas-pd01z.xml              |    2 +-
 Config/shenzen_neo/nas-pd02z.xml              |    2 +-
 Config/shenzen_neo/nas-rc01z.xml              |    2 +-
 Config/shenzen_neo/nas-wr01z.xml              |    2 +-
 Config/shenzen_neo/nas-wr01ze.xml             |    2 +-
 Config/shenzen_neo/nas-ws02z.xml              |    2 +-
 Config/simon/10002034-13X.xml                 |   93 +-
 Config/simon/10002041-13X.xml                 |  129 +-
 Config/smartthings/pgc401m.xml                |   15 +
 Config/smartthings/sth-eth200.xml             |   38 +
 Config/somfy/1811265_ZRTSI.xml                |   17 +
 Config/steinel/is140-2.xml                    |    2 +-
 Config/steinel/l810-led-ihf.xml               |    3 +-
 Config/steinel/rs-led-d2.xml                  |    2 +-
 Config/steinel/xled-home-2.xml                |    2 +-
 Config/stelpro/stzw402.xml                    |   14 +-
 .../srzv9001t4dimeu.xml}                      |    6 +-
 Config/sunricher/srzv9101sachpeu.xml          |  147 +
 Config/sunricher/zv9101.xml                   |   63 +
 Config/swiid/swiidinter.xml                   |   50 +-
 Config/swiid/swiidplug.xml                    |    2 +-
 Config/telldus/TZWP102.xml                    |    2 +-
 Config/telldus/tzdw100.xml                    |  132 +-
 Config/telldus/tzwp100.xml                    |    5 +-
 Config/there/800z.xml                         |   22 +
 Config/thermofloor/heatit021.xml              |  244 +-
 Config/thermofloor/heatit033.xml              |  154 -
 Config/thermofloor/heatit056.xml              |  266 +-
 Config/trane/TZEMT400AB32MAA.xml              |  993 ++--
 Config/trane/TZEMT400BB32MAA.xml              |  989 ++--
 Config/trane/TZEMT524AA21MA.xml               |  462 +-
 Config/vera/vera2.xml                         |   23 +
 Config/vision/1701.xml                        |   36 +
 Config/vision/brg1-433.xml                    |   15 +
 Config/vision/zd2102.xml                      |   84 +-
 Config/vision/zd2105us5.xml                   |   29 +-
 Config/vision/zd2201.xml                      |   78 +-
 Config/vision/zd2301.xml                      |  102 +-
 Config/vision/zf5201.xml                      |   23 +-
 Config/vision/zg8101.xml                      |   25 +-
 Config/vision/zl7101us.xml                    |   25 +
 Config/vision/zl7201us.xml                    |   23 +
 Config/vision/zl7261.xml                      |    2 +-
 Config/vision/zl7431.xml                      |    2 +-
 Config/vision/zm1601eu.xml                    |   78 +-
 Config/vision/zm1601eu5.xml                   |   89 +-
 Config/vision/zm1602eu.xml                    |   45 +-
 Config/vision/zm1602eu5.xml                   |   72 +-
 Config/vision/zp3102.xml                      |  101 +-
 Config/vision/zp3111.xml                      |   77 +-
 Config/vision/zr1202us.xml                    |   14 +
 Config/vision/zs5101eu.xml                    |   21 +-
 Config/vision/zs610eu.xml                     |   27 +
 Config/vision/zu1401jp.xml                    |   14 +
 Config/vitrum/vitrumBS.xml                    |    5 -
 Config/vitrum/vitrumI-Dimmer.xml              |   34 +
 Config/vitrum/vitrumI-Switch.xml              |   33 +
 Config/vitrum/vitrumII-Blind.xml              |   26 +
 Config/vitrum/vitrumII-Dimmer.xml             |   41 +
 Config/vitrum/vitrumII-Switch.xml             |   37 +
 Config/vitrum/vitrumIII-Dimmer.xml            |    9 +
 Config/vitrum/vitrumIII-Switch.xml            |    9 +
 Config/vitrum/vitrumIV-Switch.xml             |    9 +
 Config/vitrum/vitrumVI-Switch.xml             |    9 +
 Config/waynedalton/WDTC-20.xml                |   12 +-
 Config/wenzhou/sm103.xml                      |   59 +-
 Config/wenzhou/tsp01.xml                      |  145 +-
 Config/wenzhou/tz55.xml                       |   61 +-
 Config/wenzhou/tz56.xml                       |    2 +-
 Config/wenzhou/tz56s.xml                      |    2 +-
 Config/wenzhou/tz57.xml                       |    4 +-
 Config/wenzhou/tz65d.xml                      |   94 +-
 Config/wenzhou/tz66d.xml                      |   79 +-
 Config/wenzhou/tz67.xml                       |   53 +-
 Config/wenzhou/tz68.xml                       |   58 +-
 Config/wenzhou/tz69.xml                       |    4 +-
 Config/wenzhou/tz74.xml                       |    2 +-
 Config/wenzhou/tz79.xml                       |    2 +-
 Config/wenzhou/tz88.xml                       |   40 +-
 Config/widom/UBS104.xml                       |  546 ++-
 Config/widom/UME304C_S.xml                    |  373 +-
 Config/widom/WDS.xml                          |  187 +-
 Config/zipato/MiniKeypad.xml                  |   32 +-
 Config/zipato/RGBBulb.xml                     |   43 +-
 Config/zipato/RGBBulb2.xml                    |    2 +-
 Config/zipato/pan04.xml                       |  128 +-
 Config/zipato/vszd2102.xml                    |   33 +-
 Config/zipato/zp3102.xml                      |   62 +-
 Config/zooz/zen06.xml                         |    2 +-
 Config/zooz/zen07.xml                         |    4 +-
 Config/zooz/zen15.xml                         |    2 +-
 Config/zooz/zen20.xml                         |    2 +-
 Config/zooz/zen20v2.xml                       |    2 +-
 Config/zooz/zen21.xml                         |    2 +-
 Config/zooz/zen21v2.xml                       |   50 +
 Config/zooz/zen22.xml                         |    2 +-
 Config/zooz/zen22v2.xml                       |    2 +-
 Config/zooz/zen23.xml                         |    2 +-
 Config/zooz/zen24.xml                         |    2 +-
 Config/zooz/zen25.xml                         |   96 +
 Config/zooz/zen26.xml                         |    2 +-
 Config/zooz/zen27.xml                         |    2 +-
 Config/zooz/zse08.xml                         |    2 +-
 Config/zooz/zse09.xml                         |    2 +-
 Config/zooz/zse18.xml                         |    2 +-
 Config/zooz/zse19.xml                         |    2 +-
 Config/zooz/zse30.xml                         |    2 +-
 Config/zooz/zse33.xml                         |    2 +-
 Config/zooz/zse40.xml                         |   92 +-
 Config/zwave.me/004001.xml                    |   30 +
 Config/zwave.me/ZME_05431.xml                 |  191 +-
 Config/zwave.me/ZME_05461.xml                 |    6 +-
 Config/zwave.me/ZME_06433.xml                 |  253 +-
 Config/zwave.me/ZME_06436.xml                 |  197 +-
 Config/zwave.me/ZME_064381.xml                |    4 +-
 Config/zwave.me/ZME_064435.xml                |  109 +-
 Config/zwave.me/ZME_KFOB-S.xml                |  204 +-
 Config/zwave.me/ZME_RC2.xml                   |    2 +-
 Config/zwave.me/ZME_WALLC-S.xml               |    4 +-
 Config/zwave.me/ZME_WCD2.xml                  |  178 +-
 Config/zwave.me/ZUno.xml                      |   57 +-
 Config/zwave.me/iTemp.xml                     |   23 +-
 Config/zwave.me/kfob.xml                      |  225 +-
 Config/zwave.me/popp_kfob-c.xml               |  230 +-
 Config/zwave.me/zme_raz5.xml                  |   28 +
 Config/zwave.me/zweather.xml                  |   63 +-
 Config/zwcfg.xsd                              |    4 +-
 Config/zwp/PA-100.xml                         |   27 +
 Config/zwp/WD-100.xml                         |    2 +-
 Config/zwscene.xsd                            |    4 +-
 History.txt                                   |    1 +
 hardware/OpenZWave.cpp                        |  488 +-
 hardware/openzwave/Bitfield.h                 |  150 +-
 hardware/openzwave/CompatOptionManager.h      |  141 +
 hardware/openzwave/DNSThread.h                |  101 +
 hardware/openzwave/Defs.h                     |   84 +-
 hardware/openzwave/Driver.h                   |  121 +-
 hardware/openzwave/Group.h                    |    2 +-
 hardware/openzwave/Http.h                     |  113 +
 hardware/openzwave/Localization.h             |  144 +
 hardware/openzwave/Manager.h                  |  443 +-
 hardware/openzwave/ManufacturerSpecificDB.h   |  154 +
 hardware/openzwave/Msg.h                      |    3 +-
 hardware/openzwave/Node.h                     |  211 +-
 hardware/openzwave/Notification.h             |   73 +-
 hardware/openzwave/NotificationCCTypes.h      |  101 +
 hardware/openzwave/OZWException.h             |    8 +-
 hardware/openzwave/TimerThread.h              |  185 +
 hardware/openzwave/Utils.h                    |   10 +
 hardware/openzwave/ZWSecurity.h               |   32 +-
 hardware/openzwave/command_classes/Alarm.h    |   25 +-
 .../command_classes/ApplicationStatus.h       |    1 +
 .../openzwave/command_classes/Association.h   |    3 +-
 .../AssociationCommandConfiguration.h         |    3 +-
 .../command_classes/BarrierOperator.h         |   70 +
 hardware/openzwave/command_classes/Basic.h    |   10 +-
 .../command_classes/BasicWindowCovering.h     |    1 +
 hardware/openzwave/command_classes/Battery.h  |    3 +-
 .../openzwave/command_classes/CRC16Encap.h    |    1 +
 .../openzwave/command_classes/CentralScene.h  |   20 +-
 .../command_classes/ClimateControlSchedule.h  |    8 +-
 hardware/openzwave/command_classes/Clock.h    |    3 +-
 hardware/openzwave/command_classes/Color.h    |    7 +-
 .../openzwave/command_classes/CommandClass.h  |  299 +-
 .../command_classes/CommandClasses.h          |    9 +-
 .../openzwave/command_classes/Configuration.h |    5 +-
 .../command_classes/ControllerReplication.h   |    1 +
 .../command_classes/DeviceResetLocally.h      |    1 +
 hardware/openzwave/command_classes/DoorLock.h |   11 +-
 .../command_classes/DoorLockLogging.h         |    6 +-
 .../command_classes/EnergyProduction.h        |    3 +-
 hardware/openzwave/command_classes/Hail.h     |    1 +
 .../openzwave/command_classes/Indicator.h     |    3 +-
 hardware/openzwave/command_classes/Language.h |    3 +-
 hardware/openzwave/command_classes/Lock.h     |    3 +-
 .../command_classes/ManufacturerProprietary.h |   61 +
 .../command_classes/ManufacturerSpecific.h    |   77 +-
 hardware/openzwave/command_classes/Meter.h    |    3 +-
 .../openzwave/command_classes/MeterPulse.h    |    3 +-
 .../command_classes/MultiChannelAssociation.h |    4 +-
 hardware/openzwave/command_classes/MultiCmd.h |    1 +
 .../openzwave/command_classes/MultiInstance.h |   22 +-
 .../openzwave/command_classes/NoOperation.h   |    1 +
 .../openzwave/command_classes/NodeNaming.h    |   22 +-
 .../openzwave/command_classes/Powerlevel.h    |    3 +-
 .../openzwave/command_classes/Proprietary.h   |    1 +
 .../openzwave/command_classes/Protection.h    |    3 +-
 .../command_classes/SceneActivation.h         |   12 +-
 hardware/openzwave/command_classes/Security.h |   13 +-
 .../openzwave/command_classes/SensorAlarm.h   |    3 +-
 .../openzwave/command_classes/SensorBinary.h  |    3 +-
 .../command_classes/SensorMultilevel.h        |    7 +-
 hardware/openzwave/command_classes/SimpleAV.h |   29 +
 .../command_classes/SimpleAVCommandItem.h     |   25 +
 .../openzwave/command_classes/SoundSwitch.h   |   76 +
 .../openzwave/command_classes/SwitchAll.h     |    3 +-
 .../openzwave/command_classes/SwitchBinary.h  |    6 +-
 .../command_classes/SwitchMultilevel.h        |    6 +-
 .../command_classes/SwitchToggleBinary.h      |    3 +-
 .../command_classes/SwitchToggleMultilevel.h  |    3 +-
 .../command_classes/ThermostatFanMode.h       |    3 +-
 .../command_classes/ThermostatFanState.h      |    3 +-
 .../command_classes/ThermostatMode.h          |    4 +-
 .../ThermostatOperatingState.h                |    3 +-
 .../command_classes/ThermostatSetpoint.h      |    7 +-
 .../command_classes/TimeParameters.h          |    3 +-
 hardware/openzwave/command_classes/UserCode.h |   20 +-
 hardware/openzwave/command_classes/Version.h  |    7 +-
 hardware/openzwave/command_classes/WakeUp.h   |   12 +-
 .../openzwave/command_classes/ZWavePlusInfo.h |    3 +-
 hardware/openzwave/platform/Controller.h      |   17 +-
 hardware/openzwave/platform/DNS.h             |   78 +
 hardware/openzwave/platform/Event.h           |    1 +
 hardware/openzwave/platform/FileOps.h         |   43 +-
 hardware/openzwave/platform/HidController.h   |    4 +
 hardware/openzwave/platform/HttpClient.h      |  384 ++
 hardware/openzwave/platform/Log.h             |   61 +-
 hardware/openzwave/platform/Mutex.h           |    1 +
 hardware/openzwave/platform/Ref.h             |    1 +
 .../openzwave/platform/SerialController.h     |    3 +
 hardware/openzwave/platform/Stream.h          |    1 +
 hardware/openzwave/platform/Thread.h          |    1 +
 hardware/openzwave/platform/TimeStamp.h       |    1 +
 hardware/openzwave/platform/Wait.h            |    1 +
 hardware/openzwave/value_classes/Value.h      |   16 +-
 .../openzwave/value_classes/ValueBitSet.h     |   97 +
 hardware/openzwave/value_classes/ValueBool.h  |    3 +-
 .../openzwave/value_classes/ValueButton.h     |    5 +-
 hardware/openzwave/value_classes/ValueByte.h  |    3 +-
 .../openzwave/value_classes/ValueDecimal.h    |    3 +-
 hardware/openzwave/value_classes/ValueID.h    |  104 +-
 hardware/openzwave/value_classes/ValueInt.h   |    3 +-
 hardware/openzwave/value_classes/ValueList.h  |    3 +-
 hardware/openzwave/value_classes/ValueRaw.h   |    3 +-
 .../openzwave/value_classes/ValueSchedule.h   |    3 +-
 hardware/openzwave/value_classes/ValueShort.h |    3 +-
 hardware/openzwave/value_classes/ValueStore.h |    1 +
 .../openzwave/value_classes/ValueString.h     |    3 +-
 msbuild/Debug/OpenZWaved.dll                  |  Bin 2053120 -> 2865664 bytes
 msbuild/domoticz.vcxproj                      |    2 +-
 768 files changed, 31968 insertions(+), 20062 deletions(-)
 create mode 100644 Config/BeNext/mydisplay.xml
 create mode 100644 Config/BeNext/mygate.xml
 create mode 100644 Config/Localization.xml
 create mode 100644 Config/Localization.xsd
 create mode 100644 Config/NotificationCCTypes.xml
 create mode 100644 Config/NotificationCCTypes.xsd
 create mode 100644 Config/act/zdp100.xml
 create mode 100644 Config/act/zrm230.xml
 create mode 100644 Config/act/zrp100.xml
 create mode 100644 Config/act/zrw230.xml
 create mode 100644 Config/aeotec/dsb28-zweu.xml
 create mode 100644 Config/aeotec/zwa008.xml
 create mode 100644 Config/airlinemechanical/zds-ud10.xml
 create mode 100644 Config/buffalo/hw-100v15a-zw.xml
 create mode 100644 Config/comfort/ucm.xml
 create mode 100644 Config/cooper/RF9505-T.xml.zip
 create mode 100644 Config/cooper/rf9534.xml
 create mode 100644 Config/diehlcontrols/766366.xml
 create mode 100644 Config/duwi/zw-edan-300.xml
 create mode 100644 Config/duwi/zw-zdan-300.xml
 create mode 100644 Config/duwi/zwws.xml
 create mode 100644 Config/ecolink/tiltsensor.xml
 create mode 100644 Config/enblink/ss201-us-w_1308.xml
 create mode 100644 Config/everspring/an157.xml
 create mode 100644 Config/everspring/han01.xml
 create mode 100644 Config/everspring/han02-1.xml
 create mode 100644 Config/everspring/lptdm1u.xml
 create mode 100644 Config/evolve/lfm-20.xml
 create mode 100644 Config/fakro/arz.xml
 create mode 100644 Config/fibaro/fgbs222.xml
 create mode 100644 Config/followgood/swz-1002.xml
 create mode 100644 Config/fortrezz/gdc1_fortrezz_1501.xml
 create mode 100644 Config/fortrezz/wwa-01aa.xml
 create mode 100644 Config/frostdale/fdn2311.xml
 create mode 100644 Config/ge/12727.xml
 create mode 100644 Config/ge/45604.xml
 create mode 100644 Config/gr/grb3.xml
 create mode 100644 Config/greenwave/gs1110-1-gr-1.xml
 rename Config/hank/{hkzw-ms02.xml => hkzw-ms02-200.xml} (97%)
 create mode 100644 Config/hank/hkzw-ms02-300.xml
 create mode 100644 Config/heiman/HS2WD-Z.xml
 create mode 100644 Config/homeseer/hs-fs100plus.xml
 create mode 100644 Config/honeywell/th6320zw2003.xml
 create mode 100644 Config/horstmann/ses301.xml
 create mode 100644 Config/icare/zw-66.xml
 create mode 100644 Config/iwatsu/ne-4ct-2p.xml
 create mode 100644 Config/iwatsu/ne-4ct.xml
 create mode 100644 Config/jasco/45601.xml
 create mode 100644 Config/leviton/vrcs2.xml
 create mode 100644 Config/leviton/vrcz4.xml
 create mode 100644 Config/leviton/vrs15.xml
 create mode 100644 Config/linear/ngd00z.xml
 create mode 100644 Config/merten/5044xx.xml
 create mode 100644 Config/merten/5046xx.xml
 create mode 100644 Config/merten/506004.xml
 create mode 100644 Config/merten/508244.xml
 create mode 100644 Config/miyakawaelectric/me-d101.xml
 create mode 100644 Config/philio/pan05.xml
 create mode 100644 Config/philio/pan11-1.xml
 create mode 100644 Config/popp/700397.xml
 create mode 100644 Config/popp/700793.xml
 create mode 100644 Config/prowell/zw-702.xml
 create mode 100644 Config/qubino/ZMNKIDx.xml
 create mode 100644 Config/quby/qb2.xml
 create mode 100644 Config/remotec/bw8120eu.xml
 create mode 100644 Config/remotec/zxt-310.xml
 create mode 100644 Config/schlage/fe599.xml
 create mode 100644 Config/schlagelink/41.xml
 create mode 100644 Config/sercomm/sw-clp01-eu.xml
 create mode 100644 Config/smartthings/pgc401m.xml
 create mode 100644 Config/smartthings/sth-eth200.xml
 create mode 100644 Config/somfy/1811265_ZRTSI.xml
 rename Config/{tronika/zsc01d.xml => sunricher/srzv9001t4dimeu.xml} (70%)
 create mode 100644 Config/sunricher/srzv9101sachpeu.xml
 create mode 100644 Config/sunricher/zv9101.xml
 create mode 100644 Config/there/800z.xml
 delete mode 100644 Config/thermofloor/heatit033.xml
 create mode 100644 Config/vera/vera2.xml
 create mode 100644 Config/vision/1701.xml
 create mode 100644 Config/vision/brg1-433.xml
 create mode 100644 Config/vision/zl7101us.xml
 create mode 100644 Config/vision/zl7201us.xml
 create mode 100644 Config/vision/zr1202us.xml
 create mode 100644 Config/vision/zs610eu.xml
 create mode 100644 Config/vision/zu1401jp.xml
 delete mode 100644 Config/vitrum/vitrumBS.xml
 create mode 100644 Config/vitrum/vitrumI-Dimmer.xml
 create mode 100644 Config/vitrum/vitrumI-Switch.xml
 create mode 100644 Config/vitrum/vitrumII-Blind.xml
 create mode 100644 Config/vitrum/vitrumII-Dimmer.xml
 create mode 100644 Config/vitrum/vitrumII-Switch.xml
 create mode 100644 Config/vitrum/vitrumIII-Dimmer.xml
 create mode 100644 Config/vitrum/vitrumIII-Switch.xml
 create mode 100644 Config/vitrum/vitrumIV-Switch.xml
 create mode 100644 Config/vitrum/vitrumVI-Switch.xml
 create mode 100644 Config/zooz/zen21v2.xml
 create mode 100644 Config/zooz/zen25.xml
 create mode 100644 Config/zwave.me/004001.xml
 create mode 100644 Config/zwave.me/zme_raz5.xml
 create mode 100644 Config/zwp/PA-100.xml
 create mode 100644 hardware/openzwave/CompatOptionManager.h
 create mode 100644 hardware/openzwave/DNSThread.h
 create mode 100644 hardware/openzwave/Http.h
 create mode 100644 hardware/openzwave/Localization.h
 create mode 100644 hardware/openzwave/ManufacturerSpecificDB.h
 create mode 100644 hardware/openzwave/NotificationCCTypes.h
 create mode 100644 hardware/openzwave/TimerThread.h
 create mode 100644 hardware/openzwave/command_classes/BarrierOperator.h
 create mode 100644 hardware/openzwave/command_classes/ManufacturerProprietary.h
 create mode 100644 hardware/openzwave/command_classes/SimpleAV.h
 create mode 100644 hardware/openzwave/command_classes/SimpleAVCommandItem.h
 create mode 100644 hardware/openzwave/command_classes/SoundSwitch.h
 create mode 100644 hardware/openzwave/platform/DNS.h
 create mode 100644 hardware/openzwave/platform/HttpClient.h
 create mode 100644 hardware/openzwave/value_classes/ValueBitSet.h

diff --git a/.travis.yml b/.travis.yml
index 945acdf428..cfd54b7eca 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -71,7 +71,7 @@ matrix:
       - ./b2 stage threading=multi link=static --with-thread --with-system --with-chrono >> /dev/null 2>&1
       - sudo ./b2 install threading=multi link=static --with-thread --with-system --with-chrono >> /dev/null 2>&1
       - cd ..
-      - (cd open-zwave-read-only; git checkout v1.4-3335-g74e05982; patch -p1 < ../patches/domoticz-open-zwave.patch; make)
+      - (cd open-zwave-read-only; make)
       - cmake -DCMAKE_BUILD_TYPE=Release -DUSE_OPENSSL_STATIC="NO" -DCMAKE_LIBRARY_PATH=open-zwave-read-only CMakeLists.txt
       - make
   # Apple OSX
diff --git a/Config/2gig/ct100.xml b/Config/2gig/ct100.xml
index e42ad1e229..ae4c3240fb 100644
--- a/Config/2gig/ct100.xml
+++ b/Config/2gig/ct100.xml
@@ -1,5 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0098:0106:6401</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/2gig/ct100.png</MetaDataItem>
+    <MetaDataItem id="0106" name="ZWProductPage" type="6401">https://products.z-wavealliance.org/products/795/</MetaDataItem>
+    <MetaDataItem id="0106" name="FrequencyName" type="6401">Australia / New Zealand / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">CT100-US Thermostat</MetaDataItem>
+    <MetaDataItem name="Description">ENERGY MANAGEMENT MADE EASY. 
+
+The CT100 brings together everything you need to create an energy-intelligent home: remote control, seven-day programming, and seamless integration with the Go!Control panel. 
+
+•	Ultra Slim Form Factor 
+•	Two Year Battery Life 
+•	4 Stage Heat, 2 Cool 
+•	Bright Display with Touch Screen 
+•	Improved Z-Wave Range 
+•	Auto Mode 
+•	Improved User Experience </MetaDataItem>
+    <MetaDataItem id="0106" name="Identifier" type="6401">CT100-US</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/782/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/795/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!--
 	Radio Thermostat Company of America CT100 Plus Thermostat manual available at:
 	https://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1798/CT100_Plus_UserGuide_20160504.pdf
@@ -7,9 +29,13 @@
 	https://products.z-wavealliance.org/products/1798
 	-->
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0" />
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="Temperature Reporting Threshold" units="F" min="0" max="4" value="2" size="1">
+    <Value genre="config" index="1" label="Temperature Reporting Threshold" max="4" min="0" size="1" type="list" units="F" value="2">
       <Help>
         The Temperature Reporting Threshold Configuration Set Command sets the reporting threshold for changes in the ambient temperature as detected by the thermostat.
       </Help>
@@ -19,7 +45,7 @@
       <Item label="1.5F" value="3"/>
       <Item label="2.0F" value="4"/>
     </Value>
-    <Value type="list" index="2" genre="config" label="HVAC Settings" read_only="true" units="" min="0" max="2147483647" value="17891585" size="4">
+    <Value genre="config" index="2" label="HVAC Settings" max="2147483647" min="0" read_only="true" size="4" type="list" units="" value="17891585">
       <Help>
         Bits 0 - 7 -> HVAC Setup: Normal (0x01) or Heat Pump (0x02)
         Bits 8 - 11 -> Number of Auxiliary Stages (Heat Pump) / Number of Heat Stages (Normal)
@@ -27,40 +53,74 @@
         Bits 16 - 23 -> Number of Heat Pump Stages
         Bits 24 - 31 -> Number of Cool Stages
       </Help>
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="17891585"/>    <!-- 0x01,0x1,0x1,0x01,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="34668801"/> <!-- 0x02,0x1,0x1,0x01,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="18940161"/>    <!-- 0x01,0x2,0x1,0x01,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="35717377"/> <!-- 0x02,0x2,0x1,0x01,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="17957121"/>   <!-- 0x01,0x1,0x2,0x01,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="34734337"/><!-- 0x02,0x1,0x2,0x01,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="19005697"/>   <!-- 0x01,0x2,0x2,0x01,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="35782913"/><!-- 0x02,0x2,0x2,0x01,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="17891841"/>    <!-- 0x01,0x1,0x1,0x02,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="34669057"/> <!-- 0x02,0x1,0x1,0x02,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="18940417"/>    <!-- 0x01,0x2,0x1,0x02,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="35717633"/> <!-- 0x02,0x2,0x1,0x02,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="17957377"/>   <!-- 0x01,0x1,0x2,0x02,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="34734593"/><!-- 0x02,0x1,0x2,0x02,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="19005953"/>   <!-- 0x01,0x2,0x2,0x02,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="35783169"/><!-- 0x02,0x2,0x2,0x02,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="17891586"/>    <!-- 0x01,0x1,0x1,0x01,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="34668802"/> <!-- 0x02,0x1,0x1,0x01,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="18940162"/>    <!-- 0x01,0x2,0x1,0x01,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="35717378"/> <!-- 0x02,0x2,0x1,0x01,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="17957122"/>   <!-- 0x01,0x1,0x2,0x01,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="34734338"/><!-- 0x02,0x1,0x2,0x01,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="19005698"/>   <!-- 0x01,0x2,0x2,0x01,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="35782914"/><!-- 0x02,0x2,0x2,0x01,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="17891842"/>    <!-- 0x01,0x1,0x1,0x02,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="34669058"/> <!-- 0x02,0x1,0x1,0x02,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="18940418"/>    <!-- 0x01,0x2,0x1,0x02,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="35717634"/> <!-- 0x02,0x2,0x1,0x02,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="17957378"/>   <!-- 0x01,0x1,0x2,0x02,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="34734594"/><!-- 0x02,0x1,0x2,0x02,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="19005954"/>   <!-- 0x01,0x2,0x2,0x02,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="35783170"/><!-- 0x02,0x2,0x2,0x02,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="17891585"/>
+      <!-- 0x01,0x1,0x1,0x01,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="34668801"/>
+      <!-- 0x02,0x1,0x1,0x01,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="18940161"/>
+      <!-- 0x01,0x2,0x1,0x01,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="35717377"/>
+      <!-- 0x02,0x2,0x1,0x01,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="17957121"/>
+      <!-- 0x01,0x1,0x2,0x01,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="34734337"/>
+      <!-- 0x02,0x1,0x2,0x01,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="19005697"/>
+      <!-- 0x01,0x2,0x2,0x01,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="35782913"/>
+      <!-- 0x02,0x2,0x2,0x01,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="17891841"/>
+      <!-- 0x01,0x1,0x1,0x02,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="34669057"/>
+      <!-- 0x02,0x1,0x1,0x02,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="18940417"/>
+      <!-- 0x01,0x2,0x1,0x02,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="35717633"/>
+      <!-- 0x02,0x2,0x1,0x02,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="17957377"/>
+      <!-- 0x01,0x1,0x2,0x02,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="34734593"/>
+      <!-- 0x02,0x1,0x2,0x02,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="19005953"/>
+      <!-- 0x01,0x2,0x2,0x02,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="35783169"/>
+      <!-- 0x02,0x2,0x2,0x02,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="17891586"/>
+      <!-- 0x01,0x1,0x1,0x01,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="34668802"/>
+      <!-- 0x02,0x1,0x1,0x01,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="18940162"/>
+      <!-- 0x01,0x2,0x1,0x01,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="35717378"/>
+      <!-- 0x02,0x2,0x1,0x01,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="17957122"/>
+      <!-- 0x01,0x1,0x2,0x01,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="34734338"/>
+      <!-- 0x02,0x1,0x2,0x01,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="19005698"/>
+      <!-- 0x01,0x2,0x2,0x01,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="35782914"/>
+      <!-- 0x02,0x2,0x2,0x01,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="17891842"/>
+      <!-- 0x01,0x1,0x1,0x02,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="34669058"/>
+      <!-- 0x02,0x1,0x1,0x02,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="18940418"/>
+      <!-- 0x01,0x2,0x1,0x02,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="35717634"/>
+      <!-- 0x02,0x2,0x1,0x02,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="17957378"/>
+      <!-- 0x01,0x1,0x2,0x02,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="34734594"/>
+      <!-- 0x02,0x1,0x2,0x02,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="19005954"/>
+      <!-- 0x01,0x2,0x2,0x02,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="35783170"/>
+    
+    
+    <!-- 0x02,0x2,0x2,0x02,0x02 -->
     </Value>
-    <Value type="list" index="3" genre="config" label="Utility Lock" write_only="true" units="" min="0" max="255" value="0" size="1">
+    <Value genre="config" index="3" label="Utility Lock" max="255" min="0" size="1" type="list" units="" value="0" write_only="true">
       <Help>
         The Utility Lock Configuration Set command enables or disables the utility lock.
         If the utility lock is enabled, the setpoint cannot be modified directly via the thermostat screen.
@@ -68,7 +128,7 @@
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" index="4" genre="config" label="C-Wire/Battery Status" read_only="true" units="" min="1" max="2" value="1" size="1">
+    <Value genre="config" index="4" label="C-Wire/Battery Status" max="2" min="1" read_only="true" size="1" type="list" units="" value="1">
       <Help>
         1 -> C-Wire
         2 -> Battery
@@ -76,7 +136,7 @@
       <Item label="C-Wire" value="1"/>
       <Item label="Battery" value="2"/>
     </Value>
-    <Value type="list" index="5" genre="config" label="Humidity Reporting Threshold" units="% RH" min="0" max="3" value="2" size="1">
+    <Value genre="config" index="5" label="Humidity Reporting Threshold" max="3" min="0" size="1" type="list" units="% RH" value="2">
       <Help>
         The Humidity Reporting Threshold Configuration Set Command sets the reporting threshold for changes in the relative humidity as detected by the thermostat.
       </Help>
@@ -85,7 +145,7 @@
       <Item label="5" value="2"/>
       <Item label="10" value="3"/>
     </Value>
-    <Value type="list" index="6" genre="config" label="Auxiliary/Emergency heat" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="6" label="Auxiliary/Emergency heat" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         The Auxiliary/Emergency configuration command enables or disables auxiliary / emergency heating in the thermostat.
         Auxiliary / emergency heating is only available if the thermostat is configured in heat pump mode and with at least one stage of auxiliary heating.
@@ -96,7 +156,7 @@
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="7" genre="config" label="Thermostat Swing Temperature" units="F" min="1" max="8" value="2" size="1">
+    <Value genre="config" index="7" label="Thermostat Swing Temperature" max="8" min="1" size="1" type="list" units="F" value="2">
       <Help>
         Thermostat Swing Temperature configuration command sets the maximum allowed difference between ambient temperature and the set temperature.
       </Help>
@@ -109,7 +169,7 @@
       <Item label="3.5F" value="7"/>
       <Item label="4.0F" value="8"/>
     </Value>
-    <Value type="list" index="8" genre="config" label="Thermostat Differential Temperature" units="F" min="2" max="32767" value="4" size="2">
+    <Value genre="config" index="8" label="Thermostat Differential Temperature" max="32767" min="2" size="2" type="list" units="F" value="4">
       <Help>
         (Set Only) The Thermostat Differential Temperature configuration command sets the differential temperature for multi-stage HVAC systems.
         The differential temperature delta defines when the thermostat will turn on additional stages.
@@ -127,7 +187,7 @@
       <Item label="5.0F Cool" value="266"/>
       <Item label="6.0F Cool" value="268"/>
     </Value>
-    <Value type="list" index="9" genre="config" label="Thermostat Recovery Mode" units="" min="1" max="2" value="2" size="1">
+    <Value genre="config" index="9" label="Thermostat Recovery Mode" max="2" min="1" size="1" type="list" units="" value="2">
       <Help>
         The Thermostat Recovery Mode configuration command sets the HVAC recovery mode type.
         The recovery mode determines when additional HVAC stages are turned off as the ambient temperature returns to the target temperature.
@@ -137,7 +197,7 @@
       <Item label="Fast" value="1"/>
       <Item label="Economy" value="2"/>
     </Value>
-    <Value type="raw" index="10" genre="config" label="Temperature Reporting Filter" units="F" min="0" max="32767" size="4" value="0x09 0x00 0x09 0x00">
+    <Value genre="config" index="10" label="Temperature Reporting Filter" max="32767" min="0" size="4" type="raw" units="F" value="0x09 0x00 0x09 0x00">
       <Help>
         The Temperature Reporting Filter configuration command sets upper and lower bounds of the ambient temperature reporting.
         The thermostat won't report ambient temperature changes if the ambient temperature falls between these bounds.
@@ -154,21 +214,21 @@
         This will remove any bounds.
       </Help>
     </Value>
-    <Value type="list" index="11" genre="config" label="Simple UI Mode" units="" min="0" max="1" value="1" size="1">
+    <Value genre="config" index="11" label="Simple UI Mode" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>
         Simple UI Mode Enable/Disable
       </Help>
       <Item label="Enable" value="0"/>
       <Item label="Disable" value="1"/>
     </Value>
-    <Value type="list" index="12" genre="config" label="Multicast" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="12" label="Multicast" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         Multicasting Enable/Disable
       </Help>
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="14" genre="config" label="Save Energy Mode Type" units="" min="1" max="255" value="1" size="1" read_only="true">
+    <Value genre="config" index="14" label="Save Energy Mode Type" max="255" min="1" read_only="true" size="1" type="list" units="" value="1">
       <Help>
         1 -> Adjust by target delta
         2 -> Least consuming point in the running program
@@ -183,7 +243,7 @@
   </CommandClass>
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="2" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="2"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/2gig/ct101.xml b/Config/2gig/ct101.xml
index e5aa2ba8bf..695dd4f65e 100644
--- a/Config/2gig/ct101.xml
+++ b/Config/2gig/ct101.xml
@@ -1,7 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0" />
-
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/2gig/ct30.xml b/Config/2gig/ct30.xml
index bb9d36288e..605957f71a 100644
--- a/Config/2gig/ct30.xml
+++ b/Config/2gig/ct30.xml
@@ -1,10 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0"/>
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="Temperature Reporting Threshold" units="" min="0" max="4" value="0" size="1">
+    <Value genre="config" index="1" label="Temperature Reporting Threshold" max="4" min="0" size="1" type="list" units="" value="0">
       <Help>
         The Temperature Reporting Threshold Configuration Set Command sets the reporting threshold for changes in the ambient temperature as detected by the thermostat.
       </Help>
@@ -14,7 +16,7 @@
       <Item label="1.5F" value="3"/>
       <Item label="2.0F" value="4"/>
     </Value>
-    <Value type="byte" index="2" genre="config" label="HVAC Settings" read_only="true" units="" min="0" max="31" value="0" size="1">
+    <Value genre="config" index="2" label="HVAC Settings" max="31" min="0" read_only="true" size="1" type="byte" units="" value="0">
       <Help>
         Read-only parameter
         0 - 7 -> HVAC Setup: Normal (0x01) or Heat Pump (0x02)
@@ -24,21 +26,21 @@
         24 - 31 -> Number of Cool Stages
       </Help>
     </Value>
-    <Value type="list" index="3" genre="config" label="Utility Lock" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="3" label="Utility Lock" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         The Utility Lock Configuration Set command enables or disables the utility lock. If the utility lock is enabled, the setpoint cannot be modified directly via the thermostat screen.
       </Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="short" index="4" genre="config" label="C-Wire/Battery Status" read_only="true" units="" min="0" max="31" value="0" size="2">
+    <Value genre="config" index="4" label="C-Wire/Battery Status" max="31" min="0" read_only="true" size="2" type="short" units="" value="0">
       <Help>
         Read-only parameter
         1 -> C-Wire
         2 -> Battery
       </Help>
     </Value>
-    <Value type="list" index="5" genre="config" label="Humidity Reporting Threshold" units="" min="0" max="3" value="0" size="1">
+    <Value genre="config" index="5" label="Humidity Reporting Threshold" max="3" min="0" size="1" type="list" units="" value="0">
       <Help>
         The Temperature Reporting Threshold Configuration Set Command sets the reporting threshold for changes in the ambient temperature as detected by the thermostat.
       </Help>
@@ -47,7 +49,7 @@
       <Item label="5% RH" value="2"/>
       <Item label="10% RH" value="3"/>
     </Value>
-    <Value type="list" index="6" genre="config" label="Auxiliary/Emergency heat" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="6" label="Auxiliary/Emergency heat" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         The Auxiliary/Emergency configuration command enables or disables auxiliary / emergency heating in the thermostat. Auxiliary / emergency heating is only available if the thermostat is configured in heat pump mode and with at least one stage of auxiliary heating. This command enables auxiliary / emergency heating when the thermostat is in Auto mode. The Thermostat Set Mode command with mode Auxiliary/Emergency Heat will enable emergency heating but only if the thermostat is in
         Heat mode. This command should only be used on thermsotats that support Auxiliary/Emergency Heat thermostat mode.
@@ -55,7 +57,7 @@
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="7" genre="config" label="Thermostat Swing Temperature" units="" min="1" max="8" value="0" size="1">
+    <Value genre="config" index="7" label="Thermostat Swing Temperature" max="8" min="1" size="1" type="list" units="" value="0">
       <Help>
         The Auxiliary/Emergency configuration command enables or disables auxiliary/emergency heating in the thermostat. Auxiliary/emergency heating is only available if the thermostat is configured in heat pump mode and with at least one stage of auxiliary heating. This command enables auxiliary / emergency heating when the thermostat is in Auto mode. The Thermostat Set Mode command with mode Auxiliary/Emergency Heat will enable emergency heating but only if the thermostat is in Heat
         mode. This command should only be used on thermsotats that support Auxiliary/Emergency Heat thermostat mode.
@@ -64,7 +66,7 @@
       <Item label="0.1F" value="2"/>
       <Item label="4.0F" value="8"/>
     </Value>
-    <Value type="list" index="8" genre="config" label="Thermostat Diff Temperature" units="" min="4" max="12" value="0" size="1">
+    <Value genre="config" index="8" label="Thermostat Diff Temperature" max="12" min="4" size="1" type="list" units="" value="0">
       <Help>
         The Thermostat Differential Temperature configuration command sets the differential temperature for multi-stage HVAC systems. The differential temperature delta defines when the thermostat will turn on additional stages. There are two differential temperatures, one for multistage cool systems and one for multistage heat systems. If the thermostat is not configured for multistage HVAC systems then these parameters have no effect.
       </Help>
@@ -72,7 +74,7 @@
       <Item label="4.0F" value="8"/>
       <Item label="6.0F" value="12"/>
     </Value>
-    <Value type="list" index="9" genre="config" label="Thermostat Recovery Mode" units="" min="4" max="12" value="1" size="1">
+    <Value genre="config" index="9" label="Thermostat Recovery Mode" max="12" min="4" size="1" type="list" units="" value="1">
       <Help>
         The Thermostat Recovery Mode configuration command sets the HVAC recovery mode type. The recovery mode determines when additional HVAC stages are turned off as the ambient temperature returns to the target temperature. If the recovery mode is set to economy, the thermostat will turn off additional HVAC stages when the ambient temperature reaches the target temperature plus/minus the differential temperature. If the recovery mode is set to fast, the thermostat will leave all
         stages on (assuming they were already on) until the ambient temperature reaches the target temperature.
@@ -80,7 +82,7 @@
       <Item label="Fast" value="1"/>
       <Item label="Economy" value="2"/>
     </Value>
-    <Value type="short" index="10" genre="config" label="Temperature Reporting Filter" units="F" min="0" max="124" value="124" size="2">
+    <Value genre="config" index="10" label="Temperature Reporting Filter" max="124" min="0" size="2" type="short" units="F" value="124">
       <Help>
         The Temperature Reporting Filter configuration command sets upper and lower bounds of the ambient temperature reporting. The thermostat will not report ambient temperature changes if the ambient temperature falls between these bounds. For example, if the upper bound is 80F and the lower bound is 60F, the thermostat will not send SENSOR_MULTI_LEVEL_REPORTS for ambient temperature values between 60F and 80F. The thermostat will only send ambient temperature changes if the
         thermostat has been added to an association group (see Command Class Association) and the temperature reporting threshold is non-zero (see Temperature Reporting Threshold).
@@ -89,8 +91,7 @@
   </CommandClass>
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="2" label="Reporting"/>
+      <Group index="1" label="Reporting" max_associations="2"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/2gig/ct32.xml b/Config/2gig/ct32.xml
index 221634df15..04fbdc5577 100644
--- a/Config/2gig/ct32.xml
+++ b/Config/2gig/ct32.xml
@@ -1,14 +1,34 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0098:0100:2002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/2gig/ct32.png</MetaDataItem>
+    <MetaDataItem id="0100" name="ZWProductPage" type="2002">https://products.z-wavealliance.org/products/1330/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">When included into a Z-Wave network on battery power, this device is a FLiRS device. The Thermostat will wake up for communication when it receives a valid Z-Wave beam.</MetaDataItem>
+    <MetaDataItem id="0100" name="Identifier" type="2002">CT32 </MetaDataItem>
+    <MetaDataItem id="0100" name="FrequencyName" type="2002">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1330/RTZW-02_module_IB_11jun15_web.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Go to Menu screen, and press INCLUDE icon.</MetaDataItem>
+    <MetaDataItem name="Name">CT32</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Go to Menu screen, and press EXCLUDE icon.</MetaDataItem>
+    <MetaDataItem name="Description">The Z-Wave enabled CT32 thermostat is a compact, easy-to-use thermostat that is packed with functionality. The CT32 has a responsive touchscreen interface, easy-to-read backlight display, and 7-day programmability. It features a system lock to avoid unintentional changes for maximum efficiency, a filter change indicator to keep your HVAC system running efficiently, wide temperature operation range, and room temperature calibration for precise control.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">In Main menu, put thermostat in OFF mode. Press and hold center digits.  Use the reset procedure only when the primary controller is missing or inoperable.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1046/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1330/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!--
   CT32 (CT32 RTZW-02)
   https://products.z-wavealliance.org/products/1046
   -->
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0"/>
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="Temperature Reporting Threshold" units="" min="0" max="4" value="0" size="1">
+    <Value genre="config" index="1" label="Temperature Reporting Threshold" max="4" min="0" size="1" type="list" units="" value="0">
       <Help>
         The Temperature Reporting Threshold Configuration Set Command sets the reporting threshold for changes in the ambient temperature as detected by the thermostat.
       </Help>
@@ -18,7 +38,7 @@
       <Item label="1.5F" value="3"/>
       <Item label="2.0F" value="4"/>
     </Value>
-    <Value type="list" index="2" genre="config" label="HVAC Settings" read_only="true" units="" min="0" max="2147483647" value="17891585" size="4">
+    <Value genre="config" index="2" label="HVAC Settings" max="2147483647" min="0" read_only="true" size="4" type="list" units="" value="17891585">
       <Help>
         Bits 0 - 7 -> HVAC Setup: Normal (0x01) or Heat Pump (0x02)
         Bits 8 - 11 -> Number of Auxiliary Stages (Heat Pump) / Number of Heat Stages (Normal)
@@ -26,40 +46,74 @@
         Bits 16 - 23 -> Number of Heat Pump Stages
         Bits 24 - 31 -> Number of Cool Stages
       </Help>
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="17891585"/>    <!-- 0x01,0x1,0x1,0x01,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="34668801"/> <!-- 0x02,0x1,0x1,0x01,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="18940161"/>    <!-- 0x01,0x2,0x1,0x01,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="35717377"/> <!-- 0x02,0x2,0x1,0x01,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="17957121"/>   <!-- 0x01,0x1,0x2,0x01,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="34734337"/><!-- 0x02,0x1,0x2,0x01,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="19005697"/>   <!-- 0x01,0x2,0x2,0x01,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="35782913"/><!-- 0x02,0x2,0x2,0x01,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="17891841"/>    <!-- 0x01,0x1,0x1,0x02,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="34669057"/> <!-- 0x02,0x1,0x1,0x02,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="18940417"/>    <!-- 0x01,0x2,0x1,0x02,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="35717633"/> <!-- 0x02,0x2,0x1,0x02,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="17957377"/>   <!-- 0x01,0x1,0x2,0x02,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="34734593"/><!-- 0x02,0x1,0x2,0x02,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="19005953"/>   <!-- 0x01,0x2,0x2,0x02,0x01 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="35783169"/><!-- 0x02,0x2,0x2,0x02,0x01 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="17891586"/>    <!-- 0x01,0x1,0x1,0x01,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="34668802"/> <!-- 0x02,0x1,0x1,0x01,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="18940162"/>    <!-- 0x01,0x2,0x1,0x01,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="35717378"/> <!-- 0x02,0x2,0x1,0x01,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="17957122"/>   <!-- 0x01,0x1,0x2,0x01,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="34734338"/><!-- 0x02,0x1,0x2,0x01,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="19005698"/>   <!-- 0x01,0x2,0x2,0x01,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="35782914"/><!-- 0x02,0x2,0x2,0x01,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="17891842"/>    <!-- 0x01,0x1,0x1,0x02,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="34669058"/> <!-- 0x02,0x1,0x1,0x02,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="18940418"/>    <!-- 0x01,0x2,0x1,0x02,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="35717634"/> <!-- 0x02,0x2,0x1,0x02,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="17957378"/>   <!-- 0x01,0x1,0x2,0x02,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="34734594"/><!-- 0x02,0x1,0x2,0x02,0x02 -->
-      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="19005954"/>   <!-- 0x01,0x2,0x2,0x02,0x02 -->
-      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="35783170"/><!-- 0x02,0x2,0x2,0x02,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="17891585"/>
+      <!-- 0x01,0x1,0x1,0x01,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="34668801"/>
+      <!-- 0x02,0x1,0x1,0x01,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="18940161"/>
+      <!-- 0x01,0x2,0x1,0x01,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 1" value="35717377"/>
+      <!-- 0x02,0x2,0x1,0x01,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="17957121"/>
+      <!-- 0x01,0x1,0x2,0x01,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="34734337"/>
+      <!-- 0x02,0x1,0x2,0x01,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="19005697"/>
+      <!-- 0x01,0x2,0x2,0x01,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 1" value="35782913"/>
+      <!-- 0x02,0x2,0x2,0x01,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="17891841"/>
+      <!-- 0x01,0x1,0x1,0x02,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="34669057"/>
+      <!-- 0x02,0x1,0x1,0x02,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="18940417"/>
+      <!-- 0x01,0x2,0x1,0x02,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 1" value="35717633"/>
+      <!-- 0x02,0x2,0x1,0x02,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="17957377"/>
+      <!-- 0x01,0x1,0x2,0x02,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="34734593"/>
+      <!-- 0x02,0x1,0x2,0x02,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="19005953"/>
+      <!-- 0x01,0x2,0x2,0x02,0x01 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 1" value="35783169"/>
+      <!-- 0x02,0x2,0x2,0x02,0x01 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="17891586"/>
+      <!-- 0x01,0x1,0x1,0x01,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="34668802"/>
+      <!-- 0x02,0x1,0x1,0x01,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="18940162"/>
+      <!-- 0x01,0x2,0x1,0x01,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 1, Cool Stages: 2" value="35717378"/>
+      <!-- 0x02,0x2,0x1,0x01,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="17957122"/>
+      <!-- 0x01,0x1,0x2,0x01,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="34734338"/>
+      <!-- 0x02,0x1,0x2,0x01,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="19005698"/>
+      <!-- 0x01,0x2,0x2,0x01,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 1, Cool Stages: 2" value="35782914"/>
+      <!-- 0x02,0x2,0x2,0x01,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="17891842"/>
+      <!-- 0x01,0x1,0x1,0x02,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="34669058"/>
+      <!-- 0x02,0x1,0x1,0x02,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="18940418"/>
+      <!-- 0x01,0x2,0x1,0x02,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Gas, Heat Pump Stages: 2, Cool Stages: 2" value="35717634"/>
+      <!-- 0x02,0x2,0x1,0x02,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="17957378"/>
+      <!-- 0x01,0x1,0x2,0x02,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 1, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="34734594"/>
+      <!-- 0x02,0x1,0x2,0x02,0x02 -->
+      <Item label="HVAC: Normal, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="19005954"/>
+      <!-- 0x01,0x2,0x2,0x02,0x02 -->
+      <Item label="HVAC: Heat Pump, Aux Stages: 2, Aux Setup: Elec, Heat Pump Stages: 2, Cool Stages: 2" value="35783170"/>
+    
+    
+    <!-- 0x02,0x2,0x2,0x02,0x02 -->
     </Value>
-    <Value type="list" index="3" genre="config" label="Utility Lock" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="3" label="Utility Lock" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         The Utility Lock Configuration Set command enables or disables the utility lock.
         If the utility lock is enabled, the setpoint cannot be modified directly via the thermostat screen.
@@ -67,7 +121,7 @@
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" index="4" genre="config" label="C-Wire/Battery Status" read_only="true" units="" min="1" max="2" value="1" size="1">
+    <Value genre="config" index="4" label="C-Wire/Battery Status" max="2" min="1" read_only="true" size="1" type="list" units="" value="1">
       <Help>
         1 -> C-Wire
         2 -> Battery
@@ -75,7 +129,7 @@
       <Item label="C-Wire" value="1"/>
       <Item label="Battery" value="2"/>
     </Value>
-    <Value type="list" index="5" genre="config" label="Humidity Reporting Threshold" units="" min="0" max="3" value="0" size="1">
+    <Value genre="config" index="5" label="Humidity Reporting Threshold" max="3" min="0" size="1" type="list" units="" value="0">
       <Help>
         The Temperature Reporting Threshold Configuration Set Command sets the reporting threshold for changes in the ambient temperature as detected by the thermostat.
       </Help>
@@ -84,7 +138,7 @@
       <Item label="5% RH" value="2"/>
       <Item label="10% RH" value="3"/>
     </Value>
-    <Value type="list" index="6" genre="config" label="Auxiliary/Emergency heat" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="6" label="Auxiliary/Emergency heat" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         The Auxiliary/Emergency configuration command enables or disables auxiliary / emergency heating in the thermostat.
         Auxiliary / emergency heating is only available if the thermostat is configured in heat pump mode and with at least one stage of auxiliary heating.
@@ -95,7 +149,7 @@
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="7" genre="config" label="Thermostat Swing Temperature" units="" min="1" max="8" value="0" size="1">
+    <Value genre="config" index="7" label="Thermostat Swing Temperature" max="8" min="1" size="1" type="list" units="" value="0">
       <Help>
         The Auxiliary/Emergency configuration command enables or disables auxiliary/emergency heating in the thermostat. Auxiliary/emergency heating is only available if the thermostat is configured in heat pump mode and with at least one stage of auxiliary heating. This command enables auxiliary / emergency heating when the thermostat is in Auto mode. The Thermostat Set Mode command with mode Auxiliary/Emergency Heat will enable emergency heating but only if the thermostat is in Heat
         mode. This command should only be used on thermsotats that support Auxiliary/Emergency Heat thermostat mode.
@@ -104,7 +158,7 @@
       <Item label="0.1F" value="2"/>
       <Item label="4.0F" value="8"/>
     </Value>
-    <Value type="list" index="8" genre="config" label="Thermostat Differential Temperature" units="F" min="2" max="32767" value="4" size="2">
+    <Value genre="config" index="8" label="Thermostat Differential Temperature" max="32767" min="2" size="2" type="list" units="F" value="4">
       <Help>
         (Set Only) The Thermostat Differential Temperature configuration command sets the differential temperature for multi-stage HVAC systems.
         The differential temperature delta defines when the thermostat will turn on additional stages.
@@ -122,7 +176,7 @@
       <Item label="5.0F Cool" value="266"/>
       <Item label="6.0F Cool" value="268"/>
     </Value>
-    <Value type="list" index="9" genre="config" label="Thermostat Recovery Mode" units="" min="1" max="2" value="2" size="1">
+    <Value genre="config" index="9" label="Thermostat Recovery Mode" max="2" min="1" size="1" type="list" units="" value="2">
       <Help>
         The Thermostat Recovery Mode configuration command sets the HVAC recovery mode type.
         The recovery mode determines when additional HVAC stages are turned off as the ambient temperature returns to the target temperature.
@@ -132,13 +186,13 @@
       <Item label="Fast" value="1"/>
       <Item label="Economy" value="2"/>
     </Value>
-    <Value type="short" index="10" genre="config" label="Temperature Reporting Filter" units="F" min="0" max="124" value="124" size="2">
+    <Value genre="config" index="10" label="Temperature Reporting Filter" max="124" min="0" size="2" type="short" units="F" value="124">
       <Help>
         The Temperature Reporting Filter configuration command sets upper and lower bounds of the ambient temperature reporting. The thermostat will not report ambient temperature changes if the ambient temperature falls between these bounds. For example, if the upper bound is 80F and the lower bound is 60F, the thermostat will not send SENSOR_MULTI_LEVEL_REPORTS for ambient temperature values between 60F and 80F. The thermostat will only send ambient temperature changes if the
         thermostat has been added to an association group (see Command Class Association) and the temperature reporting threshold is non-zero (see Temperature Reporting Threshold).
       </Help>
     </Value>
-    <Value type="raw" index="10" genre="config" label="Temperature Reporting Filter" units="F" min="0" max="32767" size="4" value="0x09 0x00 0x09 0x00">
+    <Value genre="config" index="10" label="Temperature Reporting Filter" max="32767" min="0" size="4" type="raw" units="F" value="0x09 0x00 0x09 0x00">
       <Help>
         The Temperature Reporting Filter configuration command sets upper and lower bounds of the ambient temperature reporting.
         The thermostat won't report ambient temperature changes if the ambient temperature falls between these bounds.
@@ -155,14 +209,14 @@
         This will remove any bounds.
       </Help>
     </Value>
-    <Value type="list" index="11" genre="config" label="Simple UI Mode" units="" min="0" max="1" value="1" size="1">
+    <Value genre="config" index="11" label="Simple UI Mode" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>
         Simple UI Mode Enable/Disable
       </Help>
       <Item label="Enable" value="0"/>
       <Item label="Disable" value="1"/>
     </Value>
-    <Value type="byte" index="12" genre="config" label="Multicast" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="12" label="Multicast" max="1" min="0" size="1" type="byte" units="" value="0">
       <Help>
         Multicasting Enable/Disable
       </Help>
@@ -170,8 +224,7 @@
   </CommandClass>
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="2" label="Reporting"/>
+      <Group index="1" label="Reporting" max_associations="2"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/2gig/ct50e.xml b/Config/2gig/ct50e.xml
index 2c00d9633c..27423360af 100644
--- a/Config/2gig/ct50e.xml
+++ b/Config/2gig/ct50e.xml
@@ -1,8 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- 2gig CT50e thermostat with USNAP module RTZW-01 -->
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-    <CommandClass id="67" base="0" />
-
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/2gig/ct80.xml b/Config/2gig/ct80.xml
index b0420b4110..74e4de53ba 100644
--- a/Config/2gig/ct80.xml
+++ b/Config/2gig/ct80.xml
@@ -1,8 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- 2gig CT80 thermostat with USNAP module RTZW-01 -->
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-    <CommandClass id="67" base="0" />
-
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/BeNext/1poleswitch.xml b/Config/BeNext/1poleswitch.xml
index 7e943824e8..342721ea9f 100644
--- a/Config/BeNext/1poleswitch.xml
+++ b/Config/BeNext/1poleswitch.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--http://benext.eu/static/manual/1poleswitch.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Configuration -->
   <CommandClass id="112">
 
diff --git a/Config/BeNext/2poleswitch.xml b/Config/BeNext/2poleswitch.xml
index 2dfba0843e..dc8b013ce7 100644
--- a/Config/BeNext/2poleswitch.xml
+++ b/Config/BeNext/2poleswitch.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--http://benext.eu/static/manual/2poleswitch.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Configuration -->
   <CommandClass id="112">
 
diff --git a/Config/BeNext/AlarmSound.xml b/Config/BeNext/AlarmSound.xml
index 43cfcdaf1a..7f8a448270 100644
--- a/Config/BeNext/AlarmSound.xml
+++ b/Config/BeNext/AlarmSound.xml
@@ -1,62 +1,63 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
-  <CommandClass id="113" getsupported="false" />
-
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="-1">
-			<Help>Set all configuration values to default values (factory settings)</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="2" label="Destination routine enabled" value="255">
-			<Help>Enables an internal routine that periodically checks the Z-Wave device in assocication group 2</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="Destination routine success time" value="60">
-			<Help>Configure the time that the AlarmSound sends a new frame when previous frame was send successful</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="Destination routine failed time" value="240">
-			<Help>Configure the time that the AlarmSound sends a few frame when previous frame was send not successful</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="5" label="Temperature calibration offset (byte 1)" value="0">
-			<Help>A (signed) offset to calibrate the onboard temperature sensor</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="6" label="Temperature calibration offset (byte 2)" value="0">
-			<Help>A (signed) offset to calibrate the onboard temperature sensor</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="7" label="Select index sound/light mode" value="1">
-			<Help>The index of the sound mode when a switch binary/basic set frame is received</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="8" label="Power offline sound/light mode" value="6">
-			<Help>The index of the sound mode when the AlarmSound will start when it is unplugged</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="9" label="Error sound/light mode" value="5">
-			<Help>The index of the sound mode when the AlarmSound will play when it is unable to reach the device in association group 2</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="10" label="Sound/Light index 1" value="-1">
-			<Help>Params 10 until 27 are the values to configure the sound and light thtat are played when index 1 is selected</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="28" label="Sound/Light index 2" value="-1">
-			<Help>Params 28 until 45 are the values to configure the sound and light thtat are played when index 2 is selected</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="46" label="Sound/Light index 3" value="-1">
-			<Help>Params 46 until 63 are the values to configure the sound and light thtat are played when index 3 is selected</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="64" label="Sound/Light index 4" value="-1">
-			<Help>Params 64 until 81 are the values to configure the sound and light thtat are played when index 4 is selected</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="82" label="Sound/Light index 5" value="-1">
-			<Help>Params 82 until 99 are the values to configure the sound and light thtat are played when index 5 is selected</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="100" label="Sound/Light index 6" value="-1">
-			<Help>Params 100 until 117 are the values to configure the sound and light thtat are played when index 6 is selected</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="1" label="Group 1" auto="false"/>
-			<Group index="2" max_associations="1" label="Group 2"/>
-		</Associations>
-	</CommandClass>
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Set to Default" type="byte" value="-1">
+      <Help>Set all configuration values to default values (factory settings)</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Destination routine enabled" type="byte" value="255">
+      <Help>Enables an internal routine that periodically checks the Z-Wave device in assocication group 2</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Destination routine success time" type="byte" value="60">
+      <Help>Configure the time that the AlarmSound sends a new frame when previous frame was send successful</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Destination routine failed time" type="byte" value="240">
+      <Help>Configure the time that the AlarmSound sends a few frame when previous frame was send not successful</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Temperature calibration offset (byte 1)" type="byte" value="0">
+      <Help>A (signed) offset to calibrate the onboard temperature sensor</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Temperature calibration offset (byte 2)" type="byte" value="0">
+      <Help>A (signed) offset to calibrate the onboard temperature sensor</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Select index sound/light mode" type="byte" value="1">
+      <Help>The index of the sound mode when a switch binary/basic set frame is received</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Power offline sound/light mode" type="byte" value="6">
+      <Help>The index of the sound mode when the AlarmSound will start when it is unplugged</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Error sound/light mode" type="byte" value="5">
+      <Help>The index of the sound mode when the AlarmSound will play when it is unable to reach the device in association group 2</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Sound/Light index 1" type="byte" value="-1">
+      <Help>Params 10 until 27 are the values to configure the sound and light thtat are played when index 1 is selected</Help>
+    </Value>
+    <Value genre="config" index="28" instance="1" label="Sound/Light index 2" type="byte" value="-1">
+      <Help>Params 28 until 45 are the values to configure the sound and light thtat are played when index 2 is selected</Help>
+    </Value>
+    <Value genre="config" index="46" instance="1" label="Sound/Light index 3" type="byte" value="-1">
+      <Help>Params 46 until 63 are the values to configure the sound and light thtat are played when index 3 is selected</Help>
+    </Value>
+    <Value genre="config" index="64" instance="1" label="Sound/Light index 4" type="byte" value="-1">
+      <Help>Params 64 until 81 are the values to configure the sound and light thtat are played when index 4 is selected</Help>
+    </Value>
+    <Value genre="config" index="82" instance="1" label="Sound/Light index 5" type="byte" value="-1">
+      <Help>Params 82 until 99 are the values to configure the sound and light thtat are played when index 5 is selected</Help>
+    </Value>
+    <Value genre="config" index="100" instance="1" label="Sound/Light index 6" type="byte" value="-1">
+      <Help>Params 100 until 117 are the values to configure the sound and light thtat are played when index 6 is selected</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group auto="false" index="1" label="Group 1" max_associations="1"/>
+      <Group index="2" label="Group 2" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/BeNext/BuiltinDimmer.xml b/Config/BeNext/BuiltinDimmer.xml
index a6f8afbedb..78ab2ee9a6 100644
--- a/Config/BeNext/BuiltinDimmer.xml
+++ b/Config/BeNext/BuiltinDimmer.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--http://benext.eu/static/manual/builtindimmer.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Configuration -->
   <CommandClass id="112">
 
diff --git a/Config/BeNext/DoorSensor.xml b/Config/BeNext/DoorSensor.xml
index b4537f4229..557f5c1d9b 100644
--- a/Config/BeNext/DoorSensor.xml
+++ b/Config/BeNext/DoorSensor.xml
@@ -1,60 +1,84 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--http://www.benext.eu/static/manual/doorsensor.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!--http://www.benext.eu/static/manual/doorsensor.pdf--><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/008A:0100:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/BeNext/DoorSensor.png</MetaDataItem>
+    <MetaDataItem id="0100" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/75/</MetaDataItem>
+    <MetaDataItem name="Description">A 2-in-1 product The primary function of the Door Sensor is detecting the status of a door or window. Due to it’s build in thermometer you can also measure temperature on that location. Use the Door Sensor for; - Security - Comfort -Lighting - Automation and Saving money.
+- Temperature sensor inside
+- External contact for additional sensor or doorbell-push button
+
+Use The Door Sensor for securing and/or enlarging luxury and automation in your home or office. Receive notifications when unwanted activities are being triggered and keep your room temperature on level due to the build-in thermometer. Make up your own rules in the free of charge online manager so that your preferences are automated when simply opening your front door.
+The primary function of the Door Sensor is detecting the status of a door or window. In combination with our Alarm Sound you can configure rules that enable an alarm when doors or windows are opened unwanted. Broaden functionalities by making your own rules. Make it happen that when you leave your bedroom, any preferred devices and custom scenes switch on and off, depending on the time of day.
+
+- Long battery operation time - Temperature sensor - Extra external contact - Good priced
+
+The dimensions are 3,3 x 5,8 x 1,8cm (LxBxH). The color of the product is traffic White, RAL 9016. Electrical specs can be found on http://www.benext.eu/en/products/door-sensor/
+• Measure the open and/or closed status of doors and windows in your office or home
+• Measure temperature
+• Set up a basic security system by simply adding more sensors
+• Receive notifications on your phone and email when there is registered activity
+• Make up a variety of rules to add functionality to your home
+• Use for security and adding luxury to your office or home
+• Save on your energy bills by reducing unwanted usage of heating
+• Product dimensions: Door Sensor = 58 x 33 x 17 millimeter. Magnet = 58 x 11 x 17 millimeter (L x W x H)
+• Normal operating voltage: 2x AAA 1,5V batteries. From 2,3 to 4,0Vdc. Do not use rechargeable batteries
+• Battery lifetime: approximately 5 years by normal usage. Approximately 3~4 years by long networks and heavily usage
+• Absolute maximum temperature: -15°C to +85°C
+</MetaDataItem>
+    <MetaDataItem name="ProductPage">www.benext.eu/en/products/door-sensor</MetaDataItem>
+    <MetaDataItem name="ProductSupport">Info@Benext.eu</MetaDataItem>
+    <MetaDataItem name="Name">Door Sensor</MetaDataItem>
+    <MetaDataItem id="0100" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0100" name="Identifier" type="0004">BeNeXt / Door Sensor</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/75/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
-
-    <Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="-1">
+    <Value genre="config" index="1" instance="1" label="Set to Default" type="byte" value="-1">
       <Help>Set all configuration values to default values (factory settings).</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="2" label="External Contact" value="0" size="1">
+    <Value genre="config" index="2" instance="1" label="External Contact" size="1" type="list" value="0">
       <Help>Configure what the external contact sends when triggered. (Default: 0)</Help>
       <Item label="Send a alarm report with type 2." value="0"/>
       <Item label="Send a Basic set frame to all nodes in association group 2." value="1"/>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="3" label="Not used" value="0">
+    <Value genre="config" index="3" instance="1" label="Not used" type="byte" value="0">
       <Help>Is not used but can still be set and requested.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="4" label="Not used" value="0">
+    <Value genre="config" index="4" instance="1" label="Not used" type="byte" value="0">
       <Help>Is not used but can still be set and requested.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="5" label="The Mode" value="1">
+    <Value genre="config" index="5" instance="1" label="The Mode" type="byte" value="1">
       <Help>To configure the operating mode. (Default: 1)</Help>
       <Item label="Mode 1: Normal operating mode." value="1"/>
       <Item label="Mode 3: Z-Wave chip is always on to request e.g. version or manufacturer id." value="3"/>
     </Value>
-
-    <Value type="int" genre="config" instance="1" index="6" label="Temperature offset" value="0">
+    <Value genre="config" index="6" instance="1" label="Temperature offset" type="int" value="0">
       <Help>A signed integer to determine the offset of the temperature. (Default: 0)</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="7" label="Extern Contact Debounce ON" value="0">
+    <Value genre="config" index="7" instance="1" label="Extern Contact Debounce ON" type="byte" value="0">
       <Help>Debounce time when the external contact is opened. (Default: 0)</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="8" label="Extern Contact Debounce OFF" value="0">
+    <Value genre="config" index="8" instance="1" label="Extern Contact Debounce OFF" type="byte" value="0">
       <Help>Debounce time when the external contact is opened. (Default 0)</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="9" label="Wake up delay" value="0">
+    <Value genre="config" index="9" instance="1" label="Wake up delay" type="byte" value="0">
       <Help>A delay from the wake up time to give the external contact a chance to change his status. (Default 0, value * 100 ms, 0 - 25,5 seconds)</Help>
     </Value>
-
   </CommandClass>
-
-	<!-- the Device Doesn't support Get for Alarm Class -->
-	<CommandClass id="113" getsupported="false"/>
-  
+  <!-- the Device Doesn't support Get for Alarm Class -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="Internal door contact" />
-      <Group index="2" max_associations="5" label="External door contact" />
+      <Group index="1" label="Internal door contact" max_associations="5"/>
+      <Group index="2" label="External door contact" max_associations="5"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/BeNext/EnergySwitch.xml b/Config/BeNext/EnergySwitch.xml
index 62d2f583e1..32d5535fab 100644
--- a/Config/BeNext/EnergySwitch.xml
+++ b/Config/BeNext/EnergySwitch.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--http://www.pepper1.net/zwavedb/device/269-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration -->
 	<CommandClass id="112">
 		<Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="-1">
diff --git a/Config/BeNext/HeatingControl.xml b/Config/BeNext/HeatingControl.xml
index 1d1e7354c2..9e42ad5f7b 100644
--- a/Config/BeNext/HeatingControl.xml
+++ b/Config/BeNext/HeatingControl.xml
@@ -1,9 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--http://www.benext.eu/static/manual/heatingcontrol.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-  <CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE">
-    <Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0" value="0">
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="64">
+    <Value genre="user" index="0" instance="1" label="Mode" max="0" min="0" read_only="false" type="list" units="" value="0" write_only="false">
       <Item label="Heat" value="1"/>
       <Item label="Energy Heat" value="11"/>
     </Value>
@@ -11,17 +9,20 @@
       <Mode index="1" label="Heat"/>
       <Mode index="11" label="Energy Heat"/>
     </SupportedModes>
+    <Compatibility/>
   </CommandClass>
-
-  <CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
+  <CommandClass id="67">
     <Instance index="1"/>
-    <Value type="decimal" genre="user" instance="1" index="1" label="Heating" units="C" read_only="false" write_only="false" min="0" max="0" value="20"/>
-    <Value type="decimal" genre="user" instance="1" index="11" label="Energy Heat" units="C" read_only="false" write_only="false" min="0" max="0" value="16"/>
+    <Value genre="user" index="1" instance="1" label="Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="20" write_only="false"/>
+    <Value genre="user" index="11" instance="1" label="Energy Heat" max="0" min="0" read_only="false" type="decimal" units="C" value="16" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
   </CommandClass>
-
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="byte" genre="config" instance="1" index="1" label="Reset to Default" size="1" value="0">
+    <Value genre="config" index="1" instance="1" label="Reset to Default" size="1" type="byte" value="0">
       <Help>0xFF: Set all configuration values to default values (factory settings).
         CONFIGURATION_REPORT
         0x55: Configuration settings of the device are altered.
@@ -29,54 +30,47 @@
         Note that this value will not change to 0x55 upon modifying the wake up interval and that re-setting the value to 0xAA will always reset the wake up interval.
       </Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="2" label="Data request interval" value="20" size="1">
+    <Value genre="config" index="2" instance="1" label="Data request interval" size="1" type="byte" value="20">
       <Help>The interval that data is requested (and therefore updated) from the thermostat and boiler. Value in seconds. </Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="3" label="T room update difference" value="1" size="1">
+    <Value genre="config" index="3" instance="1" label="T room update difference" size="1" type="byte" value="1">
       <Help>The value that the room temperature must differ (compared to his previous send value) before an unsolicited room temperature report is send to the associated node. Value in 0.1C. </Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="4" label="T setpoint update difference" value="5" size="1">
+    <Value genre="config" index="4" instance="1" label="T setpoint update difference" size="1" type="byte" value="5">
       <Help>The value that the temperature setpoint must differ (compared to his previous send value) before an unsolicited temperature setpoint report is send to the associated node. Value in 0.1C .</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="5" label="Unsolicited CRC" size="1" value="1">
+    <Value genre="config" index="5" instance="1" label="Unsolicited CRC" size="1" type="list" value="1">
       <Help>TConfigure if the unsolicited reports are send with the CRC-16 encapsulation. Not that the receiving node should support this encapsulation to parse the Z-Wave frame!</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="255"/>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="6" label="Type of 'special' thermostat" size="1" value="0">
+    <Value genre="config" index="6" instance="1" label="Type of 'special' thermostat" size="1" type="list" value="0">
       <Help>Type of 'special' thermostat: NOTE: when remeha Celcia 20 support is set then any other thermostat can not be set (!) NOTE2: when Remeha Celcia 20 gives 'Fout 203' send cfg value again</Help>
-    <Item label="No special" value="0"/>
-    <Item label="Remeha Celcia 20" value="1"/>
-    <Item label="Honeywell (rounded temperatures)" value="2"/>
+      <Item label="No special" value="0"/>
+      <Item label="Remeha Celcia 20" value="1"/>
+      <Item label="Honeywell (rounded temperatures)" value="2"/>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="7" label="Status auto report" size="1" value="0">
+    <Value genre="config" index="7" instance="1" label="Status auto report" size="1" type="list" value="0">
       <Help>Status auto report boiler/thermostat report</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="255"/>
     </Value>
-    
-     <Value type="list" genre="config" instance="1" index="9" label="Thermostat schedule" size="1" value="0">
+    <Value genre="config" index="9" instance="1" label="Thermostat schedule" size="1" type="list" value="0">
       <Help>Enable/Disable thermostat schedule inside the heating controller.</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="255"/>
     </Value>
-
   </CommandClass>
-  
   <!-- COMMAND_CLASS_FIRMWARE_UPDATE_MD_V2 firmware update not supported -->
-  <CommandClass id="122" getsupported="false" />
-
+  <CommandClass id="122">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/BeNext/Molite.xml b/Config/BeNext/Molite.xml
index 8ebf708d4c..0ae0961cd4 100644
--- a/Config/BeNext/Molite.xml
+++ b/Config/BeNext/Molite.xml
@@ -1,68 +1,91 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--http://www.pepper1.net/zwavedb/device/265-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="1" label="Set to Default" >
-			<Help>Set all configuration values to default values (factory settings).</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="2" label="Mode timeout" size="2" min="1" max="32767" value="900" units="seconds">
-			<Help>The time used in mode 2 to turn the sensor off. This Time will start running as soon as detection is seen.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="3" label="Switch off time" size="2" min="1" max="32767" value="2700" units="seconds">
-			<Help>The switch off time will start running as soon as mode timeout is done. Motion sensor is turned on and when movement is detected again the mode timeout (cfg param 1) will start running all over again. When switch off time is done a basic off message is sent to the associated node.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="Sensitivity" size="1" min="0" max="127" value="80">
-			<Help>Sensitivity value between 0 and 127 (values above 127 will be reported as the set value but will be handled in SW as 127).</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="5" label="The mode" size="1" value="2">
-			<Help>The mode that is entered after detection. If mode is 0 or higher then 3, that value will be reported after a get but will be handled in SW as mode 2.</Help>
-			<Item label="no detection possible. Battery save mode" value="1"/>
-			<Item label="normal operation mode: send on after detection and off after given time no detection" value="2"/>
-			<Item label="Z-Wave chip is always on to request e.g. version or manufacturer id" value="3"/>
-		</Value>		
-		<Value type="short" genre="config" instance="1" index="6" label="The temperature offset" size="2" min="0" max="32767" value="0">
-			<Help>An offset for the temperature</Help>
-		</Value>		
-		<Value type="short" genre="config" instance="1" index="7" label="Light Table 100" size="2" min="1" max="32767" value="17">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 100%. See chapter light table for more information.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="8" label="Light Table 90" size="2" min="1" max="32767" value="38">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 90%. See chapter light table for more information.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="9" label="Light Table 80" size="2" min="1" max="32767" value="85">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 80%. See chapter light table for more information.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="10" label="Light Table 70" size="2" min="1" max="32767" value="186">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 70%. See chapter light table for more information.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="11" label="Light Table 60" size="2" min="1" max="32767" value="407">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 60%. See chapter light table for more information.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="12" label="Light Table 50" size="2" min="1" max="32767" value="891">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 50%. See chapter light table for more information.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="13" label="Light Table 40" size="2" min="1" max="32767" value="1949">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 40%. See chapter light table for more information.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="14" label="Light Table 30" size="2" min="1" max="32767" value="4265">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 30%. See chapter light table for more information.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="15" label="Light Table 20" size="2" min="1" max="32767" value="9332">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 20%. See chapter light table for more information.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="16" label=". Light Table 10" size="2" min="1" max="32767" value="20417">
-			<Help>If a LDR resistance measured lower than this value the returned light percentage is 10%. See chapter light table for more information.</Help>
-		</Value>
-		
-	</CommandClass>
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true" />
-		
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="LifeLine"/>
-		</Associations>
-	</CommandClass>
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/008A:0100:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/BeNext/Molite.png</MetaDataItem>
+    <MetaDataItem id="0100" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/76/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.benext.eu/en/products/molite-sensor/ </MetaDataItem>
+    <MetaDataItem name="Description">With the Molite Sensor it is possible to measure movement, light and temperature. Utilize the MoLite Sensor for a variety of BeNext system features such as 
+
+- Security 
+- Personal Comfort 
+- Lighting
+- General Automation
+
+Visit our website for a full description
+http://www.benext.eu/en/products/molite-sensor/ 
+</MetaDataItem>
+    <MetaDataItem name="ProductSupport">info@benext.eu</MetaDataItem>
+    <MetaDataItem name="Name">MoLiTe Sensor</MetaDataItem>
+    <MetaDataItem id="0100" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0100" name="Identifier" type="0003">MoLiTe</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/76/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Set to Default" type="byte">
+      <Help>Set all configuration values to default values (factory settings).</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Mode timeout" max="32767" min="1" size="2" type="short" units="seconds" value="900">
+      <Help>The time used in mode 2 to turn the sensor off. This Time will start running as soon as detection is seen.</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Switch off time" max="32767" min="1" size="2" type="short" units="seconds" value="2700">
+      <Help>The switch off time will start running as soon as mode timeout is done. Motion sensor is turned on and when movement is detected again the mode timeout (cfg param 1) will start running all over again. When switch off time is done a basic off message is sent to the associated node.</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Sensitivity" max="127" min="0" size="1" type="byte" value="80">
+      <Help>Sensitivity value between 0 and 127 (values above 127 will be reported as the set value but will be handled in SW as 127).</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="The mode" size="1" type="list" value="2">
+      <Help>The mode that is entered after detection. If mode is 0 or higher then 3, that value will be reported after a get but will be handled in SW as mode 2.</Help>
+      <Item label="no detection possible. Battery save mode" value="1"/>
+      <Item label="normal operation mode: send on after detection and off after given time no detection" value="2"/>
+      <Item label="Z-Wave chip is always on to request e.g. version or manufacturer id" value="3"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="The temperature offset" max="32767" min="0" size="2" type="short" value="0">
+      <Help>An offset for the temperature</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Light Table 100" max="32767" min="1" size="2" type="short" value="17">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 100%. See chapter light table for more information.</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Light Table 90" max="32767" min="1" size="2" type="short" value="38">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 90%. See chapter light table for more information.</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Light Table 80" max="32767" min="1" size="2" type="short" value="85">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 80%. See chapter light table for more information.</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Light Table 70" max="32767" min="1" size="2" type="short" value="186">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 70%. See chapter light table for more information.</Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Light Table 60" max="32767" min="1" size="2" type="short" value="407">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 60%. See chapter light table for more information.</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Light Table 50" max="32767" min="1" size="2" type="short" value="891">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 50%. See chapter light table for more information.</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Light Table 40" max="32767" min="1" size="2" type="short" value="1949">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 40%. See chapter light table for more information.</Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Light Table 30" max="32767" min="1" size="2" type="short" value="4265">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 30%. See chapter light table for more information.</Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Light Table 20" max="32767" min="1" size="2" type="short" value="9332">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 20%. See chapter light table for more information.</Help>
+    </Value>
+    <Value genre="config" index="16" instance="1" label=". Light Table 10" max="32767" min="1" size="2" type="short" value="20417">
+      <Help>If a LDR resistance measured lower than this value the returned light percentage is 10%. See chapter light table for more information.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/BeNext/P1dongle.xml b/Config/BeNext/P1dongle.xml
index 6d2f995d8a..e096f73d50 100644
--- a/Config/BeNext/P1dongle.xml
+++ b/Config/BeNext/P1dongle.xml
@@ -1,70 +1,70 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="1" label="Set to Default" size="1">
-			<Help>Set all configuration values to default values (factory settings).</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="HW Pullup" size="1" value="0">
-			<Help>For some Smart meters you will need an external pullup resistor to receive the data, one of it is the Kaifa meter. 0x00: disabled. 0x01-0xFF: enabled (default 0x00)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="4" label="Baud rate" size="2" value="1152">
-			<Help>value x 100 = baud rate</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="5" label="Data validation" size="1" value="51">
-			<Help>Settings for data validation LED. Bit 7-4: Data received timeout (x 10). Bit 3-0: Framecount when data is valid (default 0x33 (0x30|0x03))</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="6" label="CRC check" size="1" value="1">
-			<Help></Help>
-			<Item label="CRC check enabled" value="1"/>
-			<Item label="CRC check disabled" value="0"/>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="72" label="Channel 1 auto Meter report usage W" size="4" value="1290">
-			<Help>Conditions current usage will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x0000050A (5Watt and 10%))</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="73" label="Channel 1 auto Meter report usage kWh" size="4" value="25600">
-			<Help>Conditions current usage will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1kWh and 0%))</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="74" label="Channel 1 auto Meter report delivered W" size="4" value="1290">
-			<Help>Conditions current delivered will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x0000050A (5Watt and 10%))</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="75" label="Channel 1 auto Meter report delivered kWh" size="4" value="25600">
-			<Help>Conditions current delivered will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1kWh and 0%))</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="76" label="Channel 2 auto Meter report usage W" size="4" value="1290">
-			<Help>Conditions current usage will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x0000050A (5Watt and 10%))</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="77" label="Channel 2 auto Meter report usage kWh" size="4" value="25600">
-			<Help>Conditions current usage will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1kWh and 0%))</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="78" label="Channel 2 auto Meter report delivered W" size="4" value="1290">
-			<Help>Conditions current delivered will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x0000050A (5Watt and 10%))</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="79" label="Channel 2 auto Meter report delivered kWh" size="4" value="25600">
-			<Help>Conditions current delivered will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1kWh and 0%))</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="81" label="Channel 3 auto Meter report usage m3" size="4" value="25600">
-			<Help>Conditions total used will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1m3 and 0%))</Help>
-		</Value>
-	</CommandClass>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Set to Default" size="1" type="byte">
+      <Help>Set all configuration values to default values (factory settings).</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="HW Pullup" size="1" type="byte" value="0">
+      <Help>For some Smart meters you will need an external pullup resistor to receive the data, one of it is the Kaifa meter. 0x00: disabled. 0x01-0xFF: enabled (default 0x00)</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Baud rate" size="2" type="short" value="1152">
+      <Help>value x 100 = baud rate</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Data validation" size="1" type="byte" value="51">
+      <Help>Settings for data validation LED. Bit 7-4: Data received timeout (x 10). Bit 3-0: Framecount when data is valid (default 0x33 (0x30|0x03))</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="CRC check" size="1" type="list" value="1">
+      <Help></Help>
+      <Item label="CRC check enabled" value="1"/>
+      <Item label="CRC check disabled" value="0"/>
+    </Value>
+    <Value genre="config" index="72" instance="1" label="Channel 1 auto Meter report usage W" size="4" type="int" value="1290">
+      <Help>Conditions current usage will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x0000050A (5Watt and 10%))</Help>
+    </Value>
+    <Value genre="config" index="73" instance="1" label="Channel 1 auto Meter report usage kWh" size="4" type="int" value="25600">
+      <Help>Conditions current usage will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1kWh and 0%))</Help>
+    </Value>
+    <Value genre="config" index="74" instance="1" label="Channel 1 auto Meter report delivered W" size="4" type="int" value="1290">
+      <Help>Conditions current delivered will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x0000050A (5Watt and 10%))</Help>
+    </Value>
+    <Value genre="config" index="75" instance="1" label="Channel 1 auto Meter report delivered kWh" size="4" type="int" value="25600">
+      <Help>Conditions current delivered will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1kWh and 0%))</Help>
+    </Value>
+    <Value genre="config" index="76" instance="1" label="Channel 2 auto Meter report usage W" size="4" type="int" value="1290">
+      <Help>Conditions current usage will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x0000050A (5Watt and 10%))</Help>
+    </Value>
+    <Value genre="config" index="77" instance="1" label="Channel 2 auto Meter report usage kWh" size="4" type="int" value="25600">
+      <Help>Conditions current usage will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1kWh and 0%))</Help>
+    </Value>
+    <Value genre="config" index="78" instance="1" label="Channel 2 auto Meter report delivered W" size="4" type="int" value="1290">
+      <Help>Conditions current delivered will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x0000050A (5Watt and 10%))</Help>
+    </Value>
+    <Value genre="config" index="79" instance="1" label="Channel 2 auto Meter report delivered kWh" size="4" type="int" value="25600">
+      <Help>Conditions current delivered will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1kWh and 0%))</Help>
+    </Value>
+    <Value genre="config" index="81" instance="1" label="Channel 3 auto Meter report usage m3" size="4" type="int" value="25600">
+      <Help>Conditions total used will be automatically reported. Param 1-3: Difference in absolute value. Param 4: Difference in percentage between previous and current value. (default 0x00006400 (0.1m3 and 0%))</Help>
+    </Value>
+  </CommandClass>
   <!-- Meter v4 as report -->
-	<CommandClass id="50" name="COMMAND_CLASS_METER" version="4" request_flags="3" >
-		<Instance index="1" />
-		<Instance index="2" />
-		<Instance index="3" />
-		<Instance index="4" />
-		<Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" />
-		<Value type="decimal" genre="user" instance="1" index="8" label="Power" units="W" read_only="true" write_only="false" />
-		<Value type="decimal" genre="user" instance="2" index="0" label="Energy" units="kWh" read_only="true" write_only="false"/>
-		<Value type="decimal" genre="user" instance="2" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" />
-		<Value type="decimal" genre="user" instance="3" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" />
-		<Value type="decimal" genre="user" instance="3" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" />
-		<Value type="decimal" genre="user" instance="4" index="0" label="Gas" units="cubic meters" read_only="true" write_only="false" verify_changes="false"/>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="8" label="LifeLine"/>
-		</Associations>
-	</CommandClass>
+  <CommandClass id="50">
+    <Instance index="1"/>
+    <Instance index="2"/>
+    <Instance index="3"/>
+    <Instance index="4"/>
+    <Value genre="user" index="0" instance="1" label="Energy" read_only="true" type="decimal" units="kWh" write_only="false"/>
+    <Value genre="user" index="8" instance="1" label="Power" read_only="true" type="decimal" units="W" write_only="false"/>
+    <Value genre="user" index="0" instance="2" label="Energy" read_only="true" type="decimal" units="kWh" write_only="false"/>
+    <Value genre="user" index="8" instance="2" label="Power" read_only="true" type="decimal" units="W" verify_changes="false" write_only="false"/>
+    <Value genre="user" index="0" instance="3" label="Energy" read_only="true" type="decimal" units="kWh" verify_changes="false" write_only="false"/>
+    <Value genre="user" index="8" instance="3" label="Power" read_only="true" type="decimal" units="W" verify_changes="false" write_only="false"/>
+    <Value genre="user" index="0" instance="4" label="Gas" read_only="true" type="decimal" units="cubic meters" verify_changes="false" write_only="false"/>
+    <Compatibility/>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="LifeLine" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/BeNext/PanicButton.xml b/Config/BeNext/PanicButton.xml
index d201db6d99..09d42633be 100644
--- a/Config/BeNext/PanicButton.xml
+++ b/Config/BeNext/PanicButton.xml
@@ -1,56 +1,57 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Benext Panic Button
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="button" genre="config" instance="1" index="1" label="Set to Default" size="1" value="0">
-			<Help>Set all configuration values to default values (factory settings).</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="2" label="Time to press the panic button" size="1" min="0" max="255" value="100" >
-			<Help>
+<!-- Benext Panic Button-->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Set to Default" size="1" type="button" value="0">
+      <Help>Set all configuration values to default values (factory settings).</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Time to press the panic button" max="255" min="0" size="1" type="byte" value="100">
+      <Help>
                 The time that the panic pushbutton must be pressed before a (panic) message is sent out to the controller.
                 0: send directly the panic message when pressed.
                 1-255: send a panic message after you keep holding the button pressed for this value x 10ms.
             </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="Min led feedback time panic" size="1" min="0" max="255" value="100" >
-			<Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Min led feedback time panic" max="255" min="0" size="1" type="byte" value="100">
+      <Help>
                 Minimum time that led feedback is shown after a panic message.
                 0: led only stays on during the send time.
                 1-255: led stays on during send time + this value*10ms.
             </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="Buttons mapped" size="1" min="0" max="255" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Buttons mapped" max="255" min="0" size="1" type="byte" value="0">
+      <Help>
                 With this config parameter you can map the buttons to send different Z-Wave messages.
                 0: SOS button sends an ALARM_REPORT to nodes group 1 LOCK button sends a BASIC_SET, 0xFF to nodes group 1 UNLOCK button sends a BASIC_SET, 0x00 to nodes group 1.
                 1-255: button sends an BASIC_SET,0xFF to nodes group 1 LOCK button sends a BASIC_SET, 0xFF to nodes group 2 UNLOCK button sends a BASIC_SET, 0x00 to nodes group 2
             </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="5" label="Time to press the control buttons" size="1" min="0" max="255" value="10">
-			<Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Time to press the control buttons" max="255" min="0" size="1" type="byte" value="10">
+      <Help>
                 The time that the control pushbutton(s) must be pressed before a (control) message is sent out to the controller.
                 0: send directly the panic message when pressed
                 1-255: send a control message after you keep holding pushbutton pressed for this value x 10ms.
             </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="6" label="Min led feedback time control" size="1" min="0" max="255" value="50">
-			<Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Min led feedback time control" max="255" min="0" size="1" type="byte" value="50">
+      <Help>
                 Minimum time that led feedback is shown after a control message is sent.
                 0: led only stays on during the send time.
                 1-255: led stays on during send time + this value*10ms.
             </Help>
-		</Value>
-	</CommandClass>
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true" />
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="8" label="Group 1: see configuration parameter 4"/>
-            <Group index="2" max_associations="8" label="Group 2: see configuration parameter 4" auto="true"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Group 1: see configuration parameter 4" max_associations="8"/>
+      <Group auto="true" index="2" label="Group 2: see configuration parameter 4" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/BeNext/PanicWatch.xml b/Config/BeNext/PanicWatch.xml
index f341f5c374..e05855da08 100644
--- a/Config/BeNext/PanicWatch.xml
+++ b/Config/BeNext/PanicWatch.xml
@@ -1,44 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Benext Panic Watch
 http://www.benext.eu/static/manual/panicwatch.pdf
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="button" genre="config" instance="1" index="1" label="Set to Default" size="1" value="0">
-			<Help>Set all configuration values to default values (factory settings).</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="2" label="Time to press the panic Watch" size="1" min="0" max="255" value="100" >
-			<Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Set to Default" size="1" type="button" value="0">
+      <Help>Set all configuration values to default values (factory settings).</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Time to press the panic Watch" max="255" min="0" size="1" type="byte" value="100">
+      <Help>
                 The time that the panic pushbutton must be pressed before a (panic) message is sent out to the controller.
                 0: send directly the panic message when pressed.
                 1-255: send a panic message after you keep holding the button pressed for this value x 10ms.
             </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="Min led feedback time panic" size="1" min="0" max="255" value="100" >
-			<Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Min led feedback time panic" max="255" min="0" size="1" type="byte" value="100">
+      <Help>
                 Minimum time that led feedback is shown after a panic message.
                 0: led only stays on during the send time.
                 1-255: led stays on during send time + this value*10ms.
             </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="Buttons mapped" size="1" min="0" max="255" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Buttons mapped" max="255" min="0" size="1" type="byte" value="0">
+      <Help>
                 With this config parameter you can map the buttons to send different Z-Wave messages.
                 0: SOS button sends an ALARM_REPORT to nodes group 1.
                 1-255: SOS button sends an BASIC_SET, 0xFF to nodes group 1.
             </Help>
-		</Value>		
-	</CommandClass>
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true" />
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="8" label="Report"/>
-            <Group index="2" max_associations="8" label="Not used"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Report" max_associations="8"/>
+      <Group index="2" label="Not used" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/BeNext/PluginDimmer.xml b/Config/BeNext/PluginDimmer.xml
index a68a5120bc..68a725de03 100644
--- a/Config/BeNext/PluginDimmer.xml
+++ b/Config/BeNext/PluginDimmer.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--http://benext.eu/static/manual/plugindimmer.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Configuration -->
   <CommandClass id="112">
 
diff --git a/Config/BeNext/SceneController.xml b/Config/BeNext/SceneController.xml
index c6c6768790..71987cc390 100644
--- a/Config/BeNext/SceneController.xml
+++ b/Config/BeNext/SceneController.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--http://benext.eu/static/manual/scenecontroller.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-  <CommandClass id="91" action="add" scenecount="16" />
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Configuration -->
   <CommandClass id="112">
 
diff --git a/Config/BeNext/TagReader.xml b/Config/BeNext/TagReader.xml
index 61f85defec..edc5ce7de2 100644
--- a/Config/BeNext/TagReader.xml
+++ b/Config/BeNext/TagReader.xml
@@ -1,49 +1,84 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--http://www.pepper1.net/zwavedb/device/302-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/008A:0100:0007</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/BeNext/TagReader.png</MetaDataItem>
+    <MetaDataItem id="0100" name="ZWProductPage" type="0007">https://products.z-wavealliance.org/products/43/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">info@benext.eu</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.benext.eu/en/products/tag-reader/</MetaDataItem>
+    <MetaDataItem id="0100" name="FrequencyName" type="0007">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Tag Reader</MetaDataItem>
+    <MetaDataItem id="0100" name="Identifier" type="0007">BeNext / TagReader</MetaDataItem>
+    <MetaDataItem name="Description">By reading your RFID-Tag or pressing a manual code you are able to arm or disarm your security system. The Tag Reader can read multiple RFID-tags protocols. With the sound of the buzzer you will easily hear and see if your action was valid.
 
+Place the Tag Reader close to the main exit of your office or home to enjoy it’s full potential.
+With the Tag Reader you can activate or de-activate your security by simply passing the RFID Tag in front of the reader. It is called a Tag Reader because it uses RFID Tags to identify people and their personal preferences around leaving the house or coming home.
+
+Separately from working with RFID Tags, the Tag Reader also has a numerical keypad. Within the free of charge online manager you can configure a numerical code. This way you prevent being locked out of the system in case you may have lost the RFID Tag.
+
+By using the Tag Reader intelligently you can secure your house and save money on your energy bill at the same time. You can actually let your house ‘fall asleep’ when enabling the ‘Away Scene’. This is especially noted when u are using energy saving products of BeNext such as Radiator Control and of course a Energy Switch.
+- The TagReader has the possibility for the user to manually insert codes.
+- The TagReaders indicator light will react differently on each action.
+- The TagReader has a buzzer, which can be used as walk-in/walk-out notification 
+(alarm is being disabled/activated).
+
+- arm/disarm a security system. 
+- Battery operated device for easy mounting on any place. 
+- Multiple tags support ISO15693, ISO18000-3, Tag-it™ 
+- Easy installation with NWI - get in control of your alarm system.
+
+The dimensions are 6 x 6 x 2 cm (LxBxH). The color of the product is traffic White, RAL 9016.
+Switch between the scenes ‘Home’ and ‘Away’ easily and initiate security measures or instead de-activate them easily without use of complicated coding
+• Let your house ‘wake up’ or instead ‘fall asleep’. This way you can save enormously on your energy bill
+• Product dimensions: 62 x 62 x 20 millimeter (L x W x H)
+• Normal operating voltage: 2x AA 1.5V batteries. From 2.3Vdc to 4.0Vdc. Do not use rechargeable batteries
+• Battery lifetime: normal usage will give approximately a lifetime of 5 years. Notice: long and big networks will increase the battery lifetime
+• Protocols supported: ISO15693, ISO18000-3, Tag-it™, RFID
+• Buzzer-sound: approximately 60dB at 10 centimeters distance
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/43/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
-
-    <Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="-1">
+    <Value genre="config" index="1" instance="1" label="Set to Default" type="byte" value="-1">
       <Help>Set all configuration values to default values (factory settings).</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="2"
-	   label="Feedback Time" value="0" size="1">
+    <Value genre="config" index="2" instance="1" label="Feedback Time" size="1" type="list" value="0">
       <Help>To configure the time the beep is automatically turned off in seconds.</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Endless" value="-1"/>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="3" label="Feedback Timeout" value="0">
+    <Value genre="config" index="3" instance="1" label="Feedback Timeout" type="byte" value="0">
       <Help>To configure the timeout to wait for a WAKEUP_NO_MORE_INFORMATION before the error beep is automatically sound. The error beeps are fixed 8 beeps shortly after each other.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="4" label="Feedback Beeps per Second" value="2">
+    <Value genre="config" index="4" instance="1" label="Feedback Beeps per Second" type="byte" value="2">
       <Help>To configure the number of beeps per second. Every beep is fixed about 10ms.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="5" label="The Mode" value="1">
+    <Value genre="config" index="5" instance="1" label="The Mode" type="byte" value="1">
       <Help>To configure the operating mode. If any mode other then 3, that value will be reported after a get but will be handled in SW as mode 1.</Help>
       <Item label="Mode 1: Normal operating mode." value="1"/>
       <Item label="Mode 3: Z-Wave chip is always on to request e.g. version or manufacturer id." value="3"/>
     </Value>
-
-	<Value type="byte" genre="config" instance="1" index="6" label="RFID circuit startup time" value="100">
-		<Help>The time (*10 ms) that the RFID circuit is started after home or away is pressed (default 100 = 100*10ms=1s)</Help>
-	</Value>
-
+    <Value genre="config" index="6" instance="1" label="RFID circuit startup time" type="byte" value="100">
+      <Help>The time (*10 ms) that the RFID circuit is started after home or away is pressed (default 100 = 100*10ms=1s)</Help>
+    </Value>
   </CommandClass>
-  
   <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
-  <CommandClass id="113" getsupported="false" />
-
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="99">
+    <Compatibility>
+      <ExposeRawUserCodes>true</ExposeRawUserCodes>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Group 1" />
+      <Group index="1" label="Group 1" max_associations="5"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/BeNext/TagReader500.xml b/Config/BeNext/TagReader500.xml
index 4190b097c1..c8d121112a 100644
--- a/Config/BeNext/TagReader500.xml
+++ b/Config/BeNext/TagReader500.xml
@@ -1,70 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--http://www.pepper1.net/zwavedb/device/302-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-    <!-- Configuration -->
-    <CommandClass id="112">
-
-        <Value type="list" genre="config" instance="1" index="1" label="Set to Default" size="1" value="170">
-            <Help>To configure the always awake mode.</Help>
-            <Item label="Normal" value="170"/>
-            <Item label="Set all parameters to default" value="255"/>
-        </Value>
-
-        <Value type="byte" genre="config" instance="1" index="2" label="Feedback Time" units="seconds" value="15">
-            <Help>To configure the time the beep is automatically turned off in seconds.
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Set to Default" size="1" type="list" value="170">
+      <Help>To configure the always awake mode.</Help>
+      <Item label="Normal" value="170"/>
+      <Item label="Set all parameters to default" value="255"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Feedback Time" type="byte" units="seconds" value="15">
+      <Help>To configure the time the beep is automatically turned off in seconds.
                 0x00: Disable, 0x01 - 0xFE: Value in seconds
             </Help>
-        </Value>
-
-        <Value type="byte" genre="config" instance="1" index="3" label="Feedback Timeout" units="seconds" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Feedback Timeout" type="byte" units="seconds" value="0">
+      <Help>
                 To configure the timeout to wait for a WAKEUP_NO_MORE_INFORMATION before the error beep
                 is automatically sound. The error beeps are fixed 8 beeps shortly after each other.
                 0x00: Disabled, 0x01 - 0xFF: Value in seconds
             </Help>
-        </Value>
-
-        <Value type="byte" genre="config" instance="1" index="4" label="Feedback beeps per second" value="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Feedback beeps per second" type="byte" value="2">
+      <Help>
                 To configure the number of beeps per second. Every beep is fixed about 10ms.
                 0x00 - 0xFF: Number of beeps per second
             </Help>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="5" label="Always awake mode" size="1" value="1">
-            <Help>To configure the always awake mode.</Help>
-            <Item label="Normal operating" value="1"/>
-            <Item label="Always awake" value="3"/>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="7" label="Operation mode" size="1" value="0">
-            <Help>The mode that the Tag Reader 500 communicates with the associated gateway.</Help>
-            <Item label="Gateway mode" value="0"/>
-            <Item label="Local mode" value="1"/>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="8" label="Gateway confirmation" size="1" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Always awake mode" size="1" type="list" value="1">
+      <Help>To configure the always awake mode.</Help>
+      <Item label="Normal operating" value="1"/>
+      <Item label="Always awake" value="3"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Operation mode" size="1" type="list" value="0">
+      <Help>The mode that the Tag Reader 500 communicates with the associated gateway.</Help>
+      <Item label="Gateway mode" value="0"/>
+      <Item label="Local mode" value="1"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Gateway confirmation" size="1" type="list" value="0">
+      <Help>
                 In gateway mode it is possible to let the gateway decide if the Tag Reader 500 can arm to home or away.
                 If gateway indication is disabled the Tag Reader 500 automatically assumes that it can arm and will wait
                 for a user input of RFID TAG or numeric code.
             </Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Enabled" value="1"/>
-        </Value>
-
-
-    </CommandClass>
-
-    <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
-    <CommandClass id="113" getsupported="false"/>
-
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
-
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/BeNext/mydisplay.xml b/Config/BeNext/mydisplay.xml
new file mode 100644
index 0000000000..00055d5467
--- /dev/null
+++ b/Config/BeNext/mydisplay.xml
@@ -0,0 +1,37 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/008A:0100:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/BeNext/mydisplay.png</MetaDataItem>
+    <MetaDataItem id="0100" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/39/</MetaDataItem>
+    <MetaDataItem name="Name">Remote Display</MetaDataItem>
+    <MetaDataItem name="Description">The Remote Display is a controlling device for changing automated lifestyles, selecting a scene or controlling individual products. The blue illuminated display provides comfortable readability during dark hours.
+Two hotkey buttons are available which can be configured to your own wishes within the free of charge online manager.
+The Remote Display runs on two AAA batteries, with an expected lifetime of four years.
+
+Features:
+Control and manage different scenes easily from one controller
+Easy to configure 
+Control individual products
+
+Specifications:
+Z Cert Prod Pkg ExcpLogo W max Converted Remote Display
+Product dimensions: 170 x 45 x 22 millimeter (L x W x H)
+Normal operating voltage: 2x AAA 1,5V batteries. From 2,3Vdc to 4,0Vdc. Do not use rechargeable batteries
+Storage temperature: -5°C to +65°C
+Storage humidity: 10% to 70%
+Operating temperature: 0°C to 50°C
+Operating humidity:	30% to 80%
+Frequency range: 868.42 MHz (Z-Wave)
+Maximum wireless range: 100 meters in line of sight
+Average wireless range: 30 meter
+Mesh-network wireless range: 150 to 300 meters (maximum of 4 hops)</MetaDataItem>
+    <MetaDataItem name="ProductSupport">info@benext.eu</MetaDataItem>
+    <MetaDataItem id="0100" name="Identifier" type="0002">BeNext myDisplay</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.benext.eu/en/products/remote-display/</MetaDataItem>
+    <MetaDataItem id="0100" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/39/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/BeNext/mygate.xml b/Config/BeNext/mygate.xml
new file mode 100644
index 0000000000..c850f46139
--- /dev/null
+++ b/Config/BeNext/mygate.xml
@@ -0,0 +1,20 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/008A:0100:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/BeNext/mygate.png</MetaDataItem>
+    <MetaDataItem id="0100" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/53/</MetaDataItem>
+    <MetaDataItem id="0100" name="Identifier" type="0001">BeNeXt / Internet Gateway</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.benext.eu/en/products/internet-gateway/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">info@Benext.eu</MetaDataItem>
+    <MetaDataItem name="Description">The Benext Internet Gateway is a static controller with Internet connection.
+It is configured with lifestyles and rules for different scenes and operates with the BeNext Framework.
+
+Connect the Internet Gateway onto your Smart meter and start reading out data, completely independent from your local power supplier. The Gateway gives you access to our famed free of charge online manager. In this online environment you can, among many other features, set up energy targets, read out and compare revenues from installed solar panels and manage your use of gas. The more BeNext products you will use and install on the Gateway the better you’ll be able to automate big savings and broaden luxury and safety features.</MetaDataItem>
+    <MetaDataItem name="Name">Internet Gateway</MetaDataItem>
+    <MetaDataItem id="0100" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/53/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/Localization.xml b/Config/Localization.xml
new file mode 100644
index 0000000000..a52df9dad4
--- /dev/null
+++ b/Config/Localization.xml
@@ -0,0 +1,2262 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Localization xmlns="https://github.com/OpenZWave/open-zwave" Revision="5">
+	<CommandClass id="113">
+		<!-- Please Keep updates in the Notification CC in sync with NotificationCCTypes.xml as well -->
+		<Label>COMMAND_CLASS_NOTIFICATION</Label>
+		<Value index="1">
+			<Help>A Smoke Alarm Alert</Help>
+			<Label>Smoke Alarm</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Smoke Detected at Location</ItemLabel>
+			<ItemLabel itemIndex="2">Smoke Detected at Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="3">Smoke Test</ItemLabel>
+			<ItemLabel itemIndex="4">Replacement Required (Unspecified)</ItemLabel>
+			<ItemLabel itemIndex="5">Replacement Required (End Of Life)</ItemLabel>
+			<ItemLabel itemIndex="6">Silenced</ItemLabel>
+			<ItemLabel itemIndex="7">Maintenance Required: Periodic Inspection</ItemLabel>
+			<ItemLabel itemIndex="8">Maintenance Required: Dust In Device</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="2">
+			<Help>Carbon Monoxied Alerts</Help>
+			<Label>Carbon Monoxied</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Carbon Monoxied Detected at Location</ItemLabel>
+			<ItemLabel itemIndex="2">Carbon Monoxied Detected at Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="3">Test</ItemLabel>
+			<ItemLabel itemIndex="4">Replacement Required (Unspecified)</ItemLabel>
+			<ItemLabel itemIndex="5">Replacement Required (End Of Life)</ItemLabel>
+			<ItemLabel itemIndex="6">Silenced</ItemLabel>
+			<ItemLabel itemIndex="7">Maintenance Required: Periodic Inspection</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="3">
+			<Help>Carbon Dixoide Alerts</Help>
+			<Label>Carbon Dixoide</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Carbon Dixoide Detected at Location</ItemLabel>
+			<ItemLabel itemIndex="2">Carbon Dixoide Detected at Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="3">Test</ItemLabel>
+			<ItemLabel itemIndex="4">Replacement Required (Unspecified)</ItemLabel>
+			<ItemLabel itemIndex="5">Replacement Required (End Of Life)</ItemLabel>
+			<ItemLabel itemIndex="6">Silenced</ItemLabel>
+			<ItemLabel itemIndex="7">Maintenance Required: Periodic Inspection</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="4">
+			<Help>Heat Alerts</Help>
+			<Label>Heat</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">OverHeat at Location</ItemLabel>
+			<ItemLabel itemIndex="2">OverHeat at Unknown at Location</ItemLabel>
+			<ItemLabel itemIndex="3">Rapid Temperature Rise at Location</ItemLabel>
+			<ItemLabel itemIndex="4">Rapid Temperature Rise at Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="5">UnderHeat at Location</ItemLabel>
+			<ItemLabel itemIndex="6">UnderHeat at Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="7">Test</ItemLabel>
+			<ItemLabel itemIndex="8">Replacement Required (End_Of_Life)</ItemLabel>
+			<ItemLabel itemIndex="9">Silenced</ItemLabel>
+			<ItemLabel itemIndex="10">Maintenance Required: Dust In Device</ItemLabel>
+			<ItemLabel itemIndex="11">Maintenance_Required: Periodic Inspection</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="5">
+			<Help>Water Alerts</Help>
+			<Label>Water</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Water Leak at Location</ItemLabel>
+			<ItemLabel itemIndex="2">Water Leak at Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="3">Water Level Droped at Location</ItemLabel>
+			<ItemLabel itemIndex="4">Water Level Droped at Unnknown Location</ItemLabel>
+			<ItemLabel itemIndex="5">Replace Filter</ItemLabel>
+			<ItemLabel itemIndex="6">Water Flow</ItemLabel>
+			<ItemLabel itemIndex="7">Water Pressure</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="6">
+			<Help>Access Control Alerts</Help>
+			<Label>Access Control</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Manual Lock Operation</ItemLabel>
+			<ItemLabel itemIndex="2">Manual Unlock Operation</ItemLabel>
+			<ItemLabel itemIndex="3">Wireless Lock Operation</ItemLabel>
+			<ItemLabel itemIndex="4">Wireless Unlock Operation</ItemLabel>
+			<ItemLabel itemIndex="5">Keypad Lock Operation</ItemLabel>
+			<ItemLabel itemIndex="6">Keypad Unlock Operation</ItemLabel>
+			<ItemLabel itemIndex="7">Manual Lock Not Fully Locked</ItemLabel>
+			<ItemLabel itemIndex="8">Wireless Not Fully Locked</ItemLabel>
+			<ItemLabel itemIndex="9">Auto Lock</ItemLabel>
+			<ItemLabel itemIndex="10">Auto Lock Not Fully Locked</ItemLabel>
+			<ItemLabel itemIndex="11">Lock Jamed</ItemLabel>
+			<ItemLabel itemIndex="12">All User Codes Deleted</ItemLabel>
+			<ItemLabel itemIndex="13">Single User Code Deleted</ItemLabel>
+			<ItemLabel itemIndex="14">New User Code Added</ItemLabel>
+			<ItemLabel itemIndex="15">Duplicate User Code Not Added</ItemLabel>
+			<ItemLabel itemIndex="16">Keypad Disabled</ItemLabel>
+			<ItemLabel itemIndex="17">Keypad Busy</ItemLabel>
+			<ItemLabel itemIndex="18">New Program Code Entered</ItemLabel>
+			<ItemLabel itemIndex="19">User Codes Attempt Exceeds Limit</ItemLabel>
+			<ItemLabel itemIndex="20">Wireless Unlock Invalid UserCode Entered</ItemLabel>
+			<ItemLabel itemIndex="21">Wireless Lock Invalid UserCode Entered</ItemLabel>
+			<ItemLabel itemIndex="22">Door/Window Open</ItemLabel>
+			<ItemLabel itemIndex="23">Door/Window Closed</ItemLabel>
+			<ItemLabel itemIndex="64">Barrier Initializing</ItemLabel>
+			<ItemLabel itemIndex="65">Barrier Force Exceeded</ItemLabel>
+			<ItemLabel itemIndex="66">Barrier Motor Time Exceeded</ItemLabel>
+			<ItemLabel itemIndex="67">Barrier Physical Limits Exceeded</ItemLabel>
+			<ItemLabel itemIndex="68">Barrier Failed Operation</ItemLabel>
+			<ItemLabel itemIndex="69">Barrier Unattended Operation Disabled</ItemLabel>
+			<ItemLabel itemIndex="70">Barrier Malfunction</ItemLabel>
+			<ItemLabel itemIndex="71">Barrier Vacaction Mode</ItemLabel>
+			<ItemLabel itemIndex="72">Barrier Saftey Beam Obstruction</ItemLabel>
+			<ItemLabel itemIndex="73">Barrier Sensor Not Detected</ItemLabel>
+			<ItemLabel itemIndex="74">Barrier Battery Low</ItemLabel>
+			<ItemLabel itemIndex="75">Barrier Short in Wall Station Wires</ItemLabel>
+			<ItemLabel itemIndex="76">Barrier Associated with Non ZWave Device</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="7">
+			<Help>Home Security Alerts</Help>
+			<Label>Home Security</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Intrusion at Location</ItemLabel>
+			<ItemLabel itemIndex="2">Intrusion at Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="3">Tampering -  Cover Removed</ItemLabel>
+			<ItemLabel itemIndex="4">Tamperting - Invalid Code</ItemLabel>
+			<ItemLabel itemIndex="5">Glass Breakage at Location</ItemLabel>
+			<ItemLabel itemIndex="6">Glass Breakage at UnknownLocation</ItemLabel>
+			<ItemLabel itemIndex="7">Motion Detected at Location</ItemLabel>
+			<ItemLabel itemIndex="8">Motion Detected at Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="9">Tampering - Product Moved</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="8">
+			<Help>Power Management Alerts</Help>
+			<Label>Power Management</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Power Applied</ItemLabel>
+			<ItemLabel itemIndex="2">AC Power Lost</ItemLabel>
+			<ItemLabel itemIndex="3">AC Power Restored</ItemLabel>
+			<ItemLabel itemIndex="4">Surge Detected</ItemLabel>
+			<ItemLabel itemIndex="5">Brownout Detected</ItemLabel>
+			<ItemLabel itemIndex="6">Over Current Detected</ItemLabel>
+			<ItemLabel itemIndex="7">Over Voltage Voltage</ItemLabel>
+			<ItemLabel itemIndex="8">Over Load Detected</ItemLabel>
+			<ItemLabel itemIndex="9">Load Error</ItemLabel>
+			<ItemLabel itemIndex="10">Replace Battery Soon</ItemLabel>
+			<ItemLabel itemIndex="11">Replace Battery Now</ItemLabel>
+			<ItemLabel itemIndex="12">Battery Charging</ItemLabel>
+			<ItemLabel itemIndex="13">Battery Charged</ItemLabel>
+			<ItemLabel itemIndex="14">Battery Low</ItemLabel>
+			<ItemLabel itemIndex="15">Battery Critical</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="9">
+			<Help>System Alerts</Help>
+			<Label>System</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Hardware Failure</ItemLabel>
+			<ItemLabel itemIndex="2">Software Failure</ItemLabel>
+			<ItemLabel itemIndex="3">Hardware Failure Code</ItemLabel>
+			<ItemLabel itemIndex="4">Software Failure Code</ItemLabel>
+			<ItemLabel itemIndex="5">Heartbeat</ItemLabel>
+			<ItemLabel itemIndex="6">Tampering Detected</ItemLabel>
+			<ItemLabel itemIndex="7">Emergency Shutoff</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="10">
+			<Help>Emergency Alerts</Help>
+			<Label>Emergency</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Contact Police Department</ItemLabel>
+			<ItemLabel itemIndex="2">Contact Fire Department</ItemLabel>
+			<ItemLabel itemIndex="3">Contact Medical Service</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="11">
+			<Help>Clock Alerts</Help>
+			<Label>Clock</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Wake Up Alert</ItemLabel>
+			<ItemLabel itemIndex="2">Timer Ending</ItemLabel>
+			<ItemLabel itemIndex="3">Time Remaining</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="12">
+			<Help>Appliance Alerts</Help>
+			<Label>Appliance</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Program Started</ItemLabel>
+			<ItemLabel itemIndex="2">Program In Progress</ItemLabel>
+			<ItemLabel itemIndex="3">Program Completed</ItemLabel>
+			<ItemLabel itemIndex="4">Replace Main Filter</ItemLabel>
+			<ItemLabel itemIndex="5">Failure To Set Temperature</ItemLabel>
+			<ItemLabel itemIndex="6">Supplying Water</ItemLabel>
+			<ItemLabel itemIndex="7">Water Supply Failure</ItemLabel>
+			<ItemLabel itemIndex="8">Boiling</ItemLabel>
+			<ItemLabel itemIndex="9">Boiling Failure</ItemLabel>
+			<ItemLabel itemIndex="10">Washing</ItemLabel>
+			<ItemLabel itemIndex="11">Washing Failure</ItemLabel>
+			<ItemLabel itemIndex="12">Rinsing</ItemLabel>
+			<ItemLabel itemIndex="13">Rinsing Failure</ItemLabel>
+			<ItemLabel itemIndex="14">Draining</ItemLabel>
+			<ItemLabel itemIndex="15">Draining Failure</ItemLabel>
+			<ItemLabel itemIndex="16">Spinning</ItemLabel>
+			<ItemLabel itemIndex="17">Spinning Failure</ItemLabel>
+			<ItemLabel itemIndex="18">Drying</ItemLabel>
+			<ItemLabel itemIndex="19">Drying Failure</ItemLabel>
+			<ItemLabel itemIndex="20">Fan Failure</ItemLabel>
+			<ItemLabel itemIndex="21">Compressor Failure</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="13">
+			<Help>Home Health Alerts</Help>
+			<Label>Home Health</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Leaving Bed</ItemLabel>
+			<ItemLabel itemIndex="2">Sitting On Bed</ItemLabel>
+			<ItemLabel itemIndex="3">Lying On Bed</ItemLabel>
+			<ItemLabel itemIndex="4">Posture Changed</ItemLabel>
+			<ItemLabel itemIndex="5">Sitting On Edge Of Bed</ItemLabel>
+			<ItemLabel itemIndex="6">Volatile Organic Level</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="14">
+			<Help>Siren Alerts</Help>
+			<Label>Siren</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Active</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="15">
+			<Help>Water Valve Alerts</Help>
+			<Label>Water Valve</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Valve Operation</ItemLabel>
+			<ItemLabel itemIndex="2">Master Valve Operation</ItemLabel>
+			<ItemLabel itemIndex="3">Valve Short Circuit</ItemLabel>
+			<ItemLabel itemIndex="4">Master Valve Short Circuit</ItemLabel>
+			<ItemLabel itemIndex="5">Valve Current Alarm</ItemLabel>
+			<ItemLabel itemIndex="6">Master Valve Current Alarm</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="16">
+			<Help>Weather Alerts</Help>
+			<Label>Weather</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Rain Detected</ItemLabel>
+			<ItemLabel itemIndex="2">Moisture Detected</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="17">
+			<Help>Irrigation Alerts</Help>
+			<Label>Irrigation</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Schedule Started</ItemLabel>
+			<ItemLabel itemIndex="2">Schedule Finished</ItemLabel>
+			<ItemLabel itemIndex="3">Valve Table Run Started</ItemLabel>
+			<ItemLabel itemIndex="4">Valve Table Run Finished</ItemLabel>
+			<ItemLabel itemIndex="5">Device Not Configured</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="18">
+			<Help>Gas Alerts</Help>
+			<Label>Gas</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Combustable Gas Detected at Location</ItemLabel>
+			<ItemLabel itemIndex="2">Combustable Gas Detected at Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="3">Toxic Gas Detected at Location</ItemLabel>
+			<ItemLabel itemIndex="4">Toxic Gas Detected Unknown Location</ItemLabel>
+			<ItemLabel itemIndex="5">Test</ItemLabel>
+			<ItemLabel itemIndex="6">Replacement Required (Unspecified)</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<!--  Index from 256 are Params -->
+		<Value index="256">
+			<Help>Previous Event that was sent</Help>
+			<Label>Previous Event Cleared</Label>
+		</Value>
+		<Value index="257">
+			<Help>Location that the Alert was detected at</Help>
+			<Label>Alert Location</Label>
+		</Value>
+		<Value index="258">
+			<Help>Result of the Test</Help>
+			<Label>Result</Label>
+			<ItemLabel itemIndex="1">Passed</ItemLabel>
+			<ItemLabel itemIndex="2">Failed</ItemLabel>
+		</Value>
+		<Value index="259">
+			<Help>Threshold Exceeded for Alert</Help>
+			<Label>Threshold</Label>
+			<ItemLabel itemIndex="1">No Data</ItemLabel>
+			<ItemLabel itemIndex="2">Below Low Threshold</ItemLabel>
+			<ItemLabel itemIndex="3">Above High Threshold</ItemLabel>
+			<ItemLabel itemIndex="4">Max</ItemLabel>
+		</Value>
+		<!--  UserCode Param has two ValueID's (id, and UserCode). We only
+		identify index 260 in NotificationCCTypes.xml but 
+		Index 261 is automatically created. -->
+		<Value index="260">
+			<Help>User Code ID that was used</Help>
+			<Label>User Code ID</Label>
+		</Value>
+		<Value index="261">
+			<Help>User Codethat was used</Help>
+			<Label>User Code</Label>
+		</Value>
+
+		<Value index="262">
+			<Help>Progress of Operation</Help>
+			<Label>Progress</Label>
+			<ItemLabel itemIndex="0">Process Complete</ItemLabel>
+			<ItemLabel itemIndex="255">Performing Process</ItemLabel>
+		</Value>
+		<Value index="263">
+			<Help>Enabled Mode</Help>
+			<Label>Mode</Label>
+			<ItemLabel itemIndex="0">Disabled</ItemLabel>
+			<ItemLabel itemIndex="255">Enabled</ItemLabel>
+		</Value>
+		<Value index="264">
+			<Help>The status of the obstruction</Help>
+			<Label>Obstruction</Label>
+			<ItemLabel itemIndex="0">No Obstruction</ItemLabel>
+			<ItemLabel itemIndex="255">Obstruction</ItemLabel>
+		</Value>
+		<Value index="265">
+			<Help>The ID of the Sensor that triggered the alert</Help>
+			<Label>Sensor ID</Label>
+		</Value>
+		<Value index="266">
+			<Help>The Error Code returned by the device</Help>
+			<Label>Error Code</Label>
+		</Value>
+		<Value index="267">
+			<Help>Duration remaining in seconds</Help>
+			<Label>Duration</Label>
+		</Value>
+		<Value index="268">
+			<Help>The Pollution Level Detected</Help>
+			<Label>Pollution Level</Label>
+			<ItemLabel itemIndex="1">Clean</ItemLabel>
+			<ItemLabel itemIndex="2">Slightly Polluted</ItemLabel>
+			<ItemLabel itemIndex="3">Moderately Polluted</ItemLabel>
+			<ItemLabel itemIndex="4">Highly Polluted</ItemLabel>
+		</Value>
+		<Value index="269">
+			<Help>The Status of the Device</Help>
+			<Label>Status</Label>
+			<ItemLabel itemIndex="0">Off</ItemLabel>
+			<ItemLabel itemIndex="1">On</ItemLabel>
+		</Value>
+		<Value index="270">
+			<Help>The ID of the Schedule that triggered this alert</Help>
+			<Label>Schedule ID</Label>
+		</Value>
+		<Value index="271">
+			<Help>The ID of the Valve Table that triggered this alert</Help>
+			<Label>Valve Table ID</Label>
+		</Value>
+
+		<Value index="512">
+			<Help>Alarm Type Received</Help>
+			<Help lang="fr">Type d'alarme reçu</Help>
+			<Label>Alarm Type</Label>
+			<Label lang="fr">Type d'alarme</Label>
+		</Value>
+		<Value index="513">
+			<Help>Alarm Level Received</Help>
+			<Help lang="fr">Niveau d'alarme reçu</Help>
+			<Label>Alarm Level</Label>
+			<Label lang="fr">Niveau d'alarme</Label>
+		</Value>
+		<Value index="514">
+			<Help>Automatically Clear Events sent by a device after a number of Milliseconds</Help>
+			<Label>Automatically Clear Events</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="34">
+		<Label>COMMAND_CLASS_APPLICATION_STATUS</Label>
+	</CommandClass>
+	<CommandClass id="133">
+		<Label>COMMAND_CLASS_ASSOCIATION</Label>
+	</CommandClass>
+	<CommandClass id="155">
+		<Label>COMMAND_CLASS_ASSOCIATION_COMMAND_CONFIGURATION</Label>
+		<Value index="0">
+			<Help>Maximum Command Length that can be stored on this node</Help>
+			<Label>Max Command Length</Label>
+		</Value>
+		<Value index="1">
+			<Help>True - Only Basic Set Messages are stored. False - Full Commands may be stored</Help>
+			<Label>Commands are Values</Label>
+		</Value>
+		<Value index="2">
+			<Help>A Application can configure the commands sent</Help>
+			<Label>Commands are Configurable</Label>
+		</Value>
+		<Value index="3">
+			<Help>The Amount of free commands that can be stored</Help>
+			<Label>Free Commands</Label>
+		</Value>
+		<Value index="4">
+			<Help>The Maximum Number of commands that can be stored</Help>
+			<Label>Max Commands</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="102">
+		<Label>COMMAND_CLASS_BARRIER_OPERATOR</Label>
+		<Value index="1">
+			<Help>The Current State of the Barrier</Help>
+			<Label>Barrier State</Label>
+		</Value>
+		<Value index="2">
+			<Help>Supported Operations for the Barrier</Help>
+			<Label>Supported Signals</Label>
+		</Value>
+		<Value index="3">
+			<Help>Enable Audible Notifications of Barrier State Change</Help>
+			<Label>Audible Notification</Label>
+		</Value>
+		<Value index="4">
+			<Help>Enable Visual Notifications of Barrier State Change</Help>
+			<Label>Visual Notification</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="32">
+		<Label>COMMAND_CLASS_BASIC</Label>
+		<Label lang="fr">COMMAND_CLASS_BASIC</Label>
+		<Value index="0">
+			<Help>Basic status of the node</Help>
+			<Help lang="fr">Basic status of the node in French</Help>
+			<Label>Basic</Label>
+			<Label lang="fr">Basic</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="80">
+		<Label>COMMAND_CLASS_BASIC_WINDOW_COVERING</Label>
+		<Value index="0">
+			<Help>Open the Window Covering</Help>
+			<Label>Open</Label>
+		</Value>
+		<Value index="1">
+			<Help>Close the Window Covering</Help>
+			<Label>Close</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="128">
+		<Label>COMMAND_CLASS_BATTERY</Label>
+		<Value index="0">
+			<Help>Current Battery Level</Help>
+			<Label>Battery Level</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="91">
+		<Label>COMMAND_CLASS_CENTRAL_SCENE</Label>
+	</CommandClass>
+	<CommandClass id="70">
+		<Label>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</Label>
+		<Value index="0">
+			<Help>Schedule</Help>
+			<Label>Invalid</Label>
+		</Value>
+		<Value index="1">
+			<Help>Schedule for Monday</Help>
+			<Label>Monday</Label>
+		</Value>
+		<Value index="2">
+			<Help>Schedule for Tuesday</Help>
+			<Label>Tuesday</Label>
+		</Value>
+		<Value index="3">
+			<Help>Schedule for Wednesday</Help>
+			<Label>Wednesday</Label>
+		</Value>
+		<Value index="4">
+			<Help>Schedule for Thursday</Help>
+			<Label>Thursday</Label>
+		</Value>
+		<Value index="5">
+			<Help>Schedule for Friday</Help>
+			<Label>Friday</Label>
+		</Value>
+		<Value index="6">
+			<Help>Schedule for Saturday</Help>
+			<Label>Saturday</Label>
+		</Value>
+		<Value index="7">
+			<Help>Schedule for Sunday</Help>
+			<Label>Sunday</Label>
+		</Value>
+		<Value index="8">
+			<Help>Override Schedule</Help>
+			<Label>Override State</Label>
+		</Value>
+		<Value index="9">
+			<Help>Override Setback</Help>
+			<Label>Override Setback</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="129">
+		<Label>COMMAND_CLASS_CLOCK</Label>
+		<Value index="0">
+			<Help>Day of Week</Help>
+			<Label>Day</Label>
+		</Value>
+		<Value index="1">
+			<Help>Hour</Help>
+			<Label>Hour</Label>
+		</Value>
+		<Value index="2">
+			<Help>Minute</Help>
+			<Label>Minute</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="51">
+		<Label>COMMAND_CLASS_COLOR</Label>
+		<Value index="0">
+			<Help>Color (in RGB format)</Help>
+			<Label>Color</Label>
+		</Value>
+		<Value index="1">
+			<Help>Preset Color</Help>
+			<Label>Color Index</Label>
+		</Value>
+		<Value index="2">
+			<Help>Color Capabilities of the device</Help>
+			<Label>Color Channels</Label>
+		</Value>
+		<Value index="3">
+			<Help>Duration to change colors</Help>
+			<Label>Duration</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="112">
+		<Label>COMMAND_CLASS_CONFIGURATION</Label>
+		<!-- We dont do any here - this should come from device configuration files -->
+	</CommandClass>
+	<CommandClass id="33">
+		<Label>COMMAND_CLASS_CONTROLLER_REPLICATION</Label>
+		<Value index="0">
+			<Help>Node to Perform the replication with</Help>
+			<Label>Node</Label>
+		</Value>
+		<Value index="1">
+			<Help>What Features should be replicated</Help>
+			<Label>Functions</Label>
+		</Value>
+		<Value index="2">
+			<Help>Start the Replication</Help>
+			<Label>Replicate</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="86">
+		<Label>COMMAND_CLASS_CRC_16_ENCAP</Label>
+	</CommandClass>
+	<CommandClass id="90">
+		<Label>COMMAND_CLASS_DEVICE_RESET_LOCALLY</Label>
+	</CommandClass>
+	<CommandClass id="98">
+		<Label>COMMAND_CLASS_DOOR_LOCK</Label>
+		<Value index="0">
+			<Help>State of the Lock</Help>
+			<Label>Locked</Label>
+		</Value>
+		<Value index="1">
+			<Help>State of the Lock (Advanced)</Help>
+			<Label>Locked (Advanced)</Label>
+		</Value>
+		<Value index="2">
+			<Help>Timeout Mode for Reverting Lock State</Help>
+			<Label>Timeout Mode</Label>
+		</Value>
+		<Value index="3">
+			<Help>How Many Minutes before reverting Lock State</Help>
+			<Label>Timeout Minutes</Label>
+		</Value>
+		<Value index="4">
+			<Help>How Many Seconds before reverting Lock State</Help>
+			<Label>Timeout Seconds</Label>
+		</Value>
+		<Value index="5">
+			<Help>State of the Exterior Handle Control</Help>
+			<Label>Outside Handle Control</Label>
+		</Value>
+		<Value index="6">
+			<Help>State of the Exterior Handle Control</Help>
+			<Label>Inside Handle Control</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="76">
+		<Label>COMMAND_CLASS_DOOR_LOCK_LOGGING</Label>
+		<Value index="0">
+			<Help>Max Number of Logging Records Stored</Help>
+			<Label>Max Number of Records</Label>
+		</Value>
+		<Value index="1">
+			<Help>Current Log Record Number</Help>
+			<Label>Current Record Number</Label>
+		</Value>
+		<Value index="2">
+			<Help>Log Entry</Help>
+			<Label>Log Record</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="144">
+		<Label>COMMAND_CLASS_ENERGY_PRODUCTION</Label>
+		<Value index="0">
+			<Help>Current Energy Production Value</Help>
+			<Label>Instant energy production</Label>
+		</Value>
+		<Value index="1">
+			<Help>Total Amount of Energy Produced</Help>
+			<Label>Total energy production</Label>
+		</Value>
+		<Value index="2">
+			<Help>Total Amount of Energy Produced Today</Help>
+			<Label>Energy production today</Label>
+		</Value>
+		<Value index="3">
+			<Help>Total Time Producing Energy</Help>
+			<Label>Total production time</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="130">
+		<Label>COMMAND_CLASS_HAIL</Label>
+	</CommandClass>
+	<CommandClass id="135">
+		<Label>COMMAND_CLASS_INDICATOR</Label>
+		<Value index="0">
+			<Help>Current Indicator State</Help>
+			<Label>Indicator</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="137">
+		<Label>COMMAND_CLASS_LANGUAGE</Label>
+		<Value index="0">
+			<Help>Current Language Setting of the Device is ISO639-2 Format</Help>
+			<Label>Language</Label>
+		</Value>
+		<Value index="0">
+			<Help>Current Country Setting of the Device in IS3166-1 Format</Help>
+			<Label>Country</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="118">
+		<Label>COMMAND_CLASS_LOCK</Label>
+		<Value index="0">
+			<Help>Current State of the Device</Help>
+			<Label>Locked</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="145">
+		<Label>COMMAND_CLASS_PROPRIETARY</Label>
+	</CommandClass>
+	<CommandClass id="114">
+		<Label>COMMAND_CLASS_MANUFACTURER_SPECIFIC</Label>
+		<Value index="0">
+			<Help>Revision of the Config file currently loaded</Help>
+			<Label>Loaded Config Revision</Label>
+		</Value>
+		<Value index="1">
+			<Help>Revision of the Config file on the File System</Help>
+			<Label>Config File Revision</Label>
+		</Value>
+		<Value index="2">
+			<Help>Latest Revision of the Config file available for download</Help>
+			<Label>Latest Available Config File Revision</Label>
+		</Value>
+		<Value index="3">
+			<Help>Manufacturer Specific Device ID/Model</Help>
+			<Label>Device ID</Label>
+		</Value>
+		<Value index="4">
+			<Help>Device Serial Number</Help>
+			<Label>Serial Number</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="50">
+		<Label>COMMAND_CLASS_METER</Label>
+		<!-- This has some complex ValueID creation rules. Come back to it later -->
+	</CommandClass>
+	<CommandClass id="53">
+		<Label>COMMAND_CLASS_METER_PULSE</Label>
+		<Value index="0">
+			<Help>Number of Pulses sent by the Meter</Help>
+			<Label>Count</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="142">
+		<Label>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</Label>
+	</CommandClass>
+	<CommandClass id="143">
+		<Label>COMMAND_CLASS_MULTI_CMD</Label>
+	</CommandClass>
+	<CommandClass id="96">
+		<Label>COMMAND_CLASS_MULTI_INSTANCE</Label>
+	</CommandClass>
+	<CommandClass id="77">
+		<Label>COMMAND_CLASS_NODE_NAMING</Label>
+	</CommandClass>
+	<CommandClass id="0">
+		<Label>COMMAND_CLASS_NO_OPERATION</Label>
+	</CommandClass>
+	<CommandClass id="115">
+		<Label>COMMAND_CLASS_POWERLEVEL</Label>
+		<Value index="0">
+			<Help>Output RF PowerLevel</Help>
+			<Label>Powerlevel</Label>
+			<ItemLabel itemIndex="0">Normal</ItemLabel>
+			<ItemLabel itemIndex="1">-1dB</ItemLabel>
+			<ItemLabel itemIndex="2">-2dB</ItemLabel>
+			<ItemLabel itemIndex="3">-3dB</ItemLabel>
+			<ItemLabel itemIndex="4">-4dB</ItemLabel>
+			<ItemLabel itemIndex="5">-5dB</ItemLabel>
+			<ItemLabel itemIndex="6">-6dB</ItemLabel>
+			<ItemLabel itemIndex="7">-7dB</ItemLabel>
+			<ItemLabel itemIndex="8">-8dB</ItemLabel>
+			<ItemLabel itemIndex="9">-9dB</ItemLabel>
+			<ItemLabel itemIndex="10">unknown</ItemLabel>
+		</Value>
+		<Value index="1">
+			<Help>Timeout till the PowerLevel is reset to Normal</Help>
+			<Label>Timeout</Label>
+		</Value>
+		<Value index="2">
+			<Help>Apply the Output PowerLevel and Timeout Values</Help>
+			<Label>Set Powerlevel</Label>
+		</Value>
+		<Value index="3">
+			<Help>Node to Perform a test against</Help>
+			<Label>Test Node</Label>
+		</Value>
+		<Value index="4">
+			<Help>PowerLevel to use for the Test</Help>
+			<Label>Test Powerlevel</Label>
+		</Value>
+		<Value index="5">
+			<Help>How Many Messages to send to the Note for the Test</Help>
+			<Label>Frame Count</Label>
+		</Value>
+		<Value index="6">
+			<Help>Perform a PowerLevel Test against the a Node</Help>
+			<Label>Test</Label>
+		</Value>
+		<Value index="7">
+			<Help>Get the results of the latest PowerLevel Test against a Node</Help>
+			<Label>Report</Label>
+		</Value>
+		<Value index="8">
+			<Help>The Current Status of the last PowerNode Test Executed</Help>
+			<Label>Test Status</Label>
+		</Value>
+		<Value index="9">
+			<Help>Number of Messages successfully Acked by the Target Node</Help>
+			<Label>Acked Frames</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="136">
+		<Label>COMMAND_CLASS_PROPRIETARY</Label>
+	</CommandClass>
+	<CommandClass id="117">
+		<Label>COMMAND_CLASS_PROTECTION</Label>
+		<Value index="0">
+			<Help>Protect a device against unintentional control</Help>
+			<Label>Protection</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="43">
+		<Label>COMMAND_CLASS_SCENE_ACTIVATION</Label>
+	</CommandClass>
+	<CommandClass id="152">
+		<Label>COMMAND_CLASS_SECURITY</Label>
+		<Value index="0">
+			<Help>Is Communication with Device Encrypted</Help>
+			<Label>Secured</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="156">
+		<Label>COMMAND_CLASS_SENSOR_ALARM</Label>
+		<Value index="0">
+			<Help>General Alarm</Help>
+			<Label>General</Label>
+		</Value>
+		<Value index="1">
+			<Help>Smoke Alarm</Help>
+			<Label>Smoke</Label>
+		</Value>
+		<Value index="2">
+			<Help>Carbon Monoxide Alarm</Help>
+			<Label>Carbon Monoxide</Label>
+		</Value>
+		<Value index="3">
+			<Help>Carbon Dioxide Alarm</Help>
+			<Label>Carbon Dioxide</Label>
+		</Value>
+		<Value index="4">
+			<Help>Heat Alarm</Help>
+			<Label>Heat</Label>
+		</Value>
+		<Value index="5">
+			<Help>Flood Alarm</Help>
+			<Label>Flood</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="48">
+		<Label>COMMAND_CLASS_SENSOR_BINARY</Label>
+		<Value index="0">
+			<Help>Binary Sensor State</Help>
+			<Label>Sensor</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="49">
+		<Label>COMMAND_CLASS_SENSOR_MULTILEVEL</Label>
+		<Value index="0">
+			<Help>Undefined Sensor State</Help>
+			<Label>Undefined</Label>
+		</Value>
+		<Value index="1">
+			<Help>Temperature Sensor Value</Help>
+			<Label>Temperature</Label>
+		</Value>
+		<Value index="2">
+			<Help>General Sensor Value</Help>
+			<Label>General</Label>
+		</Value>
+		<Value index="3">
+			<Help>Luminance Sensor Value</Help>
+			<Label>Luminance</Label>
+		</Value>
+		<Value index="4">
+			<Help>Power Sensor Value</Help>
+			<Label>Power</Label>
+		</Value>
+		<Value index="5">
+			<Help>Relative Humidity Sensor Value</Help>
+			<Label>Relative Humidity</Label>
+		</Value>
+		<Value index="6">
+			<Help>Velocity Sensor Value</Help>
+			<Label>Velocity</Label>
+		</Value>
+		<Value index="7">
+			<Help>Direction Sensor Value</Help>
+			<Label>Direction</Label>
+		</Value>
+		<Value index="8">
+			<Help>Atmospheric Pressure Sensor Value</Help>
+			<Label>Atmospheric Pressure</Label>
+		</Value>
+		<Value index="9">
+			<Help>Barometric Pressure Sensor Value</Help>
+			<Label>Barometric Pressure</Label>
+		</Value>
+		<Value index="10">
+			<Help>Solar Radiation Sensor Value</Help>
+			<Label>Solar Radiation</Label>
+		</Value>
+		<Value index="11">
+			<Help>Dew Point Sensor Value</Help>
+			<Label>Dew Point</Label>
+		</Value>
+		<Value index="12">
+			<Help>Rain Rate Sensor Value</Help>
+			<Label>Rain Rate</Label>
+		</Value>
+		<Value index="13">
+			<Help>Tide Level Sensor Value</Help>
+			<Label>Tide Level</Label>
+		</Value>
+		<Value index="14">
+			<Help>Weight Sensor Value</Help>
+			<Label>Weight</Label>
+		</Value>
+		<Value index="15">
+			<Help>Voltage Sensor Value</Help>
+			<Label>Voltage</Label>
+		</Value>
+		<Value index="16">
+			<Help>Current Sensor Value</Help>
+			<Label>Current</Label>
+		</Value>
+		<Value index="17">
+			<Help>CO2 Level Sensor Value</Help>
+			<Label>CO2 Level</Label>
+		</Value>
+		<Value index="18">
+			<Help>Air Flow Sensor Value</Help>
+			<Label>Air Flow</Label>
+		</Value>
+		<Value index="19">
+			<Help>Tank Capacity Sensor Value</Help>
+			<Label>Tank Capacity</Label>
+		</Value>
+		<Value index="20">
+			<Help>Distance Sensor Value</Help>
+			<Label>Distance</Label>
+		</Value>
+		<Value index="21">
+			<Help>Angle Position Sensor Value</Help>
+			<Label>Angle Position</Label>
+		</Value>
+		<Value index="22">
+			<Help>Rotation Sensor Value</Help>
+			<Label>Rotation</Label>
+		</Value>
+		<Value index="23">
+			<Help>Water Temperature Sensor Value</Help>
+			<Label>Water Temperature</Label>
+		</Value>
+		<Value index="24">
+			<Help>Soil Temperature Sensor Value</Help>
+			<Label>Soil Temperature</Label>
+		</Value>
+		<Value index="25">
+			<Help>Binary Sensor Value</Help>
+			<Label>Sensor</Label>
+		</Value>
+		<Value index="26">
+			<Help>Seismic Intensity Sensor Value</Help>
+			<Label>Seismic Intensity</Label>
+		</Value>
+		<Value index="27">
+			<Help>Seismic Magnitude Sensor Value</Help>
+			<Label>Sensor</Label>
+		</Value>
+		<Value index="28">
+			<Help>Ultraviolet Sensor Value</Help>
+			<Label>Ultraviolet</Label>
+		</Value>
+		<Value index="29">
+			<Help>Electrical Resistivity Sensor Value</Help>
+			<Label>Electrical Resistivity</Label>
+		</Value>
+		<Value index="30">
+			<Help>Electrical Conductivity Sensor Value</Help>
+			<Label>Electrical Conductivity</Label>
+		</Value>
+		<Value index="31">
+			<Help>Loudness Sensor Value</Help>
+			<Label>Loudness</Label>
+		</Value>
+		<Value index="32">
+			<Help>Moisture Sensor Value</Help>
+			<Label>Moisture</Label>
+		</Value>
+	</CommandClass>
+		<CommandClass id="121">
+		<Label>COMMAND_CLASS_SOUND_SWITCH</Label>
+		<Value index="0">
+			<Help>The Number of Available Tones on the Node</Help>
+			<Label>Number of Tones</Label>
+		</Value>
+		<Value index="1">
+			<Help>A List of Available Tones on the Device</Help>
+			<Label>Tones</Label>
+		</Value>
+		<Value index="2">
+			<Help>The Volume to play the tone at</Help>
+			<Label>Volume</Label>
+		</Value>
+		<Value index="3">
+			<Help>The default tone to play when none is specified in a Play Command</Help>
+			<Label>Default Tones</Label>
+		</Value>
+		
+	</CommandClass>
+	<CommandClass id="39">
+		<Label>COMMAND_CLASS_SWITCH_ALL</Label>
+		<Value index="0">
+			<Help>Switch All Devices On/Off</Help>
+			<Label>Switch All</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="37">
+		<Label>COMMAND_CLASS_SWITCH_BINARY</Label>
+		<Value index="0">
+			<Help>Turn On/Off Device</Help>
+			<Label>Switch</Label>
+		</Value>
+		<Value index="1">
+			<Help>The Final State of the Switch</Help>
+			<Label>Target State</Label>
+		</Value>
+		<Value index="2">
+			<Help>How Long to Transition to new State</Help>
+			<Label>Transition Duration</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="38">
+		<Label>COMMAND_CLASS_SWITCH_MULTILEVEL</Label>
+		<Value index="0">
+			<Help>The Current Level of the Device</Help>
+			<Label>Level</Label>
+		</Value>
+		<Value index="1">
+			<Help>Increase the Brightness of the Device</Help>
+			<Label>Bright</Label>
+		</Value>
+		<Value index="2">
+			<Help>Decrease the Brightness of the Device</Help>
+			<Label>Dim</Label>
+		</Value>
+		<Value index="3">
+			<Help>Ignore the Start Level of the Device when increasing/descreasing brightness</Help>
+			<Label>Ignore Start Level</Label>
+		</Value>
+		<Value index="4">
+			<Help>Start Level when Changing the Brightness of a Device</Help>
+			<Label>Start Level</Label>
+		</Value>
+		<Value index="5">
+			<Help>Duration taken when changing the Level of a Device</Help>
+			<Label>Dimming Duration</Label>
+		</Value>
+		<Value index="6">
+			<Help>How Many Percent Change when incrementing/decrementing the Level of a Device</Help>
+			<Label>Step Size</Label>
+		</Value>
+		<Value index="7">
+			<Help>Increment the Level of a Device</Help>
+			<Label>Inc</Label>
+		</Value>
+		<Value index="8">
+			<Help>Decrement the Level of a Device</Help>
+			<Label>Dec</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="40">
+		<Label>COMMAND_CLASS_SWITCH_TOGGLE_BINARY</Label>
+		<Value index="0">
+			<Help>Turn On/Off a Device</Help>
+			<Label>Toggle Switch</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="41">
+		<Label>COMMAND_CLASS_SWITCH_TOGGLE_MULTILEVEL</Label>
+		<Value index="0">
+			<Help>Set the Device to a Level</Help>
+			<Label>Level</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="68">
+		<Label>COMMAND_CLASS_THERMOSTAT_FAN_MODE</Label>
+		<Value index="0">
+			<Help>Set the Fan Mode</Help>
+			<Label>Fan Mode</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="69">
+		<Label>COMMAND_CLASS_THERMOSTAT_FAN_STATE</Label>
+		<Value index="0">
+			<Help>Set the Fan State</Help>
+			<Label>Fan State</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="64">
+		<Label>COMMAND_CLASS_THERMOSTAT_MODE</Label>
+		<Value index="0">
+			<Help>Set the Thermostat Mode</Help>
+			<Label>Mode</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="66">
+		<Label>COMMAND_CLASS_THERMOSTAT_OPERATING_STATE</Label>
+		<Value index="0">
+			<Help>Set the Thermostat Operating State</Help>
+			<Label>Operating State</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="67">
+		<Label>COMMAND_CLASS_THERMOSTAT_SETPOINT</Label>
+		<Value index="0">
+			<Help>Set the Thermostat Setpoint Unused 0</Help>
+			<Label>Unused 0</Label>
+		</Value>
+		<Value index="1">
+			<Help>Set the Thermostat Setpoint Heating 1</Help>
+			<Label>Heating 1</Label>
+		</Value>
+		<Value index="2">
+			<Help>Set the Thermostat Setpoint Cooling 1</Help>
+			<Label>Cooling 1</Label>
+		</Value>
+		<Value index="3">
+			<Help>Set the Thermostat Setpoint Unused 3</Help>
+			<Label>Unused 3</Label>
+		</Value>
+		<Value index="4">
+			<Help>Set the Thermostat Setpoint Unused 4</Help>
+			<Label>Unused 4</Label>
+		</Value>
+		<Value index="5">
+			<Help>Set the Thermostat Setpoint Unused 5</Help>
+			<Label>Unused 5</Label>
+		</Value>
+		<Value index="6">
+			<Help>Set the Thermostat Setpoint Unused 6</Help>
+			<Label>Unused 6</Label>
+		</Value>
+		<Value index="7">
+			<Help>Set the Thermostat Setpoint Furnace</Help>
+			<Label>Furnace</Label>
+		</Value>
+		<Value index="8">
+			<Help>Set the Thermostat Setpoint Dry Air</Help>
+			<Label>Dry Air</Label>
+		</Value>
+		<Value index="9">
+			<Help>Set the Thermostat Setpoint Moist Air</Help>
+			<Label>Moist Air</Label>
+		</Value>
+		<Value index="10">
+			<Help>Set the Thermostat Setpoint Auto Changeover</Help>
+			<Label>Auto Changeover</Label>
+		</Value>
+		<Value index="11">
+			<Help>Set the Thermostat Setpoint Heating Econ</Help>
+			<Label>Heating Econ</Label>
+		</Value>
+		<Value index="12">
+			<Help>Set the Thermostat Setpoint Cooling Econ</Help>
+			<Label>Cooling Econ</Label>
+		</Value>
+		<Value index="13">
+			<Help>Set the Thermostat Setpoint Away Heating</Help>
+			<Label>Away Heating</Label>
+		</Value>
+		<Value index="14">
+			<Help>Set the Thermostat Setpoint Away Cooling</Help>
+			<Label>Away Cooling</Label>
+		</Value>
+		<Value index="15">
+			<Help>Set the Thermostat Setpoint Full Power</Help>
+			<Label>Full Power</Label>
+		</Value>
+		<!-- Need to find a way to add the *_minimum and *_maximum valueID's as well -->
+	</CommandClass>
+	<CommandClass id="139">
+		<Label>COMMAND_CLASS_TIME_PARAMETERS</Label>
+		<Value index="0">
+			<Help>Current Date</Help>
+			<Label>Date</Label>
+		</Value>
+		<Value index="1">
+			<Help>Current Time</Help>
+			<Label>Time</Label>
+		</Value>
+		<Value index="2">
+			<Help>Set the Date/Time</Help>
+			<Label>Set Date/Time</Label>
+		</Value>
+		<Value index="3">
+			<Help>Refresh the Date/Time</Help>
+			<Label>Refresh Date/Time</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="99">
+		<Label>COMMAND_CLASS_USER_CODE</Label>
+		<Value index="0">
+			<Help>Enrollment Code</Help>
+			<Label>Enrollment Code</Label>
+		</Value>
+		<Value index="1">
+			<Help>UserCode 1</Help>
+			<Label>UserCode 1</Label>
+		</Value>
+		<Value index="2">
+			<Help>UserCode 2</Help>
+			<Label>UserCode 2</Label>
+		</Value>
+		<Value index="3">
+			<Help>UserCode 3</Help>
+			<Label>UserCode 3</Label>
+		</Value>
+		<Value index="4">
+			<Help>UserCode 4</Help>
+			<Label>UserCode 4</Label>
+		</Value>
+		<Value index="5">
+			<Help>UserCode 5</Help>
+			<Label>UserCode 5</Label>
+		</Value>
+		<Value index="6">
+			<Help>UserCode 6</Help>
+			<Label>UserCode 6</Label>
+		</Value>
+		<Value index="7">
+			<Help>UserCode 7</Help>
+			<Label>UserCode 7</Label>
+		</Value>
+		<Value index="8">
+			<Help>UserCode 8</Help>
+			<Label>UserCode 8</Label>
+		</Value>
+		<Value index="9">
+			<Help>UserCode 9</Help>
+			<Label>UserCode 9</Label>
+		</Value>
+		<Value index="10">
+			<Help>UserCode 10</Help>
+			<Label>UserCode 10</Label>
+		</Value>
+		<Value index="11">
+			<Help>UserCode 11</Help>
+			<Label>UserCode 11</Label>
+		</Value>
+		<Value index="12">
+			<Help>UserCode 12</Help>
+			<Label>UserCode 12</Label>
+		</Value>
+		<Value index="13">
+			<Help>UserCode 13</Help>
+			<Label>UserCode 13</Label>
+		</Value>
+		<Value index="14">
+			<Help>UserCode 14</Help>
+			<Label>UserCode 14</Label>
+		</Value>
+		<Value index="15">
+			<Help>UserCode 15</Help>
+			<Label>UserCode 15</Label>
+		</Value>
+		<Value index="16">
+			<Help>UserCode 16</Help>
+			<Label>UserCode 16</Label>
+		</Value>
+		<Value index="17">
+			<Help>UserCode 17</Help>
+			<Label>UserCode 17</Label>
+		</Value>
+		<Value index="18">
+			<Help>UserCode 18</Help>
+			<Label>UserCode 18</Label>
+		</Value>
+		<Value index="19">
+			<Help>UserCode 19</Help>
+			<Label>UserCode 19</Label>
+		</Value>
+		<Value index="20">
+			<Help>UserCode 20</Help>
+			<Label>UserCode 20</Label>
+		</Value>
+		<Value index="21">
+			<Help>UserCode 21</Help>
+			<Label>UserCode 21</Label>
+		</Value>
+		<Value index="22">
+			<Help>UserCode 22</Help>
+			<Label>UserCode 22</Label>
+		</Value>
+		<Value index="23">
+			<Help>UserCode 23</Help>
+			<Label>UserCode 23</Label>
+		</Value>
+		<Value index="24">
+			<Help>UserCode 24</Help>
+			<Label>UserCode 24</Label>
+		</Value>
+		<Value index="25">
+			<Help>UserCode 25</Help>
+			<Label>UserCode 25</Label>
+		</Value>
+		<Value index="26">
+			<Help>UserCode 26</Help>
+			<Label>UserCode 26</Label>
+		</Value>
+		<Value index="27">
+			<Help>UserCode 27</Help>
+			<Label>UserCode 27</Label>
+		</Value>
+		<Value index="28">
+			<Help>UserCode 28</Help>
+			<Label>UserCode 28</Label>
+		</Value>
+		<Value index="29">
+			<Help>UserCode 29</Help>
+			<Label>UserCode 29</Label>
+		</Value>
+		<Value index="30">
+			<Help>UserCode 30</Help>
+			<Label>UserCode 30</Label>
+		</Value>
+		<Value index="31">
+			<Help>UserCode 31</Help>
+			<Label>UserCode 31</Label>
+		</Value>
+		<Value index="32">
+			<Help>UserCode 32</Help>
+			<Label>UserCode 32</Label>
+		</Value>
+		<Value index="33">
+			<Help>UserCode 33</Help>
+			<Label>UserCode 33</Label>
+		</Value>
+		<Value index="34">
+			<Help>UserCode 34</Help>
+			<Label>UserCode 34</Label>
+		</Value>
+		<Value index="35">
+			<Help>UserCode 35</Help>
+			<Label>UserCode 35</Label>
+		</Value>
+		<Value index="36">
+			<Help>UserCode 36</Help>
+			<Label>UserCode 36</Label>
+		</Value>
+		<Value index="37">
+			<Help>UserCode 37</Help>
+			<Label>UserCode 37</Label>
+		</Value>
+		<Value index="38">
+			<Help>UserCode 38</Help>
+			<Label>UserCode 38</Label>
+		</Value>
+		<Value index="39">
+			<Help>UserCode 39</Help>
+			<Label>UserCode 39</Label>
+		</Value>
+		<Value index="40">
+			<Help>UserCode 40</Help>
+			<Label>UserCode 40</Label>
+		</Value>
+		<Value index="41">
+			<Help>UserCode 41</Help>
+			<Label>UserCode 41</Label>
+		</Value>
+		<Value index="42">
+			<Help>UserCode 42</Help>
+			<Label>UserCode 42</Label>
+		</Value>
+		<Value index="43">
+			<Help>UserCode 43</Help>
+			<Label>UserCode 43</Label>
+		</Value>
+		<Value index="44">
+			<Help>UserCode 44</Help>
+			<Label>UserCode 44</Label>
+		</Value>
+		<Value index="45">
+			<Help>UserCode 45</Help>
+			<Label>UserCode 45</Label>
+		</Value>
+		<Value index="46">
+			<Help>UserCode 46</Help>
+			<Label>UserCode 46</Label>
+		</Value>
+		<Value index="47">
+			<Help>UserCode 47</Help>
+			<Label>UserCode 47</Label>
+		</Value>
+		<Value index="48">
+			<Help>UserCode 48</Help>
+			<Label>UserCode 48</Label>
+		</Value>
+		<Value index="49">
+			<Help>UserCode 49</Help>
+			<Label>UserCode 49</Label>
+		</Value>
+		<Value index="50">
+			<Help>UserCode 50</Help>
+			<Label>UserCode 50</Label>
+		</Value>
+		<Value index="51">
+			<Help>UserCode 51</Help>
+			<Label>UserCode 51</Label>
+		</Value>
+		<Value index="52">
+			<Help>UserCode 52</Help>
+			<Label>UserCode 52</Label>
+		</Value>
+		<Value index="53">
+			<Help>UserCode 53</Help>
+			<Label>UserCode 53</Label>
+		</Value>
+		<Value index="54">
+			<Help>UserCode 54</Help>
+			<Label>UserCode 54</Label>
+		</Value>
+		<Value index="55">
+			<Help>UserCode 55</Help>
+			<Label>UserCode 55</Label>
+		</Value>
+		<Value index="56">
+			<Help>UserCode 56</Help>
+			<Label>UserCode 56</Label>
+		</Value>
+		<Value index="57">
+			<Help>UserCode 57</Help>
+			<Label>UserCode 57</Label>
+		</Value>
+		<Value index="58">
+			<Help>UserCode 58</Help>
+			<Label>UserCode 58</Label>
+		</Value>
+		<Value index="59">
+			<Help>UserCode 59</Help>
+			<Label>UserCode 59</Label>
+		</Value>
+		<Value index="60">
+			<Help>UserCode 60</Help>
+			<Label>UserCode 60</Label>
+		</Value>
+		<Value index="61">
+			<Help>UserCode 61</Help>
+			<Label>UserCode 61</Label>
+		</Value>
+		<Value index="62">
+			<Help>UserCode 62</Help>
+			<Label>UserCode 62</Label>
+		</Value>
+		<Value index="63">
+			<Help>UserCode 63</Help>
+			<Label>UserCode 63</Label>
+		</Value>
+		<Value index="64">
+			<Help>UserCode 64</Help>
+			<Label>UserCode 64</Label>
+		</Value>
+		<Value index="65">
+			<Help>UserCode 65</Help>
+			<Label>UserCode 65</Label>
+		</Value>
+		<Value index="66">
+			<Help>UserCode 66</Help>
+			<Label>UserCode 66</Label>
+		</Value>
+		<Value index="67">
+			<Help>UserCode 67</Help>
+			<Label>UserCode 67</Label>
+		</Value>
+		<Value index="68">
+			<Help>UserCode 68</Help>
+			<Label>UserCode 68</Label>
+		</Value>
+		<Value index="69">
+			<Help>UserCode 69</Help>
+			<Label>UserCode 69</Label>
+		</Value>
+		<Value index="70">
+			<Help>UserCode 70</Help>
+			<Label>UserCode 70</Label>
+		</Value>
+		<Value index="71">
+			<Help>UserCode 71</Help>
+			<Label>UserCode 71</Label>
+		</Value>
+		<Value index="72">
+			<Help>UserCode 72</Help>
+			<Label>UserCode 72</Label>
+		</Value>
+		<Value index="73">
+			<Help>UserCode 73</Help>
+			<Label>UserCode 73</Label>
+		</Value>
+		<Value index="74">
+			<Help>UserCode 74</Help>
+			<Label>UserCode 74</Label>
+		</Value>
+		<Value index="75">
+			<Help>UserCode 75</Help>
+			<Label>UserCode 75</Label>
+		</Value>
+		<Value index="76">
+			<Help>UserCode 76</Help>
+			<Label>UserCode 76</Label>
+		</Value>
+		<Value index="77">
+			<Help>UserCode 77</Help>
+			<Label>UserCode 77</Label>
+		</Value>
+		<Value index="78">
+			<Help>UserCode 78</Help>
+			<Label>UserCode 78</Label>
+		</Value>
+		<Value index="79">
+			<Help>UserCode 79</Help>
+			<Label>UserCode 79</Label>
+		</Value>
+		<Value index="80">
+			<Help>UserCode 80</Help>
+			<Label>UserCode 80</Label>
+		</Value>
+		<Value index="81">
+			<Help>UserCode 81</Help>
+			<Label>UserCode 81</Label>
+		</Value>
+		<Value index="82">
+			<Help>UserCode 82</Help>
+			<Label>UserCode 82</Label>
+		</Value>
+		<Value index="83">
+			<Help>UserCode 83</Help>
+			<Label>UserCode 83</Label>
+		</Value>
+		<Value index="84">
+			<Help>UserCode 84</Help>
+			<Label>UserCode 84</Label>
+		</Value>
+		<Value index="85">
+			<Help>UserCode 85</Help>
+			<Label>UserCode 85</Label>
+		</Value>
+		<Value index="86">
+			<Help>UserCode 86</Help>
+			<Label>UserCode 86</Label>
+		</Value>
+		<Value index="87">
+			<Help>UserCode 87</Help>
+			<Label>UserCode 87</Label>
+		</Value>
+		<Value index="88">
+			<Help>UserCode 88</Help>
+			<Label>UserCode 88</Label>
+		</Value>
+		<Value index="89">
+			<Help>UserCode 89</Help>
+			<Label>UserCode 89</Label>
+		</Value>
+		<Value index="90">
+			<Help>UserCode 90</Help>
+			<Label>UserCode 90</Label>
+		</Value>
+		<Value index="91">
+			<Help>UserCode 91</Help>
+			<Label>UserCode 91</Label>
+		</Value>
+		<Value index="92">
+			<Help>UserCode 92</Help>
+			<Label>UserCode 92</Label>
+		</Value>
+		<Value index="93">
+			<Help>UserCode 93</Help>
+			<Label>UserCode 93</Label>
+		</Value>
+		<Value index="94">
+			<Help>UserCode 94</Help>
+			<Label>UserCode 94</Label>
+		</Value>
+		<Value index="95">
+			<Help>UserCode 95</Help>
+			<Label>UserCode 95</Label>
+		</Value>
+		<Value index="96">
+			<Help>UserCode 96</Help>
+			<Label>UserCode 96</Label>
+		</Value>
+		<Value index="97">
+			<Help>UserCode 97</Help>
+			<Label>UserCode 97</Label>
+		</Value>
+		<Value index="98">
+			<Help>UserCode 98</Help>
+			<Label>UserCode 98</Label>
+		</Value>
+		<Value index="99">
+			<Help>UserCode 99</Help>
+			<Label>UserCode 99</Label>
+		</Value>
+		<Value index="100">
+			<Help>UserCode 100</Help>
+			<Label>UserCode 100</Label>
+		</Value>
+		<Value index="101">
+			<Help>UserCode 101</Help>
+			<Label>UserCode 101</Label>
+		</Value>
+		<Value index="102">
+			<Help>UserCode 102</Help>
+			<Label>UserCode 102</Label>
+		</Value>
+		<Value index="103">
+			<Help>UserCode 103</Help>
+			<Label>UserCode 103</Label>
+		</Value>
+		<Value index="104">
+			<Help>UserCode 104</Help>
+			<Label>UserCode 104</Label>
+		</Value>
+		<Value index="105">
+			<Help>UserCode 105</Help>
+			<Label>UserCode 105</Label>
+		</Value>
+		<Value index="106">
+			<Help>UserCode 106</Help>
+			<Label>UserCode 106</Label>
+		</Value>
+		<Value index="107">
+			<Help>UserCode 107</Help>
+			<Label>UserCode 107</Label>
+		</Value>
+		<Value index="108">
+			<Help>UserCode 108</Help>
+			<Label>UserCode 108</Label>
+		</Value>
+		<Value index="109">
+			<Help>UserCode 109</Help>
+			<Label>UserCode 109</Label>
+		</Value>
+		<Value index="110">
+			<Help>UserCode 110</Help>
+			<Label>UserCode 110</Label>
+		</Value>
+		<Value index="111">
+			<Help>UserCode 111</Help>
+			<Label>UserCode 111</Label>
+		</Value>
+		<Value index="112">
+			<Help>UserCode 112</Help>
+			<Label>UserCode 112</Label>
+		</Value>
+		<Value index="113">
+			<Help>UserCode 113</Help>
+			<Label>UserCode 113</Label>
+		</Value>
+		<Value index="114">
+			<Help>UserCode 114</Help>
+			<Label>UserCode 114</Label>
+		</Value>
+		<Value index="115">
+			<Help>UserCode 115</Help>
+			<Label>UserCode 115</Label>
+		</Value>
+		<Value index="116">
+			<Help>UserCode 116</Help>
+			<Label>UserCode 116</Label>
+		</Value>
+		<Value index="117">
+			<Help>UserCode 117</Help>
+			<Label>UserCode 117</Label>
+		</Value>
+		<Value index="118">
+			<Help>UserCode 118</Help>
+			<Label>UserCode 118</Label>
+		</Value>
+		<Value index="119">
+			<Help>UserCode 119</Help>
+			<Label>UserCode 119</Label>
+		</Value>
+		<Value index="120">
+			<Help>UserCode 120</Help>
+			<Label>UserCode 120</Label>
+		</Value>
+		<Value index="121">
+			<Help>UserCode 121</Help>
+			<Label>UserCode 121</Label>
+		</Value>
+		<Value index="122">
+			<Help>UserCode 122</Help>
+			<Label>UserCode 122</Label>
+		</Value>
+		<Value index="123">
+			<Help>UserCode 123</Help>
+			<Label>UserCode 123</Label>
+		</Value>
+		<Value index="124">
+			<Help>UserCode 124</Help>
+			<Label>UserCode 124</Label>
+		</Value>
+		<Value index="125">
+			<Help>UserCode 125</Help>
+			<Label>UserCode 125</Label>
+		</Value>
+		<Value index="126">
+			<Help>UserCode 126</Help>
+			<Label>UserCode 126</Label>
+		</Value>
+		<Value index="127">
+			<Help>UserCode 127</Help>
+			<Label>UserCode 127</Label>
+		</Value>
+		<Value index="128">
+			<Help>UserCode 128</Help>
+			<Label>UserCode 128</Label>
+		</Value>
+		<Value index="129">
+			<Help>UserCode 129</Help>
+			<Label>UserCode 129</Label>
+		</Value>
+		<Value index="130">
+			<Help>UserCode 130</Help>
+			<Label>UserCode 130</Label>
+		</Value>
+		<Value index="131">
+			<Help>UserCode 131</Help>
+			<Label>UserCode 131</Label>
+		</Value>
+		<Value index="132">
+			<Help>UserCode 132</Help>
+			<Label>UserCode 132</Label>
+		</Value>
+		<Value index="133">
+			<Help>UserCode 133</Help>
+			<Label>UserCode 133</Label>
+		</Value>
+		<Value index="134">
+			<Help>UserCode 134</Help>
+			<Label>UserCode 134</Label>
+		</Value>
+		<Value index="135">
+			<Help>UserCode 135</Help>
+			<Label>UserCode 135</Label>
+		</Value>
+		<Value index="136">
+			<Help>UserCode 136</Help>
+			<Label>UserCode 136</Label>
+		</Value>
+		<Value index="137">
+			<Help>UserCode 137</Help>
+			<Label>UserCode 137</Label>
+		</Value>
+		<Value index="138">
+			<Help>UserCode 138</Help>
+			<Label>UserCode 138</Label>
+		</Value>
+		<Value index="139">
+			<Help>UserCode 139</Help>
+			<Label>UserCode 139</Label>
+		</Value>
+		<Value index="140">
+			<Help>UserCode 140</Help>
+			<Label>UserCode 140</Label>
+		</Value>
+		<Value index="141">
+			<Help>UserCode 141</Help>
+			<Label>UserCode 141</Label>
+		</Value>
+		<Value index="142">
+			<Help>UserCode 142</Help>
+			<Label>UserCode 142</Label>
+		</Value>
+		<Value index="143">
+			<Help>UserCode 143</Help>
+			<Label>UserCode 143</Label>
+		</Value>
+		<Value index="144">
+			<Help>UserCode 144</Help>
+			<Label>UserCode 144</Label>
+		</Value>
+		<Value index="145">
+			<Help>UserCode 145</Help>
+			<Label>UserCode 145</Label>
+		</Value>
+		<Value index="146">
+			<Help>UserCode 146</Help>
+			<Label>UserCode 146</Label>
+		</Value>
+		<Value index="147">
+			<Help>UserCode 147</Help>
+			<Label>UserCode 147</Label>
+		</Value>
+		<Value index="148">
+			<Help>UserCode 148</Help>
+			<Label>UserCode 148</Label>
+		</Value>
+		<Value index="149">
+			<Help>UserCode 149</Help>
+			<Label>UserCode 149</Label>
+		</Value>
+		<Value index="150">
+			<Help>UserCode 150</Help>
+			<Label>UserCode 150</Label>
+		</Value>
+		<Value index="151">
+			<Help>UserCode 151</Help>
+			<Label>UserCode 151</Label>
+		</Value>
+		<Value index="152">
+			<Help>UserCode 152</Help>
+			<Label>UserCode 152</Label>
+		</Value>
+		<Value index="153">
+			<Help>UserCode 153</Help>
+			<Label>UserCode 153</Label>
+		</Value>
+		<Value index="154">
+			<Help>UserCode 154</Help>
+			<Label>UserCode 154</Label>
+		</Value>
+		<Value index="155">
+			<Help>UserCode 155</Help>
+			<Label>UserCode 155</Label>
+		</Value>
+		<Value index="156">
+			<Help>UserCode 156</Help>
+			<Label>UserCode 156</Label>
+		</Value>
+		<Value index="157">
+			<Help>UserCode 157</Help>
+			<Label>UserCode 157</Label>
+		</Value>
+		<Value index="158">
+			<Help>UserCode 158</Help>
+			<Label>UserCode 158</Label>
+		</Value>
+		<Value index="159">
+			<Help>UserCode 159</Help>
+			<Label>UserCode 159</Label>
+		</Value>
+		<Value index="160">
+			<Help>UserCode 160</Help>
+			<Label>UserCode 160</Label>
+		</Value>
+		<Value index="161">
+			<Help>UserCode 161</Help>
+			<Label>UserCode 161</Label>
+		</Value>
+		<Value index="162">
+			<Help>UserCode 162</Help>
+			<Label>UserCode 162</Label>
+		</Value>
+		<Value index="163">
+			<Help>UserCode 163</Help>
+			<Label>UserCode 163</Label>
+		</Value>
+		<Value index="164">
+			<Help>UserCode 164</Help>
+			<Label>UserCode 164</Label>
+		</Value>
+		<Value index="165">
+			<Help>UserCode 165</Help>
+			<Label>UserCode 165</Label>
+		</Value>
+		<Value index="166">
+			<Help>UserCode 166</Help>
+			<Label>UserCode 166</Label>
+		</Value>
+		<Value index="167">
+			<Help>UserCode 167</Help>
+			<Label>UserCode 167</Label>
+		</Value>
+		<Value index="168">
+			<Help>UserCode 168</Help>
+			<Label>UserCode 168</Label>
+		</Value>
+		<Value index="169">
+			<Help>UserCode 169</Help>
+			<Label>UserCode 169</Label>
+		</Value>
+		<Value index="170">
+			<Help>UserCode 170</Help>
+			<Label>UserCode 170</Label>
+		</Value>
+		<Value index="171">
+			<Help>UserCode 171</Help>
+			<Label>UserCode 171</Label>
+		</Value>
+		<Value index="172">
+			<Help>UserCode 172</Help>
+			<Label>UserCode 172</Label>
+		</Value>
+		<Value index="173">
+			<Help>UserCode 173</Help>
+			<Label>UserCode 173</Label>
+		</Value>
+		<Value index="174">
+			<Help>UserCode 174</Help>
+			<Label>UserCode 174</Label>
+		</Value>
+		<Value index="175">
+			<Help>UserCode 175</Help>
+			<Label>UserCode 175</Label>
+		</Value>
+		<Value index="176">
+			<Help>UserCode 176</Help>
+			<Label>UserCode 176</Label>
+		</Value>
+		<Value index="177">
+			<Help>UserCode 177</Help>
+			<Label>UserCode 177</Label>
+		</Value>
+		<Value index="178">
+			<Help>UserCode 178</Help>
+			<Label>UserCode 178</Label>
+		</Value>
+		<Value index="179">
+			<Help>UserCode 179</Help>
+			<Label>UserCode 179</Label>
+		</Value>
+		<Value index="180">
+			<Help>UserCode 180</Help>
+			<Label>UserCode 180</Label>
+		</Value>
+		<Value index="181">
+			<Help>UserCode 181</Help>
+			<Label>UserCode 181</Label>
+		</Value>
+		<Value index="182">
+			<Help>UserCode 182</Help>
+			<Label>UserCode 182</Label>
+		</Value>
+		<Value index="183">
+			<Help>UserCode 183</Help>
+			<Label>UserCode 183</Label>
+		</Value>
+		<Value index="184">
+			<Help>UserCode 184</Help>
+			<Label>UserCode 184</Label>
+		</Value>
+		<Value index="185">
+			<Help>UserCode 185</Help>
+			<Label>UserCode 185</Label>
+		</Value>
+		<Value index="186">
+			<Help>UserCode 186</Help>
+			<Label>UserCode 186</Label>
+		</Value>
+		<Value index="187">
+			<Help>UserCode 187</Help>
+			<Label>UserCode 187</Label>
+		</Value>
+		<Value index="188">
+			<Help>UserCode 188</Help>
+			<Label>UserCode 188</Label>
+		</Value>
+		<Value index="189">
+			<Help>UserCode 189</Help>
+			<Label>UserCode 189</Label>
+		</Value>
+		<Value index="190">
+			<Help>UserCode 190</Help>
+			<Label>UserCode 190</Label>
+		</Value>
+		<Value index="191">
+			<Help>UserCode 191</Help>
+			<Label>UserCode 191</Label>
+		</Value>
+		<Value index="192">
+			<Help>UserCode 192</Help>
+			<Label>UserCode 192</Label>
+		</Value>
+		<Value index="193">
+			<Help>UserCode 193</Help>
+			<Label>UserCode 193</Label>
+		</Value>
+		<Value index="194">
+			<Help>UserCode 194</Help>
+			<Label>UserCode 194</Label>
+		</Value>
+		<Value index="195">
+			<Help>UserCode 195</Help>
+			<Label>UserCode 195</Label>
+		</Value>
+		<Value index="196">
+			<Help>UserCode 196</Help>
+			<Label>UserCode 196</Label>
+		</Value>
+		<Value index="197">
+			<Help>UserCode 197</Help>
+			<Label>UserCode 197</Label>
+		</Value>
+		<Value index="198">
+			<Help>UserCode 198</Help>
+			<Label>UserCode 198</Label>
+		</Value>
+		<Value index="199">
+			<Help>UserCode 199</Help>
+			<Label>UserCode 199</Label>
+		</Value>
+		<Value index="200">
+			<Help>UserCode 200</Help>
+			<Label>UserCode 200</Label>
+		</Value>
+		<Value index="201">
+			<Help>UserCode 201</Help>
+			<Label>UserCode 201</Label>
+		</Value>
+		<Value index="202">
+			<Help>UserCode 202</Help>
+			<Label>UserCode 202</Label>
+		</Value>
+		<Value index="203">
+			<Help>UserCode 203</Help>
+			<Label>UserCode 203</Label>
+		</Value>
+		<Value index="204">
+			<Help>UserCode 204</Help>
+			<Label>UserCode 204</Label>
+		</Value>
+		<Value index="205">
+			<Help>UserCode 205</Help>
+			<Label>UserCode 205</Label>
+		</Value>
+		<Value index="206">
+			<Help>UserCode 206</Help>
+			<Label>UserCode 206</Label>
+		</Value>
+		<Value index="207">
+			<Help>UserCode 207</Help>
+			<Label>UserCode 207</Label>
+		</Value>
+		<Value index="208">
+			<Help>UserCode 208</Help>
+			<Label>UserCode 208</Label>
+		</Value>
+		<Value index="209">
+			<Help>UserCode 209</Help>
+			<Label>UserCode 209</Label>
+		</Value>
+		<Value index="210">
+			<Help>UserCode 210</Help>
+			<Label>UserCode 210</Label>
+		</Value>
+		<Value index="211">
+			<Help>UserCode 211</Help>
+			<Label>UserCode 211</Label>
+		</Value>
+		<Value index="212">
+			<Help>UserCode 212</Help>
+			<Label>UserCode 212</Label>
+		</Value>
+		<Value index="213">
+			<Help>UserCode 213</Help>
+			<Label>UserCode 213</Label>
+		</Value>
+		<Value index="214">
+			<Help>UserCode 214</Help>
+			<Label>UserCode 214</Label>
+		</Value>
+		<Value index="215">
+			<Help>UserCode 215</Help>
+			<Label>UserCode 215</Label>
+		</Value>
+		<Value index="216">
+			<Help>UserCode 216</Help>
+			<Label>UserCode 216</Label>
+		</Value>
+		<Value index="217">
+			<Help>UserCode 217</Help>
+			<Label>UserCode 217</Label>
+		</Value>
+		<Value index="218">
+			<Help>UserCode 218</Help>
+			<Label>UserCode 218</Label>
+		</Value>
+		<Value index="219">
+			<Help>UserCode 219</Help>
+			<Label>UserCode 219</Label>
+		</Value>
+		<Value index="220">
+			<Help>UserCode 220</Help>
+			<Label>UserCode 220</Label>
+		</Value>
+		<Value index="221">
+			<Help>UserCode 221</Help>
+			<Label>UserCode 221</Label>
+		</Value>
+		<Value index="222">
+			<Help>UserCode 222</Help>
+			<Label>UserCode 222</Label>
+		</Value>
+		<Value index="223">
+			<Help>UserCode 223</Help>
+			<Label>UserCode 223</Label>
+		</Value>
+		<Value index="224">
+			<Help>UserCode 224</Help>
+			<Label>UserCode 224</Label>
+		</Value>
+		<Value index="225">
+			<Help>UserCode 225</Help>
+			<Label>UserCode 225</Label>
+		</Value>
+		<Value index="226">
+			<Help>UserCode 226</Help>
+			<Label>UserCode 226</Label>
+		</Value>
+		<Value index="227">
+			<Help>UserCode 227</Help>
+			<Label>UserCode 227</Label>
+		</Value>
+		<Value index="228">
+			<Help>UserCode 228</Help>
+			<Label>UserCode 228</Label>
+		</Value>
+		<Value index="229">
+			<Help>UserCode 229</Help>
+			<Label>UserCode 229</Label>
+		</Value>
+		<Value index="230">
+			<Help>UserCode 230</Help>
+			<Label>UserCode 230</Label>
+		</Value>
+		<Value index="231">
+			<Help>UserCode 231</Help>
+			<Label>UserCode 231</Label>
+		</Value>
+		<Value index="232">
+			<Help>UserCode 232</Help>
+			<Label>UserCode 232</Label>
+		</Value>
+		<Value index="233">
+			<Help>UserCode 233</Help>
+			<Label>UserCode 233</Label>
+		</Value>
+		<Value index="234">
+			<Help>UserCode 234</Help>
+			<Label>UserCode 234</Label>
+		</Value>
+		<Value index="235">
+			<Help>UserCode 235</Help>
+			<Label>UserCode 235</Label>
+		</Value>
+		<Value index="236">
+			<Help>UserCode 236</Help>
+			<Label>UserCode 236</Label>
+		</Value>
+		<Value index="237">
+			<Help>UserCode 237</Help>
+			<Label>UserCode 237</Label>
+		</Value>
+		<Value index="238">
+			<Help>UserCode 238</Help>
+			<Label>UserCode 238</Label>
+		</Value>
+		<Value index="239">
+			<Help>UserCode 239</Help>
+			<Label>UserCode 239</Label>
+		</Value>
+		<Value index="240">
+			<Help>UserCode 240</Help>
+			<Label>UserCode 240</Label>
+		</Value>
+		<Value index="241">
+			<Help>UserCode 241</Help>
+			<Label>UserCode 241</Label>
+		</Value>
+		<Value index="242">
+			<Help>UserCode 242</Help>
+			<Label>UserCode 242</Label>
+		</Value>
+		<Value index="243">
+			<Help>UserCode 243</Help>
+			<Label>UserCode 243</Label>
+		</Value>
+		<Value index="244">
+			<Help>UserCode 244</Help>
+			<Label>UserCode 244</Label>
+		</Value>
+		<Value index="245">
+			<Help>UserCode 245</Help>
+			<Label>UserCode 245</Label>
+		</Value>
+		<Value index="246">
+			<Help>UserCode 246</Help>
+			<Label>UserCode 246</Label>
+		</Value>
+		<Value index="247">
+			<Help>UserCode 247</Help>
+			<Label>UserCode 247</Label>
+		</Value>
+		<Value index="248">
+			<Help>UserCode 248</Help>
+			<Label>UserCode 248</Label>
+		</Value>
+		<Value index="249">
+			<Help>UserCode 249</Help>
+			<Label>UserCode 249</Label>
+		</Value>
+		<Value index="250">
+			<Help>UserCode 250</Help>
+			<Label>UserCode 250</Label>
+		</Value>
+		<Value index="251">
+			<Help>UserCode 251</Help>
+			<Label>UserCode 251</Label>
+		</Value>
+		<Value index="252">
+			<Help>UserCode 252</Help>
+			<Label>UserCode 252</Label>
+		</Value>
+		<Value index="253">
+			<Help>UserCode 253</Help>
+			<Label>UserCode 253</Label>
+		</Value>
+		<Value index="253">
+			<Help>UserCode 253</Help>
+			<Label>UserCode 253</Label>
+		</Value>
+		<Value index="254">
+			<Help>UserCode 254</Help>
+			<Label>UserCode 254</Label>
+		</Value>
+		<Value index="255">
+			<Help>Refresh All UserCodes Stored on Device</Help>
+			<Label>Refresh All UserCodes</Label>
+		</Value>
+		<Value index="256">
+			<Help>Remove A UserCode at the Specified Index</Help>
+			<Label>Remove UserCode</Label>
+		</Value>
+		<Value index="257">
+			<Help>Number of User Codes supported by the Device</Help>
+			<Label>Code Count</Label>
+		</Value>
+		<Value index="258">
+			<Help>The Raw UserCode as specified at the Postition in Raw UserCode Index </Help>
+			<Label>Raw UserCode</Label>
+		</Value>
+		<Value index="259">
+			<Help>Get the Raw User Code for the Index Specified in this value </Help>
+			<Label>Raw UserCode Index</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="134">
+		<Label>COMMAND_CLASS_VERSION</Label>
+		<Value index="0">
+			<Help>Z-Wave Library Version</Help>
+			<Label>Library Version</Label>
+		</Value>
+		<Value index="1">
+			<Help>Z-Wave Protocol Version</Help>
+			<Label>Protocol Version</Label>
+		</Value>
+		<Value index="2">
+			<Help>Application Version</Help>
+			<Label>Application Version</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="132">
+		<Label>COMMAND_CLASS_WAKE_UP</Label>
+		<Value index="0">
+			<Help>How often the Device will Wake up to check for pending commands</Help>
+			<Label>Wake-up Interval</Label>
+		</Value>
+		<Value index="1">
+			<Help>Minimum Time in seconds the device will wake up</Help>
+			<Label>Minimum Wake-up Interval</Label>
+		</Value>
+		<Value index="2">
+			<Help>Maximum Time in seconds the device will wake up</Help>
+			<Label>Maximum Wake-up Interval</Label>
+		</Value>
+		<Value index="3">
+			<Help>The Default Wake-Up Interval the device will wake up</Help>
+			<Label>Default Wake-up Interval</Label>
+		</Value>
+		<Value index="4">
+			<Help>Step Size on Wake-up interval</Help>
+			<Label>Wake-up Interval Step</Label>
+		</Value>
+	</CommandClass>
+	<CommandClass id="94">
+		<Label>COMMAND_CLASS_ZWAVE_PLUS_INFO</Label>
+		<Value index="0">
+			<Help>ZWave+ Version Supported on the Device</Help>
+			<Label>ZWave+ Version</Label>
+		</Value>
+		<Value index="1">
+			<Help>Icon File to use for the Installer Application</Help>
+			<Label>InstallerIcon</Label>
+		</Value>
+		<Value index="2">
+			<Help>Icon File to use for the User Application</Help>
+			<Label>UserIcon</Label>
+		</Value>
+	</CommandClass>
+	<GlobalText>
+		<Label name="Instance">Instance</Label>
+		<Label name="Instance" lang="fr">Exemple</Label>
+	</GlobalText>
+</Localization>
diff --git a/Config/Localization.xsd b/Config/Localization.xsd
new file mode 100644
index 0000000000..5b7302ed50
--- /dev/null
+++ b/Config/Localization.xsd
@@ -0,0 +1,69 @@
+<?xml version='1.0'?>
+<xs:schema
+  xmlns:xs='http://www.w3.org/2001/XMLSchema'
+  targetNamespace='https://github.com/OpenZWave/open-zwave'
+  xmlns:Localization='https://github.com/OpenZWave/open-zwave'
+  elementFormDefault='qualified'>
+
+ <xs:element name='Localization'>
+  <xs:complexType>
+   <xs:sequence>
+    <xs:element ref='Localization:CommandClass' minOccurs='0' maxOccurs='unbounded'/>
+    <xs:element ref='Localization:GlobalText' minOccurs='0' maxOccurs='unbounded' />
+   </xs:sequence>
+   <xs:attribute name='Revision' type='xs:integer' use='required'/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name='CommandClass'>
+  <xs:complexType>
+  <xs:sequence>
+   <xs:element ref='Localization:Label' minOccurs='1' maxOccurs='unbounded'/>
+   <xs:element ref='Localization:Value' minOccurs='0' maxOccurs='unbounded'/>
+  </xs:sequence>
+  <xs:attribute name='id' type='xs:string' use='required'/>
+  </xs:complexType>
+</xs:element>
+
+ <xs:element name='Value'>
+  <xs:complexType>
+  <xs:sequence>
+   <xs:element ref='Localization:Help' minOccurs='1' maxOccurs='unbounded'/>
+   <xs:element ref='Localization:Label' minOccurs='1' maxOccurs='unbounded'/>
+   <xs:element ref='Localization:ItemLabel' minOccurs='0' maxOccurs='unbounded'/>
+  </xs:sequence>
+   <xs:attribute name='index' type='xs:string' use='required'/>
+   <xs:attribute name='pos' type='xs:string' use='optional'/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name='Label'>
+  <xs:complexType mixed='true'>
+   <xs:attribute name='lang' type='xs:string' use='optional'/>
+   <xs:attribute name='name' type='xs:string' use='optional'/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name='Help'>
+ <xs:complexType mixed='true'>
+  <xs:attribute name='lang' type='xs:string' use='optional'/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name='ItemLabel'>
+ <xs:complexType mixed='true'>
+  <xs:attribute name='lang' type='xs:string' use='optional'/>
+  <xs:attribute name='itemIndex' type='xs:string' use='required'/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name='GlobalText'>
+  <xs:complexType>
+  <xs:sequence>
+   <xs:element ref='Localization:Label' minOccurs='1' maxOccurs='unbounded'/>
+  </xs:sequence>
+  </xs:complexType>
+</xs:element>
+
+
+</xs:schema>
diff --git a/Config/NotificationCCTypes.xml b/Config/NotificationCCTypes.xml
new file mode 100644
index 0000000000..de8e4edbbc
--- /dev/null
+++ b/Config/NotificationCCTypes.xml
@@ -0,0 +1,551 @@
+<?xml version="1.0" encoding="utf-8"?>
+<NotificationTypes xmlns='https://github.com/OpenZWave/open-zwave' Revision="6">
+    <!--  Please keep this file in Sync with the Localization.xml file for the Notification CC -->
+	<AlarmType id="1" name="Smoke Alarm">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Smoke Detected at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Smoke Detected at Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Smoke Test">
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Replacement Required (Unspecified)">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Replacement Required (End Of Life)">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Silenced">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Maintenance Required: Periodic Inspection">
+		</AlarmEvent>
+		<AlarmEvent id="8" name="Maintenance Required: Dust In Device">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="2" name="Carbon Monoxied">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Carbon Monoxied Detected at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Carbon Monoxied Detected at Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Test">
+			<AlarmEventParam id="258" type="list" name="Result">
+				<Item id="1" label="Passed" />
+				<Item id="2" label="Failed" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Replacement Required (Unspecified)">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Replacement Required (End Of Life)">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Silenced">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Maintence Required: Periodic Inspection">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="3" name="Carbon Dixoide">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Carbon Dixoide Detected at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Carbon Dixoid Detected at Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Test">
+			<AlarmEventParam id="258" type="list" name="Result">
+				<Item id="1" label="Passed" />
+				<Item id="2" label="Failed" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Replacement Required (Unspecified)">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Replacement Required (End Of Life)">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Silenced">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Maintence Required: Periodic Inspection">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="4" name="Heat">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="OverHeat at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="OverHeat at Unknown at Location">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Rapid Temperature Rise at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Rapid Temperature Rise at Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="UnderHeat at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="6" name="UnderHeat at Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Test">
+		</AlarmEvent>
+		<AlarmEvent id="8" name="Replacement Required (End_Of_Life)">
+		</AlarmEvent>
+		<AlarmEvent id="9" name="Silenced">
+		</AlarmEvent>
+		<AlarmEvent id="10" name="Maintenance Required: Dust In Device">
+		</AlarmEvent>
+		<AlarmEvent id="11" name="Maintenance_Required: Periodic Inspection">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="5" name="Water">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Water Leak at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Water Leak at Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Water Level Droped at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Water Level Droped at Unnknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Replace Filter">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Water Flow">
+			<AlarmEventParam id="259" type="list" name="Threshold">
+				<Item id="1" label="No Data" />
+				<Item id="2" label="Below Low Threshold" />
+				<Item id="3" label="Above High Threshold" />
+				<Item id="4" label="Max" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Water Pressure">
+			<AlarmEventParam id="259" type="list" name="Type">
+				<Item id="1" label="No Data" />
+				<Item id="2" label="Below Low Threshold" />
+				<Item id="3" label="Above High Threshold" />
+				<Item id="4" label="Max" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="6" name="Access Control">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Manual Lock Operation">
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Manual Unlock Operation">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Wireless Lock Operation">
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Wireless Unlock Operation">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Keypad Lock Operation">
+			<AlarmEventParam id="260" type="usercodereport" name="User Code" />
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Keypad Unlock Operation">
+			<AlarmEventParam id="260" type="usercodereport" name="User Code" />
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Manual Lock Not Fully Locked">
+		</AlarmEvent>
+		<AlarmEvent id="8" name="Wireless Not Fully Locked">
+		</AlarmEvent>
+		<AlarmEvent id="9" name="Auto Lock">
+		</AlarmEvent>
+		<AlarmEvent id="10" name="Auto Lock Not Fully Locked">
+		</AlarmEvent>
+		<AlarmEvent id="11" name="Lock Jamed">
+		</AlarmEvent>
+		<AlarmEvent id="12" name="All User Codes Deleted">
+		</AlarmEvent>
+		<AlarmEvent id="13" name="Single User Code Deleted">
+		</AlarmEvent>
+		<AlarmEvent id="14" name="New User Code Added">
+		</AlarmEvent>
+		<AlarmEvent id="15" name="Duplicate User Code Not Added">
+		</AlarmEvent>
+		<AlarmEvent id="16" name="Keypad Disabled">
+		</AlarmEvent>
+		<AlarmEvent id="17" name="Keypad Busy">
+		</AlarmEvent>
+		<AlarmEvent id="18" name="New Program Code Entered">
+		</AlarmEvent>
+		<AlarmEvent id="19" name="User Codes Attempt Exceeds Limit">
+		</AlarmEvent>
+		<AlarmEvent id="20" name="Wireless Unlock Invalid UserCode Entered">
+		</AlarmEvent>
+		<AlarmEvent id="21" name="Wireless Lock Invalid UserCode Entered">
+		</AlarmEvent>
+		<AlarmEvent id="22" name="Door/Window Open">
+		</AlarmEvent>
+		<AlarmEvent id="23" name="Door/Window Closed">
+		</AlarmEvent>
+		<AlarmEvent id="64" name="Barrier Initializing">
+			<AlarmEventParam id="262" type="list" name="Progress">
+				<Item id="0" label="Process Complete" />
+				<Item id="255" label="Performing Process" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="65" name="Barrier Force Exceeded">
+		</AlarmEvent>
+		<AlarmEvent id="66" name="Barrier Motor Time Exceeded">
+			<AlarmEventParam id="1" type="byte" name="Time Limit" />
+		</AlarmEvent>
+		<AlarmEvent id="67" name="Barrier Physical Limits Exceeded">
+		</AlarmEvent>
+		<AlarmEvent id="68" name="Barrier Failed Operation">
+		</AlarmEvent>
+		<AlarmEvent id="69" name="Barrier Unattended Operation Disabled">
+		</AlarmEvent>
+		<AlarmEvent id="70" name="Barrier Malfunction">
+		</AlarmEvent>
+		<AlarmEvent id="71" name="Barrier Vacaction Mode">
+			<AlarmEventParam id="263" type="list" name="Mode">
+				<Item id="0" label="Disabled" />
+				<Item id="255" label="Enabled" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="72" name="Barrier Saftey Beam Obstruction">
+			<AlarmEventParam id="264" type="list" name="Obstruction">
+				<Item id="0" label="No Obstruction" />
+				<Item id="255" label="Obstruction" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="73" name="Barrier Sensor Not Detected">
+			<AlarmEventParam id="265" type="byte" name="Sensor ID" />
+		</AlarmEvent>
+		<AlarmEvent id="74" name="Barrier Battery Low">
+			<AlarmEventParam id="265" type="byte" name="Sensor ID" />
+		</AlarmEvent>
+		<AlarmEvent id="75" name="Barrier Short in Wall Station Wires">
+		</AlarmEvent>
+		<AlarmEvent id="76" name="Barrier Associated with Non ZWave Device">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="7" name="Home Security">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Intrusion at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Intrusion at Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Tampering -  Cover Removed">
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Tamperting - Invalid Code">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Glass Breakage at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Glass Breakage at UnknownLocation">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Motion Detected at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="8" name="Motion Detected at Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="9" name="Tampering - Product Moved">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="8" name="Power Management">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Power Applied">
+		</AlarmEvent>
+		<AlarmEvent id="2" name="AC Power Lost">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="AC Power Restored">
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Surge Detected">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Brownout Detected">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Over Current Detected">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Over Voltage Voltage">
+		</AlarmEvent>
+		<AlarmEvent id="8" name="Over Load Detected">
+		</AlarmEvent>
+		<AlarmEvent id="9" name="Load Error">
+		</AlarmEvent>
+		<AlarmEvent id="10" name="Replace Battery Soon">
+		</AlarmEvent>
+		<AlarmEvent id="11" name="Replace Battery Now">
+		</AlarmEvent>
+		<AlarmEvent id="12" name="Battery Charging">
+		</AlarmEvent>
+		<AlarmEvent id="13" name="Battery Charged">
+		</AlarmEvent>
+		<AlarmEvent id="14" name="Battery Low">
+		</AlarmEvent>
+		<AlarmEvent id="15" name="Battery Critical">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="9" name="System">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Hardware Failure">
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Software Failure">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Hardware Failure Code">
+			<AlarmEventParam id="266" type="string" name="Error Code" />
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Software Failure Code">
+			<AlarmEventParam id="266" type="string" name="Error Code" />
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Heartbeat">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Tampering Detected">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Emergency Shutoff">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown_Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="10" name="Emergency">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Contact Police Department">
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Contact Fire Department">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Contact Medical Service">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="11" name="Clock">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Wake Up Alert">
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Timer Ending">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Time Remaining">
+			<AlarmEventParam id="267" type="duration" name="Duration" />
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="12" name="Appliance">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Program Started">
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Program In Progress">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Program Completed">
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Replace Main Filter">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Failure To Set Temperature">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Supplying Water">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Water Supply Failure">
+		</AlarmEvent>
+		<AlarmEvent id="8" name="Boiling">
+		</AlarmEvent>
+		<AlarmEvent id="9" name="Boiling Failure">
+		</AlarmEvent>
+		<AlarmEvent id="10" name="Washing">
+		</AlarmEvent>
+		<AlarmEvent id="11" name="Washing Failure">
+		</AlarmEvent>
+		<AlarmEvent id="12" name="Rinsing">
+		</AlarmEvent>
+		<AlarmEvent id="13" name="Rinsing Failure">
+		</AlarmEvent>
+		<AlarmEvent id="14" name="Draining">
+		</AlarmEvent>
+		<AlarmEvent id="15" name="Draining Failure">
+		</AlarmEvent>
+		<AlarmEvent id="16" name="Spinning">
+		</AlarmEvent>
+		<AlarmEvent id="17" name="Spinning Failure">
+		</AlarmEvent>
+		<AlarmEvent id="18" name="Drying">
+		</AlarmEvent>
+		<AlarmEvent id="19" name="Drying Failure">
+		</AlarmEvent>
+		<AlarmEvent id="20" name="Fan Failure">
+		</AlarmEvent>
+		<AlarmEvent id="21" name="Compressor Failure">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="13" name="Home Health">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Leaving Bed">
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Sitting On Bed">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Lying On Bed">
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Posture Changed">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Sitting On Edge Of Bed">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Volatile Organic Level">
+			<AlarmEventParam id="268" type="list" name="Pollution Level">
+				<Item id="1" label="Clean" />
+				<Item id="2" label="Slightly Polluted" />
+				<Item id="3" label="Moderately Polluted" />
+				<Item id="4" label="Highly Polluted" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="14" name="Siren">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Active">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="15" name="Water Valve">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Valve Operation">
+			<AlarmEventParam id="269" type="list" name="Status">
+				<Item id="0" label="Off" />
+				<Item id="1" label="On" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Master Valve Operation">
+			<AlarmEventParam id="269" type="list" name="Status">
+				<Item id="0" label="Off" />
+				<Item id="1" label="On" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="3" name=" Valve Short Circuit">
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Master Valve Short Circuit">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Valve Current Alarm">
+			<AlarmEventParam id="259" type="list" name="Type">
+				<Item id="1" label="No Data" />
+				<Item id="2" label="Below Low Threshold" />
+				<Item id="3" label="Above High Threshold" />
+				<Item id="4" label="Max" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Master Valve Current Alarm">
+			<AlarmEventParam id="259" type="list" name="Type">
+				<Item id="1" label="No Data" />
+				<Item id="2" label="Below Low Threshold" />
+				<Item id="3" label="Above High Threshold" />
+				<Item id="4" label="Max" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="16" name="Weather">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Rain Detected">
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Moisture Detected">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="17" name="Irrigation">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Schedule Started">
+			<AlarmEventParam id="270" type="byte" name="Schedule ID" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Schedule Finished">
+			<AlarmEventParam id="270" type="byte" name="Schedule ID" />
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Valve Table Run Started">
+			<AlarmEventParam id="271" type="byte" name="Valve Table ID" />
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Valve Table Run Finished">
+			<AlarmEventParam id="271" type="byte" name="Valve Table ID" />
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Device Not Configured">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="18" name="Gas">
+		<AlarmEvent id="0" name=" Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Combustable Gas Detected at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Combustable Gas Detected at Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Toxic Gas Detected at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Toxic Gas Detected Unknown Location">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Test">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Replacement Required (Unspecified)">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+</NotificationTypes>
diff --git a/Config/NotificationCCTypes.xsd b/Config/NotificationCCTypes.xsd
new file mode 100644
index 0000000000..0c71029a9d
--- /dev/null
+++ b/Config/NotificationCCTypes.xsd
@@ -0,0 +1,64 @@
+<?xml version='1.0'?>
+<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='https://github.com/OpenZWave/open-zwave' xmlns:NotificationTypes='https://github.com/OpenZWave/open-zwave' elementFormDefault='qualified'>
+
+	<xs:element name='NotificationTypes'>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref='NotificationTypes:AlarmType' minOccurs='1' maxOccurs='unbounded' />
+			</xs:sequence>
+			<xs:attribute name='Revision' type='xs:integer' use='required' />
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name='AlarmType'>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref='NotificationTypes:AlarmEvent' minOccurs='1' maxOccurs='unbounded' />
+			</xs:sequence>
+			<xs:attribute name='id' type='xs:string' use='required' />
+			<xs:attribute name='name' type='xs:string' use='required' />
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name='AlarmEvent'>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref='NotificationTypes:AlarmEventParam' minOccurs='0' maxOccurs='1' />
+			</xs:sequence>
+			<xs:attribute name='id' type='xs:string' use='required' />
+			<xs:attribute name='name' type='xs:string' use='required' />
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name='AlarmEventParam'>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref='NotificationTypes:Item' minOccurs='0' maxOccurs='unbounded' />
+			</xs:sequence>
+			<xs:attribute name='id' type='xs:string' use='required' />
+			<xs:attribute name='type' use='required'>
+				<xs:simpleType>
+					<xs:restriction base='xs:string'>
+						<xs:enumeration value='location' />
+						<xs:enumeration value='list' />
+						<xs:enumeration value='usercodereport' />
+						<xs:enumeration value='byte' />
+						<xs:enumeration value='string' />
+						<xs:enumeration value='duration' />
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:attribute>
+
+			<xs:attribute name='name' type='xs:string' use='required' />
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name='Item'>
+		<xs:complexType>
+			<xs:attribute name='id' type='xs:string' use='required' />
+			<xs:attribute name='label' type='xs:string' use='required' />
+		</xs:complexType>
+	</xs:element>
+
+
+</xs:schema>
diff --git a/Config/act/lfm20.xml b/Config/act/lfm20.xml
index 7154877535..bb598f8ac3 100644
--- a/Config/act/lfm20.xml
+++ b/Config/act/lfm20.xml
@@ -1,4 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-  <Protocol nodeinfosupported="false" />
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0001:3133:5246</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/act/lfm20.png</MetaDataItem>
+    <MetaDataItem id="3133" name="ZWProductPage" type="5246">https://products.z-wavealliance.org/products/134/</MetaDataItem>
+    <MetaDataItem name="Name">ZRF113 - Isolated Contact Fixture Module</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.act-solutions.com/Contact-Advanced-Control-Technologies.html</MetaDataItem>
+    <MetaDataItem id="3133" name="FrequencyName" type="5246">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3133" name="Identifier" type="5246">ZRF113</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.act-solutions.com/HomePro-Product-Matrix.html#Euro</MetaDataItem>
+    <MetaDataItem name="Description">- The relay on this device is isolated from the power line, so it can be used to switch any load, including low voltage. This can be used in areas where an X10 universal module may have been used.
+
+- The LED on the ZRF113 will turn on when the load attached is ON. The LED is user configured however to turn ON when the load attached is OFF, if so desired.
+
+- The ZRF113 supports the AS101 and AS001 auxiliary switch.
+
+- Max load 20 amps.
+
+- Supports Z-Wave 40Kbps speed
+
+- Signal (Frequency): 908.42 MHz </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/134/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <Protocol nodeinfosupported="false"/>
+  <CommandClass id="112"/>
 </Product>
diff --git a/Config/act/zdm230.xml b/Config/act/zdm230.xml
index 90cad0fea6..2eba5a3a73 100644
--- a/Config/act/zdm230.xml
+++ b/Config/act/zdm230.xml
@@ -1,93 +1,112 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Ignore Start-Level (Transmitting)" size="1" value="1">
-			<Help>Dimmers controlled by this switch will start dimming from their current level.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="2" genre="config" label="Suspend Group 4" size="1" value="0">
-			<Help>Disable transmitting commands to Z-Wave devices that are in Group 4 without disassociating those devices from the group.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="3" genre="config" label="Night Light" size="1" value="0">
-			<Help>In night-light mode the LED on the switch will turn ON when the switch is turned OFF.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Invert Switch" size="1" value="0">
-			<Help>Change the top of the switch to OFF and the bottom of the switch to ON. Note: If you invert the switches and also install the product upside down, remember the load will now be controlled by the right, not the left switch.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="5" genre="config" label="Ignore Start-Level (Receiving)" size="1" value="1">
-			<Help>This dimmer will start dimming from its current level.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="6" genre="config" label="Don't Send Level After Dim" size="1" value="1">
-			<Help>When you press and hold the bottom of the ZDM230 switch once, the Z-Wave devices that are associated into Group 1 are sent the Dim command. If this parameter is set to &quot;Yes&quot; the devices in Group 1 will not go to the same level as the ZDM230.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="byte" index="7" genre="config" label="On/Off Command Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="8" genre="config" label="On/Off Command Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="Local Control Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="10" genre="config" label="Local Control Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="11" genre="config" label="ALL ON/ALL OFF Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="12" genre="config" label="ALL ON/ALL OFF Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="list" index="13" genre="config" label="Disable Group 4 During Dim" size="1">
-			<Help>Units in Group 4 only track when the dimmer is being turned ON and OFF and not while dimming.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="14" genre="config" label="Enable Shade Control Group 2" size="1" value="0">
-			<Help>The ZDM230 can operate shade control devices via its group 2.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="15" genre="config" label="Enable Shade Control Group 3" size="1" value="0">
-			<Help>The ZDM230 can operate shade control devices via its group 3.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="19" genre="config" label="LED Transmission Indication" size="1" value="2">
-			<Help>The ZDM230 will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all, to flicker the entire time it is transmitting, or to flicker for only 1 second when it begins transmitting.</Help>
-			<Item label="None" value="0" />
-			<Item label="While Transmitting" value="1" />
-			<Item label="One Second Maximum" value="2" />
-		</Value>
-		<Value type="byte" index="20" genre="config" label="Poll Group 2 Interval" units="minutes" min="1" max="255" value="2">
-			<Help>Poll Group 2 Interval</Help>
-		</Value>
-		<Value type="list" index="22" genre="config" label="Enable Group 2 Polling" size="1">
-			<Help>Poll Group 2</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-	</CommandClass>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0001:3330:444D</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/act/zdm230.png</MetaDataItem>
+    <MetaDataItem id="3330" name="ZWProductPage" type="444D">https://products.z-wavealliance.org/products/478/</MetaDataItem>
+    <MetaDataItem name="Name">ZDM230 - Dual button Wall Dimmer</MetaDataItem>
+    <MetaDataItem id="3330" name="FrequencyName" type="444D">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">The ZDM230 is a dual switch design, where the first switch controls the connected load and also serve as a transmitter using multiple switch taps (one group of 5 Z-Wave modules), and the second switch used as a transmitter only (controls two groups of 5 Z-Wave modules).
 
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="4">
-			<Group index="1" max_associations="5" label="Left Switch" />
-			<Group index="2" max_associations="5" label="Right Switch" />
-			<Group index="3" max_associations="5" label="Right Switch (2 Taps)" />
-			<Group index="4" max_associations="5" label="Update Controller" auto="true" />
-		</Associations>
-	</CommandClass>
+ZDM230 replaces an existing wall switch, and can add 3-way capability.
+
+ZDM230 can be programmed as a routing slave to establish firm signal routes and can be "associated" with other Z-wave devices in order to control them.
+
+ZDM230 has automatic Static Update Controller (SUC) capability.  A Static Controller is one that is not moved after its addition to the network.  The Static Controller can act as a gateway in the system, since other nodes always know its position.  The “always listening” advantage of the Static Controller is that other nodes can transmit information frames to it whenever needed.
+
+ZDM230 can be configured to Control Shades or Window Coverings via Z-Wave network</MetaDataItem>
+    <MetaDataItem id="3330" name="Identifier" type="444D">ZDM230</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.smarthome-products.com/p-638-homepro-zdm230-z-wave-500-watt-dimmer-3-way-3-wire-euro.aspx</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/478/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Ignore Start-Level (Transmitting)" size="1" type="list" value="1">
+      <Help>Dimmers controlled by this switch will start dimming from their current level.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="2" label="Suspend Group 4" size="1" type="list" value="0">
+      <Help>Disable transmitting commands to Z-Wave devices that are in Group 4 without disassociating those devices from the group.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="Night Light" size="1" type="list" value="0">
+      <Help>In night-light mode the LED on the switch will turn ON when the switch is turned OFF.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Invert Switch" size="1" type="list" value="0">
+      <Help>Change the top of the switch to OFF and the bottom of the switch to ON. Note: If you invert the switches and also install the product upside down, remember the load will now be controlled by the right, not the left switch.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Ignore Start-Level (Receiving)" size="1" type="list" value="1">
+      <Help>This dimmer will start dimming from its current level.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="6" label="Don't Send Level After Dim" size="1" type="list" value="1">
+      <Help>When you press and hold the bottom of the ZDM230 switch once, the Z-Wave devices that are associated into Group 1 are sent the Dim command. If this parameter is set to "Yes" the devices in Group 1 will not go to the same level as the ZDM230.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="7" label="On/Off Command Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="8" label="On/Off Command Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="9" label="Local Control Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="10" label="Local Control Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="11" label="ALL ON/ALL OFF Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="12" label="ALL ON/ALL OFF Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="13" label="Disable Group 4 During Dim" size="1" type="list">
+      <Help>Units in Group 4 only track when the dimmer is being turned ON and OFF and not while dimming.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="14" label="Enable Shade Control Group 2" size="1" type="list" value="0">
+      <Help>The ZDM230 can operate shade control devices via its group 2.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="15" label="Enable Shade Control Group 3" size="1" type="list" value="0">
+      <Help>The ZDM230 can operate shade control devices via its group 3.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="19" label="LED Transmission Indication" size="1" type="list" value="2">
+      <Help>The ZDM230 will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all, to flicker the entire time it is transmitting, or to flicker for only 1 second when it begins transmitting.</Help>
+      <Item label="None" value="0"/>
+      <Item label="While Transmitting" value="1"/>
+      <Item label="One Second Maximum" value="2"/>
+    </Value>
+    <Value genre="config" index="20" label="Poll Group 2 Interval" max="255" min="1" type="byte" units="minutes" value="2">
+      <Help>Poll Group 2 Interval</Help>
+    </Value>
+    <Value genre="config" index="22" label="Enable Group 2 Polling" size="1" type="list">
+      <Help>Poll Group 2</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Left Switch" max_associations="5"/>
+      <Group index="2" label="Right Switch" max_associations="5"/>
+      <Group index="3" label="Right Switch (2 Taps)" max_associations="5"/>
+      <Group auto="true" index="4" label="Update Controller" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/act/zdp100.xml b/Config/act/zdp100.xml
new file mode 100644
index 0000000000..4a362e7a7e
--- /dev/null
+++ b/Config/act/zdp100.xml
@@ -0,0 +1,21 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0001:3030:4450</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/act/zdp100.png</MetaDataItem>
+    <MetaDataItem id="3030" name="ZWProductPage" type="4450">https://products.z-wavealliance.org/products/154/</MetaDataItem>
+    <MetaDataItem id="3030" name="FrequencyName" type="4450">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.act-solutions.com/HomePro-Product-Matrix.html#Euro</MetaDataItem>
+    <MetaDataItem name="Description">Provides wireless dimming of lights 300 watt max Incandescent Only
+- Includes a 3 prong pass through outlet.
+- Lamp outlet is 2 prong.
+- Supports load sensing. If the attached lamp is turned on manually, the module will detect the load change and turn itself on. This allows lamps to operated manually or through automation.
+- Programmable ramp rates. Supports different ramp rates when controlled locally, or remotely. ON/OFF control of lights connected to the Plug-In Lamp Module. 
+- Plugs directly into wall outlet and provides a switched 120 VAC source.</MetaDataItem>
+    <MetaDataItem name="Name">ZDP100 - Scene Capable Dimmer Module</MetaDataItem>
+    <MetaDataItem id="3030" name="Identifier" type="4450">ZDP100</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/154/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/act/zdw103.xml b/Config/act/zdw103.xml
index 045e6fce16..b12b664597 100644
--- a/Config/act/zdw103.xml
+++ b/Config/act/zdw103.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="1" genre="config" label="Ignore Start-Level (Transmitting)" size="1" value="1">
diff --git a/Config/act/zdw232.xml b/Config/act/zdw232.xml
index 7b49e9dfcd..e3f5775aa3 100644
--- a/Config/act/zdw232.xml
+++ b/Config/act/zdw232.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="1" genre="config" label="Set Ignore Start Level Bit When Transmitting Dim Commands" size="1" value="1">
diff --git a/Config/act/zir010.xml b/Config/act/zir010.xml
index a98eba552d..873666ee9f 100644
--- a/Config/act/zir010.xml
+++ b/Config/act/zir010.xml
@@ -1,9 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="17" genre="config" label="Mode" value="0" size="1">
-			<Help>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0001:3330:4952</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/act/zir010.png</MetaDataItem>
+    <MetaDataItem id="3330" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/549/</MetaDataItem>
+    <MetaDataItem id="3330" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.act-solutions.com/HomePro-Product-Matrix.html#Euro</MetaDataItem>
+    <MetaDataItem name="Name">ZIR000</MetaDataItem>
+    <MetaDataItem name="Description">PIR Sensor</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/549/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/550/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="3030" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/550/</MetaDataItem>
+    <MetaDataItem id="3030" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="17" label="Mode" size="1" type="list" value="0">
+      <Help>
 				The ZIR010 can be configured to operate in 1 of 3 modes.
 				Those modes are:
 				Lighting Mode (factory default)
@@ -13,51 +27,49 @@
 				For Lighting Mode: Send a value of 0 to Configuration Parameter #17.
 				For Alarm Mode: Send a value of 1 to Configuration Parameter #17.
 				For Sensor Mode: Send a value of 2 to Configuration Parameter # 17.
-				Information reproduced from: http://www.pepper1.net/zwavedb/uploads/resources/bdf086a9388325a2fb8b8aa298e24e512faec65d.pdf
 			</Help>
-			<Item label="Lighting" value="0" />
-			<Item label="Alarm" value="1" />
-			<Item label="Sensor" value="2" />
-		</Value>
-		<Value type="byte" index="18" genre="config" label="Off/Idle Delay" units="minutes" min="0" max="255" value="1">
-			<Help>
+      <Item label="Lighting" value="0"/>
+      <Item label="Alarm" value="1"/>
+      <Item label="Sensor" value="2"/>
+    </Value>
+    <Value genre="config" index="18" label="Off/Idle Delay" max="255" min="0" type="byte" units="minutes" value="1">
+      <Help>
 				The configuration parameter that can be used to adjust the amount of delay before the OFF or IDLE command is transmitted is Configuration Parameter # 18.
 				This parameter can be configured with the value of 0 through 255.
 				Where 0 means no delay and 255 means 255 minutes of delay.
 				Default appears to be 1 min.
-				Information reproduced from: http://www.pepper1.net/zwavedb/uploads/resources/bdf086a9388325a2fb8b8aa298e24e512faec65d.pdf
 			</Help>
-		</Value>
-		<Value type="list" index="19" genre="config" label="Unsolicited Commands" value="1" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="19" label="Unsolicited Commands" size="1" type="list" value="1">
+      <Help>
 				The ZIR010 can be disabled from sending commands unsolicited without removing associated devices by
 				setting Configuration Parameter # 19 to 0 (when asked for number of bytes, select 1).
 				Setting it back to 1 will re-enable the ZIR010.
-				Information reproduced from: http://www.pepper1.net/zwavedb/uploads/resources/bdf086a9388325a2fb8b8aa298e24e512faec65d.pdf
 			</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="byte" index="22" genre="config" label="Awake Time" units="seconds" min="15" max="45" value="30">
-			<Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="22" label="Awake Time" max="45" min="15" type="byte" units="seconds" value="30">
+      <Help>
 				The time the ZIR010 stays awake can be adjusted from 15 seconds to 45 seconds by sending a value of 15
 				to 45 to the ZIR010 using Configuration Parameter # 22 (when asked for the number of bytes, select 1).
 				This awake time period starts over every time the ZIR010 receives a command or request.
 				Defaults to 30 seconds.
-				Information reproduced from: http://www.pepper1.net/zwavedb/uploads/resources/bdf086a9388325a2fb8b8aa298e24e512faec65d.pdf
 			</Help>
-		</Value>
-	</CommandClass>
-	
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="5" label="Motion" />
-			<Group index="2" max_associations="5" label="Tamper" auto="true" />
-			<Group index="3" max_associations="5" label="Battery" auto="true" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Motion" max_associations="5"/>
+      <Group auto="true" index="2" label="Tamper" max_associations="5"/>
+      <Group auto="true" index="3" label="Battery" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/act/zrm230.xml b/Config/act/zrm230.xml
new file mode 100644
index 0000000000..ce2100dd48
--- /dev/null
+++ b/Config/act/zrm230.xml
@@ -0,0 +1,25 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0001:3330:524D</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/act/zrm230.png</MetaDataItem>
+    <MetaDataItem id="3330" name="ZWProductPage" type="524D">https://products.z-wavealliance.org/products/476/</MetaDataItem>
+    <MetaDataItem name="Description">The ZRM230 is a 6A, 230 VAC, 50 Hz, RF wall switch with 3-way capability.  This wall switch can be controlled manually, with the ZTH200
+Z-Wave RF Remote Control, or the ACT multilevel auxiliary switch (AS200).  This will control loads ON and OFF up to and inclduing 6A.
+
+The ZRM230 is a Dual Paddle design, where the first switch controls the connected load and also serves as a transmitter by using multiple switch taps (controls one group of 5 Z-Wave modules), and the second paddle is a transmitter only (controls two groups of 5 Z-Wave modules).
+
+Replaces the existing wall switch, and can add 3-way capability.
+
+Each ZRM230 Wall Mounted Switch functions as an automatic repeater to other HomePro Modules to ensure full home coverage of the RF signal.
+
+Has automatic Static Update Controller (SUC) capability</MetaDataItem>
+    <MetaDataItem id="3330" name="FrequencyName" type="524D">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.act-solutions.com/HomePro-Product-Matrix.html#Euro</MetaDataItem>
+    <MetaDataItem name="Name">ZRM230 - Wall Mounted 3-Way Switch 2-Gang</MetaDataItem>
+    <MetaDataItem id="3330" name="Identifier" type="524D">ZRM230</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/476/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/act/zrp100.xml b/Config/act/zrp100.xml
new file mode 100644
index 0000000000..ba8020f7fb
--- /dev/null
+++ b/Config/act/zrp100.xml
@@ -0,0 +1,23 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0001:3030:5250</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/act/zrp100.png</MetaDataItem>
+    <MetaDataItem id="3030" name="ZWProductPage" type="5250">https://products.z-wavealliance.org/products/357/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.act-solutions.com/HomePro-Product-Matrix.html#Euro</MetaDataItem>
+    <MetaDataItem name="Name">ZRP100 (V3.30)</MetaDataItem>
+    <MetaDataItem name="Description">US Plug In Relay•	 Provides wireless ON/OFF control of lamps and other electrical appliances connected to the Plug-In Appliance Module. 
+•	 The wall hugging design plugs into a wall outlet and provides a grounded switched 120 VAC outlet on one side and a grounded pass thru "always powered" 120 VAC outlet on the other. Controlled outlet also has sense feature that turns it on when load is turned on. 
+•	 Each Plug-In Appliance Module functions as automatic repeater to other HomePro Modules to ensure full home coverage. 
+•	 Can request updates from a designated Static Update Controller (SUC). A Static Controller is one that is not moved after its addition to the network. The Static Controller can act as a gateway in the system, since other nodes always know its position. The “always listening” advantage of the Static Controller is that other nodes can transmit information frames to it whenever needed. 
+</MetaDataItem>
+    <MetaDataItem id="3030" name="Identifier" type="5250">ZRP100</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.act-remote.com/HPW/Specs/ZRP100-S200_spec.pdf</MetaDataItem>
+    <MetaDataItem id="3030" name="FrequencyName" type="5250">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/152/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/194/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/357/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/act/zrp110.xml b/Config/act/zrp110.xml
index d03a09ff67..66e0133f89 100644
--- a/Config/act/zrp110.xml
+++ b/Config/act/zrp110.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="bool" index="29" genre="config" label="Load Sense" units="" min="0" max="1" />
diff --git a/Config/act/zrw103.xml b/Config/act/zrw103.xml
index ec4bff4ff7..0079f8c1f1 100644
--- a/Config/act/zrw103.xml
+++ b/Config/act/zrw103.xml
@@ -1,36 +1,57 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Ignore Start-Level (Transmitting)" size="1" value="1">
-			<Help>Dimmers controlled by this switch will start dimming from their current level.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="3" genre="config" label="Night Light" size="1" value="0">
-			<Help>In night-light mode the LED on the switch will turn ON when the switch is turned OFF.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Invert Switch" size="1" value="0">
-			<Help>Change the top of the switch to OFF and the bottom of the switch to ON.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="19" genre="config" label="LED Transmission Indication" size="1" value="2">
-			<Help>The ZRW103 will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all, to flicker the entire time it is transmitting, or to flicker for only 1 second when it begins transmitting.</Help>
-			<Item label="None" value="0" />
-			<Item label="While Transmitting" value="1" />
-			<Item label="One Second Maximum" value="2" />
-		</Value>
-	</CommandClass>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0001:3033:5257</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/act/zrw103.png</MetaDataItem>
+    <MetaDataItem id="3033" name="ZWProductPage" type="5257">https://products.z-wavealliance.org/products/413/</MetaDataItem>
+    <MetaDataItem name="Description">US Wall Switch Relay 20A - 200 upt.Provides wireless RF ON/OFF (or manual) control of any light or lamp connected. 
+•	 Can control two groups of 5 modules each independent of its own state. 
+•	 Can replace current wall switch and can add 3-way or 4-way capability. 
+•	 Each ZRW103 Wall Mounted Switch functions as an automatic repeater to other Z-Wave Modules to ensure full home coverage of the RF signal. 
+•	
+ Supports the Powerlevel command 
 
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="5" label="Group 1" />
-			<Group index="2" max_associations="5" label="Group 2 (two taps)" />
-			<Group index="3" max_associations="5" label="Group 3 (three taps)" />
-		</Associations>
-	</CommandClass>
+ Has automatic Static Update Controller (SUC) capability. 
+ This product supports 40Kbps data transmission. This product can also be used for networking support in systems that stream metadata. An example might include transmission of information from audio devices such as song album information to various displays around the home. 
+</MetaDataItem>
+    <MetaDataItem id="3033" name="FrequencyName" type="5257">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.act-solutions.com/HomePro-Product-Matrix.html#top</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.act-solutions.com/Contact-Advanced-Control-Technologies.html</MetaDataItem>
+    <MetaDataItem id="3033" name="Identifier" type="5257">ZRW103</MetaDataItem>
+    <MetaDataItem name="Name">ZRW103</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/413/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Ignore Start-Level (Transmitting)" size="1" type="list" value="1">
+      <Help>Dimmers controlled by this switch will start dimming from their current level.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="Night Light" size="1" type="list" value="0">
+      <Help>In night-light mode the LED on the switch will turn ON when the switch is turned OFF.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Invert Switch" size="1" type="list" value="0">
+      <Help>Change the top of the switch to OFF and the bottom of the switch to ON.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="19" label="LED Transmission Indication" size="1" type="list" value="2">
+      <Help>The ZRW103 will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all, to flicker the entire time it is transmitting, or to flicker for only 1 second when it begins transmitting.</Help>
+      <Item label="None" value="0"/>
+      <Item label="While Transmitting" value="1"/>
+      <Item label="One Second Maximum" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Group 1" max_associations="5"/>
+      <Group index="2" label="Group 2 (two taps)" max_associations="5"/>
+      <Group index="3" label="Group 3 (three taps)" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/act/zrw230.xml b/Config/act/zrw230.xml
new file mode 100644
index 0000000000..18044bbc87
--- /dev/null
+++ b/Config/act/zrw230.xml
@@ -0,0 +1,25 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0001:3330:5257</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/act/zrw230.png</MetaDataItem>
+    <MetaDataItem id="3330" name="ZWProductPage" type="5257">https://products.z-wavealliance.org/products/475/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.act-solutions.com/HomePro-Product-Matrix.html#Euro</MetaDataItem>
+    <MetaDataItem id="3330" name="FrequencyName" type="5257">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">ZRW230 - European Wall Mounted 1-Gang</MetaDataItem>
+    <MetaDataItem name="Description">The ZRW230 is a 6A, 230 VAC, 50 Hz, RF wall switch with 3-way capability.
+
+This wall switch can be controlled manually, with the ZTH200 RF Remote Control, or the ACT multilevel auxiliary switch (AS200).  These will turn loads ON and OFF up to and including 6A.
+The ON/OFF status will also be indicated by the state of its LED.  The ZRW230 is a single paddle design which controls the connected load and serves as a transmitter using multiple button taps.
+
+Replaces the current wall switch, and can add 3-way capability.
+
+Each ZRW230 Wall Mounted Switch functions as an automatic repeater to other HomePro Modules to ensure full home coverage of the RF signal.
+
+Has automatic Static Update Controller (SUC) capability.</MetaDataItem>
+    <MetaDataItem id="3330" name="Identifier" type="5257">ZRW230</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/475/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/aeotec/dsa03202.xml b/Config/aeotec/dsa03202.xml
index 9d9cca4753..452bcf5e10 100644
--- a/Config/aeotec/dsa03202.xml
+++ b/Config/aeotec/dsa03202.xml
@@ -1,80 +1,92 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0003:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsa03202.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/143/</MetaDataItem>
+    <MetaDataItem name="Description">Minimote Z-wave Remote Controller.The Aeon Labs Minimote is low-cost remote controller focused on end-user ease of use.
+
+Although simplicity and user experience is the primary focus, the full range of Z-Wave remote controller capabilities are left intact for the advanced user. Network installation is vastly improved via the interface. The Minimote is upgradeable by the end-user such that the latest Z-Wave protocols are always available. An internal lithium battery allows for months of usage and is recharged via USB.</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0001">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Aeon Labs Minimote US</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.aeon-labs.com/site/products/view/3/</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0001">DSA03xxx-ZWUS v1.13</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.aeon-labs.com/site/support/</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/142/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/143/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeotec DSA03202 Minimote 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584532 
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
   <!-- Minimote requires at least firmware 1.17, 1.19 is highly recommend -->
   <!-- Minimote will normally not respond to Get commands, but Set is possible when woken up -->
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-
-    <Value type="list" instance="1" index="241" genre="config" label="Button #1 Programmable" value="0" min="0" max="5" size="1" write_only="true">
+    <Value genre="config" index="241" instance="1" label="Button #1 Programmable" max="5" min="0" size="1" type="list" value="0" write_only="true">
       <Help>Default Mode 0 The button on the Minimote uses the factory default functions for operation instead of any special functionality related to the below modes. Scene Mode 1 The button on the Minimote executes a scene from data received for Parameters Numbers 0-239 related to the button being pressed. Add Mode 2 The button on the Minimote is able to include/add devices into the Z-Wave network. Remove Mode 3 The button on the Minimote is able to remove devices from the Z-Wave network. Association Mode 4 The button on the Minimote is able to associate one device to another. Learn Mode 5 The button on the Minimote is able to allow the Minimote to be included into other Z-Wave networks and to learn Z-Wave network information.</Help>
-      <Item label="Default Mode" value="0" />
-      <Item label="Scene Mode" value="1" />
-      <Item label="Add Mode" value="2" />
-      <Item label="Remove Mode" value="3" />
-      <Item label="Association Mode" value="4" />
-      <Item label="Learn Mode" value="5" />
+      <Item label="Default Mode" value="0"/>
+      <Item label="Scene Mode" value="1"/>
+      <Item label="Add Mode" value="2"/>
+      <Item label="Remove Mode" value="3"/>
+      <Item label="Association Mode" value="4"/>
+      <Item label="Learn Mode" value="5"/>
     </Value>
-
-    <Value type="list" instance="1" index="242" genre="config" label="Button #2 Programmable" value="0" min="0" max="5" size="1" write_only="true">
-      <Item label="Default Mode" value="0" />
-      <Item label="Scene Mode" value="1" />
-      <Item label="Add Mode" value="2" />
-      <Item label="Remove Mode" value="3" />
-      <Item label="Association Mode" value="4" />
-      <Item label="Learn Mode" value="5" />
+    <Value genre="config" index="242" instance="1" label="Button #2 Programmable" max="5" min="0" size="1" type="list" value="0" write_only="true">
+      <Item label="Default Mode" value="0"/>
+      <Item label="Scene Mode" value="1"/>
+      <Item label="Add Mode" value="2"/>
+      <Item label="Remove Mode" value="3"/>
+      <Item label="Association Mode" value="4"/>
+      <Item label="Learn Mode" value="5"/>
     </Value>
-
-    <Value type="list" instance="1" index="243" genre="config" label="Button #3 Programmable" value="0" min="0" max="5" size="1" write_only="true">
-      <Item label="Default Mode" value="0" />
-      <Item label="Scene Mode" value="1" />
-      <Item label="Add Mode" value="2" />
-      <Item label="Remove Mode" value="3" />
-      <Item label="Association Mode" value="4" />
-      <Item label="Learn Mode" value="5" />
+    <Value genre="config" index="243" instance="1" label="Button #3 Programmable" max="5" min="0" size="1" type="list" value="0" write_only="true">
+      <Item label="Default Mode" value="0"/>
+      <Item label="Scene Mode" value="1"/>
+      <Item label="Add Mode" value="2"/>
+      <Item label="Remove Mode" value="3"/>
+      <Item label="Association Mode" value="4"/>
+      <Item label="Learn Mode" value="5"/>
     </Value>
-
-    <Value type="list" instance="1" index="244" genre="config" label="Button #4 Programmable" value="0" min="0" max="5" size="1" write_only="true">
-      <Item label="Default Mode" value="0" />
-      <Item label="Scene Mode" value="1" />
-      <Item label="Add Mode" value="2" />
-      <Item label="Remove Mode" value="3" />
-      <Item label="Association Mode" value="4" />
-      <Item label="Learn Mode" value="5" />
+    <Value genre="config" index="244" instance="1" label="Button #4 Programmable" max="5" min="0" size="1" type="list" value="0" write_only="true">
+      <Item label="Default Mode" value="0"/>
+      <Item label="Scene Mode" value="1"/>
+      <Item label="Add Mode" value="2"/>
+      <Item label="Remove Mode" value="3"/>
+      <Item label="Association Mode" value="4"/>
+      <Item label="Learn Mode" value="5"/>
     </Value>
-
-    <Value type="list" index="250" genre="config" label="Mode" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="250" label="Mode" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         Enable selective Group Mode or Scene Mode when Button is in Use.
         NOTE: Minimote firmware 1.17 or higher is required, firmware 1.19 is highly recommended.</Help>
-      <Item label="Group" value="0" />
-      <Item label="Scene" value="1" />
+      <Item label="Group" value="0"/>
+      <Item label="Scene" value="1"/>
     </Value>
-
   </CommandClass>
-
   <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class isn't supported by the Minimote -->
-  <CommandClass id="38" action="remove" />
-
+  <CommandClass action="remove" id="38"/>
   <!-- COMMAND_CLASS_WAKE_UP. This class is in the list reported by the Minimote, but it does not
   respond to requests.  It still needs to be supported so that wake up notifications are handled. -->
-  <CommandClass id="132" create_vars="false" />
-
+  <CommandClass id="132">
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
+  </CommandClass>
   <!-- COMMAND_CLASS_ASSOCIATION. This class is in the list reported by the Minimote, but it does not respond to requests -->
   <CommandClass id="133">
     <Associations num_groups="4">
-      <Group index="1" max_associations="5" label="Button #1" auto="false" />
-      <Group index="2" max_associations="5" label="Button #2" />
-      <Group index="3" max_associations="5" label="Button #3" />
-      <Group index="4" max_associations="5" label="Button #4" />
+      <Group auto="false" index="1" label="Button #1" max_associations="5"/>
+      <Group index="2" label="Button #2" max_associations="5"/>
+      <Group index="3" label="Button #3" max_associations="5"/>
+      <Group index="4" label="Button #4" max_associations="5"/>
     </Associations>
   </CommandClass>
-
   <!-- COMMAND_CLASS_ASSOCIATION_COMMAND_CONFIGURATION. This class is supported but is missing from the list reported by the Minimote -->
-  <CommandClass id="155" action="add" create_vars="false" />
-
+  <CommandClass action="add" id="155">
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
+  </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsa22.xml b/Config/aeotec/dsa22.xml
index adfc60cef6..6b1fceaf8e 100644
--- a/Config/aeotec/dsa22.xml
+++ b/Config/aeotec/dsa22.xml
@@ -3,7 +3,7 @@
 Aeotec DSA22 Key Fob
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584531
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="int" index="0" genre="config" label="Button #1(tap) Value 1" units="" write_only="true" value="0"/>
diff --git a/Config/aeotec/dsa38.xml b/Config/aeotec/dsa38.xml
index 791e72fb35..5b04b0e2a9 100644
--- a/Config/aeotec/dsa38.xml
+++ b/Config/aeotec/dsa38.xml
@@ -1,33 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0026:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsa38.png</MetaDataItem>
+    <MetaDataItem id="0026" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1288/</MetaDataItem>
+    <MetaDataItem id="0026" name="Identifier" type="0001">DSA38-ZWAU</MetaDataItem>
+    <MetaDataItem name="Name">Aeon Labs Panic Button DSA38 ZWAU</MetaDataItem>
+    <MetaDataItem name="Description">Panic Button</MetaDataItem>
+    <MetaDataItem id="0026" name="FrequencyName" type="0001">CEPT (Europe) / U.S. / Canada / Mexico / Australia / New Zealand</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1284/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1285/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1288/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeon Labs Panic Button Gen5 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584530
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>  
   <!-- Basic and SwitchMultiLevel are for when the KeyFob is in Group Mode.
   You should configure the device to operate in Scene Mode instead if you
   wish to integrate it with your application -->
-  <CommandClass id="32" action="remove" />
-  <CommandClass id="38" action="remove" />
-  
+  <CommandClass action="remove" id="32"/>
+  <CommandClass action="remove" id="38"/>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-     <Value type="list" index="250" genre="config" label="Mode" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="250" label="Mode" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable selective Group Mode or Scene Mode when the Panic Button is in Use mode</Help>
-      <Item label="Group" value="0" />
-      <Item label="Scene" value="1" />
+      <Item label="Group" value="0"/>
+      <Item label="Scene" value="1"/>
     </Value>
-     
-    <Value type="button" index="255" genre="config" label="Reset configuration" units="" write_only="true" value="0">
+    <Value genre="config" index="255" label="Reset configuration" type="button" units="" value="0" write_only="true">
       <Help>Reset configuration set up to default setting</Help>
     </Value>
   </CommandClass>
-
   <!-- COMMAND_CLASS_ASSOCIATION -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/aeotec/dsb04100.xml b/Config/aeotec/dsb04100.xml
index 655cd47148..6aa7b66783 100644
--- a/Config/aeotec/dsb04100.xml
+++ b/Config/aeotec/dsb04100.xml
@@ -1,46 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<!-- Aeon Labs Door/Window Sensor --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0004:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsb04100.png</MetaDataItem>
+    <MetaDataItem id="0004" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/114/</MetaDataItem>
+    <MetaDataItem name="Description">The Aeon Labs Door/Window Sensor is a battery-powered Z-Wave magnetic door/window sensor with an extremely small form factor. The D/W sensor will send radio signals up to 6 associated Z-Wave devices within its own Z-Wave network when the main unit separates from the smaller unit.
+
+Bidirectional mounting plate and push button allows for easy end-user installation. The Aeon Labs Door/Window Sensor also has tamper prevention capabilities and low-battery alerts.</MetaDataItem>
+    <MetaDataItem id="0004" name="FrequencyName" type="0002">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.aeon-labs.com/site/support/</MetaDataItem>
+    <MetaDataItem id="0004" name="Identifier" type="0002">DSB04100-ZWUS</MetaDataItem>
+    <MetaDataItem name="Name">Aeon Labs Door/Window Sensor</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.aeon-labs.com/site/products/view/1/</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/114/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeotec Door/Window Sensor 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584514
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
 	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Toggle the sensor binary report value when the Magnet switch is opened/closed." min="0" max="1" value="0" size="1">
-			<Help>Default setting: Open: FF, Close: 00</Help>
-			<Item label="Open: FF, Close: 00" value="0"/>
-			<Item label="Open: 00, Close: FF" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Enable wake up 10 minutes when the power is switched on." min="0" max="1" value="0" size="1">
-			<Help>Default setting: Disable</Help>
-			<Item label="Disable" value="0"/>
-			<Item label="Enable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Toggle the basic set value when Magnet switch is opened/closed." min="0" max="1" value="0" size="1">
-			<Help>Default setting: Open: FF, Close: 00</Help>
-			<Item label="Open: FF, Close: 00" value="0"/>
-			<Item label="Open: 00, Close: FF" value="1"/>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="121" label="Determines which report will be sent when Magnet switch is opened/ closed." min="0" max="65535" value="255" size="4">
-			<Help>Which reports need to send automatically in timing intervals for group 1. Bitsets: 0->Battery report, 4->Sensor Binary, 8->Basic Set, Default setting: 0x00000100 (Basic Set)
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Toggle the sensor binary report value when the Magnet switch is opened/closed." max="1" min="0" size="1" type="list" value="0">
+      <Help>Default setting: Open: FF, Close: 00</Help>
+      <Item label="Open: FF, Close: 00" value="0"/>
+      <Item label="Open: 00, Close: FF" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Enable wake up 10 minutes when the power is switched on." max="1" min="0" size="1" type="list" value="0">
+      <Help>Default setting: Disable</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Toggle the basic set value when Magnet switch is opened/closed." max="1" min="0" size="1" type="list" value="0">
+      <Help>Default setting: Open: FF, Close: 00</Help>
+      <Item label="Open: FF, Close: 00" value="0"/>
+      <Item label="Open: 00, Close: FF" value="1"/>
+    </Value>
+    <Value genre="config" index="121" instance="1" label="Determines which report will be sent when Magnet switch is opened/ closed." max="65535" min="0" size="4" type="int" value="255">
+      <Help>Which reports need to send automatically in timing intervals for group 1. Bitsets: 0->Battery report, 4->Sensor Binary, 8->Basic Set, Default setting: 0x00000100 (Basic Set)
 			Ideal Setting for OZW is 17 (Sensor Binary and Battery Report)</Help>
-		</Value>
-		<Value type="short" index="254" genre="config" label="Device Tag" units="" min="0" max="255" value="0">
-			<Help>Device Tag</Help>
-		</Value>
-		<Value type="button" index="255" genre="config" label="Reset configuration settings to factory defaults" write_only="true" value="0" >
-			<Help>Reset to factory defaults.</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">		
-		<Associations num_groups="1">
-			<Group index="1" max_associations="6" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-
+    </Value>
+    <Value genre="config" index="254" label="Device Tag" max="255" min="0" type="short" units="" value="0">
+      <Help>Device Tag</Help>
+    </Value>
+    <Value genre="config" index="255" label="Reset configuration settings to factory defaults" type="button" value="0" write_only="true">
+      <Help>Reset to factory defaults.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="6"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/dsb05.xml b/Config/aeotec/dsb05.xml
index 56f3105f0c..d0fcb24af8 100644
--- a/Config/aeotec/dsb05.xml
+++ b/Config/aeotec/dsb05.xml
@@ -1,66 +1,83 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<!-- Aeon Labs Multi Sensor --><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0005:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsb05.png</MetaDataItem>
+    <MetaDataItem id="0005" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/771/</MetaDataItem>
+    <MetaDataItem id="0005" name="Identifier" type="0002">DSB05-ZWAU</MetaDataItem>
+    <MetaDataItem name="Name">Multisensor</MetaDataItem>
+    <MetaDataItem name="Description">Never before has one device made a single corner of your room so smart. Never before has it done it inside. Never before has it done it outside. And never before has it brought all that intelligence to your Z-Wave network. 
+
+The Aeotec by Aeon Labs MultiSensor looks like a motion sensor and acts like one too. But it’s also so much more. Placing this one piece of Z-Wave technology either in the corner of a room or outside is the same as placing 4 pieces of Z-Wave technology. But those 4 pieces of technology, those 4 pieces of intelligence that you can bring to your Z-Wave network, all live within a single, stunning sensor.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-sensor</MetaDataItem>
+    <MetaDataItem id="0005" name="FrequencyName" type="0002">U.S. / Canada / Mexico / CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/710/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/763/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/771/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeotec DSB05 Multisensor
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584510
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
 	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="2" genre="config" label="Wake up 10 minutes when batteries are inserted" min="0" max="1" value="0" size="1">
-			<Help>Stay awake for 10 minutes after batteries are inserted</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="short" index="3" genre="config" label="On time" units="seconds" min="1" max="15300" value="240">
-			<Help>How long should the device associated to multi sensor keep state On before sending it Off command (if the value is bigger than 255, the value would be rounded to next integer in minutes)</Help>
-		</Value>
-		<Value type="list" index="4" genre="config" label="Enable Motion Sensor" min="0" max="1" value="1" size="1">
-			<Help>Enable Motion Sensor</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled" value="1" /> 			
-		</Value>
-		<Value type="list" index="5" genre="config" label="Command Options" min="1" max="2" value="1" size="1">
-			<Help>Which commands to send when PIR motion sensor triggered</Help>
-			<Item label="Basic Set (default)" value="1" />
-			<Item label="Binary Sensor Report" value="2" />  
-		</Value>
-		<Value type="int" index="100" genre="config" label="Reset #101-103" value="0" write_only="true" affects="101,102,103">
-			<Help>Reset to default parameters number 101-103. Any value other then 0 will initiate this reset.</Help>
-		</Value>
-		<Value type="int" index="101" genre="config" label="Group 1 Reports" units="" value="0">
-			<Help>Which reports need to send automatically in timing intervals for group 1. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
-		</Value>
-		<Value type="int" index="102" genre="config" label="Group 2 Reports" value="0">
-			<Help>Which reports need to send automatically in timing intervals for group 2. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
-		</Value>
-		<Value type="int" index="103" genre="config" label="Group 3 Reports" value="0">
-		<Help>Which reports need to send automatically in timing intervals for group 3. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
-		</Value>
-		<Value type="int" index="110" genre="config" label="Reset #111-113" value="0" write_only="true" affects="111,112,113">
-			<Help>Reset to default parameters number 111-113. Any value other then 0 will initiate this reset.</Help>
-		</Value>
-		<Value type="int" index="111" genre="config" label="Group 1 Interval" units="seconds" min="1" max="2678400" value="720">
-			<Help>The interval of sending report group 1. 1 to 2678400 seconds</Help>
-		</Value>
-		<Value type="int" index="112" genre="config" label="Group 2 Interval" units="seconds" min="1" max="2678400" value="720">
-			<Help>The interval of sending report group 2. 1 to 2678400 seconds</Help>
-		</Value>
-		<Value type="int" index="113" genre="config" label="Group 3 Interval" units="seconds" min="1" max="2678400" value="720">
-			<Help>The interval of sending report group 3. 1 to 2678400 seconds</Help>
-		</Value>
-		<Value type="button" index="255" genre="config" label="Reset to default" write_only="true" value="0" >
-			<Help>Reset to factory defaults.</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="4" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="Wake up 10 minutes when batteries are inserted" max="1" min="0" size="1" type="list" value="0">
+      <Help>Stay awake for 10 minutes after batteries are inserted</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="On time" max="15300" min="1" type="short" units="seconds" value="240">
+      <Help>How long should the device associated to multi sensor keep state On before sending it Off command (if the value is bigger than 255, the value would be rounded to next integer in minutes)</Help>
+    </Value>
+    <Value genre="config" index="4" label="Enable Motion Sensor" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable Motion Sensor</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Command Options" max="2" min="1" size="1" type="list" value="1">
+      <Help>Which commands to send when PIR motion sensor triggered</Help>
+      <Item label="Basic Set (default)" value="1"/>
+      <Item label="Binary Sensor Report" value="2"/>
+    </Value>
+    <Value affects="101,102,103" genre="config" index="100" label="Reset #101-103" type="int" value="0" write_only="true">
+      <Help>Reset to default parameters number 101-103. Any value other then 0 will initiate this reset.</Help>
+    </Value>
+    <Value genre="config" index="101" label="Group 1 Reports" type="int" units="" value="0">
+      <Help>Which reports need to send automatically in timing intervals for group 1. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
+    </Value>
+    <Value genre="config" index="102" label="Group 2 Reports" type="int" value="0">
+      <Help>Which reports need to send automatically in timing intervals for group 2. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
+    </Value>
+    <Value genre="config" index="103" label="Group 3 Reports" type="int" value="0">
+      <Help>Which reports need to send automatically in timing intervals for group 3. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
+    </Value>
+    <Value affects="111,112,113" genre="config" index="110" label="Reset #111-113" type="int" value="0" write_only="true">
+      <Help>Reset to default parameters number 111-113. Any value other then 0 will initiate this reset.</Help>
+    </Value>
+    <Value genre="config" index="111" label="Group 1 Interval" max="2678400" min="1" type="int" units="seconds" value="720">
+      <Help>The interval of sending report group 1. 1 to 2678400 seconds</Help>
+    </Value>
+    <Value genre="config" index="112" label="Group 2 Interval" max="2678400" min="1" type="int" units="seconds" value="720">
+      <Help>The interval of sending report group 2. 1 to 2678400 seconds</Help>
+    </Value>
+    <Value genre="config" index="113" label="Group 3 Interval" max="2678400" min="1" type="int" units="seconds" value="720">
+      <Help>The interval of sending report group 3. 1 to 2678400 seconds</Help>
+    </Value>
+    <Value genre="config" index="255" label="Reset to default" type="button" value="0" write_only="true">
+      <Help>Reset to factory defaults.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="4"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/dsb09104.xml b/Config/aeotec/dsb09104.xml
index af1d83018d..0e5d511458 100644
--- a/Config/aeotec/dsb09104.xml
+++ b/Config/aeotec/dsb09104.xml
@@ -1,77 +1,92 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0009:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsb09104.png</MetaDataItem>
+    <MetaDataItem id="0009" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/141/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.aeon-labs.com/site/products/category/1/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.aeon-labs.com/site/support/</MetaDataItem>
+    <MetaDataItem name="Description">The Aeon Labs Smart Energy Monitor is a low-cost energy monitor for the entire home. It can wirelessly report immediate wattage and kWh usage to central control point gateways such as the 4HomeMedia CP and can be easily and safely installed by anyone. 
+</MetaDataItem>
+    <MetaDataItem id="0009" name="FrequencyName" type="0002">U.S. / Canada / Mexico / CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Aeon Labs Home Energy Meter EU</MetaDataItem>
+    <MetaDataItem id="0009" name="Identifier" type="0002">DSB09xxx-ZWUS v1.54</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/140/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/141/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeotec DSB09104 Home Energy Meter
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584509
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="short" index="1" genre="config" label="Country Voltage" units="volts" min="0" max="240" value="120">
+    <Value genre="config" index="1" label="Country Voltage" max="240" min="0" type="short" units="volts" value="120">
       <Help>
 	Voltage to calculate wattage from amperage. US=120. EU,ANZ=240.
       </Help>
     </Value>
-    <Value type="byte" index="3" genre="config" label="Power changed" units="" min="0" max="1" value="0">
+    <Value genre="config" index="3" label="Power changed" max="1" min="0" type="byte" units="" value="0">
       <Help>
 	Automatic report only when power is changed.
       </Help>
     </Value>
-    <Value type="short" index="4" genre="config" label="Wattage Threshold" units="watts" value="50">
+    <Value genre="config" index="4" label="Wattage Threshold" type="short" units="watts" value="50">
       <Help>
 	Threshold change in wattage to induce a automatic report (whole HEM).
       </Help>
     </Value>
-    <Value type="short" index="5" genre="config" label="Wattage Threshold C1" units="watts" value="50">
+    <Value genre="config" index="5" label="Wattage Threshold C1" type="short" units="watts" value="50">
       <Help>
 	Threshold change in wattage to induce a automatic report (Clamp 1).
       </Help>
     </Value>
-    <Value type="short" index="6" genre="config" label="Wattage Threshold C2" units="watts" value="50">
+    <Value genre="config" index="6" label="Wattage Threshold C2" type="short" units="watts" value="50">
       <Help>
 	Threshold change in wattage to induce a automatic report (Clamp 2).
       </Help>
     </Value>
-    <Value type="short" index="7" genre="config" label="Wattage Threshold C3" units="watts" value="50">
+    <Value genre="config" index="7" label="Wattage Threshold C3" type="short" units="watts" value="50">
       <Help>
 	Threshold change in wattage to induce a automatic report (Clamp 3).
       </Help>
     </Value>
-    <Value type="byte" index="8" genre="config" label="Wattage Percentage Change" units="%" value="10">
+    <Value genre="config" index="8" label="Wattage Percentage Change" type="byte" units="%" value="10">
       <Help>
 	Percentage change in wattage to induce a automatic report (whole HEM).
       </Help>
     </Value>
-    <Value type="byte" index="9" genre="config" label="Wattage Percentage Change C1" units="%" value="10">
+    <Value genre="config" index="9" label="Wattage Percentage Change C1" type="byte" units="%" value="10">
       <Help>
 	Percentage change in wattage to induce a automatic report (Clamp 1).
       </Help>
     </Value>
-    <Value type="byte" index="10" genre="config" label="Wattage Percentage Change C2" units="%" value="10">
+    <Value genre="config" index="10" label="Wattage Percentage Change C2" type="byte" units="%" value="10">
       <Help>
 	Percentage change in wattage to induce a automatic report (Clamp 2).
       </Help>
     </Value>
-    <Value type="byte" index="11" genre="config" label="Wattage Percentage Change C3" units="%" value="10">
+    <Value genre="config" index="11" label="Wattage Percentage Change C3" type="byte" units="%" value="10">
       <Help>
 	Percentage change in wattage to induce a automatic report (Clamp 3).
       </Help>
     </Value>
-    <Value type="byte" index="12" genre="config" label="Accumulate energy" units="" min="0" max="1" value="0">
+    <Value genre="config" index="12" label="Accumulate energy" max="1" min="0" type="byte" units="" value="0">
       <Help>
 	Accumulate energy when Battery Powered.
       </Help>
     </Value>
-    <Value type="byte" index="20" genre="config" label="USB powered" units="" min="0" max="1" read_only="true" value="0">
+    <Value genre="config" index="20" label="USB powered" max="1" min="0" read_only="true" type="byte" units="" value="0">
       <Help>
 	This byte denotes whether the product is using batteries (value = 0) or using USB power (value = 1).
       </Help>
     </Value>
-    <Value type="int" index="100" genre="config" label="Reset #101-103" units="" value="0" write_only="true" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Reset #101-103" type="int" units="" value="0" write_only="true">
       <Help>
 	Reset to default parameters number 101-103. Any value other then 0 will initiate this reset.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Group 1 Reports" units="" value="0">
+    <Value genre="config" index="101" label="Group 1 Reports" type="int" units="" value="0">
       <Help>
 	Which reports need to send in group1. Format is as follows:
 	Byte 1 (msb): Reserved
@@ -94,7 +109,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584509
                 Bit 0: Auto Send Battery Report at the group time interval (whole HEM)
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Group 2 Reports" units="" value="0">
+    <Value genre="config" index="102" label="Group 2 Reports" type="int" units="" value="0">
       <Help>
 	Which reports need to send in group2. Format is as follows:
 	Byte 1 (msb): Reserved
@@ -117,7 +132,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584509
                 Bit 0: Auto Send Battery Report at the group time interval (whole HEM)
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Group 3 Reports" units="" value="0">
+    <Value genre="config" index="103" label="Group 3 Reports" type="int" units="" value="0">
       <Help>
 	Which reports need to send in group3. Format is as follows:
 	Byte 1 (msb): Reserved
@@ -140,52 +155,53 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584509
                 Bit 0: Auto Send Battery Report at the group time interval (whole HEM)
       </Help>
     </Value>
-    <Value type="int" index="110" genre="config" label="Reset #111-113" units="" value="0" write_only="true" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Reset #111-113" type="int" units="" value="0" write_only="true">
       <Help>
 	Reset to default parameters number 111-113. Any value other then 0 will initiate this reset.
       </Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Group 1 Interval" units="seconds" value="720">
+    <Value genre="config" index="111" label="Group 1 Interval" type="int" units="seconds" value="720">
       <Help>
 	The interval of sending report group 1.
       </Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Group 2 Interval" units="seconds" value="720">
+    <Value genre="config" index="112" label="Group 2 Interval" type="int" units="seconds" value="720">
       <Help>
 	The interval of sending report group 2.
       </Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Group 3 Interval" units="seconds" value="720">
+    <Value genre="config" index="113" label="Group 3 Interval" type="int" units="seconds" value="720">
       <Help>
 	The interval of sending report group 3.
       </Help>
     </Value>
-    <Value type="int" index="253" genre="config" label="Unit Recalibration (dangerous)" units="" value="0" write_only="true">
+    <Value genre="config" index="253" label="Unit Recalibration (dangerous)" type="int" units="" value="0" write_only="true">
       <Help>
 	Re-calibrate (will destroy factory calibration). CONTACT AEON LABS before using.
       </Help>
     </Value>
-    <Value type="short" index="254" genre="config" label="Device Tag" units="" value="0">
+    <Value genre="config" index="254" label="Device Tag" type="short" units="" value="0">
       <Help>
 	Device tag.
       </Help>
     </Value>
-    <Value type="int" index="255" genre="config" label="Reset default configuration" units="" value="0" write_only="true" affects="all">
+    <Value affects="all" genre="config" index="255" label="Reset default configuration" type="int" units="" value="0" write_only="true">
       <Help>
 	Reset to the default configuration.
       </Help>
     </Value>
   </CommandClass>
-
   <!-- COMMAND_CLASS_WAKE_UP.  This class is in the list reported by the HEM, but it does not
   respond to requests.  It still needs to be supported so that wake up notifications are handled. -->
-  <CommandClass id="132" create_vars="false" />
-
+  <CommandClass id="132">
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsb28-zweu.xml b/Config/aeotec/dsb28-zweu.xml
new file mode 100644
index 0000000000..0f9b337b54
--- /dev/null
+++ b/Config/aeotec/dsb28-zweu.xml
@@ -0,0 +1,17 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0001:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsb28-zweu.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1322/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-home-energy-measure</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0002">CEPT (Europe) / Australia / New Zealand / Israel</MetaDataItem>
+    <MetaDataItem name="Description">Door/Window Sensor (2nd Edition)</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0002">DSB29-ZWIL</MetaDataItem>
+    <MetaDataItem name="Name">Aeon Labs Door/Window Sensor(2nd Edition) DSB29-ZWIL</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/805/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/806/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1322/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/aeotec/dsb28.xml b/Config/aeotec/dsb28.xml
index d74a106563..2d5103a7b1 100644
--- a/Config/aeotec/dsb28.xml
+++ b/Config/aeotec/dsb28.xml
@@ -1,71 +1,85 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:001C:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsb28.png</MetaDataItem>
+    <MetaDataItem id="001C" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/705/</MetaDataItem>
+    <MetaDataItem id="001C" name="Identifier" type="0002">DSB28-ZWUS</MetaDataItem>
+    <MetaDataItem id="001C" name="FrequencyName" type="0002">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">You hear a lot about energy use these days. About how if we reduce the amount of energy we use we can not only save money but also save the environment. But saving money by using less electricity is only possible if we understand when and how we use it. That’s what Aeotec’s Z-Wave Home Energy Meter provides you with – understanding.
+
+Installed in an electricity box, the energy meter will monitor the total consumption of electricity used by an entire building. And its intelligent clamps will report that energy use back to your Z-Wave gateway or controller, in watts or kilowatt-hours, and in real time. So you can see how much electricity you really use and when you use it.</MetaDataItem>
+    <MetaDataItem name="Name">Home Energy Meter G2</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-home-energy-measure</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/705/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeotec DSB28 Home Energy Meter (2nd Edition) 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584508
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" index="2" genre="config" label="Reverse Clamping" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="2" label="Reverse Clamping" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
       If the reverse clamping pliers, negative power is detected. 
       </Help>
-      <Item label="Disable" value="0" />
-      <Item label="Enable" value="1" />
-    </Value>      
-    <Value type="list" index="3" genre="config" label="Power changed" units="" min="0" max="1" value="0" size="1">
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="Power changed" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
 	Automatic report only when power is changed.
       </Help>
-      <Item label="Disable" value="0" />
-      <Item label="Enable" value="1" />
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
     </Value>
-    <Value type="short" index="4" genre="config" label="Wattage Threshold" units="watts" value="50">
+    <Value genre="config" index="4" label="Wattage Threshold" type="short" units="watts" value="50">
       <Help>
 	Threshold change in wattage to induce a automatic report (whole HEM).
       </Help>
     </Value>
-    <Value type="short" index="5" genre="config" label="Wattage Threshold C1" units="watts" value="50">
+    <Value genre="config" index="5" label="Wattage Threshold C1" type="short" units="watts" value="50">
       <Help>
 	Threshold change in wattage to induce a automatic report (Clamp 1).
       </Help>
     </Value>
-    <Value type="short" index="6" genre="config" label="Wattage Threshold C2" units="watts" value="50">
+    <Value genre="config" index="6" label="Wattage Threshold C2" type="short" units="watts" value="50">
       <Help>
 	Threshold change in wattage to induce a automatic report (Clamp 2).
       </Help>
     </Value>
-    <Value type="short" index="7" genre="config" label="Wattage Threshold C3" units="watts" value="50">
+    <Value genre="config" index="7" label="Wattage Threshold C3" type="short" units="watts" value="50">
       <Help>
 	Threshold change in wattage to induce a automatic report (Clamp 3).
       </Help>
     </Value>
-    <Value type="byte" index="8" genre="config" label="Wattage Percentage Change" units="%" value="10">
+    <Value genre="config" index="8" label="Wattage Percentage Change" type="byte" units="%" value="10">
       <Help>
 	Percentage change in wattage to induce a automatic report (whole HEM).
       </Help>
     </Value>
-    <Value type="byte" index="9" genre="config" label="Wattage Percentage Change C1" units="%" value="10">
+    <Value genre="config" index="9" label="Wattage Percentage Change C1" type="byte" units="%" value="10">
       <Help>
 	Percentage change in wattage to induce a automatic report (Clamp 1).
       </Help>
     </Value>
-    <Value type="byte" index="10" genre="config" label="Wattage Percentage Change C2" units="%" value="10">
+    <Value genre="config" index="10" label="Wattage Percentage Change C2" type="byte" units="%" value="10">
       <Help>
 	Percentage change in wattage to induce a automatic report (Clamp 2).
       </Help>
     </Value>
-    <Value type="byte" index="11" genre="config" label="Wattage Percentage Change C3" units="%" value="10">
+    <Value genre="config" index="11" label="Wattage Percentage Change C3" type="byte" units="%" value="10">
       <Help>
 	Percentage change in wattage to induce a automatic report (Clamp 3).
       </Help>
     </Value>
-    <Value type="int" index="100" genre="config" label="Reset #101-103" units="" value="0" write_only="true" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Reset #101-103" type="int" units="" value="0" write_only="true">
       <Help>
 	Reset to default parameters number 101-103. Any value other then 0 will initiate this reset.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Group 1 Reports" units="" value="0">
+    <Value genre="config" index="101" label="Group 1 Reports" type="int" units="" value="0">
       <Help>
 	Which reports need to send in group1. Format is as follows:
 	Byte 1 (msb): Reserved
@@ -88,7 +102,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584508
                 Bit 0: Auto Send Battery Report at the group time interval (whole HEM)
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Group 2 Reports" units="" value="0">
+    <Value genre="config" index="102" label="Group 2 Reports" type="int" units="" value="0">
       <Help>
 	Which reports need to send in group2. Format is as follows:
 	Byte 1 (msb): Reserved
@@ -111,7 +125,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584508
                 Bit 0: Auto Send Battery Report at the group time interval (whole HEM)
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Group 3 Reports" units="" value="0">
+    <Value genre="config" index="103" label="Group 3 Reports" type="int" units="" value="0">
       <Help>
 	Which reports need to send in group3. Format is as follows:
 	Byte 1 (msb): Reserved
@@ -134,48 +148,45 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584508
                 Bit 0: Auto Send Battery Report at the group time interval (whole HEM)
       </Help>
     </Value>
-    <Value type="int" index="110" genre="config" label="Reset #111-113" units="" value="0" write_only="true" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Reset #111-113" type="int" units="" value="0" write_only="true">
       <Help>
 	Reset to default parameters number 111-113. Any value other then 0 will initiate this reset.
       </Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Group 1 Interval" units="seconds" value="720">
+    <Value genre="config" index="111" label="Group 1 Interval" type="int" units="seconds" value="720">
       <Help>
 	The interval of sending report group 1.
       </Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Group 2 Interval" units="seconds" value="720">
+    <Value genre="config" index="112" label="Group 2 Interval" type="int" units="seconds" value="720">
       <Help>
 	The interval of sending report group 2.
       </Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Group 3 Interval" units="seconds" value="720">
+    <Value genre="config" index="113" label="Group 3 Interval" type="int" units="seconds" value="720">
       <Help>
 	The interval of sending report group 3.
       </Help>
     </Value>
-    <Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
-      <Item label="Aeon Labs Standard Product" value="0" />
-      <Item label="AT&amp;T" value="1" />
-    </Value>   
-    <Value type="short" index="254" genre="config" label="Device Tag" units="" value="0">
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
+      <Item label="Aeon Labs Standard Product" value="0"/>
+      <Item label="AT&amp;T" value="1"/>
+    </Value>
+    <Value genre="config" index="254" label="Device Tag" type="short" units="" value="0">
       <Help>
 	Device tag.
       </Help>
     </Value>
-    <Value type="int" index="255" genre="config" label="Reset default configuration" units="" value="0" write_only="true" affects="all">
+    <Value affects="all" genre="config" index="255" label="Reset default configuration" type="int" units="" value="0" write_only="true">
       <Help>
 	Reset to the default configuration.
       </Help>
     </Value>
   </CommandClass>
-
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsb29.xml b/Config/aeotec/dsb29.xml
index 40bd5bc78b..01823e2011 100644
--- a/Config/aeotec/dsb29.xml
+++ b/Config/aeotec/dsb29.xml
@@ -1,47 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 Aeotec DSB29 Door/Window Sensor (2nd Edition) 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584513
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+--><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:001D:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsb29.png</MetaDataItem>
+    <MetaDataItem id="001D" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/772/</MetaDataItem>
+    <MetaDataItem id="001D" name="FrequencyName" type="0002">U.S. / Canada / Mexico / CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-door-window-sensor</MetaDataItem>
+    <MetaDataItem name="Name">Door Window Sensor G2</MetaDataItem>
+    <MetaDataItem id="001D" name="Identifier" type="0002">DSB29-ZWAU</MetaDataItem>
+    <MetaDataItem name="Description">We always think of tools in our house as ‘doing things’. Switches turn lights on. Remotes turn TVs off. Things do the basic stuff we tell them to – nothing more, nothing less. 
+That’s a description of a house of the past. 
 
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Toggle the sensor binary report value when the Magnet switch is opened/closed." min="0" max="1" value="0" size="1">
-			<Help>Default setting: Open: FF, Close: 00</Help>
-			<Item label="Open: FF, Close: 00" value="0"/>
-			<Item label="Open: 00, Close: FF" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Enable wake up 10 minutes when the power is switched on." min="0" max="1" value="0" size="1">
-			<Help>Default setting: Disable</Help>
-			<Item label="Disable" value="0"/>
-			<Item label="Enable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Toggle the basic set value when Magnet switch is opened/closed." min="0" max="1" value="0" size="1">
-			<Help>Default setting: Open: FF, Close: 00</Help>
-			<Item label="Open: FF, Close: 00" value="0"/>
-			<Item label="Open: 00, Close: FF" value="1"/>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="121" label="Determines which report will be sent when Magnet switch is opened/ closed." min="0" max="65535" value="255" size="4">
-			<Help>Which reports need to send automatically in timing intervals for group 1. Bitsets: 0->Battery report, 4->Sensor Binary, 8->Basic Set, Default setting: 0x00000100 (Basic Set)
-			Ideal Setting for OZW is 17 (Sensor Binary and Battery Report)</Help>
-		</Value>
-		<Value type="short" index="254" genre="config" label="Device Tag" units="" min="0" max="255" value="0">
-			<Help>Device Tag</Help>
-		</Value>
-		<Value type="button" index="255" genre="config" label="Reset configuration settings to factory defaults" write_only="true" value="0" >
-			<Help>Reset to factory defaults.</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
+The house of today has intelligence built in. Or at least it should. 
 
-	<!-- Association Groups -->
-	<CommandClass id="133">		
-		<Associations num_groups="1">
-			<Group index="1" max_associations="6" label="Lifeline" />
-		</Associations>
-	</CommandClass>
+Inspired by the humble thermostat, Aeotec’s Z-Wave Door &amp; Window Sensor sits as a part of our Intelligence range. Like a thermostat, we’ve designed it to find things out, to understand things about your home, and to then use that information to make your home more comfortable, to make your life easier. 
 
+The Door &amp; Window Sensor finds out something very simple – whether a door or a window, or in fact any object in your home, is open or closed. But there’s power in simplicity. Power that allows you to inform the rest of your Z-Wave network about your selected doors and windows. Like a thermostat lets your heating and cooling systems know what they should do next, Aeotec’s Z-Wave Door &amp; Window Sensor does the same. Perhaps an open door means that your lights should turn on and welcome you home. Perhaps an open window means that an alarm should be trigged. Whatever it means to your home, with door and window sensors installed, your Z-Wave network will have both the power and the itelligence to do it.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/701/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/764/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/772/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Toggle the sensor binary report value when the Magnet switch is opened/closed." max="1" min="0" size="1" type="list" value="0">
+      <Help>Default setting: Open: FF, Close: 00</Help>
+      <Item label="Open: FF, Close: 00" value="0"/>
+      <Item label="Open: 00, Close: FF" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Enable wake up 10 minutes when the power is switched on." max="1" min="0" size="1" type="list" value="0">
+      <Help>Default setting: Disable</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Toggle the basic set value when Magnet switch is opened/closed." max="1" min="0" size="1" type="list" value="0">
+      <Help>Default setting: Open: FF, Close: 00</Help>
+      <Item label="Open: FF, Close: 00" value="0"/>
+      <Item label="Open: 00, Close: FF" value="1"/>
+    </Value>
+    <Value genre="config" index="121" instance="1" label="Determines which report will be sent when Magnet switch is opened/ closed." max="65535" min="0" size="4" type="int" value="255">
+      <Help>Which reports need to send automatically in timing intervals for group 1. Bitsets: 0->Battery report, 4->Sensor Binary, 8->Basic Set, Default setting: 0x00000100 (Basic Set)
+			Ideal Setting for OZW is 17 (Sensor Binary and Battery Report)</Help>
+    </Value>
+    <Value genre="config" index="254" label="Device Tag" max="255" min="0" type="short" units="" value="0">
+      <Help>Device Tag</Help>
+    </Value>
+    <Value genre="config" index="255" label="Reset configuration settings to factory defaults" type="button" value="0" write_only="true">
+      <Help>Reset to factory defaults.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="6"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/dsb45.xml b/Config/aeotec/dsb45.xml
index 3148c09ed3..ab898dd014 100644
--- a/Config/aeotec/dsb45.xml
+++ b/Config/aeotec/dsb45.xml
@@ -1,28 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- 
 Aeotec DSB45 Water Sensor 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584511
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
 	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Sensor Binary Report Toggle" min="0" max="1" value="0" size="1">
-			<Help>Toggle the sensor binary report value when the Water Sensor is Triggered</Help>
-			<Item label="Normal" value="0" />
-			<Item label="Inverse" value="1" />
-		</Value>
-		<Value type="list" index="2" genre="config" label="Wake Up on Power On" min="0" max="1" value="0" size="1">
-			<Help>Enable wake up 10 minutes when the power is switched on.</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="list" index="3" genre="config" label="Basic Set Toggle" min="0" max="1" value="0" size="1">
-			<Help>Toggle the basic set value when the Water Sensor is Triggered</Help>
-			<Item label="Normal" value="0" />
-			<Item label="Inverse" value="1" />
-		</Value>
-	        <Value type="int" genre="config" index="121" label="Report Type to Send" min="0" max="4369" value="256">
-        	    <Help>To set which command will be sent to the associated nodes when the Water Sensor is triggered.
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Sensor Binary Report Toggle" max="1" min="0" size="1" type="list" value="0">
+      <Help>Toggle the sensor binary report value when the Water Sensor is Triggered</Help>
+      <Item label="Normal" value="0"/>
+      <Item label="Inverse" value="1"/>
+    </Value>
+    <Value genre="config" index="2" label="Wake Up on Power On" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable wake up 10 minutes when the power is switched on.</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="Basic Set Toggle" max="1" min="0" size="1" type="list" value="0">
+      <Help>Toggle the basic set value when the Water Sensor is Triggered</Help>
+      <Item label="Normal" value="0"/>
+      <Item label="Inverse" value="1"/>
+    </Value>
+    <Value genre="config" index="121" label="Report Type to Send" max="4369" min="0" type="int" value="256">
+      <Help>To set which command will be sent to the associated nodes when the Water Sensor is triggered.
 	            	Bitsets:
 	         	1 -> Battery
 	                4 -> Sensor Binary
@@ -31,21 +30,21 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584511
 	              	Default setting: 0x100 (Basic Set)
               		OZW Ideal Setting: 0x1011 (Battery, Sensor Binary Report, Alarm)
             	    </Help>
-        	</Value>
-
-		<Value type="button" index="255" genre="config" label="Reset to default" write_only="true" value="0" >
-			<Help>Reset to factory defaults.</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- the Device Doesn't support Get for Alarm Class -->
-	<CommandClass id="113" getsupported="false"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="4" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-
+    </Value>
+    <Value genre="config" index="255" label="Reset to default" type="button" value="0" write_only="true">
+      <Help>Reset to factory defaults.</Help>
+    </Value>
+  </CommandClass>
+  <!-- the Device Doesn't support Get for Alarm Class -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="4"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/dsb54.xml b/Config/aeotec/dsb54.xml
index ba80b210c8..615af8a0a1 100644
--- a/Config/aeotec/dsb54.xml
+++ b/Config/aeotec/dsb54.xml
@@ -1,28 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- 
 Aeotec DSB54 Recessed Door Sensor
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584512
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
     <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="byte" genre="config" instance="1" index="1" label="Toggle the sensor binary report value when the Magnet switch is opened/closed." min="0" max="1" value="0">
-            <Help>0, Open: FF, Close: 00; 1, Open: 00, Close: FF;
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Toggle the sensor binary report value when the Magnet switch is opened/closed." max="1" min="0" type="byte" value="0">
+      <Help>0, Open: FF, Close: 00; 1, Open: 00, Close: FF;
               Default setting: 0
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="3" label="Toggle the basic set value when Magnet switch is opened/closed." min="0" max="1" value="0">
-            <Help>0, Open: FF, Close: 00; 1, Open: 00, Close: FF;
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Toggle the basic set value when Magnet switch is opened/closed." max="1" min="0" type="byte" value="0">
+      <Help>0, Open: FF, Close: 00; 1, Open: 00, Close: FF;
               Default setting: 0
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="101" label="If battery power is below the warning value, low battery checking function will be triggered and Low Battery Warning Report will be sent." min="0" max="1" value="0">
-            <Help>0, Disable, 1, Enable;
+    </Value>
+    <Value genre="config" index="101" instance="1" label="If battery power is below the warning value, low battery checking function will be triggered and Low Battery Warning Report will be sent." max="1" min="0" type="byte" value="0">
+      <Help>0, Disable, 1, Enable;
               Default setting: 0
             </Help>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="111" label="The low battery check Interval time,0-4294967295 seconds." min="0" max="1" value="86640">
-            <Help>This parameter is available when the low battery checking
+    </Value>
+    <Value genre="config" index="111" instance="1" label="The low battery check Interval time,0-4294967295 seconds." max="1" min="0" type="int" value="86640">
+      <Help>This parameter is available when the low battery checking
                   function is activated or the device was waked up by other
                   actions (i.e. the z-wave button trigger, magnet switch
                   trigger and the Wake Up Interval Set timeout trigger).
@@ -32,28 +31,32 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584512
                   Wake Up Interval Set timeout trigger.
               Default setting: 86640
             </Help>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="121" label="Flag values for which reports to send when the Magnet of Recessed Door Sensor is triggered." min="0" max="1" value="256">
-            <Help>Bitsets:
+    </Value>
+    <Value genre="config" index="121" instance="1" label="Flag values for which reports to send when the Magnet of Recessed Door Sensor is triggered." max="1" min="0" type="int" value="256">
+      <Help>Bitsets:
                 4 -> Sensor Binary
                 8 -> Basic Set
               Default setting: 0x00000100 (Basic Set)
             </Help>
-        </Value>
-        <Value type="short" index="254" genre="config" label="Device Tag" units="" min="0" max="255" value="0">
-			<Help>Device Tag</Help>
-		</Value>
-		<Value type="button" index="255" genre="config" label="Reset configuration settings to factory defaults" write_only="true" value="0" >
-			<Help>Reset to factory defaults.</Help>
-		</Value>
-    </CommandClass>
-	<!-- Basic set as report-->
-	<CommandClass id="32" setasreport="true"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-      <Associations num_groups="2">
-        <Group index="1" max_associations="5" label="Lifeline" />
-        <Group index="2" max_associations="5" label="Low Battery Warning Report" />
-      </Associations>
-    </CommandClass>    
+    </Value>
+    <Value genre="config" index="254" label="Device Tag" max="255" min="0" type="short" units="" value="0">
+      <Help>Device Tag</Help>
+    </Value>
+    <Value genre="config" index="255" label="Reset configuration settings to factory defaults" type="button" value="0" write_only="true">
+      <Help>Reset to factory defaults.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Low Battery Warning Report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/dsc06106.xml b/Config/aeotec/dsc06106.xml
index 31036eb1a7..7a428e263e 100644
--- a/Config/aeotec/dsc06106.xml
+++ b/Config/aeotec/dsc06106.xml
@@ -1,53 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 Aeotec DSC06106 Smart Energy Switch  
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584529
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>  
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0006:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsc06106.png</MetaDataItem>
+    <MetaDataItem id="0006" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/133/</MetaDataItem>
+    <MetaDataItem id="0006" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">Smart Energy SwitchThe Aeon Labs Smart Energy Switch is a low-cost Z-Wave appliance switch which can report immediate wattage energy usage or kWh energy usage over a period of time. It can also be controlled by other Z-Wave devices to turn on/off to save electricity when appropriate.
+
+With an unobtrusive small form factor, the Aeon Labs Smart Energy Switch will not block other nearby Ac outlets. It is available in both matte white and matte black colors.. </MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.aeon-labs.com/site/support/</MetaDataItem>
+    <MetaDataItem id="0006" name="Identifier" type="0003">DSB06xxx-ZWUS</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.aeon-labs.com/site/products/view/5/</MetaDataItem>
+    <MetaDataItem name="Name">Aeon Labs Smart Energy Switch</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/133/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="Report type" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="1" label="Report type" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
 	Defines the contents of Multilevel Sensor Report after Multilevel Sensor Get received.
       </Help>
-      <Item label="Power" value="0" />
-      <Item label="Voltage" value="1" />
+      <Item label="Power" value="0"/>
+      <Item label="Voltage" value="1"/>
     </Value>
-    <Value type="short" index="2" genre="config" label="Blinking behavior" units="" min="0" max="65535" write_only="true" value="0">
+    <Value genre="config" index="2" label="Blinking behavior" max="65535" min="0" type="short" units="" value="0" write_only="true">
       <Help>
 	This is actually a double byte value. The LSB defines the total time the device needs to blink in seconds. The MSB defines the on/off interval of the blink in tenths of seconds.
       </Help>
     </Value>
-    <Value type="list" index="80" genre="config" label="Notification status" units="" size="1" value="0">
+    <Value genre="config" index="80" label="Notification status" size="1" type="list" units="" value="0">
       <Help>
 	Enables automatic notifications to associated devices whenever there is a state change.
       </Help>
-      <Item label="None" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
+      <Item label="None" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
     </Value>
-    <Value type="bool" index="90" genre="config" label="Enable Wattage Reports" units="" value="0">
+    <Value genre="config" index="90" label="Enable Wattage Reports" type="bool" units="" value="0">
       <Help>
 	Enable/disable Wattage threshold and percent.
       </Help>
     </Value>
-    <Value type="short" index="91" genre="config" label="Wattage threshold" units="watts" min="0" max="32000" value="50">
+    <Value genre="config" index="91" label="Wattage threshold" max="32000" min="0" type="short" units="watts" value="50">
       <Help>
 	The minimum change in wattage for a report to be sent.
       </Help>
     </Value>
-    <Value type="byte" index="92" genre="config" label="Wattage threshold percent" units="%" min="0" max="99" value="10">
+    <Value genre="config" index="92" label="Wattage threshold percent" max="99" min="0" type="byte" units="%" value="10">
       <Help>
 	Minimum change in percent of wattage to send a report.
       </Help>
     </Value>
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" value="0" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" value="0" write_only="true">
       <Help>
 	Set report types for groups 1, 2 and 3 to default. Reverts to 0
 	after set.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type G1" units="" value="8">
+    <Value genre="config" index="101" label="Report type G1" type="int" units="" value="8">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -69,7 +83,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584529
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type G2" units="" value="0">
+    <Value genre="config" index="102" label="Report type G2" type="int" units="" value="0">
       <Help>
 	Defines the type of report sent for reporting group 2. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -91,7 +105,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584529
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type G3" units="" value="0">
+    <Value genre="config" index="103" label="Report type G3" type="int" units="" value="0">
       <Help>
 	Defines the type of report sent for reporting group 3. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -113,32 +127,32 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584529
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Default Group Time" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Default Group Time" type="button" units="" value="0" write_only="true">
       <Help>
 	Set time interval for sending reports for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Send interval G1" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="111" label="Send interval G1" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 1 is sent.
       </Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Send interval G2" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="112" label="Send interval G2" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 2 is sent.
       </Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Send interval G3" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="113" label="Send interval G3" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 3 is sent.
       </Help>
     </Value>
-    <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>
 	Device tag.
       </Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true" value="0">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" value="0" write_only="true">
       <Help>
 	Reset to the default configuration.
       </Help>
@@ -147,8 +161,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584529
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsc08101.xml b/Config/aeotec/dsc08101.xml
index f18231f269..fcae84209a 100644
--- a/Config/aeotec/dsc08101.xml
+++ b/Config/aeotec/dsc08101.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- 
 Aeotec DSC08101 Smart Energy Illuminator
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584521
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value type="list" index="1" genre="config" label="Multilevel Sensor Report Command" size="1" min="0" max="1" value="0">
diff --git a/Config/aeotec/dsc10.xml b/Config/aeotec/dsc10.xml
index 4ff3e29868..cae8aa2416 100644
--- a/Config/aeotec/dsc10.xml
+++ b/Config/aeotec/dsc10.xml
@@ -1,56 +1,68 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:000A:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsc10.png</MetaDataItem>
+    <MetaDataItem id="000A" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/704/</MetaDataItem>
+    <MetaDataItem name="Name">Heavy-Duty Smart Energy Switch</MetaDataItem>
+    <MetaDataItem id="000A" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-plug-in-switch/1014-high-power-z-wave-switch.html</MetaDataItem>
+    <MetaDataItem id="000A" name="Identifier" type="0003">DSC10-ZWUS</MetaDataItem>
+    <MetaDataItem name="Description">Control, automate and record the electricity consumption of a premise’s heavy-duty appliances. Works in and outdoors with appliances up to 30 amps.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/704/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!--
 Aeotec DSC10 Heavy-Duty Smart Switch
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>  
   <Protocol refreshonnodeinfoframe="false"/>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" index="3" genre="config" label="Current Overload Protection" size="1" value="0">
+    <Value genre="config" index="3" label="Current Overload Protection" size="1" type="list" value="0">
       <Help>
       Current Overload Protection. Load will be closed when
       the Current more than 39.5A and the time more than 5
       seconds
       </Help>
-      <Item label="Disable" value="0" />
-      <Item label="Enable" value="1" />
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" index="20" genre="config" label="LED Mode" size="1" value="0">
+    <Value genre="config" index="20" label="LED Mode" size="1" type="list" value="0">
       <Help>LED status after power on</Help>
       <Item label="Last Status" value="0"/>
       <Item label="On" value="1"/>
       <Item label="Off" value="2"/>
     </Value>
-    <Value type="list" index="80" genre="config" label="Notification status" units="" size="1" value="0">
+    <Value genre="config" index="80" label="Notification status" size="1" type="list" units="" value="0">
       <Help>
 	Enables automatic notifications to associated devices whenever there is a state change.
       </Help>
-      <Item label="None" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
+      <Item label="None" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
     </Value>
-    <Value type="bool" index="90" genre="config" label="Enable Wattage Reports" units="" value="1">
+    <Value genre="config" index="90" label="Enable Wattage Reports" type="bool" units="" value="1">
       <Help>
 	Enable/disable Wattage threshold and percent.
       </Help>
     </Value>
-    <Value type="short" index="91" genre="config" label="Wattage threshold" units="watts" min="0" max="32000" value="50">
+    <Value genre="config" index="91" label="Wattage threshold" max="32000" min="0" type="short" units="watts" value="50">
       <Help>
 	The minimum change in wattage for a report to be sent.
       </Help>
     </Value>
-    <Value type="byte" index="92" genre="config" label="Wattage threshold percent" units="%" min="0" max="99" value="10">
+    <Value genre="config" index="92" label="Wattage threshold percent" max="99" min="0" type="byte" units="%" value="10">
       <Help>
 	Minimum change in percent of wattage to send a report.
       </Help>
     </Value>
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" value="0" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" value="0" write_only="true">
       <Help>
 	Set report types for groups 1, 2 and 3 to default. Reverts to 0
 	after set.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type G1" units="" value="4">
+    <Value genre="config" index="101" label="Report type G1" type="int" units="" value="4">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -72,7 +84,7 @@ Aeotec DSC10 Heavy-Duty Smart Switch
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type G2" units="" value="8">
+    <Value genre="config" index="102" label="Report type G2" type="int" units="" value="8">
       <Help>
 	Defines the type of report sent for reporting group 2. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -94,7 +106,7 @@ Aeotec DSC10 Heavy-Duty Smart Switch
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type G3" units="" value="0">
+    <Value genre="config" index="103" label="Report type G3" type="int" units="" value="0">
       <Help>
 	Defines the type of report sent for reporting group 3. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -116,49 +128,47 @@ Aeotec DSC10 Heavy-Duty Smart Switch
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Default Group Time" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Default Group Time" type="button" units="" value="0" write_only="true">
       <Help>
 	Set time interval for sending reports for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Send interval G1" units="seconds" min="0" max="65535" value="5">
+    <Value genre="config" index="111" label="Send interval G1" max="65535" min="0" type="int" units="seconds" value="5">
       <Help>
 	Defines the time interval when the defined report for group 1 is sent.
       </Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Send interval G2" units="seconds" min="0" max="65535" value="120">
+    <Value genre="config" index="112" label="Send interval G2" max="65535" min="0" type="int" units="seconds" value="120">
       <Help>
 	Defines the time interval when the defined report for group 2 is sent.
       </Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Send interval G3" units="seconds" min="0" max="65535" value="120">
+    <Value genre="config" index="113" label="Send interval G3" max="65535" min="0" type="int" units="seconds" value="120">
       <Help>
 	Defines the time interval when the defined report for group 3 is sent.
       </Help>
     </Value>
-      <Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
-          <Item label="Aeon Labs Standard Product" value="0" />
-          <Item label="Other" value="1" />
-      </Value>
-    <Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
+      <Item label="Aeon Labs Standard Product" value="0"/>
+      <Item label="Other" value="1"/>
+    </Value>
+    <Value genre="config" index="252" label="Lock/Unlock Configuration" max="1" min="0" size="1" type="list" value="0">
       <Help>Lock/ unlock all configuration parameters</Help>
       <Item label="Unlock" value="0"/>
       <Item label="Lock" value="1"/>
     </Value>
-      <Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-          <Help>Reset to factory defaults</Help>
-          <Item label="Reset to factory default setting" value="0"/>
-          <Item label="Normal" value="1"/>
-          <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-      </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="LifeLine" />
-      <Group index="2" max_associations="5" label="Retransmit Switch CC" />
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Retransmit Switch CC" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsc11.xml b/Config/aeotec/dsc11.xml
index cff30d72da..045570ab57 100644
--- a/Config/aeotec/dsc11.xml
+++ b/Config/aeotec/dsc11.xml
@@ -1,75 +1,85 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 Aeotec DSC11 Smart Strip 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584527
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>  
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:000B:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsc11.png</MetaDataItem>
+    <MetaDataItem id="000B" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1015/</MetaDataItem>
+    <MetaDataItem name="Name">Aeon Labs Smart Strip DSC11-ZWUS</MetaDataItem>
+    <MetaDataItem id="000B" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="000B" name="Identifier" type="0003">DSC11-ZWUS</MetaDataItem>
+    <MetaDataItem name="Description">Smart Strip</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1015/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <Protocol refreshonnodeinfoframe="false"/>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-   <Value type="list" index="4" genre="config" label="Report threshold" units="" min="0" max="1" size="1" value="1">
+    <Value genre="config" index="4" label="Report threshold" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>Enable selective reporting only when power change reaches a certain threshold or percentage set in 4.11 below.
 	  This is used to reduce network traffic.</Help>
-      <Item label="Disable," value="0" />
-      <Item label="Enable" value="1" />
-    </Value> 
-	<Value type="short" index="5" genre="config" label="Whole Smart Strip Minimum Change to send Report (Watt) " units="watts" min="0" max="60000" size="2" value="25">
+      <Item label="Disable," value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Whole Smart Strip Minimum Change to send Report (Watt) " max="60000" min="0" size="2" type="short" units="watts" value="25">
       <Help>Threshold change in wattage to induce an automatic report (Whole Smart Strip).</Help>
     </Value>
-	<Value type="short" index="6" genre="config" label="Socket 1 Minimum Change to send Report (Watt) " units="watts" min="0" max="60000" size="2" value="25">
+    <Value genre="config" index="6" label="Socket 1 Minimum Change to send Report (Watt) " max="60000" min="0" size="2" type="short" units="watts" value="25">
       <Help>Threshold change in wattage to induce an automatic report (Socket 1).</Help>
     </Value>
-	<Value type="short" index="7" genre="config" label="Socket 2 Minimum Change to send Report (Watt) " units="watts" min="0" max="60000" size="2" value="25">
+    <Value genre="config" index="7" label="Socket 2 Minimum Change to send Report (Watt) " max="60000" min="0" size="2" type="short" units="watts" value="25">
       <Help>Threshold change in wattage to induce an automatic report (Socket 2).</Help>
     </Value>
-	<Value type="short" index="8" genre="config" label="Socket 3 Minimum Change to send Report (Watt) " units="watts" min="0" max="60000" size="2" value="25">
+    <Value genre="config" index="8" label="Socket 3 Minimum Change to send Report (Watt) " max="60000" min="0" size="2" type="short" units="watts" value="25">
       <Help>Threshold change in wattage to induce an automatic report (Socket 3).</Help>
     </Value>
-	<Value type="short" index="9" genre="config" label="Socket 4 Minimum Change to send Report (Watt) " units="watts" min="0" max="60000" size="2" value="25">
+    <Value genre="config" index="9" label="Socket 4 Minimum Change to send Report (Watt) " max="60000" min="0" size="2" type="short" units="watts" value="25">
       <Help>Threshold change in wattage to induce an automatic report (Socket 4).</Help>
     </Value>
-	<Value type="short" index="10" genre="config" label="Socket 5 Minimum Change to send Report (Watt) " units="watts" min="0" max="60000" size="2" value="25">
+    <Value genre="config" index="10" label="Socket 5 Minimum Change to send Report (Watt) " max="60000" min="0" size="2" type="short" units="watts" value="25">
       <Help>Threshold change in wattage to induce an automatic report (Socket 5).</Help>
     </Value>
-	<Value type="short" index="11" genre="config" label="Socket 6 Minimum Change to send Report (Watt) " units="watts" min="0" max="60000" size="2" value="25">
+    <Value genre="config" index="11" label="Socket 6 Minimum Change to send Report (Watt) " max="60000" min="0" size="2" type="short" units="watts" value="25">
       <Help>Threshold change in wattage to induce an automatic report (Socket 6).</Help>
     </Value>
-    <Value type="byte" index="12" genre="config" label="Whole Smart Strip Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="12" label="Whole Smart Strip Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>Percentage change in wattage to induce an automatic report (Whole Smart Strip).</Help>
     </Value>
-	<Value type="byte" index="13" genre="config" label="Socket 1 Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="13" label="Socket 1 Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>Percentage change in wattage to induce an automatic report (Socket 1).</Help>
     </Value>
-	<Value type="byte" index="14" genre="config" label="Socket 2 Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="14" label="Socket 2 Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>Percentage change in wattage to induce an automatic report (Socket 2).</Help>
     </Value>
-	<Value type="byte" index="15" genre="config" label="Socket 3 Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="15" label="Socket 3 Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>Percentage change in wattage to induce an automatic report (Socket 3).</Help>
     </Value>
-	<Value type="byte" index="16" genre="config" label="Socket 4 Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="16" label="Socket 4 Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>Percentage change in wattage to induce an automatic report (Socket 4).</Help>
     </Value>
-	<Value type="byte" index="17" genre="config" label="Socket 5 Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="17" label="Socket 5 Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>Percentage change in wattage to induce an automatic report (Socket 5).</Help>
     </Value>
-	<Value type="byte" index="18" genre="config" label="Socket 6 Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="18" label="Socket 6 Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>Percentage change in wattage to induce an automatic report (Socket 6).</Help>
     </Value>
-    <Value type="list" index="80" genre="config" label="Notification status" units="" min="0" max="2" size="1" value="0">
+    <Value genre="config" index="80" label="Notification status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Defines the automated status notification of an associated device when status changes</Help>
-      <Item label="Nothing" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
-    </Value>    
-    <Value type="short" index="90" genre="config" label="Temperature of Smart Strip" size="2" units="" value="0"  read_only="true">
+      <Item label="Nothing" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
+    </Value>
+    <Value genre="config" index="90" label="Temperature of Smart Strip" read_only="true" size="2" type="short" units="" value="0">
       <Help>Get temperature of Smart Strip</Help>
-    </Value>    
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" affects="101,102,103">
+    </Value>
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" write_only="true">
       <Help>
 	Set report types for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type sent in Reporting Group 1" size="4" units="" value="0">
+    <Value genre="config" index="101" label="Report type sent in Reporting Group 1" size="4" type="int" units="" value="0">
       <Help>Configure auto report which information as Group 1.
 	 Value 1 (msb) Reserved
 	 Value 2 Reserved
@@ -93,7 +103,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584527
 			bit 0 Auto report the total power consumption with specified time interval
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type sent in Reporting Group 2" size="4" units="" value="0">
+    <Value genre="config" index="102" label="Report type sent in Reporting Group 2" size="4" type="int" units="" value="0">
       <Help>Configure auto report which information as Group 2.
 	 Value 1 (msb) Reserved
 	 Value 2 Reserved
@@ -117,7 +127,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584527
 			bit 0 Auto report the total power consumption with specified time interval
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type sent in Reporting Group 3" size="4" units="" value="0">
+    <Value genre="config" index="103" label="Report type sent in Reporting Group 3" size="4" type="int" units="" value="0">
       <Help>Configure auto report which information as Group 3.
 	 Value 1 (msb) Reserved
 	 Value 2 Reserved
@@ -141,49 +151,47 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584527
 			bit 0 Auto report the total power consumption with specified time interval
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Set 111-113 to default" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Set 111-113 to default" type="button" units="" value="0" write_only="true">
       <Help>
 	Set time interval for sending reports for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Send Interval for Reporting Group 1" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="111" label="Send Interval for Reporting Group 1" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 1 is sent.
       </Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Send Interval for Reporting Group 2" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="112" label="Send Interval for Reporting Group 2" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 2 is sent.
       </Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Send Interval for Reporting Group 3" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="113" label="Send Interval for Reporting Group 3" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 3 is sent.
       </Help>
     </Value>
-    <Value type="list" index="252" genre="config" label="Configuration Locked" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="252" label="Configuration Locked" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable/disable Configuration Locked</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-	<Value type="int" index="253" genre="config" label="Enter Meter Calibration Mode" units="" min="0" max="1" size="4" value="0" write_only="true">
+    <Value genre="config" index="253" label="Enter Meter Calibration Mode" max="1" min="0" size="4" type="int" units="" value="0" write_only="true">
       <Help>Enter Meter Calibration Mode</Help>
-    </Value>	
-    <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    </Value>
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>
 	Device tag.
       </Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" write_only="true">
       <Help>Reset to the default configuration.</Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="LifeLine"/>
+      <Group index="1" label="LifeLine" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsc12104.xml b/Config/aeotec/dsc12104.xml
index 9be961b389..dd4c634185 100644
--- a/Config/aeotec/dsc12104.xml
+++ b/Config/aeotec/dsc12104.xml
@@ -3,7 +3,7 @@
 Aeotec DSC12104 Micro Smart Energy Switch
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584526
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>  
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">    
     <Value type="short" index="2" genre="config" label="Blinking behavior" units="" min="0" max="65535" write_only="true" value="0">
diff --git a/Config/aeotec/dsc13104.xml b/Config/aeotec/dsc13104.xml
index 323ceb2016..26b8da672c 100644
--- a/Config/aeotec/dsc13104.xml
+++ b/Config/aeotec/dsc13104.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- 
 Aeotec DSC13104 Micro Smart Energy Illuminator
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584519
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
   <!-- Configuration Parameters -->
   <CommandClass id="112">    
 	<Value type="short" index="2" genre="config" label="Make SEI blink" size="2" min="0" max="65535" value="0">
diff --git a/Config/aeotec/dsc14104.xml b/Config/aeotec/dsc14104.xml
index 4c3a3c6784..30e7560a62 100644
--- a/Config/aeotec/dsc14104.xml
+++ b/Config/aeotec/dsc14104.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?> 
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
 <!-- 
 Aeotec DSC14104 Micro Motor Controller
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584516
  -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value type="int" index="1" genre="config" label="Motor start delay time" units="ms" size="4" value="0">
diff --git a/Config/aeotec/dsc18103.xml b/Config/aeotec/dsc18103.xml
index 080ca514eb..08701cbce3 100644
--- a/Config/aeotec/dsc18103.xml
+++ b/Config/aeotec/dsc18103.xml
@@ -1,53 +1,69 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0012:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsc18103.png</MetaDataItem>
+    <MetaDataItem id="0012" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/775/</MetaDataItem>
+    <MetaDataItem id="0012" name="FrequencyName" type="0003">U.S. / Canada / Mexico / CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <MetaDataItem name="Name">Micro Smart Energy Switch G2</MetaDataItem>
+    <MetaDataItem name="Description">It has long been thought that a house becomes a home when we make it reflect who we are, when we personalise it, when we fill it with objects we treasure. And all of that remains true, but it no longer needs to be just the objects we put in our home that personalises it. Like the music that gently fills the background of your favourite restaurant, Aeotec’s Micro Switches create the perfect ambiance for your home, and then some. They also give you the perfect control and the perfect, intelligent automation. 
+
+Across three different Micro controllers, each one letting you perfect everything from your home’s lights to its appliances and to its motorised doors and curtains, you’ll find that the same magic has been built right into the tiny body of each switch.</MetaDataItem>
+    <MetaDataItem id="0012" name="Identifier" type="0003">DSC18103-ZWAU</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-in-wall-switches</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/708/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/767/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/775/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeotec DSC18103 Micro Smart Switch (2nd Edition)
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584524
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="Report type" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="1" label="Report type" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
 	Defines the contents of Multilevel Sensor Report after Multilevel Sensor Get received.
       </Help>
-      <Item label="Power" value="0" />
-      <Item label="Voltage" value="1" />
+      <Item label="Power" value="0"/>
+      <Item label="Voltage" value="1"/>
     </Value>
-    <Value type="short" index="2" genre="config" label="Blinking behavior" units="" min="0" max="65535" write_only="true" value="0">
+    <Value genre="config" index="2" label="Blinking behavior" max="65535" min="0" type="short" units="" value="0" write_only="true">
       <Help>
 	This is actually a double byte value. The LSB defines the total time the device needs to blink in seconds. The MSB defines the on/off interval of the blink in tenths of seconds.
       </Help>
     </Value>
-    <Value type="list" index="80" genre="config" label="Notification status" units="" size="1" value="0">
+    <Value genre="config" index="80" label="Notification status" size="1" type="list" units="" value="0">
       <Help>
 	Enables automatic notifications to associated devices whenever there is a state change.
       </Help>
-      <Item label="None" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
+      <Item label="None" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
     </Value>
-    <Value type="bool" index="90" genre="config" label="Enable Wattage Reports" units="" value="0">
+    <Value genre="config" index="90" label="Enable Wattage Reports" type="bool" units="" value="0">
       <Help>
 	Enable/disable Wattage threshold and percent.
       </Help>
     </Value>
-    <Value type="short" index="91" genre="config" label="Wattage threshold" units="watts" min="0" max="32000" value="50">
+    <Value genre="config" index="91" label="Wattage threshold" max="32000" min="0" type="short" units="watts" value="50">
       <Help>
 	The minimum change in wattage for a report to be sent.
       </Help>
     </Value>
-    <Value type="byte" index="92" genre="config" label="Wattage threshold percent" units="%" min="0" max="99" value="10">
+    <Value genre="config" index="92" label="Wattage threshold percent" max="99" min="0" type="byte" units="%" value="10">
       <Help>
 	Minimum change in percent of wattage to send a report.
       </Help>
     </Value>
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" value="0" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" value="0" write_only="true">
       <Help>
 	Set report types for groups 1, 2 and 3 to default. Reverts to 0
 	after set.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type G1" units="" value="8">
+    <Value genre="config" index="101" label="Report type G1" type="int" units="" value="8">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -69,7 +85,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584524
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type G2" units="" value="0">
+    <Value genre="config" index="102" label="Report type G2" type="int" units="" value="0">
       <Help>
 	Defines the type of report sent for reporting group 2. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -91,7 +107,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584524
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type G3" units="" value="0">
+    <Value genre="config" index="103" label="Report type G3" type="int" units="" value="0">
       <Help>
 	Defines the type of report sent for reporting group 3. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -113,43 +129,41 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584524
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Default Group Time" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Default Group Time" type="button" units="" value="0" write_only="true">
       <Help>
 	Set time interval for sending reports for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Send interval G1" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="111" label="Send interval G1" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 1 is sent.
       </Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Send interval G2" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="112" label="Send interval G2" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 2 is sent.
       </Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Send interval G3" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="113" label="Send interval G3" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 3 is sent.
       </Help>
     </Value>
-    <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>
 	Device tag.
       </Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true" value="0">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" value="0" write_only="true">
       <Help>
 	Reset to the default configuration.
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsc19103.xml b/Config/aeotec/dsc19103.xml
index bf65350411..4718ddbdbd 100644
--- a/Config/aeotec/dsc19103.xml
+++ b/Config/aeotec/dsc19103.xml
@@ -1,25 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0013:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsc19103.png</MetaDataItem>
+    <MetaDataItem id="0013" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/774/</MetaDataItem>
+    <MetaDataItem name="Name">Micro Smart Energy Illuminator G2</MetaDataItem>
+    <MetaDataItem id="0013" name="FrequencyName" type="0003">U.S. / Canada / Mexico / CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <MetaDataItem name="Description">With so many new-generation, energy-saving lights now available for your home, dimming lights isn’t as straightforward as it used to be. There’s no one type of light any more. Aeotec’s plug-in Smart Energy Illuminator is, however, compatible with as many dimmable lights as possible. 
+
+Our Smart Energy Illuminator has been designed to work out of the box with halogen lamp, sodium and tungsten lights. It’s also capable of being plugged in to other types of lights that work by reducing the amount of electricity being passed to their transformer. This includes select LED lights.</MetaDataItem>
+    <MetaDataItem id="0013" name="Identifier" type="0003">DSC19103-ZWAU</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-in-wall-switches</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/707/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/766/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/774/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeotec DSC19103 Micro Smart Dimmer (2nd Edition) 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584517
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="short" index="2" genre="config" label="Blinking behavior" units="" min="0" max="65535" write_only="true" value="0">
+    <Value genre="config" index="2" label="Blinking behavior" max="65535" min="0" type="short" units="" value="0" write_only="true">
       <Help>
 	This is actually a double byte value. The LSB defines the total time the device needs to blink in seconds. The MSB defines the on/off interval of the blink in tenths of seconds.
       </Help>
     </Value>
-    <Value type="list" index="3" genre="config" label="Current Overload Protection" size="1" value="0">
+    <Value genre="config" index="3" label="Current Overload Protection" size="1" type="list" value="0">
       <Help>
       Current Overload Protection. Load will be closed when 3
       the Current more than 2.7A and the time more than 2
       minutes
       </Help>
-      <Item label="Disable" value="0" />
-      <Item label="Enable" value="1" />
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
     </Value>
     <!-- This is only present in Firmware 1.20
     <Value type="list" index="13" genre="config" label="Enable CRC16 Encapsulation" size="1" value="0">
@@ -27,36 +42,36 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584517
       <Item label="Enable" value="1" />
     </Value>
     -->
-    <Value type="list" index="80" genre="config" label="Notification status" units="" size="1" value="0">
+    <Value genre="config" index="80" label="Notification status" size="1" type="list" units="" value="0">
       <Help>
 	Enables automatic notifications to associated devices whenever there is a state change.
       </Help>
-      <Item label="None" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
+      <Item label="None" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
     </Value>
-    <Value type="bool" index="90" genre="config" label="Enable Wattage Reports" units="" value="0">
+    <Value genre="config" index="90" label="Enable Wattage Reports" type="bool" units="" value="0">
       <Help>
 	Enable/disable Wattage threshold and percent.
       </Help>
     </Value>
-    <Value type="short" index="91" genre="config" label="Wattage threshold" units="watts" min="0" max="32000" value="50">
+    <Value genre="config" index="91" label="Wattage threshold" max="32000" min="0" type="short" units="watts" value="50">
       <Help>
 	The minimum change in wattage for a report to be sent.
       </Help>
     </Value>
-    <Value type="byte" index="92" genre="config" label="Wattage threshold percent" units="%" min="0" max="99" value="10">
+    <Value genre="config" index="92" label="Wattage threshold percent" max="99" min="0" type="byte" units="%" value="10">
       <Help>
 	Minimum change in percent of wattage to send a report.
       </Help>
     </Value>
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" value="0" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" value="0" write_only="true">
       <Help>
 	Set report types for groups 1, 2 and 3 to default. Reverts to 0
 	after set.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type G1" units="" value="8">
+    <Value genre="config" index="101" label="Report type G1" type="int" units="" value="8">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -78,7 +93,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584517
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type G2" units="" value="0">
+    <Value genre="config" index="102" label="Report type G2" type="int" units="" value="0">
       <Help>
 	Defines the type of report sent for reporting group 2. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -100,7 +115,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584517
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type G3" units="" value="0">
+    <Value genre="config" index="103" label="Report type G3" type="int" units="" value="0">
       <Help>
 	Defines the type of report sent for reporting group 3. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -122,32 +137,32 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584517
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Default Group Time" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Default Group Time" type="button" units="" value="0" write_only="true">
       <Help>
 	Set time interval for sending reports for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Send interval G1" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="111" label="Send interval G1" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 1 is sent.
       </Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Send interval G2" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="112" label="Send interval G2" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 2 is sent.
       </Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Send interval G3" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="113" label="Send interval G3" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 3 is sent.
       </Help>
     </Value>
-    <Value type="list" index="120" genre="config" label="External Button Mode" size="1" value="255">
+    <Value genre="config" index="120" label="External Button Mode" size="1" type="list" value="255">
       <Help>Turn external button mode</Help>
-      <Item label="Momentary Button" value="0" />
-      <Item label="2 State Switch" value="1" />
-      <Item label="3 way Switch" value="2" />
-      <Item label="Unidentified Mode" value="255" />
+      <Item label="Momentary Button" value="0"/>
+      <Item label="2 State Switch" value="1"/>
+      <Item label="3 way Switch" value="2"/>
+      <Item label="Unidentified Mode" value="255"/>
     </Value>
     <!-- This is only present in Firmware 1.20
     <Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
@@ -156,24 +171,22 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584517
       <Item label="Lock" value="1"/>
     </Value>
     -->
-    <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>
 	Device tag.
       </Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true" value="0">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" value="0" write_only="true">
       <Help>
 	Reset to the default configuration.
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="LifeLine"/>
-      <Group index="2" max_associations="5" label="Reports" auto="true" />
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group auto="true" index="2" label="Reports" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsc24.xml b/Config/aeotec/dsc24.xml
index 2829b9b7ca..6f9477a98d 100644
--- a/Config/aeotec/dsc24.xml
+++ b/Config/aeotec/dsc24.xml
@@ -1,13 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0018:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsc24.png</MetaDataItem>
+    <MetaDataItem id="0018" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/778/</MetaDataItem>
+    <MetaDataItem name="Description">The Aeotec Smart Energy Switch is a low-cost Z-Wave appliance switch which can report immediate wattage energy usage or kWh energy usage over a period of time. It can also be controlled by other Z-Wave devices to turn on/off to save electricity when appropriate. 
+
+With an unobtrusive small form factor, the Aeon Labs Smart Energy Switch will not block other nearby AC outlets. It is available in matte white.</MetaDataItem>
+    <MetaDataItem id="0018" name="Identifier" type="0003">DSC24-ZWAU</MetaDataItem>
+    <MetaDataItem id="0018" name="FrequencyName" type="0003">U.S. / Canada / Mexico / CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-plug-in-switch</MetaDataItem>
+    <MetaDataItem name="Name">Smart Energy Switch G2</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/712/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/770/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/778/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeotec DSC24 Smart Switch (2nd Edition) 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584528
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>  
   <Protocol refreshonnodeinfoframe="false"/>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="short" index="2" genre="config" label="Blinking behavior" units="" min="257" max="65535" size="2" value="3850">
+    <Value genre="config" index="2" label="Blinking behavior" max="65535" min="257" size="2" type="short" units="" value="3850">
       <Help>
       Configuration Value 1: 1-255
       Configuration Value 1  is to Specify the time that Smart Switch need blink, The unit is Second;
@@ -15,40 +31,40 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584528
       Configuration Value 2  is to Specify the Cycle of on/off, the unit of it is 0.1 second.
       </Help>
     </Value>
-    <Value type="list" index="3" genre="config" label="Current Overload Protection" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="3" label="Current Overload Protection" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Load will be closed when the Current overruns (EU 16.2A) for more than 2 minutes</Help>
       <Item label="Deactivate Overload Protection (Default)" value="0"/>
       <Item label="Active Overload Protection" value="1"/>
     </Value>
-    <Value type="list" index="20" genre="config" label="Output Load Status" units="" min="0" max="2" size="1" value="0">
+    <Value genre="config" index="20" label="Output Load Status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Configure the output load status after re-power on.</Help>
       <Item label="Last status (Default)" value="0"/>
       <Item label="Always on" value="1"/>
       <Item label="Always off" value="2"/>
-    </Value>    
-    <Value type="list" index="80" genre="config" label="Notification status" units="" min="0" max="2" size="1" value="0">
+    </Value>
+    <Value genre="config" index="80" label="Notification status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Defines the automated status notification of an associated device when status changes</Help>
-      <Item label="Nothing" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
-    </Value>    
-    <Value type="bool" index="90" genre="config" label="Enables/disables parameter 91/92" units="" value="0">
+      <Item label="Nothing" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
+    </Value>
+    <Value genre="config" index="90" label="Enables/disables parameter 91/92" type="bool" units="" value="0">
       <Help>
 	Enable/disable Wattage threshold and percent.
       </Help>
     </Value>
-    <Value type="short" index="91" genre="config" label="Minimum Change to send Report (Watt)" units="watts" min="0" max="32000" size="2" value="25">
+    <Value genre="config" index="91" label="Minimum Change to send Report (Watt)" max="32000" min="0" size="2" type="short" units="watts" value="25">
       <Help>The value represents the minimum change in wattage for a Report to be sent (default 25 W)</Help>
     </Value>
-    <Value type="byte" index="92" genre="config" label="Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="92" label="Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>The value represents the minimum percentage change in wattage for a Report to be sent (Default 5)</Help>
     </Value>
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" write_only="true">
       <Help>
 	Set report types for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type sent in Reporting Group 1" units="" value="4">
+    <Value genre="config" index="101" label="Report type sent in Reporting Group 1" type="int" units="" value="4">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -70,7 +86,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584528
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type sent in Reporting Group 2" units="" value="8">
+    <Value genre="config" index="102" label="Report type sent in Reporting Group 2" type="int" units="" value="8">
       <Help>
 	Defines the type of report sent for reporting group 2. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -92,7 +108,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584528
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type sent in Reporting Group 3" units="" value="0">
+    <Value genre="config" index="103" label="Report type sent in Reporting Group 3" type="int" units="" value="0">
       <Help>
 	Defines the type of report sent for reporting group 3. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -114,54 +130,52 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584528
 	Multilevel Sensor Report Command(wattage) automatically.
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Set 111-113 to default" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Set 111-113 to default" type="button" units="" value="0" write_only="true">
       <Help>
 	Set time interval for sending reports for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Send Interval for Reporting Group 1" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="111" label="Send Interval for Reporting Group 1" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 1 is sent.
       </Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Send Interval for Reporting Group 2" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="112" label="Send Interval for Reporting Group 2" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 2 is sent.
       </Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Send Interval for Reporting Group 3" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="113" label="Send Interval for Reporting Group 3" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 3 is sent.
       </Help>
     </Value>
-    <Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Partner ID</Help>
       <Item label="Aeon Labs Standard (Default)" value="0"/>
       <Item label="AT&amp;T" value="1"/>
     </Value>
-    <Value type="list" index="252" genre="config" label="Configuration Locked" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="252" label="Configuration Locked" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable/disable Configuration Locked</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>
 	Device tag.
       </Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" write_only="true">
       <Help>
 	Reset to the default configuration.
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="LifeLine"/>
-      <Group index="2" max_associations="5" label="Retransmit Switch CC" />
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Retransmit Switch CC" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsc26103.xml b/Config/aeotec/dsc26103.xml
index 0272eeb2a3..671eccb6de 100644
--- a/Config/aeotec/dsc26103.xml
+++ b/Config/aeotec/dsc26103.xml
@@ -1,53 +1,66 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Aeotec DSC26103 Micro Switch (2nd Edition)
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584525
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+--><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:001A:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsc26103.png</MetaDataItem>
+    <MetaDataItem id="001A" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/776/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-in-wall-switches</MetaDataItem>
+    <MetaDataItem id="001A" name="FrequencyName" type="0003">U.S. / Canada / Mexico / CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <MetaDataItem name="Description">It has long been thought that a house becomes a home when we make it reflect who we are, when we personalise it, when we fill it with objects we treasure. And all of that remains true, but it no longer needs to be just the objects we put in our home that personalises it. Like the music that gently fills the background of your favourite restaurant, Aeotec’s Micro Switches create the perfect ambiance for your home, and then some. They also give you the perfect control and the perfect, intelligent automation. 
+
+Across three different Micro controllers, each one letting you perfect everything from your home’s lights to its appliances and to its motorised doors and curtains, you’ll find that the same magic has been built right into the tiny body of each switch.</MetaDataItem>
+    <MetaDataItem name="Name">Micro Switch G2</MetaDataItem>
+    <MetaDataItem id="001A" name="Identifier" type="0003">DSC26103-ZWAU</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/709/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/768/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/776/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
-  <CommandClass id="112">    
-    <Value type="short" index="2" genre="config" label="Blinking behavior" units="" min="0" max="65535" write_only="true" value="0">
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="Blinking behavior" max="65535" min="0" type="short" units="" value="0" write_only="true">
       <Help>
 	This is actually a double byte value. The LSB defines the total time the device needs to blink in seconds. The MSB defines the on/off interval of the blink in tenths of seconds.
       </Help>
     </Value>
-    <Value type="list" index="80" genre="config" label="Notification status" units="" size="1" value="0">
+    <Value genre="config" index="80" label="Notification status" size="1" type="list" units="" value="0">
       <Help>Enables automatic notifications to associated devices whenever there is a state change.</Help>
-      <Item label="None" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
-    </Value>	
-	<Value type="list" index="120" genre="config" label="Turn external button mode" units="" size="1" value="255">
+      <Item label="None" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
+    </Value>
+    <Value genre="config" index="120" label="Turn external button mode" size="1" type="list" units="" value="255">
       <Help>Turn external button mode</Help>
-      <Item label="Momentary button" value="0" />
-      <Item label="2 state switch" value="1" />
-      <Item label="3 way switch" value="2" />
-	  <Item label="Unidentified" value="255" />
+      <Item label="Momentary button" value="0"/>
+      <Item label="2 state switch" value="1"/>
+      <Item label="3 way switch" value="2"/>
+      <Item label="Unidentified" value="255"/>
     </Value>
-	<Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Partner ID</Help>
       <Item label="Aeon Labs Standard (Default)" value="0"/>
       <Item label="AT&amp;T" value="1"/>
     </Value>
-    <Value type="list" index="252" genre="config" label="Configuration Locked" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="252" label="Configuration Locked" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable/disable Configuration Locked</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>Device tag.</Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true" value="0">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" value="0" write_only="true">
       <Help>Reset to the default configuration.</Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="Lifeline" />
-	  <Group index="2" max_associations="5" label="Retransmit Switch CC" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Retransmit Switch CC" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsc27103.xml b/Config/aeotec/dsc27103.xml
index 394dd0363f..03f00be440 100644
--- a/Config/aeotec/dsc27103.xml
+++ b/Config/aeotec/dsc27103.xml
@@ -1,57 +1,70 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 Aeotec DSC27103 Micro Dimmer (2nd Edition)
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584518
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+--><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:001B:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsc27103.png</MetaDataItem>
+    <MetaDataItem id="001B" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/773/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://aeotec.com/z-wave-in-wall-switches</MetaDataItem>
+    <MetaDataItem name="Name">Micro Illuminator G2</MetaDataItem>
+    <MetaDataItem id="001B" name="Identifier" type="0003">DSC27103-ZWAU</MetaDataItem>
+    <MetaDataItem name="Description">It has long been thought that a house becomes a home when we make it reflect who we are, when we personalise it, when we fill it with objects we treasure. And all of that remains true, but it no longer needs to be just the objects we put in our home that personalises it. Like the music that gently fills the background of your favourite restaurant, Aeotec’s Micro Switches create the perfect ambiance for your home, and then some. They also give you the perfect control and the perfect, intelligent automation. 
+
+Across three different Micro controllers, each one letting you perfect everything from your home’s lights to its appliances and to its motorised doors and curtains, you’ll find that the same magic has been built right into the tiny body of each switch.</MetaDataItem>
+    <MetaDataItem id="001B" name="FrequencyName" type="0003">U.S. / Canada / Mexico / CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/706/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/765/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/773/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
-  <CommandClass id="112">    
-	<Value type="short" index="2" genre="config" label="Make SEI blink" size="2" min="0" max="65535" value="0">
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="Make SEI blink" max="65535" min="0" size="2" type="short" value="0">
       <Help>
 	  Configuration Value 1 is to Specify the time that SEI need blink (0-255), the unit is second;
 	  Configuration Value 2 is to Specify the Cycle of on/off (0-255), the unit of it is 0.1 second.</Help>
-    </Value>    
-	<Value type="list" index="13" genre="config" label="CRC16 encapsulation" units="" min="0" max="1" size="1" value="0">
+    </Value>
+    <Value genre="config" index="13" label="CRC16 encapsulation" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable/Disable CRC16 encapsulation</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" index="80" genre="config" label="Notification status" units="" min="0" max="2" size="1" value="0">
+    <Value genre="config" index="80" label="Notification status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Defines the automated status notification of an associated device when status changes</Help>
-      <Item label="Nothing" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
-    </Value>       
-	<Value type="list" index="120" genre="config" label="Turn external button" units="" min="0" max="255" size="1" value="255">
+      <Item label="Nothing" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
+    </Value>
+    <Value genre="config" index="120" label="Turn external button" max="255" min="0" size="1" type="list" units="" value="255">
       <Help>Turn external button mode</Help>
-      <Item label="Momentary button" value="0" />
-      <Item label="2 state switch" value="1" />
-	  <Item label="3 way switch " value="2" />
-	  <Item label="Unidentified" value="255" />
+      <Item label="Momentary button" value="0"/>
+      <Item label="2 state switch" value="1"/>
+      <Item label="3 way switch " value="2"/>
+      <Item label="Unidentified" value="255"/>
     </Value>
-    <Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Partner ID</Help>
       <Item label="Aeon Labs Standard (Default)" value="0"/>
       <Item label="AT&amp;T" value="1"/>
     </Value>
-    <Value type="list" index="252" genre="config" label="Configuration Locked" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="252" label="Configuration Locked" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable/disable Configuration Locked</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-	<Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>Device tag.</Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" write_only="true">
       <Help>Reset to the default configuration.</Help>
     </Value>
   </CommandClass>
-
-   <!-- Association Groups -->
+  <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/dsc35103.xml b/Config/aeotec/dsc35103.xml
index 4d349e5a5a..fb785555c1 100644
--- a/Config/aeotec/dsc35103.xml
+++ b/Config/aeotec/dsc35103.xml
@@ -3,7 +3,7 @@
 Aeotec DSC35103 Micro Double Switch 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584523
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>  
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value type="short" index="2" genre="config" label="Blinking behavior" units="" min="0" max="65535" write_only="true" value="0">
diff --git a/Config/aeotec/dsd37.xml b/Config/aeotec/dsd37.xml
index 2301e787a2..7c068dbed2 100644
--- a/Config/aeotec/dsd37.xml
+++ b/Config/aeotec/dsd37.xml
@@ -1,27 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0025:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/dsd37.png</MetaDataItem>
+    <MetaDataItem id="0025" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1017/</MetaDataItem>
+    <MetaDataItem id="0025" name="Identifier" type="0004">DSD37-ZWAU</MetaDataItem>
+    <MetaDataItem id="0025" name="FrequencyName" type="0004">U.S. / Canada / Mexico / CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <MetaDataItem name="Name">Aeon Labs Range Extender DSD37-ZWAU</MetaDataItem>
+    <MetaDataItem name="Description">Range Extender / Repeater</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/752/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1004/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1017/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 Aeotec DSD37-ZWUS Repeater 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584515
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
     <!-- Configuration -->
-    <CommandClass id="112">
-		<Value type="list" index="200" genre="config" label="Partner ID" size="1" max="1" min="0" value="0">
-			<Help>Partner ID</Help>
-			<Item value="0" label="Aeon Labs Standard (Default)"/>
-			<Item value="1" label="Others"/>
-		</Value>
-        <Value type="short" index="254" genre="config" label="Device Tag" min="0" max="255" value="0">
-			<Help>Device Tag</Help>
-		</Value>
-		<Value type="button" index="255" genre="config" label="Reset configuration settings to factory defaults" write_only="true" value="0" >
-			<Help>Reset to factory defaults.</Help>
-		</Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-      <Associations num_groups="1">
-        <Group index="1" max_associations="5" label="LifeLine"/>      
-      </Associations>
-    </CommandClass>    
+  <CommandClass id="112">
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" value="0">
+      <Help>Partner ID</Help>
+      <Item label="Aeon Labs Standard (Default)" value="0"/>
+      <Item label="Others" value="1"/>
+    </Value>
+    <Value genre="config" index="254" label="Device Tag" max="255" min="0" type="short" value="0">
+      <Help>Device Tag</Help>
+    </Value>
+    <Value genre="config" index="255" label="Reset configuration settings to factory defaults" type="button" value="0" write_only="true">
+      <Help>Reset to factory defaults.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw056.xml b/Config/aeotec/zw056.xml
index de60edf030..6e76b333e7 100644
--- a/Config/aeotec/zw056.xml
+++ b/Config/aeotec/zw056.xml
@@ -1,80 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Aeotec ZW056 Doorbell Gen5
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584693
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="byte" index="2" genre="config" label="doorbell ringtone repetitions" units="" min="1" max="255" value="2">
-            <Help>
+--><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0038:0104</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw056.png</MetaDataItem>
+    <MetaDataItem id="0038" name="ZWProductPage" type="0104">https://products.z-wavealliance.org/products/1307/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">N/A</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Action button that you can find on the product's housing for 20 seconds and then release. This procedure should only be used when the primary controller is missing or inoperable.</MetaDataItem>
+    <MetaDataItem name="Name">Doorbell Gen5</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem name="Description">Aeon Labs Doorbell supports playing MP3 music files with a press of this doorbell. It has a 128MB flash memory that can store up to 800 ringtones. The volume can be adjusted manually via short press on the Volume Button, also you can switch the doorbell sound to the next via long press on the Volume Button. You may change/update your doorbell ringtone at any point in time you want by connecting your Doorbell to your PC to update the sound track on your Doorbell’s flash memory.
+There is a small Wireless Button, which can trigger the doorbell on the other side of the wall to play the selected doorbell music when pressed.
+It also act as a repeater that forward Z-Wave command messages to destination nodes if the originating controller is out of range from the destination node.
+By taking advantage of the Z-Wave mesh network, commands can be routed to their destination via intermediary “listening” Z-Wave products. Products that are Z-Wave certified can be used and communicate with other Z-Wave certified devices.
+Also a tool that can be programmed, scheduled, controlled and communicated with from anywhere in the world.</MetaDataItem>
+    <MetaDataItem id="0038" name="Identifier" type="0104">ZW056-A</MetaDataItem>
+    <MetaDataItem id="0038" name="FrequencyName" type="0104">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1307/Doorbell manual(20150604).pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1307/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="doorbell ringtone repetitions" max="255" min="1" type="byte" units="" value="2">
+      <Help>
                 Set the repetitions for playing doorbell ringtone.
                 Value=1 to 255, the range of repetition is 1 to 100.
                 Note: If the time of playing doorbell ringtone is more than 20s,
                 the volume of ringtone will reduce to silence no matter how
                 many repetitions of doorbell ringtone are set.
             </Help>
-        </Value>
-        <Value type="byte" index="5" genre="config" label="Default Doorbell Ringtone" units="" min="1" max="100" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="5" label="Default Doorbell Ringtone" max="100" min="1" type="byte" units="" value="1">
+      <Help>
                 Set the default doorbell ringtone.
                 Value=1-100, Specify the ringtone as default.
             </Help>
-        </Value>
-        <Value type="byte" index="6" genre="user" label="Play Ringtone" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="user" index="6" label="Play Ringtone" max="255" min="0" type="byte" units="" value="0" write_only="true">
+      <Help>
                 Select a ringtone to play.
                 Value=0, stop playing.
                 Value=1-100, play the specified ringtone.
                 Value=255, play the default ringtone.
                 Value=other, ignore.
             </Help>
-        </Value>
-        <Value type="list" index="7" genre="user" label="Control" units="" value="2" size="1">
-            <Help>Playback Control</Help>
-            <Item label="Play" value="1"/>
-            <Item label="Stop" value="2"/>
-            <Item label="Pause" value="3"/>
-            <Item label="Next" value="4"/>
-            <Item label="Previous" value="5"/>
-        </Value>
-        <Value type="byte" index="8" genre="config" label="Volume" units="" min="0" max="10" value="10">
-            <Help>Set the volume of ringtone</Help>
-        </Value>
-        <Value type="list" index="10" genre="config" label="Swap Buttons" units="" min="0" max="1" size="1" value="0">
-            <Help>
+    </Value>
+    <Value genre="user" index="7" label="Control" size="1" type="list" units="" value="2">
+      <Help>Playback Control</Help>
+      <Item label="Play" value="1"/>
+      <Item label="Stop" value="2"/>
+      <Item label="Pause" value="3"/>
+      <Item label="Next" value="4"/>
+      <Item label="Previous" value="5"/>
+    </Value>
+    <Value genre="config" index="8" label="Volume" max="10" min="0" type="byte" units="" value="10">
+      <Help>Set the volume of ringtone</Help>
+    </Value>
+    <Value genre="config" index="10" label="Swap Buttons" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
                 Define functions of "Button -" and "Button+".
                 Button - is previous, Button+ is next.
             </Help>
-            <Item label="Standard" value="0"/>
-            <Item label="Reversed" value="1"/>
-        </Value>
-        <Value type="list" index="11" genre="config" label="Button Short/Long Press Function" units="" min="0" max="1" size="1" value="0">
-            <Help>
+      <Item label="Standard" value="0"/>
+      <Item label="Reversed" value="1"/>
+    </Value>
+    <Value genre="config" index="11" label="Button Short/Long Press Function" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
                 Define functions of "Button -" and "Button+" when short
                 pressing and long pressing it.
             </Help>
-            <Item label="Short Press - Volume, Long Press - RingTone" value="0"/>
-            <Item label="Short Press - RingTone, Long Press - Volume" value="1"/>
-        </Value>
-        <Value type="list" index="42" genre="config" label="Wireless Button Status" units="" size="1" value="0" read_only="true">
-            <Help>Get Wireless Button Battery Status</Help>
-            <Item label="Normal Battery Level" value="0"/>
-            <Item label="Low Battery Level" value="255"/>
-        </Value>
-        <Value type="list" index="80" genre="config" label="Notification status" units="" min="0" max="2" size="1" value="2">
-            <Help>Defines the automated status notification of an associated device when status changes</Help>
-            <Item label="Nothing" value="0"/>
-            <Item label="Hail" value="1"/>
-            <Item label="Basic" value="2"/>
-        </Value>
-        <Value type="list" index="81" genre="config" label="Low Battery Notification status" units="" min="0" max="1" size="1" value="1">
-            <Help>Defines the automated status notification of an associated device when the wireless button battery level changes</Help>
-            <Item label="Nothing" value="0"/>
-            <Item label="Configuration Paramater 42" value="1"/>
-        </Value>
-        <Value type="list" index="241" genre="config" label="Pair Wireless Button" units="" size="4" value="0">
-            <Help>
+      <Item label="Short Press - Volume, Long Press - RingTone" value="0"/>
+      <Item label="Short Press - RingTone, Long Press - Volume" value="1"/>
+    </Value>
+    <Value genre="config" index="42" label="Wireless Button Status" read_only="true" size="1" type="list" units="" value="0">
+      <Help>Get Wireless Button Battery Status</Help>
+      <Item label="Normal Battery Level" value="0"/>
+      <Item label="Low Battery Level" value="255"/>
+    </Value>
+    <Value genre="config" index="80" label="Notification status" max="2" min="0" size="1" type="list" units="" value="2">
+      <Help>Defines the automated status notification of an associated device when status changes</Help>
+      <Item label="Nothing" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
+    </Value>
+    <Value genre="config" index="81" label="Low Battery Notification status" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Defines the automated status notification of an associated device when the wireless button battery level changes</Help>
+      <Item label="Nothing" value="0"/>
+      <Item label="Configuration Paramater 42" value="1"/>
+    </Value>
+    <Value genre="config" index="241" label="Pair Wireless Button" size="4" type="list" units="" value="0">
+      <Help>
                 Pair the Wireless Button with Doorbell.
                 Value=0x55555555, Start the Wireless Button pairing mode and
                 the blue Led will blink slowly, short press the Wireless Button
@@ -89,27 +108,26 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584693
                 If configuration report value =0xFFFFFFFF, which means the
                 pairing is successful.
             </Help>
-            <Item label="Start Pairing/Paired" value="0xFFFFFFFF"/>
-            <Item label="Not Pairing/Unpaired" value="0"/>
-        </Value>
-        <Value type="list" index="252" genre="config" label="Configuration Locked" units="" min="0" max="1" size="1" value="0">
-            <Help>Enable/disable Configuration Locked</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-            <Help>Reset to factory defaults</Help>
-            <Item label="Reset to factory default setting" value="0"/>
-            <Item label="Normal" value="1"/>
-            <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="Transmit"/>
-        </Associations>
-    </CommandClass>
+      <Item label="Start Pairing/Paired" value="0xFFFFFFFF"/>
+      <Item label="Not Pairing/Unpaired" value="0"/>
+    </Value>
+    <Value genre="config" index="252" label="Configuration Locked" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Enable/disable Configuration Locked</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Transmit" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/zw062.xml b/Config/aeotec/zw062.xml
index ab6c596c49..a794e5c959 100644
--- a/Config/aeotec/zw062.xml
+++ b/Config/aeotec/zw062.xml
@@ -1,22 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:003E:0103</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw062.png</MetaDataItem>
+    <MetaDataItem id="003E" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/1445/</MetaDataItem>
+    <MetaDataItem name="Name">Garage Door Controller Gen5</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Z-Wave button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Z-Wave button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Z-Wave button that you can find on the product's housing for 20 seconds and then release. This procedure should only be used when the primary controller is missing or inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">Aeon Labs Garage Door Controller is a smart and wireless Garage Door Control system, you can control the garage door to open, close, or stop moving via wireless signal on your gateway client or phone application.
+The Garage Door Controller allows you to configure different alarm sounds to indicate the door’s action. Each action alarm sound can be customized. To change or update new alarm sounds for the Garage Door Controller, connect the Garage Door Controller to your PC host with a USB cable and download your sound files to the flash memory (128 MB) of the Garage Door Controller.
+It can be included and operated in any Z-Wave network with other Z-Wave certified devices from other manufacturers and/or other applications. All non-battery operated nodes within the network will act as repeaters regardless of vendor to increase reliability of the network. 
+It is also a security Z-Wave device and supports the Over The Air (OTA) feature for the product’s firmware upgrade. </MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1497/Aeon Labs Garage Door Controller Gen5 manual.pdf</MetaDataItem>
+    <MetaDataItem id="003E" name="FrequencyName" type="0103">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="003E" name="Identifier" type="0103">ZW062-A</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1445/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1496/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1497/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="003E" name="ZWProductPage" type="0203">https://products.z-wavealliance.org/products/1496/</MetaDataItem>
+    <MetaDataItem id="003E" name="Identifier" type="0203">ZW062-B</MetaDataItem>
+    <MetaDataItem id="003E" name="FrequencyName" type="0203">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="003E" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1497/</MetaDataItem>
+    <MetaDataItem id="003E" name="Identifier" type="0003">ZW062-C</MetaDataItem>
+    <MetaDataItem id="003E" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+  </MetaData>
+  <!-- 
 Aeotec Garage ZW062 Door Controller
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584687
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
 	<!-- the Device Doesn't support Get for Alarm Class -->
-	<CommandClass id="113" getsupported="false"/>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="32" label="Startup ringtone" min="0" max="100" value="1" size="1">
-			<Help>
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="32" instance="1" label="Startup ringtone" max="100" min="0" size="1" type="byte" value="1">
+      <Help>
 			Configure the default startup ringtone.
 			Value = 0, disable the Startup ringtone.
 			Value = Others, Enable and select a startup ringtone for the Garage Door Controller
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="34" label="Sensor Calibration" min="0" max="1" value="0" size="1" write_only="true">
-			<Help>
+    </Value>
+    <Value genre="config" index="34" instance="1" label="Sensor Calibration" max="1" min="0" size="1" type="list" value="0" write_only="true">
+      <Help>
 			Calibration Steps:
 			1. Let the garage door move to full close position.
 			2. Send this parameter (0x22) with value=1 to Garage Door Controller.
@@ -25,19 +55,19 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584687
 			After the step 4 is completed, all calibration steps are complete.
 			Note: This process should be implemented when the Garage Door Controller just only has one Sensor is installed on the garage door.
 			</Help>
-			<Item label="Normal" value="0"/>
+      <Item label="Normal" value="0"/>
       <Item label="Do calibration" value="1"/>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="35" label="Timeout of calibration steps" min="0" max="65000" value="30">
-            <Help>Set the timeout of all calibration steps for the Sensor</Help>
-        </Value>
-		<Value type="byte" genre="config" instance="1" index="36" label="Get the numbers of alarm music" size="1" value="5" read_only="true">
-            <Help>
+    </Value>
+    <Value genre="config" index="35" instance="1" label="Timeout of calibration steps" max="65000" min="0" type="short" value="30">
+      <Help>Set the timeout of all calibration steps for the Sensor</Help>
+    </Value>
+    <Value genre="config" index="36" instance="1" label="Get the numbers of alarm music" read_only="true" size="1" type="byte" value="5">
+      <Help>
 				Get the numbers of alarm music. (not support Set CC)
 			</Help>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="37" label="Configure the alarm mode for when the garage door is opening" size="4" value="167905281">
-            <Help>
+    </Value>
+    <Value genre="config" index="37" instance="1" label="Configure the alarm mode for when the garage door is opening" size="4" type="int" value="167905281">
+      <Help>
                 1, Value1: configure the frequency of blinking for the Alarm LEd, there are 10 levels that 1 to10 level, the minimum frequency is level 1 and the max frequency is level 10.
 				2, Value2: configure the alarm sound (there are 4 types sound saved in EEPROM and user also can update it).
 				3, Value3: configure the volume of alarm sound (there are 10 levels, the min volume is 1 level and the max volume is 10 levels).
@@ -48,9 +78,9 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584687
                 + 256 x volume
                 + 1 x alarm_mode
             </Help>
-        </Value>
-		<Value type="int" genre="config" instance="1" index="38" label="Configure the alarm mode when the garage door is closing" size="4" value="134416385">
-            <Help>
+    </Value>
+    <Value genre="config" index="38" instance="1" label="Configure the alarm mode when the garage door is closing" size="4" type="int" value="134416385">
+      <Help>
                 1, Value1: configure the frequency of blinking for the Alarm LED, there are 10 levels that 1 to10 level, the minimum frequency is level 1 and the max frequency is level 10.
 				2, Value2: configure the alarm sound (there are 4 types sound saved in EEPROM and user also can update it).
 				3, Value3: configure the volume of alarm sound (there are 10 levels, the min volume is 1 level and the max volume is 10 levels).
@@ -61,9 +91,9 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584687
                 + 256 x volume
                 + 1 x alarm_mode
             </Help>
-        </Value>
-		<Value type="int" genre="config" instance="1" index="39" label="Configuration alarm mode when the garage door is in unknown state" size="4" value="100927488">
-            <Help>
+    </Value>
+    <Value genre="config" index="39" instance="1" label="Configuration alarm mode when the garage door is in unknown state" size="4" type="int" value="100927488">
+      <Help>
                 1, Value1: configure the frequency of blinking for the Alarm LED, there are 10 levels that 1 to10 level, the minimum frequency is level 1 and the max frequency is level 10.
 				2, Value2: configure the alarm sound (there are 4 types sound saved in EEPROM and user also can update it).
 				3, Value3: configure the volume of alarm sound (there are 10 levels, the min volume is 1 level and the max volume is 10 levels).
@@ -74,9 +104,9 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584687
                 + 256 x volume
                 + 1 x alarm_mode
             </Help>
-        </Value>
-		<Value type="int" genre="config" instance="1" index="40" label="Configure the alarm mode when the garage door is in closed position" size="4" value="33883392">
-            <Help>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Configure the alarm mode when the garage door is in closed position" size="4" type="int" value="33883392">
+      <Help>
                 1, Value1: configure the frequency of blinking for the Alarm LED, there are 10 levels that 1 to10 level, the minimum frequency is level 1 and the max frequency is level 10.
 				2, Value2: configure the alarm sound (there are 4 types sound saved in EEPROM and user also can update it).
 				3, Value3: configure the volume of alarm sound (there are 10 levels, the min volume is 1 level and the max volume is 10 levels).
@@ -87,84 +117,88 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584687
 				+ 256 x volume
 				+ 1 x alarm_mode
             </Help>
-        </Value>
-		<Value type="list" genre="config" index="41" label="Configuration report for the tamper switch State" size="4" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="41" label="Configuration report for the tamper switch State" size="4" type="list" value="0">
+      <Help>
 			Note:
 			1. The Garage Door Controller will send this configuration report to gateway controller or associated nodes automatically if the Sensor is removed.
 			2. You can send the value=0x55555555 of this parameter to controller to relieve the alarm state.
 			</Help>
-			<Item label="Sensor is not removed" value="0"/>
-			<Item label="Sensor is removed" value="15"/>
-            <Item label="Relieve the alarm state" value="1431655765"/>
-		</Value>
-		<Value type="list" genre="config" index="42" label="Configuration report for the battery state of Sensor" size="1" min="0" max="15" value="0">
-			<Help>It will report the battery power state to associated nodes automatically when the battery power is in low battery.</Help>
-			<Item label="Battery power is much more" value="0"/>
-			<Item label="Battery power of Sensor is in low battery" value="15"/>
-		</Value>
-		<Value type="byte" genre="config" index="43" label="Start playing or Stop playing the ringtone" min="0" max="100" value="0" write_only="true">
-			<Help>
+      <Item label="Sensor is not removed" value="0"/>
+      <Item label="Sensor is removed" value="15"/>
+      <Item label="Relieve the alarm state" value="1431655765"/>
+    </Value>
+    <Value genre="config" index="42" label="Configuration report for the battery state of Sensor" max="15" min="0" size="1" type="list" value="0">
+      <Help>It will report the battery power state to associated nodes automatically when the battery power is in low battery.</Help>
+      <Item label="Battery power is much more" value="0"/>
+      <Item label="Battery power of Sensor is in low battery" value="15"/>
+    </Value>
+    <Value genre="config" index="43" label="Start playing or Stop playing the ringtone" max="100" min="0" type="byte" value="0" write_only="true">
+      <Help>
 			Value=0xff, stop playing ringtone.
 			Value=1 to 100, start playing the ringtone that you selected.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="44" label="Test the volume of the current ringtone" size="1" min="1" max="10" value="1" read_only="true">
-            <Help>
+    </Value>
+    <Value genre="config" index="44" instance="1" label="Test the volume of the current ringtone" max="10" min="1" read_only="true" size="1" type="byte" value="1">
+      <Help>
 				Value=1 to value=10, which map to the volume level 1 to level 10
 			</Help>
-        </Value>
-		<Value type="short" genre="config" instance="1" index="45" label="Get the environment temperature" size="2" min="0" max="500" value="0" read_only="true">
-            <Help>
+    </Value>
+    <Value genre="config" index="45" instance="1" label="Get the environment temperature" max="500" min="0" read_only="true" size="2" type="short" value="0">
+      <Help>
 				The temperature value contains one decimal point.
 				E.g. If the report value=252(0x00FC), the temperature is 25.2.
 				Rang is 0 to 500 (0 to 50.0).
 			</Help>
-        </Value>
-		<Value type="list" genre="config" index="47" label="Define the function of Button- or Button+" size="1" min="0" max="1" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="47" label="Define the function of Button- or Button+" max="1" min="0" size="1" type="list" value="0">
+      <Help>
 			Value=0, short pressing the Button +/- will be used to adjust the volume of sound. Long pressing the Button +/- will be used to switch the sound to the next.
 			Value=1, short pressing the Button +/- will be used to switch the sound to the next. Long pressing the Button +/- will be used to adjust the volume of sound.
 			</Help>
-			<Item label="Volume" value="0"/>
-			<Item label="Sound" value="1"/>
-		</Value>
-		<Value type="list" genre="config" index="80" label="Report type when the state of garage door is changed" size="1" min="0" max="2" value="2">
-			<Help>It will send the Hail CC/configuration report CC when the state of garage door is changed</Help>
-			<Item label="Reserved" value="0"/>
-			<Item label="Hail" value="1"/>
-			<Item label="Barrier operator" value="2"/>
-		</Value>
-		<Value type="list" index="241" genre="config" label="Pair the Sensor with Garage Door Controller" size="4" value="0">
-			<Help>
+      <Item label="Volume" value="0"/>
+      <Item label="Sound" value="1"/>
+    </Value>
+    <Value genre="config" index="80" label="Report type when the state of garage door is changed" max="2" min="0" size="1" type="list" value="2">
+      <Help>It will send the Hail CC/configuration report CC when the state of garage door is changed</Help>
+      <Item label="Reserved" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Barrier operator" value="2"/>
+    </Value>
+    <Value genre="config" index="241" label="Pair the Sensor with Garage Door Controller" size="4" type="list" value="0">
+      <Help>
 			Value=0x55555501, which will trigger to start the pairing of Sensor (installed on the top of the garage door), at this time, the Network LED on the Garage Door Controller will blink slowly and then short press Temper Switch back of the Sensor.
 			If pairing is successful, the Network LED will stop blinking and the Garage Door Controller will send the configuration report with value=0x01FF to primary controller/gateway. Otherwise, repeat the operation.
 			Note:
 			1. If you do not press the Temper Switch when starting the pairing mode, the pairing status will keep for 8 second and then exit the pairing status automatically.
 			2. The Sensor has been paired with the Garage Door Controller after factory.</Help>
-			<Item label="Normal" value="0"/>
-            <Item label="Start the pairing of Sensor" value="1431655681"/>
-            <Item label="Pairing is successful" value="511"/>
-		</Value>
-		<Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
-			<Help>Lock/ unlock all configuration parameters</Help>
-			<Item label="Unlock" value="0"/>
-			<Item label="Lock" value="1"/>
-		</Value>
-		<Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-			<Help>Reset to factory defaults</Help>
-            <Item label="Reset to factory default setting" value="0"/>
-			<Item label="Normal" value="1"/>
-            <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-		</Value>
-	</CommandClass>
-	<!-- Basic set as report-->
-	<CommandClass id="32" setasreport="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="5" label="Lifeline" />
-			<Group index="2" max_associations="5" label="Retransmit Switch CC" />
-		</Associations>
-	</CommandClass>
+      <Item label="Normal" value="0"/>
+      <Item label="Start the pairing of Sensor" value="1431655681"/>
+      <Item label="Pairing is successful" value="511"/>
+    </Value>
+    <Value genre="config" index="252" label="Lock/Unlock Configuration" max="1" min="0" size="1" type="list" value="0">
+      <Help>Lock/ unlock all configuration parameters</Help>
+      <Item label="Unlock" value="0"/>
+      <Item label="Lock" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Retransmit Switch CC" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw074.xml b/Config/aeotec/zw074.xml
index f86542184b..2829cdbe92 100644
--- a/Config/aeotec/zw074.xml
+++ b/Config/aeotec/zw074.xml
@@ -1,107 +1,127 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
-Aeotec ZW074 MultiSensor Gen5
-https://aeotec.freshdesk.com/helpdesk/attachments/6009584696
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="2" genre="config" label="Wake up 10 minutes on Power On" min="0" max="1" value="0" size="1">
-			<Help>Stay awake for 10 minutes after batteries are inserted</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="short" index="3" genre="config" label="On time" units="seconds" min="1" max="15300" value="240">
-			<Help>How long should the device associated to multi sensor keep state On before sending it Off command (if the value is bigger than 255, the value would be rounded to next integer in minutes)</Help>
-		</Value>
-		<Value type="list" index="4" genre="config" label="Enable Motion Sensor" min="0" max="1" value="1" size="1">
-			<Help>Enable Motion Sensor</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled" value="1" /> 			
-		</Value>
-		<Value type="list" index="5" genre="config" label="Command Options" min="1" max="2" value="1" size="1">
-			<Help>Which commands to send when PIR motion sensor triggered
+<!-- Aeon Labs Multi Sensor --><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:004A:0102</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw074.png</MetaDataItem>
+    <MetaDataItem id="004A" name="ZWProductPage" type="0102">https://products.z-wavealliance.org/products/1163/</MetaDataItem>
+    <MetaDataItem name="Description">The  Aeotec  by  Aeon  Labs  MultiSensor  Gen5  looks  like a motion sensor and it  acts like one too.  But it’s also so much more. Installing this 1 piece of Z-Wave technology is  the same as installing 4  pieces of  Z-Wave  technology.  Your home control network will immediately understand motion, temperature, humidity and light readings wherever Multisensor installed. Those intelligent readings will equate to intelligence  automation. And intelligent automation will give you the perfect, smart home.</MetaDataItem>
+    <MetaDataItem id="004A" name="Identifier" type="0102">ZW074-A</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Z-Wave button that you can find in back of the product.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1170/Instructions - MultiSensor Gen5 MCert1.pdf</MetaDataItem>
+    <MetaDataItem name="Name">MultiSensor Gen5</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Z-Wave button that you can find in back of the product for 20 seconds and then release. This procedure should only be used when the primary controller is inoperable.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Z-Wave button that you can find in the back of the product.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press and hold the Z-Wave button for 3 seconds will trigger sending the Wake up notification command. If press the Z-Wave button 3 times, the MultiSensor will wake up for 10 minutes.</MetaDataItem>
+    <MetaDataItem id="004A" name="FrequencyName" type="0102">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1163/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1169/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1170/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="004A" name="ZWProductPage" type="0202">https://products.z-wavealliance.org/products/1169/</MetaDataItem>
+    <MetaDataItem id="004A" name="Identifier" type="0202">ZW074-B</MetaDataItem>
+    <MetaDataItem id="004A" name="FrequencyName" type="0202">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="004A" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1170/</MetaDataItem>
+    <MetaDataItem id="004A" name="Identifier" type="0002">ZW074-C</MetaDataItem>
+    <MetaDataItem id="004A" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="Wake up 10 minutes on Power On" max="1" min="0" size="1" type="list" value="0">
+      <Help>Stay awake for 10 minutes after batteries are inserted</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="On time" max="15300" min="1" type="short" units="seconds" value="240">
+      <Help>How long should the device associated to multi sensor keep state On before sending it Off command (if the value is bigger than 255, the value would be rounded to next integer in minutes)</Help>
+    </Value>
+    <Value genre="config" index="4" label="Enable Motion Sensor" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable Motion Sensor</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Command Options" max="2" min="1" size="1" type="list" value="1">
+      <Help>Which commands to send when PIR motion sensor triggered
 			OZW Ideal Value is Binary Sensor Report</Help>
-			<Item label="Basic Set (default) " value="1" />
-			<Item label="Binary Sensor Report" value="2" />  
-		</Value>
-		<Value type="list" index="40" genre="config" label="Reporting Threshold" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable the selective reporting only when measurements reach a certain threshold or percentage 
+      <Item label="Basic Set (default) " value="1"/>
+      <Item label="Binary Sensor Report" value="2"/>
+    </Value>
+    <Value genre="config" index="40" label="Reporting Threshold" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable the selective reporting only when measurements reach a certain threshold or percentage 
 			set in the threshold settings.  This is used to reduce network
 			traffic.</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled" value="1" /> 			
-		</Value>
-		<Value type="short" index="41" genre="config" label="Temperature Reporting Threshold" units="%" min="0" max="39321" value="256" size="2">
-			<Help>Threshold change in temperature to induce an automatic report.  
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="41" label="Temperature Reporting Threshold" max="39321" min="0" size="2" type="short" units="%" value="256">
+      <Help>Threshold change in temperature to induce an automatic report.  
 			Note: 
 			1. When the unit is Celsius, threshold=Value. 
 			2. When the unit is Fahrenheit, threshold=Value*1.8. The accuracy is 0.1. 
 			3. The high byte is the part of integer, the low byte is the fractional part. 
 			</Help>
-		</Value>
-		<Value type="short" index="42" genre="config" label="Humidity Reporting Threshold" units="%" min="0" max="39321" value="1280" size="2">
-			<Help>Threshold change in humidity to induce an automatic report. 
+    </Value>
+    <Value genre="config" index="42" label="Humidity Reporting Threshold" max="39321" min="0" size="2" type="short" units="%" value="1280">
+      <Help>Threshold change in humidity to induce an automatic report. 
 			Note: 
 			The accuracy is 0.1. 
 			The high byte is the part of integer, the low byte is the fractional part. 
 			</Help>
-		</Value>
-		<Value type="short" index="43" genre="config" label="Luminance Reporting Threshold" units="LUX" min="0" max="65535" value="25600" size="2">
-			<Help>Threshold change in luminance to induce an automatic report. </Help>
-		</Value>
-		<Value type="short" index="44" genre="config" label="Battery Reporting Threshold" units="%" min="0" max="39321" value="1280" size="2">
-			<Help>Threshold change in battery level to induce an  automatic report. 
+    </Value>
+    <Value genre="config" index="43" label="Luminance Reporting Threshold" max="65535" min="0" size="2" type="short" units="LUX" value="25600">
+      <Help>Threshold change in luminance to induce an automatic report. </Help>
+    </Value>
+    <Value genre="config" index="44" label="Battery Reporting Threshold" max="39321" min="0" size="2" type="short" units="%" value="1280">
+      <Help>Threshold change in battery level to induce an  automatic report. 
 			Note: 
 			The accuracy is 0.1. 
 			The high byte is the part of integer, the low byte is the fractional part.  
 			</Help>
-		</Value>
-		<Value type="list" index="46" genre="config" label="Low Temp Alarm" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable to send the alarm report of low temperature(Less than 15 Degress C)
+    </Value>
+    <Value genre="config" index="46" label="Low Temp Alarm" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable to send the alarm report of low temperature(Less than 15 Degress C)
 			</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled" value="1" /> 			
-		</Value>
-		<Value type="int" index="101" genre="config" label="Group 1 Reports" value="255">
-			<Help>Which reports need to send automatically in timing intervals for group 1. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
-		</Value>
-		<Value type="int" index="102" genre="config" label="Group 2 Reports" value="0">
-			<Help>Which reports need to send automatically in timing intervals for group 2. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
-		</Value>
-		<Value type="int" index="103" genre="config" label="Group 3 Reports" value="0">
-			<Help>Which reports need to send automatically in timing intervals for group 3. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
-		</Value>
-		<Value type="int" index="111" genre="config" label="Group 1 Interval" units="seconds" min="1" max="2678400" value="1800">
-			<Help>The interval of sending report group 1. 1 to 2678400 seconds</Help>
-		</Value>
-		<Value type="int" index="112" genre="config" label="Group 2 Interval" units="seconds" min="1" max="2678400" value="1800">
-			<Help>The interval of sending report group 2. 1 to 2678400 seconds</Help>
-		</Value>
-		<Value type="int" index="113" genre="config" label="Group 3 Interval" units="seconds" min="1" max="2678400" value="1800">
-			<Help>The interval of sending report group 3. 1 to 2678400 seconds</Help>
-		</Value>
-		<Value type="list" index="252" genre="config" label="Enable/disable Lock Configuration" units="" min="0" max="1" value="0" size="1">
-			<Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="101" label="Group 1 Reports" type="int" value="255">
+      <Help>Which reports need to send automatically in timing intervals for group 1. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
+    </Value>
+    <Value genre="config" index="102" label="Group 2 Reports" type="int" value="0">
+      <Help>Which reports need to send automatically in timing intervals for group 2. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
+    </Value>
+    <Value genre="config" index="103" label="Group 3 Reports" type="int" value="0">
+      <Help>Which reports need to send automatically in timing intervals for group 3. Bitsets: 0 -> Battery report, 5 -> Temperature, 6 -> Humidity, 7 -> Luminosity</Help>
+    </Value>
+    <Value genre="config" index="111" label="Group 1 Interval" max="2678400" min="1" type="int" units="seconds" value="1800">
+      <Help>The interval of sending report group 1. 1 to 2678400 seconds</Help>
+    </Value>
+    <Value genre="config" index="112" label="Group 2 Interval" max="2678400" min="1" type="int" units="seconds" value="1800">
+      <Help>The interval of sending report group 2. 1 to 2678400 seconds</Help>
+    </Value>
+    <Value genre="config" index="113" label="Group 3 Interval" max="2678400" min="1" type="int" units="seconds" value="1800">
+      <Help>The interval of sending report group 3. 1 to 2678400 seconds</Help>
+    </Value>
+    <Value genre="config" index="252" label="Enable/disable Lock Configuration" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
 				Enable/disable Lock Configuration
 			</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="button" index="255" genre="config" label="Reset to default" write_only="true" value="0" >
-			<Help>Reset to factory defaults.</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- the Device Doesn't support Get for Alarm Class -->
-	<CommandClass id="113" getsupported="false"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="LifeLine" />
-		</Associations>
-	</CommandClass>
-
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset to default" type="button" value="0" write_only="true">
+      <Help>Reset to factory defaults.</Help>
+    </Value>
+  </CommandClass>
+  <!-- the Device Doesn't support Get for Alarm Class -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw075.xml b/Config/aeotec/zw075.xml
index 680eb7239b..df897eb4be 100644
--- a/Config/aeotec/zw075.xml
+++ b/Config/aeotec/zw075.xml
@@ -1,14 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
-Aeotec ZW075 Smart Switch Gen5
-https://aeotec.freshdesk.com/helpdesk/attachments/6009584702 
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-  
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:004B:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw075.png</MetaDataItem>
+    <MetaDataItem id="004B" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1045/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">N/A</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem id="004B" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Smart Switch Gen5</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Action button that you can find on the product's housing for 20 seconds and then release. This procedure should only be used when the primary controller is inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">Aeon Labs Smart Switch Gen5 is a Z-Wave device that can report the wattage energy usage and KWH usage to a Z-Wave Controller (especially a gateway), it can be controlled by other Z-Wave devices to turn on/off loads, it can bear up to 16A current of resistive loads. It also acts as a repeater that forwards Z-Wave command messages to destination nodes if the originating controller is out of range from the destination node.
+By taking advantage of the Z-Wave mesh network, commands can be routed to their destination via intermediary “listening” Z-Wave products. Products that are Z-Wave certified can be used and communicate with other Z-Wave certified devices.
+Also a tool that can be programmed, scheduled, controlled and communicated with from anywhere in the world.
+</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem id="004B" name="Identifier" type="0003">ZW075-C16</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1056/Aeon Labs Smart Switch Gen5_Update 2.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1045/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1053/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1056/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="004B" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/1053/</MetaDataItem>
+    <MetaDataItem id="004B" name="Identifier" type="0103">ZW075-A02</MetaDataItem>
+    <MetaDataItem id="004B" name="FrequencyName" type="0103">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="004B" name="ZWProductPage" type="0203">https://products.z-wavealliance.org/products/1056/</MetaDataItem>
+    <MetaDataItem id="004B" name="FrequencyName" type="0203">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="004B" name="Identifier" type="0203">ZW075-B09</MetaDataItem>
+  </MetaData>
+  <!-- Aeon Labs Smart Switch Gen5 -->
+  <!--Source: http://ozw.my-ho.st/Aeon/Engineering%20Spec%20-%20Aeon%20Labs%20Smart%20Switch%20Gen5_V3.25.pdf-->
   <Protocol refreshonnodeinfoframe="false"/>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="short" index="2" genre="config" label="Blinking behavior" units="" min="257" max="65535" size="2" value="3850">
+    <Value genre="config" index="2" label="Blinking behavior" max="65535" min="257" size="2" type="short" units="" value="3850">
       <Help>
       Configuration Value 1: 1-255
       Configuration Value 1  is to Specify the time that Smart Switch need blink, The unit is Second;
@@ -16,40 +40,40 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584702
       Configuration Value 2  is to Specify the Cycle of on/off, the unit of it is 0.1 second.
       </Help>
     </Value>
-    <Value type="list" index="3" genre="config" label="Current Overload Protection" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="3" label="Current Overload Protection" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Load will be closed when the Current overruns (EU 16.2A) for more than 2 minutes</Help>
       <Item label="Deactivate Overload Protection (Default)" value="0"/>
       <Item label="Active Overload Protection" value="1"/>
     </Value>
-    <Value type="list" index="20" genre="config" label="Output Load Status" units="" min="0" max="2" size="1" value="0">
+    <Value genre="config" index="20" label="Output Load Status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Configure the output load status after re-power on.</Help>
       <Item label="Last status (Default)" value="0"/>
       <Item label="Always on" value="1"/>
       <Item label="Always off" value="2"/>
-    </Value>    
-    <Value type="list" index="80" genre="config" label="Notification status" units="" min="0" max="2" size="1" value="0">
+    </Value>
+    <Value genre="config" index="80" label="Notification status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Defines the automated status notification of an associated device when status changes</Help>
-      <Item label="Nothing" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
+      <Item label="Nothing" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
     </Value>
-    <Value type="list" index="81" genre="config" label="Configure the state of the LED" units="" min="0" max="1" size="1" value="0">
-    	<Item label="The LED will follow the status (on/off) of its load. (Default)" value="0"/>
-    	<Item label="When the state of the Switch changes, the LED will follow the status (on/off) of its load, but the LED will turn off after 5 seconds." value="1"/> 
+    <Value genre="config" index="81" label="Configure the state of the LED" max="1" min="0" size="1" type="list" units="" value="0">
+      <Item label="The LED will follow the status (on/off) of its load. (Default)" value="0"/>
+      <Item label="When the state of the Switch changes, the LED will follow the status (on/off) of its load, but the LED will turn off after 5 seconds." value="1"/>
     </Value>
-    <Value type="bool" index="90" genre="config" label="Enables/disables parameter 91/92" units="" value="0">
+    <Value genre="config" index="90" label="Enables/disables parameter 91/92" type="bool" units="" value="0">
       <Help>Enable/disable Wattage threshold and percent.</Help>
     </Value>
-    <Value type="short" index="91" genre="config" label="Minimum Change to send Report (Watt)" units="watts" min="0" max="32000" size="2" value="25">
+    <Value genre="config" index="91" label="Minimum Change to send Report (Watt)" max="32000" min="0" size="2" type="short" units="watts" value="25">
       <Help>The value represents the minimum change in wattage for a Report to be sent (default 25 W)</Help>
     </Value>
-    <Value type="byte" index="92" genre="config" label="Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="92" label="Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>The value represents the minimum percentage change in wattage for a Report to be sent (Default 5)</Help>
     </Value>
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" write_only="true">
       <Help>Set report types for groups 1, 2 and 3 to default.</Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type sent in Reporting Group 1" units="" value="4">
+    <Value genre="config" index="101" label="Report type sent in Reporting Group 1" type="int" units="" value="4">
       <Help>
           Defines the type of report sent for reporting group 1.
           1 is meter report for voltage.
@@ -66,7 +90,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584702
           bit 0 voltage
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type sent in Reporting Group 2" units="" value="8">
+    <Value genre="config" index="102" label="Report type sent in Reporting Group 2" type="int" units="" value="8">
       <Help>
           Defines the type of report sent for reporting group 2.
           1 is meter report for voltage.
@@ -83,7 +107,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584702
           bit 0 voltage
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type sent in Reporting Group 3" units="" value="0">
+    <Value genre="config" index="103" label="Report type sent in Reporting Group 3" type="int" units="" value="0">
       <Help>
           Defines the type of report sent for reporting group 3.
           1 is meter report for voltage.
@@ -100,42 +124,40 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584702
           bit 0 voltage
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Set 111-113 to default" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Set 111-113 to default" type="button" units="" value="0" write_only="true">
       <Help>Set time interval for sending reports for groups 1, 2 and 3 to default.</Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Send Interval for Reporting Group 1" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="111" label="Send Interval for Reporting Group 1" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>Defines the time interval when the defined report for group 1 is sent.</Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Send Interval for Reporting Group 2" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="112" label="Send Interval for Reporting Group 2" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>Defines the time interval when the defined report for group 2 is sent.</Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Send Interval for Reporting Group 3" units="seconds" min="0" max="65535" value="600">
+    <Value genre="config" index="113" label="Send Interval for Reporting Group 3" max="65535" min="0" type="int" units="seconds" value="600">
       <Help>Defines the time interval when the defined report for group 3 is sent.</Help>
     </Value>
-    <Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Partner ID</Help>
       <Item label="Aeon Labs Standard (Default)" value="0"/>
       <Item label="AT&amp;T" value="1"/>
     </Value>
-    <Value type="list" index="252" genre="config" label="Configuration Locked" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="252" label="Configuration Locked" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable/disable Configuration Locked</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>Device tag.</Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" write_only="true">
       <Help>Reset to the default configuration.</Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="LifeLine" />
-      <Group index="2" max_associations="5" label="Retransmit Switch CC" />
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Retransmit Switch CC" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/zw078.xml b/Config/aeotec/zw078.xml
index 1ba47462a4..2c536f4c6d 100644
--- a/Config/aeotec/zw078.xml
+++ b/Config/aeotec/zw078.xml
@@ -1,48 +1,75 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Aeotec ZW078 Heavy Duty Smart Switch Gen5
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584699
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>  
+--><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:004E:0103</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw078.png</MetaDataItem>
+    <MetaDataItem id="004E" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/1133/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Action button that you can find on the product's housing for 20 seconds and then release. This procedure should only be used when the primary controller is inoperable.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">N/A</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1142/Heavy Duty Smart Switch Gen5 Manual.pdf</MetaDataItem>
+    <MetaDataItem name="Description">Aeon Labs Heavy Duty Smart Switch is a Z-Wave device that can report the wattage energy usage and KWH usage to a Z-Wave Controller (especially a gateway), it can be controlled by other Z-Wave devices to turn on/off loads, it can bear up to 40A current of resister loads. It also acts as a repeater that forward Z-Wave command messages to destination nodes if the originating controller is out of range from the destination node.
+By taking advantage of the Z-Wave mesh network, commands can be routed to their destination via intermediary “listening” Z-Wave products. Products that are Z-Wave certified can be used and communicate with other Z-Wave certified devices.
+
+</MetaDataItem>
+    <MetaDataItem name="Name">Heavy Duty Smart Switch Gen5</MetaDataItem>
+    <MetaDataItem id="004E" name="Identifier" type="0103">ZW078-A</MetaDataItem>
+    <MetaDataItem id="004E" name="FrequencyName" type="0103">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/998/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1089/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1133/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1142/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="004E" name="ZWProductPage" type="0203">https://products.z-wavealliance.org/products/1089/</MetaDataItem>
+    <MetaDataItem id="004E" name="Identifier" type="0203">ZW078-B</MetaDataItem>
+    <MetaDataItem id="004E" name="FrequencyName" type="0203">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="004E" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1142/</MetaDataItem>
+    <MetaDataItem id="004E" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="004E" name="Identifier" type="0003">ZW078-C</MetaDataItem>
+  </MetaData>
   <Protocol refreshonnodeinfoframe="false"/>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" index="3" genre="config" label="Current Overload Protection" size="1" value="0">
+    <Value genre="config" index="3" label="Current Overload Protection" size="1" type="list" value="0">
       <Help>
       Current Overload Protection. Load will be closed when
       the Current more than 39.5A and the time more than 5
       seconds
       </Help>
-      <Item label="Disable" value="0" />
-      <Item label="Enable" value="1" />
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" index="20" genre="config" label="LED Mode" size="1" value="0">
+    <Value genre="config" index="20" label="LED Mode" size="1" type="list" value="0">
       <Help>LED status after power on</Help>
       <Item label="Last Status" value="0"/>
       <Item label="On" value="1"/>
       <Item label="Off" value="2"/>
     </Value>
-    <Value type="list" index="80" genre="config" label="Notification status" units="" size="1" value="0">
+    <Value genre="config" index="80" label="Notification status" size="1" type="list" units="" value="0">
       <Help>
 	Enables automatic notifications to associated devices whenever there is a state change.
       </Help>
-      <Item label="None" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
+      <Item label="None" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
     </Value>
-    <Value type="bool" index="90" genre="config" label="Enable Wattage Reports" units="" value="1">
+    <Value genre="config" index="90" label="Enable Wattage Reports" type="bool" units="" value="1">
       <Help>Enable/disable Wattage threshold and percent.</Help>
     </Value>
-    <Value type="short" index="91" genre="config" label="Wattage threshold" units="watts" min="0" max="32000" value="50">
+    <Value genre="config" index="91" label="Wattage threshold" max="32000" min="0" type="short" units="watts" value="50">
       <Help>The minimum change in wattage for a report to be sent.</Help>
     </Value>
-    <Value type="byte" index="92" genre="config" label="Wattage threshold percent" units="%" min="0" max="99" value="10">
+    <Value genre="config" index="92" label="Wattage threshold percent" max="99" min="0" type="byte" units="%" value="10">
       <Help>Minimum change in percent of wattage to send a report.</Help>
     </Value>
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" value="0" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" value="0" write_only="true">
       <Help>Set report types for groups 1, 2 and 3 to default.</Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type sent in Reporting Group 1" units="" value="4">
+    <Value genre="config" index="101" label="Report type sent in Reporting Group 1" type="int" units="" value="4">
       <Help>
           Defines the type of report sent for reporting group 1.
           1 is meter report for voltage.
@@ -59,7 +86,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584699
           bit 0 voltage
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type sent in Reporting Group 2" units="" value="8">
+    <Value genre="config" index="102" label="Report type sent in Reporting Group 2" type="int" units="" value="8">
       <Help>
           Defines the type of report sent for reporting group 2.
           1 is meter report for voltage.
@@ -76,7 +103,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584699
           bit 0 voltage
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type sent in Reporting Group 3" units="" value="0">
+    <Value genre="config" index="103" label="Report type sent in Reporting Group 3" type="int" units="" value="0">
       <Help>
           Defines the type of report sent for reporting group 3.
           1 is meter report for voltage.
@@ -93,41 +120,39 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584699
           bit 0 voltage
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Default Group Time" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Default Group Time" type="button" units="" value="0" write_only="true">
       <Help>Set time interval for sending reports for groups 1, 2 and 3 to default.</Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Send interval G1" units="seconds" min="0" max="65535" value="5">
+    <Value genre="config" index="111" label="Send interval G1" max="65535" min="0" type="int" units="seconds" value="5">
       <Help>Defines the time interval when the defined report for group 1 is sent.</Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Send interval G2" units="seconds" min="0" max="65535" value="120">
+    <Value genre="config" index="112" label="Send interval G2" max="65535" min="0" type="int" units="seconds" value="120">
       <Help>Defines the time interval when the defined report for group 2 is sent.</Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Send interval G3" units="seconds" min="0" max="65535" value="120">
+    <Value genre="config" index="113" label="Send interval G3" max="65535" min="0" type="int" units="seconds" value="120">
       <Help>Defines the time interval when the defined report for group 3 is sent.</Help>
     </Value>
-      <Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
-          <Item label="Aeon Labs Standard Product" value="0" />
-          <Item label="Other" value="1" />
-      </Value>
-    <Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
+      <Item label="Aeon Labs Standard Product" value="0"/>
+      <Item label="Other" value="1"/>
+    </Value>
+    <Value genre="config" index="252" label="Lock/Unlock Configuration" max="1" min="0" size="1" type="list" value="0">
       <Help>Lock/ unlock all configuration parameters</Help>
       <Item label="Unlock" value="0"/>
       <Item label="Lock" value="1"/>
     </Value>
-      <Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-          <Help>Reset to factory defaults</Help>
-          <Item label="Reset to factory default setting" value="0"/>
-          <Item label="Normal" value="1"/>
-          <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-      </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
   </CommandClass>
-
- <!-- Association Groups -->
+  <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="LifeLine" />
-      <Group index="2" max_associations="5" label="Retransmit Switch CC" />
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Retransmit Switch CC" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/zw080.xml b/Config/aeotec/zw080.xml
index cad1d0b1dc..36ad52c81e 100644
--- a/Config/aeotec/zw080.xml
+++ b/Config/aeotec/zw080.xml
@@ -1,63 +1,91 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
-Aeotec ZW080 Siren Gen5 
-https://aeotec.freshdesk.com/helpdesk/attachments/6009584694
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<Protocol refreshonnodeinfoframe="false"/>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="37" genre="config" label="Siren sound and Volume" units="" value="259" size="2">
-			<Help>Select the Siren Sound and Volume</Help>
-			<Item label="Sound 1 - Low Volume" value="257"/>
-			<Item label="Sound 1 - Mid Volume" value="258"/>
-			<Item label="Sound 1 - High Volume" value="259"/>
-			<Item label="Sound 2 - Low Volume" value="513"/>
-			<Item label="Sound 2 - Mid Volume" value="514"/>
-			<Item label="Sound 2 - High Volume" value="515"/>
-			<Item label="Sound 3 - Low Volume" value="769"/>
-			<Item label="Sound 3 - Mid Volume" value="770"/>
-			<Item label="Sound 3 - High Volume" value="771"/>
-			<Item label="Sound 4 - Low Volume" value="1025"/>
-			<Item label="Sound 4 - Mid Volume" value="1026"/>
-			<Item label="Sound 4 - High Volume" value="1027"/>
-			<Item label="Sound 5 - Low Volume" value="1281"/>
-			<Item label="Sound 5 - Mid Volume" value="1282"/>
-			<Item label="Sound 5 - High Volume" value="1283"/>
-		</Value>
-		<Value type="list" index="38" genre="config" label="Enable/disable the action button" units="" min="0" max="1" value="1" size="1">
-			<Help>Enable/disable to turn off the alarm sound via pressing the Action Button. </Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="list" index="80" genre="config" label="Send Notifications" units="" min="0" max="1" value="0" size="1">
-			<Help>Enable to send notifications to associated devices (Group 1) when the state of Siren changed</Help>
-			<Item label="Nothing" value="0" />
-			<Item label="Hail" value="1" />
-			<Item label="Basic" value="2" />
-		</Value>
-		<Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" value="0" size="1">
-			<Help>Partner ID</Help>
-			<Item label="Aeon Labs Standard Product" value="0"/>
-		</Value>
-		<Value type="list" index="252" genre="config" label="Enable/disable Lock Configuration" units="" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable Lock Configuration</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-      		<Help>Reset to factory defaults</Help>
-			<Item label="Reset to factory default setting" value="0"/>
-			<Item label="Normal" value="1"/>
-			<Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-		</Value>
-	</CommandClass>
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="LifeLine" />
-		</Associations>
-	</CommandClass>
+<!-- Aeon Labs DSD31 Siren Gen5 --><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0050:0104</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw080.png</MetaDataItem>
+    <MetaDataItem id="0050" name="ZWProductPage" type="0104">https://products.z-wavealliance.org/products/1134/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Action button that you can find on the product's housing for 20 seconds and then release. This procedure should only be used when the primary controller is inoperable.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">N/A</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem id="0050" name="Identifier" type="0104">ZW080-A17</MetaDataItem>
+    <MetaDataItem name="Description">Aeon Labs Siren Gen5 is an siren Z-Wave device that when an emergency is happening it lets you know. Its 105dB Speaker System is always heard. Its super-bright LED system lights your path even when it’s dark. Siren provides a smart home with the perfect security and safety features that it needs.
+Those security and safety features are matched by smart features. Siren’s speaker system can access 5 different audio alerts, allowing your smart home to pick the alert best suited to the emergency. The speaker system’s volume can also be adjusted so that Siren is perfect for every space in every home.
+It also act as a repeater that forward Z-Wave command messages to destination nodes if the originating controller is out of range from the destination node.
+By taking advantage of the Z-Wave mesh network, commands can be routed to their destination via intermediary “listening” Z-Wave products. Products that are Z-Wave certified can be used and communicate with other Z-Wave certified devices.
+Also a tool that can be programmed, scheduled, controlled and communicated with from anywhere in the world.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem name="Name">Siren Gen5</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1141/Siren Gen5 Manual.pdf</MetaDataItem>
+    <MetaDataItem id="0050" name="FrequencyName" type="0104">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1134/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1136/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1141/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0050" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1136/</MetaDataItem>
+    <MetaDataItem id="0050" name="Identifier" type="0004">ZW080-C15</MetaDataItem>
+    <MetaDataItem id="0050" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0050" name="ZWProductPage" type="0204">https://products.z-wavealliance.org/products/1141/</MetaDataItem>
+    <MetaDataItem id="0050" name="FrequencyName" type="0204">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="0050" name="Identifier" type="0204">ZW080-B21</MetaDataItem>
+  </MetaData>
+  <Protocol refreshonnodeinfoframe="false"/>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="37" label="Siren sound and Volume" size="2" type="list" units="" value="259">
+      <Help>Select the Siren Sound and Volume</Help>
+      <Item label="Sound 1 - Low Volume" value="257"/>
+      <Item label="Sound 1 - Mid Volume" value="258"/>
+      <Item label="Sound 1 - High Volume" value="259"/>
+      <Item label="Sound 2 - Low Volume" value="513"/>
+      <Item label="Sound 2 - Mid Volume" value="514"/>
+      <Item label="Sound 2 - High Volume" value="515"/>
+      <Item label="Sound 3 - Low Volume" value="769"/>
+      <Item label="Sound 3 - Mid Volume" value="770"/>
+      <Item label="Sound 3 - High Volume" value="771"/>
+      <Item label="Sound 4 - Low Volume" value="1025"/>
+      <Item label="Sound 4 - Mid Volume" value="1026"/>
+      <Item label="Sound 4 - High Volume" value="1027"/>
+      <Item label="Sound 5 - Low Volume" value="1281"/>
+      <Item label="Sound 5 - Mid Volume" value="1282"/>
+      <Item label="Sound 5 - High Volume" value="1283"/>
+    </Value>
+    <Value genre="config" index="38" label="Enable/disable the action button" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Enable/disable to turn off the alarm sound via pressing the Action Button. </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="80" label="Send Notifications" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Enable to send notifications to associated devices (Group 1) when the state of Siren changed</Help>
+      <Item label="Nothing" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
+    </Value>
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Partner ID</Help>
+      <Item label="Aeon Labs Standard Product" value="0"/>
+    </Value>
+    <Value genre="config" index="252" label="Enable/disable Lock Configuration" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Enable/disable Lock Configuration</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw088.xml b/Config/aeotec/zw088.xml
index 8984e77269..ac1284aa01 100644
--- a/Config/aeotec/zw088.xml
+++ b/Config/aeotec/zw088.xml
@@ -1,33 +1,57 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Aeotec ZW088 Key Fob Gen5
-https://aeotec.freshdesk.com/helpdesk/attachments/6009584698
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'> 
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0058:0101</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw088.png</MetaDataItem>
+    <MetaDataItem id="0058" name="ZWProductPage" type="0101">https://products.z-wavealliance.org/products/1165/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press and hold the "Learn" for 3 seconds will trigger sending the Wake up notification command. </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Short press the “Exclude” button on the Key Fob, it will go into exclusion state and its red LED will blink slowly to wait excluding other slave Z-Wave devices from its network.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Use this procedure only in the event that the primary controller is missing or otherwise inoperable.
+
+Press and hold the “Mode” button and “Learn” button for 20 seconds and then release.</MetaDataItem>
+    <MetaDataItem name="Description">Key Fob Gen5 is a fully functional Z-wave remote controller, which can include, exclude and control the other Z-Wave certified devices.  It also can be acted a secondary controller in a network.  
+
+It is a four buttons design. You can use each button to control your home’s Z-Wave devices and build a Z-Wave network for them. 
+
+Products that are Z-Wave certified can be used and communicate with other Z-Wave certified devices.
+</MetaDataItem>
+    <MetaDataItem id="0058" name="Identifier" type="0101">ZW088-A</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1178/Instructions - Aeon Labs Key Fob Gen5 MCert.pdf</MetaDataItem>
+    <MetaDataItem name="Name">Key Fob Gen5</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Short press the “Include” button on the Key Fob, it will go into inclusion state and its blue LED will blink slowly to wait including other slave Z-Wave devices.</MetaDataItem>
+    <MetaDataItem id="0058" name="FrequencyName" type="0101">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1165/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1177/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1178/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0058" name="ZWProductPage" type="0201">https://products.z-wavealliance.org/products/1177/</MetaDataItem>
+    <MetaDataItem id="0058" name="FrequencyName" type="0201">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="0058" name="Identifier" type="0201">ZW088-B</MetaDataItem>
+    <MetaDataItem id="0058" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1178/</MetaDataItem>
+    <MetaDataItem id="0058" name="Identifier" type="0001">ZW088-C</MetaDataItem>
+    <MetaDataItem id="0058" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+  </MetaData>
+  <!-- Aeon Labs Key Fob Gen5 -->
   <!-- Basic and SwitchMultiLevel are for when the KeyFob is in Group Mode.
   You should configure the device to operate in Scene Mode instead if you
   wish to integrate it with your application -->
-  <CommandClass id="32" action="remove" />
-  <CommandClass id="38" action="remove" />
-  
+  <CommandClass action="remove" id="32"/>
+  <CommandClass action="remove" id="38"/>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-     <Value type="list" index="250" genre="config" label="Mode" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="250" label="Mode" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable selective Group Mode or Scene Mode when the Key Fob is in Use mode</Help>
-      <Item label="Group" value="0" />
-      <Item label="Scene" value="1" />
+      <Item label="Group" value="0"/>
+      <Item label="Scene" value="1"/>
     </Value>
-     
-    <Value type="button" index="255" genre="config" label="Reset configuration" units="" write_only="true" value="0">
+    <Value genre="config" index="255" label="Reset configuration" type="button" units="" value="0" write_only="true">
       <Help>Reset configuration set up to default setting</Help>
     </Value>
   </CommandClass>
-
   <!-- COMMAND_CLASS_ASSOCIATION -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/aeotec/zw089.xml b/Config/aeotec/zw089.xml
index 2bdcd6eac4..17b7a2a0f2 100644
--- a/Config/aeotec/zw089.xml
+++ b/Config/aeotec/zw089.xml
@@ -1,36 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
-Aeotec ZW089 Recessed Door Sensor Gen5
-https://aeotec.freshdesk.com/helpdesk/attachments/6009584697 
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
+<!-- Aeon Labs Recessed Door Sensor --><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0059:0102</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw089.png</MetaDataItem>
+    <MetaDataItem id="0059" name="ZWProductPage" type="0102">https://products.z-wavealliance.org/products/1179/</MetaDataItem>
+    <MetaDataItem name="Name">Recessed Door Sensor Gen5 </MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press and hold the Z-Wave button for 5 seconds will trigger sending the Wake up notification command and then keep waking up for 10 seconds after release the Z-Wave button.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1184/Recessed Door Sensor Gen5 - Manual MCert.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Z-Wave button that you can find in the back of the product.</MetaDataItem>
+    <MetaDataItem id="0059" name="FrequencyName" type="0102">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0059" name="Identifier" type="0102">ZW089-A</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Z-Wave button that you can find in back of the product for 20 seconds and then release. This procedure should only be used when the primary controller is inoperable.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Z-Wave button that you can find in back of the product.</MetaDataItem>
+    <MetaDataItem name="Description">The Aeotec by Aeon Labs Recessed Door Sensor Gen5 is a door sensor that can detect the state of the door's open/close. It will report the door state to your controller/ gateway/associated nodes in real time when the state of your door has a change. 
+It’s a security Z-Wave device that supports security encryption. Also it supports the “Over the Air Firmware Updating” that allows you wirelessly update its firmware if needs. 
+It can be included and operated in any Z-Wave network with other Z-Wave certified devices from manufacturers and/or other applications.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1179/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1183/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1184/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0059" name="ZWProductPage" type="0202">https://products.z-wavealliance.org/products/1183/</MetaDataItem>
+    <MetaDataItem id="0059" name="FrequencyName" type="0202">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="0059" name="Identifier" type="0202">ZW089-B</MetaDataItem>
+    <MetaDataItem id="0059" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1184/</MetaDataItem>
+    <MetaDataItem id="0059" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0059" name="Identifier" type="0002">ZW089-C</MetaDataItem>
+  </MetaData>
+  <!-- Configuration -->
     <!-- Alarm CC isn't supported on this device -->
-    <CommandClass id="113" action="remove"/>
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Sensor Binary Report Toggle" min="0" max="1" size="1" value="0">
-            <Help>Which value of the Sensor Binary Report will be sent when 
+  <CommandClass action="remove" id="113"/>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Sensor Binary Report Toggle" max="1" min="0" size="1" type="list" value="0">
+      <Help>Which value of the Sensor Binary Report will be sent when 
             the magnet switch to open/close.</Help>
-            <Item label="Normal" value="0"/>
-            <Item label="Inverse" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="3" label="Basic Set Toggle" min="0" max="1" size="1" value="0">
-            <Help>Which value of the Basic Set will be sent when the magnet 
+      <Item label="Normal" value="0"/>
+      <Item label="Inverse" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Basic Set Toggle" max="1" min="0" size="1" type="list" value="0">
+      <Help>Which value of the Basic Set will be sent when the magnet 
             switch to open/close.
             </Help>
-            <Item label="Normal" value="0"/>
-            <Item label="Inverse" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="101" label="Low Battery Check Enable" min="0" max="1" size="1" value="0">
-            <Help>Enable/disable the function of low battery checking, when 
+      <Item label="Normal" value="0"/>
+      <Item label="Inverse" value="1"/>
+    </Value>
+    <Value genre="config" index="101" instance="1" label="Low Battery Check Enable" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable the function of low battery checking, when 
             the current voltage is less than the warning voltage, it will 
             send the Battery Low Warning Report. 
             </Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Enabled" value="1"/>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="111" label="Low Battery Check Interval" min="0" max="4294967295" value="86640">
-            <Help>This parameter is available when the low battery checking
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="111" instance="1" label="Low Battery Check Interval" max="4294967295" min="0" type="int" value="86640">
+      <Help>This parameter is available when the low battery checking
                   function is activated or the device was waked up by other
                   actions (i.e. the z-wave button trigger, magnet switch
                   trigger and the Wake Up Interval Set timeout trigger).
@@ -40,33 +63,37 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584697
                   Wake Up Interval Set timeout trigger.
               Default setting: 86640
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="121" label="Report Type" size="4" value="256">
-            <Help>Configure which sensor report will be sent when the sensor is Opened/Closed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Basic Set" value="256"/>
-            <Item label="Sensor Binary Report" value="16"/>
-            <Item label="Basic Set and Sensor Binary Report" value="272"/>
-        </Value>
-        <Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
-		    <Help>Lock/ unlock all configuration parameters</Help>
-		    <Item label="Unlock" value="0"/>
-		    <Item label="Lock" value="1"/>
-	    </Value>
-        <Value type="short" index="254" genre="config" label="Device Tag" units="" min="0" max="65535" value="0">
-			<Help>Device Tag</Help>
-		</Value>
-	    <Value type="button" index="255" genre="config" label="Reset To Factory Defaults" write_only="true" value="0" >
-		    <Help>Reset to factory defaults.</Help>
-	    </Value>
-    </CommandClass>
-	<!-- Basic set as report-->
-    <CommandClass id="32" setasreport="true"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-      <Associations num_groups="2">
-        <Group index="1" max_associations="5" label="LifeLine" />
-        <Group index="2" max_associations="5" label="Battery" auto="true"/>
-      </Associations>
-    </CommandClass>    
+    </Value>
+    <Value genre="config" index="121" instance="1" label="Report Type" size="4" type="list" value="256">
+      <Help>Configure which sensor report will be sent when the sensor is Opened/Closed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Basic Set" value="256"/>
+      <Item label="Sensor Binary Report" value="16"/>
+      <Item label="Basic Set and Sensor Binary Report" value="272"/>
+    </Value>
+    <Value genre="config" index="252" label="Lock/Unlock Configuration" max="1" min="0" size="1" type="list" value="0">
+      <Help>Lock/ unlock all configuration parameters</Help>
+      <Item label="Unlock" value="0"/>
+      <Item label="Lock" value="1"/>
+    </Value>
+    <Value genre="config" index="254" label="Device Tag" max="65535" min="0" type="short" units="" value="0">
+      <Help>Device Tag</Help>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" type="button" value="0" write_only="true">
+      <Help>Reset to factory defaults.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group auto="true" index="2" label="Battery" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw090.xml b/Config/aeotec/zw090.xml
index 347ae4e833..e62677c595 100644
--- a/Config/aeotec/zw090.xml
+++ b/Config/aeotec/zw090.xml
@@ -1,45 +1,72 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
-Aeotec ZW090 Z-Stick Gen5
-https://aeotec.freshdesk.com/helpdesk/attachments/6009584703
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="81" genre="config" label="LED indicator configuration" min="0" max="1" value="1" size="1">
-			<Help>Enable/Disable LED indicator when plugged in</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>		
-		<Value type="list" index="220" genre="config" label="Configuration of the RF power level" min="1" max="10" value="10" size="1">
-			<Help>1~10, other= ignore. 
+<!-- Aeotec Z-Stick Gen5 --><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:005A:0101</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw090.png</MetaDataItem>
+    <MetaDataItem id="005A" name="ZWProductPage" type="0101">https://products.z-wavealliance.org/products/1345/</MetaDataItem>
+    <MetaDataItem name="Name">Z-Stick Gen5</MetaDataItem>
+    <MetaDataItem name="Description">Aeotec Z-Stick Gen5 is a USB controller. When connected to a host controller via USB, it enables the host controller to take part in the Z-Wave network.
+
+Products that are Z-Wave certified can be used and communicate with other Z-Wave certified devices.
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Use this procedure only in the event that the primary controller is missing or otherwise inoperable.
+
+Press and hold the Action Button on Z-Stick for 20 seconds and then release.</MetaDataItem>
+    <MetaDataItem id="005A" name="Identifier" type="0101">ZW090-A</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Plug the Z-Stick into USB port of your host Controller and then click the “Exclusion” button on your  PC/host Controller application.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Plug the Z-Stick into USB port of your host Controller and then click the “Inclusion” button on your  PC/host Controller application.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">N/A</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1355/Z Stick Gen5 manual 1.pdf</MetaDataItem>
+    <MetaDataItem id="005A" name="FrequencyName" type="0101">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1345/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1351/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1355/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="005A" name="ZWProductPage" type="0201">https://products.z-wavealliance.org/products/1351/</MetaDataItem>
+    <MetaDataItem id="005A" name="FrequencyName" type="0201">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="005A" name="Identifier" type="0201">ZW090-B</MetaDataItem>
+    <MetaDataItem id="005A" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1355/</MetaDataItem>
+    <MetaDataItem id="005A" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="005A" name="Identifier" type="0001">ZW090-C</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="81" label="LED indicator configuration" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable/Disable LED indicator when plugged in</Help>
+      <Help lang="fr">Activer / désactiver l'indicateur LED lorsqu'il est branché</Help>
+      <Label lang="fr">Configuration d'indicateur LED</Label>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="220" label="Configuration of the RF power level" max="10" min="1" size="1" type="list" value="10">
+      <Help>1~10, other= ignore. 
 				A total of 10 levels, level 1 as the weak output power, and so on, 10 for most output power level</Help>
-			<Item label="1" value="1" />
-			<Item label="2" value="2" />
-			<Item label="3" value="3" />
-			<Item label="4" value="4" />
-			<Item label="5" value="5" />
-			<Item label="6" value="6" />
-			<Item label="7" value="7" />
-			<Item label="8" value="8" />
-			<Item label="9" value="9" />
-			<Item label="10" value="10" />
-		</Value>		
-		<Value type="list" index="242" genre="config" label="Security network enabled" min="0" max="1" value="0" size="1">
-			<Help></Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>		
-		<Value type="int" index="243" genre="config" label="Security network key" size="16">
-			<Help></Help>
-		</Value>
-		<Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
-			<Help>Lock/ unlock all configuration parameters</Help>
-			<Item label="Unlock" value="0"/>
-			<Item label="Lock" value="1"/>
-		</Value>
-		<Value type="int" index="255" genre="config" label="Reset default configuration" units="" value="0" write_only="true" affects="all">
-			<Help>Reset to the default configuration</Help>
-		</Value>  	
-    </CommandClass>  
+      <Item label="1" value="1"/>
+      <Item label="2" value="2"/>
+      <Item label="3" value="3"/>
+      <Item label="4" value="4"/>
+      <Item label="5" value="5"/>
+      <Item label="6" value="6"/>
+      <Item label="7" value="7"/>
+      <Item label="8" value="8"/>
+      <Item label="9" value="9"/>
+      <Item label="10" value="10"/>
+    </Value>
+    <Value genre="config" index="242" label="Security network enabled" max="1" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="243" label="Security network key" size="16" type="int">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="252" label="Lock/Unlock Configuration" max="1" min="0" size="1" type="list" value="0">
+      <Help>Lock/ unlock all configuration parameters</Help>
+      <Item label="Unlock" value="0"/>
+      <Item label="Lock" value="1"/>
+    </Value>
+    <Value affects="all" genre="config" index="255" label="Reset default configuration" type="int" units="" value="0" write_only="true">
+      <Help>Reset to the default configuration</Help>
+    </Value>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw095.xml b/Config/aeotec/zw095.xml
index 9210e9af3b..9235d3afd6 100644
--- a/Config/aeotec/zw095.xml
+++ b/Config/aeotec/zw095.xml
@@ -1,79 +1,96 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Aeotec ZW095 Home Energy Meter Gen5
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584689
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="2" genre="config" label="Power, energy detection mode" units="" min="0" max="3" value="0" size="1">
-			<Help>For parameters of 101 ~ 103, power, energy detection mode configuration</Help>
-			<Item label="Report absolute value" value="0"/>
-			<Item label="Report algebraic sum energy" value="1"/>
-			<Item label="Report consuming electricity" value="2"/>
-			<Item label="Report generating electricity" value="3"/>
-		</Value>
-		<Value type="list" index="3" genre="config" label="Selective reporting" units="" min="0" max="1" value="1" size="1">
-			<Help>
+--><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:005F:0102</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw095.png</MetaDataItem>
+    <MetaDataItem id="005F" name="ZWProductPage" type="0102">https://products.z-wavealliance.org/products/1289/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Action button that you can find on the product's housing for 10 seconds and then release. This procedure should only be used when the primary controller is inoperable.</MetaDataItem>
+    <MetaDataItem id="005F" name="FrequencyName" type="0102">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem name="Description">Aeon Labs Home Energy Meter Gen5 is a Z-Wave device that can monitor the total amount of electricity of your home. 
+It can report the wattage energy usage and KWH usage to a Z-Wave Controller (especially a gateway). In near real-time you’ll have a full understanding of how much electricity you use and when you use it.
+Products that are Z-Wave certified can be used and communicate with other Z-Wave certified devices. Also a tool that can be programmed, scheduled, controlled and communicated with from anywhere in the world.</MetaDataItem>
+    <MetaDataItem id="005F" name="Identifier" type="0102">ZW095-A</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">N/A</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1289/Instructions manual for Aeon Labs Home Energy Meter Gen5.pdf</MetaDataItem>
+    <MetaDataItem name="Name">Home Energy Meter Gen5</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1289/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="Power, energy detection mode" max="3" min="0" size="1" type="list" units="" value="0">
+      <Help>For parameters of 101 ~ 103, power, energy detection mode configuration</Help>
+      <Item label="Report absolute value" value="0"/>
+      <Item label="Report algebraic sum energy" value="1"/>
+      <Item label="Report consuming electricity" value="2"/>
+      <Item label="Report generating electricity" value="3"/>
+    </Value>
+    <Value genre="config" index="3" label="Selective reporting" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
 				Enable selective reporting only when power change reaches a certain threshold or percentage set in 4-11 below. This is used to reduce network traffic.
 			</Help>
-			<Item label="Disable" value="0"/>
-			<Item label="Enable" value="1"/>
-		</Value>
-		<Value type="short" index="4" genre="config" label="Wattage Threshold Whole HEM" min="0" max="60000" units="watts" value="50">
-			<Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Wattage Threshold Whole HEM" max="60000" min="0" type="short" units="watts" value="50">
+      <Help>
 				Threshold change in wattage to induce a automatic report (whole HEM).
 			</Help>
-		</Value>
-		<Value type="short" index="5" genre="config" label="Wattage Threshold C1" min="0" max="60000" units="watts" value="50">
-			<Help>
+    </Value>
+    <Value genre="config" index="5" label="Wattage Threshold C1" max="60000" min="0" type="short" units="watts" value="50">
+      <Help>
 				Threshold change in wattage to induce a automatic report (Clamp 1).
 			</Help>
-		</Value>
-		<Value type="short" index="6" genre="config" label="Wattage Threshold C2" min="0" max="60000" units="watts" value="50">
-			<Help>
+    </Value>
+    <Value genre="config" index="6" label="Wattage Threshold C2" max="60000" min="0" type="short" units="watts" value="50">
+      <Help>
 				Threshold change in wattage to induce a automatic report (Clamp 2).
 			</Help>
-		</Value>
-		<Value type="short" index="7" genre="config" label="Wattage Threshold C3" min="0" max="60000" units="watts" value="50">
-			<Help>
+    </Value>
+    <Value genre="config" index="7" label="Wattage Threshold C3" max="60000" min="0" type="short" units="watts" value="50">
+      <Help>
 				Threshold change in wattage to induce a automatic report (Clamp 3).
 			</Help>
-		</Value>
-		<Value type="byte" index="8" genre="config" label="Wattage Percentage Change Whole HEM" min="0" max="100" units="%" value="10">
-			<Help>
+    </Value>
+    <Value genre="config" index="8" label="Wattage Percentage Change Whole HEM" max="100" min="0" type="byte" units="%" value="10">
+      <Help>
 				Percentage change in wattage to induce a automatic report (whole HEM).
 			</Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="Wattage Percentage Change C1" min="0" max="100" units="%" value="10">
-			<Help>
+    </Value>
+    <Value genre="config" index="9" label="Wattage Percentage Change C1" max="100" min="0" type="byte" units="%" value="10">
+      <Help>
 				Percentage change in wattage to induce a automatic report (Clamp 1).
 			</Help>
-		</Value>
-		<Value type="byte" index="10" genre="config" label="Wattage Percentage Change C2" min="0" max="100" units="%" value="10">
-			<Help>
+    </Value>
+    <Value genre="config" index="10" label="Wattage Percentage Change C2" max="100" min="0" type="byte" units="%" value="10">
+      <Help>
 				Percentage change in wattage to induce a automatic report (Clamp 2).
 			</Help>
-		</Value>
-		<Value type="byte" index="11" genre="config" label="Wattage Percentage Change C3" min="0" max="100" units="%" value="10">
-			<Help>
+    </Value>
+    <Value genre="config" index="11" label="Wattage Percentage Change C3" max="100" min="0" type="byte" units="%" value="10">
+      <Help>
 				Percentage change in wattage to induce a automatic report (Clamp 3).
 			</Help>
-		</Value>
-		<Value type="list" index="13" genre="config" label="Reporting CRC-16 Encapsulation Command" units="" min="0" max="1" value="1" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="13" label="Reporting CRC-16 Encapsulation Command" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
 				Enable /disable reporting CRC-16 Encapsulation Command.
 			</Help>
-			<Item label="Disable" value="0"/>
-			<Item label="Enable" value="1"/>
-		</Value>
-		<Value type="button" index="100" genre="config" label="Reset #101-103" write_only="true" affects="101,102,103">
-			<Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value affects="101,102,103" genre="config" index="100" label="Reset #101-103" type="button" write_only="true">
+      <Help>
 				Reset to default parameters number 101-103. Any value other then 0 will initiate this reset.
 			</Help>
-		</Value>
-		<Value type="int" index="101" genre="config" label="Group 1 Reports" units="" value="2">
-			<Help>
+    </Value>
+    <Value genre="config" index="101" label="Group 1 Reports" type="int" units="" value="2">
+      <Help>
 				Which reports need to send in group1. Format is as follows:
 				Byte 1 (msb):
 				Bit 7: Reserved
@@ -112,9 +129,9 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584689
 				Bit 1: Auto Send Meter Report (for Watt) at the group time interval (Whole HEM)
 				Bit 0: Auto Send Meter Report (for kWh) at the group time interval (Whole HEM)
 			</Help>
-		</Value>
-		<Value type="int" index="102" genre="config" label="Group 2 Reports" units="" value="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="102" label="Group 2 Reports" type="int" units="" value="1">
+      <Help>
 				Which reports need to send in group2. Format is as follows:
 				Byte 1 (msb):
 				Bit 7: Reserved
@@ -153,9 +170,9 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584689
 				Bit 1: Auto Send Meter Report (for Watt) at the group time interval (Whole HEM)
 				Bit 0: Auto Send Meter Report (for kWh) at the group time interval (Whole HEM)
 			</Help>
-		</Value>
-		<Value type="int" index="103" genre="config" label="Group 3 Reports" units="" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="103" label="Group 3 Reports" type="int" units="" value="0">
+      <Help>
 				Which reports need to send in group3. Format is as follows:
 				Byte 1 (msb):
 				Bit 7: Reserved
@@ -194,41 +211,39 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584689
 				Bit 1: Auto Send Meter Report (for Watt) at the group time interval (Whole HEM)
 				Bit 0: Auto Send Meter Report (for kWh) at the group time interval (Whole HEM)
 			</Help>
-		</Value>
-		<Value type="button" index="110" genre="config" label="Reset #111-113" units="" value="0" write_only="true" affects="111,112,113">
-			<Help>Reset to default parameters number 111-113</Help>
-		</Value>
-		<Value type="int" index="111" genre="config" label="Group 1 Interval" units="seconds" value="5">
-			<Help>The interval of sending report group 1.</Help>
-		</Value>
-		<Value type="int" index="112" genre="config" label="Group 2 Interval" units="seconds" value="120">
-			<Help>The interval of sending report group 2</Help>
-		</Value>
-		<Value type="int" index="113" genre="config" label="Group 3 Interval" units="seconds" value="120">
-			<Help>The interval of sending report group 3</Help>
-		</Value>
-		<Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
-			<Item label="Aeon Labs Standard Product" value="0"/>
-			<Item label="Other" value="1"/>
-		</Value>
-		<Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
-			<Help>Lock/ unlock all configuration parameters</Help>
-			<Item label="Unlock" value="0"/>
-			<Item label="Lock" value="1"/>
-		</Value>
-		<Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-			<Help>Reset to factory defaults</Help>
-			<Item label="Reset to factory default setting" value="0"/>
-			<Item label="Normal" value="1"/>
-			<Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+    <Value affects="111,112,113" genre="config" index="110" label="Reset #111-113" type="button" units="" value="0" write_only="true">
+      <Help>Reset to default parameters number 111-113</Help>
+    </Value>
+    <Value genre="config" index="111" label="Group 1 Interval" type="int" units="seconds" value="5">
+      <Help>The interval of sending report group 1.</Help>
+    </Value>
+    <Value genre="config" index="112" label="Group 2 Interval" type="int" units="seconds" value="120">
+      <Help>The interval of sending report group 2</Help>
+    </Value>
+    <Value genre="config" index="113" label="Group 3 Interval" type="int" units="seconds" value="120">
+      <Help>The interval of sending report group 3</Help>
+    </Value>
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
+      <Item label="Aeon Labs Standard Product" value="0"/>
+      <Item label="Other" value="1"/>
+    </Value>
+    <Value genre="config" index="252" label="Lock/Unlock Configuration" max="1" min="0" size="1" type="list" value="0">
+      <Help>Lock/ unlock all configuration parameters</Help>
+      <Item label="Unlock" value="0"/>
+      <Item label="Lock" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/zw096.xml b/Config/aeotec/zw096.xml
index 1ca149b077..d1eaee70cd 100644
--- a/Config/aeotec/zw096.xml
+++ b/Config/aeotec/zw096.xml
@@ -1,72 +1,96 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Aeotec Smart Switch 6
-https://aeotec.freshdesk.com/helpdesk/attachments/6009584701
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0060:0103</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw096.png</MetaDataItem>
+    <MetaDataItem id="0060" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/1312/</MetaDataItem>
+    <MetaDataItem name="Name">Smart Switch 6</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">N/A</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Action button that you can find on the product's housing for 20 seconds and then release. This procedure should only be used when the primary controller is missing or inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">Aeotec Smart Switch 6 is a low-cost Z-Wave Switch plug-in module specifically used to enable Z-Wave command and control (on/off) of any plug-in tool. It can report immediate wattage consumption or kWh energy usage over a period of time. In the event of power failure, non-volatile memory retains all programmed information relating to the unit’s operating status.
+Its surface has a Smart RGB LED, which can be used for indicating the output load status or strength of the wireless signal. You can configure its indication colour according to your favour.
+The Smart Switch 6 is also a security Z-wave device and supports Over The Air (OTA) feature for the products firmware upgrade.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1425/Aeon Labs Smart Switch 6 manual (2) .pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem id="0060" name="FrequencyName" type="0103">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Action button that you can find on the product's housing.</MetaDataItem>
+    <MetaDataItem id="0060" name="Identifier" type="0103">ZW096-A02</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1312/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1331/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1425/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0060" name="ZWProductPage" type="0203">https://products.z-wavealliance.org/products/1331/</MetaDataItem>
+    <MetaDataItem id="0060" name="FrequencyName" type="0203">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="0060" name="Identifier" type="0203">ZW096-B09</MetaDataItem>
+    <MetaDataItem id="0060" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1425/</MetaDataItem>
+    <MetaDataItem id="0060" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0060" name="Identifier" type="0003">ZW096-C16</MetaDataItem>
+  </MetaData>
+  <!-- Aeon Labs Smart Switch 6 -->
   <Protocol refreshonnodeinfoframe="false"/>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" index="3" genre="config" label="Current Overload Protection" units="" min="0" max="1" size="1" value="1">
+    <Value genre="config" index="3" label="Current Overload Protection" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>Load will be closed when the Current overruns (US 15.5A, Others 16.2) for more than 2 minutes</Help>
       <Item label="Deactivate Overload Protection" value="0"/>
       <Item label="Active Overload Protection (Default)" value="1"/>
     </Value>
-    <Value type="list" index="20" genre="config" label="Output Load Status" units="" min="0" max="2" size="1" value="0">
+    <Value genre="config" index="20" label="Output Load Status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Configure the output load status after re-power on.</Help>
       <Item label="Last status (Default)" value="0"/>
       <Item label="Always on" value="1"/>
       <Item label="Always off" value="2"/>
-    </Value>    
-    <Value type="list" index="21" genre="config" label="RGB Led Color for Testing" units="" min="1" max="4" size="1" value="1">
+    </Value>
+    <Value genre="config" index="21" label="RGB Led Color for Testing" max="4" min="1" size="1" type="list" units="" value="1">
       <Help>Configure the RGB Led Color for Testing</Help>
       <Item label="Reserved" value="1"/>
       <Item label="Red" value="2"/>
       <Item label="Green" value="3"/>
       <Item label="Blue" value="4"/>
-    </Value>    
-    <Value type="list" index="80" genre="config" label="Notification status" units="" min="0" max="2" size="1" value="0">
+    </Value>
+    <Value genre="config" index="80" label="Notification status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Defines the automated status notification of an associated device when status changes</Help>
-      <Item label="Nothing (Default)" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
+      <Item label="Nothing (Default)" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
     </Value>
-    <Value type="list" index="81" genre="config" label="Configure the state of the LED" units="" min="0" max="1" size="1" value="0">
-    	<Item label="The LED will follow the status (on/off) of its load. (Default)" value="0"/>
-    	<Item label="When the state of the Switch changes, the LED will follow the status (on/off) of its load, but the LED will turn off after 5 seconds." value="1"/> 
-    	<Item label="Night Light Mode" value="2" />
+    <Value genre="config" index="81" label="Configure the state of the LED" max="1" min="0" size="1" type="list" units="" value="0">
+      <Item label="The LED will follow the status (on/off) of its load. (Default)" value="0"/>
+      <Item label="When the state of the Switch changes, the LED will follow the status (on/off) of its load, but the LED will turn off after 5 seconds." value="1"/>
+      <Item label="Night Light Mode" value="2"/>
     </Value>
-    <Value type="int" index="83" genre="config" label="Night Light Color" units="" min="0" max="16777215" size="4" value="14524637" read_only="true">
-    	<Help>Configure the RGB Value when in Night Light Mode.
+    <Value genre="config" index="83" label="Night Light Color" max="16777215" min="0" read_only="true" size="4" type="int" units="" value="14524637">
+      <Help>Configure the RGB Value when in Night Light Mode.
     	Byte 1: Red Color
     	Byte 2: Green Color
     	Byte 3: Blue Color
     	</Help>
     </Value>
-    <Value type="int" index="84" genre="config" label="RGB Brightness in Energy Mode" units="" min="0" max="16777215" size="4" value="5263440" read_only="true">
-    	<Help>Configure the brightness level of RGB LED (0%-100%) when it is in Energy Mode/momentary indicate mode.
+    <Value genre="config" index="84" label="RGB Brightness in Energy Mode" max="16777215" min="0" read_only="true" size="4" type="int" units="" value="5263440">
+      <Help>Configure the brightness level of RGB LED (0%-100%) when it is in Energy Mode/momentary indicate mode.
     	Byte 1: Red Color
     	Byte 2: Green Color
     	Byte 3: Blue Color
     	</Help>
     </Value>
-    <Value type="bool" index="90" genre="config" label="Enables/disables parameter 91/92" units="" value="0">
+    <Value genre="config" index="90" label="Enables/disables parameter 91/92" type="bool" units="" value="0">
       <Help>
 	Enable/disable Wattage threshold and percent.
       </Help>
     </Value>
-    <Value type="short" index="91" genre="config" label="Minimum Change to send Report (Watt)" units="watts" min="0" max="32000" size="2" value="25">
+    <Value genre="config" index="91" label="Minimum Change to send Report (Watt)" max="32000" min="0" size="2" type="short" units="watts" value="25">
       <Help>The value represents the minimum change in wattage for a Report to be sent (default 25 W)</Help>
     </Value>
-    <Value type="byte" index="92" genre="config" label="Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="92" label="Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>The value represents the minimum percentage change in wattage for a Report to be sent (Default 5)</Help>
     </Value>
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" write_only="true">
       <Help>
 	Set report types for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type sent in Reporting Group 1" size="4" value="0">
+    <Value genre="config" index="101" label="Report type sent in Reporting Group 1" size="4" type="int" value="0">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -79,7 +103,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584701
 		     bit 0 Voltage
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type sent in Reporting Group 2" size="4" value="0">
+    <Value genre="config" index="102" label="Report type sent in Reporting Group 2" size="4" type="int" value="0">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -92,7 +116,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584701
 		     bit 0 Voltage
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type sent in Reporting Group 3" size="4" value="0">
+    <Value genre="config" index="103" label="Report type sent in Reporting Group 3" size="4" type="int" value="0">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -105,54 +129,52 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584701
 		     bit 0 Voltage
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Set 111 to 113 to default" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Set 111 to 113 to default" type="button" units="" value="0" write_only="true">
       <Help>
 	Set time interval for sending reports for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="111" genre="config" label="Send Interval for Reporting Group 1" units="seconds" size="4" min="0" max="4294967295" value="3">
+    <Value genre="config" index="111" label="Send Interval for Reporting Group 1" max="4294967295" min="0" size="4" type="int" units="seconds" value="3">
       <Help>
 	Defines the time interval when the defined report for group 1 is sent.
       </Help>
     </Value>
-    <Value type="int" index="112" genre="config" label="Send Interval for Reporting Group 2" units="seconds" size="4" min="0" max="4294967295" value="600">
+    <Value genre="config" index="112" label="Send Interval for Reporting Group 2" max="4294967295" min="0" size="4" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 2 is sent.
       </Help>
     </Value>
-    <Value type="int" index="113" genre="config" label="Send Interval for Reporting Group 3" units="seconds" size="4" min="0" max="4294967295" value="600">
+    <Value genre="config" index="113" label="Send Interval for Reporting Group 3" max="4294967295" min="0" size="4" type="int" units="seconds" value="600">
       <Help>
 	Defines the time interval when the defined report for group 3 is sent.
       </Help>
     </Value>
-    <Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Partner ID</Help>
       <Item label="Aeon Labs Standard (Default)" value="0"/>
       <Item label="Others" value="1"/>
     </Value>
-    <Value type="list" index="252" genre="config" label="Configuration Locked" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="252" label="Configuration Locked" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable/disable Configuration Locked</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>
 	Device tag.
       </Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" write_only="true">
       <Help>
 	Reset to the default configuration.
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="LifeLine" />
-      <Group index="2" max_associations="5" label="Retransmit Switch CC" />
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Retransmit Switch CC" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/zw097.xml b/Config/aeotec/zw097.xml
index 86d59cbd05..73e74a18b0 100644
--- a/Config/aeotec/zw097.xml
+++ b/Config/aeotec/zw097.xml
@@ -1,31 +1,49 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 Aeotec ZW097 Dry Contact Sensor Gen5 base on Engineering Spec 06/05/2015 rev 2 
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584692
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>    
+--><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0061:0102</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw097.png</MetaDataItem>
+    <MetaDataItem id="0061" name="ZWProductPage" type="0102">https://products.z-wavealliance.org/products/1495/</MetaDataItem>
+    <MetaDataItem name="Name">Dry Contact Sensor Gen5 </MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Action Button that you can find in the back of the product.</MetaDataItem>
+    <MetaDataItem id="0061" name="FrequencyName" type="0102">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0061" name="Identifier" type="0102">ZW097-A</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press the Action Button once that you can find in back of the product for 20 seconds and then release. This procedure should only be used when the primary controller is inoperable.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1495/Dry Contact Sensor Gen5 manual.pdf</MetaDataItem>
+    <MetaDataItem name="Description">Aeon Labs Dry Contact Sensor Gen5 is a dry conatct sensor that can detect a variety of dry contact signals, you just need to connect the matched external sensor on it, such as the water level sensor, dry contact switch, dry contact relay and so on. In other words, it can be used if the external sensor is a dry contact. 
+It’s a security Z-Wave device that supports security encryption. Also it supports the “Over the Air Firmware Updating” that allows you wirelessly update its firmware if needs. 
+It can be included and operated in any Z-Wave network with other Z-Wave certified devices from manufacturers and/or other applications.
+</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press the Action Button once, which will trigger sending out the Wake up notification command, press and hold the Action Button for 3 seconds, which will toggle on/off the Sensor be waked up for 10 minutes.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Action Button that you can find in back of the product.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1495/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" genre="config" instance="1" index="1" label="Sensor Binary Report" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="1" instance="1" label="Sensor Binary Report" max="1" min="0" size="1" type="list" value="0">
       <Help>Which value of the Sensor Binary Report will be sent when the door is Opened/Closed</Help>
       <Item label="Open: 0xFF, Close: 0x00" value="0"/>
       <Item label="Open: 0x00, Close: 0xFF" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="2" label="Wakeup at Poweron" min="0" max="1" value="1" size="1">
+    <Value genre="config" index="2" instance="1" label="Wakeup at Poweron" max="1" min="0" size="1" type="list" value="1">
       <Help>Enable/disable wake up 10 minutes when re-power on the Sensor.
         Default setting: Enable</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="3" label="Basic Set Report" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="3" instance="1" label="Basic Set Report" max="1" min="0" size="1" type="list" value="0">
       <Help>Which value of the Basic Set will be sent when the door is Opened/Closed</Help>
       <Item label="Open: 0xFF, Close: 0x00" value="0"/>
       <Item label="Open: 0x00, Close: 0xFF" value="1"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="39" label="Set the low battery value" min="10" max="50" value="10" size="1">
+    <Value genre="config" index="39" instance="1" label="Set the low battery value" max="50" min="10" size="1" type="byte" value="10">
       <Help>10% to 50%</Help>
     </Value>
-    <Value type="int" genre="config" instance="1" index="111" label="Interval time of battery report" size="4" min="0" max="2147483647" value="0">
+    <Value genre="config" index="111" instance="1" label="Interval time of battery report" max="2147483647" min="0" size="4" type="int" value="0">
       <Help>
         Set the interval time of battery report.
         Value=0, disable the battery report for a interval time.
@@ -37,14 +55,14 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584692
         2, if the current battery report falls below the low battery value (configurable parameter 39), it will send battery report=0xFF.
       </Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="121" label="Report Type" size="4" min="0" max="65535" value="256">
+    <Value genre="config" index="121" instance="1" label="Report Type" max="65535" min="0" size="4" type="list" value="256">
       <Help>Configure which sensor report will be sent when the sensor is Opened/Closed</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Basic Set" value="256"/>
       <Item label="Sensor Binary Report" value="16"/>
       <Item label="Basic Set and Sensor Binary Report" value="272"/>
     </Value>
-    <Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
       <Help>Reset to factory defaults</Help>
       <Item label="Reset to factory default setting" value="0"/>
       <Item label="Normal" value="1"/>
@@ -52,12 +70,15 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584692
     </Value>
   </CommandClass>
   <!-- Basic set as report-->
-  <CommandClass id="32" setasreport="true"/>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/zw098.xml b/Config/aeotec/zw098.xml
index eb51257083..1076b1f066 100644
--- a/Config/aeotec/zw098.xml
+++ b/Config/aeotec/zw098.xml
@@ -1,93 +1,122 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<!-- Aeotec LED Bulb --><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0062:0103</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw098.png</MetaDataItem>
+    <MetaDataItem id="0062" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/1368/</MetaDataItem>
+    <MetaDataItem name="Description">Aeotec LED Bulb is a low-cost Z-Wave LED module which allows control (on/off/dim) with the use of Z-Wave. 
+It’s a bulb has a Smart RGB LED, which can be used to add colour to your home. The bulb has 5 main colour channels available for you to adjust: Red, Green, Blue, Warm White and Cold White. You can configure its colour according to your favour.
+The LED Bulb is also a security Z-wave device and supports the Over The Air (OTA) feature for the product’s firmware upgrade.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1380/Aeon Labs LED Bulb manual 2.pdf</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, press the external switch of LED Bulb to turn off and then press the external switch again to turn on it, repeat the operation 3 times.</MetaDataItem>
+    <MetaDataItem id="0062" name="Identifier" type="0103">ZW098-A52</MetaDataItem>
+    <MetaDataItem id="0062" name="FrequencyName" type="0103">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, press the external switch of LED Bulb to turn it off and then press the external switch again to turn it on.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">N/A</MetaDataItem>
+    <MetaDataItem name="Name">LED Bulb</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Turn the controller of Z-Wave network into exclusion mode, press the external switch of LED Bulb to turn off and then press the external switch again to turn on it, repeat the operation 3 times.
+After the LED Bulb is excluded from network, it will be reset to factory default state.
+Use this procedure only in the event that your primary network controller is missing or inoperable.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1315/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1368/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1379/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1380/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0062" name="ZWProductPage" type="0203">https://products.z-wavealliance.org/products/1379/</MetaDataItem>
+    <MetaDataItem id="0062" name="FrequencyName" type="0203">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="0062" name="Identifier" type="0203">ZW098-B55</MetaDataItem>
+    <MetaDataItem id="0062" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1380/</MetaDataItem>
+    <MetaDataItem id="0062" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0062" name="Identifier" type="0003">ZW098-C55</MetaDataItem>
+  </MetaData>
+  <!-- 
 Aeotec ZW098 LED Bulb
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584691 v1.04 
 https://aeotec.freshdesk.com/helpdesk/attachments/6034356249 v1.05
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
 	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="20" genre="config" label="State after re-power" min="0" max="2" value="1" size="1">
-			<Help>The Bulb state after re-power on it.</Help>
-			<Item label="The last state before re-power on" value="0" />
-			<Item label="Always On" value="1" />
-			<Item label="Always Off" value="2" />
-		</Value>
-		<Value type="list" index="32" genre="config" label="Send out a report when the color is changed" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable to send out a report when the color is changed</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Hail CC" value="1" />
-		</Value>
-		<Value type="int" index="33" genre="config" label="Get the Bulb color value" min="0" max="4294967295" value="0" size="4" read_only="true">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="20" label="State after re-power" max="2" min="0" size="1" type="list" value="1">
+      <Help>The Bulb state after re-power on it.</Help>
+      <Item label="The last state before re-power on" value="0"/>
+      <Item label="Always On" value="1"/>
+      <Item label="Always Off" value="2"/>
+    </Value>
+    <Value genre="config" index="32" label="Send out a report when the color is changed" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable to send out a report when the color is changed</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Hail CC" value="1"/>
+    </Value>
+    <Value genre="config" index="33" label="Get the Bulb color value" max="4294967295" min="0" read_only="true" size="4" type="int" value="0">
+      <Help>
 			Value 1 = Reserved.
 			Value 2 = Red color value.
 			Value 3 = Green color value.
 			Value 4 = Blue color value.
 			Note: This parameter is a get-only parameter
 			</Help>
-		</Value>
-		<Value type="list" index="34" genre="config" label="Use External Switch to turn on/off the bulb" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable the function of using External Switch to turn on/off the bulb</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="list" index="35" genre="config" label="Use External Switch to changes the bulb color" min="0" max="1" value="1" size="1">
-			<Help>Enable/disable the function of using External Switch to changes the bulb color</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="list" index="36" genre="config" label="Colorful mode" min="0" max="3" value="0" size="1">
-			<Help>Reboot/save/exit Colorful mode</Help>
-			<Item label="Un-reboot Colorful mode" value="0" />
-			<Item label="Reboot Colorful mode" value="1" />
-			<Item label="Exit Colorful mode" value="2" />
-			<Item label="Save the current Colorful mode value and then to be exited" value="3" />
-		</Value>
-		<Value type="int" index="37" genre="config" label="Colorful mode configuration" min="0" max="4294967295" value="157483008" size="4">
-			<Help>Colorful mode configuration (See https://aeotec.freshdesk.com/helpdesk/attachments/6035749140)</Help>
-		</Value>
-		<Value type="int" index="38" genre="config" label="Change speed" min="0" max="4294967295" value="50332416" size="4">
-			<Help>
+    </Value>
+    <Value genre="config" index="34" label="Use External Switch to turn on/off the bulb" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable the function of using External Switch to turn on/off the bulb</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="35" label="Use External Switch to changes the bulb color" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable/disable the function of using External Switch to changes the bulb color</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="36" label="Colorful mode" max="3" min="0" size="1" type="list" value="0">
+      <Help>Reboot/save/exit Colorful mode</Help>
+      <Item label="Un-reboot Colorful mode" value="0"/>
+      <Item label="Reboot Colorful mode" value="1"/>
+      <Item label="Exit Colorful mode" value="2"/>
+      <Item label="Save the current Colorful mode value and then to be exited" value="3"/>
+    </Value>
+    <Value genre="config" index="37" label="Colorful mode configuration" max="4294967295" min="0" size="4" type="int" value="157483008">
+      <Help>Colorful mode configuration (See https://aeotec.freshdesk.com/helpdesk/attachments/6035749140)</Help>
+    </Value>
+    <Value genre="config" index="38" label="Change speed" max="4294967295" min="0" size="4" type="int" value="50332416">
+      <Help>
 			Value 1: the speed from OFF to ON.
 			Value 2: the speed from ON to OFF.
 			Value 3: pause time of ON.
 			Value 4: pause time of OFF.
 			</Help>
-		</Value>
-		<Value type="int" index="39" genre="config" label="Color index configuration when the bulb is in Multi color mode" min="0" max="4294967295" value="2271560481" size="4">
-			<Help>Color index configuration when the bulb is in Multi color mode (See https://aeotec.freshdesk.com/helpdesk/attachments/6035749140)</Help>
-		</Value>
-		<Value type="list" index="80" genre="config" label="Send notifications to associated devices (Lifeline)" min="0" max="2" value="2" size="1">
-			<Help>Enable to send notifications to associated devices (Lifeline) when the state of LED Bulb is changed</Help>
-			<Item label="Nothing" value="0" />
-			<Item label="Hail" value="1" />
-			<Item label="Basic" value="2" />
-		</Value>
-		<Value type="list" index="112" genre="config" label="Dimmer mode" min="0" max="3" value="0" size="1">
-			<Help>Enable to send notifications to associated devices (Lifeline) when the state of LED Bulb is changed</Help>
-			<Item label="Parabolic curve" value="0" />
-			<Item label="Index curve" value="1" />
-			<Item label="(Parabolic + Index)/2" value="2" />
-			<Item label="Linear" value="3" />
-		</Value>		  
-		<Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
-			<Help>Lock/ unlock all configuration parameters</Help>
-			<Item label="Unlock" value="0"/>
-			<Item label="Lock" value="1"/>
-		</Value>
-		<Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-      		<Help>Reset to factory defaults</Help>
-      		<Item label="Reset to factory default setting" value="0"/>
-      		<Item label="Normal" value="1"/>
-      		<Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-    	</Value>
-    </CommandClass>    
-    <!-- Association Groups -->
-	<CommandClass id="133">
-	    <Associations num_groups="2">
-			<Group index="1" max_associations="5" label="Lifeline" />
-			<Group index="2" max_associations="5" label="Retransmit" />
-	    </Associations>
+    </Value>
+    <Value genre="config" index="39" label="Color index configuration when the bulb is in Multi color mode" max="4294967295" min="0" size="4" type="int" value="2271560481">
+      <Help>Color index configuration when the bulb is in Multi color mode (See https://aeotec.freshdesk.com/helpdesk/attachments/6035749140)</Help>
+    </Value>
+    <Value genre="config" index="80" label="Send notifications to associated devices (Lifeline)" max="2" min="0" size="1" type="list" value="2">
+      <Help>Enable to send notifications to associated devices (Lifeline) when the state of LED Bulb is changed</Help>
+      <Item label="Nothing" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
+    </Value>
+    <Value genre="config" index="112" label="Dimmer mode" max="3" min="0" size="1" type="list" value="0">
+      <Help>Enable to send notifications to associated devices (Lifeline) when the state of LED Bulb is changed</Help>
+      <Item label="Parabolic curve" value="0"/>
+      <Item label="Index curve" value="1"/>
+      <Item label="(Parabolic + Index)/2" value="2"/>
+      <Item label="Linear" value="3"/>
+    </Value>
+    <Value genre="config" index="252" label="Lock/Unlock Configuration" max="1" min="0" size="1" type="list" value="0">
+      <Help>Lock/ unlock all configuration parameters</Help>
+      <Item label="Unlock" value="0"/>
+      <Item label="Lock" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Retransmit" max_associations="5"/>
+    </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw099.xml b/Config/aeotec/zw099.xml
index 2cbb232586..cdcec275d1 100644
--- a/Config/aeotec/zw099.xml
+++ b/Config/aeotec/zw099.xml
@@ -1,13 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Aeotec ZW099 Smart Dimmer 6
-https://aeotec.freshdesk.com/helpdesk/attachments/6009584700
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Aeon Labs Smart Dimmer 6 -->
   <Protocol refreshonnodeinfoframe="false"/>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-	<!--  Doesn't work 
+    <!--  Doesn't work 
 	<Value type="byte" index="2" genre="config" label="Dimmer Blink" units="" size="2" value="250">
 		<Help>Configuration Value 1 1-255
 		Configuration Value 1 is to Specify the time that Dimmer need blink, The unit is Second;
@@ -18,17 +14,17 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584700
 		</Help>
 	</Value>
 	-->
-    <Value type="list" index="3" genre="config" label="Current Overload Protection" units="" min="0" max="1" size="1" value="1">
+    <Value genre="config" index="3" label="Current Overload Protection" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>Load will be closed when the Current overruns (US 15.5A, Others 16.2) for more than 2 minutes</Help>
       <Item label="Deactivate Overload Protection (Default)" value="0"/>
       <Item label="Active Overload Protection" value="1"/>
     </Value>
-    <Value type="list" index="20" genre="config" label="Output Load Status" units="" min="0" max="2" size="1" value="0">
+    <Value genre="config" index="20" label="Output Load Status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Configure the output load status after re-power on.</Help>
       <Item label="Last status (Default)" value="0"/>
       <Item label="Always on" value="1"/>
       <Item label="Always off" value="2"/>
-    </Value>    
+    </Value>
     <!--  Doesn't work
     <Value type="byte" index="33" genre="config" label="RGB Led Color for Testing" units="" min="1" max="4" size="1" value="0">
       <Help>Configure the RGB Led Color for Testing
@@ -38,49 +34,49 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584700
       Byte 4 - Blue Value</Help>
     </Value>    
     -->
-    <Value type="list" index="80" genre="config" label="Notification status" units="" min="0" max="2" size="1" value="0">
+    <Value genre="config" index="80" label="Notification status" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>Defines the automated status notification of an associated device when status changes</Help>
-      <Item label="Nothing" value="0" />
-      <Item label="Hail" value="1" />
-      <Item label="Basic" value="2" />
-    </Value>
-    <Value type="list" index="81" genre="config" label="Configure the state of the LED" units="" min="0" max="1" size="1" value="0">
-    	<Help>Configure what the LED Ring displays during operations</Help>
-    	<Item label="The LED will follow the status (on/off) of its load. (Default)" value="0"/>
-    	<Item label="When the state of the Switch changes, the LED will follow the status (on/off) of its load, but the LED will turn off after 5 seconds." value="1"/> 
-    	<Item label="Night Light Mode" value="2" />
-    </Value>
-    <Value type="int" index="83" genre="config" label="Night Light Color" units="" min="0" max="16777215" size="3" value="14524637" read_only="true">
-    	<Help>Configure the RGB Value when in Night Light Mode.
+      <Item label="Nothing" value="0"/>
+      <Item label="Hail" value="1"/>
+      <Item label="Basic" value="2"/>
+    </Value>
+    <Value genre="config" index="81" label="Configure the state of the LED" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Configure what the LED Ring displays during operations</Help>
+      <Item label="The LED will follow the status (on/off) of its load. (Default)" value="0"/>
+      <Item label="When the state of the Switch changes, the LED will follow the status (on/off) of its load, but the LED will turn off after 5 seconds." value="1"/>
+      <Item label="Night Light Mode" value="2"/>
+    </Value>
+    <Value genre="config" index="83" label="Night Light Color" max="16777215" min="0" read_only="true" size="3" type="int" units="" value="14524637">
+      <Help>Configure the RGB Value when in Night Light Mode.
     	Byte 1: Red Color
     	Byte 2: Green Color
     	Byte 3: Blue Color
     	</Help>
     </Value>
-    <Value type="int" index="84" genre="config" label="RGB Brightness in Energy Mode" units="" min="0" max="16777215" size="3" value="5263440" read_only="true">
-    	<Help>Configure the brightness level of RGB LED (0%-100%) when it is in Energy Mode/momentary indicate mode.
+    <Value genre="config" index="84" label="RGB Brightness in Energy Mode" max="16777215" min="0" read_only="true" size="3" type="int" units="" value="5263440">
+      <Help>Configure the brightness level of RGB LED (0%-100%) when it is in Energy Mode/momentary indicate mode.
     	Byte 1: Red Color
     	Byte 2: Green Color
     	Byte 3: Blue Color
     	</Help>
     </Value>
-    <Value type="bool" index="90" genre="config" label="Enables/disables parameter 91/92" units="" value="0">
+    <Value genre="config" index="90" label="Enables/disables parameter 91/92" type="bool" units="" value="0">
       <Help>
 	Enable/disable Wattage threshold and percent.
       </Help>
     </Value>
-    <Value type="short" index="91" genre="config" label="Minimum Change to send Report (Watt)" units="watts" min="0" max="32000" size="2" value="25">
+    <Value genre="config" index="91" label="Minimum Change to send Report (Watt)" max="32000" min="0" size="2" type="short" units="watts" value="25">
       <Help>The value represents the minimum change in wattage for a Report to be sent (default 25 W)</Help>
     </Value>
-    <Value type="byte" index="92" genre="config" label="Minimum Change to send Report (%)" units="%" min="0" max="100" value="5">
+    <Value genre="config" index="92" label="Minimum Change to send Report (%)" max="100" min="0" type="byte" units="%" value="5">
       <Help>The value represents the minimum percentage change in wattage for a Report to be sent (Default 5)</Help>
     </Value>
-    <Value type="button" index="100" genre="config" label="Default Group Reports" units="" write_only="true" affects="101,102,103">
+    <Value affects="101,102,103" genre="config" index="100" label="Default Group Reports" type="button" units="" write_only="true">
       <Help>
 	Set report types for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-    <Value type="int" index="101" genre="config" label="Report type sent in Reporting Group 1" size="4" value="0">
+    <Value genre="config" index="101" label="Report type sent in Reporting Group 1" size="4" type="int" value="0">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -94,7 +90,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584700
 		bit 0 Voltage
       </Help>
     </Value>
-    <Value type="int" index="102" genre="config" label="Report type sent in Reporting Group 2" size="4" value="0">
+    <Value genre="config" index="102" label="Report type sent in Reporting Group 2" size="4" type="int" value="0">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -108,7 +104,7 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584700
 		bit 0 Voltage
       </Help>
     </Value>
-    <Value type="int" index="103" genre="config" label="Report type sent in Reporting Group 3" size="4" value="0">
+    <Value genre="config" index="103" label="Report type sent in Reporting Group 3" size="4" type="int" value="0">
       <Help>
 	Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts.
 	 Value 1 (msb) Reserved
@@ -122,55 +118,58 @@ https://aeotec.freshdesk.com/helpdesk/attachments/6009584700
 		bit 0 Voltage
       </Help>
     </Value>
-    <Value type="button" index="110" genre="config" label="Set 111 to 113 to default" units="" write_only="true" value="0" affects="111,112,113">
+    <Value affects="111,112,113" genre="config" index="110" label="Set 111 to 113 to default" type="button" units="" value="0" write_only="true">
       <Help>
 	Set time interval for sending reports for groups 1, 2 and 3 to default.
       </Help>
     </Value>
-      <Value type="int" index="111" genre="config" label="Send Interval for Reporting Group 1" units="seconds" size="4" min="0" max="4294967295" value="3">
-          <Help>
+    <Value genre="config" index="111" label="Send Interval for Reporting Group 1" max="4294967295" min="0" size="4" type="int" units="seconds" value="3">
+      <Help>
               Defines the time interval when the defined report for group 1 is sent.
           </Help>
-      </Value>
-      <Value type="int" index="112" genre="config" label="Send Interval for Reporting Group 2" units="seconds" size="4" min="0" max="4294967295" value="600">
-          <Help>
+    </Value>
+    <Value genre="config" index="112" label="Send Interval for Reporting Group 2" max="4294967295" min="0" size="4" type="int" units="seconds" value="600">
+      <Help>
               Defines the time interval when the defined report for group 2 is sent.
           </Help>
-      </Value>
-      <Value type="int" index="113" genre="config" label="Send Interval for Reporting Group 3" units="seconds" size="4" min="0" max="4294967295" value="600">
-          <Help>
+    </Value>
+    <Value genre="config" index="113" label="Send Interval for Reporting Group 3" max="4294967295" min="0" size="4" type="int" units="seconds" value="600">
+      <Help>
               Defines the time interval when the defined report for group 3 is sent.
           </Help>
-      </Value>
-    <Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
+    </Value>
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Partner ID</Help>
       <Item label="Aeon Labs Standard (Default)" value="0"/>
       <Item label="Others" value="1"/>
     </Value>
-    <Value type="list" index="252" genre="config" label="Configuration Locked" units="" min="0" max="1" size="1" value="0">
+    <Value genre="config" index="252" label="Configuration Locked" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Enable/disable Configuration Locked</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
       <Help>
 	Device tag.
       </Help>
     </Value>
-    <Value type="button" index="255" genre="config" label="Reset device" units="" write_only="true">
+    <Value genre="config" index="255" label="Reset device" type="button" units="" write_only="true">
       <Help>
 	Reset to the default configuration.
       </Help>
     </Value>
   </CommandClass>
-  <CommandClass id="96" mapping="endpoints" forceUniqueEndpoints="true" />
-  
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+      <ForceUniqueEndpoints>true</ForceUniqueEndpoints>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="LifeLine" />
-      <Group index="2" max_associations="5" label="Retransmit Switch CC" />
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Retransmit Switch CC" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/aeotec/zw100.xml b/Config/aeotec/zw100.xml
index 15b2a25c44..47a6025f40 100644
--- a/Config/aeotec/zw100.xml
+++ b/Config/aeotec/zw100.xml
@@ -1,115 +1,177 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 Aeotec ZW100 MultiSensor 6
 https://aeotec.freshdesk.com/helpdesk/attachments/6028954764
 V1.10 + V1.11 (12/14/2017)
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="2" genre="config" label="Wake up 10 minutes on Power On" min="0" max="1" value="0" size="1">
-			<Help>Enable/Disable waking up for 10 minutes when re-power on (battery mode) the MultiSensor</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="short" index="3" genre="config" label="On time" units="seconds" min="10" max="3600" value="240">
-			<Help>Duration that the motion sensor must observe no motion before it will return to the no-motion state.
+--><Product Revision="19" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0064:0102</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zw100.png</MetaDataItem>
+    <MetaDataItem id="0064" name="ZWProductPage" type="0102">https://products.z-wavealliance.org/products/1390/</MetaDataItem>
+    <MetaDataItem id="0064" name="FrequencyName" type="0102">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Pressing the Z-Wave button once will trigger sending the Wake up notification command. If press and hold the Z-Wave button for 3 seconds, the MultiSensor will wake up for 10 minutes.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, short press the product’s Z-Wave button that you can find in the back of the product.</MetaDataItem>
+    <MetaDataItem id="0064" name="Identifier" type="0102">ZW100-A</MetaDataItem>
+    <MetaDataItem name="Name">MultiSensor 6</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, short press the product’s Z-Wave button that you can find in back of the product.</MetaDataItem>
+    <MetaDataItem name="Description">Aeotec by Aeon Labs’ MultiSensor looks like a motion sensor and it acts like one too. But it’s also so much more. Installing this 1 piece of Z-Wave® technology is the same as installing 6 pieces of Z-Wave technology. Your home control network will immediately understand motion, temperature, humidity, light, Ultraviolet and Vibration readings wherever MultiSensor installed. Those intelligent readings will equate to intelligence automation. And intelligent automation will give you the perfect, smart home.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Z-Wave button that you can find in back of the product for 20 seconds and then release. This procedure should only be used when the primary controller is inoperable.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1404/Aeon Labs MultiSensor 6 manual.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="17">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1390/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="18">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1403/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="19">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1404/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0064" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1403/</MetaDataItem>
+    <MetaDataItem id="0064" name="Identifier" type="0002">ZW100-C</MetaDataItem>
+    <MetaDataItem id="0064" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0064" name="ZWProductPage" type="0202">https://products.z-wavealliance.org/products/1404/</MetaDataItem>
+    <MetaDataItem id="0064" name="Identifier" type="0202">ZW100-B</MetaDataItem>
+    <MetaDataItem id="0064" name="FrequencyName" type="0202">Australia / New Zealand</MetaDataItem>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="Wake up 10 minutes on Power On" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/Disable waking up for 10 minutes when re-power on (battery mode) the MultiSensor</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+      <Item label="Disable-fr" lang="fr" value="0"/>
+      <Item label="Enable-Fr" lang="fr" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="On time" max="3600" min="10" type="short" units="seconds" value="240">
+      <Help>Duration that the motion sensor must observe no motion before it will return to the no-motion state.
 			If value greater than 255, effective value is rounded up to the nearest minute (255 -> 255 seconds, 256 -> 300 seconds)</Help>
-		</Value>
-		<Value type="list" index="4" genre="config" label="Enable Motion Sensor" min="0" max="1" value="5" size="1">
-			<Help>Enable Motion Sensor, (1 minimum, 5 maximum sensitivity level)</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled level 1" value="1" />
-			<Item label="Enabled level 2" value="2" />
-			<Item label="Enabled level 3" value="3" />
-			<Item label="Enabled level 4" value="4" />
-			<Item label="Enabled level 5" value="5" />
-		</Value>
-		<Value type="list" index="5" genre="config" label="Command Options" min="1" max="2" value="1" size="1">		
-			<Help>Which commands to send when PIR motion sensor triggered
+    </Value>
+    <Value genre="config" index="4" label="Enable Motion Sensor" max="1" min="0" size="1" type="list" value="5">
+      <Help>Enable Motion Sensor, (1 minimum, 5 maximum sensitivity level)</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled level 1" value="1"/>
+      <Item label="Enabled level 2" value="2"/>
+      <Item label="Enabled level 3" value="3"/>
+      <Item label="Enabled level 4" value="4"/>
+      <Item label="Enabled level 5" value="5"/>
+    </Value>
+    <Value genre="config" index="5" label="Command Options" max="2" min="1" size="1" type="list" value="1">
+      <Help>Which commands to send when PIR motion sensor triggered
 			OZW Ideal Value is Binary Sensor Report</Help>
-			<Item label="Basic Set" value="1" />
-			<Item label="Binary Sensor Report" value="2" />
-		</Value>
-		<Value type="byte" index="8" genre="config" label="Awake timeout" min="8" max="255" value="30" size="1">
-			<Help>
+      <Item label="Basic Set" value="1"/>
+      <Item label="Binary Sensor Report" value="2"/>
+    </Value>
+    <Value genre="config" index="8" label="Awake timeout" max="255" min="8" size="1" type="byte" value="30">
+      <Help>
 			Set the timeout of awake after the Wake Up CC is sent out.
 			Available rang: 8 to 255 seconds.
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="9" label="Current power mode" min="0" max="257" size="2" value="0" read_only="true">
-			<Help>Report the current power mode and the product state for battery power mode</Help>
-			<Item label="USB power, sleeping mode after re-power on" value="0"/>
-			<Item label="USB power, keep awake for 10 minutes after re-power on" value="1"/>
-			<Item label="Battery power, sleeping mode after re-power on" value="256"/>
-			<Item label="Battery power, keep awake for 10 minutes after re-power on" value="257"/>
-		</Value>
-		<Value type="byte" index="39" genre="config" label="Low Battery" min="10" max="50" value="20" size="1">
-			<Help>Configure low battery value
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Current power mode" max="257" min="0" read_only="true" size="2" type="list" value="0">
+      <Help>Report the current power mode and the product state for battery power mode</Help>
+      <Item label="USB power, sleeping mode after re-power on" value="0"/>
+      <Item label="USB power, keep awake for 10 minutes after re-power on" value="1"/>
+      <Item label="Battery power, sleeping mode after re-power on" value="256"/>
+      <Item label="Battery power, keep awake for 10 minutes after re-power on" value="257"/>
+    </Value>
+    <Value genre="config" index="39" label="Low Battery" max="50" min="10" size="1" type="byte" value="20">
+      <Help>Configure low battery value
 			Value=10 to 50.</Help>
-		</Value>
-		<Value type="list" index="40" genre="config" label="Report Only On Thresholds" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable the selective reporting only when measurements reach a certain threshold or percentage 
+    </Value>
+    <Value genre="config" index="40" label="Report Only On Thresholds" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable the selective reporting only when measurements reach a certain threshold or percentage 
 			set in the threshold settings.  This is used to reduce network
 			traffic.</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled" value="1" />
-		</Value>
-		<Value type="int" index="41" genre="config" label="Temperature Reporting Threshold" units="C/F" min="0" max="39321" value="20" size="4">
-			<Help>Threshold change in temperature to induce an automatic report.  
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="41" label="Temperature Reporting Threshold" max="39321" min="0" size="4" type="int" units="C/F" value="20">
+      <Help>Threshold change in temperature to induce an automatic report.  
 			Note: 
 			1. The unit is Fahrenheit for US version, Celsius for EU/AU version.
 			2. The value contains one decimal point. E.g. if the value is set to 20, the threshold value = 2.0 C (EU/AU) or 2.0 F (US). When the temperature has changed by 2.0 (of the appropriate unit), a temperature report will be sent.
 			</Help>
-		</Value>
-		<Value type="byte" index="42" genre="config" label="Humidity Reporting Threshold" units="%" min="0" max="100" value="10" size="1">
-			<Help>Threshold change in humidity to induce an automatic report. 
+    </Value>
+    <Value genre="config" index="42" label="Humidity Reporting Threshold" max="100" min="0" size="1" type="byte" units="%" value="10">
+      <Help>Threshold change in humidity to induce an automatic report. 
 			Note: 
 			1. The unit is %.
 			2. The default value is 10, which means that a 10% change in humidity will trigger a report.
 			</Help>
-		</Value>
-		<Value type="short" index="43" genre="config" label="Luminance Reporting Threshold" units="LUX" min="0" max="1000" value="100" size="2">
-			<Help>Threshold change in luminance to induce an automatic report.</Help>
-		</Value>
-		<Value type="byte" index="44" genre="config" label="Battery Reporting Threshold" units="%" min="0" max="100" value="10" size="1">
-			<Help>Threshold change in battery level to induce an  automatic report. 
+    </Value>
+    <Value genre="config" index="43" label="Luminance Reporting Threshold" max="1000" min="0" size="2" type="short" units="LUX" value="100">
+      <Help>Threshold change in luminance to induce an automatic report.</Help>
+    </Value>
+    <Value genre="config" index="44" label="Battery Reporting Threshold" max="100" min="0" size="1" type="byte" units="%" value="10">
+      <Help>Threshold change in battery level to induce an  automatic report. 
 			Note: 
 			1. The unit is %.
 			2. The default value is 10, which means that a 10% change in battery will trigger a report.
 			</Help>
-		</Value>
-		<Value type="byte" index="45" genre="config" label="UV Reporting Threshold" units="" min="0" max="255" value="2" read_only="true">
-			<Help>Threshold change in ultraviolet to induce an automatic report.
+    </Value>
+    <Value genre="config" index="45" label="UV Reporting Threshold" max="255" min="0" read_only="true" type="byte" units="" value="2">
+      <Help>Threshold change in ultraviolet to induce an automatic report.
 			</Help>
-		</Value>
-		<Value type="list" index="46" genre="config" label="Low Temp Alarm" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable to send the alarm report of low temperature(Less than 15 Degress C)
+    </Value>
+    <Value genre="config" index="46" label="Low Temp Alarm" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable to send the alarm report of low temperature(Less than 15 Degress C)
 			</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled" value="1" />
-		</Value>
-		<Value type="byte" index="48" genre="config" label="Enable/disable to send a report on Threshold" units="" min="0" max="255" value="0" >
-			<Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value bitmask="255" genre="config" index="48" label="Enable/disable to send a report on Threshold" size="1" type="bitset" units="" value="0">
+      <Help>
 			Enable/disable to send a report when the measurement is more than the upper limit value or less than the lower limit value.
-			Bit mask = 0, disable.
-			Bit mask = 1, enable.
-			Bit 0 = temperature.
-			Bit 1 = humidity.
-			Bit 2 = luminance.
-			Bit 3 = ultraviolet.
-			The above bit masks are used to enable/disable to send out a report when the measurement is less than the lower limit value.
-			The below bit masks are used to enable/disable to send out a report when the measurement is more than the upper limit value.
-			Bit 4 = temperature.
-			Bit 5 = humidity.
-			Bit 6 = luminance.
-			Bit 7 = ultraviolet.
 			Note: 
 			If USB power, the Sensor will check the limit every 10 seconds. If battery power, the Sensor will check the limit when it is waken up. 
 			</Help>
-		</Value>
-		<Value type="int" index="49" genre="config" label="Set the upper limit value of temperature sensor" value="71681" >
-			<Help>
+      <Help lang="fr">French Help</Help>
+      <Label lang="fr">Enable/disable to send a report on Threshold-fr</Label>
+      <BitSet id="1">
+        <Label>Lower Temperature</Label>
+        <Label lang="fr">Lower Temperature-fr</Label>
+        <Help>Lower Temperature Threshold</Help>
+        <Help lang="fr">Lower Temperature Threshold-fr</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Lower Humidity</Label>
+        <Label lang="fr">Lower Humidity-fr</Label>
+        <Help>Lower Humdity Threshold</Help>
+        <Help lang="fr">Lower Humdity Threshold-fr</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Lower Luminance</Label>
+        <Label lang="fr">Lower Luminance-fr</Label>
+        <Help>Lower Luminance Threshold</Help>
+        <Help lang="fr">Lower Luminance Threshold</Help>
+      </BitSet>
+      <BitSet id="4">
+        <Label>Lower Ultraviolet</Label>
+        <Label lang="fr">Lower Ultraviolet-fr</Label>
+        <Help>Lower Ultraviolet Threshold</Help>
+        <Help lang="fr">Lower Ultraviolet Threshold-fr</Help>
+      </BitSet>
+      <BitSet id="5">
+        <Label>Upper Temperature</Label>
+        <Label lang="fr">Upper Temperature-fr</Label>
+        <Help>Upper Temerature Threshold</Help>
+        <Help lang="fr">Upper Temerature Threshold-fr</Help>
+      </BitSet>
+      <BitSet id="6">
+        <Label>Upper Humidity</Label>
+        <Label lang="fr">Upper Humidity-fr</Label>
+        <Help>Upper Humdity Threshold</Help>
+        <Help lang="fr">Upper Humdity Threshold-fr</Help>
+      </BitSet>
+      <BitSet id="7">
+        <Label>Upper Luminance</Label>
+        <Label lang="fr">Upper Luminance-fr</Label>
+        <Help>Upper Luminance Threshold</Help>
+        <Help lang="fr">Upper Luminance Threshold-fr</Help>
+      </BitSet>
+      <BitSet id="8">
+        <Label>Upper Ultraviolet</Label>
+        <Label lang="fr">Upper Ultraviolet-fr</Label>
+        <Help>Upper Ultraviolet Threshold</Help>
+        <Help lang="fr">Upper Ultraviolet Threshold-fr</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="49" label="Set the upper limit value of temperature sensor" type="int" value="71681">
+      <Help>
 			When the measurement is more than this upper limit, which will trigger to sent out a sensor report.
 			High byte is the upper limit value. Low byte is the unit (0x01=Celsius, 0x02=Fahrenheit).
 			1. When unit is Celsius.
@@ -119,9 +181,9 @@ V1.10 + V1.11 (12/14/2017)
 			Upper limit range: -40.0 to 212.0 F (0xFE70 to 0x0848).
 			E.g. The default upper limit of US version is 82.4F (0X0338), when the measurement is more than 82.4F, it will be triggered to send out a temperature sensor report.
 			</Help>
-		</Value>
-		<Value type="int" index="50" genre="config" label="Set the lower limit value of temperature sensor" value="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="50" label="Set the lower limit value of temperature sensor" type="int" value="1">
+      <Help>
 			When the measurement is less than this lower limit, which will trigger to sent out a sensor report.
 			High byte is the lower limit value. Low byte is the unit (0x01=Celsius, 0x02=Fahrenheit).
 			1. When unit is Celsius.
@@ -131,51 +193,51 @@ V1.10 + V1.11 (12/14/2017)
 			Upper limit range: -40.0 to 212.0 F (0xFE70 to 0x0848).
 			E.g. The default lower limit of US version is 32.0F (0x0140), when the measurement is less than 32.0F, it will be triggered to send out a temperature sensor report.
 			</Help>
-		</Value>
-		<Value type="byte" index="51" genre="config" label="Set the upper limit value of humidity sensor" units="%" min="0" max="100" value="60" >
-			<Help>
+    </Value>
+    <Value genre="config" index="51" label="Set the upper limit value of humidity sensor" max="100" min="0" type="byte" units="%" value="60">
+      <Help>
 			When the measurement is more than this upper limit, which will trigger to sent out a sensor report.
 			Upper limit range: 0 to 100%.
 			E.g. The default upper limit is 60%, when the measurement is more than 60%, it will be triggered to send out a humidity sensor report. 
 			</Help>
-		</Value>
-		<Value type="byte" index="52" genre="config" label="Set the lower limit value of humidity sensor" units="%" min="0" max="100" value="50" >
-			<Help>
+    </Value>
+    <Value genre="config" index="52" label="Set the lower limit value of humidity sensor" max="100" min="0" type="byte" units="%" value="50">
+      <Help>
 			When the measurement is less than this lower limit, which will trigger to sent out a sensor report.
 			Lower limit range: 0 to 100%.
 			E.g. The default lower limit is 50%, when the measurement is less than 50%, it will be triggered to send out a humidity sensor report. 
 			</Help>
-		</Value>
-		<Value type="short" index="53" genre="config" label="Set the upper limit value of Lighting sensor" units="lux" min="0" max="30000" value="1000" >
-			<Help>
+    </Value>
+    <Value genre="config" index="53" label="Set the upper limit value of Lighting sensor" max="30000" min="0" type="short" units="lux" value="1000">
+      <Help>
 			When the measurement is more than this upper limit, which will trigger to sent out a sensor report.
 			Upper limit range: 0 to 30000 Lux.
 			E.g. The default upper limit is 1000Lux, when the measurement is more than 1000Lux, it will be triggered to send out a Lighting sensor report. 
 			</Help>
-		</Value>
-		<Value type="short" index="54" genre="config" label="Set the lower limit value of Lighting sensor" units="lux" min="0" max="30000" value="100" >
-			<Help>
+    </Value>
+    <Value genre="config" index="54" label="Set the lower limit value of Lighting sensor" max="30000" min="0" type="short" units="lux" value="100">
+      <Help>
 			When the measurement is less than this lower limit, which will trigger to sent out a sensor report.
 			Lower limit range: 0 to 30000 Lux.
 			E.g. The default lower limit is 100Lux, when the measurement is less than 100Lux, it will be triggered to send out a Lighting sensor report. 			
 			</Help>
-		</Value>
-		<Value type="byte" index="55" genre="config" label="Set the upper limit value of ultraviolet sensor" units="UV" min="1" max="11" value="8" >
-			<Help>
+    </Value>
+    <Value genre="config" index="55" label="Set the upper limit value of ultraviolet sensor" max="11" min="1" type="byte" units="UV" value="8">
+      <Help>
 			 When the measurement is more than this upper limit, which will trigger to sent out a sensor report.
 			 Upper limit range: 1 to 11.
 			 E.g. The default upper limit is 8, when the measurement is more than 8, it will be triggered to send out a ultraviolet sensor report. 
 			</Help>
-		</Value>
-		<Value type="byte" index="56" genre="config" label="Set the lower limit value of ultraviolet sensor" units="UV" min="1" max="11" value="4" >
-			<Help>
+    </Value>
+    <Value genre="config" index="56" label="Set the lower limit value of ultraviolet sensor" max="11" min="1" type="byte" units="UV" value="4">
+      <Help>
 			 When the measurement is less than this upper limit, which will trigger to sent out a sensor report.
 			 Lower limit range: 1 to 11.
 			 E.g. The default lower limit is 4, when the measurement is less than 8, it will be triggered to send out a ultraviolet sensor report.
 			</Help>
-		</Value>
-		<Value type="short" index="57" genre="config" label="Set the recover limit value of temperature sensor" value="5121" >
-			<Help>
+    </Value>
+    <Value genre="config" index="57" label="Set the recover limit value of temperature sensor" type="short" value="5121">
+      <Help>
 			Note:
 			1. When the current measurement lower or equal (Upper limit - Recover limit), the upper limit report is enabled and then it would send out a sensor report when the next measurement is more than the upper limit. 
 			After that, the upper limit report would be disabled again until the measurement lower or equal (Upper limit - Recover limit).
@@ -185,9 +247,9 @@ V1.10 + V1.11 (12/14/2017)
 			4. Recover limit range: 1.0 to 25.5 C/ F (0x0101 to 0xFF01 or 0x0102 to 0xFF02).
 			E.g. The default recover limit value is 2.0 C/F (0x1401/0x1402), when the measurement is less than (Upper limit - 2), the upper limit report would be enabled one time or when the measurement is more than (Lower limit + 2), the lower limit report would be enabled one time.
 			</Help>
-		</Value>
-		<Value type="byte" index="58" genre="config" label="Set the recover limit value of humidity sensor" units="%" min="1" max="255" value="5" >
-			<Help>
+    </Value>
+    <Value genre="config" index="58" label="Set the recover limit value of humidity sensor" max="255" min="1" type="byte" units="%" value="5">
+      <Help>
 			 Note:
 			1. When the current measurement lower or equal (Upper limit - Recover limit), the upper limit report is enabled and then it would send out a sensor report when the next measurement is more than the upper limit. 
 			After that the upper limit report would be disabled again until the measurement lower or equal (Upper limit - Recover limit).
@@ -195,10 +257,10 @@ V1.10 + V1.11 (12/14/2017)
 			After that the lower limit report would be disabled again until the measurement greater or equal(Lower limit + Recover limit).
 			3. Recover limit range: 1 to 50% (0x01 to 0x32).
 			E.g. The default recover limit value is 5%, when the measurement is less than (Upper limit - 5), the upper limit report would be enabled one time or when the measurement is more than (Lower limit + 5), the lower limit report would be enabled one time. 
-			</Help>			
-		</Value>
-		<Value type="byte" index="59" genre="config" label="Set the recover limit value of Lighting sensor" units="10xlux" min="1" max="255" value="10" >
-			<Help>
+			</Help>
+    </Value>
+    <Value genre="config" index="59" label="Set the recover limit value of Lighting sensor" max="255" min="1" type="byte" units="10xlux" value="10">
+      <Help>
 			Note:
 			1. When the current measurement lower or equal (Upper limit - Recover limit), the upper limit report is enabled and then it would send out a sensor report when the next measurement is more than the upper limit. 
 			After that the upper limit report would be disabled again until the measurement lower or equal (Upper limit - Recover limit).
@@ -208,9 +270,9 @@ V1.10 + V1.11 (12/14/2017)
 			4. Recover limit range: 10 to 2550Lux (0x01 to 0xFF).
 			E.g. The default recover limit value is 100 Lux, when the measurement is less than (Upper limit - 100), the upper limit report would be enabled one time or when the measurement is more than (Lower limit + 100), the lower limit report would be enabled one time.
 			</Help>
-		</Value>
-		<Value type="byte" index="60" genre="config" label="Set the recover limit value of Ultraviolet sensor" units="UV" min="1" max="5" value="2" >
-			<Help>
+    </Value>
+    <Value genre="config" index="60" label="Set the recover limit value of Ultraviolet sensor" max="5" min="1" type="byte" units="UV" value="2">
+      <Help>
 			 Note:
 			1. When the current measurement lower or equal (Upper limit - Recover limit), the upper limit report is enabled and then it would send out a sensor report when the next measurement is more than the upper limit. 
 			After that the upper limit report would be disabled again until the measurement lower or equal (Upper limit - Recover limit).
@@ -219,9 +281,9 @@ V1.10 + V1.11 (12/14/2017)
 			3. Recover limit range: 1 to 50% (0x01 to 0x32).
 			E.g. The default recover limit value is 5%, when the measurement is less than (Upper limit - 5), the upper limit report would be enabled one time or when the measurement is more than (Lower limit + 5), the lower limit report would be enabled one time. 
 			</Help>
-		</Value>
-		<Value type="byte" index="61" genre="config" label="Get the out-of-limit state of the Sensors" units="" min="0" max="255" value="0" read_only="true">
-			<Help>
+    </Value>
+    <Value genre="config" index="61" label="Get the out-of-limit state of the Sensors" max="255" min="0" read_only="true" type="byte" units="" value="0">
+      <Help>
 			Get the out-of-limit state of the Sensors.
 			Bit mask = 0, within the limit.
 			Bit mask = 1, out of the limit.
@@ -236,23 +298,23 @@ V1.10 + V1.11 (12/14/2017)
 			Bit 6 = luminance.
 			Bit 7 = ultraviolet.
 			</Help>
-		</Value>		
-		<Value type="list" index="64" genre="config" label="Temperature scale" min="1" max="2" value="1" size="1">
-			<Help>Default value: Celsius for EU/AU version, Fahrenheit for US version.</Help>
-			<Item label="Celsius" value="1" />
-			<Item label="Fahrenheit" value="2" />
-		</Value>
-        <Value type="list" index="81" genre="config" label="LED blinking report" min="0" max="2" value="0" size="1">
-			<Help>Enable/disable the LED blinking for motion, wakeup, and sensor report.</Help>
-			<Item label="Enable LED blinking" value="0" />
-			<Item label="Disable LED blinking only when the PIR is triggered" value="1" />
-			<Item label="Completely disable LED for motion, wakeup, and sensor report" value="2" />
-		</Value>
-		<Value type="button" index="100" genre="config" label="Reset Params 101-103 to Default" write_only="true" affects="101,102,103">
-			<Help>Reset The Reporting Group Configuration (101 to 103) to default</Help>
-		</Value>
-		<Value type="int" index="101" genre="config" label="Group 1 Reports" value="241">
-			<Help>Which reports need to send automatically in timing intervals for group 1.
+    </Value>
+    <Value genre="config" index="64" label="Temperature scale" max="2" min="1" size="1" type="list" value="1">
+      <Help>Default value: Celsius for EU/AU version, Fahrenheit for US version.</Help>
+      <Item label="Celsius" value="1"/>
+      <Item label="Fahrenheit" value="2"/>
+    </Value>
+    <Value genre="config" index="81" label="LED blinking report" max="2" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable the LED blinking for motion, wakeup, and sensor report.</Help>
+      <Item label="Enable LED blinking" value="0"/>
+      <Item label="Disable LED blinking only when the PIR is triggered" value="1"/>
+      <Item label="Completely disable LED for motion, wakeup, and sensor report" value="2"/>
+    </Value>
+    <Value affects="101,102,103" genre="config" index="100" label="Reset Params 101-103 to Default" type="button" write_only="true">
+      <Help>Reset The Reporting Group Configuration (101 to 103) to default</Help>
+    </Value>
+    <Value bitmask="241" genre="config" index="101" label="Group 1 Reports" size="4" type="bitset" value="241">
+      <Help>Which reports need to send automatically in timing intervals for group 1.
 				Bitmask:
 				10000000 - 128 - Luminance
 				01000000 - 64 - Humidity
@@ -260,10 +322,31 @@ V1.10 + V1.11 (12/14/2017)
 				00010000 - 16 - Ultraviolet
 				00000001 - 1 - Battery
 				10100000 - 160 - Luminance and Temperature (32+128)
-				11110001 - 241 - All (1+16+32+64+128)</Help>
-		</Value>
-		<Value type="int" index="102" genre="config" label="Group 2 Reports" value="0">
-			<Help>Which reports need to send automatically in timing intervals for group 2.
+				11110001 - 241 - All (1+16+32+64+128)
+			</Help>
+      <BitSet id="1">
+        <Label>Battery</Label>
+        <Help>Send Battery Report</Help>
+      </BitSet>
+      <BitSet id="5">
+        <Label>Ultraviolet</Label>
+        <Help>Send Ultraviolet Report</Help>
+      </BitSet>
+      <BitSet id="6">
+        <Label>Temperature</Label>
+        <Help>Send Temperature Report</Help>
+      </BitSet>
+      <BitSet id="7">
+        <Label>Humidity</Label>
+        <Help>Send Humidity Report</Help>
+      </BitSet>
+      <BitSet id="8">
+        <Label>Luminance</Label>
+        <Help>Send Luminance Report</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="102" label="Group 2 Reports" type="int" value="0">
+      <Help>Which reports need to send automatically in timing intervals for group 2.
 				Bitmask:
 				10000000 - 128 - Luminance
 				01000000 - 64 - Humidity
@@ -272,9 +355,9 @@ V1.10 + V1.11 (12/14/2017)
 				00000001 - 1 - Battery
 				10100000 - 160 - Luminance and Temperature (32+128)
 				11110001 - 241 - All (1+16+32+64+128)</Help>
-		</Value>
-		<Value type="int" index="103" genre="config" label="Group 3 Reports" value="0">
-			<Help>Which reports need to send automatically in timing intervals for group 3.
+    </Value>
+    <Value genre="config" index="103" label="Group 3 Reports" type="int" value="0">
+      <Help>Which reports need to send automatically in timing intervals for group 3.
 				Bitmask:
 				10000000 - 128 - Luminance
 				01000000 - 64 - Humidity
@@ -283,31 +366,31 @@ V1.10 + V1.11 (12/14/2017)
 				00000001 - 1 - Battery
 				10100000 - 160 - Luminance and Temperature (32+128)
 				11110001 - 241 - All (1+16+32+64+128)</Help>
-		</Value>
-		<Value type="button" index="110" genre="config" label="Reset Params 111-113 to Default" write_only="true" affects="111,112,113">
-			<Help>Reset The Reporting Group Interval Configuration (111 to 113) to default</Help>
-		</Value>
-		<!-- Applications can check IsNodeListeningDevice to determine if the device is on USB power (listening) or battery (not listening) -->
-		<Value type="int" index="111" genre="config" label="Group 1 Interval" units="seconds" min="1" max="2678400" value="3600">
-			<Help>The interval for sending reports for group 1.
+    </Value>
+    <Value affects="111,112,113" genre="config" index="110" label="Reset Params 111-113 to Default" type="button" write_only="true">
+      <Help>Reset The Reporting Group Interval Configuration (111 to 113) to default</Help>
+    </Value>
+    <!-- Applications can check IsNodeListeningDevice to determine if the device is on USB power (listening) or battery (not listening) -->
+    <Value genre="config" index="111" label="Group 1 Interval" max="2678400" min="1" type="int" units="seconds" value="3600">
+      <Help>The interval for sending reports for group 1.
 			The effective behavior of this setting depends on the device's power source:
 			- If the device is on USB power, it will send the reports at the configured interval; set it to something low (~15-60 seconds) to get frequent updates from a powered device.
 			- If the device is on battery, the sensor will never report in more often than its configured wake interval, regardless of what this setting is configured to; setting this to 3601 when the wake interval is 3600 would make this group report in every 7200 seconds. 240 seconds is the minimum wake interval, but will quickly use battery.</Help>
-		</Value>
-		<Value type="int" index="112" genre="config" label="Group 2 Interval" units="seconds" min="1" max="2678400" value="3600">
-			<Help>The interval for sending reports for group 2.
+    </Value>
+    <Value genre="config" index="112" label="Group 2 Interval" max="2678400" min="1" type="int" units="seconds" value="3600">
+      <Help>The interval for sending reports for group 2.
 			The effective behavior of this setting depends on the device's power source:
 			- If the device is on USB power, it will send the reports at the configured interval; set it to something low (~15-60 seconds) to get frequent updates from a powered device.
 			- If the device is on battery, the sensor will never report in more often than its configured wake interval, regardless of what this setting is configured to; setting this to 3601 when the wake interval is 3600 would make this group report in every 7200 seconds. 240 seconds is the minimum wake interval, but will quickly use battery.</Help>
-		</Value>
-		<Value type="int" index="113" genre="config" label="Group 3 Interval" units="seconds" min="1" max="2678400" value="3600">
-			<Help>The interval for sending reports for group 3.
+    </Value>
+    <Value genre="config" index="113" label="Group 3 Interval" max="2678400" min="1" type="int" units="seconds" value="3600">
+      <Help>The interval for sending reports for group 3.
 			The effective behavior of this setting depends on the device's power source:
 			- If the device is on USB power, it will send the reports at the configured interval; set it to something low (~15-60 seconds) to get frequent updates from a powered device.
 			- If the device is on battery, the sensor will never report in more often than its configured wake interval, regardless of what this setting is configured to; setting this to 3601 when the wake interval is 3600 would make this group report in every 7200 seconds. 240 seconds is the minimum wake interval, but will quickly use battery.</Help>
-		</Value>
-		<Value type="short" index="201" genre="config" label="Temperature Calibration" value="1">
-			<Help>Temperature calibration (the available value range is [-128,127] or [-12.8C,12.7C]).
+    </Value>
+    <Value genre="config" index="201" label="Temperature Calibration" type="short" value="1">
+      <Help>Temperature calibration (the available value range is [-128,127] or [-12.8C,12.7C]).
 			Note:
 			1. High byte is the calibration value. Low byte is the unit (0x01=Celsius,0x02=Fahrenheit)
 			2. The calibration value (high byte) contains one decimal point. 
@@ -317,51 +400,52 @@ V1.10 + V1.11 (12/14/2017)
 			If the measure value =30.1C and the standard value = 33.2C, so the calibration value= 33.2C - 30.1C=3.1C (0x1F).
 			Default value: 1 for EU/AU version, 2 for US version.
 			</Help>
-		</Value>
-		<Value type="byte" index="202" genre="config" label="Humidity Calibration" min="0" max="255" value="0">
-			<Help>The calibration value = standard value - measure value.
+    </Value>
+    <Value genre="config" index="202" label="Humidity Calibration" max="255" min="0" type="byte" value="0">
+      <Help>The calibration value = standard value - measure value.
 			(the available value range is [-50, 50]).
 			If measure value =80RH and the standard value = 75RH, so the calibration value= 75RH-80RH = -5RH (0xFB).
 			If the measure value =85RH and the standard value = 90RH, so the calibration value= 90RH-85RH = 5RH (0x05).  
 			</Help>
-		</Value>
-		<Value type="short" index="203" genre="config" label="Luminance Calibration" min="0" max="65535"  value="0">
-			<Help>The calibration value = standard value - measure value. 
+    </Value>
+    <Value genre="config" index="203" label="Luminance Calibration" max="65535" min="0" type="short" value="0">
+      <Help>The calibration value = standard value - measure value. 
 			(the available value range is [-1000, 1000]).
 			If measure value =800Lux and the standard value = 750Lux, so the calibration value= 750-800 = -50 (0xFFCE). 
 			If the measure value =850Lux and the standard value = 900Lux, so the calibration value= 900-850 = 50 (0x0032). 
 			</Help>
-		</Value>
-		<Value type="byte" index="204" genre="config" label="Ultraviolet Calibration" min="0" max="255" value="0">
-			<Help>The calibration value = standard value measure value. 
+    </Value>
+    <Value genre="config" index="204" label="Ultraviolet Calibration" max="255" min="0" type="byte" value="0">
+      <Help>The calibration value = standard value measure value. 
 			(the available value range is [-10, 10]).
 			If measure value =9 and the standard value = 8, so the calibration value= 8-9 = -1 (0xFE). 
 			If the measure value =7 and the standard value = 9, so the calibration value= 9-7 = 2 (0x02).  
 			</Help>
-		</Value>
-		<Value type="list" index="252" genre="config" label="Enable/disable Lock Configuration" units="" min="0" max="1" value="0" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="252" label="Enable/disable Lock Configuration" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
 				Enable/disable Lock Configuration
 			</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-          		<Help>Reset to factory defaults</Help>
-          		<Item label="Reset to factory default setting" value="0"/>
-          		<Item label="Normal" value="1"/>
-          		<Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-      		</Value>
-	</CommandClass>
-
-	<!-- the Device Doesn't support Get for Alarm Class -->
-	<CommandClass id="113" getsupported="false"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="LifeLine" />
-		</Associations>
-	</CommandClass>
-
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- the Device Doesn't support Get for Alarm Class -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw111.xml b/Config/aeotec/zw111.xml
index bef81b2ffa..b0b583c43b 100644
--- a/Config/aeotec/zw111.xml
+++ b/Config/aeotec/zw111.xml
@@ -4,7 +4,7 @@ Aeotec ZW111 Nano Dimmer, base on Engineering Spec 3/6/2018 V2.02
 Product Type ID: EU=0x00, US=0x01, AU=0x02 CN=0x1D
 https://aeotec.freshdesk.com/helpdesk/attachments/6048080397
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" index="3" genre="config" label="Over current protection" units="" min="0" max="1" size="1" value="1">
diff --git a/Config/aeotec/zw112.xml b/Config/aeotec/zw112.xml
index cda814aa72..43327b4699 100644
--- a/Config/aeotec/zw112.xml
+++ b/Config/aeotec/zw112.xml
@@ -1,59 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
-Aeotec ZW112 Door Window Sensor 6 
-https://aeotec.freshdesk.com/helpdesk/attachments/6014057567
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Alarm CC isn't supported on this device-->
-    <CommandClass id="113" action="remove"/>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Value when the Magnet is triggered" min="0" max="1" value="0" size="1">
-			<Help>Which value of the Sensor Binary Report or Basic Set will be sent when the door is Opened/Closed</Help>
-			<Item label="Open: 0xFF, Close: 0x00" value="0"/>
-			<Item label="Open: 0x00, Close: 0xFF" value="1"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="39" label="Set the low battery value" min="10" max="50" value="20" size="1">
-			<Help>10% to 50%</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="101" label="Low Battery Check" min="0" max="1" size="1" value="0">
-            <Help>Enable/disable the low battery checking</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Enabled" value="1"/>
-        </Value>
-		<Value type="int" genre="config" instance="1" index="111" label="Interval time of low battery checking" size="4" min="0" max="2147483647" value="86640">
-            <Help>
+<!-- Aeon Labs Door/Window Sensor 6 -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Alarm CC isn't supported on this device-->
+  <CommandClass action="remove" id="113"/>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Value when the Magnet is triggered" max="1" min="0" size="1" type="list" value="0">
+      <Help>Which value of the Sensor Binary Report or Basic Set will be sent when the door is Opened/Closed</Help>
+      <Item label="Open: 0xFF, Close: 0x00" value="0"/>
+      <Item label="Open: 0x00, Close: 0xFF" value="1"/>
+    </Value>
+    <Value genre="config" index="39" instance="1" label="Set the low battery value" max="50" min="10" size="1" type="byte" value="20">
+      <Help>10% to 50%</Help>
+    </Value>
+    <Value genre="config" index="101" instance="1" label="Low Battery Check" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable the low battery checking</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="111" instance="1" label="Interval time of low battery checking" max="2147483647" min="0" size="4" type="int" value="86640">
+      <Help>
 				The minimum interval is 4 minutes
 			</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="121" label="Report Type to Send" size="1" min="0" max="3" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="121" instance="1" label="Report Type to Send" max="3" min="0" size="1" type="list" value="1">
+      <Help>
                 Configure which sensor report will be sent when the door is Opened/Closed
             </Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Basic Set" value="1"/>
-            <Item label="Sensor Binary Report" value="2"/>
-            <Item label="Basic Set and Sensor Binary Report" value="3"/>
-        </Value>
-		<Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
-			<Help>Lock/ unlock all configuration parameters</Help>
-			<Item label="Unlock" value="0"/>
-			<Item label="Lock" value="1"/>
-		</Value>
-		<Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" >
-			<Help>Reset to factory defaults</Help>
-            <Item label="Reset to factory default setting" value="0"/>
-			<Item label="Normal" value="1"/>
-            <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-		</Value>
-	</CommandClass>
-	<!-- Basic set as report-->
-	<CommandClass id="32" setasreport="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="133">		
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
-
+      <Item label="Disabled" value="0"/>
+      <Item label="Basic Set" value="1"/>
+      <Item label="Sensor Binary Report" value="2"/>
+      <Item label="Basic Set and Sensor Binary Report" value="3"/>
+    </Value>
+    <Value genre="config" index="252" label="Lock/Unlock Configuration" max="1" min="0" size="1" type="list" value="0">
+      <Help>Lock/ unlock all configuration parameters</Help>
+      <Item label="Unlock" value="0"/>
+      <Item label="Lock" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw116.xml b/Config/aeotec/zw116.xml
index ac7b460027..a20450aec0 100644
--- a/Config/aeotec/zw116.xml
+++ b/Config/aeotec/zw116.xml
@@ -3,14 +3,14 @@
 Aeotec ZW116 Nano Switch, base on Engineering Spec 03/19/2018 V2.0
 Product Type ID: EU=0x00, US=0x01, AU=0x02 CN=0x1D 
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="3" genre="config" label="Over current protection" units="" min="0" max="1" size="1" value="1">
-			<Help>Output load will be closed after 30 seconds if the current exceeds (US: 15.5A, AU or EU: 10.5A).</Help>
-			<Item label="Disable" value="0"/>
-			<Item label="Enable" value="1"/>
-		</Value>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
+    <!-- Configuration Parameters -->
+    <CommandClass id="112">
+        <Value type="list" index="3" genre="config" label="Over current protection" units="" min="0" max="1" size="1" value="1">
+            <Help>Output load will be closed after 30 seconds if the current exceeds (US: 15.5A, AU or EU: 10.5A).</Help>
+            <Item label="Disable" value="0"/>
+            <Item label="Enable" value="1"/>
+        </Value>
 		<Value type="list" index="4" genre="config" label="Over heat protection" units="" min="0" max="1" size="1" value="0">
 			<Help>Output load will be closed after 30 seconds if the temperature inside the product exceeds 100C.</Help>
 			<Item label="Disable" value="0"/>
diff --git a/Config/aeotec/zw117.xml b/Config/aeotec/zw117.xml
index e53bcd63e6..7cf33adb0e 100644
--- a/Config/aeotec/zw117.xml
+++ b/Config/aeotec/zw117.xml
@@ -1,42 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Aeotec ZW117 Range Extender 6, base on Engineering Spec 5/31/2016
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- COMMAND_CLASS_BASIC -->
-    <CommandClass id="32" getsupported="false"/>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="82" label="LED when the Range Extender relays Z-Wave message" min="0" max="1" value="0" size="1">
-            <Help>Set the default status of the LED when the Range Extender relays Z-Wave message.</Help>
-            <Item label="On for 2 seconds" value="0"/>
-            <Item label="Off" value="1"/>
-        </Value>
-        <Value type="list" index="200" genre="config" label="Partner ID" units="" min="0" max="1" size="1" value="0">
-            <Help>Partner ID</Help>
-            <Item label="Aeon Labs Standard (Default)" value="0"/>
-            <Item label="Others" value="1"/>
-        </Value>
-        <Value type="list" index="252" genre="config" label="Configuration Locked" units="" min="0" max="1" size="1" value="0">
-            <Help>Enable/disable Configuration Locked</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="short" index="254" genre="config" label="Device tag" units="" min="0" max="65535" value="0">
-            <Help>Device tag.</Help>
-        </Value>
-        <Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-            <Help>Reset to factory defaults</Help>
-            <Item label="Reset to factory default setting" value="0"/>
-            <Item label="Normal" value="1"/>
-            <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="Retransmit"/>
-        </Associations>
-    </CommandClass>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="82" instance="1" label="LED when the Range Extender relays Z-Wave message" max="1" min="0" size="1" type="list" value="0">
+      <Help>Set the default status of the LED when the Range Extender relays Z-Wave message.</Help>
+      <Item label="On for 2 seconds" value="0"/>
+      <Item label="Off" value="1"/>
+    </Value>
+    <Value genre="config" index="200" label="Partner ID" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Partner ID</Help>
+      <Item label="Aeon Labs Standard (Default)" value="0"/>
+      <Item label="Others" value="1"/>
+    </Value>
+    <Value genre="config" index="252" label="Configuration Locked" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Enable/disable Configuration Locked</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="254" label="Device tag" max="65535" min="0" type="short" units="" value="0">
+      <Help>Device tag.</Help>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Retransmit" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw120.xml b/Config/aeotec/zw120.xml
index d07ac29910..8c0ea9f74c 100644
--- a/Config/aeotec/zw120.xml
+++ b/Config/aeotec/zw120.xml
@@ -1,31 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
-Aeotec ZW120 Door/Window Sensor Gen5, base on Engineering Spec 08/01/2016
-
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Sensor Binary Report" min="0" max="1" value="0" size="1">
-			<Help>Which value of the Sensor Binary Report will be sent when the door is Opened/Closed</Help>
-			<Item label="Open: 0xFF, Close: 0x00" value="0"/>
-			<Item label="Open: 0x00, Close: 0xFF" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Enable wake up 10 minutes when re-power on the sensor" min="0" max="1" value="1" size="1">
-			<Help>Default setting: Disable</Help>
-			<Item label="Disable" value="0"/>
-			<Item label="Enable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Basic Set Report" min="0" max="1" value="0" size="1">
-			<Help>Which value of the Basic Set will be sent when the door is Opened/Closed</Help>
-			<Item label="Open: 0xFF, Close: 0x00" value="0"/>
-			<Item label="Open: 0x00, Close: 0xFF" value="1"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="39" label="Set the low battery value" min="10" max="50" value="10" size="1">
-			<Help>10% to 50%</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="111" label="Interval time of battery report" size="4" min="0" max="2147483647" value="0">
-			<Help>
+<!-- Aeon Labs Door/Window Sensor Gen5 (ZW120) base on Engineering Spec 08/01/2016 -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Sensor Binary Report" max="1" min="0" size="1" type="list" value="0">
+      <Help>Which value of the Sensor Binary Report will be sent when the door is Opened/Closed</Help>
+      <Item label="Open: 0xFF, Close: 0x00" value="0"/>
+      <Item label="Open: 0x00, Close: 0xFF" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Enable wake up 10 minutes when re-power on the sensor" max="1" min="0" size="1" type="list" value="1">
+      <Help>Default setting: Disable</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Basic Set Report" max="1" min="0" size="1" type="list" value="0">
+      <Help>Which value of the Basic Set will be sent when the door is Opened/Closed</Help>
+      <Item label="Open: 0xFF, Close: 0x00" value="0"/>
+      <Item label="Open: 0x00, Close: 0xFF" value="1"/>
+    </Value>
+    <Value genre="config" index="39" instance="1" label="Set the low battery value" max="50" min="10" size="1" type="byte" value="10">
+      <Help>10% to 50%</Help>
+    </Value>
+    <Value genre="config" index="111" instance="1" label="Interval time of battery report" max="2147483647" min="0" size="4" type="int" value="0">
+      <Help>
 				Set the interval time of battery report.
 				Value=0, disable the battery report for a interval time.
 				Value=1 to 0x7FFFFFFF, the interval time of battery report is set.
@@ -35,28 +31,31 @@ Aeotec ZW120 Door/Window Sensor Gen5, base on Engineering Spec 08/01/2016
 				If the value is more than 240 and less than 480, the interval is 8 minutes.
 				2, if the current battery report falls below the low battery value (configurable parameter 39), it will send battery report=0xFF.
 			</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="121" label="Report type" min="0" max="65535" value="256" size="4">
-			<Help>
+    </Value>
+    <Value genre="config" index="121" instance="1" label="Report type" max="65535" min="0" size="4" type="int" value="256">
+      <Help>
 				To configure which sensor report will be sent when the Sensor is triggered Opened/Closed.
 				Bitsets: 0->Battery report, 4->Sensor Binary, 8->Basic Set, Default setting: 0x00000100 (Basic Set).
 				Ideal Setting for OZW is 17 (Sensor Binary and Battery Report).
 			</Help>
-		</Value>
-		<Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-			<Help>Reset to factory defaults</Help>
-            <Item label="Reset to factory default setting" value="0"/>
-			<Item label="Normal" value="1"/>
-            <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-		</Value>
-	</CommandClass>
-
-	<!-- Basic set as report-->
-	<CommandClass id="32" setasreport="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw121.xml b/Config/aeotec/zw121.xml
index 4e81c0fb80..ecd2884708 100644
--- a/Config/aeotec/zw121.xml
+++ b/Config/aeotec/zw121.xml
@@ -2,7 +2,7 @@
 <!--
 Aeotec ZW121 LED Strip, base on Engineering Spec 5/20/2016
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" genre="config" instance="1" index="20" label="Re-power On state" min="0" max="2" value="0" size="1">
diff --git a/Config/aeotec/zw122.xml b/Config/aeotec/zw122.xml
index 3e09e43772..06894f4665 100644
--- a/Config/aeotec/zw122.xml
+++ b/Config/aeotec/zw122.xml
@@ -1,48 +1,51 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 Aeotec ZW122 Water Sensor 6
 http://products.z-wavealliance.org/products/2437
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Basic get not supported -->
-	<CommandClass id="32" getsupported="false"/>
-	<!-- COMMAND_CLASS_BINARY_SENSOR. This class is in the list reported by the device, but it does not respond to requests-->
-	<CommandClass id="48" action="remove"/>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="2" label="Waking up for 10 minutes when re-power on" min="0" max="1" size="1" value="0">
-			<Help>Enable/Disable waking up for 10 minutes when re-power on (battery mode) the Water Sensor.</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Enabled" value="1"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="8" label="Timeout of awake after the Wake Up CC is sent out" min="8" max="127" units="seconds" value="30" size="1">
-			<Help>
+<Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Basic get not supported -->
+  <CommandClass id="32">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BINARY_SENSOR. This class is in the list reported by the device, but it does not respond to requests-->
+  <CommandClass action="remove" id="48"/>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" instance="1" label="Waking up for 10 minutes when re-power on" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/Disable waking up for 10 minutes when re-power on (battery mode) the Water Sensor.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Timeout of awake after the Wake Up CC is sent out" max="127" min="8" size="1" type="byte" units="seconds" value="30">
+      <Help>
 				Set the timeout of awake after the Wake Up CC is sent out.
 				Available rang is 8 to 127 seconds.
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="9" label="Current power mode" min="0" max="258" size="2" value="0" read_only="true">
-			<Help>Report the current power mode and the product state for battery power mode</Help>
-			<Item label="USB power, sleeping mode after re-power on" value="0"/>
-			<Item label="USB power, keep awake for 10 minutes after re-power on" value="1"/>
-			<Item label="USB power, always awake state" value="2"/>
-			<Item label="Battery power, sleeping mode after re-power on" value="256"/>
-			<Item label="Battery power, keep awake for 10 minutes after re-power on" value="257"/>
-			<Item label="Battery power, always awake state" value="258"/>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="10" label="Alarm time for the Buzzer" min="655360" max="2147483647" value="1968650" size="4">
-			<Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Current power mode" max="258" min="0" read_only="true" size="2" type="list" value="0">
+      <Help>Report the current power mode and the product state for battery power mode</Help>
+      <Item label="USB power, sleeping mode after re-power on" value="0"/>
+      <Item label="USB power, keep awake for 10 minutes after re-power on" value="1"/>
+      <Item label="USB power, always awake state" value="2"/>
+      <Item label="Battery power, sleeping mode after re-power on" value="256"/>
+      <Item label="Battery power, keep awake for 10 minutes after re-power on" value="257"/>
+      <Item label="Battery power, always awake state" value="258"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Alarm time for the Buzzer" max="2147483647" min="655360" size="4" type="int" value="1968650">
+      <Help>
 				Set the alarm time for the Buzzer when the sensor is triggered.
 				1 to 255 Repeated cycle of Buzzer alarm.
 				256 to 65535 the time of Buzzer keeping ON state (MSB).
 				65536 to 2147483647 The time of Buzzer keeping OFF state.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="39" label="Set the low battery value" min="10" max="50" value="20" units="%" size="1">
-			<Help>10% to 50%</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="48" label="Sensor report" min="0" max="55" size="1" value="55">
-			<Help>Enable/disable the sensor report:
+    </Value>
+    <Value genre="config" index="39" instance="1" label="Set the low battery value" max="50" min="10" size="1" type="byte" units="%" value="20">
+      <Help>10% to 50%</Help>
+    </Value>
+    <Value genre="config" index="48" instance="1" label="Sensor report" max="55" min="0" size="1" type="byte" value="55">
+      <Help>Enable/disable the sensor report:
 				Bit 7 - Bit 6 - Bit 5 Notification Report for Overheat alarm.
 				Bit 4 Notification Report for Under heat alarm.
 				Bit 3 - Bit 2 Configuration Report for Tilt sensor.
@@ -50,26 +53,26 @@ http://products.z-wavealliance.org/products/2437
 				Bit 0 Notification Report for Water Leak event.
 				Note: if the value = 1+2+4+16+32=55, which means if any sensor will report alarm.
 			</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="49" label="Upper limit value" size="4" min="65536" max="2147483647" value="26214400">
-			<Help>
+    </Value>
+    <Value genre="config" index="49" instance="1" label="Upper limit value" max="2147483647" min="65536" size="4" type="int" value="26214400">
+      <Help>
 				Set the upper limit value (overheat).
 				0 Celsius unit
 				1 Fahrenheit unit
 				65536 to 2147483647 Temperature value.
 				Default: 0x01900000 => 40.0C
 			</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="50" label="Lower limit value" size="4" min="65536" max="2147483647" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="50" instance="1" label="Lower limit value" max="2147483647" min="65536" size="4" type="int" value="0">
+      <Help>
 				Set the lower limit value (under heat).
 				0 Celsius unit
 				1 Fahrenheit unit
 				65536 to 2147483647 Temperature value
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="57" label="Recover limit value of temperature sensor" min="100" max="4080" value="5120" size="2">
-			<Help>
+    </Value>
+    <Value genre="config" index="57" instance="1" label="Recover limit value of temperature sensor" max="4080" min="100" size="2" type="short" value="5120">
+      <Help>
 				Set the recover limit value of temperature sensor.
 				Note:
 				1. When the current measurement less than or equal (Upper limit - Recover limit), the upper limit report is enabled and then it would send out a sensor report when the next measurement is more than the upper limit.
@@ -80,82 +83,94 @@ http://products.z-wavealliance.org/products/2437
 				4. Recover limit range: 1.0 to 25.5 C/F (0x0100 to 0xFF00 or 0x0101 to 0xFF01).
 				E.g. The default recover limit value is 2.0 C/F (0x1400/0x1401), when the measurement is less than (Upper limit - 2), the upper limit report would be enabled one time or when the measurement is more than (Lower limit + 2), the lower limit report would be enabled one time.
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="64" label="Unit of the automatic temperature report" min="0" max="1" size="1" value="0">
-			<Help>Set the default unit of the automatic temperature report in parameter 101-103</Help>
-			<Item label="Celsius" value="0"/>
-			<Item label="Fahrenheit" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="84" label="Get the state of tilt sensor" min="0" max="1" size="1" value="0" read_only="true">
-			<Help>Get the state of tilt sensor</Help>
-			<Item label="Horizontal" value="0"/>
-			<Item label="Vertical" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="86" label="Buzzer" min="0" max="1" size="1" value="1">
-			<Help>Enable/ disable the buzzer.</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Enabled" value="1"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="87" label="Sensor is triggered the buzzer will alarm" size="1" min="0" max="55" value="55">
-			<Help>
-				To set which sensor is triggered the buzzer will alarm.
-				1 If the Water leak is triggered, the buzzer will alarm.
-				2 If the vibration is triggered, the buzzer will alarm.
-				4 If the tilt sensor is triggered, the buzzer will alarm.
-				16 If the under heat is triggered, the buzzer will alarm.
-				32 If the overheat is triggered, the buzzer will alarm.
-				Note: if the value = 1+2+4+16+32=55, which means if any sensor is triggered, the buzzer will alarm.
-			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="88" label="Probe 1 Basic Set on grp 3" min="0" max="2" size="1" value="0">
-			<Help>To set which value of the Basic Set will be sent to the associated nodes in association Group 3 when the Sensor probe 1 is triggered.</Help>
-			<Item label="Send nothing" value="0"/>
-			<Item label="Presence/absence of water 0xFF/0x00" value="1"/>
-			<Item label="Presence/absence of water 0x00/0xFF" value="2"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="89" label="Probe 2 Basic Set on grp 4" min="0" max="2" size="1" value="0">
-			<Help>To set which value of the Basic Set will be sent to the associated nodes in association Group 4 when the Sensor probe 2 is triggered.</Help>
-			<Item label="Send nothing" value="0"/>
-			<Item label="Presence/absence of water 0xFF/0x00" value="1"/>
-			<Item label="Presence/absence of water 0x00/0xFF" value="2"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="94" label="Battery report selection" min="0" max="1" size="1" value="0">
-			<Help>To set which power source level is reported via the Battery CC.</Help>
-			<Item label="USB power level" value="0"/>
-			<Item label="CR123A battery level" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="101" label="Unsolicited report" size="1" min="0" max="3" value="3">
-			<Help>
+    </Value>
+    <Value genre="config" index="64" instance="1" label="Unit of the automatic temperature report" max="1" min="0" size="1" type="list" value="0">
+      <Help>Set the default unit of the automatic temperature report in parameter 101-103</Help>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="84" instance="1" label="Get the state of tilt sensor" max="1" min="0" read_only="true" size="1" type="list" value="0">
+      <Help>Get the state of tilt sensor</Help>
+      <Item label="Horizontal" value="0"/>
+      <Item label="Vertical" value="1"/>
+    </Value>
+    <Value genre="config" index="86" instance="1" label="Buzzer" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable/ disable the buzzer.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value bitmask="55" genre="config" index="87" instance="1" label="Sensor is triggered the buzzer will alarm" max="55" min="0" size="4" type="bitset" value="55">
+      <Help>What Sensors Trigger the Buzzer</Help>
+      <BitSet id="1">
+        <Label>Water Leak</Label>
+        <Help>If the Water leak is triggered, the buzzer will alarm.</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Vibration</Label>
+        <Help>If the vibration is triggered, the buzzer will alarm.</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Tilt Sensor</Label>
+        <Help>If the Tilt Sensor is triggered, the buzzer will alarm.</Help>
+      </BitSet>
+      <BitSet id="5">
+        <Label>UnderHeat</Label>
+        <Help>If the Under Heat Temperature is triggered, the buzzer will alarm.</Help>
+      </BitSet>
+      <BitSet id="6">
+        <Label>OverHeat</Label>
+        <Help>If the Over Heat Temperature is triggered, the buzzer will alarm.</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="88" instance="1" label="Probe 1 Basic Set on grp 3" max="2" min="0" size="1" type="list" value="0">
+      <Help>To set which value of the Basic Set will be sent to the associated nodes in association Group 3 when the Sensor probe 1 is triggered.</Help>
+      <Item label="Send nothing" value="0"/>
+      <Item label="Presence/absence of water 0xFF/0x00" value="1"/>
+      <Item label="Presence/absence of water 0x00/0xFF" value="2"/>
+    </Value>
+    <Value genre="config" index="89" instance="1" label="Probe 2 Basic Set on grp 4" max="2" min="0" size="1" type="list" value="0">
+      <Help>To set which value of the Basic Set will be sent to the associated nodes in association Group 4 when the Sensor probe 2 is triggered.</Help>
+      <Item label="Send nothing" value="0"/>
+      <Item label="Presence/absence of water 0xFF/0x00" value="1"/>
+      <Item label="Presence/absence of water 0x00/0xFF" value="2"/>
+    </Value>
+    <Value genre="config" index="94" instance="1" label="Battery report selection" max="1" min="0" size="1" type="list" value="0">
+      <Help>To set which power source level is reported via the Battery CC.</Help>
+      <Item label="USB power level" value="0"/>
+      <Item label="CR123A battery level" value="1"/>
+    </Value>
+    <Value genre="config" index="101" instance="1" label="Unsolicited report" max="3" min="0" size="1" type="list" value="3">
+      <Help>
 				To set what unsolicited report would be sent to the Lifeline group.
 			</Help>
-			<Item label="Send Nothing" value="0"/>
-			<Item label="Battery Report" value="1"/>
-			<Item label="Multilevel sensor report for temperature" value="2"/>
-			<Item label="Battery Report and Multilevel sensor report for temperature" value="3"/>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="111" label="Unsolicited report interval time" size="4" min="5" max="2678400" units="seconds" value="3600">
-			<Help>
+      <Item label="Send Nothing" value="0"/>
+      <Item label="Battery Report" value="1"/>
+      <Item label="Multilevel sensor report for temperature" value="2"/>
+      <Item label="Battery Report and Multilevel sensor report for temperature" value="3"/>
+    </Value>
+    <Value genre="config" index="111" instance="1" label="Unsolicited report interval time" max="2678400" min="5" size="4" type="int" units="seconds" value="3600">
+      <Help>
 				To set the interval time of sending reports in Report group 1
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="135" label="Water leak event report selection" min="0" max="3" size="1" value="1">
-			<Help>To set which sensor report can be sent when the water leak event is triggered and if the receiving device is a non-multichannel device.</Help>
-			<Item label="Send nothing" value="0"/>
-			<Item label="Send notification report to association group 1" value="1"/>
-			<Item label="Send configuration 0x88 report to association group 2" value="2"/>
-			<Item label="Send notification report to association group 1 and Send configuration 0x88 report to association group 2" value="3"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="136" label="Report Type to Send" size="1" min="0" max="2" value="0" read_only="true">
-			<Help>
+    </Value>
+    <Value genre="config" index="135" instance="1" label="Water leak event report selection" max="3" min="0" size="1" type="list" value="1">
+      <Help>To set which sensor report can be sent when the water leak event is triggered and if the receiving device is a non-multichannel device.</Help>
+      <Item label="Send nothing" value="0"/>
+      <Item label="Send notification report to association group 1" value="1"/>
+      <Item label="Send configuration 0x88 report to association group 2" value="2"/>
+      <Item label="Send notification report to association group 1 and Send configuration 0x88 report to association group 2" value="3"/>
+    </Value>
+    <Value genre="config" index="136" instance="1" label="Report Type to Send" max="2" min="0" read_only="true" size="1" type="list" value="0">
+      <Help>
 				When the parameter 0x87 is set to 2 or 3, it can get the sensor probes status through this configuration value.
 			</Help>
-			<Item label="Absence of water is triggered by probe 1 and 2" value="0"/>
-			<Item label="Presence of water is triggered by probe 1" value="1"/>
-			<Item label="Presence of water is triggered by probe 2" value="2"/>
-			<Item label="Presence of water is triggered by probe 1 and 2" value="3"/>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="201" label="Temperature sensor calibration" size="2" value="0">
-			<Help>
+      <Item label="Absence of water is triggered by probe 1 and 2" value="0"/>
+      <Item label="Presence of water is triggered by probe 1" value="1"/>
+      <Item label="Presence of water is triggered by probe 2" value="2"/>
+      <Item label="Presence of water is triggered by probe 1 and 2" value="3"/>
+    </Value>
+    <Value genre="config" index="201" instance="1" label="Temperature sensor calibration" size="2" type="short" value="0">
+      <Help>
 				Temperature calibration (the available value range is [-128, 127] or [-12.8C, 12.7C]).
 				Note:
 				1. High byte is the calibration value. Low byte is the unit (0x00=Celsius, 0x01=Fahrenheit).
@@ -165,31 +180,37 @@ http://products.z-wavealliance.org/products/2437
 				E.g. If measure value =25.3C and the standard value = 23.2C, so the calibration value= 23.2C - 25.3C= -2.1C (0xEB).
 				If the measure value =30.1C and the standard value = 33.2C, so the calibration value= 33.2C - 30.1C=3.1C (0x1F).
 			</Help>
-		</Value>
-		<Value type="list" genre="config" index="252" label="Lock/Unlock Configuration" min="0" max="1" size="1" value="0">
-			<Help>Lock/ unlock all configuration parameters</Help>
-			<Item label="Unlock" value="0"/>
-			<Item label="Lock" value="1"/>
-		</Value>
-		<Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-			<Help>Reset to factory defaults</Help>
-			<Item label="Normal" value="0"/>
-			<Item label="Reset to factory default setting" value="1"/>
-			<Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-		</Value>
-	</CommandClass>
-
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints"/>
-	<CommandClass id="142" ForceInstances="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="4">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-			<Group index="2" max_associations="5" label="Send the configuration parameter 0x88"/>
-			<Group index="3" max_associations="5" label="Send Basic Set when the Sensor probe 1 is triggered"/>
-			<Group index="4" max_associations="5" label="Send Basic Set when the Sensor probe 2 is triggered"/>
-		</Associations>
-	</CommandClass>
-
+    </Value>
+    <Value genre="config" index="252" label="Lock/Unlock Configuration" max="1" min="0" size="1" type="list" value="0">
+      <Help>Lock/ unlock all configuration parameters</Help>
+      <Item label="Unlock" value="0"/>
+      <Item label="Lock" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Normal" value="0"/>
+      <Item label="Reset to factory default setting" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Send the configuration parameter 0x88" max_associations="5"/>
+      <Group index="3" label="Send Basic Set when the Sensor probe 1 is triggered" max_associations="5"/>
+      <Group index="4" label="Send Basic Set when the Sensor probe 2 is triggered" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zw129.xml b/Config/aeotec/zw129.xml
index da14c428cb..59c0536222 100644
--- a/Config/aeotec/zw129.xml
+++ b/Config/aeotec/zw129.xml
@@ -1,76 +1,88 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Aeotec ZW129 WallMote Duo, base on Engineering Spec 9/27/2016
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- COMMAND_CLASS_BASIC -->
-    <CommandClass id="32" getsupported="false"/>
-    <!-- COMMAND_CLASS_SWITCH_BINARY -->
-    <CommandClass id="37" getsupported="false"/>
-    <!-- COMMAND_CLASS_SWITCH_MULTILEVEL -->
-    <CommandClass id="38" getsupported="false"/>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Touch sound" min="0" max="1" value="1" size="1">
-            <Help>This will enable or disable the sound effects when you press or touch  the sensing area</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="2" label="Touch vibration" min="0" max="1" value="1" size="1">
-            <Help>This will enable or disable the vibration effects when you press or  touch the sensing area</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="3" label="Button slide function" min="0" max="1" value="1" size="1">
-            <Help>This will enable or disable control by sliding the button area</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="4" label="Report type" min="0" max="1" value="1" size="1">
-            <Help>To configure which report will be sent when pressing the buttons</Help>
-            <Item label="Send nothing" value="0"/>
-            <Item label="Send Central Scene Command Notification" value="1"/>
-            <Item label="Send Central Scene Command Notification and Configuration report" value="3"/>
-        </Value>
-        <Value type="int" index="5" genre="config" label="Color when button is pressed" units="" value="65280" >
-            <Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SWITCH_BINARY -->
+  <CommandClass id="37">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SWITCH_MULTILEVEL -->
+  <CommandClass id="38">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Touch sound" max="1" min="0" size="1" type="list" value="1">
+      <Help>This will enable or disable the sound effects when you press or touch  the sensing area</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Touch vibration" max="1" min="0" size="1" type="list" value="1">
+      <Help>This will enable or disable the vibration effects when you press or  touch the sensing area</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Button slide function" max="1" min="0" size="1" type="list" value="1">
+      <Help>This will enable or disable control by sliding the button area</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Report type" max="1" min="0" size="1" type="list" value="1">
+      <Help>To configure which report will be sent when pressing the buttons</Help>
+      <Item label="Send nothing" value="0"/>
+      <Item label="Send Central Scene Command Notification" value="1"/>
+      <Item label="Send Central Scene Command Notification and Configuration report" value="3"/>
+    </Value>
+    <Value genre="config" index="5" label="Color when button is pressed" type="int" units="" value="65280">
+      <Help>
                 To configure which color will be displayed when the button is pressed.
                 Value 1: (msb) Red.
                 Value 2: Green.
                 Value 3: Blue.
                 Value 4: Reserved
             </Help>
-        </Value>
-        <Value type="int" index="33" genre="config" label="Test the LED, buzzer and vibrator" units="" value="0" read_only="true">
-            <Help>
+    </Value>
+    <Value genre="config" index="33" label="Test the LED, buzzer and vibrator" read_only="true" type="int" units="" value="0">
+      <Help>
                 Get the LED Strip color value
                 Value 1: (msb) Red.
                 Value 2: Green.
                 Value 3: Blue.
                 Value 4: buzzer and vibrator. (1=ON, 0=OFF)
             </Help>
-        </Value>
-        <Value type="byte" index="39" genre="config" label="Set the low battery value" units="%" min="10" max="50" value="20">
-            <Help>
+    </Value>
+    <Value genre="config" index="39" label="Set the low battery value" max="50" min="10" type="byte" units="%" value="20">
+      <Help>
                 Set the low battery value.
                 Range: 10% - 50%.</Help>
-        </Value>
-        <Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-            <Help>Reset to factory defaults</Help>
-            <Item label="Reset to factory default setting" value="0"/>
-            <Item label="Normal" value="1"/>
-            <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="5">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="On/Off control via Button 1"/>
-            <Group index="3" max_associations="5" label="Dimmer control via Button 1"/>
-            <Group index="4" max_associations="5" label="On/Off control via Button 2"/>
-            <Group index="5" max_associations="5" label="Dimmer control via Button 2"/>
-        </Associations>
-    </CommandClass>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off control via Button 1" max_associations="5"/>
+      <Group index="3" label="Dimmer control via Button 1" max_associations="5"/>
+      <Group index="4" label="On/Off control via Button 2" max_associations="5"/>
+      <Group index="5" label="Dimmer control via Button 2" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+
     <!--<CommandClass id="142" ForceInstances="true"/>-->
 </Product>
diff --git a/Config/aeotec/zw130.xml b/Config/aeotec/zw130.xml
index 6c09c52823..92c96a229d 100644
--- a/Config/aeotec/zw130.xml
+++ b/Config/aeotec/zw130.xml
@@ -1,80 +1,92 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Aeotec ZW130 WallMote Quad, base on Engineering Spec 9/27/2016
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- COMMAND_CLASS_BASIC -->
-    <CommandClass id="32" getsupported="false"/>
-    <!-- COMMAND_CLASS_SWITCH_BINARY -->
-    <CommandClass id="37" getsupported="false"/>
-    <!-- COMMAND_CLASS_SWITCH_MULTILEVEL -->
-    <CommandClass id="38" getsupported="false"/>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Touch sound" min="0" max="1" value="1" size="1">
-            <Help>This will enable or disable the sound effects when you press or touch  the sensing area</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="2" label="Touch vibration" min="0" max="1" value="1" size="1">
-            <Help>This will enable or disable the vibration effects when you press or  touch the sensing area</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="3" label="Button slide function" min="0" max="1" value="1" size="1">
-            <Help>This will enable or disable control by sliding the button area</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="4" label="Report type" min="0" max="1" value="1" size="1">
-            <Help>To configure which report will be sent when pressing the buttons</Help>
-            <Item label="Send nothing" value="0"/>
-            <Item label="Send Central Scene Command Notification" value="1"/>
-            <Item label="Send Central Scene Command Notification and Configuration report" value="3"/>
-        </Value>
-        <Value type="int" index="5" genre="config" label="Color when button is pressed" units="" value="65280" >
-            <Help>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SWITCH_BINARY -->
+  <CommandClass id="37">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SWITCH_MULTILEVEL -->
+  <CommandClass id="38">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Touch sound" max="1" min="0" size="1" type="list" value="1">
+      <Help>This will enable or disable the sound effects when you press or touch  the sensing area</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Touch vibration" max="1" min="0" size="1" type="list" value="1">
+      <Help>This will enable or disable the vibration effects when you press or  touch the sensing area</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Button slide function" max="1" min="0" size="1" type="list" value="1">
+      <Help>This will enable or disable control by sliding the button area</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Report type" max="1" min="0" size="1" type="list" value="1">
+      <Help>To configure which report will be sent when pressing the buttons</Help>
+      <Item label="Send nothing" value="0"/>
+      <Item label="Send Central Scene Command Notification" value="1"/>
+      <Item label="Send Central Scene Command Notification and Configuration report" value="3"/>
+    </Value>
+    <Value genre="config" index="5" label="Color when button is pressed" type="int" units="" value="65280">
+      <Help>
                 To configure which color will be displayed when the button is pressed.
                 Value 1: (msb) Red.
                 Value 2: Green.
                 Value 3: Blue.
                 Value 4: Reserved
             </Help>
-        </Value>
-        <Value type="int" index="33" genre="config" label="Test the LED, buzzer and vibrator" units="" value="0" read_only="true">
-            <Help>
+    </Value>
+    <Value genre="config" index="33" label="Test the LED, buzzer and vibrator" read_only="true" type="int" units="" value="0">
+      <Help>
                 Get the LED Strip color value
                 Value 1: (msb) Red.
                 Value 2: Green.
                 Value 3: Blue.
                 Value 4: buzzer and vibrator. (1=ON, 0=OFF)
             </Help>
-        </Value>
-        <Value type="byte" index="39" genre="config" label="Set the low battery value" units="%" min="10" max="50" value="20">
-            <Help>
+    </Value>
+    <Value genre="config" index="39" label="Set the low battery value" max="50" min="10" type="byte" units="%" value="20">
+      <Help>
                 Set the low battery value.
                 Range: 10% - 50%.</Help>
-        </Value>
-        <Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-            <Help>Reset to factory defaults</Help>
-            <Item label="Reset to factory default setting" value="0"/>
-            <Item label="Normal" value="1"/>
-            <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="9">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="On/Off control via Button 1"/>
-            <Group index="3" max_associations="5" label="Dimmer control via Button 1"/>
-            <Group index="4" max_associations="5" label="On/Off control via Button 2"/>
-            <Group index="5" max_associations="5" label="Dimmer control via Button 2"/>
-            <Group index="6" max_associations="5" label="On/Off control via Button 3"/>
-            <Group index="7" max_associations="5" label="Dimmer control via Button 3"/>
-            <Group index="8" max_associations="5" label="On/Off control via Button 4"/>
-            <Group index="9" max_associations="5" label="Dimmer control via Button 4"/>
-        </Associations>
-    </CommandClass>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="9">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off control via Button 1" max_associations="5"/>
+      <Group index="3" label="Dimmer control via Button 1" max_associations="5"/>
+      <Group index="4" label="On/Off control via Button 2" max_associations="5"/>
+      <Group index="5" label="Dimmer control via Button 2" max_associations="5"/>
+      <Group index="6" label="On/Off control via Button 3" max_associations="5"/>
+      <Group index="7" label="Dimmer control via Button 3" max_associations="5"/>
+      <Group index="8" label="On/Off control via Button 4" max_associations="5"/>
+      <Group index="9" label="Dimmer control via Button 4" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+
     <!--<CommandClass id="142" ForceInstances="true"/>-->
 </Product>
diff --git a/Config/aeotec/zw132.xml b/Config/aeotec/zw132.xml
index 787b3ac15f..d59b2cac33 100644
--- a/Config/aeotec/zw132.xml
+++ b/Config/aeotec/zw132.xml
@@ -3,7 +3,7 @@
 Aeotec ZW132 Dual Nano Switch, base on Engineering Spec 03/19/2018 V2.0
 Product Type ID: EU=0x00, US=0x01, AU=0x02 CN=0x1D 
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="3" genre="config" label="Over current protection" units="" min="0" max="1" size="1" value="1">
diff --git a/Config/aeotec/zw139.xml b/Config/aeotec/zw139.xml
index 675bf19dbb..874511a9f7 100644
--- a/Config/aeotec/zw139.xml
+++ b/Config/aeotec/zw139.xml
@@ -3,7 +3,7 @@
 Aeotec ZW139 Nano Switch, base on Engineering Spec 03/19/2018 V2.0
 Product Type ID: EU=0x00, US=0x01, AU=0x02 CN=0x1D 
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="4" genre="config" label="Over heat protection" units="" min="0" max="1" size="1" value="0">
diff --git a/Config/aeotec/zw140.xml b/Config/aeotec/zw140.xml
index af4653230d..3c6819f8e4 100644
--- a/Config/aeotec/zw140.xml
+++ b/Config/aeotec/zw140.xml
@@ -3,7 +3,7 @@
 Aeotec ZW140 Dual Nano Switch, base on Engineering Spec 03/19/2018 V2.0
 Product Type ID: EU=0x00, US=0x01, AU=0x02 CN=0x1D 
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="4" genre="config" label="Over heat protection" units="" min="0" max="1" size="1" value="0">
diff --git a/Config/aeotec/zw141.xml b/Config/aeotec/zw141.xml
index bf5737f29d..b3ef39fc64 100644
--- a/Config/aeotec/zw141.xml
+++ b/Config/aeotec/zw141.xml
@@ -4,7 +4,7 @@ Aeotec ZW141 Nano Shutter, base on Engineering Spec 1/4/2018
 Product Type ID: EU=0x00, US=0x01, AU=0x02 CN=0x1D
 
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
 		<Value type="byte" index="35" genre="config" label="Set the moving time" min="1" max="127" units="seconds" value="30">
diff --git a/Config/aeotec/zw162.xml b/Config/aeotec/zw162.xml
index 9bc3b44659..4bea2ddfbd 100644
--- a/Config/aeotec/zw162.xml
+++ b/Config/aeotec/zw162.xml
@@ -2,7 +2,7 @@
 <!--
 ZW162 Doorbell 6
 -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!--
   Aeotec Doorbell 6
   https://aeotec.freshdesk.com/helpdesk/attachments/6073850754
@@ -179,6 +179,19 @@ ZW162 Doorbell 6
       <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
     </Value>
   </CommandClass>
+
+  <CommandClass id="96"> 
+    <Instance index="1" label="Browse" />
+    <Instance index="2" label="Tampering" />
+    <Instance index="3" label="Doorbell 1" />
+    <Instance index="4" label="Doorbell 2" />
+    <Instance index="5" label="Doorbell 3" />
+    <Instance index="6" label="Enviroment" />
+    <Instance index="7" label="Security" />
+    <Instance index="8" label="Emergency" />
+    <Instance index="9" label="Misc" />
+  </CommandClass>
+
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="9">
diff --git a/Config/aeotec/zwa001.xml b/Config/aeotec/zwa001.xml
index 17eb1efb2e..3665725ed1 100644
--- a/Config/aeotec/zwa001.xml
+++ b/Config/aeotec/zwa001.xml
@@ -2,7 +2,7 @@
 <!-- 
 ZWA001 LED Bulb 6 Multi-White
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="80" genre="config" label="Notification" min="0" max="1" value="1" size="1">
diff --git a/Config/aeotec/zwa002.xml b/Config/aeotec/zwa002.xml
index 665a0a4f6f..55f7f45f60 100644
--- a/Config/aeotec/zwa002.xml
+++ b/Config/aeotec/zwa002.xml
@@ -3,7 +3,7 @@
 ZWA002 LED Bulb 6 Multi-Color
 https://products.z-wavealliance.org/products/2881
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="1" genre="config" label="User custom mode LED animations" min="0" max="2" value="0" size="1">
diff --git a/Config/aeotec/zwa003.xml b/Config/aeotec/zwa003.xml
index be5c611861..2eb2fc1f15 100644
--- a/Config/aeotec/zwa003.xml
+++ b/Config/aeotec/zwa003.xml
@@ -2,7 +2,7 @@
 <!--
 ZWA003 NanoMote Quad
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="byte" index="32" genre="config" label="Low battery level" units="%" min="10" max="50" value="20">
@@ -18,10 +18,10 @@ ZWA003 NanoMote Quad
 			</Help>
 		</Value>
 		<Value type="list" genre="config" instance="1" index="43" label="Battery low buzzer alarm" min="0" max="1" value="1" size="1">
-            		<Help>Enable/disable the buzzer alarm when battery is running low</Help>
-            		<Item label="Disable" value="0"/>
-            		<Item label="Enable" value="1"/>
-		</Value>    
+			<Help>Enable/disable the buzzer alarm when battery is running low</Help>
+			<Item label="Disable" value="0"/>
+			<Item label="Enable" value="1"/>
+		</Value>
 	</CommandClass>
 	<!-- Association Groups -->
 	<CommandClass id="133">
diff --git a/Config/aeotec/zwa004.xml b/Config/aeotec/zwa004.xml
index 44b4d56f2a..a24f92a78b 100644
--- a/Config/aeotec/zwa004.xml
+++ b/Config/aeotec/zwa004.xml
@@ -2,7 +2,7 @@
 <!--
 ZWA004 NanoMote One
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="byte" index="32" genre="config" label="Low battery level" units="%" min="10" max="50" value="20">
diff --git a/Config/aeotec/zwa005.xml b/Config/aeotec/zwa005.xml
index eea57c920b..f4ea4dadff 100644
--- a/Config/aeotec/zwa005.xml
+++ b/Config/aeotec/zwa005.xml
@@ -1,64 +1,68 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 ZWA005 TriSensor
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="short" index="1" genre="config" label="Motion Re-trigger Time" units="Second" min="0" max="32767" value="30" >
-            <Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="32">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Motion Re-trigger Time" max="32767" min="0" type="short" units="Second" value="30">
+      <Help>
                 This parameter is configured the delay time before PIR sensor can be triggered again to reset motion timeout counter.
 				Value = 0 will disable PIR sensor from triggering until motion timeout has finished.
             </Help>
-        </Value>
-		<Value type="short" index="2" genre="config" label="Motion clear time" units="Second" min="1" max="32767" value="240" >
-            <Help>
+    </Value>
+    <Value genre="config" index="2" label="Motion clear time" max="32767" min="1" type="short" units="Second" value="240">
+      <Help>
                 This configures the clear time when your motion sensor times out and sends a no motion status.
             </Help>
-        </Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Motion Sensitivity" min="0" max="11" value="8" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Motion Sensitivity" max="11" min="0" size="1" type="list" value="8">
+      <Help>
 				This parameter is configured the sensitivity that motion detect.
 				0  - PIR sensor disabled.
 				1  - Lowest sensitivity.
 				11 - Highest sensitivity.
 			</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="1" value="1"/>
-			<Item label="2" value="2"/>
-			<Item label="3" value="3"/>
-			<Item label="4" value="4"/>
-			<Item label="5" value="5"/>
-			<Item label="6" value="6"/>
-			<Item label="7" value="7"/>
-			<Item label="8" value="8"/>
-			<Item label="9" value="9"/>
-			<Item label="10" value="10"/>
-			<Item label="11" value="11"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="4" label="Binary Sensor Report" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable sensor binary report when motion event is detected or cleared</Help>
-			<Item label="Disable" value="0"/>
-			<Item label="Enable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="5" label="Disable BASIC_SET to Associated nodes" min="0" max="3" value="3" size="1">
-			<Help>This parameter is configured the enabled or disabled send BASIC_SET command to nodes that associated in group 2 and group 3.</Help>
-			<Item label="Disabled All Group Basic Set Command" value="0"/>
-			<Item label="Enabled Group 2" value="1"/>
-			<Item label="Enabled Group 3 " value="2"/>
-			<Item label="Enabled Group 2 and Group 3" value="3"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="6" label="Basic Set Value Settings for Group 2" min="0" max="5" value="0" size="1">
-			<Help>Define Basic Set Value  when motion event is triggered and / or cleared</Help>
-			<Item label="0xFF when motion is triggered and 0x00 when motion is cleared" value="0"/>
-			<Item label="0x00 when motion is triggered and 0xFF when motion is cleared" value="1"/>
-			<Item label="0xFF when motion is triggered" value="2"/>
-			<Item label="0x00 when motion is triggered" value="3"/>
-			<Item label="0x00 when motion event is cleared" value="4"/>
-			<Item label="0xFF when motion event is cleared" value="5"/>
-		</Value>
-		<Value type="short" index="7" genre="config" label="Temperature Alarm Value" units="0.1" value="239" >
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="1" value="1"/>
+      <Item label="2" value="2"/>
+      <Item label="3" value="3"/>
+      <Item label="4" value="4"/>
+      <Item label="5" value="5"/>
+      <Item label="6" value="6"/>
+      <Item label="7" value="7"/>
+      <Item label="8" value="8"/>
+      <Item label="9" value="9"/>
+      <Item label="10" value="10"/>
+      <Item label="11" value="11"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Binary Sensor Report" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable sensor binary report when motion event is detected or cleared</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Disable BASIC_SET to Associated nodes" max="3" min="0" size="1" type="list" value="3">
+      <Help>This parameter is configured the enabled or disabled send BASIC_SET command to nodes that associated in group 2 and group 3.</Help>
+      <Item label="Disabled All Group Basic Set Command" value="0"/>
+      <Item label="Enabled Group 2" value="1"/>
+      <Item label="Enabled Group 3 " value="2"/>
+      <Item label="Enabled Group 2 and Group 3" value="3"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Basic Set Value Settings for Group 2" max="5" min="0" size="1" type="list" value="0">
+      <Help>Define Basic Set Value  when motion event is triggered and / or cleared</Help>
+      <Item label="0xFF when motion is triggered and 0x00 when motion is cleared" value="0"/>
+      <Item label="0x00 when motion is triggered and 0xFF when motion is cleared" value="1"/>
+      <Item label="0xFF when motion is triggered" value="2"/>
+      <Item label="0x00 when motion is triggered" value="3"/>
+      <Item label="0x00 when motion event is cleared" value="4"/>
+      <Item label="0xFF when motion event is cleared" value="5"/>
+    </Value>
+    <Value genre="config" index="7" label="Temperature Alarm Value" type="short" units="0.1" value="239">
+      <Help>
                 This parameter is configured the threshold value that alarm level for temperature.
 				When the current ambient temperature value is larger than this configuration value, device will send a BASIC_SET = 0xFF to nodes associated in group 3.
 				If current temperature value is less than this value, device will send a BASIC_SET = 0x00 to nodes associated in group 3.
@@ -66,136 +70,136 @@ ZWA005 TriSensor
 				Available Settings: -400 to 850 (40.0 to 85.0 Celsius) or -400 to 1185 (-40.0 to 118.5 Fahrenheit).
 				Default value: 239 (23.9 Celsius) or 750 (75.0 Fahrenheit)
             </Help>
-        </Value>
-		<Value type="list" genre="config" instance="1" index="10" label="LED over TriSensor" min="0" max="1" value="1" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="LED over TriSensor" max="1" min="0" size="1" type="list" value="1">
+      <Help>
 				Enable or Disable LED over TriSensor
 				This completely disables all LED reaction regardless of Parameter 9 - 13 settings
 			</Help>
-			<Item label="Disable" value="0"/>
-			<Item label="Enable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="11" label="Motion report LED" min="0" max="8" value="2" size="1">
-			<Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Motion report LED" max="8" min="0" size="1" type="list" value="2">
+      <Help>
 				This setting changes the color of the LED when your TriSensor sends a motion report.
 			</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Red" value="1"/>
-			<Item label="Green" value="2"/>
-			<Item label="Blue" value="3"/>
-			<Item label="Yellow" value="4"/>
-			<Item label="Pink" value="5"/>
-			<Item label="Cyan" value="6"/>
-			<Item label="Purple" value="7"/>
-			<Item label="Orange" value="8"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="12" label="Temperature report LED" min="0" max="1" value="0" size="1">
-			<Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Yellow" value="4"/>
+      <Item label="Pink" value="5"/>
+      <Item label="Cyan" value="6"/>
+      <Item label="Purple" value="7"/>
+      <Item label="Orange" value="8"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Temperature report LED" max="1" min="0" size="1" type="list" value="0">
+      <Help>
 				This setting changes the color of the LED when your TriSensor sends a temperature report.
 			</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Red" value="1"/>
-			<Item label="Green" value="2"/>
-			<Item label="Blue" value="3"/>
-			<Item label="Yellow" value="4"/>
-			<Item label="Pink" value="5"/>
-			<Item label="Cyan" value="6"/>
-			<Item label="Purple" value="7"/>
-			<Item label="Orange" value="8"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="13" label="Light report LED" min="0" max="8" value="0" size="1">
-			<Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Yellow" value="4"/>
+      <Item label="Pink" value="5"/>
+      <Item label="Cyan" value="6"/>
+      <Item label="Purple" value="7"/>
+      <Item label="Orange" value="8"/>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Light report LED" max="8" min="0" size="1" type="list" value="0">
+      <Help>
 				This setting changes the color of the LED when your TriSensor sends a light report.
 			</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Red" value="1"/>
-			<Item label="Green" value="2"/>
-			<Item label="Blue" value="3"/>
-			<Item label="Yellow" value="4"/>
-			<Item label="Pink" value="5"/>
-			<Item label="Cyan" value="6"/>
-			<Item label="Purple" value="7"/>
-			<Item label="Orange" value="8"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="14" label="Battery report LED" min="0" max="8" value="0" size="1">
-			<Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Yellow" value="4"/>
+      <Item label="Pink" value="5"/>
+      <Item label="Cyan" value="6"/>
+      <Item label="Purple" value="7"/>
+      <Item label="Orange" value="8"/>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Battery report LED" max="8" min="0" size="1" type="list" value="0">
+      <Help>
 				It is possible to change the color of what the LED blinks when your TriSensor sends a battery report.
 			</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Red" value="1"/>
-			<Item label="Green" value="2"/>
-			<Item label="Blue" value="3"/>
-			<Item label="Yellow" value="4"/>
-			<Item label="Pink" value="5"/>
-			<Item label="Cyan" value="6"/>
-			<Item label="Purple" value="7"/>
-			<Item label="Orange" value="8"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="15" label="Wakeup report LED" min="0" max="8" value="0" size="1">
-			<Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Yellow" value="4"/>
+      <Item label="Pink" value="5"/>
+      <Item label="Cyan" value="6"/>
+      <Item label="Purple" value="7"/>
+      <Item label="Orange" value="8"/>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Wakeup report LED" max="8" min="0" size="1" type="list" value="0">
+      <Help>
 				This setting changes the color of the LED when your TriSensor sends a wakeup report.
 			</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Red" value="1"/>
-			<Item label="Green" value="2"/>
-			<Item label="Blue" value="3"/>
-			<Item label="Yellow" value="4"/>
-			<Item label="Pink" value="5"/>
-			<Item label="Cyan" value="6"/>
-			<Item label="Purple" value="7"/>
-			<Item label="Orange" value="8"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="20" label="Temperature Scale Setting" min="0" max="1" value="0" size="1">
-			<Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Yellow" value="4"/>
+      <Item label="Pink" value="5"/>
+      <Item label="Cyan" value="6"/>
+      <Item label="Purple" value="7"/>
+      <Item label="Orange" value="8"/>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Temperature Scale Setting" max="1" min="0" size="1" type="list" value="0">
+      <Help>
 				Configure temperature sensor scale type, Temperature to report in Celsius or Fahrenheit
 			</Help>
-			<Item label="Celsius" value="0"/>
-			<Item label="Fahrenheit" value="1"/>
-		</Value>
-		<Value type="short" index="21" genre="config" label="Temperature Threshold reporting" units="0.1" min="0" max="250" value="20" >
-            <Help>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="21" label="Temperature Threshold reporting" max="250" min="0" type="short" units="0.1" value="20">
+      <Help>
                 Change threshold value for change in temperature to induce an automatic report for temperature sensor.
 				Scale is identical setting in Parameter No.20.
 				0-> Disable Threshold Report for Temperature Sensor.
 				Setting of value 20 can be a change of -2.0 or +2.0 (C or F depending on Parameter No.20) to induce automatic report or setting a value of 2 will be a change of 0.2(C or F).
 				Available Settings: 0 to 250.
             </Help>
-        </Value>
-		<Value type="short" index="22" genre="config" label="Light intensity Threshold Value to Report" units="Lux" min="0" max="10000" value="100" >
-            <Help>
+    </Value>
+    <Value genre="config" index="22" label="Light intensity Threshold Value to Report" max="10000" min="0" type="short" units="Lux" value="100">
+      <Help>
                 Change threshold value for change in lux to induce an automatic report for light sensor.
             </Help>
-        </Value>
-		<Value type="short" index="23" genre="config" label="Temperature Sensor Report Interval" units="Second" min="0" max="32767" value="3600" >
-            <Help>
+    </Value>
+    <Value genre="config" index="23" label="Temperature Sensor Report Interval" max="32767" min="0" type="short" units="Second" value="3600">
+      <Help>
                 This parameter is configured the time interval for temperature sensor report.
 				This value is larger, the battery life is longer.
 				And the temperature value changed is not obvious.
             </Help>
-        </Value>
-		<Value type="short" index="24" genre="config" label="Light Sensor Report Interval" units="Second" min="0" max="32767" value="3600" >
-            <Help>
+    </Value>
+    <Value genre="config" index="24" label="Light Sensor Report Interval" max="32767" min="0" type="short" units="Second" value="3600">
+      <Help>
                 This parameter is configured the time interval for light sensor report.
 				This value is larger, the battery life is longer.
 				And the light intensity changed is not obvious.
             </Help>
-        </Value>
-		<Value type="short" index="30" genre="config" label="Temperature Offset Value" units="0.1" value="0" >
-            <Help>
+    </Value>
+    <Value genre="config" index="30" label="Temperature Offset Value" type="short" units="0.1" value="0">
+      <Help>
                 The current measuring temperature value can be add and minus a value by this setting.
 				The scale can be decided by Parameter Number 20.
 				Temperature Offset Value = [Value] * 0.1(Celsius / Fahrenheit)
 				Available Settings: -200 to 200.
             </Help>
-        </Value>
-		<Value type="short" index="31" genre="config" label="Light Intensity Offset Value" units="Lux" value="0" >
-            <Help>
+    </Value>
+    <Value genre="config" index="31" label="Light Intensity Offset Value" type="short" units="Lux" value="0">
+      <Help>
                 The current measuring light intensity value can be add and minus a value by this setting.
 				Available Settings: -1000 to 1000.
             </Help>
-        </Value>
-		<Value type="short" index="100" genre="config" label="Light Sensor Calibrated Coefficient" units="" min="0" max="32767" value="1024" >
-            <Help>
+    </Value>
+    <Value genre="config" index="100" label="Light Sensor Calibrated Coefficient" max="32767" min="0" type="short" units="" value="1024">
+      <Help>
                 This configuration defines the calibrated scale for ambient light intensity.
 				Because the method and position that the sensor mounted and the cover of sensor will bring measurement error, user can get more real light intensity by this parameter setting.
 				User should run the steps as blows for calibrating
@@ -210,14 +214,14 @@ ZWA005 TriSensor
 					k = 8.6667 * 1024 = 8874.7 => 8875.
 					The parameter should be set to 8875.
             </Help>
-        </Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="1" label="Lifeline" />
-			<Group index="2" max_associations="5" label="BasicSet report"/>
-			<Group index="3" max_associations="5" label="Temperature Alarm report"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="BasicSet report" max_associations="5"/>
+      <Group index="3" label="Temperature Alarm report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/aeotec/zwa006.xml b/Config/aeotec/zwa006.xml
index 986978ec84..49c1cf9154 100644
--- a/Config/aeotec/zwa006.xml
+++ b/Config/aeotec/zwa006.xml
@@ -3,7 +3,7 @@
 ZWA006 Smart Boost Timer Switch
 https://products.z-wavealliance.org/products/3067
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" genre="config" instance="1" index="1" label="Power out action" min="0" max="3" value="3" size="1">
diff --git a/Config/aeotec/zwa008.xml b/Config/aeotec/zwa008.xml
new file mode 100644
index 0000000000..0c60e97065
--- /dev/null
+++ b/Config/aeotec/zwa008.xml
@@ -0,0 +1,121 @@
+<!--
+ZWA008 Door Window Sensor 7
+--><Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Operation mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>Parameter defines device operation mode.</Help>
+      <Item label="Built-in hall sensor" value="0"/>
+      <Item label="External Input" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Door/Window or alarm status" max="1" min="0" size="1" type="list" value="0">
+      <Help>
+                Parameter defines state of the sensor when the magnet is close.
+                If the alarm sensor is connected, it determines the output type.
+                Parameter inactive in external button mode (parameter Operation Mode set to 1).
+            </Help>
+      <Item label="Closed" value="0"/>
+      <Item label="Opened" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Visual LED indications" max="7" min="0" size="1" type="byte" value="7">
+      <Help>
+                This parameter defines events indicated by the visual LED indicator. Disabling events might extend battery life.
+                Values of parameters may be combined, e.g. 1+2=3 means opening/closing and wake up will be indicated by the visual indicator.
+                0 - No indications.
+                1 - Indication of opening/closing status change (input In).
+                2 - Indication of wake up (1 x click or periodical).
+                4 - Indication of device tampering.
+            </Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Range test after double click" max="1" min="0" size="1" type="list" value="0">
+      <Help>
+                Allows to enable activation of Z-Wave range test with double click of a Tamper Switch 2.
+            </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="2nd Association Group triggers" max="1" min="0" size="1" type="list" value="0">
+      <Help>
+                Parameter defines events which result in sending On/Off commands to devices added to the 2nd Association Group.
+                These commands are sent alternately to switch the devices On and Off.
+                Commands represent the values of BASIC SET command frames.
+                Parameter is inactive in external dry-contact mode (parameter Operation Mode set to 1).
+            </Help>
+      <Item label="Switch after opening and closing" value="0"/>
+      <Item label="Switch after opening" value="1"/>
+      <Item label="Switch after closing" value="2"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Commands sent to 2nd Association Group" max="1" min="0" size="1" type="list" value="2">
+      <Help>
+                Command frames sent to devices added to the 2nd association group.
+            </Help>
+      <Item label="On" value="0"/>
+      <Item label="Off" value="1"/>
+      <Item label="On and Off" value="2"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Value of ON command frame sent to 2nd Association Group" max="255" min="0" size="1" type="byte" value="255">
+      <Help>
+                The value of 0 turns OFF the device, 255 turns it On.
+                In case of associating the Dimmer or Roller Shutter module, values 1-99 allow to set an Associated device to a specified level.
+            </Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Value of OFF command frame sent to 2nd Association Group" max="255" min="0" size="1" type="byte" value="0">
+      <Help>
+                The value of 0 turns OFF the device, 255 turns it On.
+                In case of associating the Dimmer or Roller Shutter module, values 1-99 allow to set an Associated device to a specified level.
+            </Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Time delay of ON command frame" max="32400" min="0" size="2" type="short" units="seconds" value="0">
+      <Help>
+                Time period after which On command frame will be sent.
+            </Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Time delay of OFF command frame" max="32400" min="0" size="2" type="short" units="seconds" value="0">
+      <Help>
+                Time period after which Off command frame will be sent.
+            </Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Delay of tamper alarm cancellation" max="32400" min="0" size="2" type="short" units="seconds" value="5">
+      <Help>
+                Time period after which a tamper alarm will be cancelled.
+            </Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Reporting tamper alarm cancellation" max="1" min="0" size="1" type="list" value="1">
+      <Help>
+                Reporting cancellation of tamper alarm to the controller and 5th Association Group.
+            </Help>
+      <Item label="Do not send tamper cancellation report" value="0"/>
+      <Item label="Send tamper cancellation report" value="1"/>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Scene activation functionality" max="1" min="0" size="1" type="list" value="0">
+      <Help>
+                The device can trigger scenes via Dry Input Terminal (external contact) using scene IDs assigned to different events.
+            </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Tilt Sensor functionality" max="1" min="0" size="1" type="list" value="1">
+      <Help>
+                The device can report Tilt Window events.
+                This functionality can be disabled if the device is mounted on a door or windows without tilt functionality.To disable tilt detection set the value to 0.
+            </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Control" max_associations="5"/>
+      <Group index="3" label="Alarm sensor" max_associations="5"/>
+      <Group index="4" label="Alarm tamper" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/airlinemechanical/zds-ud10.xml b/Config/airlinemechanical/zds-ud10.xml
new file mode 100644
index 0000000000..dbfab0b744
--- /dev/null
+++ b/Config/airlinemechanical/zds-ud10.xml
@@ -0,0 +1,15 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0111:0200:8200</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/airlinemechanical/zds-ud10.png</MetaDataItem>
+    <MetaDataItem id="0200" name="ZWProductPage" type="8200">https://products.z-wavealliance.org/products/106/</MetaDataItem>
+    <MetaDataItem name="Name">AMC Dimming Switch Module</MetaDataItem>
+    <MetaDataItem id="0200" name="Identifier" type="8200">NDS/ZDS-UD10</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave US Plug-in Switch/Dimmer</MetaDataItem>
+    <MetaDataItem id="0200" name="FrequencyName" type="8200">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/106/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/assa_abloy/ConexisL1.xml b/Config/assa_abloy/ConexisL1.xml
index ad03f2037b..5d2fbf35ba 100644
--- a/Config/assa_abloy/ConexisL1.xml
+++ b/Config/assa_abloy/ConexisL1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 <!-- Yale Conexis L1 (SD-L1000-CH)
 http://ozw.my-ho.st/Yale/Yale%20ZWave%20Developer%20Guide.pdf 
 https://products.z-wavealliance.org/products/2535/configs
diff --git a/Config/assa_abloy/KeyfreeConnected-plus.xml b/Config/assa_abloy/KeyfreeConnected-plus.xml
index 7867171cfc..6d4b989102 100644
--- a/Config/assa_abloy/KeyfreeConnected-plus.xml
+++ b/Config/assa_abloy/KeyfreeConnected-plus.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 <!-- Yale Keyfree Connected (YKFCON)
 http://ozw.my-ho.st/Yale/Yale%20ZWave%20Developer%20Guide.pdf 
 https://products.z-wavealliance.org/products/2743/configs
diff --git a/Config/assa_abloy/KeyfreeConnected.xml b/Config/assa_abloy/KeyfreeConnected.xml
index e15e576beb..2b7618cb4e 100644
--- a/Config/assa_abloy/KeyfreeConnected.xml
+++ b/Config/assa_abloy/KeyfreeConnected.xml
@@ -1,12 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<CommandClass id="113">
-		<!-- These Door Locks don't send a DoorLockReport when the
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0129:0000:0007</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/assa_abloy/KeyfreeConnected.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="0007">https://products.z-wavealliance.org/products/1399/</MetaDataItem>
+    <MetaDataItem name="Name">Yale Keyless Connected YD-01-CON</MetaDataItem>
+    <MetaDataItem name="Description">Keyless Connected with Z-Wave for Rim locks</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="0007">YD-01-CON</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="0007">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1399/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="113">
+    <!-- These Door Locks don't send a DoorLockReport when the
 		Lock Status is Changed, but instead send a Alarm Message -
 		So we trigger a Refresh of the DoorLock Command Class when
 		we recieve a Alarm Message Instead -->
-		<TriggerRefreshValue Genre="user" Index="0" Instance="1">
-			<RefreshClassValue CommandClass="98" RequestFlags="0" Index="1" Instance="1" />
-		</TriggerRefreshValue>
-	</CommandClass>
+    <TriggerRefreshValue Genre="user" Index="0" Instance="1">
+      <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
+    </TriggerRefreshValue>
+  </CommandClass>
 </Product>
diff --git a/Config/assa_abloy/PushButtonDeadbolt.xml b/Config/assa_abloy/PushButtonDeadbolt.xml
index e9f6a49fa4..42cc805212 100644
--- a/Config/assa_abloy/PushButtonDeadbolt.xml
+++ b/Config/assa_abloy/PushButtonDeadbolt.xml
@@ -1,92 +1,108 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!-- Yale Push Button Deadbolt (YRD210)
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0129:0000:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/assa_abloy/PushButtonDeadbolt.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/687/</MetaDataItem>
+    <MetaDataItem name="Description">Key Free Pushbutton Deadbolt, Integrated Z-Wave</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="0004">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="0004">Yale/YRD/ 210 </MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.yalerealliving.com</MetaDataItem>
+    <MetaDataItem name="Name">Yale YRD110-ZW-US</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/687/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1039/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0800" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1039/</MetaDataItem>
+    <MetaDataItem id="0800" name="Identifier" type="0004">YRD110-ZW-US</MetaDataItem>
+    <MetaDataItem id="0800" name="FrequencyName" type="0004">U.S. / Canada / Mexico</MetaDataItem>
+  </MetaData>
+  <!-- Yale Push Button Deadbolt (YRD210)
 http://ozw.my-ho.st/Yale/Yale%20ZWave%20Developer%20Guide.pdf 
 -->
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" size="1" genre="config" instance="1" index="1" label="Audio Mode" value="3">
-			<Help>Disable the door sensor alarm function.</Help>
-			<Item label="Off" value="1" />
-			<Item label="On" value="3" />
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="2" label="Auto Relock" value="0">
-			<Help></Help>
-			<Item label="Off" value="0" />
-			<Item label="On" value="255" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="Re-lock Time" size="1" min="5" max="255" units="seconds" value="30">
-			<Help>seconds; after successful code entry and unit unlocks, it will automatically re-lock after specified time (30 = default value)</Help>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="4" label="Wrong Code Entry Limit" min="1" max="7" value="5">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Audio Mode" size="1" type="list" value="3">
+      <Help>Disable the door sensor alarm function.</Help>
+      <Item label="Off" value="1"/>
+      <Item label="On" value="3"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Auto Relock" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Re-lock Time" max="255" min="5" size="1" type="byte" units="seconds" value="30">
+      <Help>seconds; after successful code entry and unit unlocks, it will automatically re-lock after specified time (30 = default value)</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Wrong Code Entry Limit" max="7" min="1" size="1" type="list" value="5">
+      <Help>
 			The number of invalid code entries lock will accept before sending TAMPER Alarm. 
 			When number of wrong code entries is exceeded, lock will disable keypad for the time specified by Shutdown Time parameter. (5 = default)
 			</Help>
-			<Item label="3" value="3" />
-			<Item label="4" value="4" />
-			<Item label="5" value="5" />
-			<Item label="6" value="6" />
-			<Item label="7" value="7" />
-			<Item label="8" value="8"/>
-			<Item label="9" value="9"/>
-			<Item label="10" value="10"/>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="5" label="Language" min="1" max="3" value="1">
-			<Help>
+      <Item label="3" value="3"/>
+      <Item label="4" value="4"/>
+      <Item label="5" value="5"/>
+      <Item label="6" value="6"/>
+      <Item label="7" value="7"/>
+      <Item label="8" value="8"/>
+      <Item label="9" value="9"/>
+      <Item label="10" value="10"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Language" max="3" min="1" size="1" type="list" value="1">
+      <Help>
 				The number of invalid code entries lock will accept before sending TAMPER Alarm.
 				When number of wrong code entries is exceeded, lock will disable keypad for the time specified by Shutdown Time parameter. (5 = default)
 			</Help>
-			<Item label="English" value="1"/>
-			<Item label="Spanish" value="2"/>
-			<Item label="French" value="3"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="7" label="Shutdown Time" size="1" min="5" max="255" units="seconds" value="30">
-			<Help>number of seconds unit will be inoperable after number of wrong code entries is exceeded (30 = default)</Help>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="8" label="Operating Mode" min="0" max="2" value="1">
-			<Help>
+      <Item label="English" value="1"/>
+      <Item label="Spanish" value="2"/>
+      <Item label="French" value="3"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Shutdown Time" max="255" min="5" size="1" type="byte" units="seconds" value="30">
+      <Help>number of seconds unit will be inoperable after number of wrong code entries is exceeded (30 = default)</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Operating Mode" max="2" min="0" size="1" type="list" value="1">
+      <Help>
 			The number of invalid code entries lock will accept before sending TAMPER Alarm. 
 			When number of wrong code entries is exceeded, lock will disable keypad for the time specified by Shutdown Time parameter. (5 = default)
 			</Help>
-			<Item label="Normal" value="0" />
-			<Item label="Vacation" value="1" />
-			<Item label="Privacy" value="2" />			
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="11" label="One Touch Locking" value="0">
-			<Help></Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="12" label="Privacy Button" value="0">
-			<Help></Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="13" label="Lock Status LED" value="0">
-			<Help></Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="15" label="Reset to Factory Defaults" value="0">
-			<Help></Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-	</CommandClass>
-	<CommandClass id="113">
-		<!-- These Door Locks don't send a DoorLockReport when the
+      <Item label="Normal" value="0"/>
+      <Item label="Vacation" value="1"/>
+      <Item label="Privacy" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="One Touch Locking" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Privacy Button" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Lock Status LED" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Reset to Factory Defaults" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="113">
+    <!-- These Door Locks don't send a DoorLockReport when the
 		Lock Status is Changed, but instead send a Alarm Message -
 		So we trigger a Refresh of the DoorLock Command Class when
 		we recieve a Alarm Message Instead -->
-		<TriggerRefreshValue Genre="user" Index="0" Instance="1">
-			<RefreshClassValue CommandClass="98" RequestFlags="0" Index="1" Instance="1" />
-		</TriggerRefreshValue>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>			
-		</Associations>
-	</CommandClass>
+    <TriggerRefreshValue Genre="user" Index="0" Instance="1">
+      <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
+    </TriggerRefreshValue>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/assa_abloy/PushButtonLever.xml b/Config/assa_abloy/PushButtonLever.xml
index e30318541b..4e8fd002b8 100644
--- a/Config/assa_abloy/PushButtonLever.xml
+++ b/Config/assa_abloy/PushButtonLever.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+
 <!-- Yale Push Button Lever Lock (YRL210)
 http://ozw.my-ho.st/Yale/Yale%20ZWave%20Developer%20Guide.pdf 
 -->
diff --git a/Config/assa_abloy/TouchDeadbolt.xml b/Config/assa_abloy/TouchDeadbolt.xml
index bd801b4302..229034e8e6 100644
--- a/Config/assa_abloy/TouchDeadbolt.xml
+++ b/Config/assa_abloy/TouchDeadbolt.xml
@@ -1,94 +1,114 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!-- Yale Touchscreen Deadbolt (YRD220)
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0129:0000:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/assa_abloy/TouchDeadbolt.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/631/</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="0002">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.yalerealliving.com</MetaDataItem>
+    <MetaDataItem name="Description">Keyfree Connected with Z-Wave for multipoint lock</MetaDataItem>
+    <MetaDataItem name="Name">Yale Keyfree Connected</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="0002">Yale/YRD/ 220</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/631/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1040/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1358/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0800" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1040/</MetaDataItem>
+    <MetaDataItem id="0800" name="FrequencyName" type="0002">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0800" name="Identifier" type="0002">YRD120-ZW-US</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="0006">https://products.z-wavealliance.org/products/1358/</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="0006">YKFCON</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="0006">CEPT (Europe)</MetaDataItem>
+  </MetaData>
+  <!-- Yale Touchscreen Deadbolt (YRD220)
 http://ozw.my-ho.st/Yale/Yale%20ZWave%20Developer%20Guide.pdf
 http://products.z-wavealliance.org/products/1972/configs
 http://products.z-wavealliance.org/products/1973/configs
 -->
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" size="1" genre="config" instance="1" index="1" label="Audio Mode" value="3">
-			<Help>Disable the door sensor alarm function.</Help>
-			<Item label="Silent" value="1" />
-			<Item label="Low" value="2" />
-			<Item label="High" value="3" />
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="2" label="Auto Relock" value="0">
-			<Help></Help>
-			<Item label="Off" value="0" />
-			<Item label="On" value="255" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="Re-lock Time" size="1" min="5" max="255" units="seconds" value="30">
-			<Help>seconds; after successful code entry and unit unlocks, it will automatically re-lock after specified time (30 = default value)</Help>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="4" label="Wrong Code Entry Limit" min="1" max="7" value="5">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Audio Mode" size="1" type="list" value="3">
+      <Help>Disable the door sensor alarm function.</Help>
+      <Item label="Silent" value="1"/>
+      <Item label="Low" value="2"/>
+      <Item label="High" value="3"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Auto Relock" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Re-lock Time" max="255" min="5" size="1" type="byte" units="seconds" value="30">
+      <Help>seconds; after successful code entry and unit unlocks, it will automatically re-lock after specified time (30 = default value)</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Wrong Code Entry Limit" max="7" min="1" size="1" type="list" value="5">
+      <Help>
 			The number of invalid code entries lock will accept before sending TAMPER Alarm. 
 			When number of wrong code entries is exceeded, lock will disable keypad for the time specified by Shutdown Time parameter. (5 = default)
 			</Help>
-			<Item label="1" value="1" />
-			<Item label="2" value="2" />
-			<Item label="3" value="3" />
-			<Item label="4" value="4" />
-			<Item label="5" value="5" />
-			<Item label="6" value="6" />
-			<Item label="7" value="7" />
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="5" label="Language" min="1" max="3" value="1">
-			<Help>
+      <Item label="1" value="1"/>
+      <Item label="2" value="2"/>
+      <Item label="3" value="3"/>
+      <Item label="4" value="4"/>
+      <Item label="5" value="5"/>
+      <Item label="6" value="6"/>
+      <Item label="7" value="7"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Language" max="3" min="1" size="1" type="list" value="1">
+      <Help>
 			The number of invalid code entries lock will accept before sending TAMPER Alarm. 
 			When number of wrong code entries is exceeded, lock will disable keypad for the time specified by Shutdown Time parameter. (5 = default)
 			</Help>
-			<Item label="English" value="1" />
-			<Item label="Spanish" value="2" />
-			<Item label="French" value="3" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="7" label="Shutdown Time" size="1" min="5" max="255" units="seconds" value="30">
-			<Help>number of seconds unit will be inoperable after number of wrong code entries is exceeded (30 = default)</Help>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="8" label="Operating Mode" min="0" max="2" value="1">
-			<Help>
+      <Item label="English" value="1"/>
+      <Item label="Spanish" value="2"/>
+      <Item label="French" value="3"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Shutdown Time" max="255" min="5" size="1" type="byte" units="seconds" value="30">
+      <Help>number of seconds unit will be inoperable after number of wrong code entries is exceeded (30 = default)</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Operating Mode" max="2" min="0" size="1" type="list" value="1">
+      <Help>
 			The number of invalid code entries lock will accept before sending TAMPER Alarm. 
 			When number of wrong code entries is exceeded, lock will disable keypad for the time specified by Shutdown Time parameter. (5 = default)
 			</Help>
-			<Item label="Normal" value="0" />
-			<Item label="Vacation" value="1" />
-			<Item label="Privacy" value="2" />			
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="11" label="One Touch Locking" value="0">
-			<Help></Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="12" label="Privacy Button" value="0">
-			<Help></Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="13" label="Lock Status LED" value="0">
-			<Help></Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="15" label="Reset to Factory Defaults" value="0">
-			<Help></Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-	</CommandClass>
-	<CommandClass id="113">
-		<!-- These Door Locks don't send a DoorLockReport when the
+      <Item label="Normal" value="0"/>
+      <Item label="Vacation" value="1"/>
+      <Item label="Privacy" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="One Touch Locking" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Privacy Button" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Lock Status LED" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Reset to Factory Defaults" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="113">
+    <!-- These Door Locks don't send a DoorLockReport when the
 		Lock Status is Changed, but instead send a Alarm Message -
 		So we trigger a Refresh of the DoorLock Command Class when
 		we recieve a Alarm Message Instead -->
-		<TriggerRefreshValue Genre="user" Index="0" Instance="1">
-			<RefreshClassValue CommandClass="98" RequestFlags="0" Index="1" Instance="1" />
-		</TriggerRefreshValue>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>			
-		</Associations>
-	</CommandClass>
+    <TriggerRefreshValue Genre="user" Index="0" Instance="1">
+      <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
+    </TriggerRefreshValue>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/assa_abloy/TouchLever.xml b/Config/assa_abloy/TouchLever.xml
index 71b9edc196..a86e97eaaa 100644
--- a/Config/assa_abloy/TouchLever.xml
+++ b/Config/assa_abloy/TouchLever.xml
@@ -1,72 +1,86 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!-- Yale Touchscreen Lever (YRL220)
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0129:0000:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/assa_abloy/TouchLever.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/686/</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.yalerealliving.com</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="0001">Yale/YRL/210 </MetaDataItem>
+    <MetaDataItem name="Name">Yale Real Living Push Button Lever Lock</MetaDataItem>
+    <MetaDataItem name="Description">Yale Real Living deadbolt and lever locks are the first products in the Yale Real Living™ (www.yalerealliving.com) portfolio of home control and security solutions.  Available in both durable acrylic touchscreen or simple, elegant, tamper-resistant keypad, Yale's new platform of intelligent locks support Z-Wave, allowing them to integrate seamlessly into a wide range of home control and security systems.  
+
+Regardless of the home control system employed, users will have access to a high degree of functionality, including the ability to lock and unlock doors from web-enabled devices or create customized entry scenes for family members, neighbors and guests. Features of Yale Real Living locks include personalized access-control scenes for up to 250 users; access to all user programmable settings via select user interfaces; plus the touchscreen versions employ voice assisted programming in English, Spanish and French.  The new intelligent locks offer an elegant, next-generation home control solution for entryways and protected interior doors to make everyday living easier and safer.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/686/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Yale Touchscreen Lever (YRL220)
 http://ozw.my-ho.st/Yale/Yale%20ZWave%20Developer%20Guide.pdf 
 -->
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" size="1" genre="config" instance="1" index="1" label="Audio Mode" value="3">
-			<Help>Disable the door sensor alarm function.</Help>
-			<Item label="Silent" value="1" />
-			<Item label="Low" value="2" />
-			<Item label="High" value="3" />
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="2" label="Auto Relock" value="0">
-			<Help></Help>
-			<Item label="On" value="0" />
-			<Item label="Off" value="255" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="Re-lock Time" size="1" min="5" max="255" units="seconds" value="30">
-			<Help>seconds; after successful code entry and unit unlocks, it will automatically re-lock after specified time (30 = default value)</Help>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="4" label="Wrong Code Entry Limit" min="1" max="7" value="5">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Audio Mode" size="1" type="list" value="3">
+      <Help>Disable the door sensor alarm function.</Help>
+      <Item label="Silent" value="1"/>
+      <Item label="Low" value="2"/>
+      <Item label="High" value="3"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Auto Relock" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="On" value="0"/>
+      <Item label="Off" value="255"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Re-lock Time" max="255" min="5" size="1" type="byte" units="seconds" value="30">
+      <Help>seconds; after successful code entry and unit unlocks, it will automatically re-lock after specified time (30 = default value)</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Wrong Code Entry Limit" max="7" min="1" size="1" type="list" value="5">
+      <Help>
 			The number of invalid code entries lock will accept before sending TAMPER Alarm. 
 			When number of wrong code entries is exceeded, lock will disable keypad for the time specified by Shutdown Time parameter. (5 = default)
 			</Help>
-			<Item label="1" value="1" />
-			<Item label="2" value="2" />
-			<Item label="3" value="3" />
-			<Item label="4" value="4" />
-			<Item label="5" value="5" />
-			<Item label="6" value="6" />
-			<Item label="7" value="7" />
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="5" label="Language" min="1" max="3" value="1">
-			<Help>
+      <Item label="1" value="1"/>
+      <Item label="2" value="2"/>
+      <Item label="3" value="3"/>
+      <Item label="4" value="4"/>
+      <Item label="5" value="5"/>
+      <Item label="6" value="6"/>
+      <Item label="7" value="7"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Language" max="3" min="1" size="1" type="list" value="1">
+      <Help>
 			The number of invalid code entries lock will accept before sending TAMPER Alarm. 
 			When number of wrong code entries is exceeded, lock will disable keypad for the time specified by Shutdown Time parameter. (5 = default)
 			</Help>
-			<Item label="English" value="1" />
-			<Item label="Spanish" value="2" />
-			<Item label="French" value="3" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="7" label="Shutdown Time" size="1" min="5" max="255" units="seconds" value="30">
-			<Help>number of seconds unit will be inoperable after number of wrong code entries is exceeded (30 = default)</Help>
-		</Value>
-		<Value type="list" size="1" genre="config" instance="1" index="8" label="Operating Mode" min="0" max="2" value="1">
-			<Help>
+      <Item label="English" value="1"/>
+      <Item label="Spanish" value="2"/>
+      <Item label="French" value="3"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Shutdown Time" max="255" min="5" size="1" type="byte" units="seconds" value="30">
+      <Help>number of seconds unit will be inoperable after number of wrong code entries is exceeded (30 = default)</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Operating Mode" max="2" min="0" size="1" type="list" value="1">
+      <Help>
 			The number of invalid code entries lock will accept before sending TAMPER Alarm. 
 			When number of wrong code entries is exceeded, lock will disable keypad for the time specified by Shutdown Time parameter. (5 = default)
 			</Help>
-			<Item label="Normal" value="0" />
-			<Item label="Vacation" value="1" />
-			<Item label="Privacy" value="2" />			
-		</Value>
-	</CommandClass>
-	<CommandClass id="113">
-		<!-- These Door Locks don't send a DoorLockReport when the
+      <Item label="Normal" value="0"/>
+      <Item label="Vacation" value="1"/>
+      <Item label="Privacy" value="2"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="113">
+    <!-- These Door Locks don't send a DoorLockReport when the
 		Lock Status is Changed, but instead send a Alarm Message -
 		So we trigger a Refresh of the DoorLock Command Class when
 		we recieve a Alarm Message Instead -->
-		<TriggerRefreshValue Genre="user" Index="0" Instance="1">
-			<RefreshClassValue CommandClass="98" RequestFlags="0" Index="1" Instance="1" />
-		</TriggerRefreshValue>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>			
-		</Associations>
-	</CommandClass>
+    <TriggerRefreshValue Genre="user" Index="0" Instance="1">
+      <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
+    </TriggerRefreshValue>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/assa_abloy/nexTouch.xml b/Config/assa_abloy/nexTouch.xml
index e358005cad..6cc4d6e91c 100644
--- a/Config/assa_abloy/nexTouch.xml
+++ b/Config/assa_abloy/nexTouch.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Yale nexTouch Wireless Touchscreen with Z-Wave (NTB620-ZW2)
     http://products.z-wavealliance.org/products/1857
     http://products.z-wavealliance.org/products/1970
diff --git a/Config/august/asl-03.xml b/Config/august/asl-03.xml
index 38672804e3..1eec43c793 100644
--- a/Config/august/asl-03.xml
+++ b/Config/august/asl-03.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Association Groups -->
 	<CommandClass id="133">
 		<Associations num_groups="2">
diff --git a/Config/buffalo/hw-100v15a-zw.xml b/Config/buffalo/hw-100v15a-zw.xml
new file mode 100644
index 0000000000..40f71fcd96
--- /dev/null
+++ b/Config/buffalo/hw-100v15a-zw.xml
@@ -0,0 +1,14 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0145:0004:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/buffalo/hw-100v15a-zw.png</MetaDataItem>
+    <MetaDataItem id="0004" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/802/</MetaDataItem>
+    <MetaDataItem name="Name">Buffalo HW-100V15A-ZW</MetaDataItem>
+    <MetaDataItem name="Description">Smat Tap 100V/15A measure &amp; monitor power</MetaDataItem>
+    <MetaDataItem id="0004" name="FrequencyName" type="0001">Japan</MetaDataItem>
+    <MetaDataItem id="0004" name="Identifier" type="0001">HW-100V15A-ZW</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/802/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/comfort/ucm.xml b/Config/comfort/ucm.xml
new file mode 100644
index 0000000000..4c2497805c
--- /dev/null
+++ b/Config/comfort/ucm.xml
@@ -0,0 +1,15 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0030:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/comfort/ucm.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/833/</MetaDataItem>
+    <MetaDataItem name="Description">The UCM/Zwave is a gateway to Z-Wave which allows users to control Z-Wave modules from the telephone, keypads, touchscreens and any user interface used with Comfortintegrated Intruder Alarm and Home Automation system</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">UCM/Zwave</MetaDataItem>
+    <MetaDataItem name="Name">Cytech UCM/ZWave</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.cytech.biz/zwave_interface_eu.html?category_id=74</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/833/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/cooper/RF9501.xml b/Config/cooper/RF9501.xml
index 89571dfff1..3bfa0d0806 100644
--- a/Config/cooper/RF9501.xml
+++ b/Config/cooper/RF9501.xml
@@ -1,48 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Delayed OFF time" units="seconds" min="0" max="255" value="0">
-		  <Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001A:0000:534C</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/cooper/RF9501.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="534C">https://products.z-wavealliance.org/products/740/</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="534C">RF9501</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="534C">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">ASPIRE RF 15A Wireless Switch</MetaDataItem>
+    <MetaDataItem name="Description">The ASPIRE RF 15A switch (RF9501) replaces regular switches or dimmers (where a neutral is present) to provide local and remote ON/OFF control for Incandescent, Magnetic Low-Voltage, Electronic Low-Voltage and Fluorescent lighting loads. Each switch can be manually controlled and remotely controlled by commands sent from an ASPIRE RF controller or other Z-Wave compatible controllers or programs. An ASPIRE RF switch utilizes existing 120V/AC, 60Hz standard house wiring and fits in a standard wallbox. No new wiring is needed.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.cooperindustries.com/content/public/en/wiring_devices/products/lighting_controls/aspire_rf_wireless/switches/aspire_rf_15a_wireless_switch_rf9501.html</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/740/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Delayed OFF time" max="255" min="0" type="byte" units="seconds" value="0">
+      <Help>
 			The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Panic ON time" units="seconds" min="1" max="255" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="2" label="Panic ON time" max="255" min="1" type="byte" units="seconds" value="0">
+      <Help>
 		  The amount of time in seconds the switch will turn on for when panic mode is trigered.  The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Panic OFF time" units="seconds" min="1" max="255" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="3" label="Panic OFF time" max="255" min="1" type="byte" units="seconds" value="0">
+      <Help>
 		  The amount of time in seconds the switch will turn off for when panic mode is triggered.  The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Basic set value" units="" min="1" max="255" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="4" label="Basic set value" max="255" min="1" type="byte" units="" value="0">
+      <Help>
 		  Setting this to anything other than 0 will cause the value to be transmitted to devices in the association group when the switch is triggered. A setting other than 0 will likely result in undesired operation
 		  </Help>
-		</Value>
-		<Value type="list" index="5" genre="config" label="Power Up State" units="" min="1" max="3" size="1" value="3">
-		  <Help>
+    </Value>
+    <Value genre="config" index="5" label="Power Up State" max="3" min="1" size="1" type="list" units="" value="3">
+      <Help>
 		    Power up state of the device
 		  </Help>
-		  <Item label="OFF" value="1"/>
-		  <Item label="ON" value="2"/>
-		  <Item label="Last state" value="3"/>
-		</Value>
-		<Value type="list" index="6" genre="config" label="Panic mode enable" units="" min="1" max="2" size="1" value="1">
-		  <Help>
+      <Item label="OFF" value="1"/>
+      <Item label="ON" value="2"/>
+      <Item label="Last state" value="3"/>
+    </Value>
+    <Value genre="config" index="6" label="Panic mode enable" max="2" min="1" size="1" type="list" units="" value="1">
+      <Help>
 		    Enables this switch to participate in panic mode
 		  </Help>
-		  <Item label="OFF" value="1"/>
-		  <Item label="ON" value="2"/>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-        	<Group index="1" max_associations="5" label="Group #1" />
-			<Group index="255" max_associations="1" label="Group #255" />
-		</Associations>
-	</CommandClass>
+      <Item label="OFF" value="1"/>
+      <Item label="ON" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Group #1" max_associations="5"/>
+      <Group index="255" label="Group #255" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/cooper/RF9505-T.xml b/Config/cooper/RF9505-T.xml
index 01a895c120..d763379937 100644
--- a/Config/cooper/RF9505-T.xml
+++ b/Config/cooper/RF9505-T.xml
@@ -1,37 +1,49 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="2" genre="config" label="Panic ON time" units="seconds" min="1" max="255" value="0">
-		  <Help>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001A:0000:5244</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/cooper/RF9505-T.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="5244">https://products.z-wavealliance.org/products/741/</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="5244">RFTR9505-T</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="5244">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">ASPIRE RF TR receptacle version complies with 2011 NEC section 406.12 specification that states all receptacles installed in dwelling units must be tamper resistant. The ASPIRE RF 15A Split Receptacle replaces regular receptacles and provides local and remote wireless ON/OFF control of a single outlet. Receptacle can be manually controlled and remotely controlled by commands sent from an ASPIRE RF controller (RFHDCSG, RFTDCSG) or other Z-Wave compatible controllers or programs. An ASPIRE RF receptacle utilizes existing 120V/AC, 60Hz standard house wiring and fits in a standard wallbox. No new wiring is required.</MetaDataItem>
+    <MetaDataItem name="Name">ASPIRE RF Tamper Resistant Receptacle</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.cooperindustries.com/content/public/en/wiring_devices/products/lighting_controls/aspire_rf_wireless/aspire_rf_15a_tamper_resistant_split_control_duplex_receptacle_rftr9505_t.html</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/741/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="Panic ON time" max="255" min="1" type="byte" units="seconds" value="0">
+      <Help>
 		  The amount of time in seconds the switch will turn on for when panic mode is trigered.  The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Panic OFF time" units="seconds" min="1" max="255" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="3" label="Panic OFF time" max="255" min="1" type="byte" units="seconds" value="0">
+      <Help>
 		  The amount of time in seconds the switch will turn off for when panic mode is triggered.  The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="list" index="5" genre="config" label="Power Up State" units="" min="1" max="3" size="1" value="3">
-		  <Help>
+    </Value>
+    <Value genre="config" index="5" label="Power Up State" max="3" min="1" size="1" type="list" units="" value="3">
+      <Help>
 		    Power up state of the device
 		  </Help>
-		  <Item label="OFF" value="1"/>
-		  <Item label="ON" value="2"/>
-		  <Item label="Last state" value="3"/>
-		</Value>
-		<Value type="list" index="6" genre="config" label="Panic mode enable" units="" min="0" max="1" size="1" value="0">
-		  <Help>
+      <Item label="OFF" value="1"/>
+      <Item label="ON" value="2"/>
+      <Item label="Last state" value="3"/>
+    </Value>
+    <Value genre="config" index="6" label="Panic mode enable" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
 		    Enables this device to participate in panic mode
 		  </Help>
-		  <Item label="OFF" value="0"/>
-		  <Item label="ON" value="1"/>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="255" max_associations="1" label="Group #255" auto="true"/>
-		</Associations>
-	</CommandClass>
+      <Item label="OFF" value="0"/>
+      <Item label="ON" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group auto="true" index="255" label="Group #255" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/cooper/RF9517.xml b/Config/cooper/RF9517.xml
index a1e9cacc91..9a83ea433c 100644
--- a/Config/cooper/RF9517.xml
+++ b/Config/cooper/RF9517.xml
@@ -1,22 +1,34 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Delayed OFF time" units="seconds" min="0" max="255" value="0">
-		  <Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001A:0000:5352</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/cooper/RF9517.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="5352">https://products.z-wavealliance.org/products/742/</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="5352">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="5352">RF9517</MetaDataItem>
+    <MetaDataItem name="Name">ASPIRE RF Accessory Switch</MetaDataItem>
+    <MetaDataItem name="Description">ASPIRE RF Accessory Switch (RF9517) replaces regular switches or dimmers to provide local and remote ON/OFF control. The device also provides 3-way, multi-location or virtual 3-way remote ON/OFF control of a selected RF switch without the need for traditional 3-way wiring. Each switch can be manually controlled and remotely controlled by commands sent from an ASPIRE RF controller or other Z-Wave compatible controllers or programs. ASPIRE RF switches utilize existing 120V/AC, 60Hz standard house wiring and fit in standard wallboxes. No new wiring is required.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.cooperindustries.com/content/public/en/wiring_devices/products/lighting_controls/aspire_rf_wireless/switches/aspire_rf_accessory_switch_rf9517.html</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/742/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Delayed OFF time" max="255" min="0" type="byte" units="seconds" value="0">
+      <Help>
 			The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Basic set value" units="" min="1" max="255" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="4" label="Basic set value" max="255" min="1" type="byte" units="" value="0">
+      <Help>
 		  Setting this to anything other than 0 will cause the value to be transmitted to devices in the association group when the switch is triggered. A setting other than 0 will likely result in undesired operation
 		  </Help>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-        	<Group index="1" max_associations="5" label="Group #1" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Group #1" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/cooper/RF9540-N.xml b/Config/cooper/RF9540-N.xml
index 4a7b5dc704..daf0ab7d8f 100644
--- a/Config/cooper/RF9540-N.xml
+++ b/Config/cooper/RF9540-N.xml
@@ -1,70 +1,81 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Delayed OFF time" units="seconds" min="0" max="255" value="0">
-		  <Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001A:0101:4449</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/cooper/RF9540-N.png</MetaDataItem>
+    <MetaDataItem id="0101" name="ZWProductPage" type="4449">https://products.z-wavealliance.org/products/797/</MetaDataItem>
+    <MetaDataItem name="Name">Cooper RF9540-N</MetaDataItem>
+    <MetaDataItem id="0101" name="Identifier" type="4449">RF9540-N</MetaDataItem>
+    <MetaDataItem id="0101" name="FrequencyName" type="4449">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">Aspire RF All load smart dimmer master</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/797/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Delayed OFF time" max="255" min="0" type="byte" units="seconds" value="0">
+      <Help>
 			The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Panic ON time" units="seconds" min="1" max="255" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="2" label="Panic ON time" max="255" min="1" type="byte" units="seconds" value="0">
+      <Help>
 		  The amount of time in seconds the switch will turn on for when panic mode is trigered.  The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Panic OFF time" units="seconds" min="1" max="255" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="3" label="Panic OFF time" max="255" min="1" type="byte" units="seconds" value="0">
+      <Help>
 		  The amount of time in seconds the switch will turn off for when panic mode is triggered.  The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Basic set value" units="" min="1" max="255" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="4" label="Basic set value" max="255" min="1" type="byte" units="" value="0">
+      <Help>
 		  Setting this to anything other than 0 will cause the value to be transmitted to devices in the association group when the switch is triggered. A setting other than 0 will likely result in undesired operation
 		  </Help>
-		</Value>
-		<Value type="list" index="5" genre="config" label="Power Up State" units="" min="1" max="3" size="1" value="3">
-		  <Help>
+    </Value>
+    <Value genre="config" index="5" label="Power Up State" max="3" min="1" size="1" type="list" units="" value="3">
+      <Help>
 		    Power up state of the device
 		  </Help>
-		  <Item label="OFF" value="1"/>
-		  <Item label="ON" value="2"/>
-		  <Item label="Last state" value="3"/>
-		</Value>
-		<Value type="list" index="6" genre="config" label="Panic mode enable" units="" min="1" max="2" size="1" value="1">
-		  <Help>
+      <Item label="OFF" value="1"/>
+      <Item label="ON" value="2"/>
+      <Item label="Last state" value="3"/>
+    </Value>
+    <Value genre="config" index="6" label="Panic mode enable" max="2" min="1" size="1" type="list" units="" value="1">
+      <Help>
 		    Enables this switch to participate in panic mode
 		  </Help>
-		  <Item label="OFF" value="1"/>
-		  <Item label="ON" value="2"/>
-		</Value>
-		<Value type="byte" index="7" genre="config" label="Dimmer Ramp Time" units="seconds" min="0" max="255" value="0">
-		  <Help>
+      <Item label="OFF" value="1"/>
+      <Item label="ON" value="2"/>
+    </Value>
+    <Value genre="config" index="7" label="Dimmer Ramp Time" max="255" min="0" type="byte" units="seconds" value="0">
+      <Help>
 		  The amount of time in seconds the switch will take to reach the desired dim level.  The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="list" index="8" genre="config" label="Kickstart / Rapid Start" units="" min="0" max="1" size="1" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="8" label="Kickstart / Rapid Start" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
 		  	Ensures that LED / CFL bulbs turn on when the preset dim level is low.  Enabling this feature may cause the lights brightness to momentarily be bright when the switch is turned on before reducing in brightness to desired level
 		  </Help>
-		  <Item label="disable" value="0"/>
-		  <Item label="enable" value="1"/>
-		</Value>
-		<Value type="byte" index="11" genre="config" label="Minimum Dimmer Level" units="" min="4" max="99" value="4">
-		  <Help>
+      <Item label="disable" value="0"/>
+      <Item label="enable" value="1"/>
+    </Value>
+    <Value genre="config" index="11" label="Minimum Dimmer Level" max="99" min="4" type="byte" units="" value="4">
+      <Help>
 		  The minimum dim level the switch will allow.  The minimum level must always be at least 13 below the maximum level.
 		  </Help>
-		</Value>
-		<Value type="byte" index="12" genre="config" label="Maximum Dimmer Level" units="" min="4" max="99" value="99">
-		  <Help>
+    </Value>
+    <Value genre="config" index="12" label="Maximum Dimmer Level" max="99" min="4" type="byte" units="" value="99">
+      <Help>
 		  The maximum dim level the switch will allow.  The maximum level must always be at least 13 above the minimum level.
 		  </Help>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-        	<Group index="1" max_associations="5" label="Group #1" />
-			<Group index="255" max_associations="1" label="Group #255" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Group #1" max_associations="5"/>
+      <Group index="255" label="Group #255" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/cooper/RF9542-Z.xml b/Config/cooper/RF9542-Z.xml
index 0a18cdee7f..c0c263ff8f 100644
--- a/Config/cooper/RF9542-Z.xml
+++ b/Config/cooper/RF9542-Z.xml
@@ -1,42 +1,55 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Delayed OFF time" units="seconds" min="0" max="255" value="0">
-		  <Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001A:0000:4441</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/cooper/RF9542-Z.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="4441">https://products.z-wavealliance.org/products/971/</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="4441">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="4441">RF9542-Z</MetaDataItem>
+    <MetaDataItem name="Description">Aspire RF™ Accessory Dimmers replace regular switches or dimmers to provide local and remote ON/OFF/DIM/BRIGHT control. The device also provides multi-location control or virtual 3-way remote ON/OFF/DIM/BRIGHT control without the need for traditional 3-way wiring or a dedicated traveler wire. Aspire RF Accessory Dimmers provide other programmable functions (scenes, events, association, child lockout, etc.) when used with Aspire RF or other Z-Wave® compliant controller*. Each dimmer can be manually controlled and remotely controlled by commands sent from an Aspire RF controller (RFHDCSG, RFTDCSG, RFBER) or other Z-Wave compatible controllers or programs. Aspire RF Dimmers utilize existing 120V/AC 60Hz standard house wiring and fit in standard wallboxes. No new wiring is needed.</MetaDataItem>
+    <MetaDataItem name="Name">Dimmer Accessory Switch</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/745/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/971/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductPage">http://www.cooperindustries.com/content/public/en/wiring_devices/products/lighting_controls/aspire_rf_wireless/dimmers/aspire_rf_accessory_w_leds_rf9542_z_.html</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Delayed OFF time" max="255" min="0" type="byte" units="seconds" value="0">
+      <Help>
 			The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Basic set value" units="" min="1" max="255" value="0">
-		  <Help>
+    </Value>
+    <Value genre="config" index="4" label="Basic set value" max="255" min="1" type="byte" units="" value="0">
+      <Help>
 		  Setting this to anything other than 0 will cause the value to be transmitted to devices in the association group when the switch is triggered. A setting other than 0 will likely result in undesired operation
 		  </Help>
-		</Value>
-		<Value type="list" index="5" genre="config" label="Power Up State" units="" min="1" max="3" size="1" value="3">
-		  <Help>
+    </Value>
+    <Value genre="config" index="5" label="Power Up State" max="3" min="1" size="1" type="list" units="" value="3">
+      <Help>
 		    Power up state of the device
 		  </Help>
-		  <Item label="OFF" value="1"/>
-		  <Item label="ON" value="2"/>
-		  <Item label="Last state" value="3"/>
-		</Value>
-		<Value type="list" index="6" genre="config" label="Panic mode enable" units="" min="1" max="2" size="1" value="1">
-		  <Help>
+      <Item label="OFF" value="1"/>
+      <Item label="ON" value="2"/>
+      <Item label="Last state" value="3"/>
+    </Value>
+    <Value genre="config" index="6" label="Panic mode enable" max="2" min="1" size="1" type="list" units="" value="1">
+      <Help>
 		    Enables this switch to participate in panic mode
 		  </Help>
-		  <Item label="OFF" value="1"/>
-		  <Item label="ON" value="2"/>
-		</Value>
-		<Value type="byte" index="7" genre="config" label="Dimmer Ramp Time" units="seconds" min="0" max="255" value="0">
-		  <Help>
+      <Item label="OFF" value="1"/>
+      <Item label="ON" value="2"/>
+    </Value>
+    <Value genre="config" index="7" label="Dimmer Ramp Time" max="255" min="0" type="byte" units="seconds" value="0">
+      <Help>
 		  The amount of time in seconds the switch will take to reach the desired dim level.  The configuration value is a signed single byte number. This value may represent a value with no units or may represent a value such as time. 0 to 127 (decimal) represents 0 to 127 seconds of time. -128 to -1 (negative decimal numbers) represents 128 to 255 seconds as calculated by this formula.  Config value = desired time in seconds (or desired value) -256 For an example of 172 seconds: config value = 172 - 256 = -84 (decimal) or 0xAC (hex) 
 		  </Help>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-        	<Group index="1" max_associations="5" label="Group #1" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Group #1" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/cooper/RFWC5.xml b/Config/cooper/RFWC5.xml
index 7c66164e90..13eb45eb40 100644
--- a/Config/cooper/RFWC5.xml
+++ b/Config/cooper/RFWC5.xml
@@ -1,47 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Cooper Wallmount 5-Scene Controller RFWC5/RFWDC
 http://www.cooperindustries.com/content/dam/public/wiringdevices/products/documents/instruction_sheets/rfwcddsc_rev._a_.pdf
 http://www.cooperindustries.com/content/dam/public/wiringdevices/products/documents/technical_specifications/advancedtechinfo_V2.pdf
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Group 1 Level" units="" min="1" max="255" value="10">
-			<Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 1</Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Group 2 Level" units="" min="1" max="255" value="20">
-			<Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 2</Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Group 3 Level" units="" min="1" max="255" value="30">
-			<Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 3</Help>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Group 4 Level" units="" min="1" max="255" value="40">
-			<Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 1</Help>
-		</Value>
-		<Value type="byte" index="5" genre="config" label="Group 5 Level" units="" min="1" max="255" value="50">
-			<Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 4</Help>
-		</Value>
-	</CommandClass>
-
-    <!-- Used to map Scenes to Groups, but not advertised by the device -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Group 1 Level" max="255" min="1" type="byte" units="" value="10">
+      <Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 1</Help>
+    </Value>
+    <Value genre="config" index="2" label="Group 2 Level" max="255" min="1" type="byte" units="" value="20">
+      <Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 2</Help>
+    </Value>
+    <Value genre="config" index="3" label="Group 3 Level" max="255" min="1" type="byte" units="" value="30">
+      <Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 3</Help>
+    </Value>
+    <Value genre="config" index="4" label="Group 4 Level" max="255" min="1" type="byte" units="" value="40">
+      <Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 1</Help>
+    </Value>
+    <Value genre="config" index="5" label="Group 5 Level" max="255" min="1" type="byte" units="" value="50">
+      <Help>Value 0x00-0x63 or 0xFF is the level for all nodes listed in the Group 4</Help>
+    </Value>
+  </CommandClass>
+  <!-- Used to map Scenes to Groups, but not advertised by the device -->
 	<!-- CommandClass id="46" name="COMMAND_CLASS_SCENE_CONTROLLER_CONF" version="1" request_flags="4" innif="true"/-->
 
 	<!-- Used to set a device into Panic Mode (On-Off flashing at time intervals determined in the device configuration),
 	     To turn ON send a ALARM_REPORT command to the device with an Alarm Type of 1 and a value of 255.
 	     To turn OFF send a ALARM_REPORT command with an Alarm Type of 1 and a value of 0.-->
-	<CommandClass id="113" name="COMMAND_CLASS_ALARM" version="1" request_flags="4" />
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="6">
-			<Group index="1" max_associations="232" label="Group 1" auto="false"/>
-			<Group index="2" max_associations="232" label="Group 2"/>
-			<Group index="3" max_associations="232" label="Group 3"/>
-			<Group index="4" max_associations="232" label="Group 4"/>
-			<Group index="5" max_associations="232" label="Group 5"/>
-			<Group index="255" max_associations="1" label="Group 255"/>
-		</Associations>
-	</CommandClass>
+  <CommandClass id="113">
+    <Compatibility/>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="6">
+      <Group auto="false" index="1" label="Group 1" max_associations="232"/>
+      <Group index="2" label="Group 2" max_associations="232"/>
+      <Group index="3" label="Group 3" max_associations="232"/>
+      <Group index="4" label="Group 4" max_associations="232"/>
+      <Group index="5" label="Group 5" max_associations="232"/>
+      <Group index="255" label="Group 255" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/cooper/rf9534.xml b/Config/cooper/rf9534.xml
new file mode 100644
index 0000000000..89a83564d6
--- /dev/null
+++ b/Config/cooper/rf9534.xml
@@ -0,0 +1,18 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001A:0002:4449</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/cooper/rf9534.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="4449">https://products.z-wavealliance.org/products/761/</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="4449">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="4449">RF9536</MetaDataItem>
+    <MetaDataItem name="Description">RF9536 - 1000W Incandescent Smart Dimmer ASPIRE RF Dimmers replace regular switches or dimmers to provide local and remote ON/OFF/DIM/BRIGHT control and are compatible with incandescent lighting loads. ASPIRE RF Dimmers provide other programmable functions (scenes, events, association, child lockout, etc.) when used with ASPIRE RF or other Z-Wave compliant controllers*.
+
+(*Note: some specific ASPIRE RF features may not be programmable)</MetaDataItem>
+    <MetaDataItem name="Name">ASPIRE RF 1000W Incandescent Smart Dimmer</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/760/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/761/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/danfoss/living.xml b/Config/danfoss/living.xml
index daf3fc3779..421d856d5f 100644
--- a/Config/danfoss/living.xml
+++ b/Config/danfoss/living.xml
@@ -1,5 +1,34 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0002:0001:8005</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/danfoss/living.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="8005">https://products.z-wavealliance.org/products/93/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="8005">014G0001</MetaDataItem>
+    <MetaDataItem name="Name">Danfoss Living Connect</MetaDataItem>
+    <MetaDataItem name="Description">living connect is an electronic radiator thermostat for homes. Wireless temperature control – all around the house.
+
+
+For total control of your indoor environment, living connect radiator thermostats work wirelessly with Danfoss Link, bringing you the highest performance in home heating control. living connect thermostats have all the smart features of the living eco model, plus they can be wirelessly controlled from a single Danfoss Link control screen centrally placed in the home. This means you can set all living connect thermostats at once, and heating can still be controlled room-by-room. A user-friendly interface with a colourful touchscreen make operating a Danfoss Link simple. It is one of the most immediate, most convenient and most cost-effective ways to improve your home's energy efficiency.
+Product Name:	living connect
+Brand Name:	Danfoss
+Product Line:	Radiator Thermostat	
+Battery Type:	AAA
+Battery Count:	2
+Description:	Radiator Thermostat
+Inclusion Note:	Short push middle button
+Wakeup Note:	Short push middle button</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="8005">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.danfoss.com/businessareas/heating/products/literature/he/radiator-thermostats/radiator-sensors/living-by-danfoss/living-connect/b7bea5b9-eb96-45d5-b229-02739a4779c2.html</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://heating.danfoss.com/PCMPDF/Z_wave_living_connect_VDHMB202.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/93/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- This thermostat's setpoint descriptions are 1 based, not 0 -->
-  <CommandClass id="67" base="1" override_precision="2" />
+  <CommandClass id="67">
+    <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
+      <Base>1</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/danfoss/rsroom.xml b/Config/danfoss/rsroom.xml
index ab2025ce2f..a51e3968db 100644
--- a/Config/danfoss/rsroom.xml
+++ b/Config/danfoss/rsroom.xml
@@ -1,77 +1,94 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="9" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0002:8010:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/danfoss/rsroom.png</MetaDataItem>
+    <MetaDataItem id="8010" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1188/</MetaDataItem>
+    <MetaDataItem id="8010" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="8010" name="Identifier" type="0003">014G0159</MetaDataItem>
+    <MetaDataItem name="Description">Devolo Z-Wave RS</MetaDataItem>
+    <MetaDataItem name="Name">Devolo RS 014G0159 Thermostat</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1062/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1063/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1187/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="9">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1188/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass base="0" override_precision="2" request_flags="4" version="1" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" id="67">
+  <CommandClass id="67">
     <Instance index="1"/>
-    <Value index="1" value="0.0" max="0" min="0" verify_changes="false" write_only="false" read_only="false" units="C" label="Heating" instance="1" genre="user" type="decimal"/>
-    <Value index="2" value="0.0" max="0" min="0" verify_changes="false" write_only="false" read_only="false" units="C" label="Cooling" instance="1" genre="user" type="decimal"/>
-    <Value index="3" value="0.0" max="0" min="0" verify_changes="false" write_only="false" read_only="false" units="C" label="Unused" instance="1" genre="user" type="decimal"/>
+    <Value genre="user" index="1" instance="1" label="Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="0.0" verify_changes="false" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Cooling" max="0" min="0" read_only="false" type="decimal" units="C" value="0.0" verify_changes="false" write_only="false"/>
+    <Value genre="user" index="3" instance="1" label="Unused" max="0" min="0" read_only="false" type="decimal" units="C" value="0.0" verify_changes="false" write_only="false"/>
+    <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
+      <Base>0</Base>
+    </Compatibility>
   </CommandClass>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="short" index="1" genre="config" label="Temperature Threshold" min="1" max="100" value="5">
+    <Value genre="config" index="1" label="Temperature Threshold" max="100" min="1" type="short" value="5">
       <Help>
        Temperature Report threshold (1=0.1C)
       </Help>
     </Value>
-    <Value type="short" index="2" genre="config" label="Setpoint resolution" min="1" max="100" value="5">
+    <Value genre="config" index="2" label="Setpoint resolution" max="100" min="1" type="short" value="5">
       <Help>
         Set-point display resolution (1=0.1C)
       </Help>
     </Value>
-    <Value type="short" index="3" genre="config" label="Min/Override Setpoint" min="0" max="40" value="12">
+    <Value genre="config" index="3" label="Min/Override Setpoint" max="40" min="0" type="short" value="12">
       <Help>
        Min Set-point and override limit
       </Help>
     </Value>
-	<Value type="short" index="4" genre="config" label="Max/Override Setpoint" min="0" max="40" value="28">
+    <Value genre="config" index="4" label="Max/Override Setpoint" max="40" min="0" type="short" value="28">
       <Help>
        Max Set-point and override limit
       </Help>
     </Value>
-	<Value type="list" index="6" genre="config" label="Setpoint control function" size="1" value="1">
+    <Value genre="config" index="6" label="Setpoint control function" size="1" type="list" value="1">
       <Help>
        Setpoint control function
       </Help>
-	  <Item label="Disabled" value="0"/>
+      <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-	<Value type="list" index="7" genre="config" label="Temporarily override scheduler" size="1" value="1">
+    <Value genre="config" index="7" label="Temporarily override scheduler" size="1" type="list" value="1">
       <Help>
        Temporarily override scheduler
       </Help>
-	  <Item label="Disabled" value="0"/>
+      <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-	<Value type="list" index="8" genre="config" label="Setpoint type" size="1" value="1">
+    <Value genre="config" index="8" label="Setpoint type" size="1" type="list" value="1">
       <Help>
        Setpoint type in thermostat setpoint_reports
       </Help>
-	  <Item label="Heating" value="1"/>
+      <Item label="Heating" value="1"/>
       <Item label="Cooling" value="2"/>
       <Item label="Auto Changeover" value="10"/>
     </Value>
-	<Value type="byte" index="9" genre="config" label="Led on time" min="1" max="5" value="1">
+    <Value genre="config" index="9" label="Led on time" max="5" min="1" type="byte" value="1">
       <Help>
        Led on time (1=100ms)
       </Help>
     </Value>
-	<Value type="short" index="5" genre="config" label="Led Flash Period" min="0" max="65535" value="1">
+    <Value genre="config" index="5" label="Led Flash Period" max="65535" min="0" type="short" value="1">
       <Help>
        Led Flash Period (0 to 65535 seconds)
       </Help>
     </Value>
-	<Value type="byte" index="10" genre="config" label="Number of flash" min="0" max="255" value="5">
+    <Value genre="config" index="10" label="Number of flash" max="255" min="0" type="byte" value="5">
       <Help>
        Number of led flashes (duration)
       </Help>
     </Value>
-	<Value type="list" index="11" genre="config" label="Led Color" size="1" value="1">
+    <Value genre="config" index="11" label="Led Color" size="1" type="list" value="1">
       <Help>
        Led Color
       </Help>
-	  <Item label="Green" value="1"/>
+      <Item label="Green" value="1"/>
       <Item label="Red" value="2"/>
     </Value>
   </CommandClass>
diff --git a/Config/danfoss/z.xml b/Config/danfoss/z.xml
index aea3cd7066..f534690185 100644
--- a/Config/danfoss/z.xml
+++ b/Config/danfoss/z.xml
@@ -1,8 +1,34 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0002:0003:0005</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/danfoss/z.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0005">https://products.z-wavealliance.org/products/932/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://heating.consumers.danfoss.com/xxTypex/585379.html</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0005">014G0013</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0005">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Devolo Connect</MetaDataItem>
+    <MetaDataItem name="Description">Electronic radiator thermostat</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/932/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/967/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1035/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1258/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0004" name="ZWProductPage" type="0005">https://products.z-wavealliance.org/products/1035/</MetaDataItem>
+    <MetaDataItem id="0004" name="Identifier" type="0005">014G0013</MetaDataItem>
+    <MetaDataItem id="0004" name="FrequencyName" type="0005">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0175" name="ZWProductPage" type="0005">https://products.z-wavealliance.org/products/1258/</MetaDataItem>
+    <MetaDataItem id="0175" name="FrequencyName" type="0005">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0175" name="Identifier" type="0005">014G0801</MetaDataItem>
+  </MetaData>
   <!-- http://www.popp.eu/wp-content/uploads/2016/07/Manual_Thermostat_POPP_en.pdf -->
   <!-- COMMAND_CLASS_BASIC does not respond to requests -->
-  <CommandClass id="32" action="remove" />
+  <CommandClass action="remove" id="32"/>
   <!-- This thermostat's setpoint descriptions are 0 based -->
-  <CommandClass id="67" base="0" override_precision="2" />
+  <CommandClass id="67">
+    <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/device_classes.xml b/Config/device_classes.xml
index fca1712187..e5514a2058 100644
--- a/Config/device_classes.xml
+++ b/Config/device_classes.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<DeviceClasses xmlns='http://code.google.com/p/open-zwave/'>
+<DeviceClasses xmlns='https://github.com/OpenZWave/open-zwave'>
   <Basic key="0x01" label="Controller" />
   <Basic key="0x02" label="Static Controller" />
   <Basic key="0x03" label="Slave" />
diff --git a/Config/device_classes.xsd b/Config/device_classes.xsd
index a4f12b93ba..50ba627490 100644
--- a/Config/device_classes.xsd
+++ b/Config/device_classes.xsd
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
 <xs:schema
   xmlns:xs='http://www.w3.org/2001/XMLSchema'
-  targetNamespace='http://code.google.com/p/open-zwave/'
-  xmlns:DeviceClasses='http://code.google.com/p/open-zwave/'
+  targetNamespace='https://github.com/OpenZWave/open-zwave'
+  xmlns:DeviceClasses='https://github.com/OpenZWave/open-zwave'
   elementFormDefault='qualified'>
 
  <xs:element name='DeviceClasses'>
diff --git a/Config/device_configuration.xsd b/Config/device_configuration.xsd
index 2503a18e32..09bfdcb4be 100644
--- a/Config/device_configuration.xsd
+++ b/Config/device_configuration.xsd
@@ -1,16 +1,18 @@
 <?xml version='1.0'?>
 <xs:schema
   xmlns:xs='http://www.w3.org/2001/XMLSchema'
-  targetNamespace='http://code.google.com/p/open-zwave/'
-  xmlns:Product='http://code.google.com/p/open-zwave/'
+  targetNamespace='https://github.com/OpenZWave/open-zwave'
+  xmlns:Product='https://github.com/OpenZWave/open-zwave'
   elementFormDefault='qualified'>
 
  <xs:element name='Product'>
   <xs:complexType>
-   <xs:sequence>
+   <xs:choice maxOccurs="unbounded">
     <xs:element ref='Product:Protocol' minOccurs='0' maxOccurs='1'/>
+    <xs:element ref='Product:MetaData' minOccurs='0' maxOccurs='1'/>
     <xs:element ref='Product:CommandClass' minOccurs='0' maxOccurs='unbounded'/>
-   </xs:sequence>
+   </xs:choice>
+   <xs:attribute name='Revision' type='xs:integer' use='required'/>
   </xs:complexType>
  </xs:element>
 
@@ -54,97 +56,52 @@
 
  <xs:element name='CommandClass'>
   <xs:complexType>
-   <xs:sequence>
+   <xs:choice maxOccurs="unbounded">
     <xs:element ref='Product:Instance' minOccurs='0' maxOccurs='unbounded'/>
     <xs:element ref='Product:Associations' minOccurs='0' maxOccurs='unbounded'/>
     <xs:element ref='Product:Value' minOccurs='0' maxOccurs='unbounded'/>
     <xs:element ref='Product:TriggerRefreshValue' minOccurs='0' maxOccurs='unbounded'/>
     <xs:element ref='Product:SupportedModes' minOccurs='0' maxOccurs='unbounded'/>
     <xs:element ref='Product:SensorMap' minOccurs='0' maxOccurs='unbounded'/>
-   </xs:sequence>
+    <xs:element ref='Product:Compatibility' minOccurs='0' maxOccurs='1'/>
+   </xs:choice>
    <xs:attribute name='id' type='xs:string' use='required'/>
    <xs:attribute name='action' type='xs:string' use='optional'/>
-   <xs:attribute name='base' type='xs:string' use='optional'/>
-   <xs:attribute name='override_precision' type='xs:string' use='optional'/>
-   <xs:attribute name='scenecount' type='xs:string' use='optional'/>
-   <xs:attribute name='create_vars' use='optional'>
-    <xs:simpleType>
-     <xs:restriction base='xs:string'>
-      <xs:enumeration value='true'/>
-      <xs:enumeration value='false'/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:attribute>
-   <xs:attribute name='name' type='xs:string' use='optional'/>
-   <xs:attribute name='setasreport' use='optional'>
-    <xs:simpleType>
-     <xs:restriction base='xs:string'>
-      <xs:enumeration value='true'/>
-      <xs:enumeration value='false'/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:attribute>
-   <xs:attribute name='ignoremapping' use='optional'>
-    <xs:simpleType>
-     <xs:restriction base='xs:string'>
-      <xs:enumeration value='true'/>
-      <xs:enumeration value='false'/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:attribute>
-   <xs:attribute name='getsupported' use='optional'>
-    <xs:simpleType>
-     <xs:restriction base='xs:string'>
-      <xs:enumeration value='true'/>
-      <xs:enumeration value='false'/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:attribute>
-   <xs:attribute name='classgetsupported' use='optional'>
-    <xs:simpleType>
-     <xs:restriction base='xs:string'>
-      <xs:enumeration value='true'/>
-      <xs:enumeration value='false'/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:attribute>
-   <xs:attribute name='coloridxbug' use='optional'>
-    <xs:simpleType>
-     <xs:restriction base='xs:string'>
-      <xs:enumeration value='true'/>
-      <xs:enumeration value='false'/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:attribute>
-   <xs:attribute name='forceUniqueEndpoints' use='optional'>
-    <xs:simpleType>
-     <xs:restriction base='xs:string'>
-      <xs:enumeration value='true'/>
-      <xs:enumeration value='false'/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:attribute>
-   <xs:attribute name='ForceInstances' use='optional'>
-    <xs:simpleType>
-     <xs:restriction base='xs:string'>
-      <xs:enumeration value='true'/>
-      <xs:enumeration value='false'/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:attribute>
-   <xs:attribute name='version' type='xs:string' use='optional'/>
-   <xs:attribute name='request_flags' type='xs:string' use='optional'/>
-   <xs:attribute name='endpoints' type='xs:string' use='optional'/>
-   <xs:attribute name='mapping' type='xs:string' use='optional'/>
-   <xs:attribute name='ignoreUnsolicitedMultiChnCapReport' type='xs:string' use='optional'/>
-   <xs:attribute name='codes' type='xs:string' use='optional'/>
-   <xs:attribute name='colorchannels' type='xs:string' use='optional'/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name='Compatibility'>
+  <xs:complexType>
+	  <xs:choice maxOccurs="unbounded">
+		   <xs:element name="GetSupported" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="CreateVars" type="xs:boolean" minOccurs='0'/>
+ 		   <xs:element name="RefreshOnWakeup" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="IgnoreMapping" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="SetAsReport" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="ColorIndexBug" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="ForceInstances" type="xs:boolean" minOccurs='0'/>
+ 		   <xs:element name="IgnoreMCCapReports" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="MapRootToEndpoint" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="ForceUniqueEndpoints" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="AltTypeInterpretation" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="ExposeRawUserCodes" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="ClassGetVersionSupported" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="ForceUniqueEndpoints" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="ForceUniqueEndpoints" type="xs:boolean" minOccurs='0'/>
+		   <xs:element name="Base" type="xs:integer" minOccurs='0'/>
+		   <xs:element name="OverridePrecision" type="xs:integer" minOccurs='0'/>
+		   <xs:element name="ForceVersion" type="xs:integer" minOccurs='0'/>
+		   <xs:element name="Mapping" type="xs:integer" minOccurs='0'/>
+		   <xs:element name="EndpointHint" type="xs:integer" minOccurs='0'/>
+		   <xs:element name="DelayNoMoreInfo" type="xs:integer" minOccurs='0'/>
+	  </xs:choice>
   </xs:complexType>
  </xs:element>
 
  <xs:element name='Instance'>
   <xs:complexType>
    <xs:attribute name='index' type='xs:string' use='required'/>
+   <xs:attribute name='label' type='xs:string' use='optional'/>
   </xs:complexType>
  </xs:element>
 
@@ -234,10 +191,12 @@
     
  <xs:element name='Value'>
   <xs:complexType>
-   <xs:sequence>
-    <xs:element ref='Product:Help' minOccurs='0' maxOccurs='1'/>
+   <xs:choice maxOccurs="unbounded" >
+    <xs:element ref='Product:Help' minOccurs='0' maxOccurs='unbounded'/>
+    <xs:element ref='Product:Label' minOccurs='0' maxOccurs='unbounded'/>
     <xs:element ref='Product:Item' minOccurs='0' maxOccurs='unbounded'/>
-   </xs:sequence>
+    <xs:element ref="Product:BitSet" minOccurs='0' maxOccurs='unbounded'/>
+   </xs:choice>
    <xs:attribute name='type' use='required'>
      <xs:simpleType>
        <xs:restriction base='xs:string'>
@@ -251,6 +210,7 @@
 	 <xs:enumeration value='string'/>
 	 <xs:enumeration value='button'/>
 	 <xs:enumeration value='raw'/>
+	 <xs:enumeration value='bitset'/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
@@ -271,7 +231,9 @@
    <xs:attribute name='units' type='xs:string' use='optional'/>
    <xs:attribute name='min' type='xs:string' use='optional'/>
    <xs:attribute name='max' type='xs:string' use='optional'/>
+   <xs:attribute name='vindex' type='xs:string' use='optional'/>
    <xs:attribute name='value' type='xs:string' use='optional'/>
+   <xs:attribute name='bitmask' type='xs:string' use='optional'/>
    <xs:attribute name='length' type='xs:string' use='optional'/>
    <xs:attribute name='read_only' use='optional'>
     <xs:simpleType>
@@ -304,21 +266,40 @@
 
  <xs:element name='Help'>
   <xs:complexType mixed='true'>
+    <xs:attribute name="lang" type="xs:string" use='optional'/>
   </xs:complexType>
  </xs:element>
 
+ <xs:element name='Label'>
+  <xs:complexType mixed='true'>
+    <xs:attribute name="lang" type="xs:string" use='optional'/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name='BitSet'>
+  <xs:complexType mixed='true'>
+   <xs:choice maxOccurs="unbounded">
+      <xs:element ref='Product:Label' minOccurs='0' maxOccurs='unbounded'/>
+      <xs:element ref='Product:Help' minOccurs='0' maxOccurs='unbounded'/>
+   </xs:choice>
+   <xs:attribute name='id' type='xs:string' use='required'/>
+  </xs:complexType>
+ </xs:element>
+ 
+
  <xs:element name='Item'>
   <xs:complexType>
    <xs:attribute name='label' type='xs:string' use='required'/>
    <xs:attribute name='value' type='xs:string' use='required'/>
+   <xs:attribute name='lang' type='xs:string' use='optional'/>
   </xs:complexType>
  </xs:element>
 
  <xs:element name='SupportedModes'>
   <xs:complexType>
-   <xs:sequence>
+   <xs:choice maxOccurs="unbounded">
     <xs:element ref='Product:Mode' maxOccurs='unbounded'/>
-   </xs:sequence>
+   </xs:choice>
   </xs:complexType>
  </xs:element>
 
@@ -342,4 +323,58 @@
    <xs:attribute name='id' type='xs:string' use='required'/>
   </xs:complexType>
  </xs:element>
+
+ <xs:element name='MetaData'>
+  <xs:complexType>
+   <xs:choice maxOccurs="unbounded">
+    <xs:element ref='Product:MetaDataItem' maxOccurs='unbounded'/>
+    <xs:element ref='Product:ChangeLog' minOccurs='0' maxOccurs='1' />
+   </xs:choice>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name='MetaDataItem'>
+  <xs:complexType mixed='true'> 
+   <xs:attribute name='name' use='required'>
+	<xs:simpleType>
+		<xs:restriction base='xs:string'>
+			<xs:enumeration value='FrequencyName'/>
+			<xs:enumeration value='Name'/>
+			<xs:enumeration value="Description"/>
+			<xs:enumeration value="Identifier"/>
+			<xs:enumeration value="ZWProductPage"/>
+			<xs:enumeration value="ProductPic"/>
+			<xs:enumeration value="OzwInfoPage"/>
+			<xs:enumeration value="ProductSupport"/>
+			<xs:enumeration value="ProductPage"/>
+			<xs:enumeration value="ResetDescription"/>
+			<xs:enumeration value="ProductManual"/>
+			<xs:enumeration value="InclusionDescription"/>
+			<xs:enumeration value="ExclusionDescription"/>
+			<xs:enumeration value="WakeupDescription"/>
+		</xs:restriction>
+	</xs:simpleType>
+   </xs:attribute>
+   <xs:attribute name='type' type='xs:string' use='optional'/>
+   <xs:attribute name='id' type='xs:string' use='optional'/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name='ChangeLog'>
+  <xs:complexType>
+   <xs:choice maxOccurs="unbounded">
+    <xs:element ref='Product:Entry' maxOccurs='unbounded'/>
+   </xs:choice>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name='Entry'>
+  <xs:complexType mixed='true'> 
+   <xs:attribute name='author' type='xs:string' use='required'/>
+   <xs:attribute name='date' type='xs:string' use='required'/>
+   <xs:attribute name='revision' type='xs:integer' use='required'/>
+  </xs:complexType>
+ </xs:element>
+
+
 </xs:schema>
diff --git a/Config/devolo/connectz.xml b/Config/devolo/connectz.xml
index 10cc19302c..7c9cb5ec15 100644
--- a/Config/devolo/connectz.xml
+++ b/Config/devolo/connectz.xml
@@ -1,11 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     Danfoss Devolo Connect Z v1.05 014G0801
     http://products.z-wavealliance.org/products/1506
     -->
     <!-- COMMAND_CLASS_BASIC does not respond to requests -->
-    <CommandClass id="32" action="remove"/>
-    <!-- This thermostat's setpoint descriptions are 0 based -->
-    <CommandClass id="67" base="0" override_precision="2"/>
+  <CommandClass action="remove" id="32"/>
+  <!-- This thermostat's setpoint descriptions are 0 based -->
+  <CommandClass id="67">
+    <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/devolo/mt02648.xml b/Config/devolo/mt02648.xml
index 8de3b59b77..5c80e838a2 100644
--- a/Config/devolo/mt02648.xml
+++ b/Config/devolo/mt02648.xml
@@ -1,19 +1,48 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <!-- Devolo Door/Window Contact MT 02648
 http://products.z-wavealliance.org/products/1130
- -->
-<Product xmlns="http://code.google.com/p/open-zwave/"> 
+ --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0175:000E:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/devolo/mt02648.png</MetaDataItem>
+    <MetaDataItem id="000E" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1130/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To add into a Z-Wave network: 
+1. Have Z-Wave  Controller entered inclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave Controller about 20 seconds.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To remove the device from a Z-Wave network: 
+1. Have Z-Wave  Controller entered exclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the exclusion mode.
+Node ID has been excluded.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1130/Devolo home Control Door-Window.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+Press any key once, the device will awake 10 seconds.</MetaDataItem>
+    <MetaDataItem name="Name">Door/Window Contact</MetaDataItem>
+    <MetaDataItem id="000E" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="000E" name="Identifier" type="0002">MT02648</MetaDataItem>
+    <MetaDataItem name="ResetDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To reset the device: 
+Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing tamper key four times within 1.5 seconds and do not release the tamper key in the 4th  pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the tamper key. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are excluded and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem name="Description">The Door/Window Contact MT02648 has door/window, temperature and illumination, 3 sensors function in one,based on Z-Wave technology.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1130/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="byte" index="2" genre="config" label="Basic Set Level" min="0" max="255" value="255">
+    <Value genre="config" index="2" label="Basic Set Level" max="255" min="0" type="byte" value="255">
       <Help>
           Setting the BASIC command value to turn on the light.
           0 Send Basic Set Off.
           255 Send Basic Set On.
           1 to 99 Send Basic Set Level between 1 and 99.
 	  </Help>
-    </Value>	
-    <Value type="byte" index="4" genre="config" label="Light threshold" min="0" max="100" value="99">
+    </Value>
+    <Value genre="config" index="4" label="Light threshold" max="100" min="0" type="byte" value="99">
       <Help>
           Setting the illumination threshold to turn on the light. When the event triggered and the environment illumination lower than 
           the threshold, the device will turn on the light.
@@ -23,9 +52,9 @@ http://products.z-wavealliance.org/products/1130
           100 means turn off illumination detected function. And always turn on the light.
           * Notice * in none test mode, only the value in 1 to 99 will enable the illumination detected function and update the illumination value.
        </Help>
-    </Value>	
-    <Value type="byte" index="5" genre="config" label="Operation Mode" min="0" max="255" value="0">
-       <Help>
+    </Value>
+    <Value genre="config" index="5" label="Operation Mode" max="255" min="0" type="byte" value="0">
+      <Help>
            2 Bit Mask - When 1, Test Mode is Enabled, When 0, Test Mode is Disabled.
            4 Bit Mask - When 1, Door/Window function is Disabled, When 0, Door/Window function is Enabled.
            8 Bit Mask - When 1, Temperature Scale is Celsius, When 0, Temperature Scale is Fahrenheit.
@@ -35,8 +64,8 @@ http://products.z-wavealliance.org/products/1130
            128 Bit Mask - When 1, Back key release into test mode is disabled, when 0, back key into test mode is enabled.
        </Help>
     </Value>
-    <Value type="byte" index="6" genre="config" label="Multi-Sensor Function Switch" min="0" max="255" value="4">
-       <Help>
+    <Value genre="config" index="6" label="Multi-Sensor Function Switch" max="255" min="0" type="byte" value="4">
+      <Help>
            0 to 1 Bit Mask, When 1, Door opening will not send a signal to the nodes in association group 2, When 0, door opening will cause the lights in association group 2 to be sent a control signal.
            2 to 15 Reserved.
            16 Bit Mask, When 1, Disable the 5 second delay before turning off the light when the door is closed, When 0, enable a 5 second delay before turning off the light when the door is closed.
@@ -44,8 +73,8 @@ http://products.z-wavealliance.org/products/1130
            64 to 255 Reserved.
 	  </Help>
     </Value>
-    <Value type="byte" index="7" genre="config" label="Customer Function" min="0" max="255" value="4">
-       <Help>
+    <Value genre="config" index="7" label="Customer Function" max="255" min="0" type="byte" value="4">
+      <Help>
            0 to 7 Reserved.
            8 Bit Mask, When 1, BASIC SET OFF is not sent when the door is closed, When 0, BASIC SET OFF is sent when the door is closed.
            16 Bit Mask, When 1, Door Opening is reported using Sensor Binary, When 0, Door Opening is reported using Notification Report.
@@ -54,53 +83,53 @@ http://products.z-wavealliance.org/products/1130
            255 Reserved.
        </Help>
     </Value>
-    <Value type="byte" index="9" genre="config" label="Turn Off Light Time" units="8 sec" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="9" label="Turn Off Light Time" max="127" min="0" type="byte" units="8 sec" value="4">
+      <Help>
           After turn on the lighting, setting the delay time to turn off the lighting when the PIR motion is not detected. 
           8 seconds per tick, default tick is 4 (32 seconds). 0 means never send turn off light command.
        </Help>
-    </Value> 
-    <Value type="byte" index="10" genre="config" label="Auto Report Battery Time" units="30 min" min="0" max="127" value="12">
+    </Value>
+    <Value genre="config" index="10" label="Auto Report Battery Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the battery level. 0 means turn off auto report battery. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
-    <Value type="byte" index="11" genre="config" label="Auto Report Door/Window State Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="11" label="Auto Report Door/Window State Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the door/window state. 0 means turn off auto report door/window state. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
-    </Value> 
-    <Value type="byte" index="12" genre="config" label="Auto Report Illumination Time" units="30 min" min="0" max="127" value="12">
+    </Value>
+    <Value genre="config" index="12" label="Auto Report Illumination Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the illumination. 0 means turn off auto report illumination. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
-    </Value> 
-    <Value type="byte" index="13" genre="config" label="Auto Report Temperature time" units="30 min" min="0" max="127" value="12">
+    </Value>
+    <Value genre="config" index="13" label="Auto Report Temperature time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the temperature. 0 means turn off auto report temperature. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
-    </Value> 
-    <Value type="byte" index="20" genre="config" label="Auto Report Tick Interval" min="0" max="255" value="30">
+    </Value>
+    <Value genre="config" index="20" label="Auto Report Tick Interval" max="255" min="0" type="byte" value="30">
       <Help>
           The interval time for auto report each tick. Setting this configuration will effect configuration No.10, No.11, No.12 and No.13. Caution: Setting to 0 means turn off all auto report function.
       </Help>
     </Value>
-    <Value type="byte" index="21" genre="config" label="Temperature Differential Report" min="0" max="255" value="1">
+    <Value genre="config" index="21" label="Temperature Differential Report" max="255" min="0" type="byte" value="1">
       <Help>
           The temperature differential to report. 0 means turn off this function. The unit is Fahrenheit. Enable this function the device will detect every minutes. And when the temperature is over 140 degree Fahrenheit, it will continue report. Enable this functionality will cause some issue please see the detail in the "Temperature Report" section.
       </Help>
-    </Value> 
-    <Value type="byte" index="22" genre="config" label="Illumination Differential Report" min="0" max="255" value="0">
+    </Value>
+    <Value genre="config" index="22" label="Illumination Differential Report" max="255" min="0" type="byte" value="0">
       <Help>
           The illumination differential to report.0 means turn off this function. The unit is percentage. Enable this function the device will detect every minutes. Enable this functionality will cause some issue please see the detail in the "Illumination Report" section.
       </Help>
-    </Value> 
-  </CommandClass> 
+    </Value>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="8" label="Lifeline" />
-      <Group index="2" max_associations="8" label="Light Control" />
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="Light Control" max_associations="8"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/devolo/mt02755.xml b/Config/devolo/mt02755.xml
index 58c2304121..36bbaafe62 100644
--- a/Config/devolo/mt02755.xml
+++ b/Config/devolo/mt02755.xml
@@ -1,67 +1,69 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     Devolo Humidity Sensor MT02755
     http://products.z-wavealliance.org/products/2226
     -->
     <!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="5" label="Operation Mode" size="1" value="0">
-            <Help>
-            </Help>
-            <Item label="Fahrenheit" value="0"/>
-            <Item label="Celsius" value="41"/>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="7" label="Costumer Function" units="" min="0" max="255" value="0">
-            <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="5" instance="1" label="Operation Mode" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Fahrenheit" value="0"/>
+      <Item label="Celsius" value="41"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Costumer Function" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 16 Notification Type, 0:Using Notification Report. 16:Using Sensor Binary Report.
                 32 Disable Multi CC in auto report.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="10" label="Auto Report Battery Time" units="" min="0" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Auto Report Battery Time" max="127" min="0" type="byte" units="" value="12">
+      <Help>
                 The interval time for auto report the battery level.
                 0 means turn off auto report.
                 The default value is 12.
                 The tick time can be set by the configuration No.20.
             </Help>
-        </Value>
-        <Value type="byte" index="13" genre="config" label="Auto Report Temperature time" units="30 min" min="0" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="13" label="Auto Report Temperature time" max="127" min="0" type="byte" units="30 min" value="12">
+      <Help>
                 The interval time for auto report the temperature. 0 means turn off auto report temperature. The default value is 12. The tick time can setting by the configuration No.20.
             </Help>
-        </Value>
-        <Value type="byte" index="14" genre="config" label="Auto Report Humidity time" units="30 min" min="0" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="14" label="Auto Report Humidity time" max="127" min="0" type="byte" units="30 min" value="12">
+      <Help>
                 The interval time for auto report the humidity. 0 means turn off auto report humidity. The default value is 12. The tick time can setting by the configuration No.20.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="20" label="Auto Report Tick Interval" units="minute" min="0" max="255" value="30">
-            <Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Auto Report Tick Interval" max="255" min="0" type="byte" units="minute" value="30">
+      <Help>
                 The interval time for auto report each tick.
                 Setting this configuration will effect configuration No.10, No.13, No.14.
                 Units of one minute.
                 Caution1: Setting to 0 means turn off all auto report function.
                 Caution2: The value is unsigned byte
             </Help>
-        </Value>
-        <Value type="byte" index="21" genre="config" label="Temperature Differential Report" min="0" max="127" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="21" label="Temperature Differential Report" max="127" min="0" type="byte" value="1">
+      <Help>
                 The temperature differential to report. 0 means turn off this function. The unit is Fahrenheit. Enable this function the device will detect every minutes. And when the temperature is over 140 degree Fahrenheit, it will continue report. Enable this functionality will cause some issue please see the detail in the "Temperature Report" section.
             </Help>
-        </Value>
-        <Value type="byte" index="23" genre="config" label="Humidity Differential Report" units="%" min="0" max="60" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="23" label="Humidity Differential Report" max="60" min="0" type="byte" units="%" value="1">
+      <Help>
                 The humidity differential to report. 0 means turn off this function. The unit is %.
             </Help>
-        </Value>
-    </CommandClass>
-    <!-- COMMAND_CLASS_BASIC -->
-    <CommandClass id="32" setasreport="true"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="8" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/devolo/mt02758.xml b/Config/devolo/mt02758.xml
index 282c5e55e2..58cf7667e2 100644
--- a/Config/devolo/mt02758.xml
+++ b/Config/devolo/mt02758.xml
@@ -1,45 +1,48 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <!--
 devolo Siren MT02758
 http://products.z-wavealliance.org/products/2308
 -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="7" genre="config" label="Customer Function" size="1" value="0">
-            <Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="7" label="Customer Function" size="1" type="list" value="0">
+      <Help>
                 bit 0 Notification Type: 0: Using Notification Report, 1: Using Sensor Binary Report.
                 bit 7 Other sounds: 0: Disabled, 1: Enable.
             </Help>
-            <Item label="Using Notification Report" value="0"/>
-            <Item label="Using Sensor Binary Report" value="1"/>
-            <Item label="Using Notification Report with other sounds" value="128"/>
-            <Item label="Using Sensor Binary Report with other sounds" value="129"/>
-        </Value>
-        <Value type="list" index="29" genre="config" label="Alarm" size="1" value="0">
-            <Help>
+      <Item label="Using Notification Report" value="0"/>
+      <Item label="Using Sensor Binary Report" value="1"/>
+      <Item label="Using Notification Report with other sounds" value="128"/>
+      <Item label="Using Sensor Binary Report with other sounds" value="129"/>
+    </Value>
+    <Value genre="config" index="29" label="Alarm" size="1" type="list" value="0">
+      <Help>
                 Disable the alarm function.
                 1: Disable Alarm,
                 0: Enable Alarm.
                 Caution: After the power up, this configuration is always 0.
             </Help>
-            <Item label="Enable" value="0"/>
-            <Item label="Disable" value="1"/>
-        </Value>
-        <Value type="byte" index="31" genre="config" label="Basic Set Off Level" min="0" max="127" value="6">
-            <Help>
+      <Item label="Enable" value="0"/>
+      <Item label="Disable" value="1"/>
+    </Value>
+    <Value genre="config" index="31" label="Basic Set Off Level" max="127" min="0" type="byte" value="6">
+      <Help>
                 Play alarm sound duration,
                 1 tick is 30 seconds. Default is 3 minutes, maximum is 63.5 minutes.
                 0 means never auto stop.
             </Help>
-        </Value>
-    </CommandClass>
-    <!-- Basic set as report -->
-    <CommandClass id="32" setasreport="true"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="8" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/devolo/mt02792.xml b/Config/devolo/mt02792.xml
index 5aaa368747..9c36ee0373 100644
--- a/Config/devolo/mt02792.xml
+++ b/Config/devolo/mt02792.xml
@@ -2,7 +2,7 @@
 <!-- Devolo Metering Plug MT 2646
 http://products.z-wavealliance.org/products/1129
  -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="short" index="1" genre="config" label="Watt Meter Report Period" min="1" max="32767" value="720">
diff --git a/Config/devolo/mt2646.xml b/Config/devolo/mt2646.xml
index 895fa9247b..6569d0304f 100644
--- a/Config/devolo/mt2646.xml
+++ b/Config/devolo/mt2646.xml
@@ -1,76 +1,100 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <!-- Devolo Metering Plug MT 2646
 http://products.z-wavealliance.org/products/1129
- -->
-<Product xmlns="http://code.google.com/p/open-zwave/"> 
+ --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0175:0011:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/devolo/mt2646.png</MetaDataItem>
+    <MetaDataItem id="0011" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1129/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">(Use this procedure only in the event that the primary controller is lost or otherwise inoperable.)
+
+1.  Pressing On/Off button three times within 2 seconds will enter inclusion mode on the switch.
+2.  Within 1 second, press On/Off button again for 5 seconds. 
+</MetaDataItem>
+    <MetaDataItem id="0011" name="Identifier" type="0001">MT02646</MetaDataItem>
+    <MetaDataItem name="Name">Metering Plug</MetaDataItem>
+    <MetaDataItem name="Description">This plug-in ON/OFF switch Home Control Metering Plug is a security enabled wireless switch, based on Z-Wave Plus technology. Z-Wave Plus™   enabled devices displaying  the  Z-Wave Plus™ logo can also be used with   it regardless of the manufacturer, and can also be used in other manufacturer’s Z-Wave™ enabled networks. Remote On/Off control of the connected load is possible with other manufacturer’s wireless Controller. Each switch is designed to act as a repeater. Repeaters will re-transmit the RF signal to ensure that the signal is received by its
+intended destination by routing the signal around obstacles and radio dead spots. Because Home Control Metering Plug supports Security Command Class, it can be added with a Secured controller. Its functionality and supported command classes is identical when included as a secure and non-secure device. 
+This plug-in ON/OFF switch is able to detect instance wattage   (3000W/CE/CN,1500W/UL/TW/JP) and overload current (14.5A) of connected lights or appliances. When detecting overload state, the Switch will be disabled and its On/Off button will be lockout of which LED will flash quickly.   However, unplug and re-connect the switch will reset its overload condition to normal status.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1129/PAN11-1B manual-20140816.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1.  Put your Z-Wave controller into inclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing On/Off button three times within 2 seconds will enter inclusion 
+     mode on the switch. </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1.  Put your Z-Wave controller into exclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing On/Off button three times within 2 seconds will enter exclusion 
+     mode on the switch. </MetaDataItem>
+    <MetaDataItem id="0011" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1129/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="short" index="1" genre="config" label="Watt Meter Report Period" min="1" max="32767" value="720">
+    <Value genre="config" index="1" label="Watt Meter Report Period" max="32767" min="1" type="short" value="720">
       <Help>
           0 Disable automatic interval meter reporting of Watts.
           1 to 32767 Enable automatic interval reporting with an interval of 5 * the value.
 	  </Help>
-    </Value>	
-        <Value type="short" index="2" genre="config" label="KWH Meter Report Period" min="1" max="32767" value="6">
+    </Value>
+    <Value genre="config" index="2" label="KWH Meter Report Period" max="32767" min="1" type="short" value="6">
       <Help>
           0 Disable automatic interval meter kWh reporting.
           If the setting is configured for 1hour (set value =6), the Home Control Metering Plug will report its Accumulated Power Consumption (KW/h) every 1 hour to Group1 node. The maximum interval to report its Accumulated Power Consumption (KW/h) is 227.55 days (10min*32767/1440=227.55 days).
     </Help>
-    </Value> 
-    <Value type="short" index="3" genre="config" label="Threshold of current for Load caution" min="10" max="1300" value="1300">
+    </Value>
+    <Value genre="config" index="3" label="Threshold of current for Load caution" max="1300" min="10" type="short" value="1300">
       <Help>
           This is a warning when the current of load over the preset threshold value, if the setting value is 1300, when the load current of Relay1 over this value, Home Control Metering Plug will send current meter report to warn the Group1 node, the Range of the setting value is from 10 to 1300,and the default value is 1300.
     </Help>
-    </Value> 
-    <Value type="short" index="4" genre="config" label="Threshold of KWh for Load caution" min="1" max="10000" value="1000" units="KWh">
+    </Value>
+    <Value genre="config" index="4" label="Threshold of KWh for Load caution" max="10000" min="1" type="short" units="KWh" value="1000">
       <Help>
           0 Disable kWh Load Caution Reporting
           1 to 10000 Enable automatic warning when the accumulated kWh power consumption exceeds the setting value from 1KWh to 10000KWh.
     </Help>
-    </Value> 
-    <Value type="list" index="5" genre="config" label="Restore switch state mode" min="0" max="2" value="1" size="1">
+    </Value>
+    <Value genre="config" index="5" label="Restore switch state mode" max="2" min="0" size="1" type="list" value="1">
       <Help>
           Whenever the AC power return from lost, Home Control Metering Plug will restore the switch state which could be SWITCH OFF, LAST SWITCH STATE, SWITCH ON. The default setting is LAST SWITCH STATE.
       </Help>
-       <Item label="Switch Off" value="0" />
-       <Item label="Last switch state" value="1" />
-       <Item label="Switch On" value="2" />
-    </Value>  
-    <Value type="list" index="6" genre="config" label="Mode of Switch Off function" min="0" max="1" value="1" size="1">
+      <Item label="Switch Off" value="0"/>
+      <Item label="Last switch state" value="1"/>
+      <Item label="Switch On" value="2"/>
+    </Value>
+    <Value genre="config" index="6" label="Mode of Switch Off function" max="1" min="0" size="1" type="list" value="1">
       <Help>
             When the mode of switch On/Off is set to 0, any command of switch off will be disabled and the On/Off function of include button will be disabled. The default setting is enable mode.
       </Help>
-     <Item label="Disable" value="0" />
-     <Item label="Enable" value="1" />
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" index="7" genre="config" label="LED indication mode" min="1" max="3" value="0" size="1">
+    <Value genre="config" index="7" label="LED indication mode" max="3" min="1" size="1" type="list" value="0">
       <Help>
           LED indication mode
       </Help>
-        <Item label="Switch state" value="1"/>
-        <Item label="Night Mode" value="2"/>
-        <Item label="One flash mode" value="3"/>
-    </Value>  
-    <Value type="short" index="8" genre="config" label="Auto off timer" min="0" max="32767" value="0" units="second">
+      <Item label="Switch state" value="1"/>
+      <Item label="Night Mode" value="2"/>
+      <Item label="One flash mode" value="3"/>
+    </Value>
+    <Value genre="config" index="8" label="Auto off timer" max="32767" min="0" type="short" units="second" value="0">
       <Help>
           0 Disable the auto off function.
           1 to 32767 1s to 32767s for automatically turning off.
     </Help>
-    </Value> 
-    <Value type="list" index="9" genre="config" label="RF off command mode" min="0" max="3" value="0" units="" size="1">
+    </Value>
+    <Value genre="config" index="9" label="RF off command mode" max="3" min="0" size="1" type="list" units="" value="0">
       <Help>
           Whenever a switch off command,BASIC_SET, BINARY_SWITCH_SET, SWITCH_ALL_OFF, is received, it could be interpreted as a variety of 4 commands.
       </Help>
-        <Item label="Switch Off" value="0"/>
-        <Item label="Ignore" value="1"/>
-        <Item label="Switch toggle" value="2"/>
-        <Item label="Switch On" value="3"/>
-    </Value> 
+      <Item label="Switch Off" value="0"/>
+      <Item label="Ignore" value="1"/>
+      <Item label="Switch toggle" value="2"/>
+      <Item label="Switch On" value="3"/>
+    </Value>
   </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="1" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/devolo/mt2647.xml b/Config/devolo/mt2647.xml
index 19f8770686..ebc7e9abcd 100644
--- a/Config/devolo/mt2647.xml
+++ b/Config/devolo/mt2647.xml
@@ -1,16 +1,44 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <!-- Devolo Motion Sensor MT02647
 http://products.z-wavealliance.org/products/1131
- -->
-<Product xmlns="http://code.google.com/p/open-zwave/"> 
+ --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0175:000D:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/devolo/mt2647.png</MetaDataItem>
+    <MetaDataItem id="000D" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1131/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To add into a Z-Wave network: 
+1. Have Z-Wave  Controller entered inclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave Controller about 20 seconds.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To remove the device from a Z-Wave network: 
+1. Have Z-Wave  Controller entered exclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the exclusion mode.
+Node ID has been excluded.</MetaDataItem>
+    <MetaDataItem name="Name">Motion Sensor</MetaDataItem>
+    <MetaDataItem id="000D" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="000D" name="Identifier" type="0002">MT02647</MetaDataItem>
+    <MetaDataItem name="Description">The Motion Sensor MT02647 has PIR, temperature and illumination, 3 sensors function in one,based on Z-Wave technology.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To reset the device: 
+Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing tamper key four times within 1.5 seconds and do not release the tamper key in the 4th  pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the tamper key. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are excluded and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+Press any key once, the device will awake 10 seconds.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1131/Devolo home Control Motion.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1131/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="byte" index="2" genre="config" label="Basic Set Level" min="0" max="255" value="255">
+    <Value genre="config" index="2" label="Basic Set Level" max="255" min="0" type="byte" value="255">
       <Help></Help>
     </Value>
-
-    <Value type="byte" index="3" genre="config" label="PIR Sensitivity" min="0" max="99" value="80">
-       <Help>
+    <Value genre="config" index="3" label="PIR Sensitivity" max="99" min="0" type="byte" value="80">
+      <Help>
           PIR sensitivity settings. 
           0 means disable the PIR motion. 
           1 means the lowest sensitivity, 
@@ -18,8 +46,7 @@ http://products.z-wavealliance.org/products/1131
           High sensitivity means can detected long distance, but if there is more noise signal in the environment, it will re-trigger too frequency.
        </Help>
     </Value>
-	
-    <Value type="byte" index="4" genre="config" label="Light threshold" min="0" max="100" value="99">
+    <Value genre="config" index="4" label="Light threshold" max="100" min="0" type="byte" value="99">
       <Help>
           Setting the illumination threshold to turn on the light. When the event triggered and the environment illumination lower than 
           the threshold, the device will turn on the light.
@@ -30,9 +57,8 @@ http://products.z-wavealliance.org/products/1131
           * Notice * in none test mode, only the value in 1 to 99 will enable the illumination detected function and update the illumination value.
        </Help>
     </Value>
-	
-    <Value type="byte" index="5" genre="config" label="Operation Mode" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="5" label="Operation Mode" max="127" min="0" type="byte" value="4">
+      <Help>
           Bit 0: Reserve. 
           Bit 1: 1 means enable test mode, 0 means disable normal mode. Notice: This bit only effect by the DIP Switch setting to program mode. 
           Bit 2: Set to 1.
@@ -44,9 +70,8 @@ http://products.z-wavealliance.org/products/1131
           ozw Recommended: 12
        </Help>
     </Value>
-
-    <Value type="byte" index="6" genre="config" label="Multi-Sensor Function Switch" min="0" max="255" value="5">
-       <Help>
+    <Value genre="config" index="6" label="Multi-Sensor Function Switch" max="255" min="0" type="byte" value="5">
+      <Help>
            Bit 0: Reserve, set to 1.
            Bit 1: Disable PIR integrate Illumination to turn ON the lighting nodes in the association group 2. (1:Disable, 0:Enable).
            Bit 2: Reserve, set to 1.
@@ -57,9 +82,8 @@ http://products.z-wavealliance.org/products/1131
            Bit 7: Reserve.
 	  </Help>
     </Value>
-
-    <Value type="byte" index="7" genre="config" label="Customer Function" min="0" max="255" value="4">
-       <Help>
+    <Value genre="config" index="7" label="Customer Function" max="255" min="0" type="byte" value="4">
+      <Help>
           Bit 0: Reserve. 
           Bit 1: Enable sending motion OFF report (0:Disable, 1:Enable). 
 				 Note: Depends on the Bit4, 0: Report Notification CC, Type: 0x07, Event: 0xFE 1: Sensor Binary Report, Type: 0x0C, Value: 0x00.  
@@ -72,53 +96,45 @@ http://products.z-wavealliance.org/products/1131
           ozw Recommended: 22
        </Help>
     </Value>
-
-    <Value type="byte" index="8" genre="config" label="PIR re-detect interval time" units="8 sec" min="1" max="127" value="3">
-       <Help>
+    <Value genre="config" index="8" label="PIR re-detect interval time" max="127" min="1" type="byte" units="8 sec" value="3">
+      <Help>
           In the normal mode, after the PIR motion detected, setting the re-detect time. 8 seconds per tick, default tick is 3 (24 seconds). 
           Setting the suitable value to prevent received the trigger signal too frequency. Also can save the battery energy. 
           Notice: If this value bigger than the configuration setting NO. 9. There is a period after the light turned off and the PIR not start detecting.
        </Help>
     </Value>
-	
-    <Value type="byte" index="9" genre="config" label="Turn Off Light Time" units="8 sec" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="9" label="Turn Off Light Time" max="127" min="0" type="byte" units="8 sec" value="4">
+      <Help>
           After turn on the lighting, setting the delay time to turn off the lighting when the PIR motion is not detected. 
           8 seconds per tick, default tick is 4 (32 seconds). 0 means never send turn off light command.
        </Help>
     </Value>
- 
-    <Value type="byte" index="10" genre="config" label="Auto Report Battery Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="10" label="Auto Report Battery Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the battery level. 0 means turn off auto report battery. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
-
-    <Value type="byte" index="12" genre="config" label="Auto Report Illumination Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="12" label="Auto Report Illumination Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the illumination. 0 means turn off auto report illumination. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="13" genre="config" label="Auto Report Temperature time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="13" label="Auto Report Temperature time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the temperature. 0 means turn off auto report temperature. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="20" genre="config" label="Auto Report Tick Interval" min="0" max="255" value="30">
+    <Value genre="config" index="20" label="Auto Report Tick Interval" max="255" min="0" type="byte" value="30">
       <Help>
           The interval time for auto report each tick. Setting this configuration will effect configuration No.10, No.11, No.12 and No.13. Caution: Setting to 0 means turn off all auto report function.
       </Help>
     </Value>
- 
-    <Value type="byte" index="21" genre="config" label="Temperature Differential Report" min="0" max="255" value="1">
+    <Value genre="config" index="21" label="Temperature Differential Report" max="255" min="0" type="byte" value="1">
       <Help>
           The temperature differential to report. 0 means turn off this function. The unit is Fahrenheit. Enable this function the device will detect every minutes. And when the temperature is over 140 degree Fahrenheit, it will continue report. Enable this functionality will cause some issue please see the detail in the "Temperature Report" section.
       </Help>
     </Value>
- 
-    <Value type="byte" index="22" genre="config" label="Illumination Differential Report" min="0" max="99" value="0">
+    <Value genre="config" index="22" label="Illumination Differential Report" max="99" min="0" type="byte" value="0">
       <Help>
           The illumination differential to report.0 means turn off this function. The unit is percentage. Enable this function the device will detect every minutes. Enable this functionality will cause some issue please see the detail in the "Illumination Report" section.
       </Help>
@@ -127,8 +143,8 @@ http://products.z-wavealliance.org/products/1131
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="8" label="Lifeline" />
-      <Group index="2" max_associations="8" label="Basic Set" />
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="Basic Set" max_associations="8"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/devolo/mt2651.xml b/Config/devolo/mt2651.xml
index 17d2f46e01..4d6611ae90 100644
--- a/Config/devolo/mt2651.xml
+++ b/Config/devolo/mt2651.xml
@@ -1,15 +1,18 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <!--
 Devolo Smoke Detector MT 2651
 https://products.z-wavealliance.org/products/2230
  -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- the Device Doesn't support Get for Alarm Class -->
-	<CommandClass id="113" getsupported="false"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-      <Associations num_groups="1">
-        <Group index="1" max_associations="5" label="Lifeline" />
-      </Associations>
-    </CommandClass>
+ <Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- the Device Doesn't support Get for Alarm Class -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/devolo/mt2652.xml b/Config/devolo/mt2652.xml
index 157a704ae7..d72ac6b087 100644
--- a/Config/devolo/mt2652.xml
+++ b/Config/devolo/mt2652.xml
@@ -1,95 +1,115 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <!--
 Devolo Scene Switch MT 2652
 http://products.z-wavealliance.org/products/1143
- -->
-<Product xmlns="http://code.google.com/p/open-zwave/"> 
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Button 1 and 3 pair mode" units="" min="0" max="2" size="1" value="1">
-            <Help>In separate mode button 1 works with group A, button 3 with groups C. Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. In pair button 1/3 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group A, double click with group C.</Help>
-            <Item label="Separately" value="0"/>
-            <Item label="In pair without double clicks (Default)" value="1"/>
-            <Item label="In pair with double clicks" value="2"/>
-        </Value>
-        <Value type="list" index="2" genre="config" label="Button 2 and 4 pair mode" units="" min="0" max="2" size="1" value="1">
-            <Help>In separate mode button 2 works with control group B, button 4 with control group D. Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. In pair button B/D are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group B, double click with group D.</Help>
-            <Item label="Separately" value="0"/>
-            <Item label="In pair without double clicks (Default)" value="1"/>
-            <Item label="In pair with double clicks" value="2"/>
-        </Value>
-        <Value type="list" index="11" genre="config" label="Command to Control Group A" units="" min="0" max="8" size="1" value="8">
-            <Help>This parameter defines the command to be sent to devices of control group A when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scenes" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="12" genre="config" label="Command to Control Group B" units="" min="0" max="8" size="1" value="8">
-            <Help>This parameter defines the command to be sent to devices of control group B when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scenes" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="13" genre="config" label="Command to Control Group C" units="" min="0" max="8" size="1" value="8">
-            <Help>This parameter defines the command to be sent to devices of control group C when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scenes" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="14" genre="config" label="Command to Control Group D" units="" min="0" max="8" size="1" value="8">
-            <Help>This parameter defines the command to be sent to devices of control group D when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scenes" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="21" genre="config" label="Send the following Switch All commands" units="" min="1" max="255" size="1">
-            <Item label="Switch off only (Default)" value="1"/>
-            <Item label="Switch on only" value="2"/>
-            <Item label="Switch all on and off" value="255"/>
-        </Value>
-        <Value type="list" index="22" genre="config" label="Invert buttons" units="" min="0" max="1" size="1">
-            <Item label="No (default)" value="0"/>
-            <Item label="Yes" value="1"/>
-        </Value>
-        <Value type="list" index="25" genre="config" label="Blocks wakeup even when wakeup interval is set" units="" min="0" max="1" size="1" value="1">
-            <Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
-            <Item label="Wakeup is blocked" value="0"/>
-            <Item label="Wakeup is possible if configured accordingly. (Default)" value="1"/>
-        </Value>
-        <Value type="list" index="30" genre="config" label="Send unsolicited Battery Report on Wake Up" units="" min="0" max="1" size="1" value="1">
-            <Item label="No" value="0"/>
-            <Item label="To same node as wake up notification (Default)" value="1"/>
-            <Item label="Broadcast to neighbours" value="2"/>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-      <Associations num_groups="5">
-        <Group index="1" max_associations="10" label="Lifeline" />
-          <Group index="2" max_associations="10" label="Group A Button 1 or single clicks of buttons 1 and 3"/>
-          <Group index="3" max_associations="10" label="Group B Button 2 or single clicks of buttons 2 and 4"/>
-          <Group index="4" max_associations="10" label="Group C Button 3 or double clicks of buttons 1 and 3"/>
-          <Group index="5" max_associations="10" label="Group D Button 4 or double clicks of buttons 2 and 4"/>
-      </Associations>
-    </CommandClass>
+ --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0175:0101:0100</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/devolo/mt2652.png</MetaDataItem>
+    <MetaDataItem id="0101" name="ZWProductPage" type="0100">https://products.z-wavealliance.org/products/1143/</MetaDataItem>
+    <MetaDataItem id="0101" name="FrequencyName" type="0100">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Use this procedure only if the primary controller is missing or otherwise inoperable. 
+(1) Turn the device into Management Mode by keeping all four buttons pushed for 5 seconds, (2) click on Button 3, (3) keep button 4 pushed for 4 seconds.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Re-Inclusion and Exclusion are performed by pushing button 1 in management mode.  Pushing all four buttons for 5 sec. turns the device into management mode (indicated by blinking green LED).</MetaDataItem>
+    <MetaDataItem id="0101" name="Identifier" type="0100">MT2652</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1143/SceneSwitch_Manual.docx</MetaDataItem>
+    <MetaDataItem name="WakeupDescription"> (1) Turn the device into Management Mode by keeping all four buttons pushed for 5 seconds, (2) click on Button 2. </MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Place your primary controller in inclusion mode by following the manufacturer's instructions, then activate inclusion on the wall controller by pressing any one of the four buttons for one second.  Inclusion mode is indicated by the red/green blinking of the LEDs until the timeout occurs after 10 seconds.</MetaDataItem>
+    <MetaDataItem name="Description">The MT2652 Scene Switch is a Z-Wave device that can both control other Z-Wave devices and activate scenes. Although it is controlling other devices, the Wall Controller cannot act as Z-Wave network controller (primary or secondary) and will always need a Z-Wave network controller to be included into a Z-Wave network. The device can be used in different modes that are selected by configuration parameters:
+
+Control of groups of other Z-Wave devices using 'ON', 'OFF' and Dim commands.
+Activation of predefined scenes in Gateways or other Z-Wave devices.
+This device support secure communication when included by a controller that also supports secure communication. </MetaDataItem>
+    <MetaDataItem name="Name">Scene Switch</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1143/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Button 1 and 3 pair mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 1 works with group A, button 3 with groups C. Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. In pair button 1/3 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group A, double click with group C.</Help>
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (Default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Button 2 and 4 pair mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 2 works with control group B, button 4 with control group D. Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. In pair button B/D are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group B, double click with group D.</Help>
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (Default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="11" label="Command to Control Group A" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group A when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scenes" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="12" label="Command to Control Group B" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group B when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scenes" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="13" label="Command to Control Group C" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group C when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scenes" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="14" label="Command to Control Group D" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group D when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scenes" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="21" label="Send the following Switch All commands" max="255" min="1" size="1" type="list" units="">
+      <Item label="Switch off only (Default)" value="1"/>
+      <Item label="Switch on only" value="2"/>
+      <Item label="Switch all on and off" value="255"/>
+    </Value>
+    <Value genre="config" index="22" label="Invert buttons" max="1" min="0" size="1" type="list" units="">
+      <Item label="No (default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="25" label="Blocks wakeup even when wakeup interval is set" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
+      <Item label="Wakeup is blocked" value="0"/>
+      <Item label="Wakeup is possible if configured accordingly. (Default)" value="1"/>
+    </Value>
+    <Value genre="config" index="30" label="Send unsolicited Battery Report on Wake Up" max="1" min="0" size="1" type="list" units="" value="1">
+      <Item label="No" value="0"/>
+      <Item label="To same node as wake up notification (Default)" value="1"/>
+      <Item label="Broadcast to neighbours" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="10"/>
+      <Group index="2" label="Group A Button 1 or single clicks of buttons 1 and 3" max_associations="10"/>
+      <Group index="3" label="Group B Button 2 or single clicks of buttons 2 and 4" max_associations="10"/>
+      <Group index="4" label="Group C Button 3 or double clicks of buttons 1 and 3" max_associations="10"/>
+      <Group index="5" label="Group D Button 4 or double clicks of buttons 2 and 4" max_associations="10"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/devolo/mt2653.xml b/Config/devolo/mt2653.xml
index abcceab23b..3d8b634637 100644
--- a/Config/devolo/mt2653.xml
+++ b/Config/devolo/mt2653.xml
@@ -1,110 +1,113 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     Devolo Home Control Key MT 2653
     http://products.z-wavealliance.org/products/2134
     -->
     <!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Button 1 and 3 pair mode" units="" min="0" max="2" value="1" size="1">
-            <Help>In separate mode button 1 works with group A, button 3 with groups C.
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Button 1 and 3 pair mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 1 works with group A, button 3 with groups C.
                 Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down.
                 In pair button 1/3 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group A, double click with group C.
             </Help>
-            <Item label="Separately" value="0"/>
-            <Item label="In pair without double clicks (default)" value="1"/>
-            <Item label="In pair with double clicks" value="2"/>
-        </Value>
-        <Value type="list" index="2" genre="config" label="Button 2 and 4 pair mode" units="" min="0" max="2" value="1" size="1">
-            <Help>In separate mode button 2 works with group B, button 4 with groups D.
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Button 2 and 4 pair mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 2 works with group B, button 4 with groups D.
                 Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down.
                 In pair button 2/4 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group B, double click with group D.
             </Help>
-            <Item label="Separately" value="0"/>
-            <Item label="In pair without double clicks (default)" value="1"/>
-            <Item label="In pair with double clicks" value="2"/>
-        </Value>
-        <Value type="list" index="11" genre="config" label="Command to Control Group A" units="" min="0" max="8" value="8" size="1">
-            <Help>This parameter defines the command to be sent to devices of control group A when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scene" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control devices in proximity" value="6"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="12" genre="config" label="Command to Control Group B" units="" min="0" max="8" value="8" size="1">
-            <Help>This parameter defines the command to be sent to devices of control group B when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scene" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control devices in proximity" value="6"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="13" genre="config" label="Command to Control Group C" units="" min="0" max="8" value="8" size="1">
-            <Help>This parameter defines the command to be sent to devices of control group C when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scene" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control devices in proximity" value="6"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="14" genre="config" label="Command to Control Group D" units="" min="0" max="8" value="8" size="1">
-            <Help>This parameter defines the command to be sent to devices of control group D when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scene" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control devices in proximity" value="6"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="21" genre="config" label="Send the following Switch All commands" units="" min="1" max="255" value="1" size="1">
-            <Help>Send the following Switch All ON/OFF commands</Help>
-            <Item label="Switch Off only (default)" value="1"/>
-            <Item label="Switch On only" value="2"/>
-            <Item label="Switch On and Off" value="255"/>
-        </Value>
-        <Value type="list" index="22" genre="config" label="Invert buttons" units="" min="0" max="1" value="0" size="1">
-            <Help>Invert meaning of On/Dim up and Off/Dim down in pairs of buttons. This applies only to pairs in grouped mode. Buttons 1 and 2 will become Off/Dim down, buttons 3 and 4 On/Dim up.</Help>
-            <Item label="No (default)" value="0"/>
-            <Item label="Yes" value="1"/>
-        </Value>
-        <Value type="list" index="25" genre="config" label="Blocks wake up even when wake up interval is set" units="" min="0" max="1" value="0" size="1">
-            <Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
-            <Item label="Wakeup is blocked (default)" value="0"/>
-            <Item label="Wakeup is possible if configured accordingly" value="1"/>
-        </Value>
-        <Value type="list" index="30" genre="config" label="Send unsolicited Battery Report on Wake Up" units="" min="0" max="2" value="1" size="1">
-            <Help/>
-            <Item label="No" value="0"/>
-            <Item label="To same node as wake up notification (Default)" value="1"/>
-            <Item label="Broadcast to neighbors" value="2"/>
-        </Value>
-    </CommandClass>
-    <!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
-    <CommandClass id="43" action="add" getsupported="false"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="5">
-            <Group index="1" max_associations="10" label="Lifeline"/>
-            <Group index="2" max_associations="10" label="Group A Button 1 or single clicks of buttons 1 and 3"/>
-            <Group index="3" max_associations="10" label="Group B Button 2 or single clicks of buttons 2 and 4"/>
-            <Group index="4" max_associations="10" label="Group C Button 3 or double clicks of buttons 1 and 3"/>
-            <Group index="5" max_associations="10" label="Group D Button 4 or double clicks of buttons 2 and 4"/>
-        </Associations>
-    </CommandClass>
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="11" label="Command to Control Group A" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group A when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="12" label="Command to Control Group B" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group B when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="13" label="Command to Control Group C" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group C when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="14" label="Command to Control Group D" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group D when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="21" label="Send the following Switch All commands" max="255" min="1" size="1" type="list" units="" value="1">
+      <Help>Send the following Switch All ON/OFF commands</Help>
+      <Item label="Switch Off only (default)" value="1"/>
+      <Item label="Switch On only" value="2"/>
+      <Item label="Switch On and Off" value="255"/>
+    </Value>
+    <Value genre="config" index="22" label="Invert buttons" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Invert meaning of On/Dim up and Off/Dim down in pairs of buttons. This applies only to pairs in grouped mode. Buttons 1 and 2 will become Off/Dim down, buttons 3 and 4 On/Dim up.</Help>
+      <Item label="No (default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="25" label="Blocks wake up even when wake up interval is set" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
+      <Item label="Wakeup is blocked (default)" value="0"/>
+      <Item label="Wakeup is possible if configured accordingly" value="1"/>
+    </Value>
+    <Value genre="config" index="30" label="Send unsolicited Battery Report on Wake Up" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help/>
+      <Item label="No" value="0"/>
+      <Item label="To same node as wake up notification (Default)" value="1"/>
+      <Item label="Broadcast to neighbors" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
+  <CommandClass action="add" id="43">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="10"/>
+      <Group index="2" label="Group A Button 1 or single clicks of buttons 1 and 3" max_associations="10"/>
+      <Group index="3" label="Group B Button 2 or single clicks of buttons 2 and 4" max_associations="10"/>
+      <Group index="4" label="Group C Button 3 or double clicks of buttons 1 and 3" max_associations="10"/>
+      <Group index="5" label="Group D Button 4 or double clicks of buttons 2 and 4" max_associations="10"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/devolo/mt2756.xml b/Config/devolo/mt2756.xml
index adcb993135..28952bb52a 100644
--- a/Config/devolo/mt2756.xml
+++ b/Config/devolo/mt2756.xml
@@ -1,70 +1,72 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     Devolo Flood Sensor MT2756
     http://products.z-wavealliance.org/products/2227
     -->
     <!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="byte" genre="config" index="1" label="Basic Set OFF Level" size="1" min="0" max="255" value="0">
-            <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Basic Set OFF Level" max="255" min="0" size="1" type="byte" value="0">
+      <Help>
                 Setting the BASIC command value.
                 When the flood trigger off(0x00), send the BASIC CC to the group 2
             </Help>
-        </Value>
-        <Value type="byte" genre="config" index="2" label="Basic Set ON Level" size="1" min="0" max="255" value="255">
-            <Help>
+    </Value>
+    <Value genre="config" index="2" label="Basic Set ON Level" max="255" min="0" size="1" type="byte" value="255">
+      <Help>
                 Setting the BASIC command value.
                 When the flood trigger on(0xFF), send the BASIC CC to the group 2
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="5" label="Operation Mode" size="1" value="0">
-            <Help>
-            </Help>
-            <Item label="Normal" value="0"/>
-            <Item label="Disable the Flood function" value="33"/>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="7" label="Costumer Function" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Operation Mode" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Normal" value="0"/>
+      <Item label="Disable the Flood function" value="33"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Costumer Function" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 8  Disable send out BASIC OFF after the flood event cleared.
                 16 Notification Type, 0:Using Notification Report. 16:Using Sensor Binary Report.
                 32 Disable Multi CC in auto report.
                 64 Disable to report battery state when the device triggered.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="10" label="Auto Report Battery Time" units="" min="0" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Auto Report Battery Time" max="127" min="0" type="byte" units="" value="12">
+      <Help>
                 The interval time for auto report the battery level.
                 0 means turn off auto report.
                 The default value is 12.
                 The tick time can be set by the configuration No.20.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="15" label="Auto Report Flood Time" units="" min="0" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Auto Report Flood Time" max="127" min="0" type="byte" units="" value="12">
+      <Help>
                 The interval time for auto report the flood state.
                 0 means turn off auto report.
                 The default value is 12.
                 The tick time can be set by the configuration No.20.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="20" label="Auto Report Tick Interval" units="minute" min="0" max="255" value="30">
-            <Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Auto Report Tick Interval" max="255" min="0" type="byte" units="minute" value="30">
+      <Help>
                 The interval time for auto report each tick.
                 Setting this configuration will effect configuration No.10, No.13, No.14 and No.15.
                 Units of one minute.
                 Caution1: Setting to 0 means turn off all auto report function.
                 Caution2: The value is unsigned byte
             </Help>
-        </Value>
-    </CommandClass>
-    <!-- COMMAND_CLASS_BASIC -->
-    <CommandClass id="32" setasreport="true"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="8" label="Lifeline"/>
-            <Group index="2" max_associations="8" label="Basic Set"/>
-        </Associations>
-    </CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="Basic Set" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/devolo/rs014G0159.xml b/Config/devolo/rs014G0159.xml
index ab866ed5ee..7b4086d5c3 100644
--- a/Config/devolo/rs014G0159.xml
+++ b/Config/devolo/rs014G0159.xml
@@ -1,81 +1,84 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 devolo RS 014G0159
 http://products.z-wavealliance.org/products/1063
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-    <CommandClass base="0" override_precision="2" request_flags="4" version="1" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" id="67">
-        <Instance index="1"/>
-        <Value index="1" value="0.0" max="0" min="0" verify_changes="false" write_only="false" read_only="false" units="C" label="Heating" instance="1" genre="user" type="decimal"/>
-        <Value index="2" value="0.0" max="0" min="0" verify_changes="false" write_only="false" read_only="false" units="C" label="Cooling" instance="1" genre="user" type="decimal"/>
-        <Value index="3" value="0.0" max="0" min="0" verify_changes="false" write_only="false" read_only="false" units="C" label="Unused" instance="1" genre="user" type="decimal"/>
-    </CommandClass>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="short" index="1" genre="config" label="Temperature Threshold" min="1" max="100" value="5">
-            <Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="0.0" verify_changes="false" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Cooling" max="0" min="0" read_only="false" type="decimal" units="C" value="0.0" verify_changes="false" write_only="false"/>
+    <Value genre="user" index="3" instance="1" label="Unused" max="0" min="0" read_only="false" type="decimal" units="C" value="0.0" verify_changes="false" write_only="false"/>
+    <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Temperature Threshold" max="100" min="1" type="short" value="5">
+      <Help>
                 Temperature Report threshold (1=0.1C)
             </Help>
-        </Value>
-        <Value type="short" index="2" genre="config" label="Setpoint resolution" min="1" max="100" value="5">
-            <Help>
+    </Value>
+    <Value genre="config" index="2" label="Setpoint resolution" max="100" min="1" type="short" value="5">
+      <Help>
                 Set-point display resolution (1=0.1C)
             </Help>
-        </Value>
-        <Value type="short" index="3" genre="config" label="Min/Override Setpoint" min="0" max="40" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" label="Min/Override Setpoint" max="40" min="0" type="short" value="12">
+      <Help>
                 Min Set-point and override limit
             </Help>
-        </Value>
-        <Value type="short" index="4" genre="config" label="Max/Override Setpoint" min="0" max="40" value="28">
-            <Help>
+    </Value>
+    <Value genre="config" index="4" label="Max/Override Setpoint" max="40" min="0" type="short" value="28">
+      <Help>
                 Max Set-point and override limit
             </Help>
-        </Value>
-        <Value type="list" index="6" genre="config" label="Setpoint control function" size="1" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="6" label="Setpoint control function" size="1" type="list" value="1">
+      <Help>
                 Setpoint control function
             </Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Enabled" value="1"/>
-        </Value>
-        <Value type="list" index="7" genre="config" label="Temporarily override scheduler" size="1" value="1">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="7" label="Temporarily override scheduler" size="1" type="list" value="1">
+      <Help>
                 Temporarily override scheduler
             </Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Enabled" value="1"/>
-        </Value>
-        <Value type="list" index="8" genre="config" label="Setpoint type" size="1" value="1">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="8" label="Setpoint type" size="1" type="list" value="1">
+      <Help>
                 Setpoint type in thermostat setpoint_reports
             </Help>
-            <Item label="Heating" value="1"/>
-            <Item label="Cooling" value="2"/>
-            <Item label="Auto Changeover" value="10"/>
-        </Value>
-        <Value type="byte" index="9" genre="config" label="Led on time" min="1" max="5" value="1">
-            <Help>
+      <Item label="Heating" value="1"/>
+      <Item label="Cooling" value="2"/>
+      <Item label="Auto Changeover" value="10"/>
+    </Value>
+    <Value genre="config" index="9" label="Led on time" max="5" min="1" type="byte" value="1">
+      <Help>
                 Led on time (1=100ms)
             </Help>
-        </Value>
-        <Value type="short" index="5" genre="config" label="Led Flash Period" min="0" max="65535" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="5" label="Led Flash Period" max="65535" min="0" type="short" value="1">
+      <Help>
                 Led Flash Period (0 to 65535 seconds)
             </Help>
-        </Value>
-        <Value type="byte" index="10" genre="config" label="Number of flash" min="0" max="255" value="5">
-            <Help>
+    </Value>
+    <Value genre="config" index="10" label="Number of flash" max="255" min="0" type="byte" value="5">
+      <Help>
                 Number of led flashes (duration)
             </Help>
-        </Value>
-        <Value type="list" index="11" genre="config" label="Led Color" size="1" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="11" label="Led Color" size="1" type="list" value="1">
+      <Help>
                 Led Color
             </Help>
-            <Item label="Green" value="1"/>
-            <Item label="Red" value="2"/>
-        </Value>
-    </CommandClass>
+      <Item label="Green" value="1"/>
+      <Item label="Red" value="2"/>
+    </Value>
+  </CommandClass>
 </Product>
diff --git a/Config/diehlcontrols/766366.xml b/Config/diehlcontrols/766366.xml
new file mode 100644
index 0000000000..b9ae31c75f
--- /dev/null
+++ b/Config/diehlcontrols/766366.xml
@@ -0,0 +1,15 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0103:0002:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/diehlcontrols/766366.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1208/</MetaDataItem>
+    <MetaDataItem name="Name">DiehlControls Dimmer Actuator</MetaDataItem>
+    <MetaDataItem name="Description">Dimmer Actuator</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0002">766366</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/996/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1208/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/dlink/dch-z110.xml b/Config/dlink/dch-z110.xml
index 7df1accf51..a9b427d14b 100644
--- a/Config/dlink/dch-z110.xml
+++ b/Config/dlink/dch-z110.xml
@@ -1,18 +1,44 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- D-Link: DCH-Z110 -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
- 
+<!-- D-Link: DCH-Z110 --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0108:000E:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/dlink/dch-z110.png</MetaDataItem>
+    <MetaDataItem id="000E" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1151/</MetaDataItem>
+    <MetaDataItem id="000E" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">D-Link Z-Wave Door/Window Sensor</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+Press any key once, the device will awake 10 seconds.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1151/D-Link DCH-Z110_120 manual.pdf</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To remove the device from a Z-Wave network: 
+1. Have Z-Wave  Controller entered exclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the exclusion mode.
+Node ID has been excluded.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To add into a Z-Wave network: 
+1. Have Z-Wave  Controller entered inclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave Controller about 20 seconds.</MetaDataItem>
+    <MetaDataItem id="000E" name="Identifier" type="0002">DCH-Z110</MetaDataItem>
+    <MetaDataItem name="ResetDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To reset the device: 
+Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing tamper key four times within 1.5 seconds and do not release the tamper key in the 4th  pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the tamper key. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are excluded and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem name="Description">The mydlink Z-Wave Door/Window Sensor DCH-Z110 has door/window, temperature and illumination, 3 sensors function in one,based on Z-Wave technology.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1151/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-
-    <Value type="byte" index="2" genre="config" label="2. Basic Set Level" min="-1" max="100" value="-1">
+    <Value genre="config" index="2" label="2. Basic Set Level" max="100" min="-1" type="byte" value="-1">
       <Help>
           Setting the BASIC command value to turn on the light. The 0xFF (-1) means turn on the light. 
           For dimmer equipment 1 to 100 means the light strength. 0 means turn off the light.
 	  </Help>
     </Value>
-	
-    <Value type="byte" index="4" genre="config" label="4. Light threshold" min="0" max="100" value="99">
+    <Value genre="config" index="4" label="4. Light threshold" max="100" min="0" type="byte" value="99">
       <Help>
           Setting the illumination threshold to turn on the light. When the event triggered and the environment illumination lower than 
           the threshold, the device will turn on the light.
@@ -23,9 +49,8 @@
           * Notice * in none test mode, only the value in 1 to 99 will enable the illumination detected function and update the illumination value.
        </Help>
     </Value>
-	
-    <Value type="byte" index="5" genre="config" label="5. Operation Mode" min="0" max="127" value="0">
-       <Help>
+    <Value genre="config" index="5" label="5. Operation Mode" max="127" min="0" type="byte" value="0">
+      <Help>
           Bit 0: Reserved 
           Bit 1: Reserved 
           Bit 2: Disable the door/window function (1: Disable, 0: Enable). 
@@ -34,9 +59,8 @@
           Bit 5: Disable the temperature report after event triggered (1: Disable, 0: Enable).
        </Help>
     </Value>
-
-    <Value type="byte" index="6" genre="config" label="6. Multi-Sensor Function Switch" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="6" label="6. Multi-Sensor Function Switch" max="127" min="0" type="byte" value="4">
+      <Help>
           Multi-Sensor Function switch. Using bit to control.
           Bit 0: Disable magnetic integrate illumination to turn ON the lighting nodes in the association group 2 (1: Disable, 0: Enable). 
           Bit 1: Reserved always 1 
@@ -47,9 +71,8 @@
           Bit 6: Enable temperature monitoring. When this bit enabled the temperature changed 3 degree Fahrenheit. It will report. And also temp above 140 it will report every 64 seconds.
 	  </Help>
     </Value>
-
-    <Value type="byte" index="7" genre="config" label="7. Customer Function" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="7" label="7. Customer Function" max="127" min="0" type="byte" value="4">
+      <Help>
           Customer function switch, using bit control. 
           Bit 0: Reserve. 
           Bit 1: Enable sending motion OFF report. Note: Depends on the Bit4, 0: Report Notification CC, Type: 0x07, Event: 0xFE 1: Sensor Binary Report, Type: 0x0C, Value: 0x00. 
@@ -61,68 +84,56 @@
           Bit 7: Reserve.
        </Help>
     </Value>
-
-    <Value type="byte" index="9" genre="config" label="9. Turn Off Light Time" units="8 sec" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="9" label="9. Turn Off Light Time" max="127" min="0" type="byte" units="8 sec" value="4">
+      <Help>
           After turn on the lighting, setting the delay time to turn off the lighting when the PIR motion is not detected. 
           8 seconds per tick, default tick is 4 (32 seconds). 0 means never send turn off light command.
        </Help>
     </Value>
- 
-    <Value type="byte" index="10" genre="config" label="10. Auto Report Battery Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="10" label="10. Auto Report Battery Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the battery level. 0 means turn off auto report battery. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
-
-    <Value type="byte" index="11" genre="config" label="11. Auto Report Door/Window State Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="11" label="11. Auto Report Door/Window State Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the door/window state. 0 means turn off auto report door/window state. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="12" genre="config" label="12. Auto Report Illumination Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="12" label="12. Auto Report Illumination Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the illumination. 0 means turn off auto report illumination. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="13" genre="config" label="13. Auto Report Temperature time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="13" label="13. Auto Report Temperature time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the temperature. 0 means turn off auto report temperature. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="20" genre="config" label="20. Auto Report Tick Interval" min="0" max="255" value="30">
+    <Value genre="config" index="20" label="20. Auto Report Tick Interval" max="255" min="0" type="byte" value="30">
       <Help>
           The interval time for auto report each tick. Setting this configuration will effect configuration No.10, No.11, No.12 and No.13. Caution: Setting to 0 means turn off all auto report function.
       </Help>
     </Value>
- 
-
-    <Value type="byte" index="21" genre="config" label="21. Temperature Differential Report" min="0" max="255" value="1">
+    <Value genre="config" index="21" label="21. Temperature Differential Report" max="255" min="0" type="byte" value="1">
       <Help>
           The temperature differential to report. 0 means turn off this function. The unit is Fahrenheit. Enable this function the device will detect every minutes. And when the temperature is over 140 degree Fahrenheit, it will continue report. Enable this functionality will cause some issue please see the detail in the "Temperature Report" section.
       </Help>
     </Value>
- 
-    <Value type="byte" index="22" genre="config" label="22. Illumination Differential Report" min="0" max="255" value="0">
+    <Value genre="config" index="22" label="22. Illumination Differential Report" max="255" min="0" type="byte" value="0">
       <Help>
           The illumination differential to report.0 means turn off this function. The unit is percentage. Enable this function the device will detect every minutes. Enable this functionality will cause some issue please see the detail in the "Illumination Report" section.
       </Help>
     </Value>
- 
   </CommandClass>
-
   <!-- Basic set as report -->
   <!-- <CommandClass id="32" setasreport="true" ignoremapping="true"/> -->
  
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="8" label="Reports" />
-      <Group index="2" max_associations="8" label="Light Control" />
+      <Group index="1" label="Reports" max_associations="8"/>
+      <Group index="2" label="Light Control" max_associations="8"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/dlink/dch-z120.xml b/Config/dlink/dch-z120.xml
index 1c2042ad81..304bff4521 100644
--- a/Config/dlink/dch-z120.xml
+++ b/Config/dlink/dch-z120.xml
@@ -1,19 +1,45 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- D-Link: DCH-Z120 -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
- 
+<!-- D-Link: DCH-Z120 --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0108:000D:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/dlink/dch-z120.png</MetaDataItem>
+    <MetaDataItem id="000D" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1152/</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1152/D-Link DCH-Z110_120 manual.pdf</MetaDataItem>
+    <MetaDataItem id="000D" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+Press any key once, the device will awake 10 seconds.</MetaDataItem>
+    <MetaDataItem name="Description">The mydlink Z-Wave Motion Sensor DCH-Z120 has PIR, temperature and illumination, 3 sensors function in one,based on Z-Wave technology.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To add into a Z-Wave network: 
+1. Have Z-Wave  Controller entered inclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave Controller about 20 seconds.</MetaDataItem>
+    <MetaDataItem id="000D" name="Identifier" type="0002">DCH-Z120</MetaDataItem>
+    <MetaDataItem name="Name">D-Link Z-Wave Motion Sensor</MetaDataItem>
+    <MetaDataItem name="ResetDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To reset the device: 
+Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing tamper key four times within 1.5 seconds and do not release the tamper key in the 4th  pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the tamper key. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are excluded and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To remove the device from a Z-Wave network: 
+1. Have Z-Wave  Controller entered exclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the exclusion mode.
+Node ID has been excluded.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1152/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-
-    <Value type="byte" index="2" genre="config" label="Basic Set Level" min="0" max="255" value="255">
+    <Value genre="config" index="2" label="Basic Set Level" max="255" min="0" type="byte" value="255">
       <Help>
           Set the BASIC command value to turn on the light.
           255: always turn on the light. 
           For dimmer equipment 1 to 100 means the light strength. 0 means turn off the light.
 	  </Help>
     </Value>
-
-    <Value type="byte" index="3" genre="config" label="PIR Sensitivity" min="0" max="99" value="80">
+    <Value genre="config" index="3" label="PIR Sensitivity" max="99" min="0" type="byte" value="80">
       <Help>
           PIR sensitivity settings.
           0 means disable the PIR motion.
@@ -22,8 +48,7 @@
           High sensitivity means the sensor can detect over a long distance, but if there is more noise signal in the environment, it will re-trigger too frequently.
 	  </Help>
     </Value>
-    
-    <Value type="byte" index="4" genre="config" label="Light threshold" min="0" max="100" value="99">
+    <Value genre="config" index="4" label="Light threshold" max="100" min="0" type="byte" value="99">
       <Help>
           Set the illumination threshold to turn on the light. When the event is triggered and the environment illumination is lower than the threshold, the device will turn on the light.
           0 means turn off illumination detected function and never turn on the light.
@@ -33,9 +58,8 @@
           * Notice * in none test mode, only the value in 1 to 99 will enable the illumination detected function and update the illumination value.
        </Help>
     </Value>
-	
-    <Value type="byte" index="5" genre="config" label="Operation Mode" min="0" max="127" value="0">
-       <Help>
+    <Value genre="config" index="5" label="Operation Mode" max="127" min="0" type="byte" value="0">
+      <Help>
           Bit 0: Reserved 
           Bit 1: 1 means test mode, 0 means normal mode.
            Notice: This bit only effect by the DIP Switch setting to customer mode, otherwise it decides by DIP Switch setting to Test or Normal Mode.
@@ -48,9 +72,8 @@
           Note: All default to 0.
        </Help>
     </Value>
-
-    <Value type="byte" index="6" genre="config" label="Multi-Sensor Function Switch" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="6" label="Multi-Sensor Function Switch" max="127" min="0" type="byte" value="4">
+      <Help>
           Multi-Sensor Function switch. Using bit to control.
           Bit 0: Reserved. (Default: 0)
           Bit 1: Disable PIR integrate Illumination to turn ON the lighting nodes in the association group 2. (1:Disable, 0:Enable) (Default: 0)
@@ -62,9 +85,8 @@
           Bit 7: Reserved always 0
 	  </Help>
     </Value>
-
-    <Value type="byte" index="7" genre="config" label="Customer Function" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="7" label="Customer Function" max="127" min="0" type="byte" value="4">
+      <Help>
           Customer function switch, using bit control. 
           Bit 0: Reserved always 0. 
           Bit 1: Enable sending motion OFF report. Note: Depends on the Bit4, 0: Report Notification CC, Type: 0x07, Event: 0xFE 1: Sensor Binary Report, Type: 0x0C, Value: 0x00.  (Default: 0)
@@ -76,67 +98,56 @@
           Bit 7: Reserved always 0.
        </Help>
     </Value>
-
-    <Value type="byte" index="8" genre="config" label="PIR Re-Detect Interval Time" units="8 sec" min="1" max="127" value="3">
-       <Help>
+    <Value genre="config" index="8" label="PIR Re-Detect Interval Time" max="127" min="1" type="byte" units="8 sec" value="3">
+      <Help>
           In the normal mode, after the PIR motion detected, setting the re-detect time. 8 seconds per tick, default tick is 3 (24 seconds). Set a suitable value to prevent receiving the trigger signal too frequently. Also can save the battery energy. Notice: If this value bigger than the configuration setting NO. 9 there will be a period after the light turned off where the PIR is not detecting.
        </Help>
     </Value>
-    
-    <Value type="byte" index="9" genre="config" label="Turn Off Light Time" units="8 sec" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="9" label="Turn Off Light Time" max="127" min="0" type="byte" units="8 sec" value="4">
+      <Help>
           After turn on the lighting, setting the delay time to turn off the lighting when the PIR motion is not detected. 
           8 seconds per tick, default tick is 4 (32 seconds). 0 means never send turn off light command.
        </Help>
     </Value>
- 
-    <Value type="byte" index="10" genre="config" label="Auto Report Battery Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="10" label="Auto Report Battery Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the battery level. 0 means turn off auto report battery. The default value is 12. The tick time can be set by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="12" genre="config" label="Auto Report Illumination Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="12" label="Auto Report Illumination Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto reporting of the illumination. 0 means turn off auto report illumination. The default value is 12. The tick time can be set by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="13" genre="config" label="Auto Report Temperature time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="13" label="Auto Report Temperature time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the temperature. 0 means turn off auto report temperature. The default value is 12. The tick time can be set by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="20" genre="config" label="Auto Report Tick Interval" units="mins" min="0" max="255" value="30">
+    <Value genre="config" index="20" label="Auto Report Tick Interval" max="255" min="0" type="byte" units="mins" value="30">
       <Help>
           The interval time for auto report each tick. Setting this configuration will effect configuration No.10, No.11, No.12 and No.13. Caution: Setting to 0 means turn off all auto report function. Default is 30 minutes
       </Help>
     </Value>
- 
-    <Value type="byte" index="21" genre="config" label="Temperature Differential Report" units="deg F" min="0" max="127" value="1">
+    <Value genre="config" index="21" label="Temperature Differential Report" max="127" min="0" type="byte" units="deg F" value="1">
       <Help>
           The temperature differential to report. 0 means turn off this function. The unit is Fahrenheit. Enable this function the device will detect every minutes. And when the temperature is over 140 degree Fahrenheit, it will continue report. Enable this functionality will cause some issue please see the detail in the "Temperature Report" section.
       </Help>
     </Value>
- 
-    <Value type="byte" index="22" genre="config" label="Illumination Differential Report" units="%" min="0" max="99" value="0">
+    <Value genre="config" index="22" label="Illumination Differential Report" max="99" min="0" type="byte" units="%" value="0">
       <Help>
           The illumination differential to report.0 means turn off this function. The unit is percentage. Enable this function the device will detect every minutes. Enable this functionality will cause some issue please see the detail in the "Illumination Report" section.
       </Help>
     </Value>
- 
   </CommandClass>
-
   <!-- Basic set as report -->
   <!-- <CommandClass id="32" setasreport="true" ignoremapping="true"/> -->
  
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="8" label="Reports" />
-      <Group index="2" max_associations="8" label="Light Control" />
+      <Group index="1" label="Reports" max_associations="8"/>
+      <Group index="2" label="Light Control" max_associations="8"/>
     </Associations>
   </CommandClass>
-
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/dlink/dch-z510.xml b/Config/dlink/dch-z510.xml
index 0e59df4167..062bca6e80 100644
--- a/Config/dlink/dch-z510.xml
+++ b/Config/dlink/dch-z510.xml
@@ -1,11 +1,32 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- D-Link: DCH-Z510 Siren -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
- 
+<!-- D-Link: DCH-Z510 Siren --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0108:000A:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/dlink/dch-z510.png</MetaDataItem>
+    <MetaDataItem id="000A" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1262/</MetaDataItem>
+    <MetaDataItem id="000A" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Have Z-Wave™ Controller entered inclusion mode.
+2. Pressing tamper key three times within 1.5 seconds
+to enter the inclusion mode.
+3. After add successful, the LED will light ON 1 second</MetaDataItem>
+    <MetaDataItem name="Name">mydlink Z-Wave Siren</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1262/DCH-Z510_Manual.pdf</MetaDataItem>
+    <MetaDataItem name="Description">The DCH-Z510 mydlink ™ Z-Wave ™ Siren is a wireless siren, based on Z-Wave ™ technology. It is the  Z-Wave™ plus product, it supports the security, OTA... Those newest features of the  Z-Wave™  technology. Z-Wave™   is  a  wireless  communication  protocol  designed  for  home automation,  specifically  to  remotely  control  applications  in  residential and light commercial environments. The technology uses a low-power RF  radio  embedded  or  retrofitted  into  home  lectronics  devices  and systems, such as lighting, home access control, entertainment systems and household appliances. </MetaDataItem>
+    <MetaDataItem id="000A" name="Identifier" type="0004">DCH-Z510</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing tamper key four times within 1.5 seconds and do not release the tamper key in the 4 pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the tamper key. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are excluded and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Have Z-Wave™ Controller entered exclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the exclusion mode.
+Node ID has been excluded.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1262/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="byte" index="7" genre="config" label="Customer Function" min="0" max="127" value="0">
-       <Help>
+    <Value genre="config" index="7" label="Customer Function" max="127" min="0" type="byte" value="0">
+      <Help>
           Bit 0: Reserved 
           Bit 1: Reserved 
           Bit 2: Reserved 
@@ -16,33 +37,30 @@
           Bit 7: Reserved
        </Help>
     </Value>
-    <Value type="list" index="29" genre="config" label="Disable Alarm" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="29" label="Disable Alarm" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
           Disable the alarm function.
           0: Enable Alarm, 1:Disable Alarm,
           Caution: After the power up, this configuration always be 0.
        </Help>
-       <Item label="Enable Alarm" value="0" />
-       <Item label="Disable Alarm" value="1" />
+      <Item label="Enable Alarm" value="0"/>
+      <Item label="Disable Alarm" value="1"/>
     </Value>
-    <Value type="byte" index="31" genre="config" label="31. Alarm Duration" units="30 sec" min="0" max="12" value="6">
-       <Help>
+    <Value genre="config" index="31" label="31. Alarm Duration" max="12" min="0" type="byte" units="30 sec" value="6">
+      <Help>
           Play alarm sound duration.
           1 tick is 30 second. Default is 3 minutes, maximum is 63.5 minutes.
           0: means never auto stop
        </Help>
     </Value>
-  
   </CommandClass>
-
   <!-- Basic set as report -->
   <!-- <CommandClass id="32" setasreport="true" ignoremapping="true"/> -->
  
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="8" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="8"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/dome/0002.xml b/Config/dome/0002.xml
index 222b85240f..d40626ec76 100644
--- a/Config/dome/0002.xml
+++ b/Config/dome/0002.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Water Shutoff Valve
   https://docs.domeha.com/#water-main-shut-off
diff --git a/Config/dome/0083.xml b/Config/dome/0083.xml
index 1f9ee85acd..04e441b693 100644
--- a/Config/dome/0083.xml
+++ b/Config/dome/0083.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Dome Z-Wave Plus Motion Detector
   https://products.z-wavealliance.org/products/1953
diff --git a/Config/dome/0085.xml b/Config/dome/0085.xml
index b344c92c08..5c92670979 100644
--- a/Config/dome/0085.xml
+++ b/Config/dome/0085.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-  <!--
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">  <!--
   Dome Z-Wave Plus Leak Sensor
   https://products.z-wavealliance.org/products/1954
   -->
diff --git a/Config/dome/0086.xml b/Config/dome/0086.xml
index de4cf0d591..af824b1f7c 100644
--- a/Config/dome/0086.xml
+++ b/Config/dome/0086.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Dome Mouser
   https://products.z-wavealliance.org/products/1847
diff --git a/Config/dome/0087.xml b/Config/dome/0087.xml
index 8733d78758..470eb64ee5 100644
--- a/Config/dome/0087.xml
+++ b/Config/dome/0087.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Dome On/Off Plug-In Switch
   https://docs.domeha.com/#on-off-plug-in-switch
diff --git a/Config/dome/0088.xml b/Config/dome/0088.xml
index 7fc0e13037..5b79ec5bc6 100644
--- a/Config/dome/0088.xml
+++ b/Config/dome/0088.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Dome Siren DMS01
   https://docs.domeha.com/#siren
diff --git a/Config/dome/0101.xml b/Config/dome/0101.xml
index fd734ed8ca..21f92c0046 100644
--- a/Config/dome/0101.xml
+++ b/Config/dome/0101.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Dome Door/Window Sensor
   https://docs.domeha.com/#configuration-command-class-parameters
diff --git a/Config/dome/0201.xml b/Config/dome/0201.xml
index a6cf21932f..06b6eff3be 100644
--- a/Config/dome/0201.xml
+++ b/Config/dome/0201.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Dome Door/Window Sensor Pro
   https://products.z-wavealliance.org/products/2399
diff --git a/Config/domitech/zb22uk.xml b/Config/domitech/zb22uk.xml
index d43d712643..5c5fbf9367 100644
--- a/Config/domitech/zb22uk.xml
+++ b/Config/domitech/zb22uk.xml
@@ -3,7 +3,7 @@
 Domitech Smart LED Light Bulb ZB22UK
 http://products.z-wavealliance.org/MarketCertification/File?folder=&filename=MarketCertificationFiles/1543/Instructions_ZB22UK_10222015%20small.pdf
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration -->
   <CommandClass id="112">
     <Value type="list" index="1" genre="config" label="Dim level when light is turned ON" units="" min="0" max="1" size="1" value="0">
@@ -33,4 +33,4 @@ http://products.z-wavealliance.org/MarketCertification/File?folder=&filename=Mar
     </Associations>
   </CommandClass>
 
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/domitech/ze27eu.xml b/Config/domitech/ze27eu.xml
index 812b276738..38eb76d1e0 100644
--- a/Config/domitech/ze27eu.xml
+++ b/Config/domitech/ze27eu.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Domitech Smart LED Retrofit Kit ZE27EU -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
   <!-- Configuration -->
   <CommandClass id="112">
@@ -34,4 +34,4 @@
     </Associations>
   </CommandClass>
 
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/domux/DX1CA-Z.xml b/Config/domux/DX1CA-Z.xml
index b515faa7b5..60e9430b68 100644
--- a/Config/domux/DX1CA-Z.xml
+++ b/Config/domux/DX1CA-Z.xml
@@ -3,7 +3,7 @@
 CO Sensor DX1CA-Z Rebranded Heiman
 http://products.z-wavealliance.org/products/1940
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="3">
diff --git a/Config/domux/DX1CG-Z.xml b/Config/domux/DX1CG-Z.xml
index 4f4b4081a0..39dbbae26b 100644
--- a/Config/domux/DX1CG-Z.xml
+++ b/Config/domux/DX1CG-Z.xml
@@ -3,7 +3,7 @@
 Smart Combustible Gas Sensor DX1CG-Z Rebranded Heiman
 http://products.z-wavealliance.org/products/2070
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="2">
diff --git a/Config/domux/DX1DS-Z.xml b/Config/domux/DX1DS-Z.xml
index 352d513877..0c6027066f 100644
--- a/Config/domux/DX1DS-Z.xml
+++ b/Config/domux/DX1DS-Z.xml
@@ -3,7 +3,7 @@
 Door Sensor DX1DS-Z Rebranded Heiman
 http://products.z-wavealliance.org/products/1797
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="5">
diff --git a/Config/domux/DX1HT-Z.xml b/Config/domux/DX1HT-Z.xml
index 52bfbf6849..ed34f0b5b2 100644
--- a/Config/domux/DX1HT-Z.xml
+++ b/Config/domux/DX1HT-Z.xml
@@ -3,7 +3,7 @@
 Temperature Humidity Sensor DX1HT-Z Rebranded Heiman
 http://products.z-wavealliance.org/products/2321
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="3">
diff --git a/Config/domux/DX1MS-Z.xml b/Config/domux/DX1MS-Z.xml
index 9285e9d98a..bb04fe65ff 100644
--- a/Config/domux/DX1MS-Z.xml
+++ b/Config/domux/DX1MS-Z.xml
@@ -3,7 +3,7 @@
 Motion Sensor DX1MS-Z Rebranded Heiman
 http://products.z-wavealliance.org/products/1801
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="3">
diff --git a/Config/domux/DX1SA-Z.xml b/Config/domux/DX1SA-Z.xml
index cc68331faa..f19cd585e8 100644
--- a/Config/domux/DX1SA-Z.xml
+++ b/Config/domux/DX1SA-Z.xml
@@ -3,7 +3,7 @@
 Smart Smoke Sensor DX1SA-Z Rebranded Heiman
 http://products.z-wavealliance.org/products/1936
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="3">
diff --git a/Config/domux/DX1WL-Z.xml b/Config/domux/DX1WL-Z.xml
index 24460173d1..3e9aaf99b8 100644
--- a/Config/domux/DX1WL-Z.xml
+++ b/Config/domux/DX1WL-Z.xml
@@ -3,7 +3,7 @@
 Flood Sensor DX1WL-Z Rebranded Heiman
 http://products.z-wavealliance.org/products/2322
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="5">
diff --git a/Config/domux/DX2SK-Z.xml b/Config/domux/DX2SK-Z.xml
index e6ab149c90..d1526e37bd 100644
--- a/Config/domux/DX2SK-Z.xml
+++ b/Config/domux/DX2SK-Z.xml
@@ -2,7 +2,7 @@
 <!--
 Smart Plug DX2SK-Z Rebranded Heiman
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="1">
diff --git a/Config/dragontech/wd-100.xml b/Config/dragontech/wd-100.xml
index d70c5acff8..7acee3ec57 100644
--- a/Config/dragontech/wd-100.xml
+++ b/Config/dragontech/wd-100.xml
@@ -1,27 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="4" genre="config" label="Orientation" units="" min="0" max="1" value="0">
-		  <Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0184:3034:4447</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/dragontech/wd-100.png</MetaDataItem>
+    <MetaDataItem id="3034" name="ZWProductPage" type="4447">https://products.z-wavealliance.org/products/1127/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Turn the connected appliance ON/OFF by tapping the switch. Tapping and releasing the upper part of the rocker turns the appliance ON. Tapping and releasing the lower part of the rocker turns the appliance OFF.
+2. Delete(Exclude) the module to/from your Z-Wave network with your primary controller. Please refer to the instructions manual of your gateway or remote controller for details and procedures on how these actions can be done. 
+3. Normally, the sequence is as follows: when the exclusion process is prompted by your primary controller, single click and release the rocker switch.  The controller should show that the action was successful. If the controller shows it was a fail, repeat the procedure.</MetaDataItem>
+    <MetaDataItem id="3034" name="Identifier" type="4447">WD-100</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Dimmer Switch</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Turn the connected lights ON/OFF by tapping the switch. Tapping and releasing the upper part of the rocker turns the appliance ON. Tapping and releasing the lower part of the rocker turns the appliance OFF.
+2. Add(Include) the module to/from your Z-Wave network with your primary controller. Please refer to the instructions manual of your gateway or remote controller for details and procedures on how these actions can be done. 
+3. Normally, the sequence is as follows: when the inclusion process is prompted by your primary controller, single click and release the rocker switch to ON or OFF position.  The controller should show that the action was successful.  If the controller shows it was a fail, repeat the procedure.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1127/WD100 UG 8.29.14.doc</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please use this procedure only in the event that the network primary controller is lost or otherwise inoperable.
+
+All Configuration Parameters can all be restored to their factory default settings by using your primary controller to delete/reset the device.  
+To manually reset, tap the ON button twice quickly and then tap the OFF button twice quickly.  Repeat the procedure to restore the settings to the factory default.
+
+</MetaDataItem>
+    <MetaDataItem name="Description">- Works with incandescent and dimmable florescent (CFL) or LED lighting
+- ON/OFF status and location LED indicator
+- Fits into standard single or multiple gang junction box
+- Keypad can be replaced manually to match color with other wall switches 
+- Over-The-Air firmware upgrade available with compatible gateway, Z-Wave static controller, or PC and software
+- Internal resettable fuse to protect from surge current
+- Manual reset capability
+</MetaDataItem>
+    <MetaDataItem id="3034" name="FrequencyName" type="4447">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1127/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="4" label="Orientation" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 		     The orientation of the ON/OFF on the rocker switch can be inverted by changing the configuration item from 0 to 1
 		  </Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="Levels" units="" min="1" max="99" value="1">
-		  <Help>
+    </Value>
+    <Value genre="config" index="9" label="Levels" max="99" min="1" type="byte" units="" value="1">
+      <Help>
 		    indicates the number of levels the lighting will change when the timer runs out
 		  </Help>
-		</Value>
-		<Value type="byte" index="10" genre="config" label="duration" units="10 ms" min="1" max="255" value="3">
-		  <Help>
+    </Value>
+    <Value genre="config" index="10" label="duration" max="255" min="1" type="byte" units="10 ms" value="3">
+      <Help>
 		    indicates the time duration of each level.  The resolution is 10 milliseconds  for example, a default value of 3 means the timer runs out every 30 milliseconds.
 		  </Help>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-        		<Group index="1" max_associations="5" label="Group #1 for lifeline communications. Max associations=5.  Lifeline association only supports the manual reset event." />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Group #1 for lifeline communications. Max associations=5.  Lifeline association only supports the manual reset event." max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/duwi/05458.xml b/Config/duwi/05458.xml
index 6d1acda260..07038457bd 100644
--- a/Config/duwi/05458.xml
+++ b/Config/duwi/05458.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--http://manuals.zwaveeurope.com/make.php?lang=en&type=&sku=ZME_05458  -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<!--IMPORTANT: Controllers may only allow to configure signed values.
 	    In order to set values in the range  128?255 for parameters 4,  5 and 6 the
diff --git a/Config/duwi/ZWES1000.xml b/Config/duwi/ZWES1000.xml
index 9d77fd2706..bc6f344da5 100644
--- a/Config/duwi/ZWES1000.xml
+++ b/Config/duwi/ZWES1000.xml
@@ -1,8 +1,19 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Taken from http://www.uk-automation.co.uk/pdf/Duwiswitch.pdf -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
+<!--Taken from http://www.uk-automation.co.uk/pdf/Duwiswitch.pdf --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0064:0000:2001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/duwi/ZWES1000.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="2001">https://products.z-wavealliance.org/products/351/</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="2001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">For wireless switching of: light bulbs, HV and LV halogen lamps or electrical equipment (e.g. fans). Combinable with all Z-Wave transmitters and remote controls, with installation in splash-proof  junction box IP 44, can be selectively installed in flush-mounted power points and canopies or triggered directly via wireless rockers. </MetaDataItem>
+    <MetaDataItem name="Name">ZW-ES-1000 - Flush-mount Z-Wave switch</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.duewi.de/index.php?productid=29184</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.duewi.de/index.php?productid=37347</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="2001">ZW-ES-1000</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/338/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/351/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the Duwi device, but it does not respond to requests -->
-  <CommandClass id="38" action="remove" /> 
-
+  <CommandClass action="remove" id="38"/>
 </Product>
diff --git a/Config/duwi/ZWESJ300.xml b/Config/duwi/ZWESJ300.xml
index ff4ba1c8f6..648977618c 100644
--- a/Config/duwi/ZWESJ300.xml
+++ b/Config/duwi/ZWESJ300.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
 <!-- Taken from http://www.uk-automation.co.uk/pdf/DUW_blind.pdf -->
 <!-- Duwi: ZW ESJ Blind Control -->
diff --git a/Config/duwi/zw-edan-300.xml b/Config/duwi/zw-edan-300.xml
new file mode 100644
index 0000000000..453c06a730
--- /dev/null
+++ b/Config/duwi/zw-edan-300.xml
@@ -0,0 +1,17 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0064:0000:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/duwi/zw-edan-300.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/337/</MetaDataItem>
+    <MetaDataItem name="Name">ZW-EDAN-300 - Flush-mount Z-Wave dimmer</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="0001">ZW-EDAN-300</MetaDataItem>
+    <MetaDataItem name="Description">For wireless dimming of: light bulbs, HV and LV halogen lamps  with conventional transformer. Combinable with all Z-Wave transmitters and remote controls. For installation in splash-proof junction box IP 44, can be selectively installed in flush-mounted power points and canopies or triggered directly via wireless rockers.</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.duewi.de/index.php?productid=29184</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.duewi.de/index.php?productid=37321</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/337/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/duwi/zw-zdan-300.xml b/Config/duwi/zw-zdan-300.xml
new file mode 100644
index 0000000000..decd9d64cf
--- /dev/null
+++ b/Config/duwi/zw-zdan-300.xml
@@ -0,0 +1,17 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0064:0000:1001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/duwi/zw-zdan-300.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="1001">https://products.z-wavealliance.org/products/370/</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="1001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="1001">ZW-ZDAN-300</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.duewi.de/index.php?productid=37324</MetaDataItem>
+    <MetaDataItem name="Description">For wireless dimming of: light bulbs, HV and LV halogen lamps with conventional transformer, combinable with all Z-Wave transmitters and remote controls. </MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.duewi.de/index.php?productid=29184</MetaDataItem>
+    <MetaDataItem name="Name">ZW-ZDAN-300 - Z-Wave Plug-in Dimmer</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/370/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/duwi/zwfb.xml b/Config/duwi/zwfb.xml
index e396f4f0d1..c6c1e0ca47 100644
--- a/Config/duwi/zwfb.xml
+++ b/Config/duwi/zwfb.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Popp / Duwi ZW FB Wireless remote control 10-channel -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
 	<!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
 	<CommandClass id="112">
diff --git a/Config/duwi/zwws.xml b/Config/duwi/zwws.xml
new file mode 100644
index 0000000000..b6951dd5bf
--- /dev/null
+++ b/Config/duwi/zwws.xml
@@ -0,0 +1,18 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0064:0000:5002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/duwi/zwws.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="5002">https://products.z-wavealliance.org/products/342/</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="5002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.duewi.de/index.php?productid=37276</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.duewi.de/index.php?productid=29184</MetaDataItem>
+    <MetaDataItem name="Description">For wireless switching, resp. control of: all Z-Wave wireless switch inserts and wireless intermediate plugs, existing installations can also  be expanded without flush-mounted power point,  high flexibility with installation due to extremely flat design, to stick or screw on to various substrates, for installation in existing switch box or clipping-in in multiple combinations.</MetaDataItem>
+    <MetaDataItem name="Name">ZWWS - Z-Wave wall-mounted Wall Switch</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="5002">ZWWS</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/339/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/342/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/ecolink/doorwindow.xml b/Config/ecolink/doorwindow.xml
index 7650e20a06..cf3b743345 100644
--- a/Config/ecolink/doorwindow.xml
+++ b/Config/ecolink/doorwindow.xml
@@ -1,16 +1,50 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Ecolink Door Window Sensor (DWZWAVE2.5-ECO)
 http://products.z-wavealliance.org/products/1498
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Basic set as report-->
-	<CommandClass id="32" setasreport="true"/>    
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="Basic Report"/>
-        </Associations>
-    </CommandClass>
+--><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/014A:0002:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ecolink/doorwindow.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1498/</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Ecolink Door Window Sensor</MetaDataItem>
+    <MetaDataItem name="Description">Ecolink Z-Wave Door/Window Sensor
+
+-Z-Wave Plus certified
+-Frequency 908.42MHz
+-Range up to 100 feet
+-Battery life up to 3 years with 50 openings/closing per day
+-CR123A Lithium battery
+-Input on the sensor for non-powered external contact
+-BOTH brown and white cases included in each box</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0001">DWZWAVE2.5-ECO</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/790/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1498/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1498/D.W. Zwave Manual R1.04.docx</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">If sensor is sleeping, remove the cover to wake up.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Once the controller is in inclusion mode, either remove the battery isolation tab, OR insert the battery to power up the sensor.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Once the controller is in exclusion mode, either remove the battery isolation tab, OR insert the battery to power up the sensor.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">To restore this sensor to factory default settings, follow the instructions in the manual to exclude this sensor from the Z-Wave network. Upon completion of removal from the network the sensor will restore itself to factory default settings automatically.  Use this procedure only in the event that the network primary controller is missing or otherwise inoperable.</MetaDataItem>
+  </MetaData>
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Refresh Battery Level on wakeup-->
+  <CommandClass id="128">
+    <Compatibility>
+      <RefreshOnWakeup>true</RefreshOnWakeup>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Basic Report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/ecolink/firefighter.xml b/Config/ecolink/firefighter.xml
index b1bcac45a7..50f426aa53 100644
--- a/Config/ecolink/firefighter.xml
+++ b/Config/ecolink/firefighter.xml
@@ -1,15 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Ecolink Z-Wave Plus FireFighter
 http://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1827/1%20-%20Ecolink%20FireFighter%20Z-wave%20plus%20Manual%20(standard).pdf
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Basic set as report-->
-	<CommandClass id="32" setasreport="true"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/ecolink/motion.xml b/Config/ecolink/motion.xml
index 22ccec5736..b76e43b4f3 100644
--- a/Config/ecolink/motion.xml
+++ b/Config/ecolink/motion.xml
@@ -1,34 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Ecolink Motion Detector
 http://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1500/Ecolink%20PIR%20Zwave%20Plus%20Manual%20R1.04%20021116kgs.docx
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Basic set as report-->
-	<CommandClass id="32" setasreport="true"/>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Basic Set Report when sensor is restored" min="0" max="1" value="0" size="1">
-            <Help>
+--><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/014A:0001:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ecolink/motion.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1500/</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1500/Ecolink PIR Zwave Plus Manual R1.04 021116kgs.docx</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Once the controller is in inclusion mode, simply remove the battery isolation tab, OR insert the battery, OR press the small button on the back of the Motion Detector.</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0004">PIRZWAVE2.5-ECO</MetaDataItem>
+    <MetaDataItem name="ResetDescription">To restore this sensor to factory default settings, follow the instructions for product exclusion which will reset the sensor upon completion of the process.  Use this procedure only in the event that the network primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">•	For indoor use only
+•	Operating frequency: 908.42 MHz
+•	Operating range: Up to 100 feet (30.5 meters) line-of-sight
+•	Operating temperature: 0˚C to 49˚C, 32˚F to 120˚F (ambient temperature)
+•	Detection radius: 39 feet (see detection region diagram)
+•	Detection angle: 45 degrees in either direction from the sensor’s center
+•	Battery type: 3V Lithium CR123A
+•	Battery life: approximately 3 years 
+•	Passive Infrared (PIR) based technology 
+</MetaDataItem>
+    <MetaDataItem name="Name">Ecolink Motion Detector</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">If the sensor is asleep, simply remove the cover to wake up the sensor for configuration.</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0004">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Once the controller is in exclusion mode, simply remove the battery isolation tab, OR insert the battery, OR press the small button on the back of the Motion Detector.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1500/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Basic Set Report when sensor is restored" max="1" min="0" size="1" type="list" value="0">
+      <Help>
 			Configures the sensor to send or not send Basic Set commands of 0x00 to nodes in Association group 2 turning the devices off when the sensor is in a restored state (i.e. motion not detected).  
 			By default the sensor does NOT send Basic Set commands of 0x00.
 			</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="255"/>
-        </Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Basic Set Report" min="0" max="1" value="0" size="1">
-            <Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="255"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Basic Set Report" max="1" min="0" size="1" type="list" value="0">
+      <Help>
 			Configures the sensor to either to send or not to send Sensor Binary Report commands to Association Group 1 when the sensor is faulted and restored.  
 			</Help>
-            <Item label="Enable Binary Reports" value="0"/>
-            <Item label="Disable Binary Reports" value="255"/>
-        </Value>   		
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="Basic Report"/>
-        </Associations>
-    </CommandClass>
+      <Item label="Enable Binary Reports" value="0"/>
+      <Item label="Disable Binary Reports" value="255"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Basic Report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/ecolink/sensor.xml b/Config/ecolink/sensor.xml
index 06a50c6a6f..6cefcc6752 100644
--- a/Config/ecolink/sensor.xml
+++ b/Config/ecolink/sensor.xml
@@ -1,23 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Ecolink Z-Wave Sensor Z-Wave
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Basic set as report-->
-	<CommandClass id="32" setasreport="true"/>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="991" label="Fault restore" min="0" max="1" value="1" size="1">
-            <Help>Enable/Disable Basic Sets of 0x00 on a fault restore to nodes in Group 2</Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="255"/>
-        </Value>       
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="Basic Report"/>
-        </Associations>
-    </CommandClass>
+--><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/014A:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ecolink/sensor.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/791/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">PIRZWAVE1</MetaDataItem>
+    <MetaDataItem name="Name">Ecolink Motion Sensor</MetaDataItem>
+    <MetaDataItem name="Description">The PIR Motion Sensor transmits to a Z-Wave gateway/controller when it detects movement within its field of view. </MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/791/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="991" instance="1" label="Fault restore" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable/Disable Basic Sets of 0x00 on a fault restore to nodes in Group 2</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="255"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Basic Report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/ecolink/tiltsensor.xml b/Config/ecolink/tiltsensor.xml
new file mode 100644
index 0000000000..2d13adb2a7
--- /dev/null
+++ b/Config/ecolink/tiltsensor.xml
@@ -0,0 +1,37 @@
+<!--
+Ecolink Z-Wave Sensor Z-Wave
+--><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/014A:0003:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ecolink/tiltsensor.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/816/</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0001">TILTZWAVE1</MetaDataItem>
+    <MetaDataItem name="Name">Ecolink Tilt Sensor</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">This sensor determines the state (open or closed) of a door (typically a garage door) using a roller ball switch. The open/closed status is communicated to a Z-Wave Gateway/Controller</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/816/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Basic set as report-->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="991" instance="1" label="Fault restore" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable/Disable Basic Sets of 0x00 on a fault restore to nodes in Group 2</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="255"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Basic Report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/electronicsolutions/dbmz.xml b/Config/electronicsolutions/dbmz.xml
index 0282d298a6..6df113d3a5 100644
--- a/Config/electronicsolutions/dbmz.xml
+++ b/Config/electronicsolutions/dbmz.xml
@@ -1,23 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Electronic Solutions Inc DBMZ Motor Control -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- Electronic Solutions Inc DBMZ Motor Control --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0033:3032:5250</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/electronicsolutions/dbmz.png</MetaDataItem>
+    <MetaDataItem id="3032" name="ZWProductPage" type="5250">https://products.z-wavealliance.org/products/305/</MetaDataItem>
+    <MetaDataItem name="Description">DC Motor Controller for window coverings.Z-Wave DC motor control, packaged in a “Plug &amp; Play” Box. Z-Wave radio allows for bi-directional RF communications with other Z-Wave products in the market. Allows for total switched load of up to 2 Amps at 27VDC.
+
+By utilizing the Z-Wave standard, the DBMZ is guaranteed interoperability between systems and devices from other Z-Wave enabled products.
+
+In order for scene functionality to operate correctly, the calibration sequence MUST be performed. See the technical documentation for more details.
+
+DC Power supply needed, see Power Supplies for selections.
+
+This product has passed a stringent conformance test to assure it meets the Z-Wave standard for complete interoperability with all other devices and controls. </MetaDataItem>
+    <MetaDataItem id="3032" name="FrequencyName" type="5250">Malaysia / India / Hong Kong / CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://elec-solutions.com/products/z-wave/dbmz.html</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://elec-solutions.com/home.html</MetaDataItem>
+    <MetaDataItem name="Name">DC Motor Controller - Window coverings</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/40/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/41/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/42/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/305/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="3032" name="Identifier" type="5250">DBMZ EU</MetaDataItem>
+  </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="list" genre="config" instance="1" index="1" label="Calibration" min="0" max="3" value="0" size="1">
+    <Value genre="config" index="1" instance="1" label="Calibration" max="3" min="0" size="1" type="list" value="0">
       <Help>Unit calibration state</Help>
-      <Item label="Normal" value="0" />
-      <Item label="Calibration" value="1" />
-	  <Item label="Factory default" value="129" />
+      <Item label="Normal" value="0"/>
+      <Item label="Calibration" value="1"/>
+      <Item label="Factory default" value="129"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="2" label="Motor direction" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="2" instance="1" label="Motor direction" max="1" min="0" size="1" type="list" value="0">
       <Help>Unit motor direction state</Help>
-      <Item label="Normal" value="0" />
-      <Item label="Reversed" value="1" />
+      <Item label="Normal" value="0"/>
+      <Item label="Reversed" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="3" label="Tilt feature" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="3" instance="1" label="Tilt feature" max="1" min="0" size="1" type="list" value="0">
       <Help>Unit tilt feature state</Help>
-      <Item label="No" value="0" />
-      <Item label="Yes" value="1" />
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
     </Value>
   </CommandClass>
 </Product>
diff --git a/Config/enblink/ss201-us-w_1308.xml b/Config/enblink/ss201-us-w_1308.xml
new file mode 100644
index 0000000000..98c00281db
--- /dev/null
+++ b/Config/enblink/ss201-us-w_1308.xml
@@ -0,0 +1,16 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/014D:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/enblink/ss201-us-w_1308.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/969/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">SS201-US-W</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Enblink GoogleTV Controller</MetaDataItem>
+    <MetaDataItem name="Description">Enblink turns Google TV into a home automation hub.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/937/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/969/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductPage">http://www.enblink.com/</MetaDataItem>
+  </MetaData>
+</Product>
diff --git a/Config/enerwave/zw15rmplus.xml b/Config/enerwave/zw15rmplus.xml
index af39d884a0..5ee90cda6c 100644
--- a/Config/enerwave/zw15rmplus.xml
+++ b/Config/enerwave/zw15rmplus.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Enerwave ZW15RM Plus http://enerwaveautomation.com/products/smart-outlet-zwave-zw15rm/ -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="1" genre="config" label="LED mode" min="0" max="1" size="1" value="0">
diff --git a/Config/enerwave/zw15s.xml b/Config/enerwave/zw15s.xml
index 885e255585..c839eec85d 100644
--- a/Config/enerwave/zw15s.xml
+++ b/Config/enerwave/zw15s.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Enerwave ZW15S -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value type="byte" index="1" genre="config" label="Toggle LED mode" min="0" max="1" value="0" size="1">
diff --git a/Config/enerwave/zw20r.xml b/Config/enerwave/zw20r.xml
index 5a4118f674..c9a00d0c28 100644
--- a/Config/enerwave/zw20r.xml
+++ b/Config/enerwave/zw20r.xml
@@ -1,12 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Enerwave ZW20R -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- Enerwave ZW20R --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/011A:0603:0101</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/enerwave/zw20r.png</MetaDataItem>
+    <MetaDataItem id="0603" name="ZWProductPage" type="0101">https://products.z-wavealliance.org/products/713/</MetaDataItem>
+    <MetaDataItem id="0603" name="FrequencyName" type="0101">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0603" name="Identifier" type="0101">ZWN-RSM2</MetaDataItem>
+    <MetaDataItem name="Name">Wenzhou MTLC Electric ZWN-RSM2</MetaDataItem>
+    <MetaDataItem name="Description">Smart Lighting Control Module(RSM2) which can be used with traditional switch, for use with incandescent, incandescent, fluorescent, ballast , motor , meet customer's requirements.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.smart-wave.us/product_show.asp?classid=2&amp;ID=34</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/713/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="byte" index="1" genre="config" label="Toggle LED mode" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="1" label="Toggle LED mode" max="1" min="0" size="1" type="byte" value="0">
       <Help>Set to 1 for LED to be in sync with switch.</Help>
-      <Item label="0: LED is on when switch is off" value="0" />
-      <Item label="1: LED is on when switch is on" value="1" />
+      <Item label="0: LED is on when switch is off" value="0"/>
+      <Item label="1: LED is on when switch is on" value="1"/>
     </Value>
   </CommandClass>
 </Product>
diff --git a/Config/enerwave/zw20rm.xml b/Config/enerwave/zw20rm.xml
index 0255498ef4..00abf7b843 100644
--- a/Config/enerwave/zw20rm.xml
+++ b/Config/enerwave/zw20rm.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Enerwave ZW20RM http://enerwaveautomation.com/products/zw20rm/ -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="1" genre="config" label="LED mode" size="1" value="0">
diff --git a/Config/enerwave/zw500d.xml b/Config/enerwave/zw500d.xml
index abf9a671d8..432c7e27e9 100644
--- a/Config/enerwave/zw500d.xml
+++ b/Config/enerwave/zw500d.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Enerwave ZW500D -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value type="byte" index="1" genre="config" label="Toggle LED mode" min="0" max="1" value="0" size="1">
diff --git a/Config/enerwave/zwn-bpc.xml b/Config/enerwave/zwn-bpc.xml
index e26ab146ee..0567282910 100644
--- a/Config/enerwave/zwn-bpc.xml
+++ b/Config/enerwave/zwn-bpc.xml
@@ -1,18 +1,17 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
-
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <CommandClass id="112">
-    <Value genre="config" instance="1" index="0" value="0" label="Off time" units="" size="1" min="0" max="255" type="byte">
+    <Value genre="config" index="0" instance="1" label="Off time" max="255" min="0" size="1" type="byte" units="" value="0">
       <Help>Sets the time after triggering the sensor to send the Basic OFF command. 0: Don't send Basic OFF. 1-240: N minutes. 241-255: 15 seconds.</Help>
     </Value>
   </CommandClass>
-
-  <CommandClass id="32" setasreport="true"/>
-
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <CommandClass id="133">
     <Associations num_groups="1">
       <Group index="1" label="Reports" max_associations="5"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/enerwave/zwn-sc7.xml b/Config/enerwave/zwn-sc7.xml
index 90157426d7..9a6183325c 100644
--- a/Config/enerwave/zwn-sc7.xml
+++ b/Config/enerwave/zwn-sc7.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Enerwave ZWN-SC7 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- COMMAND_CLASS_BASIC does not respond to requests -->
   <CommandClass id="32" action="remove" />
 </Product>
diff --git a/Config/enerwave/zwnrsm1plus.xml b/Config/enerwave/zwnrsm1plus.xml
index a03253c336..e7f52c498e 100644
--- a/Config/enerwave/zwnrsm1plus.xml
+++ b/Config/enerwave/zwnrsm1plus.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--Enerwave ZWN-RSM1 PLUS-Smart Single Relay Switch Module http://enerwaveautomation.com/products/zwnrsm1s/ 
 	http://enerwaveautomation.com/wp-content/uploads/products/zwnrsm1s/ZWN-RSM1-Plus-0208160043-02.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="133">
 		<Associations num_groups="2">
diff --git a/Config/enerwave/zwnrsm2plus.xml b/Config/enerwave/zwnrsm2plus.xml
index b458820857..e519f27a93 100644
--- a/Config/enerwave/zwnrsm2plus.xml
+++ b/Config/enerwave/zwnrsm2plus.xml
@@ -8,7 +8,7 @@
         Z-Wave Alliance Product Database info: 
         https://products.z-wavealliance.org/products/2242
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
         <CommandClass id="112">
                 <Value type="short" genre="config" index="3" label="Unsolicited Report Configuration" units="" min="0" max="255" value="0">
diff --git a/Config/eurotronic/eur_cometz.xml b/Config/eurotronic/eur_cometz.xml
index 6b01cbb8bd..29b6210a62 100644
--- a/Config/eurotronic/eur_cometz.xml
+++ b/Config/eurotronic/eur_cometz.xml
@@ -1,22 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-        <CommandClass id="64" >
-                <Instance index="1" />
-                <Value type="list" genre="user" instance="1" index="0" label="Mode" min="0" max="11" value="0" size="1">
-                        <Item label="Off" value="0" />
-                        <Item label="Heat" value="1" />
-                        <Item label="Heat Econ" value="11" />
-                </Value>
-                <SupportedModes>
-                        <Mode index="0" label="Off" />
-                        <Mode index="1" label="Heat" />
-                        <Mode index="11" label="Heat Econ" />
-                </SupportedModes>
-        </CommandClass>
-        <CommandClass id="67" base="0">
-                <Instance index="1" />
-                <Value type="decimal" genre="user" instance="1" index="1" label="Comfort setpoint" units="C" value="0"/>
-                <Value type="decimal" genre="user" instance="1" index="11" label="Energy saving setpoint" units="C" value="0"/>
-        </CommandClass>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="64">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Mode" max="11" min="0" size="1" type="list" value="0">
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+      <Item label="Heat Econ" value="11"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+      <Mode index="11" label="Heat Econ"/>
+    </SupportedModes>
+  </CommandClass>
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Comfort setpoint" type="decimal" units="C" value="0"/>
+    <Value genre="user" index="11" instance="1" label="Energy saving setpoint" type="decimal" units="C" value="0"/>
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/eurotronic/eur_spiritz.xml b/Config/eurotronic/eur_spiritz.xml
index 86b1b2c7cd..7cb56279c2 100644
--- a/Config/eurotronic/eur_spiritz.xml
+++ b/Config/eurotronic/eur_spiritz.xml
@@ -1,110 +1,110 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Eurotronic Spirit Z-Wave Plus Thermostat
 Product website: https://www.eurotronic.org/produkte/spirit-z-wave-plus.html
 Tech manual: https://www.eurotronic.org/fileadmin/user_upload/eurotronic.org/Produktbilder/spirit_z_wave_plus/Spirit_Z-Wave_BAL_web_EN_view_04.pdf
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/' >
-    <!-- Multilevel switch for setting valve opening -->
-    <CommandClass id="38">
-        <Value type="byte" genre="user" index="0" label="Valve Opening" units="%" min="0" max="100" value="0" />
-    </CommandClass>
-
-    <!-- Thermostat mode -->
-    <CommandClass id="64">
-        <Instance index="1" />
-        <Value type="list" genre="user" instance="1" index="0" label="Mode">
-            <Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Multilevel switch for setting valve opening -->
+  <CommandClass id="38">
+    <Value genre="user" index="0" label="Valve Opening" max="100" min="0" type="byte" units="%" value="0"/>
+  </CommandClass>
+  <!-- Thermostat mode -->
+  <CommandClass id="64">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Mode" type="list">
+      <Help>
                 Off: No heating, only frost protection.
                 Heat: Room temperature will be kept at the configured setpoint.
                 Heat Eco: Energy save heating mode. Room temperature will be lowered to the configured eco setpoint in order to save energy.
                 Full Power: Full power heating. This mode is left automatically after 5 minutes.
                 Manufacturer Specific: Direct valve control mode. The valve opening percentage can be controlled using the switch multilevel command class.
             </Help>
-            <Item label="Off" value="0" />
-            <Item label="Heat" value="1" />
-            <Item label="Heat Eco" value="11" />
-            <Item label="Full Power" value="15" />
-            <Item label="Manufacturer Specific" value="31" />
-        </Value>
-        <SupportedModes>
-            <Mode index="0" label="Off" />
-            <Mode index="1" label="Heat" />
-            <Mode index="11" label="Heat Eco" />
-            <Mode index="15" label="Full Power" />
-            <Mode index="31" label="Manufacturer Specific" />
-        </SupportedModes>
-    </CommandClass>
-
-    <!-- Setpoints typeInterpretation="A" -->
-    <CommandClass id="67" base="0" >
-        <Instance index="1"/>
-        <Value type="decimal" genre="user" instance="1" index="1" label="Heat" units="&#x00b0;C" read_only="false" write_only="false" min="8" max="28" value="20"/>
-        <Value type="decimal" genre="user" instance="1" index="11" label="Heat Eco" units="&#x00b0;C" read_only="false" write_only="false" min="8" max="28" value="16"/>
-    </CommandClass>
-
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Instance index="1"/>
-        <Value type="list" genre="config" instance="1" index="1" label="LCD Invert" min="0" max="1" value="0" size="1">
-            <Help>
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+      <Item label="Heat Eco" value="11"/>
+      <Item label="Full Power" value="15"/>
+      <Item label="Manufacturer Specific" value="31"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+      <Mode index="11" label="Heat Eco"/>
+      <Mode index="15" label="Full Power"/>
+      <Mode index="31" label="Manufacturer Specific"/>
+    </SupportedModes>
+  </CommandClass>
+  <!-- Setpoints -->
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heat" max="28" min="8" read_only="false" type="decimal" units="°C" value="20" write_only="false"/>
+    <Value genre="user" index="11" instance="1" label="Heat Eco" max="28" min="8" read_only="false" type="decimal" units="°C" value="16" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <AltTypeInterpretation>false</AltTypeInterpretation>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Instance index="1"/>
+    <Value genre="config" index="1" instance="1" label="LCD Invert" max="1" min="0" size="1" type="list" value="0">
+      <Help>
                 Allows rotating the LCD contents by 180 degrees.
                 Default: Normal
             </Help>
-            <Item label="Normal" value="0" />
-            <Item label="Upside Down" value="1" />
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="2" label="LCD Timeout" min="0" max="30" units="sec" value="0">
-            <Help>
+      <Item label="Normal" value="0"/>
+      <Item label="Upside Down" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="LCD Timeout" max="30" min="0" type="byte" units="sec" value="0">
+      <Help>
                 0: No Timeout, LCD always on.
                 5-30: Timeout after 5-30s.
                 Default: 0 (LCD always on)
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="3" label="Backlight" min="0" max="1" units="" value="1" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Backlight" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
                 Default: Backlight enabled
             </Help>
-            <Item label="Backlight disabled" value="0" />
-            <Item label="Backlight enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="4" label="Battery Report" min="0" max="1" units="" value="1" size="1">
-            <Help>
+      <Item label="Backlight disabled" value="0"/>
+      <Item label="Backlight enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Battery Report" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
                 Default: Send once a day
             </Help>
-            <Item label="Only send battery status as notification" value="0" />
-            <Item label="Send once a day" value="1" />
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="5" label="Temperature Report Threshold" min="0" max="50" units="0.1&#x00b0;C" value="5">
-            <Help>
+      <Item label="Only send battery status as notification" value="0"/>
+      <Item label="Send once a day" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Temperature Report Threshold" max="50" min="0" type="byte" units="0.1°C" value="5">
+      <Help>
                 0: Don't send temperature automatically.
-                1-50: Report temperature at 0.1-5.0&#x00b0;C temperature difference.
-                Default: 5 (Delta = 0.5&#x00b0;C)
+                1-50: Report temperature at 0.1-5.0°C temperature difference.
+                Default: 5 (Delta = 0.5°C)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="6" label="Valve Opening Percentage Report" min="0" max="100" units="" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Valve Opening Percentage Report" max="100" min="0" type="byte" units="" value="0">
+      <Help>
                 0: Don't send Valve opening percentage automatically.
                 1-100: Report valve opening percentage at a delta of 1-100%.
                 Default: 0
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="7" label="Open Window Detection" min="0" max="3" units="" value="2" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Open Window Detection" max="3" min="0" size="1" type="list" units="" value="2">
+      <Help>
                 Default: Medium sensibility
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Low sensibility" value="1" />
-            <Item label="Medium sensibility" value="2" />
-            <Item label="High sensibility" value="3" />
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="8" label="Measured Temperature Offset" min="0" max="255" units="" value="0">
-            <Help>
-                206-255: -5.0 to -0.1&#x00b0;C.
-                0-50: 0&#x00b0;C-5&#x00b0;C.
+      <Item label="Disabled" value="0"/>
+      <Item label="Low sensibility" value="1"/>
+      <Item label="Medium sensibility" value="2"/>
+      <Item label="High sensibility" value="3"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Measured Temperature Offset" max="255" min="0" type="byte" units="" value="0">
+      <Help>
+                206-255: -5.0 to -0.1°C.
+                0-50: 0°C-5°C.
                 128: External Temperature Sensor.
-                Default: 0 (0.0&#x00b0;C Offset)
+                Default: 0 (0.0°C Offset)
             </Help>
-        </Value>
-    </CommandClass>
+    </Value>
+  </CommandClass>
 </Product>
diff --git a/Config/eurotronic/eur_stellaz.xml b/Config/eurotronic/eur_stellaz.xml
index 5ecaee3426..dac416d5b2 100644
--- a/Config/eurotronic/eur_stellaz.xml
+++ b/Config/eurotronic/eur_stellaz.xml
@@ -1,27 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-        <CommandClass id="64" >
-                <Instance index="1" />
-                <Value type="list" genre="user" instance="1" index="0" label="Mode">
-                        <Item label="Frost Protection" value="0" />
-                        <Item label="Comfort" value="1" />
-                        <Item label="Energy Saving" value="11" />
-                        <Item label="Direct Valve Control" value="31" />
-                </Value>
-                <SupportedModes>
-                        <Mode index="0" label="Frost Protection" />
-                        <Mode index="1" label="Comfort" />
-                        <Mode index="11" label="Energy Saving" />
-                        <Mode index="31" label="Direct Valve Control" />
-                </SupportedModes>
-        </CommandClass>
-        <CommandClass id="67" base="0">
-                <Instance index="1" />
-                <Value type="decimal" genre="user" instance="1" index="0" label="Frost protection setpoint" units="C" />
-				<Value type="decimal" genre="user" instance="1" index="1" label="Comfort setpoint" units="C" />
-                <Value type="decimal" genre="user" instance="1" index="11" label="Energy saving setpoint" units="C" />				
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0148:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/eurotronic/eur_stellaz.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/826/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Stella Z Thermostat</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">Stella Z</MetaDataItem>
+    <MetaDataItem name="Description">Radiator Controller</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/826/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="64">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Mode" type="list">
+      <Item label="Frost Protection" value="0"/>
+      <Item label="Comfort" value="1"/>
+      <Item label="Energy Saving" value="11"/>
+      <Item label="Direct Valve Control" value="31"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Frost Protection"/>
+      <Mode index="1" label="Comfort"/>
+      <Mode index="11" label="Energy Saving"/>
+      <Mode index="31" label="Direct Valve Control"/>
+    </SupportedModes>
+  </CommandClass>
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Frost protection setpoint" type="decimal" units="C"/>
+    <Value genre="user" index="1" instance="1" label="Comfort setpoint" type="decimal" units="C"/>
+    <Value genre="user" index="11" instance="1" label="Energy saving setpoint" type="decimal" units="C"/>
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  
+  				
                <!-- <Value instance="1" index="7" action="remove" />-->
         </CommandClass>
-
 </Product>
diff --git a/Config/everspring/ad146.xml b/Config/everspring/ad146.xml
index 2cf2c5348b..4b0659c8c3 100644
--- a/Config/everspring/ad146.xml
+++ b/Config/everspring/ad146.xml
@@ -1,41 +1,65 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- SmartHome by Everspring In Wall Dimmer - AD146-0 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- SmartHome by Everspring In Wall Dimmer - AD146-0 --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0002:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/ad146.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1057/</MetaDataItem>
+    <MetaDataItem name="Description">The In-Wall Dimmer Module is a Z-Wave enabled device which is fully compatible with any Z-Wave enabled network.  Z-Wave enabled devices displaying the Z-Wave logo can also be used with it regardless of the manufacturer, and ours can also be used in other manufacturer’s Z-Wave enabled networks.  Inclusion of this unit on other manufacturer’s Wireless Controller menu allows remote operation of the unit and the connected load.  Z-Wave node in the system also acts as a repeater, so as to re-transmit the RF signal to ensure that the signal is received by its intended destination by routing the signal around obstacles and radio dead spots.
+
+The In-Wall Dimmer Module is designed to control the on/off status of lighting and appliances load in your house.  The unit also provides dimmer function which is only applicable to light bulbs.  AC 230V voltage, this module can support up to 300W resistive/ incandescent load, or 200W fluorescent load.
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">(This procedure should only be used when the primary controller is no longer operational.)
+1.  Press the link key three times within 1.5 seconds to put the unit into exclusion mode.
+2.  Within 1 second of step 1, press link key again and hold until LED is off (about 5 sec.).
+3.  Node ID is excluded, and the unit is returned to the factory default state.
+</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Put the Z-Wave Controller into inclusion mode.
+2. Press the link key three times within 1.5 seconds to put the unit into inclusion mode.
+</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Dimmer Module</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1057/Manual_AD146-0_20140728.pdf</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1.  Put the Z-Wave Controller into exclusion mode.
+2.  Press the link key three times within 1.5 seconds to put the unit into exclusion mode.
+</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0003">AD146-0</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1057/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="short" index="1" genre="config" label="Basic Set Command value" units="" min="0" max="255" value="255">
+    <Value genre="config" index="1" label="Basic Set Command value" max="255" min="0" type="short" units="" value="255">
       <Help>
 	0 is off. 1 to 99 sets output level at specified value. 
 255 sets output level at last memorized level
       </Help>
     </Value>
-    <Value type="byte" index="2" genre="config" label="Delay Time" units="seconds" min="3" max="25" value="3">
+    <Value genre="config" index="2" label="Delay Time" max="25" min="3" type="byte" units="seconds" value="3">
       <Help>
 	Delaying time to report to Group 1
       </Help>
     </Value>
-    <Value type="byte" index="3" genre="config" label="Last Status" units="" min="0" max="1" value="1">
+    <Value genre="config" index="3" label="Last Status" max="1" min="0" type="byte" units="" value="1">
       <Help>
 	Remember the last status: 0 (do not remember) | 1 (remember)
       </Help>
     </Value>
-    <Value type="byte" index="4" genre="config" label="Switching type" units="" min="0" max="1" value="0">
+    <Value genre="config" index="4" label="Switching type" max="1" min="0" type="byte" units="" value="0">
       <Help>
 	0: Single Pole Double Throw (1: Toggle switch)
       </Help>
     </Value>
-    <Value type="byte" index="5" genre="config" label="Output Mode" units="" min="0" max="1" value="0">
+    <Value genre="config" index="5" label="Output Mode" max="1" min="0" type="byte" units="" value="0">
       <Help>
 	Output mode setting: 0 (dimming) | 1 (on/off)
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="1" label="Reports" />
-      <Group index="2" max_associations="4" label="Basic"/>
+      <Group index="1" label="Reports" max_associations="1"/>
+      <Group index="2" label="Basic" max_associations="4"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/everspring/ad147.xml b/Config/everspring/ad147.xml
index 290b95f4db..3db251863f 100644
--- a/Config/everspring/ad147.xml
+++ b/Config/everspring/ad147.xml
@@ -1,37 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EVERSPRING AD147 Dimming MODULE -->
-<!-- Information from http://www.pepper1.net/zwavedb/device/686 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- EVERSPRING AD147 Dimming MODULE --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0003:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/ad147.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1065/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Put the Z-Wave Controller into exclusion mode.
+2. Press the link key three times within 1.5 seconds to put the unit into exclusion mode. (Please refer to the documentation for the location of the link key.)
+</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Put the Z-Wave Controller into inclusion mode.
+2. Press the link key three times within 1.5 seconds to put the unit into inclusion mode. (Please refer to the documentation for the location of the link key.)
+</MetaDataItem>
+    <MetaDataItem name="Name">Dimmer Plug</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1065/Manual_AD147_20140728.pdf</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0003">AD147-6</MetaDataItem>
+    <MetaDataItem name="ResetDescription">(This procedure should only be used when the network primary controller is inoperable.)
+1. Press the link key three times within 1.5 seconds to put the unit into exclusion mode.
+2. Within 1 second of step 1, press link key again and hold it until LED is off (about 5 seconds). (Please refer to the documentation for the location of the link key.)
+3. Node ID is excluded.  The device reverts to factory default state and will be in auto-inclusion mode for 4 minutes.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">NR</MetaDataItem>
+    <MetaDataItem name="Description">The mini Dimmer Plug is a Z-Wave enabled device which is fully compatible with any Z-Wave enabled network.  Z-Wave enabled devices displaying the Z-Wave logo can also be used with it regardless of the manufacturer, and ours can also be used in other manufacturer’s Z-Wave enabled networks.  Inclusion of this unit on other manufacturer’s Wireless Controller menu allows remote operation of the unit and the connected load.
+
+The mini Dimmer Plug is designed to control the on/off status of lighting and appliances load in your house.  The unit also provides dimmer function which is only applicable to light bulbs.  At 220-240V voltage, this Dimmer Plug can support connected load of 6 - 250W.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1065/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="short" index="1" genre="config" label="Basic Set Command value" units="" min="0" max="255" value="255">
+    <Value genre="config" index="1" label="Basic Set Command value" max="255" min="0" type="short" units="" value="255">
       <Help>
 	0 is off. 1 to 99 sets output level at specified value. 
 255 sets output level at last memorized level
       </Help>
     </Value>
-    <Value type="byte" index="2" genre="config" label="Delay Time" units="seconds" min="3" max="25" value="3">
+    <Value genre="config" index="2" label="Delay Time" max="25" min="3" type="byte" units="seconds" value="3">
       <Help>
 	Delaying time to report to Group 1
       </Help>
     </Value>
-    <Value type="byte" index="3" genre="config" label="Last Status" units="" min="0" max="1" value="1">
+    <Value genre="config" index="3" label="Last Status" max="1" min="0" type="byte" units="" value="1">
       <Help>
 	Remember the last status: 0 (do not remember) | 1 (remember)
       </Help>
     </Value>
-    <Value type="byte" index="4" genre="config" label="Output Mode" units="" min="0" max="1" value="0">
+    <Value genre="config" index="4" label="Output Mode" max="1" min="0" type="byte" units="" value="0">
       <Help>
 	Output mode setting: 0 (dimming) | 1 (on/off)
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="1" label="Reports" />
-      <Group index="2" max_associations="4" label="Basic"/>
+      <Group index="1" label="Reports" max_associations="1"/>
+      <Group index="2" label="Basic" max_associations="4"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/everspring/an145.xml b/Config/everspring/an145.xml
index 7e88aeb22f..3a87ca7cd8 100644
--- a/Config/everspring/an145.xml
+++ b/Config/everspring/an145.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- EVERSPRING AN145 SCREW-IN ON/OFF MODULE -->
-<!-- Information from http://www.pepper1.net/zwavedb/device/57 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters not supported -->
 	<!-- Association Groups -->
 	<CommandClass id="133">
diff --git a/Config/everspring/an157.xml b/Config/everspring/an157.xml
new file mode 100644
index 0000000000..5df638b5cb
--- /dev/null
+++ b/Config/everspring/an157.xml
@@ -0,0 +1,24 @@
+<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/an157.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/895/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0004">Malaysia / Hong Kong / U.S. / Canada / Mexico / U.S. / Canada / Mexico / CEPT (Europe) / CEPT (Europe) / CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.everspring.com/AN145.aspx</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/AN145.aspx</MetaDataItem>
+    <MetaDataItem name="Description">he AN145-1 Screw-in On/OFF Module is a transceiver which is a Z-Wave TM enabled device and is fully compatiable with any Z-WAVE TM enabled network. The Plug type of AN145-1 is E26</MetaDataItem>
+    <MetaDataItem name="Name">Lamp Holder</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/33/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/34/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/207/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/214/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/215/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/274/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/276/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/895/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0001" name="Identifier" type="0004">AN145-1_Ever_0910</MetaDataItem>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/everspring/an158.xml b/Config/everspring/an158.xml
index 49e3b589c2..2a24511c13 100644
--- a/Config/everspring/an158.xml
+++ b/Config/everspring/an158.xml
@@ -1,35 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EVERSPRING AN158 ON/OFF MODULE -->
-<!-- Information from http://www.pepper1.net/zwavedb/device/54 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- EVERSPRING AN158 ON/OFF MODULE --><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0002:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/an158.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/871/</MetaDataItem>
+    <MetaDataItem name="Name">ON/OFF Plug with power metering</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0004">CEPT (Europe) / Russia</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/AN158.aspx</MetaDataItem>
+    <MetaDataItem name="Description">This wireless plug-in ON/OFF Module is a transceiver which is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. Z-Wave enabled devices displaying the Z-Wave logo can also be used with it regardless of the manufacturer, and ours can also be used in other manufacturer’s Z-Wave enabled networks. Remote On/Off control of the connected load is possible with other manufacturer’s Wireless Controller. Each module is designed to act as a repeater.  Repeaters will re-transmit the RF signal to ensure that the signal is received by its intended destination by routing the signal around obstacles and radio dead spots. The plug-in ON/OFF Module is compatible with Everspring’s Motion Detectors SP814 and Door/Window Detectors SM103.</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0004">AN158-A</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/213/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/639/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/871/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductSupport">http://www.everspring.com.tw/contact-us/index.asp</MetaDataItem>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="short" index="1" genre="config" label="True Period" units="100ms" min="0" max="120" value="10">
+    <Value genre="config" index="1" label="True Period" max="120" min="0" type="short" units="100ms" value="10">
       <Help>
 	This is the time the switching status needs to remain
 unchanged after a change to cause the device to send out a status
 message. 0 is Disabled.
       </Help>
     </Value>
-    <Value type="byte" index="2" genre="config" label="Send Out Basic Command" units="" min="0" max="1" value="0">
+    <Value genre="config" index="2" label="Send Out Basic Command" max="1" min="0" type="byte" units="" value="0">
       <Help>
 	Enable or Disable Send Basic Command to Group 2 when the local
 button press changes the switching state.
       </Help>
     </Value>
-    <Value type="short" index="3" genre="config" label="Meter Report Period" units="10s" min="0" max="3240" value="3">
+    <Value genre="config" index="3" label="Meter Report Period" max="3240" min="0" type="short" units="10s" value="3">
       <Help>
 	The device will report its meter value within the interval
 set. Set to 0 will disable the autoreporting function.
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="1" label="Reports" />
-      <Group index="2" max_associations="4" label="Basic" />
+      <Group index="1" label="Reports" max_associations="1"/>
+      <Group index="2" label="Basic" max_associations="4"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/everspring/an163.xml b/Config/everspring/an163.xml
index 52744652c3..47960d3c9d 100644
--- a/Config/everspring/an163.xml
+++ b/Config/everspring/an163.xml
@@ -1,42 +1,51 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 EVERSPRING AN163 PLUG-IN ON/OFF MODULE WITH METERING 
 https://products.z-wavealliance.org/products/979
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0005:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/an163.png</MetaDataItem>
+    <MetaDataItem id="0005" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/979/</MetaDataItem>
+    <MetaDataItem name="Name">On/Off Plug with metering</MetaDataItem>
+    <MetaDataItem id="0005" name="Identifier" type="0004">AN163-1</MetaDataItem>
+    <MetaDataItem id="0005" name="FrequencyName" type="0004">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">This plug-in ON/OFF Module is able to detect current wattage (5~1440W) and overload wattage (1460~1580W) of connected non-dimmable lights or appliances.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/979/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="byte" index="1" genre="config" label="True Period" units="100ms" min="0" max="120" value="10">
+    <Value genre="config" index="1" label="True Period" max="120" min="0" type="byte" units="100ms" value="10">
       <Help>
 	      This is the time the switching status needs to remain unchanged after a change to cause the device to send out a status message. 0 is Disabled.
       </Help>
     </Value>
-    <Value type="list" index="2" genre="config" label="Send Out Basic Command" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="2" label="Send Out Basic Command" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
 	      Enable or Disable Send Basic Command to Group 2 when the local button press changes the switching state.
       </Help>
-	    <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
     </Value>
-    <Value type="short" index="3" genre="config" label="Meter Report Period (W)" units="10s" min="0" max="3240" value="3">
+    <Value genre="config" index="3" label="Meter Report Period (W)" max="3240" min="0" type="short" units="10s" value="3">
       <Help>
 	      The device will report its meter value within the interval set. 
 	      Set to 0 will disable the autoreporting function.
       </Help>
     </Value>
-    <Value type="short" index="4" genre="config" label="Meter Report Period (kWh)" units="10s" min="0" max="3240" value="1440">
+    <Value genre="config" index="4" label="Meter Report Period (kWh)" max="3240" min="0" type="short" units="10s" value="1440">
       <Help>
 	      The device will report its meter value within the interval set. 
 	      Set to 0 will disable the autoreporting function.
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="1" label="Lifeline" />
-      <Group index="2" max_associations="4" label="Basic" />
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic" max_associations="4"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/everspring/an179.xml b/Config/everspring/an179.xml
index 73def7a281..f1a2337ff9 100644
--- a/Config/everspring/an179.xml
+++ b/Config/everspring/an179.xml
@@ -1,33 +1,61 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- SmartHome by Everspring In Wall On Off - AN179-0 -->
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0008:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/an179.png</MetaDataItem>
+    <MetaDataItem id="0008" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1058/</MetaDataItem>
+    <MetaDataItem name="Description">The In-Wall On/Off Module is a Z-Wave enabled device which is fully compatible with any Z-Wave enabled network.  Z-Wave enabled devices displaying the Z-Wave logo can also be used with it regardless of the manufacturer, and ours can also be used in other manufacturer’s Z-Wave enabled networks.  Inclusion of this unit on other manufacturer’s Wireless Controller menu allows remote operation of the unit and the connected load.  Z-Wave node in the system also acts as a repeater, so the RF signal can reach its intended receiver by routing around obstacles and radio dead spots.
+
+The In-Wall On/Off Module is designed to control the on/off status of lighting and appliances load in your house.  Two sets of dry contacts provide more wiring applications.  For security, the unit can detect overheating and will turn off relay automatically to avoid damage.  At 230V voltage, this module can support up to 2500W resistive, 1200W incandescent, 700W motor, or 320W (40W*8) fluorescent load.
+</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">NR</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1058/Manual_AN179_20140808.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Put the Z-Wave Controller into inclusion mode.
+2. Press the link key three times within 1.5 seconds to put the unit into inclusion mode.
+</MetaDataItem>
+    <MetaDataItem id="0008" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1.  Put the Z-Wave Controller into exclusion mode.
+2.  Press the link key three times within 1.5 seconds to put the unit into exclusion mode.
+</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall On/Off Switch Module</MetaDataItem>
+    <MetaDataItem id="0008" name="Identifier" type="0004">AN179-0</MetaDataItem>
+    <MetaDataItem name="ResetDescription">(This procedure should only be used when the primary controller is no longer operational.)
+1.  Press the link key three times within 1.5 seconds to put the unit into exclusion mode.
+2.  Within 1 second of step 1, press link key again and hold until LED is off (about 5 sec.).
+3.  Node ID is excluded, and the unit is returned to the factory default state.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1058/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- SmartHome by Everspring In Wall On Off - AN179-0 -->
     <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="short" index="1" genre="config" label="Basic Set" min="0" max="255" size="2" value="255">
-            <Help>Basic Set Command value</Help>
-        </Value>
-        <Value type="short" index="2" genre="config" label="Delay" min="3" max="25" size="2" value="3">
-            <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Basic Set" max="255" min="0" size="2" type="short" value="255">
+      <Help>Basic Set Command value</Help>
+    </Value>
+    <Value genre="config" index="2" label="Delay" max="25" min="3" size="2" type="short" value="3">
+      <Help>
                 The delaying time to report to Group 1
             </Help>
-        </Value>
-        <Value type="list" index="3" genre="config" label="Remember Last" min="0" max="1" size="1" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" label="Remember Last" max="1" min="0" size="1" type="list" value="1">
+      <Help>
                 Remember the last status on plug
             </Help>
-            <Item label="Do not remember" value="0"/>
-            <Item label="Remember" value="1"/>
-        </Value>
-        <Value type="byte" index="4" genre="config" label="Switching type" units="" min="0" max="1" value="0">
+      <Item label="Do not remember" value="0"/>
+      <Item label="Remember" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Switching type" max="1" min="0" type="byte" units="" value="0">
       <Help>
         0: Single Pole Double Throw (1: Toggle switch)
       </Help>
     </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="1" label="Lifeline" />
-            <Group index="2" max_associations="4" label="Basic Set" />
-        </Associations>
-    </CommandClass>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic Set" max_associations="4"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/everspring/an180.xml b/Config/everspring/an180.xml
index 9616a00522..4e567350a1 100644
--- a/Config/everspring/an180.xml
+++ b/Config/everspring/an180.xml
@@ -1,28 +1,54 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- Everspring - AN180-6 - Miniplug On/Off -->
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0007:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/an180.png</MetaDataItem>
+    <MetaDataItem id="0007" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1456/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Put the Z-Wave Controller into inclusion mode.
+2. Press the link key three times within 1.5 seconds to put the unit into inclusion mode.</MetaDataItem>
+    <MetaDataItem id="0007" name="Identifier" type="0004">AN180-2</MetaDataItem>
+    <MetaDataItem name="Name">on/off mini plug</MetaDataItem>
+    <MetaDataItem name="Description">The On/Off Mini Plug is a Z-WaveTM enabled device which is fully compatible with any Z-WaveTM enabled network. Z-WaveTM enabled devices displaying the Z-WaveTM logo can also be used with it regardless of the manufacturer, and ours can also be used in other manufacturer’s Z-WaveTM enabled networks. Inclusion of this unit on other manufacturer’s Wireless Controller menu allows remote operation of the unit and the connected load.
+
+The On/Off Mini Plug is designed to control the on/off status of appliances load in your house.  At 220-240V voltage, this Plug can support up to 1500W resistive.
+</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">NR</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Press the link key three times within 1.5 seconds to put the unit into exclusion mode.
+2. Within 1 second of step 1, press link key again and hold it until LED is off (about 5 seconds).
+3. Node ID is excluded.  The device reverts to factory default state and will be in auto-inclusion mode for 4 minutes.
+4. Use this procedure only in the event that the network primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Put the Z-Wave Controller into exclusion mode.
+2. Press the link key three times within 1.5 seconds to put the unit into exclusion mode.</MetaDataItem>
+    <MetaDataItem id="0007" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1456/Manual_AN180_20150901-A501112261R02-rev.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1066/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1456/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Everspring - AN180-6 - Miniplug On/Off -->
     <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="short" index="1" genre="config" label="Basic Set" min="0" max="255" size="2" value="255">
-            <Help>Basic Set Command value</Help>
-        </Value>
-        <Value type="short" index="2" genre="config" label="Delay" min="3" max="25" size="2" value="3">
-            <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Basic Set" max="255" min="0" size="2" type="short" value="255">
+      <Help>Basic Set Command value</Help>
+    </Value>
+    <Value genre="config" index="2" label="Delay" max="25" min="3" size="2" type="short" value="3">
+      <Help>
                 The delaying time to report to Group 1
             </Help>
-        </Value>
-        <Value type="list" index="3" genre="config" label="Remember Last" min="0" max="1" size="1" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" label="Remember Last" max="1" min="0" size="1" type="list" value="1">
+      <Help>
                 Remember the last status on plug
             </Help>
-            <Item label="Do not remember" value="0"/>
-            <Item label="Remember" value="1"/>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="1" label="Lifeline" />
-            <Group index="2" max_associations="4" label="Basic Set" />
-        </Associations>
-    </CommandClass>
+      <Item label="Do not remember" value="0"/>
+      <Item label="Remember" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic Set" max_associations="4"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/everspring/an181.xml b/Config/everspring/an181.xml
index e6ecfc4d13..21a5244100 100644
--- a/Config/everspring/an181.xml
+++ b/Config/everspring/an181.xml
@@ -1,45 +1,72 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- Everspring - AN181 - Miniplug On/Off with meter function -->
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0006:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/an181.png</MetaDataItem>
+    <MetaDataItem id="0006" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1067/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">(This procedure should only be used when the network primary controller is inoperable.)
+1. Press the link key three times within 1.5 seconds to put the unit into exclusion mode.
+2. Within 1 second of step 1, press link key again and hold it until LED is off (about 5 seconds). (Please refer to the documentation for the location of the link key.)
+3. Node ID is excluded.  The device reverts to factory default state and will be in auto-inclusion mode for 4 minutes..</MetaDataItem>
+    <MetaDataItem name="Name">Metering Mini Plug</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">NR</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Put the Z-Wave Controller into inclusion mode.
+2. Press the link key three times within 1.5 seconds to put the unit into inclusion mode. (Please refer to the documentation for the location of the link key.)
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1067/manual_AN181_20140729.pdf</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Put the Z-Wave Controller into exclusion mode.
+2. Press the link key three times within 1.5 seconds to put the unit into exclusion mode. (Please refer to the documentation for the location of the link key.)
+</MetaDataItem>
+    <MetaDataItem id="0006" name="Identifier" type="0004">AN181-6</MetaDataItem>
+    <MetaDataItem id="0006" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">The Metering Plug is a Z-Wave enabled device which is fully compatible with any Z-Wave enabled network.  Z-Wave enabled devices displaying the Z-Wave logo can also be used with it regardless of the manufacturer, and ours can also be used in other manufacturer’s Z-Wave enabled networks.  Inclusion of this unit on other manufacturer’s Wireless Controller menu allows remote operation of the unit and the connected load.
+
+The Metering Plug is designed to control the on/off status of lighting and appliances load in your house.  For metering the unit can detect up to 10485.75kW/h before resetting to 0 and can support wattage, voltage, ampere, and PF detection. The unit can also detect overload upon which the unit will switch off relay and keep LED flashing until power is off and re-applied.  At 220-240V voltage, this Plug can support up to 2500W resistive, 1200W incandescent, 700W motor, or 320W (40W*8) fluorescent load.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1067/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Everspring - AN181 - Miniplug On/Off with meter function -->
     <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="short" index="1" genre="config" label="Basic Set Command" units="" min="0" max="255" size="2" value="255">
-            <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Basic Set Command" max="255" min="0" size="2" type="short" units="" value="255">
+      <Help>
 	Set Basic Set Command value to be sent to group 2 when switch is turned on.
 
 	When the physical button on the mini-plug is used to turn OFF the switch the value "0" will always be sent to group 2,
 	however this is not the case when the switch is turned off remotely.
 	    </Help>
-        </Value>
-        <Value type="byte" index="2" genre="config" label="Delay" units="seconds" min="3" max="25" size="1" value="3">
-            <Help>
+    </Value>
+    <Value genre="config" index="2" label="Delay" max="25" min="3" size="1" type="byte" units="seconds" value="3">
+      <Help>
                 The delaying time to report to Group 1
             </Help>
-        </Value>
-        <Value type="list" index="3" genre="config" label="Remember Last" units="" min="0" max="1" size="1" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" label="Remember Last" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
                 Remember the last status on plug
             </Help>
-            <Item label="Do not remember" value="0"/>
-            <Item label="Remember" value="1"/>
-        </Value>
-        <Value type="short" index="4" genre="config" label="Wattage Auto Report" units="minutes" min="0" max="32767" size="2" value="1">
-            <Help>Set the interval for wattage auto report (0 = disabled)</Help>
-        </Value>
-        <Value type="short" index="5" genre="config" label="Energy Auto report" units="minutes" min="0" max="32767" size="2" value="60">
-            <Help>Set the interval for kWh auto report (0 = disabled)</Help>
-        </Value>
-        <Value type="short" index="6" genre="config" label="Value of Wattage surpassed" units="watts" min="0" max="2500" size="2" value="0">
-            <Help>Auto report is sent when load surpasses the set value of wattage (0 = disabled)</Help>
-        </Value>
-        <Value type="byte" index="7" genre="config" label="Change of Wattage surpassed" units="%" min="0" max="100" size="1" value="0">
-            <Help>Auto report is sent when the change of wattage surpasses the set percentage (0 = disabled)</Help>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="1" label="Lifeline" />
-            <Group index="2" max_associations="4" label="On/Off control (Button on the mini-plug)" />
-        </Associations>
-    </CommandClass>
+      <Item label="Do not remember" value="0"/>
+      <Item label="Remember" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Wattage Auto Report" max="32767" min="0" size="2" type="short" units="minutes" value="1">
+      <Help>Set the interval for wattage auto report (0 = disabled)</Help>
+    </Value>
+    <Value genre="config" index="5" label="Energy Auto report" max="32767" min="0" size="2" type="short" units="minutes" value="60">
+      <Help>Set the interval for kWh auto report (0 = disabled)</Help>
+    </Value>
+    <Value genre="config" index="6" label="Value of Wattage surpassed" max="2500" min="0" size="2" type="short" units="watts" value="0">
+      <Help>Auto report is sent when load surpasses the set value of wattage (0 = disabled)</Help>
+    </Value>
+    <Value genre="config" index="7" label="Change of Wattage surpassed" max="100" min="0" size="1" type="byte" units="%" value="0">
+      <Help>Auto report is sent when the change of wattage surpasses the set percentage (0 = disabled)</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off control (Button on the mini-plug)" max_associations="4"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/everspring/hac01.xml b/Config/everspring/hac01.xml
index e7acc0a3f3..8a0007e989 100644
--- a/Config/everspring/hac01.xml
+++ b/Config/everspring/hac01.xml
@@ -1,31 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-  <!-- Configuration Parameters -->
-  <CommandClass id="112">
-    <Value type="byte" index="1" genre="config" label="Basic Set Level" units="" min="0" max="99" value="99">
-      <Help>
-        The Basic Set Command is sent with value to have the receiving device recognize the value for controlled level, for example, if the Basic Set Command sent to dimmer with value, the dimmer would activate the luminance according to the value
-        0 : Off
-        1 - 99 : On
-      </Help>
-    </Value>
-    <Value type="bool" index="2" genre="config" label="Amount of delay" units="second" min="0" max="127" value="1">
-      <Help>
-        This is applied to determine the delay time setting to send the Basic Set Off command when the manual switch input at NO (open)
-        0 : immediately Off
-        1 - 127 : delay 1 - 127 second to Off
-      </Help>
-    </Value>
-  </CommandClass>
-
-  <!-- Basic set as report -->
-  <CommandClass id="32" setasreport="true"/>
-
-  <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
-  <CommandClass id="133">
-    <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Reports" />
-    </Associations>
-  </CommandClass>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0116:0001:0010</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/hac01.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0010">https://products.z-wavealliance.org/products/694/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0010">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Small Z-Wave In-Wall Remote Module</MetaDataItem>
+    <MetaDataItem name="Description">This in-wall remote module is a transceiver which is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. Mini size design let the module can easily put into the wall box and still have enough space to install the traditional wall switch. There are many application for the module , one application is connect the 2 wire of manual switch input to most of the wall switch sell in the market , while the connected wall switch been switched ON or OFF , the module will send the correspond signal to the associated devices like Z-Wave switch module HAN01 or any Z-Wave ON/OFF or dimmer module。Another application is connect this module to any traditional wire sensor which has NC/NO manual switch input output, and this will easily convert those wire sensors into wireless Z-wave sensors. 
+With the external antenna let this module have excellent  communicate RF range, and this will let the module not only send signal to the associated device by itself easily but also act as a good routing node in the z-wave mesh network.
+SM103.HSM02
 
+The Module can be connected to resistive load – 2990 watts for U.K. and Denmark, and 3500 watts for Germany, France and Italy. </MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/HAC01.aspx</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0010">HAC01</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.ctc-chromagic.com/?q=contact</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/23/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/694/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
 </Product>
diff --git a/Config/everspring/han01.xml b/Config/everspring/han01.xml
new file mode 100644
index 0000000000..d864263e4c
--- /dev/null
+++ b/Config/everspring/han01.xml
@@ -0,0 +1,20 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:0011</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/han01.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0011">https://products.z-wavealliance.org/products/695/</MetaDataItem>
+    <MetaDataItem name="Description">This in-wall switch module is a transceiver which is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. Mini size design let the module can easily hide itself into the wall box and that will be good for the house decoration. 
+There are many kind of application by using the module to switch AC power On and Off , one main application is the light control. The new smart relay calibration technology can reduce the inrush current caused by the load and let the module work perfectly with many kind of light like incandescent, fluorescent and LED light.  
+
+This in-wall switch module is able to detect overload wattage of connected non-dimmable lights or appliances. When detecting overload state, the Module will be disabled and its On/Off button will be lockout of which LED will flash quickly.  However, disconnect and re-connect the wiring of the Module will reset its overload condition to normal status.
+</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/HAN01.aspx</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0011">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0011">HAN01</MetaDataItem>
+    <MetaDataItem name="Name">Small Z-Wave In-Wall Switch Module</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/695/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/everspring/han02-1.xml b/Config/everspring/han02-1.xml
new file mode 100644
index 0000000000..0d49d485ac
--- /dev/null
+++ b/Config/everspring/han02-1.xml
@@ -0,0 +1,19 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0002:0011</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/han02-1.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0011">https://products.z-wavealliance.org/products/696/</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0011">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/HAN02.aspx</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0011">HAN02-1</MetaDataItem>
+    <MetaDataItem name="Name">Small Z-Wave In-Wall Switch Module With Two Relay</MetaDataItem>
+    <MetaDataItem name="Description">This in-wall switch module is a transceiver which is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. Z-Wave enabled devices displaying the Z-Wave logo can also be used with it regardless of the manufacturer, and ours can also be used in other manufacturer’s Z-Wave enabled networks. Remote On/Off control of the connected load is possible with other manufacturer’s Wireless Controller. 
+
+This in-wall switch module is able to detect overload wattage of connected non-dimmable lights or appliances. When detecting overload state, the Module will be disabled and its On/Off button will be lockout of which LED will flash quickly.  However, disconnect and re-connect the wiring of the Module will reset its overload condition to normal status.
+Two additional digital inputs allow user to manual switch on/off the module for normal operation and can manual execute inclusion/exclusion/association at the first 3 minute when the first power is applied, this can let installer easy to configure even the module already install inside the wall box.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/696/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/everspring/hsp02.xml b/Config/everspring/hsp02.xml
index 0ba17c0c08..39587c2aee 100644
--- a/Config/everspring/hsp02.xml
+++ b/Config/everspring/hsp02.xml
@@ -1,48 +1,71 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/hsp02.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/606/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">Malaysia / Hong Kong / CEPT (Europe) / CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">HSP02</MetaDataItem>
+    <MetaDataItem name="Description">The motion detector is designed with dual detecting mode: security mode and home automation mode.In security mode, the detector can be used as a security device to detect movements. Z-Wave protocol to secure the success of wireless two way communication
+With tamper-proof protection
+Easy install and can corner mount
+Low battery indication
+Very low power consumption (2 years battery life)
+Adjustable PIR detection pattern and sensitivity (pet immunity)
+Built in light sensor to simulate lighting control </MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ctc-chromagic.com/?q=zwave/HSP02</MetaDataItem>
+    <MetaDataItem name="Name">Chromagic (HSP02) Motion Detector</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/24/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/35/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/392/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/606/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductSupport">http://www.ctc-chromagic.com/?q=support</MetaDataItem>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="byte" index="1" genre="config" label="Basic Set Level" units="" min="0" max="99" value="99">
+    <Value genre="config" index="1" label="Basic Set Level" max="99" min="0" type="byte" units="" value="99">
       <Help>
 	When Basic Set Command is sent where contains a value, the receiver will take it for consideration; for instance, if a lamp module is received the Basic Set Command of which value is decisive as to how bright of dim level of lamp module shall be.
       </Help>
     </Value>
-    <Value type="bool" index="2" genre="config" label="Enable/Disable Detecting" min="0" max="3" value="1">
+    <Value genre="config" index="2" label="Enable/Disable Detecting" max="3" min="0" type="bool" value="1">
       <Help>
 	The Detecting function can be Disabled of Enabled.
       </Help>
     </Value>
-    <Value type="byte" index="3" genre="config" label="Sensitivity Level" units="" min="1" max="10" value="6">
+    <Value genre="config" index="3" label="Sensitivity Level" max="10" min="1" type="byte" units="" value="6">
       <Help>
 	1 Means lowest sensitivity and 10 means highest.
       </Help>
     </Value>
-    <Value type="byte" index="4" genre="config" label="Re-trigger Interval Setting" units="Seconds" min="5" max="3600" value="180">
+    <Value genre="config" index="4" label="Re-trigger Interval Setting" max="3600" min="5" type="byte" units="Seconds" value="180">
       <Help>
 	Adjust the interval of being re-triggered afer the detector has	been triggered in seconds.
       </Help>
     </Value>
-    <Value type="byte" index="5" genre="config" label="Lux Level" units="%" min="1" max="100" value="10">
+    <Value genre="config" index="5" label="Lux Level" max="100" min="1" type="byte" units="%" value="10">
       <Help>
 	Sets minimum Lux Level of ambient illumination necessary for Motion Detector to trigger.
       </Help>
     </Value>
-    <Value type="byte" index="6" genre="config" label="On-Off Duration" units="Seconds" min="5" max="3600" value="15">
+    <Value genre="config" index="6" label="On-Off Duration" max="3600" min="5" type="byte" units="Seconds" value="15">
       <Help>
 	The duration determines how long before the module sends an Off after being triggered.
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Basic set as report -->
-  <CommandClass id="32" setasreport="true"/>
-
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="1" label="Reports" />
-      <Group index="2" max_associations="3" label="Control" />
+      <Group index="1" label="Reports" max_associations="1"/>
+      <Group index="2" label="Control" max_associations="3"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/everspring/lptdm1u.xml b/Config/everspring/lptdm1u.xml
new file mode 100644
index 0000000000..3d5c6fad75
--- /dev/null
+++ b/Config/everspring/lptdm1u.xml
@@ -0,0 +1,25 @@
+<Product Revision="9" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/lptdm1u.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1140/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0003">CEPT (Europe) / Hong Kong / U.S. / Canada / Mexico / CEPT (Europe) / CEPT (Europe) / Russia / U.S. / Canada / Mexico / U.S. / Canada / Mexico / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">AD145-1/ Everspring</MetaDataItem>
+    <MetaDataItem name="Description">The AD145 is a lamp holder to receive the Command from the Controller or Routing Slave and through Controller or Routing Slave controls the ON/OFF status of the plug-in lighting fixtures, of which power loading cannot exceed 20W.</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0003">AD145-1</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/AD142.aspx</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.everspring.com/AD126.aspx</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/30/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/32/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/208/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/275/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/277/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/870/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/978/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/992/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="9">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1140/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/everspring/se812.xml b/Config/everspring/se812.xml
index 92ec0d9edd..7b657359ff 100644
--- a/Config/everspring/se812.xml
+++ b/Config/everspring/se812.xml
@@ -1,13 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EVERSPRING SE812 SIREN -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters not supported -->
+<!-- EVERSPRING SE812 SIREN --><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:000C</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/se812.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="000C">https://products.z-wavealliance.org/products/735/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="000C">CEPT (Europe) / U.S. / Canada / Mexico / Australia / New Zealand / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.everspring.com/SE812.aspx</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="000C">TSE07-1</MetaDataItem>
+    <MetaDataItem name="Name">Everspring TSE07-1 Indoor Siren</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/SE812.aspx</MetaDataItem>
+    <MetaDataItem name="Description">Z-WAVE INDOOR SIREN (US)  300 SERIES</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/273/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/584/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/616/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/735/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters not supported -->
 	<!-- Wakeup doesn't respond
 	<CommandClass id="132" create_vars="false" />-->
 	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline" />
-		</Associations>
-	</CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/everspring/sf812.xml b/Config/everspring/sf812.xml
index cf5492db20..e7f2d09920 100644
--- a/Config/everspring/sf812.xml
+++ b/Config/everspring/sf812.xml
@@ -1,12 +1,26 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EVERSPRING SF812 SMOKE DETECTOR -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters not supported -->
+<!-- EVERSPRING SF812 SMOKE DETECTOR --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:000D</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/sf812.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="000D">https://products.z-wavealliance.org/products/618/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/SF812.aspx</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="000D">SF812-ANZ</MetaDataItem>
+    <MetaDataItem name="Name">Smoke Detector</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="000D">CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <MetaDataItem name="Description">The photoelectric Smoke Detector is a Z-Wave enabled device which is fully compatible with any Z-Wave enabled network.  
+
+The detector is designed to sense smoke that comes into the detector chamber.  It does not sense gas, heat, or flame. The working principle is when the smoke detector detects a certain density of smoke, the horn of smoke detector will sound and in the meantime, the detector will emit the signals to the associated devices for further execution.  It can provide precious time for you and your family to escape before a fire spreads. 
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/272/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/618/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters not supported -->
 	<!-- Association Groups -->
-	<CommandClass id="133">
-		<!-- Groups and attributes based on http://www.pepper1.net/zwavedb/uploads/resources/fdeac2e16823d1f80c667ca4cc3ae32253ef4713.pdf -->
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Reports" />
-		</Associations>
-	</CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Reports" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/everspring/sm103.xml b/Config/everspring/sm103.xml
index 3cd32d50ed..b81eecb9d6 100644
--- a/Config/everspring/sm103.xml
+++ b/Config/everspring/sm103.xml
@@ -1,35 +1,56 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="On Level" units="" min="0" max="127" value="99">
-			<Help>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/sm103.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/924/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0002">SM103</MetaDataItem>
+    <MetaDataItem name="Name">Door/Window Sensor</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/SM103.aspx</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0002">CEPT (Europe) / Russia / CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">The Mini Door/Window contact detector consists of two parts; a Detector and a Magnet.  They are designed to be fitted to doors or windows with the Magnet mounted on the opening part and the Detector mounted on the fixed frame. Opening the protected door/window will remove the magnetic field, trigger the Detector and generate an alarm condition, (if the system is armed).
+The Door/Window Detector is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network.
+If several windows need to be protected, adopt the wire according to the placement as mentioned below. This should be wired to the terminal block provided in the battery compartment in series connection. 
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/394/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/921/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/924/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="On Level" max="127" min="0" type="byte" units="" value="99">
+      <Help>
 				Defines the level in the event sent when the sensor is triggered.  Default is 99 (full brightness for a Z-Wave dimmer). 100-127 will set device on to the last value it was when turned off.
 			</Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Off Time" units="seconds" min="0" max="127" value="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="Off Time" max="127" min="0" type="byte" units="seconds" value="1">
+      <Help>
 				On Time sets the number of seconds the sensor stays alerted before the off event is sent.
 			</Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Power Saving" units="" min="0" max="127" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="Power Saving" max="127" min="0" type="byte" units="" value="0">
+      <Help>
 			  	Enable/Disable power saving mode. 0 enables.
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-	<!-- COMMAND_CLASS_ALARM.  This class is supported but is missing from the list reported by the SM103 -->
-	<CommandClass id="113" action="add" getsupported="false" />
-
-	<!-- COMMAND_CLASS_ASSOCIATION. Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Reports" />
-		</Associations>
-	</CommandClass>
-
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM.  This class is supported but is missing from the list reported by the SM103 -->
+  <CommandClass action="add" id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Reports" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/everspring/sp103.xml b/Config/everspring/sp103.xml
index 958d9ef7a3..1f4f0e8327 100644
--- a/Config/everspring/sp103.xml
+++ b/Config/everspring/sp103.xml
@@ -1,10 +1,20 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EVERSPRING SP103 MOTION DETECTOR -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="ON Phase Level" units="" min="0" max="127" value="0">
-			<Help>
+<!-- EVERSPRING SP103 MOTION DETECTOR --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:0101</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/sp103.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0101">https://products.z-wavealliance.org/products/873/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0101">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0101">SP103</MetaDataItem>
+    <MetaDataItem name="Description">The Motion Detector is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. Z-Wave enabled devices displaying the Z-Wave logo can also be used with it regardless of the manufacturer, and ours can also be used in other manufacturer’s Z-Wave enabled networks. This Motion Detector is  controllable to our modules, such as On/Off Module AN135 and Lamp Module AD130. Inclusion of this Motion Detector on other manufacturer’s Wireless Controller menu allows remote turn-on of connected modules and their connected lighting when the Detector is triggered. Z-Wave nodes in the system also act as repeaters if they support that function.</MetaDataItem>
+    <MetaDataItem name="Name">Motion Sensor</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/873/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="ON Phase Level" max="127" min="0" type="byte" units="" value="0">
+      <Help>
 				Phase Level of ON Command
 				The Configuration parameter that can be used to adjust the phase level of ON command is transmitted is Configuration Parameter # 1.
 				This parameter can be configured with the value of 0 through 127.
@@ -14,9 +24,9 @@
 				Note: 0xFF means the device will be on to the last phase before the device was turned off.
 				Information reproduced from: http://www.techstyleuk.co.uk/index_files/sp103_manual.pdf
 			</Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Power Saving" units="" min="0" max="127" value="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="Power Saving" max="127" min="0" type="byte" units="" value="1">
+      <Help>
 				Enabling/Disabling Power Saving Function (for testing)
 				When no movement has been detected for 10 seconds, the SP103 will enter the power saving mode.
 				It can be disabled or enabled power saving function by setting Configuration Parameter # 3.
@@ -24,16 +34,19 @@
 				PS : As long as the batteries have been refitted, the Detector will enable the power saving function automatically.
 				Information reproduced from: http://www.techstyleuk.co.uk/index_files/sp103_manual.pdf
 			</Help>
-		</Value>
-	</CommandClass>
-	<CommandClass id="32" setasreport="true" />
-	<!-- COMMAND_CLASS_ALARM.  This class is supported but is missing from the list reported by the SP103 -->
-	<CommandClass id="113" action="add" />
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<!-- Groups and attributes based on http://www.pepper1.net/zwavedb/device/59 -->
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Motion" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM.  This class is supported but is missing from the list reported by the SP103 -->
+  <CommandClass action="add" id="113"/>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Motion" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/everspring/sp814.xml b/Config/everspring/sp814.xml
index 687cb9092a..3de25455ae 100644
--- a/Config/everspring/sp814.xml
+++ b/Config/everspring/sp814.xml
@@ -1,58 +1,80 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0002:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/sp814.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/977/</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0001">U.S. / Canada / Mexico / CEPT (Europe) / Australia / New Zealand / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">PIR Sensor</MetaDataItem>
+    <MetaDataItem name="Description">The Motion Detector is designed with two detecting sensors, Passive Infra-Red (PIR) sensor and light sensor, to detect movement within a protected area, operating at 868.42 , 908.42, and 921.42 MHz. 
+
+The detector can be used as a security device or home automation device.  When the detector is cooperated with security appliances, the detector is acting as a security device by detecting changes in infra-red radiation levels. If a person moves within or across the devices field of vision, a trigger radio signal will be transmitted to cause full alarm condition in order to frighten intruders away. Alternatively, when the detector is worked with Z-Wave Controller , the detector can be set to perform the role of home automation device by detecting both changes in infra-red radiation levels and percentage of lux levels.  Once night falls, the percentage of ambient illumination is lower than preset value. If a person moves within or across the devices field of vision, a trigger radio signal will be transmitted so as to turn connected lightings for better illumination.
+
+Two mounting methods are provided for varying detection range.  The detector can be mounted on a wall for farther detecting distance but narrower coverage; while for ceiling mounting, shorter detecting distance can be made but desired coverage can be expected at user’s disposal.
+</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0001">SP814-2</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/216/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/617/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/977/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/SP814.aspx</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.everspring.com/SP814.aspx</MetaDataItem>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="byte" index="1" genre="config" label="Basic Set Level" units="" min="0" max="99" value="99">
+    <Value genre="config" index="1" label="Basic Set Level" max="99" min="0" type="byte" units="" value="99">
       <Help>
 	When Basic Set Command is sent where contains a value, the receiver will take it for consideration; for instance, if a lamp module is received the Basic Set Command of which value is decisive as to how bright of dim level of lamp module shall be.
       </Help>
     </Value>
-	<Value type="list" index="2" genre="config" label="Sensor Detecting Function" units="" min="0" max="1" size="1" value="1">
+    <Value genre="config" index="2" label="Sensor Detecting Function" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>The Detecting function can be Disabled of Enabled.</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="3" genre="config" label="Sensitivity Level" size="1" units="" min="1" max="10" value="6">
+    <Value genre="config" index="3" label="Sensitivity Level" max="10" min="1" size="1" type="list" units="" value="6">
       <Help>1 Means lowest sensitivity and 10 means highest.</Help>
-	  <Item label="1" value="1"/>
+      <Item label="1" value="1"/>
       <Item label="2" value="2"/>
-	  <Item label="3" value="3"/>
+      <Item label="3" value="3"/>
       <Item label="4" value="4"/>
-	  <Item label="5" value="5"/>
+      <Item label="5" value="5"/>
       <Item label="6" value="6"/>
-	  <Item label="7" value="7"/>
+      <Item label="7" value="7"/>
       <Item label="8" value="8"/>
-	  <Item label="9" value="9"/>
+      <Item label="9" value="9"/>
       <Item label="10" value="10"/>
     </Value>
-    <Value type="short" index="4" genre="config" label="Re-trigger Interval Setting" units="Seconds" min="5" max="3600" value="5">
+    <Value genre="config" index="4" label="Re-trigger Interval Setting" max="3600" min="5" type="short" units="Seconds" value="5">
       <Help>
 	  Adjust the interval of being re-triggered afer the detector has	been triggered in seconds.
 	  IMPORTANT: Parameter size is 1 5-127 or 2 if value > 127. Any value below 127 will be rejected!
       </Help>
     </Value>
-    <Value type="byte" index="5" genre="config" label="Lux Level" units="%" min="1" max="100" value="10">
+    <Value genre="config" index="5" label="Lux Level" max="100" min="1" type="byte" units="%" value="10">
       <Help>
 	Sets minimum Lux Level of ambient illumination necessary for Motion Detector to trigger.
       </Help>
     </Value>
-    <Value type="short" index="6" genre="config" label="On-Off Duration" units="Seconds" min="5" max="3600" value="5">
+    <Value genre="config" index="6" label="On-Off Duration" max="3600" min="5" type="short" units="Seconds" value="5">
       <Help>
 	  The duration determines how long before the module sends an Off after being triggered.
 	  IMPORTANT: Parameter size is 1 5-127 or 2 if value > 127. Any value below 127 will be rejected!	  
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Basic set as report -->
-  <CommandClass id="32" setasreport="true"/>
-
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="1" label="Lifeline" />
-      <Group index="2" max_associations="3" label="Control" />
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Control" max_associations="3"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/everspring/sp815.xml b/Config/everspring/sp815.xml
index c6faa90120..2b2898fc93 100644
--- a/Config/everspring/sp815.xml
+++ b/Config/everspring/sp815.xml
@@ -1,35 +1,34 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="short" index="1" genre="config" label="Temperature and Humidity Auto Report period setting" units="Minutes" min="0" max="1440" value="30">
-            <Help>
-            </Help>
-        </Value>
-        <Value type="short" index="2" genre="config" label="Re-trigger Interval Setting" units="Seconds" min="10" max="3600" value="180">
-            <Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Temperature and Humidity Auto Report period setting" max="1440" min="0" type="short" units="Minutes" value="30">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="2" label="Re-trigger Interval Setting" max="3600" min="10" type="short" units="Seconds" value="180">
+      <Help>
                 The parameter adjusts the sleep period after the detector has been triggered.
                 No response will be made during this interval if a movement is presented.
                 Longer re-trigger interval will result in longer battery life.
             </Help>
-        </Value>
-        <Value type="short" index="3" genre="config" label="Trigger Off Interval Setting" units="Seconds" min="10" max="3600" value="15">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" label="Trigger Off Interval Setting" max="3600" min="10" type="short" units="Seconds" value="15">
+      <Help>
                 This controls how long the connected lighting will stay on after the motion is detected.
                 This is useful for Group 2 associations where the detector is connected directly to another device such as smartplugs.
             </Help>
-        </Value>
-    </CommandClass>
-
-    <!-- Basic set as report -->
-    <CommandClass id="32" setasreport="true"/>
-
-    <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="1" label="Lifeline" />
-            <Group index="2" max_associations="4" label="Pir Control" />
-        </Associations>
-    </CommandClass>
-
-</Product>
\ No newline at end of file
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Pir Control" max_associations="4"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/everspring/sp816.xml b/Config/everspring/sp816.xml
index 4acb6e40ba..2a53312a07 100644
--- a/Config/everspring/sp816.xml
+++ b/Config/everspring/sp816.xml
@@ -1,18 +1,20 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Everspring Outdoor Motion Detector SP816-1
 https://products.z-wavealliance.org/products/2656
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration not Supported-->
   <!-- Basic set as report -->
-  <CommandClass id="32" setasreport="true"/>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="1" label="Lifeline" />
-      <Group index="2" max_associations="4" label="Control" auto="true"/>
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group auto="true" index="2" label="Control" max_associations="4"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/everspring/st812.xml b/Config/everspring/st812.xml
index eeac5cf0f1..dcd801383a 100644
--- a/Config/everspring/st812.xml
+++ b/Config/everspring/st812.xml
@@ -1,21 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Basic Set Level" units="%" min="0" max="99" value="99">
-			<Help>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:000B</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/st812.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="000B">https://products.z-wavealliance.org/products/736/</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave Flood Sensor (US) 300 Series</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="000B">TST01-1</MetaDataItem>
+    <MetaDataItem name="Name">Everspring TST01-1 Flood Detector</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="000B">CEPT (Europe) / U.S. / Canada / Mexico / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/ST812.aspx</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/217/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/585/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/736/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Basic Set Level" max="99" min="0" type="byte" units="%" value="99">
+      <Help>
 				Defines the level in the Basic Set event sent to group 2 when the sensor is triggered.  Default is 99 (full brightness for a Z-Wave dimmer). 0 disables.
 			</Help>
-		</Value>		
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_ASSOCIATION. Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="1" label="Reports" />
-			<Group index="2" max_associations="3" label="Basic" />
-		</Associations>
-	</CommandClass>
-	<CommandClass id="96" mapping="endpoints" />
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Reports" max_associations="1"/>
+      <Group index="2" label="Basic" max_associations="3"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
-
diff --git a/Config/everspring/st814.xml b/Config/everspring/st814.xml
index ca4187ed85..8ff883014f 100644
--- a/Config/everspring/st814.xml
+++ b/Config/everspring/st814.xml
@@ -1,57 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- https://products.z-wavealliance.org/products/271 -->
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Basic Set Level" units="%" min="0" max="99" value="99">
-			<Help>
+<!-- https://products.z-wavealliance.org/products/271 --><Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:0006</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/st814.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0006">https://products.z-wavealliance.org/products/974/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0006">ST814-2</MetaDataItem>
+    <MetaDataItem name="Description">The Temperature/Humidity Detector is designed to monitor the current temperature and humidity of ambient environment. The reading of temperature/humidity can be reported to you on a regular base at your disposal.  If temperature/humidity reaches set points, the detector will send alerts to associated devices for further execution. The application example will be like this , Step 1 include both ST814 and ON/OFF Z-Wave module (like AN158 or AN157, HAN01…) into a Z-wave controller, Step2 associate ST814 to the ON/OFF Z-Wave module  Step3 connect the power wire of the heater or humidifier to the ON/OFF Z-Wave module and this simple 3 step will let user easy to control the temperature or humidity of the room automatically Since sudden temperature/humidity change may cause health problems to people such as elderly or very young children, Temp./Humid. Detector provides you most up-to-date temperature and humidity reading for you to watch your family’s health.
+</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0006">U.S. / Canada / Mexico / CEPT (Europe) / Russia / CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/ST814.aspx</MetaDataItem>
+    <MetaDataItem name="Name">Temperature/Humidity Sensor</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/271/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/923/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/934/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/974/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductSupport">http://www.everspring.com.tw/contact-us/index.asp</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Basic Set Level" max="99" min="0" type="byte" units="%" value="99">
+      <Help>
 				Defines the level in the Basic Set event sent to group 2 when the sensor is triggered.  Default is 99 (full brightness for a Z-Wave dimmer). 0 disables.
 			</Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Temperature On Trigger" units="degrees" min="-20" max="99" value="30">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="Temperature On Trigger" max="99" min="-20" type="byte" units="degrees" value="30">
+      <Help>
 				Temperature level to trigger when a ON command is sent out. 99 will clear the value.
 			</Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Temperature Off Trigger" units="degrees" min="-20" max="99" value="20">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="Temperature Off Trigger" max="99" min="-20" type="byte" units="degrees" value="20">
+      <Help>
 				Temperature level to trigger when an OFF command is sent out. 99 will clear the value.
 			</Help>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Humidity On Trigger" units="%" min="20" max="99" value="50">
-			<Help>
+    </Value>
+    <Value genre="config" index="4" label="Humidity On Trigger" max="99" min="20" type="byte" units="%" value="50">
+      <Help>
 				Humidity level to trigger when a ON command is sent out. 99 will clear the value.
 			</Help>
-		</Value>
-		<Value type="byte" index="5" genre="config" label="Humidity Off Trigger" units="%" min="20" max="99" value="40">
-			<Help>
+    </Value>
+    <Value genre="config" index="5" label="Humidity Off Trigger" max="99" min="20" type="byte" units="%" value="40">
+      <Help>
 				Humidity level to trigger when a OFF command is sent out. 99 will clear the value.
 			</Help>
-		</Value>
-		<Value type="short" index="6" genre="config" label="Auto Report Time" units="minutes" min="0" max="1439" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="6" label="Auto Report Time" max="1439" min="0" type="short" units="minutes" value="0">
+      <Help>
 				Sets the auto report time interval. 0 disables.
 			</Help>
-		</Value>
-		<Value type="byte" index="7" genre="config" label="Auto Report Temperature" units="degrees" min="0" max="70" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="7" label="Auto Report Temperature" max="70" min="0" type="byte" units="degrees" value="0">
+      <Help>
 				Sets the auto report temperature trigger interval. 0 disables.
 			</Help>
-		</Value>
-		<Value type="byte" index="8" genre="config" label="Auto Report Humidity" units="%" min="0" max="70" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="8" label="Auto Report Humidity" max="70" min="0" type="byte" units="%" value="0">
+      <Help>
 				Sets the auto report humidity trigger interval. 0 disables.
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_ASSOCIATION. Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="1" label="Reports" />
-			<Group index="2" max_associations="3" label="Basic" />
-		</Associations>
-	</CommandClass>
-	<CommandClass id="96" mapping="endpoints" />
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Reports" max_associations="1"/>
+      <Group index="2" label="Basic" max_associations="3"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
-
diff --git a/Config/everspring/st815.xml b/Config/everspring/st815.xml
index e40a727452..a181f6ca92 100644
--- a/Config/everspring/st815.xml
+++ b/Config/everspring/st815.xml
@@ -1,48 +1,63 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Basic Set Level" units="%" min="0" max="99" value="99">
-			<Help>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:0007</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/st815.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0007">https://products.z-wavealliance.org/products/975/</MetaDataItem>
+    <MetaDataItem name="Name">Illumination Sensor</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0007">U.S. / Canada / Mexico / CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/ST815.aspx</MetaDataItem>
+    <MetaDataItem name="Description">The Illumination Sensor is designed to monitor the current illumination of ambient environment. The reading of illumination can be reported to you on a regular base at your disposal. If illumination reaches set points, the sensor will send alerts to associated devices for further execution (such as trigger on connected lightings or remote curtain control). The Illumination Sensor is suitable for use in darkness and outdoor.</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0007">ST815-2</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/210/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/975/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Basic Set Level" max="99" min="0" type="byte" units="%" value="99">
+      <Help>
 				Defines the level in the Basic Set event sent to group 2 when the sensor is triggered.  Default is 99 (full brightness for a Z-Wave dimmer). 0 disables.
 			</Help>
-		</Value>
-		<Value type="short" index="2" genre="config" label="Lux On Trigger" units="LUX" min="0" max="1000" value="300">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="Lux On Trigger" max="1000" min="0" type="short" units="LUX" value="300">
+      <Help>
 				Lux level to trigger when a ON command is sent out. 0 will clear the value.
 			</Help>
-		</Value>
-		<Value type="short" index="3" genre="config" label="Lux Off Trigger" units="LUX" min="0" max="1000" value="500">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="Lux Off Trigger" max="1000" min="0" type="short" units="LUX" value="500">
+      <Help>
 				Lux level to trigger when an OFF command is sent out. 0 will clear the value.
 			</Help>
-		</Value>
-		<Value type="short" index="4" genre="config" label="Lux Timer Off Trigger" units="minutes" min="1" max="480" value="240">
-			<Help>
+    </Value>
+    <Value genre="config" index="4" label="Lux Timer Off Trigger" max="480" min="1" type="short" units="minutes" value="240">
+      <Help>
 				Set Lux timer trigger to send an OFF command. 0 will clear the value.
 			</Help>
-		</Value>
-		<Value type="short" index="5" genre="config" label="Auto Report Time" units="minutes" min="0" max="1439" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="5" label="Auto Report Time" max="1439" min="0" type="short" units="minutes" value="0">
+      <Help>
 				Sets the auto report time interval. 0 disables.
 			</Help>
-		</Value>
-		<Value type="short" index="6" genre="config" label="Auto Report Lux" units="LUX" min="30" max="1000" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="6" label="Auto Report Lux" max="1000" min="30" type="short" units="LUX" value="0">
+      <Help>
 				Sets the auto report Lux interval. 0 disabled.
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_ALARM doesn't respond -->
-	<CommandClass id="113" getsupported="false" />
-
-	<!-- COMMAND_CLASS_ASSOCIATION. Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="1" label="Reports" />
-			<Group index="2" max_associations="3" label="Basic" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM doesn't respond -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Reports" max_associations="1"/>
+      <Group index="2" label="Basic" max_associations="3"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/everspring/tse03.xml b/Config/everspring/tse03.xml
index 1a43146a4c..1c42702d53 100644
--- a/Config/everspring/tse03.xml
+++ b/Config/everspring/tse03.xml
@@ -1,12 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- COMMAND_CLASS_WAKE_UP.  This class is in the list reported by the HEM, but it does not
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0060:0001:0009</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/tse03.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0009">https://products.z-wavealliance.org/products/257/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0009">TSE03-JOEL</MetaDataItem>
+    <MetaDataItem name="Name">TSE03-JOEL - Z-Wave Bell</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave Bell (EU)  300 Series UTSE03A Door Bell Set
+Features：
+◆Adopt Z-Wave protocol to secure the success of  wireless two way communication
+◆USB port to download 45 second of high quality voice files 
+◆Visal and audible alarm indications
+◆Low battery indication
+◆Small form factor
+◆IP44 for the push button
+◆Z-Wave V5.02
+◆Consist of TSE03 Doorbell and TAC06 push button</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.everspring.com/Contact-Us.aspx</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0009">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.everspring.com/UTSE03A.aspx</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/257/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- COMMAND_CLASS_WAKE_UP.  This class is in the list reported by the HEM, but it does not
 	     respond to requests.  It still needs to be supported so that wake up notifications are handled. -->
-	<CommandClass id="132" create_vars="false" />
-	<!-- COMMAND_CLASS_ASSOCIATION. Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Reports" />
-		</Associations>
-	</CommandClass>
+  <CommandClass id="132">
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Reports" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/everspringct/hsm02.xml b/Config/everspringct/hsm02.xml
index 8474c4fec2..a0ce4663fc 100644
--- a/Config/everspringct/hsm02.xml
+++ b/Config/everspringct/hsm02.xml
@@ -1,91 +1,108 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION">
-		<Value type="byte" index="0" genre="config" label="Basic Set Level" units="" min="0" max="99" value="99">
-			<Help>
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0116:0001:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/everspring/hsm02.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/607/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.ctc-chromagic.com/?q=contact</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Magnetic door or window sensor.  Z-Wave protocol to secure the success of wireless two way communication
+Very small size
+With tamper-proof protection
+Easy install
+Low battery indication
+Auto report the open/close status and battery status
+Very low power consumption (3 years battery life)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ctc-chromagic.com/?q=zwave/HSM02</MetaDataItem>
+    <MetaDataItem name="Name">Chromagic (HSM02) Magnetic Sensor</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/14/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/607/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="0" label="Basic Set Level" max="99" min="0" type="byte" units="" value="99">
+      <Help>
 				When Basic Set Command is sent where contains a value, the receiver will
 				take it for consideration; for instance, if a lamp module is received the Basic
 				Set command of which value is decisive as to how bright of dim level of lamp
 				module shall be.
 			</Help>
-		</Value>
-		<Value type="byte" index="1" genre="config" label="Off Delay" units="seconds" min="0" max="127" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="1" label="Off Delay" max="127" min="0" type="byte" units="seconds" value="0">
+      <Help>
 				The Configuration parameter that can be used to adjust the amount of delay
 				before the OFF command is transmitted as Configuration Parameter #2.
 				This parameter can be configured with the value of 0 through 127, where 0
 				means send OFF command immediately and 127 means 127 seconds of
 				delay
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_SENSOR_BINARY. -->
-	<CommandClass id="48" name="COMMAND_CLASS_SENSOR_BINARY">
-		<Value type="bool" index="0" genre="user" label="Magnet open" units="" read_only="true" write_only="false" min="0" max="255" value="">
-			<Help>
+    </Value>
+    <Compatibility/>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SENSOR_BINARY. -->
+  <CommandClass id="48">
+    <Value genre="user" index="0" label="Magnet open" max="255" min="0" read_only="true" type="bool" units="" value="" write_only="false">
+      <Help>
 				Magnets to be opened/closed
 			</Help>
-		</Value>
-	</CommandClass>	
-
-	<!-- COMMAND_CLASS_ALARM. -->
-	<CommandClass id="113" name="COMMAND_CLASS_ALARM">
-		<Instance index="1" />
-		<Instance index="2" />
-		<Value type="byte" genre="user" instance="1" index="0" label="Power Applied" value="2">
-			<Help>
-				Once the power has been applied, Alarm Report Command will be sent to
-				Nodes in Grouping 1 to confirm the power applied status for HSM02.
-			</Help>
-		</Value>
-		<Value type="byte" genre="user" instance="1" index="1" label="low battery" value="255">
-			<Help>
-				When HSM02 automatically wakes up, it will check the battery usage. When
+    </Value>
+    <Compatibility/>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM. -->
+  <CommandClass id="113">
+    <Value genre="user" index="0" instance="1" label="Alarm Type" max="255" min="0" read_only="true" type="byte" units="" value="12" verify_changes="false" write_only="false">
+      <Help>Grouping 1, afterward, LED will light up for 1 sec to remind user when HSM02 is triggered due to open or close incidents.</Help>
+    </Value>
+    <Value genre="user" index="1" instance="1" label="Alarm Report" read_only="true" size="1" type="list" value="0" verify_changes="false" vindex="0" write_only="false">
+      <Help>
+				No alarm : There is no alarm to report. 
+				Power applied : Once the power has been applied, Alarm Report Command will be sent to
+				Nodes in Grouping 1 to confirm the power applied status for HSM02. 
+				Tamper event : Grouping 1, afterward, LED will light up for 1 sec to remind user when HSM02 is
+				triggered due to open or close incidents. 
+				Low battery : When HSM02 automatically wakes up, it will check the battery usage. When
 				low battery is detected, Alarm Report Command will be sent to Nodes in
 				Grouping 1, afterward, LED will light up for 1 sec to remind user when HSM02 is
 				triggered due to open or close incidents.
 			</Help>
-		</Value>
-		<Value type="byte" genre="user" instance="2" index="0" label="Tamper event" value="17">
-			<Help>
-				Grouping 1, afterward, LED will light up for 1 sec to remind user when HSM02 is
-				triggered due to open or close incidents.
-			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_BATTERY. -->
-	<CommandClass id="128" name="COMMAND_CLASS_BATTERY">
-		<Value type="byte" genre="user" index="0" label="Battery Check" units="%" min="20" max="100" value="">
-			<Help>
+      <Item label="No alarm" value="0"/>
+      <Item label="Power applied" value="2"/>
+      <Item label="Tamper event" value="17"/>
+      <Item label="Low battery" value="255"/>
+    </Value>
+    <Compatibility/>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BATTERY. -->
+  <CommandClass id="128">
+    <Value genre="user" index="0" label="Battery Check" max="100" min="20" type="byte" units="%" value="">
+      <Help>
 				The users can also inquire the battery status of the unit by sending
 				BATTERY_GET command via Z-Wave Controller. Once the unit receives the
 				command, it will return BATTERY_REPORT command. The unit will send
 				Battery_Level = 255 (0xFF) command to the Z-Wave Controller to inform that
 				the unit is in low battery status.
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_WAKE_UP. -->
-	<CommandClass id="132" name="COMMAND_CLASS_WAKE_UP" version="1" create_vars="true">
-		<Instance index="1" />
-		<Value type="int" genre="system" instance="1" index="0" label="Wake-up Interval" units="Seconds" read_only="false" write_only="false" min="60" max="1005696000" value="" />
-	</CommandClass>
-
+    </Value>
+    <Compatibility/>
+  </CommandClass>
+  <!-- COMMAND_CLASS_WAKE_UP. -->
+  <CommandClass id="132">
+    <Instance index="1"/>
+    <Value genre="system" index="0" instance="1" label="Wake-up Interval" max="1005696000" min="60" read_only="false" type="int" units="Seconds" value="" write_only="false"/>
+    <Compatibility>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
   <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="1" label="Alarm Reports" >
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Alarm Reports" max_associations="1">
 <!-- Once the power has been applied, Alarm Report Command will be sent to Nodes in Grouping 1 to confirm the power applied status for HSM02. -->
 			</Group>
-			<Group index="2" max_associations="5" label="Basic level" >
+      <Group index="2" label="Basic level" max_associations="5">
 <!-- However, the BASIC_SET command will be also sent to the nodes of Grouping 2. For instance, a lamp module will be turned off after receiving the BASIC_SET command. -->
 			</Group>
-		</Associations>
-	</CommandClass>
-
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/evolve/lfm-20.xml b/Config/evolve/lfm-20.xml
new file mode 100644
index 0000000000..30d7bdfe4a
--- /dev/null
+++ b/Config/evolve/lfm-20.xml
@@ -0,0 +1,14 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0113:3133:5246</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/evolve/lfm-20.png</MetaDataItem>
+    <MetaDataItem id="3133" name="ZWProductPage" type="5246">https://products.z-wavealliance.org/products/1007/</MetaDataItem>
+    <MetaDataItem name="Description">Scene Capable Fixture Relay</MetaDataItem>
+    <MetaDataItem name="Name">Evolve LFM-20</MetaDataItem>
+    <MetaDataItem id="3133" name="Identifier" type="5246">LFM-20</MetaDataItem>
+    <MetaDataItem id="3133" name="FrequencyName" type="5246">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1007/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/evolve/lrm-as.xml b/Config/evolve/lrm-as.xml
index 1714d1daa4..05904ffb3a 100644
--- a/Config/evolve/lrm-as.xml
+++ b/Config/evolve/lrm-as.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
 <!-- Evolve Guest Controls: LRM-AS Wall Dimmer 500W -->
 
diff --git a/Config/evolve/lsm-15.xml b/Config/evolve/lsm-15.xml
index 3b3fe697c4..85e7f5e682 100644
--- a/Config/evolve/lsm-15.xml
+++ b/Config/evolve/lsm-15.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
 <!-- Evolve Guest Controls: LSM-15 Wall Switch -->
 
diff --git a/Config/evolve/ltm-5.xml b/Config/evolve/ltm-5.xml
index 00f5e81e8e..d0596bee63 100644
--- a/Config/evolve/ltm-5.xml
+++ b/Config/evolve/ltm-5.xml
@@ -1,47 +1,73 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Ignore Start-Level (Transmitting)" size="1" value="1">
-			<Help>Dimmers controlled by this switch will start dimming from their current level.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="3" genre="config" label="Night Light" size="1" value="1">
-			<Help>In night-light mode the LED on the switch will turn ON when the switch is turned OFF.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Invert Switch" size="1" value="0">
-			<Help>Change the top of the switch to OFF and the bottom of the switch to ON.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="5" genre="config" label="Ignore Start-Level (Receiving)" size="1" value="1">
-			<Help>This dimmer will start dimming from its current level.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="19" genre="config" label="LED transmission indication" size="1" value="2">
-			<Help>Flicker LED while transmitting.</Help>
-			<Item label="No flicker" value="0" />
-			<Item label="Flicker whole transmission" value="1" />
-			<Item label="Flicker 1 second" value="2" />
-		</Value>
-		<Value type="byte" index="20" genre="config" label="Polling interval" units="minutes" min="1" max="255" value="2">
-			<Help>How often to poll to keep synchronized with group.</Help>
-		</Value>
-		<Value type="list" index="21" genre="config" label="Poll first node in group" size="1" value="0">
-			<Help>Poll only the first node in Group 1.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-	</CommandClass>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0113:3033:5457</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/evolve/ltm-5.png</MetaDataItem>
+    <MetaDataItem id="3033" name="ZWProductPage" type="5457">https://products.z-wavealliance.org/products/155/</MetaDataItem>
+    <MetaDataItem id="3033" name="FrequencyName" type="5457">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3033" name="Identifier" type="5457">LTM-5_1006</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.eguestcontrols.com/products/lighting-devices/ltm-5/</MetaDataItem>
+    <MetaDataItem name="Description">LTM-5 Wall Mounted Transmitter
 
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Group 1" />
-		</Associations>
-	</CommandClass>
+The LTM-5 Wall Mounted Transmitter is a component of the Evolve lighting control system. As it controls no load directly, wire the transmitter anywhere power is available according to the diagram above. Inclusion of the LTM-5 Wall Mounted Transmitter allows remote ON/OFF control and dimming of lights controlled by associated modules.
+
+This Wall Mounted Transmitter is designed to work with other Evolve enabled devices. Evolve nodes of other types can be included in the network and will also act as repeaters to increase the range of the network.
+
+Power Requirements
+120 VAC, 60 Hz
+Specifications
+Signal (Frequency) – 908.42 MHz
+Range – Up to 100 feet line of sight between the Controller and /or the closest Z-Wave Device.
+Z-Wave Version 4.52
+Network Inclusion
+Scene – Command Class
+Security Compatible</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.eguestcontrols.com/products/lighting-devices/lt</MetaDataItem>
+    <MetaDataItem name="Name">LTM-5 - Wall mounted Z-Wave transmitter</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/155/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Ignore Start-Level (Transmitting)" size="1" type="list" value="1">
+      <Help>Dimmers controlled by this switch will start dimming from their current level.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="Night Light" size="1" type="list" value="1">
+      <Help>In night-light mode the LED on the switch will turn ON when the switch is turned OFF.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Invert Switch" size="1" type="list" value="0">
+      <Help>Change the top of the switch to OFF and the bottom of the switch to ON.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Ignore Start-Level (Receiving)" size="1" type="list" value="1">
+      <Help>This dimmer will start dimming from its current level.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="19" label="LED transmission indication" size="1" type="list" value="2">
+      <Help>Flicker LED while transmitting.</Help>
+      <Item label="No flicker" value="0"/>
+      <Item label="Flicker whole transmission" value="1"/>
+      <Item label="Flicker 1 second" value="2"/>
+    </Value>
+    <Value genre="config" index="20" label="Polling interval" max="255" min="1" type="byte" units="minutes" value="2">
+      <Help>How often to poll to keep synchronized with group.</Help>
+    </Value>
+    <Value genre="config" index="21" label="Poll first node in group" size="1" type="list" value="0">
+      <Help>Poll only the first node in Group 1.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Group 1" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/fakro/arz.xml b/Config/fakro/arz.xml
new file mode 100644
index 0000000000..bea11d9d11
--- /dev/null
+++ b/Config/fakro/arz.xml
@@ -0,0 +1,16 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0085:0002:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fakro/arz.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/677/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.fakro.com/htmlen/379.php</MetaDataItem>
+    <MetaDataItem name="Description">The ARZ Z-Wave external roller shutters, powered by 12VDC, have been adapted for wireless cooperation with the Z-Wave system. The shutter is designed for FAKRO roof windows and its installation is possible at any time after roof window installation. It is also possible to use the shutter for roof windows of other manufactures. Installed on the outside of the window, the roller shutter constitutes an optimum solution against overheating and provides additional protection of the window e.g. against falling tree branches etc. The roller shutter enables complete blackout and good sound reduction. It is also good protection from glazing excessive cooling during the winter. The roller shutter also means increased security. It has built-in overload protection and can be controlled by using standard Z-Wave controller.</MetaDataItem>
+    <MetaDataItem name="Name">ARZ Z-Wave Roof Window Roller Shutter</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0002">ARZ </MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/677/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/fakro/zwp10.xml b/Config/fakro/zwp10.xml
index 32ffeb17e3..a37d091490 100644
--- a/Config/fakro/zwp10.xml
+++ b/Config/fakro/zwp10.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Fakro ZWP10 Remote -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="10">
diff --git a/Config/fakro/zwrs.xml b/Config/fakro/zwrs.xml
index cf54e5d589..74656bfbb6 100644
--- a/Config/fakro/zwrs.xml
+++ b/Config/fakro/zwrs.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Fakro ZWRS Roller Shutter FLiRS module -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
     <!-- Association Groups -->
     <CommandClass id="133">
diff --git a/Config/fakro/zws12.xml b/Config/fakro/zws12.xml
index 8ef6ed3136..8a2a5cbb41 100644
--- a/Config/fakro/zws12.xml
+++ b/Config/fakro/zws12.xml
@@ -1,6 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Fakro ZWS12 Chain actuator 12VDC -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- Fakro ZWS12 Chain actuator 12VDC --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0085:0001:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fakro/zws12.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/105/</MetaDataItem>
+    <MetaDataItem name="Name">Fakro CHAIN ACTUATOR ZWS12</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.fakro.com/htmlen/376.php</MetaDataItem>
+    <MetaDataItem name="Description">Window opener 12VDCThe ZWS12 and ZW230 chain motors thanks to their small dimensions and suitable force output are ideal for roof window operating, being fully compatible with the Z-Wave system. The motors can be applied in both centre pivot and top hung and pivot roof windows as well as windows of non-standard dimensions.
+The maximum chain reach is 24cm for ZWS12 and 36cm for ZW230. The motors are equipped with built-in overload protection which acts as a sensor of correct window closing.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.fakro.com/htmlen/376.php</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/105/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
   <!--
   <CommandClass id="112">
@@ -55,11 +67,10 @@
     </Value>
   </CommandClass>
   -->
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/fakro/zws230.xml b/Config/fakro/zws230.xml
index f2625b5301..2cb8fba4bf 100644
--- a/Config/fakro/zws230.xml
+++ b/Config/fakro/zws230.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Fakro ZWS230 Chain actuator 230VAC -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-  <!-- Configuration -->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
+  <!-- Configuration -->  
   <!--
   <CommandClass id="112">
     <Value type="list" genre="config" instance="1" index="7" label="Speed motor I" min="1" max="4" value="2" size="1">
diff --git a/Config/fibaro/fgbs001.xml b/Config/fibaro/fgbs001.xml
index 37f9192028..4b8b65b282 100644
--- a/Config/fibaro/fgbs001.xml
+++ b/Config/fibaro/fgbs001.xml
@@ -1,109 +1,98 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="short" genre="config" instance="1" index="1" label="IN1 Alarm Cancellation Delay" min="0" max="65535" value="0" size="2">
+    <Value genre="config" index="1" instance="1" label="IN1 Alarm Cancellation Delay" max="65535" min="0" size="2" type="short" value="0">
       <Help>Input I alarm cancellation delay. Additional delay after an alarm from input IN1 has ceased. The parameter allows you to specify additional time, after which the input no. 1 alarm is cancelled once its violation has ceased. Default 0.</Help>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="2" label="IN2 Alarm Cancellation Delay" min="0" max="65535" value="0" size="2">
+    <Value genre="config" index="2" instance="1" label="IN2 Alarm Cancellation Delay" max="65535" min="0" size="2" type="short" value="0">
       <Help>Input II alarm cancellation delay. Additional delay after an alarm from input IN1 has ceased. The parameter allows you to specify additional time, after which the input no. 1 alarm is cancelled once its violation has ceased. Default 0.</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="3" label="Type of input no. 1" value="1" size="1">
+    <Value genre="config" index="3" instance="1" label="Type of input no. 1" size="1" type="list" value="1">
       <Help>Type of input no. 1, what the input 1 will report if no contact is made. Default 1.</Help>
-      <Item label="Input NO (Normal Open)" value="0" />
-      <Item label="Input NC (Normal Close)" value="1" />
-      <Item label="Input MONOSTABLE" value="2" />
-      <Item label="Input BISTABLE" value="3" />
+      <Item label="Input NO (Normal Open)" value="0"/>
+      <Item label="Input NC (Normal Close)" value="1"/>
+      <Item label="Input MONOSTABLE" value="2"/>
+      <Item label="Input BISTABLE" value="3"/>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="4" label="Type of input no. 2" value="1" size="1">
+    <Value genre="config" index="4" instance="1" label="Type of input no. 2" size="1" type="list" value="1">
       <Help>Type of input no. 2, what the input 2 will report if no contact is made. Default 1.</Help>
-      <Item label="Input NO (Normal Open)" value="0" />
-      <Item label="Input NC (Normal Close)" value="1" />
-      <Item label="Input MONOSTABLE" value="2" />
-      <Item label="Input BISTABLE" value="3" />
+      <Item label="Input NO (Normal Open)" value="0"/>
+      <Item label="Input NC (Normal Close)" value="1"/>
+      <Item label="Input MONOSTABLE" value="2"/>
+      <Item label="Input BISTABLE" value="3"/>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="5" label="Type of transmitted control frame for association group 1" value="255" size="1">
+    <Value genre="config" index="5" instance="1" label="Type of transmitted control frame for association group 1" size="1" type="list" value="255">
       <Help>Type of transmitted control frame for association group 1, activated via input IN1. The parameter allows to specify the type of alarm frame or to force transmission of control commands (BASIC_SET). Default 255 - BASIC SET.</Help>
-      <Item label="ALARM GENERIC" value="0" />
-      <Item label="ALARM SMOKE" value="1" />
-      <Item label="ALARM CO" value="2" />
-      <Item label="ALARM CO2" value="3" />
-      <Item label="ALARM HEAT" value="4" />
-      <Item label="ALARM WATER" value="5" />
-      <Item label="BASIC_SET" value="255" />
+      <Item label="ALARM GENERIC" value="0"/>
+      <Item label="ALARM SMOKE" value="1"/>
+      <Item label="ALARM CO" value="2"/>
+      <Item label="ALARM CO2" value="3"/>
+      <Item label="ALARM HEAT" value="4"/>
+      <Item label="ALARM WATER" value="5"/>
+      <Item label="BASIC_SET" value="255"/>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="6" label="Type of transmitted control frame for association group 2" value="255" size="1">
+    <Value genre="config" index="6" instance="1" label="Type of transmitted control frame for association group 2" size="1" type="list" value="255">
       <Help>Type of transmitted control frame for association group 2, activated via input IN1. The parameter allows to specify the type of alarm frame or to force transmission of control commands (BASIC_SET). Default 255 - BASIC SET.</Help>
-      <Item label="ALARM GENERIC" value="0" />
-      <Item label="ALARM SMOKE" value="1" />
-      <Item label="ALARM CO" value="2" />
-      <Item label="ALARM CO2" value="3" />
-      <Item label="ALARM HEAT" value="4" />
-      <Item label="ALARM WATER" value="5" />
-      <Item label="BASIC_SET" value="255" />
+      <Item label="ALARM GENERIC" value="0"/>
+      <Item label="ALARM SMOKE" value="1"/>
+      <Item label="ALARM CO" value="2"/>
+      <Item label="ALARM CO2" value="3"/>
+      <Item label="ALARM HEAT" value="4"/>
+      <Item label="ALARM WATER" value="5"/>
+      <Item label="BASIC_SET" value="255"/>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="7" label="Forced Level of Dimming group 1" min="1" max="255" value="255">
+    <Value genre="config" index="7" instance="1" label="Forced Level of Dimming group 1" max="255" min="1" type="byte" value="255">
       <Help>Value of the parameter specifying the forced level of dimming / opening sun blinds when comes "switch on" / "open" command to devices from association group no. 1.
 In the case of alarm frames the alarm priority is specified. Possible parameter settings: (1 to 99) and 255. Value of 255 makes it possible to activate the device when using the Dimmer module it means activating the device and setting it to the previous stored condition, e.g. when Dimmer is set to 30%, then deactivated, and then reactivated using command 255, it will automatically be set to the previous condition, i.e. 30%. Default 255.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="8" label="Forced Level of Dimming group 2" min="1" max="255" value="255">
+    <Value genre="config" index="8" instance="1" label="Forced Level of Dimming group 2" max="255" min="1" type="byte" value="255">
       <Help>Value of the parameter specifying the forced level of dimming / opening sun blinds when comes "switch on" / "open" command to devices from association group no. 2. In the case of alarm frames the alarm priority is specified. Possible parameter settings: (1 to 99) and 255. Value of 255 makes it possible to activate the device when using the Dimmer module it means activating the device and setting it to the previous stored condition, e.g. when Dimmer is set to 30%, then deactivated, and then reactivated using command 255, it will automatically be set to the previous condition, i.e. 30%. Default 255.</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="9" label="Deactivate transmission of frame cancelling alarm" value="0" size="1">
+    <Value genre="config" index="9" instance="1" label="Deactivate transmission of frame cancelling alarm" size="1" type="list" value="0">
       <Help>Deactivating transmission of the frame cancelling the alarm or the control frame deactivating the device (Basic). It allows for disabling the deactivation function or the alarm cancellation function for devices associated with the appropriate input of the Fibaro Sensor. NOTE: Information concerning alarm violation or activation commands for devices from association groups are always sent. Default 0. ATTENTION: Information alarm triggered or command enabled for devices with associative groups are always sent. NOTE: Value "Group 1 not sent, Group 2 not sent" is only available in version 2.1 and up</Help>
-      <Item label="Groups 1 and 2 sent" value="0" />
-      <Item label="Group 1 sent, Group 2 not sent." value="1" />
-      <Item label="Group 1 not sent, Group 2 sent." value="2" />
-      <Item label="Group 1 not sent, Group 2 not sent." value="3" />
+      <Item label="Groups 1 and 2 sent" value="0"/>
+      <Item label="Group 1 sent, Group 2 not sent." value="1"/>
+      <Item label="Group 1 not sent, Group 2 sent." value="2"/>
+      <Item label="Group 1 not sent, Group 2 not sent." value="3"/>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="10" label="Interval between successive readings of temperature sensors" min="1" max="255" value="20">
+    <Value genre="config" index="10" instance="1" label="Interval between successive readings of temperature sensors" max="255" min="1" type="byte" value="20">
       <Help>Interval between successive readings of temperature from all sensors connected to the device in seconds. Possible parameter settings: (1 to 255). Default 20. ATTENTION: taking temperature readings from the sensor does not result in sending a temperature condition report to the central hub.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="11" label="Interval between forcing to send report concerning the temperature conditions" min="0" max="255" value="200">
+    <Value genre="config" index="11" instance="1" label="Interval between forcing to send report concerning the temperature conditions" max="255" min="0" type="byte" value="200">
       <Help>Interval between forcing to send report concerning the temperature conditions. The forced report is sent immediately after the next reading of temperature from the sensor, irrespective of the settings of parameter no. 12. Value 0 = Deactivates the function. Default 200. ATTENTION: Frequent sending of temperature condition reports is reasonable when the sensor is located somewhere where can occur rapid changes of ambient temperature. In other cases it is recommended to leave the parameter set to the default value.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="12" label="Insensitiveness to temperature changes." min="0" max="255" value="8">
+    <Value genre="config" index="12" instance="1" label="Insensitiveness to temperature changes." max="255" min="0" type="byte" value="8">
       <Help>Insensitiveness to temperature changes. This is the maximum acceptable difference between the last reported temperature and the current temperature taken from the sensor. If the temperatures differ by the set value or more, then a report with the current temperature value is sent to the device assigned to association group no. 3. Intervals between taking readings from sensors are specified by parameter no. 10. Possible parameter settings:0 to 255 [0oC to 16oC] [0 oF to 28.8oF] In order to set the appropriate value of the parameter, the following formula should be used: x = delta T x 16 - for Celsius x = delta T x 80 / 9 - for Fahrenheit x  parameter value delta T  maximum acceptable temperature gradient in Celsius or Fahrenheit If the value is set to 0, then information about the temperature will be sent every time, immediately once the readings have been taken from the sensor. Default 8.</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="13" label="Transmitting the alarm or control frame broadcast mode" value="0" size="1">
+    <Value genre="config" index="13" instance="1" label="Transmitting the alarm or control frame broadcast mode" size="1" type="list" value="0">
       <Help>Transmitting the alarm or control frame in "broadcast" mode (i.e. to all devices within range), information sent in this mode is not repeated by the mesh network. Default 0. ATTENTION: If the broadcast mode of information transmission is activated for a given channel, then transmission of information in singlecast mode to devices assigned to the association group of this channel is deactivated.</Help>
-      <Item label="Sensor 1 and 2 Broadcast inactive" value="0" />
-      <Item label="Sensor 1 broadcast mode active, Sensor 2 broadcast mode inactive" value="1" />
-      <Item label="Sensor 1 broadcast mode inactive, Sensor 2 broadcast mode active" value="2" />
-      <Item label="Sensor 1 and 2 broadcast mode active" value="3" />
+      <Item label="Sensor 1 and 2 Broadcast inactive" value="0"/>
+      <Item label="Sensor 1 broadcast mode active, Sensor 2 broadcast mode inactive" value="1"/>
+      <Item label="Sensor 1 broadcast mode inactive, Sensor 2 broadcast mode active" value="2"/>
+      <Item label="Sensor 1 and 2 broadcast mode active" value="3"/>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="14" label="Scene activation" value="0" size="1">
+    <Value genre="config" index="14" instance="1" label="Scene activation" size="1" type="list" value="0">
       <Help>Enable/Disable scene functionality. The device offers the possibility of sending commands compatible with Command class scene activation. Information is sent to devices assigned to association group no. 3. Default 0.</Help>
-      <Item label="Scenes disabled" value="0" />
-      <Item label="Scenes enabled" value="1" />
+      <Item label="Scenes disabled" value="0"/>
+      <Item label="Scenes enabled" value="1"/>
     </Value>
   </CommandClass>
-
-  <CommandClass id="96" mapping="endpoints" />
-  <CommandClass id="32" setasreport="true" />
-
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
-      <Group index="1" max_associations="5" label="Input IN1" auto="false"/>
-      <Group index="2" max_associations="5" label="Input IN2" />
-      <Group index="3" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Input IN1" max_associations="5"/>
+      <Group index="2" label="Input IN2" max_associations="5"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/fibaro/fgbs222.xml b/Config/fibaro/fgbs222.xml
new file mode 100644
index 0000000000..7735e8961a
--- /dev/null
+++ b/Config/fibaro/fgbs222.xml
@@ -0,0 +1,251 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
+    Fibaro Smart Implant
+    https://www.fibaro.com/us/products/smart-implant/
+    https://manuals.fibaro.com/content/manuals/en/FGBS-222/FGBS-222-EN-T-v1.0.pdf
+    https://products.z-wavealliance.org/products/3195
+    -->
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="20" instance="1" label="Input 1 operating mode" size="1" type="list" value="2">
+      <Help>
+        This parameter allows to choose mode of 1st input (IN1). 
+        Change it depending on connected device.
+      </Help>
+      <Item label="Normally closed alarm input" value="0"/>
+      <Item label="Normally open alarm input" value="1"/>
+      <Item label="Monostable button" value="2"/>
+      <Item label="Bistable button" value="3"/>
+      <Item label="Analog input without internal pull-up" value="4"/>
+      <Item label="Analog input with internal pullup" value="5"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Input 2 operating mode" size="1" type="list" value="2">
+      <Help>
+        This parameter allows to choose mode of 2nd input (IN2). 
+        Change it depending on connected device.
+      </Help>
+      <Item label="Normally closed alarm input" value="0"/>
+      <Item label="Normally open alarm input" value="1"/>
+      <Item label="Monostable button" value="2"/>
+      <Item label="Bistable button" value="3"/>
+      <Item label="Analog input without internal pull-up" value="4"/>
+      <Item label="Analog input with internal pullup" value="5"/>
+    </Value>
+    <Value genre="config" index="24" instance="1" label="Inputs orientation" size="1" type="list" value="0">
+      <Help>
+        This parameter allows reversing operation of IN1 and IN2 inputs without changing the wiring. 
+        Use in case of incorrect wiring.
+      </Help>
+      <Item label="Default (IN1 - 1st input, IN2 - 2nd input)" value="0"/>
+      <Item label="Reversed (IN1 - 2nd input, IN2 - 1st input)" value="1"/>
+    </Value>
+    <Value genre="config" index="25" instance="1" label="Outputs orientation" size="1" type="list" value="0">
+      <Help>
+        This parameter allows reversing operation of OUT1 and OUT2 inputs without changing the wiring. 
+        Use in case of incorrect wiring.
+      </Help>
+      <Item label="Default (OUT1 - 1st output, OUT2 - 2nd output)" value="0"/>
+      <Item label="Reversed (OUT1 - 2nd output, OUT2 - 1st output)" value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Input 1 sent scenes" size="1" type="byte" value="0">
+      <Help>
+        This parameter defines which actions result in sending scene ID and attribute assigned to them. 
+        Parameter is relevant only if parameter 20 is set to 2 or 3. bitmask.
+        0 => No scenes sent.
+        1 => Key pressed 1 time.
+        2 => Key pressed 2 times.
+        4 => Key pressed 3 times.
+        8 => Key hold down and key released.
+      </Help>
+    </Value>
+    <Value genre="config" index="41" instance="1" label="Input 2 sent scenes" size="1" type="byte" value="0">
+      <Help>
+        This parameter defines which actions result in sending scene ID and attribute assigned to them. 
+        Parameter is relevant only if parameter 21 is set to 2 or 3. bitmask.
+        0 => No scenes sent.
+        1 => Key pressed 1 time.
+        2 => Key pressed 2 times.
+        4 => Key pressed 3 times.
+        8 => Key hold down and key released.
+      </Help>
+    </Value>
+    <Value genre="config" index="47" instance="1" label="Input 1 value sent to 2nd association group when activated" max="255" min="0" type="short" value="255">
+      <Help>
+        This parameter defines value sent to devices in 2nd association group when IN1 input is triggered (using Basic Command Class).
+        Available settings: 0-255.
+        Default setting: 255.
+      </Help>
+    </Value>
+    <Value genre="config" index="49" instance="1" label="Input 1 value sent to 2nd association group when deactivated" max="255" min="0" type="short" value="255">
+      <Help>
+        This parameter defines value sent to devices in 2nd association group when IN1 input is deactivated (using Basic Command Class).
+        Available settings: 0-255.
+        Default setting: 255.
+      </Help>
+    </Value>
+    <Value genre="config" index="52" instance="1" label="Input 2 value sent to 3rd association group when activated" max="255" min="0" type="short" value="255">
+      <Help>
+        This parameter defines value sent to devices in 3rd association group when IN2 input is triggered (using Basic Command Class).
+        Available settings: 0-255.
+        Default setting: 255.
+      </Help>
+    </Value>
+    <Value genre="config" index="54" instance="1" label="Input 2 value sent to 3rd association group when deactivated" max="255" min="0" type="short" value="255">
+      <Help>
+        This parameter defines value sent to devices in 3rd association group when IN2 input is deactivated (using Basic Command Class).
+        Available settings: 0-255.
+        Default setting: 255.
+      </Help>
+    </Value>
+    <Value genre="config" index="150" instance="1" label="Input 1 sensitivity" max="100" min="1" type="byte" units="10ms" value="10">
+      <Help>
+        This parameter defines the inertia time of IN1 input in alarm modes.
+        Adjust this parameter to prevent bouncing or signal disruptions. 
+        Parameter is relevant only if parameter 20 is set to 0 or 1 (alarm mode).
+        Available settings: 1-100 (10ms-1000ms, 10ms step).
+        Default setting: 10 (100ms).
+      </Help>
+    </Value>
+    <Value genre="config" index="151" instance="1" label="Input 2 sensitivity" max="100" min="1" type="byte" units="10ms" value="10">
+      <Help>
+        This parameter defines the inertia time of IN2 input in alarm modes.
+        Adjust this parameter to prevent bouncing or signal disruptions. Parameter is relevant only if parameter 21 is set to 0 or 1 (alarm mode).
+        Available settings: 1-100 (10ms-1000ms, 10ms step).
+        Default setting: 10 (100ms).
+      </Help>
+    </Value>
+    <Value genre="config" index="152" instance="1" label="Input 1 delay of alarm cancellation" max="3600" min="0" type="short" units="seconds" value="0">
+      <Help>
+        This parameter defines additional delay of cancelling the alarm on IN1 input. 
+        Parameter is relevant only if parameter 20 is set to 0 or 1 (alarm mode).
+        Available settings:
+          0 - no delay.
+          1-3600s.
+        Default setting: 0 (no delay).
+      </Help>
+    </Value>
+    <Value genre="config" index="153" instance="1" label="Input 2 delay of alarm cancellation" max="3600" min="0" type="short" units="seconds" value="0">
+      <Help>
+        This parameter defines additional delay of cancelling the alarm on IN2 input. 
+        Parameter is relevant only if parameter 21 is set to 0 or 1 (alarm mode).
+        Available settings:
+          0 - no delay.
+          1-3600s.
+        Default setting: 0 (no delay).
+      </Help>
+    </Value>
+    <Value genre="config" index="154" instance="1" label="Output 1 logic of operation" size="1" type="list" value="0">
+      <Help>This parameter defines logic of OUT1 output operation.</Help>
+      <Item label="contacts normally open" value="0"/>
+      <Item label="contacts normally closed" value="1"/>
+    </Value>
+    <Value genre="config" index="155" instance="1" label="Output 2 logic of operation" size="1" type="list" value="0">
+      <Help>This parameter defines logic of OUT2 output operation.</Help>
+      <Item label="contacts normally open" value="0"/>
+      <Item label="contacts normally closed" value="1"/>
+    </Value>
+    <Value genre="config" index="156" instance="1" label="Output 1 auto off" max="27000" min="0" type="short" units="0.1s" value="0">
+      <Help>
+        This parameter defines time after which OUT1 will be automatically deactivated.
+        Available settings:
+          0 - auto off disabled.
+          1-27000 (0.1s-45min, 0.1s step).
+        Default setting: 0 (auto off disabled).
+      </Help>
+    </Value>
+    <Value genre="config" index="157" instance="1" label="Output 2 auto off" max="27000" min="0" type="short" units="0.1s" value="0">
+      <Help>
+        This parameter defines time after which OUT2 will be automatically deactivated.
+        Available settings:
+          0 - auto off disabled.
+          1-27000 (0.1s-45min, 0.1s step).
+        Default setting: 0 (auto off disabled).
+      </Help>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Analog inputs minimal change to report" max="100" min="0" type="byte" units="0.1v" value="5">
+      <Help>
+        This parameter defines minimal change (from the last reported) of
+        analog input value that results in sending new report. Parameter is
+        relevant only for analog inputs (parameter 20 or 21 set to 4 or 5).
+        Available settings:
+          0 - (reporting on change disabled).
+          1-100 (0.1-10V, 0.1V step).
+        Default setting: 5 (0.5V).
+      </Help>
+    </Value>
+    <Value genre="config" index="64" instance="1" label="Analog inputs periodical reports" max="32400" min="0" type="short" units="seconds" value="0">
+      <Help>
+        This parameter defines reporting period of analog inputs value.
+        Periodical reports are independent from changes in value (parameter 63). Parameter is relevant only for analog inputs (parameter
+        20 or 21 set to 4 or 5).
+        Available settings:
+          0 (periodical reports disabled).
+          60-32400 (60s-9h).
+        Default setting: 0 (periodical reports disabled).
+      </Help>
+    </Value>
+    <Value genre="config" index="65" instance="1" label="Internal temperature sensor minimal change to report" max="255" min="0" type="short" value="5">
+      <Help>
+        This parameter defines minimal change (from the last reported)
+        of internal temperature sensor value that results in sending new
+        report.
+        Available settings:
+          0 - (reporting on change disabled).
+          1-255 (0.1-25.5C).
+        Default setting: 5 (0.5C).
+      </Help>
+    </Value>
+    <Value genre="config" index="66" instance="1" label="Internal temperature sensor periodical reports" max="32400" min="0" type="short" units="seconds" value="0">
+      <Help>
+        This parameter defines reporting period of internal temperature
+        sensor value. Periodical reports are independent from changes in
+        value (parameter 65).
+        Available settings:
+          0 (periodical reports disabled).
+          60-32400 (60s-9h).
+        Default setting: 0 (periodical reports disabled).
+      </Help>
+    </Value>
+    <Value genre="config" index="67" instance="1" label="External sensors minimal change to report" max="255" min="0" type="short" value="5">
+      <Help>
+        This parameter defines minimal change (from the last reported) of
+        external sensors values (DS18B20 or DHT22) that results in sending new
+        report. Parameter is relevant only for connected DS18B20 or DHT22
+        sensors.
+        Available settings:
+          0 - (reporting on change disabled).
+          1-255 (0.1-25.5 units).
+        Default setting: 5 (0.5 units)
+      </Help>
+    </Value>
+    <Value genre="config" index="68" instance="1" label="External sensors periodical reports" max="32400" min="0" type="short" units="seconds" value="0">
+      <Help>
+        This parameter defines reporting period of analog inputs value.
+        Periodical reports are independent from changes in value (parameter 67).
+        Parameter is relevant only for connected DS18B20 or DHT22 sensors.
+        Available settings:
+          0 - (periodical reports disabled).
+          60-32400 (60s-9h).
+        Default setting: 0 (periodical reports disabled).
+      </Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Input IN1" max_associations="5"/>
+      <Group index="3" label="Input IN2" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/fibaro/fgcd001.xml b/Config/fibaro/fgcd001.xml
index 0f0e459408..c7d4da30e0 100644
--- a/Config/fibaro/fgcd001.xml
+++ b/Config/fibaro/fgcd001.xml
@@ -1,24 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
 	FIBARO CO Sensor FGCD-001
 	http://products.z-wavealliance.org/products/2336
 	-->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="2" label="Z-Wave notifications" min="0" max="3" value="0" size="1">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="2" instance="1" label="Z-Wave notifications" max="3" min="0" size="1" type="list" value="0">
+      <Help>
 				This parameter allows to set the actions which result in sending notifications to the Z-Wave network controller.
 			</Help>
-			<Item label="All notifications disabled" value="0" />
-			<Item label="Enclosure opening notification enabled" value="1" />
-			<Item label="Exceeding temperature threshold notification enabled" value="2" />
-			<Item label="All notifications enabled" value="3" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="LED diode indications" min="0" max="7" value="0" size="1">
-			<Help>
+      <Item label="All notifications disabled" value="0"/>
+      <Item label="Enclosure opening notification enabled" value="1"/>
+      <Item label="Exceeding temperature threshold notification enabled" value="2"/>
+      <Item label="All notifications enabled" value="3"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="LED diode indications" max="7" min="0" size="1" type="byte" value="0">
+      <Help>
 				This parameter allows to set the actions which result in LED diode indications.
 				0=All actions disabled.
 				1=Tampering (opened casing).
@@ -27,9 +25,9 @@
 				This parameter does not apply to the most important actions, such as CO Alarm, Malfunction Alarm and Low Battery Alarm.
 				NOTE: Parameter 3 values may be combined, e.g. 1+2+4=7 means that all actions will be active.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="Acoustic signals" min="0" max="7" value="0" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Acoustic signals" max="7" min="0" size="1" type="byte" value="0">
+      <Help>
 				This parameter allows to set the actions which result in acoustic signals.
 				0=All actions disabled.
 				1=Tampering (opened casing).
@@ -38,9 +36,9 @@
 				This parameter does not apply to the most important actions, such as CO Alarm, Malfunction Alarm and Low Battery Alarm.
 				NOTE: Parameter 4 values may be combined, e.g. 1+2+4=7 means that all actions will be active.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="7" label="Associations in Z-Wave network security mode" min="0" max="63" value="63">
-			<Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Associations in Z-Wave network security mode" max="63" min="0" type="byte" value="63">
+      <Help>
 				Parameter defines how commands are sent in specified association groups: as secure or non-secure. 
 				Parameter is active only in Z-Wave network security mode. 
 				It does not apply to 1st Lifeline association group.
@@ -55,126 +53,128 @@
 				Default setting: 63.
 				NOTE Parameter 7 values may be combined, e.g. 1+2=3 means that 2nd and 3rd group are sent as secure.
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="10" label="Commands sent to 2nd association group (CO Alarm)" min="1" max="3" value="3" size="1">
-			<Help>This parameter defines which frames will be sent in the 2-nd Association Group (CO ALARM).</Help>
-			<Item label="BASIC ON" value="1" />
-			<Item label="BASIC OFF" value="2" />
-			<Item label="BASIC ON and OFF" value="3" />
-		</Value>
-		<Value type="short" genre="config" instance="1" index="11" label="Value of BASIC ON command sent to 2nd association group" min="0" max="255" value="255">
-			<Help>This parameter defines the value of BASIC ON command sent to devices in 2nd association group after the CO Alarm activation.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="12" label="Value of BASIC OFF command sent to 2nd association group" min="0" max="255" value="0">
-			<Help>This parameter defines the value of BASIC OFF command sent to devices in 2nd association group after the CO Alarm cancellation.</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="13" label=" Commands sent to 4th association group (CO Level)" min="1" max="3" value="3" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Commands sent to 2nd association group (CO Alarm)" max="3" min="1" size="1" type="list" value="3">
+      <Help>This parameter defines which frames will be sent in the 2-nd Association Group (CO ALARM).</Help>
+      <Item label="BASIC ON" value="1"/>
+      <Item label="BASIC OFF" value="2"/>
+      <Item label="BASIC ON and OFF" value="3"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Value of BASIC ON command sent to 2nd association group" max="255" min="0" type="short" value="255">
+      <Help>This parameter defines the value of BASIC ON command sent to devices in 2nd association group after the CO Alarm activation.</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Value of BASIC OFF command sent to 2nd association group" max="255" min="0" type="short" value="0">
+      <Help>This parameter defines the value of BASIC OFF command sent to devices in 2nd association group after the CO Alarm cancellation.</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label=" Commands sent to 4th association group (CO Level)" max="3" min="1" size="1" type="list" value="3">
+      <Help>
 				This parameter defines commands sent to devices associated in 4th association group (CO Level). 
 				Values of specified commands may be set in parameters 16 and 19.
 			</Help>
-			<Item label="BASIC ON" value="1" />
-			<Item label="BASIC OFF" value="2" />
-			<Item label="BASIC ON and OFF" value="3" />
-		</Value>
-		<Value type="short" genre="config" instance="1" index="14" label="CO level required for sending BASIC ON command to 4th association group" units="ppm" min="20" max="400" value="40">
-			<Help>
+      <Item label="BASIC ON" value="1"/>
+      <Item label="BASIC OFF" value="2"/>
+      <Item label="BASIC ON and OFF" value="3"/>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="CO level required for sending BASIC ON command to 4th association group" max="400" min="20" type="short" units="ppm" value="40">
+      <Help>
 				This parameter defines the minimum level of CO concentration whichexceeding will result in starting the timer set in parameter 15. 
 				Available settings: 20 - 400  CO concentration level in ppm
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="15" label="Time required for sending BASIC ON command to 4th association group" min="0" max="2880" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Time required for sending BASIC ON command to 4th association group" max="2880" min="0" type="short" value="0">
+      <Help>
 				This parameter defines the time during which the level of CO concentration should remain above the value set in parameter 14 to send the BASIC ON command to 4th association group.
 				Available settings: 0 - immediate sending of BASIC ON command 1-2880 (30s - 24h, in 30s steps)
 				Default setting: 0
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="16" label="Value of BASIC ON command sent to 4th association group" min="0" max="255" value="255">
-			<Help>
+    </Value>
+    <Value genre="config" index="16" instance="1" label="Value of BASIC ON command sent to 4th association group" max="255" min="0" type="short" value="255">
+      <Help>
 				This parameter defines the value of BASIC ON command sent to devices in 4th association group after exceeding the CO level set in parameter 14 through the time set in parameter 15.
 				Available settings: 0-99 or 255.
 				Default setting: 255 (turn on)
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="17" label="CO Level required for sending BASIC OFF command to 4th association group" units="ppm" min="10" max="400" value="25" >
-			<Help>
+    </Value>
+    <Value genre="config" index="17" instance="1" label="CO Level required for sending BASIC OFF command to 4th association group" max="400" min="10" type="short" units="ppm" value="25">
+      <Help>
 				This parameter defines the level of CO concentration below which falling will result in sending the BASIC OFF command to 4th association group.
 				Available settings: 10-400 - CO concentration level in ppm.
 				Default setting: 25 (25 ppm)
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="18" label="Time required for sending BASIC OFF command to 4th association group" min="0" max="2880" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="18" instance="1" label="Time required for sending BASIC OFF command to 4th association group" max="2880" min="0" type="short" value="0">
+      <Help>
 				This parameter defines the time during which the level of CO concentration should remain below the value set in parameter 17 to send the BASIC OFF command to 4th association group.
 				Available settings: 0 - immediate sending of BASIC OFF command 1-2880 (30s - 24h, in 30s steps)
 				Default setting: 0
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="19" label="Value of BASIC OFF command sent to 4th association group" min="0" max="255" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="19" instance="1" label="Value of BASIC OFF command sent to 4th association group" max="255" min="0" type="short" value="0">
+      <Help>
 				This parameter defines the value of BASIC OFF command sent to devices in 4th association group after falling below the CO level set in parameter 17.
 				Available settings: 0-99 or 255
 				Default setting: 0 (turn off)
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="20" label="Temperature report interval" value="0" min="0" max="1440" >
-			<Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Temperature report interval" max="1440" min="0" type="short" value="0">
+      <Help>
 				Time interval (in seconds) between consecutive reports of temperature (done by built-in temperature sensor). 
 				Short time interval means more frequent communication, which results in shortened battery life.
 				Available settings: 0 - no periodical reports 10-1440 (5min - 12h, in 30s steps)
 				Default setting: 0
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="21" label="Temperature report hysteresis" value="2" min="1" max="20" >
-			<Help>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Temperature report hysteresis" max="20" min="1" type="byte" value="2">
+      <Help>
 				This parameter defines a minimum change in temperature resulting in a report being sent to the main Z-Wave controller.
 				Available settings: 1-20 (0.5C - 10C, each 0.5C)
 				Default setting: 2 (1C) P</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="22" label="Threshold of exceeding the temperature" units="Celsius" value="55" min="1" max="85" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="Threshold of exceeding the temperature" max="85" min="1" size="1" type="byte" units="Celsius" value="55">
+      <Help>
 				This parameter defines the temperature level, which exceeding will result in sending actions set in parameters 2, 3 and 4.
 				Available settings: 1-85 (1C - 85C, each 1C)
 				Default setting: 55 (55C)
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="23" label="CO meter activation"  value="1" min="0" max="1" size="1">
-			<Help>This parameter activates reporting the value of CO concentration level to the main Z-Wave controller.</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="25" label=" CO level reporting hysteresis" units="ppm" value="2" min="2" max="6" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="23" instance="1" label="CO meter activation" max="1" min="0" size="1" type="byte" value="1">
+      <Help>This parameter activates reporting the value of CO concentration level to the main Z-Wave controller.</Help>
+    </Value>
+    <Value genre="config" index="25" instance="1" label=" CO level reporting hysteresis" max="6" min="2" size="1" type="list" units="ppm" value="2">
+      <Help>
 				This parameter defines a minimum change in CO concentration level which results in sending a new value to the main Z-Wave controller.
 			</Help>
-			<Item label="10" value="2" />
-			<Item label="15" value="3" />
-			<Item label="20" value="4" />
-			<Item label="25" value="5" />
-			<Item label="30" value="6" />
-		</Value>
-		<Value type="short" genre="config" instance="1" index="26" label="Threshold of CO meter activation" units="ppm" value="30" min="10" max="255">
-			<Help>
+      <Item label="10" value="2"/>
+      <Item label="15" value="3"/>
+      <Item label="20" value="4"/>
+      <Item label="25" value="5"/>
+      <Item label="30" value="6"/>
+    </Value>
+    <Value genre="config" index="26" instance="1" label="Threshold of CO meter activation" max="255" min="10" type="short" units="ppm" value="30">
+      <Help>
 				This parameter defines the CO concentration level, which exceeding will result in sending a new value to the main Z-Wave controller, according to parameter 25 settings. 
 				Adjusting the value allows to get the accurate data in case of danger and helps to save the battery in normal conditions.
 				Available settings: 10-255 (ppm)
 				Default setting: 30 (30 ppm)
 			</Help>
-		</Value>
-	</CommandClass>
-
-	 <!-- Basic set as report -->
-	 <CommandClass id="32" setasreport="true"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="7">
-			<Group index="1" max_associations="1" label="Lifeline" />
-			<Group index="2" max_associations="5" label="CO Alarm" />
-			<Group index="3" max_associations="5" label="CO Alarm" />
-			<Group index="4" max_associations="5" label="CO Level" />
-			<Group index="5" max_associations="5" label="Tamper Alarm" />
-			<Group index="6" max_associations="5" label="CO Alarm" />
-			<Group index="7" max_associations="5" label="Tamper Alarm BC" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="7">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="CO Alarm" max_associations="5"/>
+      <Group index="3" label="CO Alarm" max_associations="5"/>
+      <Group index="4" label="CO Level" max_associations="5"/>
+      <Group index="5" label="Tamper Alarm" max_associations="5"/>
+      <Group index="6" label="CO Alarm" max_associations="5"/>
+      <Group index="7" label="Tamper Alarm BC" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgd211.xml b/Config/fibaro/fgd211.xml
index c9d1912299..9a2d50f541 100644
--- a/Config/fibaro/fgd211.xml
+++ b/Config/fibaro/fgd211.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
 
   <!-- Configuration -->
   <CommandClass id="112">
diff --git a/Config/fibaro/fgd212.xml b/Config/fibaro/fgd212.xml
index 44efb5969f..af034f3326 100644
--- a/Config/fibaro/fgd212.xml
+++ b/Config/fibaro/fgd212.xml
@@ -1,92 +1,143 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0102</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgd212.png</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0102">https://products.z-wavealliance.org/products/1348/</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0102">FGD-212</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1348/FGD-212-EN-T-v1.0 03.09.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1) Disconnect the power supply, remove the Dimmer from the wall switch box, than connect the power supply.
+2) Locate the B-button on the housing.
+3) Click and hold the B-button to enter the menu mode.
+4) Release and click the B-button to choose "Device reset" option in the menu that is signaled with the yellow LED indicator colour.
+5) After few seconds the device will be restarted, which is signaled with the red LED indicator colour and entering the calibration mode.
+Note! Resetting the device is not the recommended way of removing
+the device from the Z-Wave network. Use reset procedure only if the primary controller is missing or inoperable.
+</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1) Switch off the mains voltage.
+2) Open the wall switch box.
+3) Connect the Dimmer in accordance with one of the diagrams attached in the manual.
+4) Switch on the mains voltage.
+5) Wait for the calibration process to end. Light may blink. The device will be switched off once the process is completed.
+6) Set the main Z-Wave controller into learning mode.
+7) Quickly, three times press the B-button or key connected to the S1 terminal.
+8) Wait for the device to be included into the system. Successful inclusion will be confirmed by the controller.
+9) Arrange the antenna and close the wall switch box.
+</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0102">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Remotely controlled light dimming module is designed to work with various types of light sources in 2 or 3-wire connection so it can operate with or without neutral lead. Fibaro Dimmer can switch or dim connected light source either through radio waves or through the wall switch connected directly to it. Dimmer 2 is equipped with a smart algorithm of light source detection which makes configuration easier and ensures high compatibility of the device. It may be used as a switch with non-dimmable light sources in 3-wire connection. Active power and energy consumption allows to monitor and reduce electricity bills. Dimmer 2 is compatible with any Z-Wave or Z-Wave+ Controller.
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+As a dimmer it operates under the following loads:
+• 230V operated conventional incandescent and halogen light sources
+• ELV electronic transformers (12V operated halogen lamps and dimmable LED bulbs)
+• MLV ferromagnetic transformers with 12V operated halogen lamps
+• dimmable LED bulbs
+• dimmable compact fluorescent CFL tube lamps
+• supported dimmable light sources with minimal power of 5VA (power factor > 0.5) using FIBARO Bypass FGB-002
+
+Without dimming function it may work with:
+• compact fluorescent lamps
+• fluorescent tube lamps with electronic ballast
+• LED bulbs (power factor > 0.7)
+• supported light sources with minimal power of 5VA (power factor > 0.5) using FIBARO Bypass FGB-002
+
+
+https://www.youtube.com/watch?v=K35uFXoa5c0</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Dimmer 2</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">The Fibaro Dimmer 2 is powered with mains voltage so it is always awake.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1) Set the main Z-Wave controller into learning mode.
+2) Quickly, three times press the B-button or key connected to the S1 terminal.
+3) Wait for the device to be excluded from the system. Successful exclusion will be confirmed by the controller.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="8">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1348/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- 
   Fibaro FGD-212
   config based on http://manuals.fibaro.com/content/manuals/en/FGD-212/FGD-212-EN-T-v1.3.pdf
   -->
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="byte" genre="config" instance="1" index="1" label="Minimum brightness level" min="1" max="98" units="%" value="1">
+    <Value genre="config" index="1" instance="1" label="Minimum brightness level" max="98" min="1" type="byte" units="%" value="1">
       <Help>Parameter is set automatically during the calibration process. Options for changing parameter 1-98. Default 1.</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="2" label="Maximum brightness level" min="2" max="99" units="%" value="99">
+    <Value genre="config" index="2" instance="1" label="Maximum brightness level" max="99" min="2" type="byte" units="%" value="99">
       <Help>Parameter is set automatically during the calibration process. Options for changing parameter 2-99. Default 99.</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="3" label="Incandescence level of dimmable compact fluorescent lamps" min="1" max="99" units="%" value="1">
+    <Value genre="config" index="3" instance="1" label="Incandescence level of dimmable compact fluorescent lamps" max="99" min="1" type="byte" units="%" value="1">
       <Help>Virtual value set as a percentage level between parameters MIN (1%) and MAX. (99%). The Dimmer will set to this value after first switch on. It is required for warming up and switching dimmable compact fluorescent lamps and certain types of light sources. Options for changing parameter 1-99. Default 1.</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="4" label="Incandescence time of dimmable compact fluorescent lamps" min="0" max="255" units="sec" value="0">
+    <Value genre="config" index="4" instance="1" label="Incandescence time of dimmable compact fluorescent lamps" max="255" min="0" type="short" units="sec" value="0">
       <Help>This parameter determines the time required for switching compact fluorescent lamps and certain types of light sources. Setting this parameter to 0 will disable the incandescence functionality. Available settings: 0-255 (0s - 25,5s)</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="5" label="The percentage of a dimming step at automatic control" min="1" max="99" units="%" value="1">
+    <Value genre="config" index="5" instance="1" label="The percentage of a dimming step at automatic control" max="99" min="1" type="byte" units="%" value="1">
       <Help>Available settings: 1-99 Default: 1</Help>
-    </Value>    
-    <Value type="short" genre="config" instance="1" index="6" label="Time of a dimming step at automatic control" min="0" max="255" units="sec" value="1">
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Time of a dimming step at automatic control" max="255" min="0" type="short" units="sec" value="1">
       <Help>Available settings: 0-255 (0s - 2,55s) Default setting: 1</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="7" label="The percentage of a dimming step at manual control" min="1" max="99" units="%" value="1">
+    <Value genre="config" index="7" instance="1" label="The percentage of a dimming step at manual control" max="99" min="1" type="byte" units="%" value="1">
       <Help>Available settings: 1-99 Default: 1</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="8" label="Time of a dimming step at manual control" min="0" max="255" units="sec" value="5">
+    <Value genre="config" index="8" instance="1" label="Time of a dimming step at manual control" max="255" min="0" type="short" units="sec" value="5">
       <Help>Available settings: 0-255 (0s - 2,55s) Default setting: 1</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="9" label="Saving state before power failure" size="1" value="1">
+    <Value genre="config" index="9" instance="1" label="Saving state before power failure" size="1" type="list" value="1">
       <Help>Saving state before power failure. Default 1.</Help>
       <Item label="State NOT saved at power failure, all outputs are set to OFF upon power restore" value="0"/>
       <Item label="State saved at power failure, all outputs are set to previous state upon power restore" value="1"/>
     </Value>
-    <Value type="short" genre="config" instance="1" index="10" label="Timer functionality (auto - off)" min="0" max="32767" units="sec" value="0">
+    <Value genre="config" index="10" instance="1" label="Timer functionality (auto - off)" max="32767" min="0" type="short" units="sec" value="0">
       <Help>Available settings: 0 - Function disabled; 1-32767 - time to turn off measured in seconds (1s - 9,1h) Default setting: 0</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="11" label="Enable/Disable ALL ON/OFF" size="2" value="255">
+    <Value genre="config" index="11" instance="1" label="Enable/Disable ALL ON/OFF" size="2" type="list" value="255">
       <Help>Enable/Disable ALL ON/OFF. Default 255.</Help>
-      <Item label="ALL ON active / ALL OFF active" value="255" />
-      <Item label="ALL ON disabled/ ALL OFF disabled" value="0" />
-      <Item label="ALL ON disabled/ ALL OFF active" value="1" />
-      <Item label="ALL ON active / ALL OFF disabled" value="2" />
+      <Item label="ALL ON active / ALL OFF active" value="255"/>
+      <Item label="ALL ON disabled/ ALL OFF disabled" value="0"/>
+      <Item label="ALL ON disabled/ ALL OFF active" value="1"/>
+      <Item label="ALL ON active / ALL OFF disabled" value="2"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="13" label="Force auto-calibration" size="1" value="0">
+    <Value genre="config" index="13" instance="1" label="Force auto-calibration" size="1" type="list" value="0">
       <Help>Changing value of this parameter will force the calibration process.</Help>
-      <Item label="idle" value="0" />
-      <Item label="Start auto-calibration of the load without Fibaro Bypass" value="1" />
-      <Item label="Start auto-calibration of the load with Fibaro Bypass" value="2" />
+      <Item label="idle" value="0"/>
+      <Item label="Start auto-calibration of the load without Fibaro Bypass" value="1"/>
+      <Item label="Start auto-calibration of the load with Fibaro Bypass" value="2"/>
     </Value>
-    <Value type="list" read_only="true" genre="config" instance="1" index="14" label="Auto-calibration status" size="1" value="0">
+    <Value genre="config" index="14" instance="1" label="Auto-calibration status" read_only="true" size="1" type="list" value="0">
       <Help>This parameter determines operating mode of the Dimmer (automatic/manual settings).</Help>
-      <Item label="calibration procedure not performed or Dimmer operates on manual settings" value="0" />
-      <Item label="Dimmer operates on auto-calibration settings" value="1" />
+      <Item label="calibration procedure not performed or Dimmer operates on manual settings" value="0"/>
+      <Item label="Dimmer operates on auto-calibration settings" value="1"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="15" label="Burnt out bulb detection" min="1" max="99" units="%" value="30">
+    <Value genre="config" index="15" instance="1" label="Burnt out bulb detection" max="99" min="1" type="byte" units="%" value="30">
       <Help>Function based on the sudden power variation of a specific value, interpreted as a LOAD ERROR. Available settings: 0 - function disabled; 1-99 - percentage value of power variation, compared to standard power consumption, measured during the calibration procedure (to be interpreted as load error/burnt out bulb) Default setting: 30</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="16" label="Time delay of a burnt out bulb" min="0" max="255" units="%" value="5">
+    <Value genre="config" index="16" instance="1" label="Time delay of a burnt out bulb" max="255" min="0" type="short" units="%" value="5">
       <Help>Time of delay (in seconds) for power variation detection, interpreted as a LOAD ERROR or OVERLOAD detection (too much power connected to the Dimmer). Available settings: 0 - detection of a burnt out bulb disabled; 1-255 - delay time in seconds; Default setting: 5</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="19" label="Forced switch on brightness level" min="0" max="99" units="%" value="0">
+    <Value genre="config" index="19" instance="1" label="Forced switch on brightness level" max="99" min="0" type="byte" units="%" value="0">
       <Help>If the parameter is active, switching on the Dimmer (S1 single click) will always set this brightness level. Available settings: 0 - function disabled; 1-99 - percentage level of brightness; Default setting: 0</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="20" label="Inputs Button/Switch configuration" size="1" value="0">
+    <Value genre="config" index="20" instance="1" label="Inputs Button/Switch configuration" size="1" type="list" value="0">
       <Help>Binary inputs type configuration. Default 0.</Help>
       <Item label="Mono-stable input (button)" value="0"/>
       <Item label="Bi-stable input (switch)" value="1"/>
       <Item label="Role blind switch (UP / DOWN) - two switch keys operate the Dimmer" value="2"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="21" label="The value sent to associated devices on single click" size="1" value="0">
+    <Value genre="config" index="21" instance="1" label="The value sent to associated devices on single click" size="1" type="list" value="0">
       <Help>The value sent to associated devices on single click.</Help>
       <Item label="0xFF value is sent, which will set associated devices to their last saved state." value="0"/>
       <Item label="Current Dimmer state is sent, which will synchronize brightness level of associated devices (other Dimmers for example)." value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="22" label="Assign toggle switch status to the device status" size="1" value="0">
+    <Value genre="config" index="22" instance="1" label="Assign toggle switch status to the device status" size="1" type="list" value="0">
       <Item label="Device changes status on switch status change" value="0"/>
       <Item label="Device status is synchronized with switch status" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="23" label="Double click option" size="1" value="1">
+    <Value genre="config" index="23" instance="1" label="Double click option" size="1" type="list" value="1">
       <Help>Double-click set lighting at 100%. Default 1.</Help>
       <Item label="Disable double click" value="0"/>
       <Item label="Enable double click" value="1"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="24" label="Command frames sent in 2-nd and 3-rd association groups (S1 associations)" value="0">
+    <Value genre="config" index="24" instance="1" label="Command frames sent in 2-nd and 3-rd association groups (S1 associations)" type="byte" value="0">
       <Help>Parameter determines, which actions will not result in sending frames to association groups. Parameter values may be combined, e.g. 1+2=3 means that associations on switching on or off the Dimmer (single click) will not be sent.
 Available settings: 0-31
 0 - all actions send to association groups;
@@ -97,7 +148,7 @@ Available settings: 0-31
 16 - send 0xFF value on double click;
 Default setting: 0</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="25" label="Command frames sent in 4-th and 5-th association groups (S2 associations)" value="0">
+    <Value genre="config" index="25" instance="1" label="Command frames sent in 4-th and 5-th association groups (S2 associations)" type="byte" value="0">
       <Help>Parameter determines, which actions will not result in sending frames to association groups. Parameter values may be combined, e.g. 1+2=3 means that associations on switching on or off the Dimmer (single click) will not be sent.
 Available settings: 0-31
 0 - all actions send to association groups;
@@ -108,12 +159,12 @@ Available settings: 0-31
 16 - send 0xFF value on double click;
 Default setting: 0</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="26" label="The function of 3-way switch" size="1" value="0">
+    <Value genre="config" index="26" instance="1" label="The function of 3-way switch" size="1" type="list" value="0">
       <Help>Switch no. 2 controls the Dimmer additionally (in 3-way switch mode). Function disabled for parameter 20 set to 2 (roller blind switch)</Help>
       <Item label="3-way switch function for S2 disabled" value="0"/>
       <Item label="3-way switch function for S2 enabled" value="1"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="27" label="Associations in Z-Wave network security mode" value="15">
+    <Value genre="config" index="27" instance="1" label="Associations in Z-Wave network security mode" type="byte" value="15">
       <Help>This parameter defines how commands are sent in specified association groups: as secure or non-secure. Parameter is active only in Z-Wave network security mode. It does not apply to 1st Lifeline group. Parameter values may be combined, e.g. 1+2=3 means that 2nd &amp; 3rd group are sent as secure.
 Available settings: 0-15
 0 - all groups (II-V) sent as non-secure;
@@ -124,163 +175,165 @@ Available settings: 0-15
 15 - all groups (II-V) sent as secure;
 Default setting: 15</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="28" label="Scene activation functionality" size="1" value="0">
+    <Value genre="config" index="28" instance="1" label="Scene activation functionality" size="1" type="list" value="0">
       <Help>SCENE ID depends on the switch type configurations. Default 0.</Help>
       <Item label="Functionality deactivated" value="0"/>
-      <Item label="Functionality activated" value="1"/>      
+      <Item label="Functionality activated" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="29" label="Switch functionality of S1 and S2" size="1" value="0">
+    <Value genre="config" index="29" instance="1" label="Switch functionality of S1 and S2" size="1" type="list" value="0">
       <Item label="standard mode" value="0"/>
-      <Item label="S1 operates as S2, S2 operates as S1" value="1"/>      
+      <Item label="S1 operates as S2, S2 operates as S1" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="30" label="Load control mode" size="1" value="2">
+    <Value genre="config" index="30" instance="1" label="Load control mode" size="1" type="list" value="2">
       <Help>Forced auto-calibration will set this parameter value to 2.</Help>
       <Item label="forced leading edge control" value="0"/>
-      <Item label="forced trailing edge control" value="1"/>      
-      <Item label="control mode selected automatically (based on auto-calibration)" value="2"/>      
+      <Item label="forced trailing edge control" value="1"/>
+      <Item label="control mode selected automatically (based on auto-calibration)" value="2"/>
     </Value>
-    <Value type="list" read_only="true" genre="config" instance="1" index="31" label="Load control mode" size="1" value="0">
+    <Value genre="config" index="31" instance="1" label="Load control mode" read_only="true" size="1" type="list" value="0">
       <Help>Load control mode recognized during auto-calibration.</Help>
-      <Item label="leading edge" value="0" />
-      <Item label="trailing edge" value="1" />
+      <Item label="leading edge" value="0"/>
+      <Item label="trailing edge" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="32" label="On/Off mode" size="1" value="2">
+    <Value genre="config" index="32" instance="1" label="On/Off mode" size="1" type="list" value="2">
       <Help>Load control mode recognized during auto-calibration.</Help>
-      <Item label="on/off mode disabled (dimming is possible)" value="0" />
-      <Item label="on/off mode enabled (dimming is not possible)" value="1" />
-      <Item label="mode selected automatically" value="2" />
+      <Item label="on/off mode disabled (dimming is possible)" value="0"/>
+      <Item label="on/off mode enabled (dimming is not possible)" value="1"/>
+      <Item label="mode selected automatically" value="2"/>
     </Value>
-    <Value type="list" read_only="true" genre="config" instance="1" index="33" label="Dimmability of the load" size="1" value="0">
+    <Value genre="config" index="33" instance="1" label="Dimmability of the load" read_only="true" size="1" type="list" value="0">
       <Help>Dimmability of the load</Help>
-      <Item label="Load recognized as dimmable" value="0" />
-      <Item label="Load recognized as non-dimmable" value="1" />
+      <Item label="Load recognized as dimmable" value="0"/>
+      <Item label="Load recognized as non-dimmable" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="34" label="Soft-Start functionality" size="1" value="1">
+    <Value genre="config" index="34" instance="1" label="Soft-Start functionality" size="1" type="list" value="1">
       <Help>Time required to warm up the filament of halogen bulb.</Help>
-      <Item label="no soft-start" value="0" />
-      <Item label="short soft-start (0.1s)" value="1" />
-      <Item label="long soft-start (0.5s)" value="2" />
+      <Item label="no soft-start" value="0"/>
+      <Item label="short soft-start (0.1s)" value="1"/>
+      <Item label="long soft-start (0.5s)" value="2"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="35" label="Auto-calibration after power on" size="1" value="1">
+    <Value genre="config" index="35" instance="1" label="Auto-calibration after power on" size="1" type="list" value="1">
       <Help>This parameter determines the trigger of auto-calibration procedure, e.g. power on, load error, etc.</Help>
-      <Item label="No auto-calibration of the load after power on" value="0" />
-      <Item label="Auto-calibration performed after first power on" value="1" />
-      <Item label="Auto-calibration performed after each power on" value="2" />
-      <Item label="Auto-calibration performed after first power on or after each LOAD ERROR alarm (no load, load failure, burnt out bulb)" value="3" />
-      <Item label="Auto-calibration performed after each power on or after each LOAD ERROR alarm (no load, load failure, burnt out bulb)," value="4" />
+      <Item label="No auto-calibration of the load after power on" value="0"/>
+      <Item label="Auto-calibration performed after first power on" value="1"/>
+      <Item label="Auto-calibration performed after each power on" value="2"/>
+      <Item label="Auto-calibration performed after first power on or after each LOAD ERROR alarm (no load, load failure, burnt out bulb)" value="3"/>
+      <Item label="Auto-calibration performed after each power on or after each LOAD ERROR alarm (no load, load failure, burnt out bulb)," value="4"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="37" label="Behaviour of the Dimmer after OVERCURRENT or SURGE" size="1" value="1">
+    <Value genre="config" index="37" instance="1" label="Behaviour of the Dimmer after OVERCURRENT or SURGE" size="1" type="list" value="1">
       <Help>Behaviour of the Dimmer after OVERCURRENT or SURGE</Help>
-      <Item label="device permanently disabled until re-enabling by comand or external switch" value="0" />
-      <Item label="three attempts to turn on the load" value="1" />
-    </Value>    
-    <Value type="short" genre="config" instance="1" index="38" label="Brightness level correction for flickering loads" min="0" max="255" value="255">
+      <Item label="device permanently disabled until re-enabling by comand or external switch" value="0"/>
+      <Item label="three attempts to turn on the load" value="1"/>
+    </Value>
+    <Value genre="config" index="38" instance="1" label="Brightness level correction for flickering loads" max="255" min="0" type="short" value="255">
       <Help>Correction reduces spontaneous flickering of some capacitive load (e.g. dimmable lEDs) at certain brightness levels in 2-wire installation. In countries using ripple-control, correction may cause changes in brightness. In this case it is necessary to disable correction or adjust time of correction for flickering loads. Available settings: 0 - automatic correction disabled 1-254 - duration of correction in seconds 255 - automatic correction always enabled Default setting: 255</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="39" label="Power limit - OVERLOAD" min="1" max="350" units="Watt" value="250">
+    <Value genre="config" index="39" instance="1" label="Power limit - OVERLOAD" max="350" min="1" type="short" units="Watt" value="250">
       <Help>Reaching the defined value will result in turning off the load. Additional apparent power limit of 350VA is active by default. Available settings: 0 - functionality disabled; 1-350 - 1W-350W; Default setting: 250</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="40" label="Response to General Purpose Alarm" size="1" value="3">
+    <Value genre="config" index="40" instance="1" label="Response to General Purpose Alarm" size="1" type="list" value="3">
       <Help>Response to General Purpose Alarm; Default 3.</Help>
       <Item label="No reaction - no response to alarm frames" value="0"/>
       <Item label="ALARM DIMMER ON - device turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM DIMMER OFF - device will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - device will turn ON and OFF periodically" value="3"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="41" label="Response to Water Flooding Alarm" size="1" value="2">
+    <Value genre="config" index="41" instance="1" label="Response to Water Flooding Alarm" size="1" type="list" value="2">
       <Help>Response to Water Flooding Alarm; Default 2.</Help>
       <Item label="No reaction - no response to alarm frames" value="0"/>
       <Item label="ALARM DIMMER ON - device turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM DIMMER OFF - device will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - device will turn ON and OFF periodically" value="3"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="42" label="Response to Smoke, CO or CO2 Alarm" size="1" value="3">
+    <Value genre="config" index="42" instance="1" label="Response to Smoke, CO or CO2 Alarm" size="1" type="list" value="3">
       <Help>Response to Smoke, CO or CO2 Alarm; Default 3.</Help>
       <Item label="No reaction - no response to alarm frames" value="0"/>
       <Item label="ALARM DIMMER ON - device turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM DIMMER OFF - device will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - device will turn ON and OFF periodically" value="3"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="43" label="Response to Temperature Alarm" size="1" value="1">
+    <Value genre="config" index="43" instance="1" label="Response to Temperature Alarm" size="1" type="list" value="1">
       <Help>Response to Temperature Alarm; Default 1.</Help>
       <Item label="No reaction - no response to alarm frames" value="0"/>
       <Item label="ALARM DIMMER ON - device turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM DIMMER OFF - device will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - device will turn ON and OFF periodically" value="3"/>
     </Value>
-	<Value type="short" genre="config" instance="1" index="44" label="Time of alarm state" min="1" max="32767" units="sec" value="600">
+    <Value genre="config" index="44" instance="1" label="Time of alarm state" max="32767" min="1" type="short" units="sec" value="600">
       <Help>Alarm state may be cancelled earlier, as a result of pressing the switches or sending the Z-Wave command frame.</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="45" label="OVERLOAD alarm report" size="1" value="1">
+    <Value genre="config" index="45" instance="1" label="OVERLOAD alarm report" size="1" type="list" value="1">
       <Help>OVERLOAD alarm report (load power consumption too high)</Help>
       <Item label="No reaction" value="0"/>
       <Item label="Send an alarm frame" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="46" label="LOAD ERROR alarm report" size="1" value="1">
+    <Value genre="config" index="46" instance="1" label="LOAD ERROR alarm report" size="1" type="list" value="1">
       <Help>LOAD ERROR alarm report (no load, load failure, burnt out bulb)</Help>
       <Item label="No reaction" value="0"/>
       <Item label="Send an alarm frame" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="47" label="OVERCURRENT alarm report" size="1" value="1">
+    <Value genre="config" index="47" instance="1" label="OVERCURRENT alarm report" size="1" type="list" value="1">
       <Help>OVERCURRENT alarm report (short circuit, burnt out bulb causing overcurrent)</Help>
       <Item label="No reaction" value="0"/>
       <Item label="Send an alarm frame" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="48" label="SURGE alarm report" size="1" value="1">
+    <Value genre="config" index="48" instance="1" label="SURGE alarm report" size="1" type="list" value="1">
       <Help>SURGE alarm report (Dimmer output overvoltage)</Help>
       <Item label="No reaction" value="0"/>
       <Item label="Send an alarm frame" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="49" label="OVERHEAT and VOLTAGE DROP alarm report" size="1" value="1">
+    <Value genre="config" index="49" instance="1" label="OVERHEAT and VOLTAGE DROP alarm report" size="1" type="list" value="1">
       <Help>OVERHEAT (critical temperature) and VOLTAGE DROP (low voltage) alarm report</Help>
       <Item label="No reaction" value="0"/>
       <Item label="Send an alarm frame" value="1"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="50" label="Active power reports" min="0" max="100" units="%" value="10">
+    <Value genre="config" index="50" instance="1" label="Active power reports" max="100" min="0" type="byte" units="%" value="10">
       <Help>The parameter defines the power level change that will result in a new power report being sent. The value is a percentage of the previous report. Available settings:
 0 - power reports disabled;
 1-100 (1-100%) - power report threshold;
 Default setting: 10 (10%)</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="52" label="Periodic active power and energy reports" min="0" max="32767" units="sec" value="3600">
+    <Value genre="config" index="52" instance="1" label="Periodic active power and energy reports" max="32767" min="0" type="short" units="sec" value="3600">
       <Help>Parameter 52 defines a time period between consecutive reports. Timer is reset and counted from zero after each report. Available settings:
 0 - periodic reports disabled;
 1-32767 (1-32767 seconds);
 Default setting: 3600 (3600s)</Help>
-    </Value>  
-    <Value type="short" genre="config" instance="1" index="53" label="Energy reports" min="0" max="255" units="kWh" value="10">
+    </Value>
+    <Value genre="config" index="53" instance="1" label="Energy reports" max="255" min="0" type="short" units="kWh" value="10">
       <Help>Energy level change which will result in sending a new energy report. Available settings:
 0 - energy reports disabled; 
 1-255 (0,01 - 2,55 kWh) - report triggering threshold;
 Default setting: 10 (0,1 kWh)</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="54" label="Self-measurement" size="1" value="0">
+    <Value genre="config" index="54" instance="1" label="Self-measurement" size="1" type="list" value="0">
       <Help>The Dimmer may include active power and energy consumed by itself in reports sent to the main controller.</Help>
-      <Item label="Self-measurement inactive" value="0" />
-      <Item label="Self-measurement active" value="1" />
+      <Item label="Self-measurement inactive" value="0"/>
+      <Item label="Self-measurement active" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="58" label="Method of calculating the active power" size="1" value="0">
+    <Value genre="config" index="58" instance="1" label="Method of calculating the active power" size="1" type="list" value="0">
       <Help>This parameter defines how to calculate active power. This parameter is useful in a case of 2-wire connection with light sources other than resistive. The parameter is set to 0 after forced auto-calibration.</Help>
-      <Item label="power measurement based on the standard algorithm" value="0" />
-      <Item label="approximation based on the calibration data" value="1" />
-      <Item label="approximation based on the control angle" value="2" />
+      <Item label="power measurement based on the standard algorithm" value="0"/>
+      <Item label="approximation based on the calibration data" value="1"/>
+      <Item label="approximation based on the control angle" value="2"/>
     </Value>
-    <Value type="short" genre="config" instance="1" index="59" label="Approximated power at the maximum brightness level" min="0" max="500" units="Watt" value="0">
+    <Value genre="config" index="59" instance="1" label="Approximated power at the maximum brightness level" max="500" min="0" type="short" units="Watt" value="0">
       <Help>This parameter determines the approximate value of the power that will be reported by the device at its maximum brightness level. This parameter works only when parameter 58 has a value other than 0. Available settings: 0-500 (0-500W) - power consumed by the load at the maximum brightness level. Default setting: 0</Help>
     </Value>
   </CommandClass>
-    
   <!-- Map endpoints to instances -->
-  <CommandClass id="96" mapping="endpoints" />
-    
-  <!-- Association Groups -->  
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="5">
-      <Group index="1" max_associations="1" label="Lifeline"/>
-      <Group index="2" max_associations="8" label="On/Off(S1)"/>
-      <Group index="3" max_associations="8" label="Dimmer(S1)"/>
-      <Group index="4" max_associations="8" label="On/Off(S2)"/>
-      <Group index="5" max_associations="8" label="Dimmer(S2)"/>
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off(S1)" max_associations="8"/>
+      <Group index="3" label="Dimmer(S1)" max_associations="8"/>
+      <Group index="4" label="On/Off(S2)" max_associations="8"/>
+      <Group index="5" label="Dimmer(S2)" max_associations="8"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgdw2.xml b/Config/fibaro/fgdw2.xml
index 1387916bb6..d3aa8f39e9 100644
--- a/Config/fibaro/fgdw2.xml
+++ b/Config/fibaro/fgdw2.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Fibaro: FGK101 Door Opening Sensor -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
 
     <!-- Configuration -->
     <CommandClass id="112">
diff --git a/Config/fibaro/fgfs101.xml b/Config/fibaro/fgfs101.xml
index 69315f23c3..bc8d21e2fc 100644
--- a/Config/fibaro/fgfs101.xml
+++ b/Config/fibaro/fgfs101.xml
@@ -1,120 +1,100 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="short" genre="config" instance="1" index="1" label="IN1 Alarm Cancellation Delay" min="0" max="3600" value="0">
+    <Value genre="config" index="1" instance="1" label="IN1 Alarm Cancellation Delay" max="3600" min="0" type="short" value="0">
       <Help>Flood alarm cancellation delay. Additional delay after a flood alarm has ceased. The parameter allows you to specify additional time, after which the flood alarm is cancelled once its violation has ceased.</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="2" label="Acoustic and visual signals" value="3" size="1">
+    <Value genre="config" index="2" instance="1" label="Acoustic and visual signals" size="1" type="list" value="3">
       <Help>Acoustic and visual signals in case of flooding.</Help>
-      <Item label="Signals INACTIVE" value="0" />
-      <Item label="Acoustic INACTIVE, visual ACTIVE" value="1" />
-      <Item label="Acoustic ACTIVE, visual INACTIVE" value="2" />
-      <Item label="Acoustic ACTIVE, visual ACTIVE" value="3" />
+      <Item label="Signals INACTIVE" value="0"/>
+      <Item label="Acoustic INACTIVE, visual ACTIVE" value="1"/>
+      <Item label="Acoustic ACTIVE, visual INACTIVE" value="2"/>
+      <Item label="Acoustic ACTIVE, visual ACTIVE" value="3"/>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="5" label="Type of alarm frame for association group 1" value="255" size="1">
+    <Value genre="config" index="5" instance="1" label="Type of alarm frame for association group 1" size="1" type="list" value="255">
       <Help>Type of alarm frame for association group 1, activated by flood sensor. The parameter allows to specify the type of alarm frame or to force transmission of control commands (BASIC_SET)</Help>
-      <Item label="ALARM WATER" value="0" />
-      <Item label="BASIC_SET" value="255" />
+      <Item label="ALARM WATER" value="0"/>
+      <Item label="BASIC_SET" value="255"/>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="7" label="Forced Level of Dimming group 1" min="1" max="255" value="255">
+    <Value genre="config" index="7" instance="1" label="Forced Level of Dimming group 1" max="255" min="1" type="byte" value="255">
       <Help>Value of the parameter specifying the forced level of dimming / opening sun blinds when comes "switch on" / "open" command to devices from association group no. 1.
 In the case of alarm frames the alarm priority is specified. Possible parameter settings: (1 to 99) and 255. Value of 255 makes it possible to activate the device when using the Dimmer module it means activating the device and setting it to the previous stored condition, e.g. when Dimmer is set to 30%, then deactivated, and then reactivated using command 255, it will automatically be set to the previous condition, i.e. 30%.</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="9" label="Deactivate transmission of frame cancelling alarm" value="1" size="1">
+    <Value genre="config" index="9" instance="1" label="Deactivate transmission of frame cancelling alarm" size="1" type="list" value="1">
       <Help>Deactivating transmission of the frame cancelling the alarm or the control frame deactivating the device (Basic). It allows for disabling the deactivation function or the alarm cancellation function for devices associated with the appropriate input of the Fibaro Sensor. NOTE: Information concerning alarm violation or activation commands for devices from association groups are always sent.</Help>
-      <Item label="Alarm (flooding) cancellation INACTIVE" value="0" />
-      <Item label="Alarm (flooding) cancellation ACTIVE" value="1" />
+      <Item label="Alarm (flooding) cancellation INACTIVE" value="0"/>
+      <Item label="Alarm (flooding) cancellation ACTIVE" value="1"/>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="10" label="Interval between successive readings of temperature sensors" min="1" max="65535" value="300">
+    <Value genre="config" index="10" instance="1" label="Interval between successive readings of temperature sensors" max="65535" min="1" type="short" value="300">
       <Help>Interval between successive readings of temperature from all sensors connected to the device in seconds. Note: taking temperature readings from the sensor does not result in sending a temperature condition report to the central hub.</Help>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="12" label="Insensitiveness to temperature changes." min="1" max="1000" value="50">
+    <Value genre="config" index="12" instance="1" label="Insensitiveness to temperature changes." max="1000" min="1" type="short" value="50">
       <Help>Insensitiveness to temperature changes. This is the maximum acceptable difference between the last reported temperature and the current temperature taken from the sensor. If the temperatures differ by the set value or more, then a report with the current temperature value is sent to the device assigned to association group no. 3. Intervals between taking readings from sensors are specified by parameter no. 10.
 Possible parameter settings:1 to 1000 [each 0.01oC] [0.01oC to 10.00oC].</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="13" label="Transmitting the alarm or control frame broadcast mode" value="0" size="1">
+    <Value genre="config" index="13" instance="1" label="Transmitting the alarm or control frame broadcast mode" size="1" type="list" value="0">
       <Help>Transmitting the alarm or control frame in "broadcast" mode (i.e. to all devices within range), information sent in this mode is not repeated by the mesh network. NOTE: If the broadcast mode of information transmission is activated for a given channel, then transmission of information in singlecast mode to devices assigned to the association group of this channel is deactivated.</Help>
-      <Item label="Broadcasts INACTIVE" value="0" />
-      <Item label="Flood ACTIVE, tamper INACTIVE" value="1" />
-      <Item label="Flood INACTIVE, tamper ACTIVE" value="2" />
-      <Item label="Flood ACTIVE, tamper ACTIVE" value="3" />
+      <Item label="Broadcasts INACTIVE" value="0"/>
+      <Item label="Flood ACTIVE, tamper INACTIVE" value="1"/>
+      <Item label="Flood INACTIVE, tamper ACTIVE" value="2"/>
+      <Item label="Flood ACTIVE, tamper ACTIVE" value="3"/>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="50" label="Low temperature alarm threshold." min="-10000" max="10000" value="1500">
+    <Value genre="config" index="50" instance="1" label="Low temperature alarm threshold." max="10000" min="-10000" type="short" value="1500">
       <Help>The parameter stores a temperature value, below which LED indicator blinks with a colour determined by Parameter 61 settings. By default the LED indicator blinks blue. 
 Possible parameter settings:-10000 to 10000 [each 0.01oC] [-100oC to 100oC].</Help>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="51" label="High temperature alarm threshold." min="-10000" max="10000" value="3500">
+    <Value genre="config" index="51" instance="1" label="High temperature alarm threshold." max="10000" min="-10000" type="short" value="3500">
       <Help>The parameter stores a temperature value, above which LED indicator blinks with a colour determined by Parameter 62 settings. By default the LED indicator blinks red. 
 Possible parameter settings:-10000 to 10000 [each 0.01oC] [-100oC to 100oC].</Help>
     </Value>
-
-    <Value type="int" genre="config" instance="1" index="61" label="Low temperature alarm indicator colour." min="0" max="16777215" value="255">
+    <Value genre="config" index="61" instance="1" label="Low temperature alarm indicator colour." max="16777215" min="0" type="int" value="255">
       <Help>The parameter stores RGB colour value.</Help>
     </Value>
-
-    <Value type="int" genre="config" instance="1" index="62" label="High temperature alarm indicator colour." min="0" max="16777215" value="16711680">
+    <Value genre="config" index="62" instance="1" label="High temperature alarm indicator colour." max="16777215" min="0" type="int" value="16711680">
       <Help>The parameter stores RGB colour value.</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="63" label="Managing a LED indicator under standard operation." value="2" size="1">
+    <Value genre="config" index="63" instance="1" label="Managing a LED indicator under standard operation." size="1" type="list" value="2">
       <Help>Parameter determines LED indicator's operation. Set to 0 turns the indicator off, saving battery life.</Help>
-      <Item label="LED doesn't indicate temperature" value="0" />
-      <Item label="LED indicates temperature (blink) every Temperature Measurement Interval (Parameter 10, constant power + battery) or Wake Up Interval (battery)" value="1" />
-      <Item label="LED indicates temperature constantly, only in constant power mode." value="2" />
+      <Item label="LED doesn't indicate temperature" value="0"/>
+      <Item label="LED indicates temperature (blink) every Temperature Measurement Interval (Parameter 10, constant power + battery) or Wake Up Interval (battery)" value="1"/>
+      <Item label="LED indicates temperature constantly, only in constant power mode." value="2"/>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="73" label="Temperature measurement compensation." min="-10000" max="10000" value="0">
+    <Value genre="config" index="73" instance="1" label="Temperature measurement compensation." max="10000" min="-10000" type="short" value="0">
       <Help>Parameter stores a temperature value to be added to or deducted from the current temperature measured by the internal temperature sensor in order to compensate the difference between air temperature and the temperature at floor level.
 Possible parameter settings:-10000 to 10000 [each 0.01oC] [-100oC to 100oC].</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="74" label="Alarm frame sent to group 2 (tamper/tilt)." value="2" size="1">
+    <Value genre="config" index="74" instance="1" label="Alarm frame sent to group 2 (tamper/tilt)." size="1" type="list" value="2">
       <Help>The device is able to turn on alarms resulting from sensors vibrations, e.g. when the sensor is moved, or the TMP button is released. Group 2 association alarms are not cancelled.</Help>
-      <Item label="Tamper alarms INACTIVE" value="0" />
-      <Item label="Button tamper alarm ACTIVE" value="1" />
-      <Item label="Movement tamper alarm ACTIVE" value="2" />
-      <Item label="Button and movement tamper alarms ACTIVE" value="3" />
+      <Item label="Tamper alarms INACTIVE" value="0"/>
+      <Item label="Button tamper alarm ACTIVE" value="1"/>
+      <Item label="Movement tamper alarm ACTIVE" value="2"/>
+      <Item label="Button and movement tamper alarms ACTIVE" value="3"/>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="75" label="Visual and audible alarm duration" min="0" max="65535" value="0">
+    <Value genre="config" index="75" instance="1" label="Visual and audible alarm duration" max="65535" min="0" type="short" value="0">
       <Help>Parameter determines a time period after which alarm will become 'quiet' - still active but the device will go into battery saving mode. Visual or acoustic alarm will be reactivated after time period specified in Parameter 76. When alarm status ceases, alarm will be turned off immediately.
 Value of 0 means visual and acoustic alarms are active indefinitely. In battery power mode the device will never go to sleep which may shorten battery life significantly.</Help>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="76" label="Alarm frame/basic set frame retransmission time" min="0" max="65535" value="0">
+    <Value genre="config" index="76" instance="1" label="Alarm frame/basic set frame retransmission time" max="65535" min="0" type="short" value="0">
       <Help>Parameter determines a time period after which an alarm frame will be retransmitted.
 Value of 0 cancels an alarm frame retransmission.</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="77" label="Flood sensor functionality turned off." value="0" size="1">
+    <Value genre="config" index="77" instance="1" label="Flood sensor functionality turned off." size="1" type="list" value="0">
       <Help>Allows for turning off the internal flood sensor. Tamper and internal temperature sensors will remain active.</Help>
-      <Item label="Default flood sensor operation (ACTIVE)" value="0" />
-      <Item label="Flood sensor INACTIVE" value="1" />
-    </Value>
-
-   </CommandClass>
-
-  <CommandClass id="96" mapping="endpoints" />
-
+      <Item label="Default flood sensor operation (ACTIVE)" value="0"/>
+      <Item label="Flood sensor INACTIVE" value="1"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
-      <Group index="1" max_associations="5" label="Flood Alarm" auto="false"/>
-      <Group index="2" max_associations="5" label="Tamper Alarm" />
-      <Group index="3" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Flood Alarm" max_associations="5"/>
+      <Group index="2" label="Tamper Alarm" max_associations="5"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/fibaro/fgfs101zw5.xml b/Config/fibaro/fgfs101zw5.xml
index 5a7b02a2de..d1a6b10a98 100644
--- a/Config/fibaro/fgfs101zw5.xml
+++ b/Config/fibaro/fgfs101zw5.xml
@@ -1,90 +1,128 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Fibaro FGFS101 Zwave+ Flood Sensor -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="short" genre="config" instance="1" index="1" label="Alarm Cancellation Delay" min="0" max="3600" value="0">
-            <Help>Determines time period (in seconds) by which a Flood Sensor will retain the flood state after the flooding itself has ceased. The sensor will keep on reporting flooding to the main controller. This parameter setting does not affect acoustic and visual alarms, which turn off immediately after flooding ceases.</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="2" label="Acoustic and visual signals" value="3" size="1">
-            <Help>Acoustic and visual signals in case of flooding.</Help>
-            <Item label="acoustic and visual alarms inactive" value="0" />
-            <Item label="acoustic alarm inactive, visual alarm active" value="1" />
-            <Item label="acoustic alarm active, visual alarm inactive" value="2" />
-            <Item label="acoustic and visual alarms active" value="3" />
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="7" label="Requested dimming level / roller blind opening level when sending turn on / open command to 2nd association group devices" min="1" max="255" value="255">
-            <Help>Determines the requested "on" level to be sent to devices from 2nd association group upon flood event.</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="9" label="Deactivate turning off devices in 2nd association group alarm cancellation in 3rd group" value="1" size="1">
-            <Help>This setting decides whether device turn off commands and alarm cancellation notifications will be sent to devices in 2nd and 3rd association groups (respectively)</Help>
-            <Item label="Alarm (flooding) cancellation INACTIVE" value="0" />
-            <Item label="Alarm (flooding) cancellation ACTIVE" value="1" />
-        </Value>
-        <Value type="short" genre="config" instance="1" index="10" label="Interval between successive readings of temperature sensors" min="1" max="65535" value="300">
-            <Help>Interval between successive readings of temperature from all sensors connected to the device in seconds. Note: taking temperature readings from the sensor does not result in sending a temperature condition report to the central hub.</Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="12" label="Insensitiveness to temperature changes." min="1" max="1000" value="50">
-            <Help>Insensitiveness to temperature changes. This is the maximum acceptable difference between the last reported temperature and the current temperature taken from the sensor. If the temperatures differ by the set value or more, then a report with the current temperature value is sent to the device assigned to association group no. 3. Intervals between taking readings from sensors are specified by parameter no. 10.
+<!-- Fibaro FGFS101 Zwave+ Flood Sensor --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1002:0B01</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgfs101zw5.png</MetaDataItem>
+    <MetaDataItem id="1002" name="ZWProductPage" type="0B01">https://products.z-wavealliance.org/products/1354/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1) Open the cover by turning it counter-clockwise. 
+2) Make sure the sensor is connected to a battery or a DC power supply.
+3) Press and hold the TMP button for 15-20 seconds until LED glows yellow to confirm entering into 4th menu option.
+4) Release and click the TMP button to start reset procedure.
+5) The LED glowing red and then turning off will confirm successful reset. Reset completion will be also confirmed by an acoustic signal.
+Note! Resetting the device is not the recommended way of removing the device from the Z-Wave network. Use reset procedure only if the primary controller is missing or
+inoperable.</MetaDataItem>
+    <MetaDataItem id="1002" name="Identifier" type="0B01">FGFS-101</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1354/FGFS-101-EN-T-v1.0-5.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">FIBARO Flood Sensor will wake up at a defined time interval and will ALWAYS try to communicate with the main controller. There is a possibility to wake up the device manually by clicking the TMP button.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1) Open the cover by turning it counter-clockwise. 
+2) Make sure the sensor is connected to a battery or a DC power supply.
+3) Locate the sensor nearby the main Z-Wave controller.
+4) Set the main Z-Wave controller into learning mode (see main controller’s operating manual).
+5) Quickly, triple click the TMP button located inside the casing.
+6) Wait for the device to be excluded from the system. Successful exclusion will be confirmed by the controller.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1) Open the cover by turning it counter-clockwise.
+2) Remove battery blocker.
+3) Locate the sensor nearby the main Z-Wave controller.
+4) Set the main Z-Wave controller into learning mode (see main controller’s operating manual).
+5) Quickly, triple click the TMP button located inside the casing.
+6) Wait for the device to be included into the system. Successful inclusion will be confirmed by the controller.
+7) Close the cover by turning it clockwise.
+8) Place the sensor onto a surface prone to flooding. Three electrodes underneath the device should evenly touch the surface.
+</MetaDataItem>
+    <MetaDataItem name="Description">FIBARO Flood Sensor is a universal, Z-Wave compatible, flood and temperature sensor. Device can be battery (ca. 2 years battery life) or VDC powered (12 or 24 VDC). FIBARO Flood Sensor is designed to be placed on the floor or on a wall with a flood sensor probes extended by connected wire. Flood alarm is sent to Z-Wave network devices or additionally to any alarm system controller, through opening a NC contact. The device has built-in temperature sensor, monitoring temperature of e.g. floor, LED indicator, acoustic alarm, and is equipped with a tilt sensor, reporting tilt or movement e.g. when someone has taken the Sensor from its original location. LED diode signals flood, operating mode or the Z-Wave network communication range. FIBARO Flood Sensor is sink-proof, which means it drifts on the water surface and keeps on sending alarm signal in case of substantial inundation of water. Flood Sensor is compatible with any Z-Wave or Z-Wave+ Controller.
+https://www.youtube.com/watch?v=8JRxUoHbEN8</MetaDataItem>
+    <MetaDataItem id="1002" name="FrequencyName" type="0B01">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Flood Sensor</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1354/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Alarm Cancellation Delay" max="3600" min="0" type="short" value="0">
+      <Help>Determines time period (in seconds) by which a Flood Sensor will retain the flood state after the flooding itself has ceased. The sensor will keep on reporting flooding to the main controller. This parameter setting does not affect acoustic and visual alarms, which turn off immediately after flooding ceases.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Acoustic and visual signals" size="1" type="list" value="3">
+      <Help>Acoustic and visual signals in case of flooding.</Help>
+      <Item label="acoustic and visual alarms inactive" value="0"/>
+      <Item label="acoustic alarm inactive, visual alarm active" value="1"/>
+      <Item label="acoustic alarm active, visual alarm inactive" value="2"/>
+      <Item label="acoustic and visual alarms active" value="3"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Requested dimming level / roller blind opening level when sending turn on / open command to 2nd association group devices" max="255" min="1" type="byte" value="255">
+      <Help>Determines the requested "on" level to be sent to devices from 2nd association group upon flood event.</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Deactivate turning off devices in 2nd association group alarm cancellation in 3rd group" size="1" type="list" value="1">
+      <Help>This setting decides whether device turn off commands and alarm cancellation notifications will be sent to devices in 2nd and 3rd association groups (respectively)</Help>
+      <Item label="Alarm (flooding) cancellation INACTIVE" value="0"/>
+      <Item label="Alarm (flooding) cancellation ACTIVE" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Interval between successive readings of temperature sensors" max="65535" min="1" type="short" value="300">
+      <Help>Interval between successive readings of temperature from all sensors connected to the device in seconds. Note: taking temperature readings from the sensor does not result in sending a temperature condition report to the central hub.</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Insensitiveness to temperature changes." max="1000" min="1" type="short" value="50">
+      <Help>Insensitiveness to temperature changes. This is the maximum acceptable difference between the last reported temperature and the current temperature taken from the sensor. If the temperatures differ by the set value or more, then a report with the current temperature value is sent to the device assigned to association group no. 3. Intervals between taking readings from sensors are specified by parameter no. 10.
                 Possible parameter settings:1 to 1000 [each 0.01oC] [0.01oC to 10.00oC].</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="50" label="Low temperature alarm threshold." min="-10000" max="10000" value="1500">
-            <Help>The parameter stores a temperature value, below which LED indicator blinks with a colour determined by Parameter 61 settings. By default the LED indicator blinks blue.
+    </Value>
+    <Value genre="config" index="50" instance="1" label="Low temperature alarm threshold." max="10000" min="-10000" type="short" value="1500">
+      <Help>The parameter stores a temperature value, below which LED indicator blinks with a colour determined by Parameter 61 settings. By default the LED indicator blinks blue.
                 Possible parameter settings:-10000 to 10000 [each 0.01oC] [-100oC to 100oC].</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="51" label="High temperature alarm threshold." min="-10000" max="10000" value="3500">
-            <Help>The parameter stores a temperature value, above which LED indicator blinks with a colour determined by Parameter 62 settings. By default the LED indicator blinks red.
+    </Value>
+    <Value genre="config" index="51" instance="1" label="High temperature alarm threshold." max="10000" min="-10000" type="short" value="3500">
+      <Help>The parameter stores a temperature value, above which LED indicator blinks with a colour determined by Parameter 62 settings. By default the LED indicator blinks red.
                 Possible parameter settings:-10000 to 10000 [each 0.01oC] [-100oC to 100oC].</Help>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="61" label="Low temperature alarm indicator colour." min="0" max="16777215" value="255">
-            <Help>The parameter stores RGB colour value.</Help>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="62" label="High temperature alarm indicator colour." min="0" max="16777215" value="16711680">
-            <Help>The parameter stores RGB colour value.</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="63" label="Managing a LED indicator under standard operation." value="2" size="1">
-            <Help>Parameter determines LED indicator's operation. Set to 0 turns the indicator off, saving battery life.</Help>
-            <Item label="LED doesn't indicate temperature" value="0" />
-            <Item label="LED indicates temperature (blink) every Temperature Measurement Interval (Parameter 10, constant power + battery) or Wake Up Interval (battery)" value="1" />
-            <Item label="LED indicates temperature constantly, only in constant power mode." value="2" />
-        </Value>
-        <Value type="short" genre="config" instance="1" index="73" label="Temperature measurement compensation." min="-10000" max="10000" value="0">
-            <Help>Parameter stores a temperature value to be added to or deducted from the current temperature measured by the internal temperature sensor in order to compensate the difference between air temperature and the temperature at floor level.
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Low temperature alarm indicator colour." max="16777215" min="0" type="int" value="255">
+      <Help>The parameter stores RGB colour value.</Help>
+    </Value>
+    <Value genre="config" index="62" instance="1" label="High temperature alarm indicator colour." max="16777215" min="0" type="int" value="16711680">
+      <Help>The parameter stores RGB colour value.</Help>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Managing a LED indicator under standard operation." size="1" type="list" value="2">
+      <Help>Parameter determines LED indicator's operation. Set to 0 turns the indicator off, saving battery life.</Help>
+      <Item label="LED doesn't indicate temperature" value="0"/>
+      <Item label="LED indicates temperature (blink) every Temperature Measurement Interval (Parameter 10, constant power + battery) or Wake Up Interval (battery)" value="1"/>
+      <Item label="LED indicates temperature constantly, only in constant power mode." value="2"/>
+    </Value>
+    <Value genre="config" index="73" instance="1" label="Temperature measurement compensation." max="10000" min="-10000" type="short" value="0">
+      <Help>Parameter stores a temperature value to be added to or deducted from the current temperature measured by the internal temperature sensor in order to compensate the difference between air temperature and the temperature at floor level.
                 Possible parameter settings:-10000 to 10000 [each 0.01oC] [-100oC to 100oC].</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="74" label="Alarm frame sent to 1st and 4th Association Group activation." value="2" size="1">
-            <Help>The device is able to report tamper alarms resulting from sensor tilt/movement or TMP button state change.</Help>
-            <Item label="Tamper alarms INACTIVE" value="0" />
-            <Item label="Button tamper alarm ACTIVE" value="1" />
-            <Item label="Movement tamper alarm ACTIVE" value="2" />
-            <Item label="Button and movement tamper alarms ACTIVE" value="3" />
-        </Value>
-        <Value type="short" genre="config" instance="1" index="75" label="Visual and audible alarm duration" min="0" max="65535" value="0">
-            <Help>Parameter determines a time period after which alarm will become quiet - still active but the device will go into battery saving mode. Visual or acoustic alarm will be reactivated after time period specified in Parameter 76. When alarm status ceases, alarm will be turned off immediately.
+    </Value>
+    <Value genre="config" index="74" instance="1" label="Alarm frame sent to 1st and 4th Association Group activation." size="1" type="list" value="2">
+      <Help>The device is able to report tamper alarms resulting from sensor tilt/movement or TMP button state change.</Help>
+      <Item label="Tamper alarms INACTIVE" value="0"/>
+      <Item label="Button tamper alarm ACTIVE" value="1"/>
+      <Item label="Movement tamper alarm ACTIVE" value="2"/>
+      <Item label="Button and movement tamper alarms ACTIVE" value="3"/>
+    </Value>
+    <Value genre="config" index="75" instance="1" label="Visual and audible alarm duration" max="65535" min="0" type="short" value="0">
+      <Help>Parameter determines a time period after which alarm will become quiet - still active but the device will go into battery saving mode. Visual or acoustic alarm will be reactivated after time period specified in Parameter 76. When alarm status ceases, alarm will be turned off immediately.
                 Value of 0 means visual and acoustic alarms are active indefinitely. In battery power mode the device will never go to sleep which may shorten battery life significantly.</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="76" label="Alarm signalization reactivation period" min="0" max="65535" value="0">
-            <Help>Parameter determines a time period after which an alarm frame will be retransmitted.
+    </Value>
+    <Value genre="config" index="76" instance="1" label="Alarm signalization reactivation period" max="65535" min="0" type="short" value="0">
+      <Help>Parameter determines a time period after which an alarm frame will be retransmitted.
                 Value of 0 cancels an alarm frame retransmission.</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="77" label="Flood sensor functionality turned off." value="0" size="1">
-            <Help>Allows for turning off the internal flood sensor. Tamper and internal temperature sensors will remain active.</Help>
-            <Item label="Default flood sensor operation (ACTIVE)" value="0" />
-            <Item label="Flood sensor INACTIVE" value="1" />
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="78" label="Associations in Z-Wave network security mode" min="0" max="7" value="7">
-            <Help>This parameter defines how commands are sent in specified association groups: as secure or non-secure. Parameter is active only in Z-Wave network security mode. It does not apply to 1st Lifeline group.</Help>
-        </Value>
-    </CommandClass>
-    <CommandClass id="96" mapping="endpoints" />
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="4">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="Flood Control" />
-            <Group index="3" max_associations="5" label="Flood Alarm" />
-            <Group index="4" max_associations="5" label="Tamper Alarm" />
-        </Associations>
-    </CommandClass>
+    </Value>
+    <Value genre="config" index="77" instance="1" label="Flood sensor functionality turned off." size="1" type="list" value="0">
+      <Help>Allows for turning off the internal flood sensor. Tamper and internal temperature sensors will remain active.</Help>
+      <Item label="Default flood sensor operation (ACTIVE)" value="0"/>
+      <Item label="Flood sensor INACTIVE" value="1"/>
+    </Value>
+    <Value genre="config" index="78" instance="1" label="Associations in Z-Wave network security mode" max="7" min="0" type="byte" value="7">
+      <Help>This parameter defines how commands are sent in specified association groups: as secure or non-secure. Parameter is active only in Z-Wave network security mode. It does not apply to 1st Lifeline group.</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Flood Control" max_associations="5"/>
+      <Group index="3" label="Flood Alarm" max_associations="5"/>
+      <Group index="4" label="Tamper Alarm" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fggc001.xml b/Config/fibaro/fggc001.xml
index cad4c4ac87..fc2294be36 100644
--- a/Config/fibaro/fggc001.xml
+++ b/Config/fibaro/fggc001.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Fibaro Swipe FGGC-001 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration -->
     <CommandClass id="112">
         <Value type="list" genre="config" instance="1" index="1" label="Device orientation" min="0" max="3" value="0" size="1">
diff --git a/Config/fibaro/fgk001.xml b/Config/fibaro/fgk001.xml
index 7298400ec2..e254aab875 100644
--- a/Config/fibaro/fgk001.xml
+++ b/Config/fibaro/fgk001.xml
@@ -1,60 +1,65 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Fibaro: FGK101 Door Opening Sensor -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="short" genre="config" instance="1" index="1" label="IN1 Alarm Cancellation Delay" min="0" max="65535" value="0">
-			<Help>Input I alarm cancellation delay. Additional delay after an alarm from input IN1 has ceased. The parameter allows you to specify additional time, after which the input no. 1 alarm is cancelled once its violation has ceased.</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="Status change signalled by LED" min="0" max="1" value="1" size="1">
-			<Help>Status change signalled by LED. Default setting: LED turned On</Help>
-			<Item label="LED turned Off" value="0" />
-			<Item label="LED turned On" value="1" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="3" label="Type of input no. 1" value="1" size="1">
-			<Help>Type of input no. 1, what the input 1 will report if no contact is made</Help>
-			<Item label="NO (Normal Open)" value="0" />
-			<Item label="NC (Normal Close)" value="1" />
-			<Item label="MONOSTABLE" value="2" />
-			<Item label="BISTABLE" value="3" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="5" label="Type of transmitted control frame for association group 1" value="255" size="1">
-			<Help>Type of transmitted control frame for association group 1, activated via input IN1. The parameter allows to specify the type of alarm frame or to force transmission of control commands (BASIC_SET)</Help>
-			<Item label="ALARM GENERIC" value="0" />
-			<Item label="ALARM SMOKE" value="1" />
-			<Item label="ALARM CO" value="2" />
-			<Item label="ALARM CO2" value="3" />
-			<Item label="ALARM HEAT" value="4" />
-			<Item label="ALARM WATER" value="5" />
-			<Item label="BASIC_SET" value="255" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="7" label="Forced Level of Dimming group 1" min="1" max="255" value="255">
-			<Help>Value of the parameter specifying the forced level of dimming / opening sun blinds when comes "switch on" / "open" command to devices from association group no. 1.
+<!-- Fibaro: FGK101 Door Opening Sensor --><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0700</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgk001.png</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0700">https://products.z-wavealliance.org/products/1050/</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0700">FGK-10x</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0700">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Door/Window Sensor</MetaDataItem>
+    <MetaDataItem name="Description">Door/Window Sensor</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1050/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1077/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="2000" name="ZWProductPage" type="0700">https://products.z-wavealliance.org/products/1077/</MetaDataItem>
+    <MetaDataItem id="2000" name="Identifier" type="0700">FGK10x</MetaDataItem>
+    <MetaDataItem id="2000" name="FrequencyName" type="0700">U.S. / Canada / Mexico</MetaDataItem>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="IN1 Alarm Cancellation Delay" max="65535" min="0" type="short" value="0">
+      <Help>Input I alarm cancellation delay. Additional delay after an alarm from input IN1 has ceased. The parameter allows you to specify additional time, after which the input no. 1 alarm is cancelled once its violation has ceased.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Status change signalled by LED" max="1" min="0" size="1" type="list" value="1">
+      <Help>Status change signalled by LED. Default setting: LED turned On</Help>
+      <Item label="LED turned Off" value="0"/>
+      <Item label="LED turned On" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Type of input no. 1" size="1" type="list" value="1">
+      <Help>Type of input no. 1, what the input 1 will report if no contact is made</Help>
+      <Item label="NO (Normal Open)" value="0"/>
+      <Item label="NC (Normal Close)" value="1"/>
+      <Item label="MONOSTABLE" value="2"/>
+      <Item label="BISTABLE" value="3"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Type of transmitted control frame for association group 1" size="1" type="list" value="255">
+      <Help>Type of transmitted control frame for association group 1, activated via input IN1. The parameter allows to specify the type of alarm frame or to force transmission of control commands (BASIC_SET)</Help>
+      <Item label="ALARM GENERIC" value="0"/>
+      <Item label="ALARM SMOKE" value="1"/>
+      <Item label="ALARM CO" value="2"/>
+      <Item label="ALARM CO2" value="3"/>
+      <Item label="ALARM HEAT" value="4"/>
+      <Item label="ALARM WATER" value="5"/>
+      <Item label="BASIC_SET" value="255"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Forced Level of Dimming group 1" max="255" min="1" type="byte" value="255">
+      <Help>Value of the parameter specifying the forced level of dimming / opening sun blinds when comes "switch on" / "open" command to devices from association group no. 1.
 			  In the case of alarm frames the alarm priority is specified. Possible parameter settings: (1 - 99) and 255. Value of 255 makes it possible to activate the device when using the Dimmer module it means activating the device and setting it to the previous stored condition, e.g. when Dimmer is set to 30%, then deactivated, and then reactivated using command 255, it will automatically be set to the previous condition, i.e. 30%.</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="9" label="Deactivate transmission of frame cancelling alarm" value="0" size="1">
-			<Help>Deactivating transmission of the frame cancelling the alarm or the control frame deactivating the device (Basic). It allows for disabling the deactivation function or the alarm cancellation function for devices associated with the appropriate input of the Fibaro Sensor. NOTE: Information concerning alarm violation or activation commands for devices from association groups are always sent.</Help>
-			<Item label="Groups 1 and 2 sent" value="0" />
-			<Item label="Group 1 sent, Group 2 not sent." value="1" />
-			<Item label="Group 1 not sent, Group 2 sent." value="2" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="10" label="Interval between successive readings of temperature sensors" min="1" max="255" value="20">
-			<Help>Interval between successive readings of temperature from all sensors connected to the device in seconds. Note: taking temperature readings from the sensor does not result in sending a temperature condition report to the central hub.</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="11" label="Interval between forcing to send report concerning the temperature conditions" min="0" max="255" value="200">
-			<Help>Interval between forcing to send report concerning the temperature conditions. The forced report is sent immediately after the next reading of temperature from the sensor, irrespective of the settings of parameter no. 12. Value 0 = Deactivates the function. Note: Frequent sending of temperature condition reports is reasonable when the sensor is located somewhere where can occur rapid changes of ambient temperature. In other cases it is recommended to leave the parameter set to the default value.</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="12" label="Insensitiveness to temperature changes" min="0" max="255" value="8">
-			<Help>Insensitiveness to temperature changes. This is the maximum acceptable difference between the last reported temperature and the current temperature taken from the sensor. If the temperatures differ by the set value or more, then a report with the current temperature value is sent to the device assigned to association group no. 3. Intervals between taking readings from sensors are specified by parameter no. 10.
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Deactivate transmission of frame cancelling alarm" size="1" type="list" value="0">
+      <Help>Deactivating transmission of the frame cancelling the alarm or the control frame deactivating the device (Basic). It allows for disabling the deactivation function or the alarm cancellation function for devices associated with the appropriate input of the Fibaro Sensor. NOTE: Information concerning alarm violation or activation commands for devices from association groups are always sent.</Help>
+      <Item label="Groups 1 and 2 sent" value="0"/>
+      <Item label="Group 1 sent, Group 2 not sent." value="1"/>
+      <Item label="Group 1 not sent, Group 2 sent." value="2"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Interval between successive readings of temperature sensors" max="255" min="1" type="byte" value="20">
+      <Help>Interval between successive readings of temperature from all sensors connected to the device in seconds. Note: taking temperature readings from the sensor does not result in sending a temperature condition report to the central hub.</Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Interval between forcing to send report concerning the temperature conditions" max="255" min="0" type="byte" value="200">
+      <Help>Interval between forcing to send report concerning the temperature conditions. The forced report is sent immediately after the next reading of temperature from the sensor, irrespective of the settings of parameter no. 12. Value 0 = Deactivates the function. Note: Frequent sending of temperature condition reports is reasonable when the sensor is located somewhere where can occur rapid changes of ambient temperature. In other cases it is recommended to leave the parameter set to the default value.</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Insensitiveness to temperature changes" max="255" min="0" type="byte" value="8">
+      <Help>Insensitiveness to temperature changes. This is the maximum acceptable difference between the last reported temperature and the current temperature taken from the sensor. If the temperatures differ by the set value or more, then a report with the current temperature value is sent to the device assigned to association group no. 3. Intervals between taking readings from sensors are specified by parameter no. 10.
 			  Possible parameter settings:0 - 255 [0oC to 16oC] [0 oF - 28.8oF]
 			  In order to set the appropriate value of the parameter, the following formula should be used:
 			  x = delta T x 16 - for Celsius
@@ -62,33 +67,32 @@
 			  x - parameter value
 			  delta T - maximum acceptable temperature gradient in Celsius or Fahrenheit
 			  If the value is set to 0, then information about the temperature will be sent every time, immediately once the readings have been taken from the sensor.</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="13" label="Transmitting the alarm or control frame broadcast mode" value="0" size="1">
-			<Help>Transmitting the alarm or control frame in "broadcast" mode (i.e. to all devices within range), information sent in this mode is not repeated by the mesh network. NOTE: If the broadcast mode of information transmission is activated for a given channel, then transmission of information in singlecast mode to devices assigned to the association group of this channel is deactivated.</Help>
-			<Item label="IN1 and IN2 Broadcast inactive" value="0" />
-			<Item label="IN1 broadcast mode active, Sensor 2 broadcast mode inactive" value="1" />
-			<Item label="IN1 broadcast mode inactive, Sensor 2 broadcast mode active" value="2" />
-			<Item label="INI and IN2 broadcast mode active" value="3" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="14" label="Scene activation" value="0" size="1">
-			<Help>Enable/Disable scene functionality. The device offers the possibility of sending commands compatible with Command class scene activation. Information is sent to devices assigned to association group no. 3.</Help>
-			<Item label="Scenes disabled" value="0" />
-			<Item label="Scenes enabled" value="1" />
-		</Value>
-	</CommandClass>
-
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="5" label="Input IN1" auto="false"/>
-			<Group index="2" max_associations="5" label="TMP Button"/>
-			<Group index="3" max_associations="1" label="Lifeline" auto="true"/>
-		</Associations>
-	</CommandClass>
-
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Transmitting the alarm or control frame broadcast mode" size="1" type="list" value="0">
+      <Help>Transmitting the alarm or control frame in "broadcast" mode (i.e. to all devices within range), information sent in this mode is not repeated by the mesh network. NOTE: If the broadcast mode of information transmission is activated for a given channel, then transmission of information in singlecast mode to devices assigned to the association group of this channel is deactivated.</Help>
+      <Item label="IN1 and IN2 Broadcast inactive" value="0"/>
+      <Item label="IN1 broadcast mode active, Sensor 2 broadcast mode inactive" value="1"/>
+      <Item label="IN1 broadcast mode inactive, Sensor 2 broadcast mode active" value="2"/>
+      <Item label="INI and IN2 broadcast mode active" value="3"/>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Scene activation" size="1" type="list" value="0">
+      <Help>Enable/Disable scene functionality. The device offers the possibility of sending commands compatible with Command class scene activation. Information is sent to devices assigned to association group no. 3.</Help>
+      <Item label="Scenes disabled" value="0"/>
+      <Item label="Scenes enabled" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group auto="false" index="1" label="Input IN1" max_associations="5"/>
+      <Group index="2" label="TMP Button" max_associations="5"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgk10x.xml b/Config/fibaro/fgk10x.xml
index 62c5845d9b..59a4f3f8cb 100644
--- a/Config/fibaro/fgk10x.xml
+++ b/Config/fibaro/fgk10x.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Fibaro: FGK101 Door Opening Sensor -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
 
 	<!-- Configuration -->
 	<CommandClass id="112">
diff --git a/Config/fibaro/fgkf601.xml b/Config/fibaro/fgkf601.xml
index 17d741eb9d..745ad9e3ac 100644
--- a/Config/fibaro/fgkf601.xml
+++ b/Config/fibaro/fgkf601.xml
@@ -2,7 +2,7 @@
 
 <!-- Fibaro: FGKF-601 Keyfob -->
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
 	<!-- Configuration -->
 	<CommandClass id="112">	
 		<Value type="short" genre="config" instance="1" index="1" label="Lock Mode - unlocking sequence" min="0" max="28086" value="0">
diff --git a/Config/fibaro/fgms.xml b/Config/fibaro/fgms.xml
index 98223e151a..fa43926a37 100644
--- a/Config/fibaro/fgms.xml
+++ b/Config/fibaro/fgms.xml
@@ -1,21 +1,35 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!--
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1001:0800</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgms.png</MetaDataItem>
+    <MetaDataItem id="1001" name="ZWProductPage" type="0800">https://products.z-wavealliance.org/products/1048/</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Motion Sensor</MetaDataItem>
+    <MetaDataItem id="1001" name="FrequencyName" type="0800">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Motion Sensor</MetaDataItem>
+    <MetaDataItem id="1001" name="Identifier" type="0800">FGMS-001 (EU)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1048/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1076/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="2001" name="ZWProductPage" type="0800">https://products.z-wavealliance.org/products/1076/</MetaDataItem>
+    <MetaDataItem id="2001" name="FrequencyName" type="0800">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="2001" name="Identifier" type="0800">FGMS-001</MetaDataItem>
+  </MetaData>
+  <!--
 	Fibaro Motion Sensor FGMS-001
 	http://www.fibaro.com/manuals/en/Motion-Sensor/Motion-Sensor_EN_5.3.14.pdf
 	-->
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="byte" genre="config" instance="1" index="1" label="Motion sensor's sensitivity" min="0" max="255" value="10">
-	<Help>
+    <Value genre="config" index="1" instance="1" label="Motion sensor's sensitivity" max="255" min="0" type="byte" value="10">
+      <Help>
 		The lower the value, the more sensitive the PIR sensor.
 		Available settings: 8 - 255
 		Default setting: 10
 	</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="2" label="Motion sensor's blind time (insensitivity)" min="0" max="15" value="15">
-	<Help>
+    <Value genre="config" index="2" instance="1" label="Motion sensor's blind time (insensitivity)" max="15" min="0" type="byte" value="15">
+      <Help>
 		Period of time through which the PIR sensor is "blind" (insensitive) to
 		motion. After this time period the PIR sensor will be again able to
 		detect motion. The longer the insensitivity period, the longer the
@@ -27,8 +41,8 @@
 		Default setting: 15 (8 seconds)
 	</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="3" label="PIR sensor's pulse counter" min="0" max="3" value="1" size="1">
-	<Help>
+    <Value genre="config" index="3" instance="1" label="PIR sensor's pulse counter" max="3" min="0" size="1" type="list" value="1">
+      <Help>
 		Sets the number of moves required for the PIR sensor to report
 		motion. The lower the value, the less sensitive the PIR sensor. It's
 		not recommended to modify this parameter settings.
@@ -36,13 +50,13 @@
 		Formula to calculate the number of pulses: pulses = (value + 1)
 		Default setting: 1 (2 pulses)
 	</Help>
-	<Item label="1 pulse" value="0" />
-	<Item label="2 pulses" value="1" />
-	<Item label="3 pulses" value="2" />
-	<Item label="4 pulses" value="3" />
+      <Item label="1 pulse" value="0"/>
+      <Item label="2 pulses" value="1"/>
+      <Item label="3 pulses" value="2"/>
+      <Item label="4 pulses" value="3"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="4" label="PIR sensor's window time" min="0" max="3" value="2" size="1">
-	<Help>
+    <Value genre="config" index="4" instance="1" label="PIR sensor's window time" max="3" min="0" size="1" type="list" value="2">
+      <Help>
 		Period of time during which the number of moves set in parameter 3
 		must be detected in order for the PIR sensor to report motion. The
 		higher the value, the more sensitive the PIR sensor. It's not
@@ -51,13 +65,13 @@
 		Formula to calculate the time: time [s] = 4 x (value + 1)
 		Default setting: 2 (12 seconds)
 	</Help>
-	<Item label="4 seconds" value="0" />
-	<Item label="8 seconds" value="1" />
-	<Item label="12 seconds" value="2" />
-	<Item label="16 seconds" value="3" />
+      <Item label="4 seconds" value="0"/>
+      <Item label="8 seconds" value="1"/>
+      <Item label="12 seconds" value="2"/>
+      <Item label="16 seconds" value="3"/>
     </Value>
-    <Value type="short" genre="config" instance="1" index="6" label="Motion alarm cancellation delay" min="0" max="65535" value="30">
-	<Help>
+    <Value genre="config" index="6" instance="1" label="Motion alarm cancellation delay" max="65535" min="0" type="short" value="30">
+      <Help>
 		Motion alarm will be cancelled in the main controller and the
 		associated devices after the period of time set in this parameter. Any
 		motion detected during the cancellation delay time countdown will
@@ -68,40 +82,40 @@
 		Default setting: 30 (30 seconds)
 	</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="8" label="PIR sensor operating mode" min="0" max="2" value="0" size="1">
-	<Help>
+    <Value genre="config" index="8" instance="1" label="PIR sensor operating mode" max="2" min="0" size="1" type="list" value="0">
+      <Help>
 		The parameter determines the part of day in which the PIR sensor
 		will be active. This parameter influences only the motion reports and
 		associations. Tamper, light intensity and temperature measurements
 		will be still active, regardless of this parameter settings.
 		Default setting: 0 (always active)
 	</Help>
-	<Item label="PIR sensor always active" value="0" />
-	<Item label="PIR sensor active during the day only" value="1" />
-	<Item label="PIR sensor active during the night only" value="2" />
+      <Item label="PIR sensor always active" value="0"/>
+      <Item label="PIR sensor active during the day only" value="1"/>
+      <Item label="PIR sensor active during the night only" value="2"/>
     </Value>
-    <Value type="short" genre="config" instance="1" index="9" label="Night / day" min="0" max="65535" value="200">
-	<Help>
+    <Value genre="config" index="9" instance="1" label="Night / day" max="65535" min="0" type="short" value="200">
+      <Help>
 		The parameter defines the difference between night and day, in
 		terms of light intensity, used in parameter 8.
 		Available settings: 1 - 65535
 		Default setting: 200 (200 lux)
 	</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="12" label="Basic command class frames configuration" min="0" max="2" value="0" size="1">
-	<Help>
+    <Value genre="config" index="12" instance="1" label="Basic command class frames configuration" max="2" min="0" size="1" type="list" value="0">
+      <Help>
 		The parameter determines the command frames sent in 1-st
 		association group, assigned to PIR sensor.
 		Values of BASIC ON and BASIC OFF command frames may be
 		modified by dedicated parameters.
 		Default setting: 0 (ON and OFF)
 	</Help>
-	<Item label="BASIC ON and BASIC OFF command frames sent in Basic Command Class." value="0" />
-	<Item label="only the BASIC ON command frame sent in Basic Command Class." value="1" />
-	<Item label="only the BASIC OFF command frame sent in Basic Command Class." value="2" />
+      <Item label="BASIC ON and BASIC OFF command frames sent in Basic Command Class." value="0"/>
+      <Item label="only the BASIC ON command frame sent in Basic Command Class." value="1"/>
+      <Item label="only the BASIC OFF command frame sent in Basic Command Class." value="2"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="14" label="BASIC ON command frame value" min="0" max="255" value="255">
-	<Help>
+    <Value genre="config" index="14" instance="1" label="BASIC ON command frame value" max="255" min="0" type="byte" value="255">
+      <Help>
 		The value of 255 allows to turn ON a device. In case of the Dimmer,
 		the value of 255 means turning ON at the last memorized state, e.g.
 		the Dimmer turned ON at 30% and turned OFF using the value of
@@ -111,8 +125,8 @@
 		Default setting: 255
 	</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="16" label="BASIC OFF command frame value" min="0" max="255" value="0">
-	<Help>
+    <Value genre="config" index="16" instance="1" label="BASIC OFF command frame value" max="255" min="0" type="byte" value="0">
+      <Help>
 		The command frame sent at the moment of motion alarm
 		cancellation, after the cancellation delay time, specified in parameter
 		6, has passed.
@@ -125,8 +139,8 @@
 		Default setting: 0
 	</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="20" label="Tamper sensitivity" min="0" max="122" value="15">
-	<Help>
+    <Value genre="config" index="20" instance="1" label="Tamper sensitivity" max="122" min="0" type="byte" value="15">
+      <Help>
 		The parameter determines the changes in forces acting on the Fibaro
 		Motion Sensor resulting in tamper alarm being reported - g-force
 		acceleration.
@@ -134,8 +148,8 @@
 		Default setting: 15 (0.224g)
 	</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="22" label="Tamper alarm cancellation delay" min="0" max="65535" value="30">
-	<Help>
+    <Value genre="config" index="22" instance="1" label="Tamper alarm cancellation delay" max="65535" min="0" type="short" value="30">
+      <Help>
 		Time period after which a tamper alarm will be cancelled. Another
 		tampering detected during the countdown to cancellation will not
 		extend the delay.
@@ -143,8 +157,8 @@
 		Default setting: 30 (seconds)
 	</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="24" label="Tamper operating modes" min="0" max="4" value="0" size="1">
-	<Help>
+    <Value genre="config" index="24" instance="1" label="Tamper operating modes" max="4" min="0" size="1" type="list" value="0">
+      <Help>
 		The parameter determines the behaviour of tamper and how it
 		reports.
 		Tamper: Tamper alarm is reported in Sensor Alarm command class.
@@ -158,25 +172,25 @@
 		Sensor Alarm command class.
 		Default setting: 0 (Tamper)
 	</Help>
-	<Item label="Tamper" value="0" />
-	<Item label="Tamper + Cancellation" value="1" />
-	<Item label="Tamper + Orientation" value="2" />
-	<Item label="Tamper + Cancellation + Orientation" value="3" />
-	<Item label="Vibration" value="4" />
+      <Item label="Tamper" value="0"/>
+      <Item label="Tamper + Cancellation" value="1"/>
+      <Item label="Tamper + Orientation" value="2"/>
+      <Item label="Tamper + Cancellation + Orientation" value="3"/>
+      <Item label="Vibration" value="4"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="26" label="Tamper alarm broadcast mode" min="0" max="1" value="0" size="1">
-	<Help>
+    <Value genre="config" index="26" instance="1" label="Tamper alarm broadcast mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>
 		The parameter determines whether the tamper alarm frame will or
 		will not be sent in broadcast mode. Alarm frames sent in broadcast
 		mode may be received by all of the devices within communication
 		range (if they accept such frames).
 		Default setting: 0
 	</Help>
-	<Item label="Tamper alarm is not sent in broadcast mode." value="0" />
-	<Item label="Tamper alarm sent in broadcast mode." value="1" />
+      <Item label="Tamper alarm is not sent in broadcast mode." value="0"/>
+      <Item label="Tamper alarm sent in broadcast mode." value="1"/>
     </Value>
-    <Value type="short" genre="config" instance="1" index="40" label="Illumination report threshold" min="0" max="65535" value="200">
-	<Help>
+    <Value genre="config" index="40" instance="1" label="Illumination report threshold" max="65535" min="0" type="short" value="200">
+      <Help>
 		The parameter determines the change in light intensity level
 		resulting in illumination report being sent to the main controller.
 		Available settings: 0 - 65535 (1 - 65535 lux; 0 = reports are not
@@ -184,8 +198,8 @@
 		Default setting: 200 (200 lux)
 	</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="42" label="Illumination reports interval" min="0" max="65535" value="0">
-	<Help>
+    <Value genre="config" index="42" instance="1" label="Illumination reports interval" max="65535" min="0" type="short" value="0">
+      <Help>
 		Time interval between consecutive illumination reports. The reports
 		are sent even if there are no changes in the light intensity.
 		Available settings: 0 - 65535 (1 - 65535 seconds; 0 = reports are
@@ -197,16 +211,16 @@
 		temperature reports.
 	</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="60" label="Temperature report threshold" min="0" max="255" value="10">
-	<Help>
+    <Value genre="config" index="60" instance="1" label="Temperature report threshold" max="255" min="0" type="byte" value="10">
+      <Help>
 		The parameter determines the change in level of temperature
 		resulting in temperature report being sent to the main controller.
 		Available settings: 0 - 255 (0.1 - 25.5C; 0 = reports are not sent)
 		Default setting: 10 (1C)
 	</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="62" label="Interval of temperature measuring" min="0" max="65535" value="900">
-	<Help>
+    <Value genre="config" index="62" instance="1" label="Interval of temperature measuring" max="65535" min="0" type="short" value="900">
+      <Help>
 		The parameter determines how often the temperature will be
 		measured. The shorter the time, the more frequently the temperature
 		will be measured, but the battery life will shorten.
@@ -219,8 +233,8 @@
 		illumination reports.
 	</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="64" label="Temperature reports interval" min="0" max="65535" value="0">
-	<Help>
+    <Value genre="config" index="64" instance="1" label="Temperature reports interval" max="65535" min="0" type="short" value="0">
+      <Help>
 		The parameter determines how often the temperature reports will be
 		sent to the main controller.
 		Available settings: 0 - 65535 (1 - 65535 seconds; 0 = reports are not
@@ -228,16 +242,16 @@
 		Default setting: 0
 	</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="66" label="Temperature offset" min="0" max="65535" value="0">
-	<Help>
+    <Value genre="config" index="66" instance="1" label="Temperature offset" max="65535" min="0" type="short" value="0">
+      <Help>
 		The value to be added to the actual temperature, measured by the
 		sensor (temperature compensation).
 		Available settings: 0 - 100 (0 to 100C) or 64536 - 65535 (-100 to -0.10C)
 		Default setting: 0
 	</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="80" label="LED signaling mode" min="0" max="26" value="10" size="1">
-	<Help>
+    <Value genre="config" index="80" instance="1" label="LED signaling mode" max="26" min="0" size="1" type="list" value="10">
+      <Help>
 		The parameter determines the way in which LED behaves
 		after motion has been detected.
 		Values 1 and from 3 to 9 = single long blink at the moment of reporting
@@ -248,36 +262,36 @@
 		motion and two short blinks each time the motion is detected again.
 		Default setting: 10 (flashlight)
 	</Help>
-	<Item label="LED inactive." value="0" />
-	<Item label="1 long blink, LED colour depends on the temperature. Set by parameters 86 and 87." value="1" />
-	<Item label="Flashlight mode - LED glows in white for 10 seconds." value="2" />
-	<Item label="Long blink White." value="3" />
-	<Item label="Long blink Red." value="4" />
-	<Item label="Long blink Green." value="5" />
-	<Item label="Long blink Blue." value="6" />
-	<Item label="Long blink Yellow." value="7" />
-	<Item label="Long blink Cyan." value="8" />
-	<Item label="Long blink Magenta." value="9" />
-	<Item label="Long blink, then short blink, LED colour depends on the temperature. Set by parameters 86 and 87." value="10" />
-	<Item label="Flashlight mode - LED glows in white through 10 seconds.  Each next detected motion extends the glowing by next 10 seconds." value="11" />
-	<Item label="Long blink, then short blinks White." value="12" />
-	<Item label="Long blink, then short blinks Red." value="13" />
-	<Item label="Long blink, then short blinks Green." value="14" />
-	<Item label="Long blink, then short blinks Blue." value="15" />
-	<Item label="Long blink, then short blinks Yellow." value="16" />
-	<Item label="Long blink, then short blinks Cyan" value="17" />
-	<Item label="Long blink, then short blinks Magenta" value="18" />
-	<Item label="Long blink, then 2 short blinks, LED colour depends on the temperature. Set by parameters 86 and 87." value="19" />
-	<Item label="Long blink, then 2 short blinks White" value="20" />
-	<Item label="Long blink, then 2 short blinks Red" value="21" />
-	<Item label="Long blink, then 2 short blinks Green" value="22" />
-	<Item label="Long blink, then 2 short blinks Blue" value="23" />
-	<Item label="Long blink, then 2 short blinks Yellow" value="24" />
-	<Item label="Long blink, then 2 short blinks Cyan" value="25" />
-	<Item label="Long blink, then 2 short blinks Magenta" value="26" />
+      <Item label="LED inactive." value="0"/>
+      <Item label="1 long blink, LED colour depends on the temperature. Set by parameters 86 and 87." value="1"/>
+      <Item label="Flashlight mode - LED glows in white for 10 seconds." value="2"/>
+      <Item label="Long blink White." value="3"/>
+      <Item label="Long blink Red." value="4"/>
+      <Item label="Long blink Green." value="5"/>
+      <Item label="Long blink Blue." value="6"/>
+      <Item label="Long blink Yellow." value="7"/>
+      <Item label="Long blink Cyan." value="8"/>
+      <Item label="Long blink Magenta." value="9"/>
+      <Item label="Long blink, then short blink, LED colour depends on the temperature. Set by parameters 86 and 87." value="10"/>
+      <Item label="Flashlight mode - LED glows in white through 10 seconds.  Each next detected motion extends the glowing by next 10 seconds." value="11"/>
+      <Item label="Long blink, then short blinks White." value="12"/>
+      <Item label="Long blink, then short blinks Red." value="13"/>
+      <Item label="Long blink, then short blinks Green." value="14"/>
+      <Item label="Long blink, then short blinks Blue." value="15"/>
+      <Item label="Long blink, then short blinks Yellow." value="16"/>
+      <Item label="Long blink, then short blinks Cyan" value="17"/>
+      <Item label="Long blink, then short blinks Magenta" value="18"/>
+      <Item label="Long blink, then 2 short blinks, LED colour depends on the temperature. Set by parameters 86 and 87." value="19"/>
+      <Item label="Long blink, then 2 short blinks White" value="20"/>
+      <Item label="Long blink, then 2 short blinks Red" value="21"/>
+      <Item label="Long blink, then 2 short blinks Green" value="22"/>
+      <Item label="Long blink, then 2 short blinks Blue" value="23"/>
+      <Item label="Long blink, then 2 short blinks Yellow" value="24"/>
+      <Item label="Long blink, then 2 short blinks Cyan" value="25"/>
+      <Item label="Long blink, then 2 short blinks Magenta" value="26"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="81" label="LED brightness" min="0" max="100" value="50">
-	<Help>
+    <Value genre="config" index="81" instance="1" label="LED brightness" max="100" min="0" type="byte" value="50">
+      <Help>
 		The parameter determines the brightness of LED when indicating
 		motion.
 		Available settings: 0 - 100 (1 - 100%; 0 = brightness determined by
@@ -285,15 +299,15 @@
 		Default setting: 50
 	</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="82" label="Ambient illumination level below which LED brightness is set to 1%" min="0" max="65535" value="100">
-	<Help>
+    <Value genre="config" index="82" instance="1" label="Ambient illumination level below which LED brightness is set to 1%" max="65535" min="0" type="short" value="100">
+      <Help>
 		The parameter is relevant only when the parameter 81 is set to 0.
 		Available settings: 0 to parameter 83 value
 		Default setting: 100 (100 lux)
 	</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="83" label="Ambient illumination level above which LED brightness is set to 100%" min="0" max="65535" value="1000">
-	<Help>
+    <Value genre="config" index="83" instance="1" label="Ambient illumination level above which LED brightness is set to 100%" max="65535" min="0" type="short" value="1000">
+      <Help>
 		The parameter is relevant only when the parameter 81 is set to 0.
 		Available settings: parameter 82 value to 65535
 		Default setting: 1000 (1000 lux)
@@ -302,42 +316,43 @@
 		the value of the parameter 82.
 	</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="86" label="Minimum temperature resulting in blue LED illumination" min="0" max="255" value="18">
-	<Help>
+    <Value genre="config" index="86" instance="1" label="Minimum temperature resulting in blue LED illumination" max="255" min="0" type="byte" value="18">
+      <Help>
 		This parameter is relevant only when parameter 80 has been
 		properly configured.
 		Available settings: 0 to parameter 87 value (degrees Celsius)
 		Default setting: 18 (18C)
 	</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="87" label="Maximum temperature resulting in red LED illumination" min="0" max="255" value="28">
-	<Help>
+    <Value genre="config" index="87" instance="1" label="Maximum temperature resulting in red LED illumination" max="255" min="0" type="byte" value="28">
+      <Help>
 		This parameter is relevant only when parameter 80 has been
 		properly configured.
 		Available settings: parameter 86 value to 255 (degrees Celsius)
 		Default setting: 28 (28C)
 	</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="89" label="LED indicating tamper alarm" min="0" max="1" value="1" size="1">
-	<Help>
+    <Value genre="config" index="89" instance="1" label="LED indicating tamper alarm" max="1" min="0" size="1" type="list" value="1">
+      <Help>
 		Indicating mode resembles a police car (white, red and blue).
 		Default setting: 1 (on)
 	</Help>
-	<Item label="LED does not indicate tamper alarm." value="0" />
-	<Item label="LED indicates tamper alarm." value="1" />
+      <Item label="LED does not indicate tamper alarm." value="0"/>
+      <Item label="LED indicates tamper alarm." value="1"/>
     </Value>
-   </CommandClass>
-
-   <!-- Basic set as report -->
-   <CommandClass id="32" setasreport="true"/>
-
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
-      <Group index="1" max_associations="5" label="Basic Report"/>
-      <Group index="2" max_associations="5" label="Tamper Alarm"/>
-      <Group index="3" max_associations="1" label="Lifeline" auto="true"/>
+      <Group index="1" label="Basic Report" max_associations="5"/>
+      <Group index="2" label="Tamper Alarm" max_associations="5"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/fibaro/fgmszw5.xml b/Config/fibaro/fgmszw5.xml
index 30f273a02b..75cd33756f 100644
--- a/Config/fibaro/fgmszw5.xml
+++ b/Config/fibaro/fgmszw5.xml
@@ -1,103 +1,143 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1001:0801</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgmszw5.png</MetaDataItem>
+    <MetaDataItem id="1001" name="ZWProductPage" type="0801">https://products.z-wavealliance.org/products/1146/</MetaDataItem>
+    <MetaDataItem id="1001" name="Identifier" type="0801">FGMS-001</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1) Make sure tampering the device will not result in undesirable effects. Dismounting the sensor can trigger an alarm.
+2) Open the sensor’s casing by turning the cover counter-clockwise. Enclosure lock is marked with a dot.
+3) Make sure the sensor's battery is unlocked.
+4) Set the main controller into learning mode (see main controller’s operating manual).
+5) Quickly, triple click the B-button, located inside Fibaro Motion Sensor’s casing. LED diode will glow blue confirming that the device has sent the Node Info Z-Wave command frame.
+</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Motion Sensor</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1146/FGMS-001-EN-A-v1.02.pdf</MetaDataItem>
+    <MetaDataItem name="Description">FIBARO Motion Sensor is a highly advanced ultra-small, battery powered multi-sensor. This device detects movement, measures the current ambient temperature, intensity of the light and thanks to built-in accelerometer detects vibrations. FIBARO Motion Sensor is a completely wireless and mobile device. Depending on user-defined situation in the settings panel it’s eye will shine in different colours, alerting you whenever the temperature and light intensity changes, or when it detects the movement in the room. The battery can last up to 2 years while its level is automatically reported to the central unit. The notification is being sent to the central hub when the battery level approaches to critical.
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!--
+Product video: 
+https://www.youtube.com/watch?v=R_I2p1Tq2QU</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">The Fibaro Motion Sensor can be included into the Z-Wave network by using the B-button. 
+1) Open the sensor’s casing by turning the cover counter-clockwise. Enclosure lock is marked with a dot.
+2) Unlock battery by removing “I'm ready” stripe.
+3) Make sure the device is located within the direct range of the main controller.
+4) Set the main controller into learning mode (see main controller’s operating manual).
+5) Quickly, triple click the B-button - LED diode will glow blue to confirm setting into learning mode.
+6) Fibaro Motion Sensor will be detected and included into the Z-Wave network. Wait for the main controller to configure the sensor.
+7) If necessary, wake up the Motion Sensor by clicking the B-button.
+8) Close the sensor’s casing and install the device in desired place.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please use this procedure in the event that the system’s primary controller is missing or is inoperable.
+
+To reset the device: 
+1) Make sure the battery works and it’s correctly placed.
+2) Press and hold the B-button for 4-6 seconds until the LED glows yellow signaling the 2nd option of the menu mode.
+3) Release the B-button.
+4) Again, press the B-button briefly. Successful reset will be confirmed with the LED changing colour to red and fading.
+
+For more information please check the user's manual.
+</MetaDataItem>
+    <MetaDataItem id="1001" name="FrequencyName" type="0801">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">The Motion Sensor will wake up at a defined time interval and will ALWAYS try to communicate with the main controller. There is a possibility to wake up the device manually by clicking the B-button.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1146/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!--
 	Fibaro Motion Sensor FGMS-001-ZW5
 	http://manuals.fibaro.com/content/manuals/en/FGMS-001/FGMS-001-EN-T-v2.0.pdf
 	-->
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="1" label="Motion detection - sensitivity" min="0" max="255" value="15">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Motion detection - sensitivity" max="255" min="0" type="byte" value="15">
+      <Help>
 				The lower the value, the more sensitive the PIR sensor is.
 				Available settings: 8 - 255
 				Default setting: 15
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="2" label="Motion detection - blind time" min="0" max="15" value="3">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Motion detection - blind time" max="15" min="0" type="byte" value="3">
+      <Help>
 				PIR sensor is blind (insensitive) to motion after last detection for the amount of time specified in this parameter.
 				Shorter time periods allow to detect motion more frequently, but the battery will be drained faster.
 				Available settings: 0 - 15 (0.5-8 seconds).
 				Formula to calculate the time: time [s] = 0.5 x (value+1))
 				Default setting: 3
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Motion detection - pulse counter" min="0" max="3" value="1" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Motion detection - pulse counter" max="3" min="0" size="1" type="list" value="1">
+      <Help>
 				This parameter determines the number of moves required for the PIR sensor to report motion. The higher the value, the less sensitive the PIR sensor is.
 				It is not recommended to modify this parameter settings!
 				Default setting: 1 (2 pulses)
 			</Help>
-			<Item label="1 pulse" value="0" />
-			<Item label="2 pulses" value="1" />
-			<Item label="3 pulses" value="2" />
-			<Item label="4 pulses" value="3" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="4" label="Motion detection - window time" min="0" max="3" value="2" size="1">
-			<Help>
+      <Item label="1 pulse" value="0"/>
+      <Item label="2 pulses" value="1"/>
+      <Item label="3 pulses" value="2"/>
+      <Item label="4 pulses" value="3"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Motion detection - window time" max="3" min="0" size="1" type="list" value="2">
+      <Help>
 				Period of time during which the number of moves set in parameter 3 must be detected in order for the PIR sensor to report motion.
 				The higher the value, the more sensitive the PIR sensor is.
 				It is not recommended to modify this parameter setting!
 				Default setting: 2 (12 seconds)
 			</Help>
-			<Item label="4 seconds" value="0" />
-			<Item label="8 seconds" value="1" />
-			<Item label="12 seconds" value="2" />
-			<Item label="16 seconds" value="3" />
-		</Value>
-		<Value type="short" genre="config" instance="1" index="6" label="Motion detection - alarm cancellation delay" units="seconds" min="1" max="65535" value="30">
-			<Help>
+      <Item label="4 seconds" value="0"/>
+      <Item label="8 seconds" value="1"/>
+      <Item label="12 seconds" value="2"/>
+      <Item label="16 seconds" value="3"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Motion detection - alarm cancellation delay" max="65535" min="1" type="short" units="seconds" value="30">
+      <Help>
 				Time period after which the motion alarm will be cancelled in the main controller and associated devices.
 				Any motion detected during this period resets the timer.
 				Available settings: 1 - 65535
 				Default setting: 30 (30 seconds)
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="8" label="Motion detection - operating mode" min="0" max="2" value="0" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Motion detection - operating mode" max="2" min="0" size="1" type="list" value="0">
+      <Help>
 				This parameter determines in which part of day the PIR sensor will be active.
 				This parameter influences only the motion reports and associations.
 				Tamper, light intensity and temperature measurements will be still active, regardless of this parameter settings.
 				Default setting: 0 (always active)
 			</Help>
-			<Item label="PIR sensor always active" value="0" />
-			<Item label="PIR sensor active during the day only" value="1" />
-			<Item label="PIR sensor active during the night only" value="2" />
-		</Value>
-		<Value type="short" genre="config" instance="1" index="9" label="Motion detection - night/day" units="lux" min="1" max="65535" value="200">
-			<Help>
+      <Item label="PIR sensor always active" value="0"/>
+      <Item label="PIR sensor active during the day only" value="1"/>
+      <Item label="PIR sensor active during the night only" value="2"/>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Motion detection - night/day" max="65535" min="1" type="short" units="lux" value="200">
+      <Help>
 				This parameter defines the difference between night and day in terms of light intensity, used in parameter 8.
 				Available settings: 1 - 65535
 				Default setting: 200 (200 lux)
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="12" label="BASIC command class configuration" min="0" max="2" value="0" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="BASIC command class configuration" max="2" min="0" size="1" type="list" value="0">
+      <Help>
 				This parameter determines the command frames sent to 2nd association group (assigned to PIR sensor).
 				Default setting: 0 (ON and OFF)
 			</Help>
-			<Item label="BASIC On and OFF" value="0" />
-			<Item label="Only the BASIC On" value="1" />
-			<Item label="Only the BASIC OFF" value="2" />
-		</Value>
-		<Value type="short" genre="config" instance="1" index="14" label="BASIC ON command frame value" min="0" max="255" value="255" size="2">
-			<Help>
+      <Item label="BASIC On and OFF" value="0"/>
+      <Item label="Only the BASIC On" value="1"/>
+      <Item label="Only the BASIC OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="BASIC ON command frame value" max="255" min="0" size="2" type="short" value="255">
+      <Help>
 				The command frame sent at the moment of motion detection.
 				Further motion detections, during the cancellation time, will not result in sending the association.
 				Available settings: 0 - 255
 				Default setting: 255
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="16" label="BASIC OFF command frame value" min="0" max="255" value="0" size="2">
-			<Help>
+    </Value>
+    <Value genre="config" index="16" instance="1" label="BASIC OFF command frame value" max="255" min="0" size="2" type="short" value="0">
+      <Help>
 				The command frame sent at the moment of motion alarm cancellation, after cancellation delay time specified in parameter 6.
 				Available settings: 0 - 255
 				Default setting: 0
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="18" label="Associations in Z-Wave network security mode" size="1" min="0" max="15" value="15">
-			<Help>
+    </Value>
+    <Value genre="config" index="18" instance="1" label="Associations in Z-Wave network security mode" max="15" min="0" size="1" type="byte" value="15">
+      <Help>
 				This parameter defines how commands are sent in specified association groups: as secure or non-secure.
 				Parameter is active only in Z-Wave network security mode. It does not apply to 1st group Lifeline.
 				Available settings 0 - 15:
@@ -106,201 +146,202 @@
 				4 - 4th group sent as secure.
 				8 - 5th group sent as secure.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="20" label="Tamper - sensitivity" min="0" max="121" value="20">
-			<Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Tamper - sensitivity" max="121" min="0" type="byte" value="20">
+      <Help>
 				This parameter determines the change in force acting on the device, that will result in reporting tamper alarm - g-force acceleration.
 				Available settings: 0 - 121 (0.08 - 2g; multiply by 0.016g; 0 = tamper inactive)
 				Default setting: 20 (0.4g)
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="22" label="Tamper - alarm cancellation delay" units="seconds" min="1" max="32767" value="30">
-			<Help>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="Tamper - alarm cancellation delay" max="32767" min="1" type="short" units="seconds" value="30">
+      <Help>
 				Time period after which a tamper alarm will be cancelled in the main controller and associated devices.
 				Any tampering detected during this period will not extend the delay.
 				Available settings: 1 - 65535
 				Default setting: 30 (seconds)
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="24" label="Tamper - operating modes" min="0" max="2" value="0" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="24" instance="1" label="Tamper - operating modes" max="2" min="0" size="1" type="list" value="0">
+      <Help>
 				This parameter determines function of the tamper and sent reports.
 				It is an advanced feature serving much more functions than just detection of tampering.
 				Default setting: 0 (Tamper)
 			</Help>
-			<Item label="Tamper only" value="0" />
-			<Item label="Tamper and earthquake detector" value="1" />
-			<Item label="Tamper and orientation in space" value="2" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="25" label="Tamper - alarm cancellation" min="0" max="1" value="1" size="1">
-			<Help>
+      <Item label="Tamper only" value="0"/>
+      <Item label="Tamper and earthquake detector" value="1"/>
+      <Item label="Tamper and orientation in space" value="2"/>
+    </Value>
+    <Value genre="config" index="25" instance="1" label="Tamper - alarm cancellation" max="1" min="0" size="1" type="list" value="1">
+      <Help>
 				This parameter allows to disable cancellation of the tamper alarm.
 				Default setting: 0 (Tamper).
 			</Help>
-			<Item label="Do not send tamper cancellation report" value="0"/>
-			<Item label="Send tamper cancellation report" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="28" label="Tamper alarm broadcast mode" min="0" max="1" value="0" size="1">
-			<Help>
+      <Item label="Do not send tamper cancellation report" value="0"/>
+      <Item label="Send tamper cancellation report" value="1"/>
+    </Value>
+    <Value genre="config" index="28" instance="1" label="Tamper alarm broadcast mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>
 				The parameter determines whether the tamper alarm frame will or will not be sent in broadcast mode.
 				Alarm frames sent in broadcast mode can be received by all of the devices within range (if they accept such frames), but not repeated by them.
 				Default setting: 0
 			</Help>
-			<Item label="Tamper alarm sent to 3rd association group" value="0" />
-			<Item label="Tamper alarm sent in broadcast mode" value="1" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="29" label="Tamper - backward compatible broadcast mode" min="0" max="1" value="0" size="1">
-			<Help>
+      <Item label="Tamper alarm sent to 3rd association group" value="0"/>
+      <Item label="Tamper alarm sent in broadcast mode" value="1"/>
+    </Value>
+    <Value genre="config" index="29" instance="1" label="Tamper - backward compatible broadcast mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>
 				The parameter determines whether the backward compatible tamper alarm frame will or will not be sent in broadcast mode.
 				Alarm frames sent in broadcast mode can be received by all of the devices within range (if they accept such frames), but not repeated by them.
 				This parameter provides backward compatibility with controllers not supporting Z-Wave+.
 				Default setting: 0
 			</Help>
-			<Item label="Backward compatible tamper alarm sent to 5th association group" value="0"/>
-			<Item label="Backward compatible tamper alarm sent in broadcast mode" value="1"/>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="40" label="Luminance report - threshold" min="0" max="32767" units="lux" value="200">
-			<Help>
+      <Item label="Backward compatible tamper alarm sent to 5th association group" value="0"/>
+      <Item label="Backward compatible tamper alarm sent in broadcast mode" value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Luminance report - threshold" max="32767" min="0" type="short" units="lux" value="200">
+      <Help>
 				This parameter determines the change in light intensity level resulting in luminance report being sent to the main controller.
 				Available settings:
 				0 - reports are not sent.
 				1-32767 (luminance in lux).
 				Default setting: 200 (200 lux).
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="42" label="Luminance reports - interval" min="0" max="32767" units="seconds" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Luminance reports - interval" max="32767" min="0" type="short" units="seconds" value="0">
+      <Help>
 				Time interval between consecutive luminance reports.
 				The reports are sent even if there is no change in the light intensity.
 				Available settings: 0 - 32767.
 				0 - periodical reports are not sent.
 				1-32767 (in seconds).
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="60" label="Temperature report - threshold" min="0" max="255" value="10">
-			<Help>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Temperature report - threshold" max="255" min="0" type="short" value="10">
+      <Help>
 				This parameter determines the change in measured temperature that will result in new temperature report being sent to the main controller.
 				Available settings: 0 - 255 (0.1 - 25.5C; 0 = reports are not sent)
 				Default setting: 10 (1C)
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="62" label="Temperature measuring - interval" min="0" max="32767" units="seconds" value="900">
-			<Help>
+    </Value>
+    <Value genre="config" index="62" instance="1" label="Temperature measuring - interval" max="32767" min="0" type="short" units="seconds" value="900">
+      <Help>
 				Time interval between consecutive temperature measurements.
 				The shorter the time, the more frequently the temperature will be measured, but the battery life will shorten.
 				Available settings: 0 - 32767 (1 - 32767 seconds; 0 = temperature is not measured)
 				Default setting: 900 (900 seconds).
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="64" label="Temperature report - interval" min="0" max="32767" units="seconds" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="64" instance="1" label="Temperature report - interval" max="32767" min="0" type="short" units="seconds" value="0">
+      <Help>
 				Time interval between consecutive temperature reports. The reports are sent even if there is no change in the temperature.
 				Available settings: 0 - 32767 (1 - 32767 seconds; 0 = periodical reports are not sent)
 				Default setting: 0
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="66" label="Temperature offset" min="0" max="65535" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="66" instance="1" label="Temperature offset" max="65535" min="0" type="short" value="0">
+      <Help>
 				The value to be added to the actual temperature, measured by the sensor (temperature compensation).
 				Available settings: 0 - 100 (0 to 100C) or 64536 - 65535 (-100 to -0.10C)
 				Default setting: 0
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="80" label="Visual LED indicator - signalling mode" min="0" max="26" value="10" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="80" instance="1" label="Visual LED indicator - signalling mode" max="26" min="0" size="1" type="list" value="10">
+      <Help>
 				This parameter determines the way in which visual indicator behaves after motion has been detected.
 				Default setting: 10 (Flashlight mode)
 			</Help>
-			<Item label="LED inactive." value="0" />
-			<Item label="1 long blink, LED colour depends on the temperature. Set by parameters 86 and 87." value="1" />
-			<Item label="Flashlight mode - LED glows in white for 10 seconds." value="2" />
-			<Item label="Long blink White." value="3" />
-			<Item label="Long blink Red." value="4" />
-			<Item label="Long blink Green." value="5" />
-			<Item label="Long blink Blue." value="6" />
-			<Item label="Long blink Yellow." value="7" />
-			<Item label="Long blink Cyan." value="8" />
-			<Item label="Long blink Magenta." value="9" />
-			<Item label="Long blink, then short blink, LED colour depends on the temperature. Set by parameters 86 and 87." value="10" />
-			<Item label="Flashlight mode - LED glows in white through 10 seconds.  Each next detected motion extends the glowing by next 10 seconds." value="11" />
-			<Item label="Long blink, then short blinks White." value="12" />
-			<Item label="Long blink, then short blinks Red." value="13" />
-			<Item label="Long blink, then short blinks Green." value="14" />
-			<Item label="Long blink, then short blinks Blue." value="15" />
-			<Item label="Long blink, then short blinks Yellow." value="16" />
-			<Item label="Long blink, then short blinks Cyan" value="17" />
-			<Item label="Long blink, then short blinks Magenta" value="18" />
-			<Item label="Long blink, then 2 short blinks, LED colour depends on the temperature. Set by parameters 86 and 87." value="19" />
-			<Item label="Long blink, then 2 short blinks White" value="20" />
-			<Item label="Long blink, then 2 short blinks Red" value="21" />
-			<Item label="Long blink, then 2 short blinks Green" value="22" />
-			<Item label="Long blink, then 2 short blinks Blue" value="23" />
-			<Item label="Long blink, then 2 short blinks Yellow" value="24" />
-			<Item label="Long blink, then 2 short blinks Cyan" value="25" />
-			<Item label="Long blink, then 2 short blinks Magenta" value="26" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="81" label="Visual LED indicator - brightness" min="0" max="100" units="%" value="50">
-			<Help>
+      <Item label="LED inactive." value="0"/>
+      <Item label="1 long blink, LED colour depends on the temperature. Set by parameters 86 and 87." value="1"/>
+      <Item label="Flashlight mode - LED glows in white for 10 seconds." value="2"/>
+      <Item label="Long blink White." value="3"/>
+      <Item label="Long blink Red." value="4"/>
+      <Item label="Long blink Green." value="5"/>
+      <Item label="Long blink Blue." value="6"/>
+      <Item label="Long blink Yellow." value="7"/>
+      <Item label="Long blink Cyan." value="8"/>
+      <Item label="Long blink Magenta." value="9"/>
+      <Item label="Long blink, then short blink, LED colour depends on the temperature. Set by parameters 86 and 87." value="10"/>
+      <Item label="Flashlight mode - LED glows in white through 10 seconds.  Each next detected motion extends the glowing by next 10 seconds." value="11"/>
+      <Item label="Long blink, then short blinks White." value="12"/>
+      <Item label="Long blink, then short blinks Red." value="13"/>
+      <Item label="Long blink, then short blinks Green." value="14"/>
+      <Item label="Long blink, then short blinks Blue." value="15"/>
+      <Item label="Long blink, then short blinks Yellow." value="16"/>
+      <Item label="Long blink, then short blinks Cyan" value="17"/>
+      <Item label="Long blink, then short blinks Magenta" value="18"/>
+      <Item label="Long blink, then 2 short blinks, LED colour depends on the temperature. Set by parameters 86 and 87." value="19"/>
+      <Item label="Long blink, then 2 short blinks White" value="20"/>
+      <Item label="Long blink, then 2 short blinks Red" value="21"/>
+      <Item label="Long blink, then 2 short blinks Green" value="22"/>
+      <Item label="Long blink, then 2 short blinks Blue" value="23"/>
+      <Item label="Long blink, then 2 short blinks Yellow" value="24"/>
+      <Item label="Long blink, then 2 short blinks Cyan" value="25"/>
+      <Item label="Long blink, then 2 short blinks Magenta" value="26"/>
+    </Value>
+    <Value genre="config" index="81" instance="1" label="Visual LED indicator - brightness" max="100" min="0" type="byte" units="%" value="50">
+      <Help>
 				This parameter determines the brightness of the visual LED indicator when indicating motion.
 				Available settings: 0 - brightness determined by the luminance (parameters 82 and 83).
 				1-100 (1-100%)
 				Default setting: 50 (50 %)
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="82" label="Visual LED indicator - luminance for low indicator brightness" min="0" max="32767" units="lux" value="100">
-			<Help>
+    </Value>
+    <Value genre="config" index="82" instance="1" label="Visual LED indicator - luminance for low indicator brightness" max="32767" min="0" type="short" units="lux" value="100">
+      <Help>
 				Light intensity level below which brightness of visual indicator is set to 1%.
 				Available settings: 0 to value of parameter 83 (in lux).
 				Default setting: 100.
 			</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="83" label="Visual LED indicator - luminance for high indicator brightness" min="0" max="32767" units="lux" value="1000">
-			<Help>
+    </Value>
+    <Value genre="config" index="83" instance="1" label="Visual LED indicator - luminance for high indicator brightness" max="32767" min="0" type="short" units="lux" value="1000">
+      <Help>
 				Light intensity level above which brightness of visual indicator is set to 100%.
 				Available settings: value of parameter 82 to 32767 (in lux)
 				Default setting: 1000 (1000 lux)
 				NOTE
 				The value of the parameter 83 must be higher than the value of the parameter 82.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="86" label="Visual LED indicator - temperature for blue colour" min="0" max="255" units="Celsius" value="18">
-			<Help>
+    </Value>
+    <Value genre="config" index="86" instance="1" label="Visual LED indicator - temperature for blue colour" max="255" min="0" type="byte" units="Celsius" value="18">
+      <Help>
 				This parameter is determines minimal temperature that will result in blue visual indicator colour.
 				Relevant only when parameter 80 has been properly configured.
 				Available settings: 0 to value of parameter 87 (in Celsius degree)
 				Default setting: 18 (18C)
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="87" label="Visual LED indicator - temperature for red colour" min="0" max="255" units="Celsius" value="28">
-			<Help>
+    </Value>
+    <Value genre="config" index="87" instance="1" label="Visual LED indicator - temperature for red colour" max="255" min="0" type="byte" units="Celsius" value="28">
+      <Help>
 				This parameter is determines minimal temperature that will result in red visual indicator colour.
 				Relevant only when parameter 80 has been properly configured.
 				Available settings: value of parameter 86 to 255 (in Celsius degree)
 				Default setting: 28 (28C)
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="89" label="Visual LED indicator - tamper alarm" min="0" max="1" value="1" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="89" instance="1" label="Visual LED indicator - tamper alarm" max="1" min="0" size="1" type="list" value="1">
+      <Help>
 				Indicating mode resembles a police car (white, red and blue).
 				Default setting: 1 (on)
 			</Help>
-			<Item label="Tamper alarm is not indicated" value="0" />
-			<Item label="Tamper alarm is indicated" value="1" />
-		</Value>
-	</CommandClass>
-
-   <!-- Basic set as report -->
-   <CommandClass id="32" setasreport="true"/>
-
+      <Item label="Tamper alarm is not indicated" value="0"/>
+      <Item label="Tamper alarm is indicated" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
-	  <Associations num_groups="5">
-		  <Group index="1" max_associations="1" label="Lifeline"/>
-		  <Group index="2" max_associations="5" label="Motion"/>
-		  <Group index="3" max_associations="5" label="Tamper"/>
-		  <Group index="4" max_associations="5" label="Motion BC" auto="true"/>
-		  <Group index="5" max_associations="5" label="Tamper BC" auto="true"/>
-	  </Associations>
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Motion" max_associations="5"/>
+      <Group index="3" label="Tamper" max_associations="5"/>
+      <Group auto="true" index="4" label="Motion BC" max_associations="5"/>
+      <Group auto="true" index="5" label="Tamper BC" max_associations="5"/>
+    </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/fibaro/fgpb101.xml b/Config/fibaro/fgpb101.xml
index bc00fa1aee..fef10e4182 100644
--- a/Config/fibaro/fgpb101.xml
+++ b/Config/fibaro/fgpb101.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Fibaro : Button FGPB101 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration -->
 	<CommandClass id="112">
 		<Value type="byte" genre="config" instance="1" index="1" label="Scenes sent to the controller" min="0" max="127" value="127">
diff --git a/Config/fibaro/fgr221.xml b/Config/fibaro/fgr221.xml
index bc72056d5c..aa62b2b76a 100644
--- a/Config/fibaro/fgr221.xml
+++ b/Config/fibaro/fgr221.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Configuration -->
   <CommandClass id="112">
     <Value type="list" genre="config" instance="1" index="1" label="Activate / deactivate functions ALL ON / ALL OFF" value="0" size="1">
diff --git a/Config/fibaro/fgr223.xml b/Config/fibaro/fgr223.xml
index 5010b7aa22..fdfaf2ec85 100644
--- a/Config/fibaro/fgr223.xml
+++ b/Config/fibaro/fgr223.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Configuration -->
     <CommandClass id="112">
         <Value type="list" genre="config" instance="1" index="20" label="Switch type" size="1" value="2">
@@ -120,7 +120,7 @@
             </Help>
         </Value>
 
-        <Value type="list" genre="config" instance="1" index="41" label="S2 switch - scenes sent" size="1" value="0">
+        <Value type="byte" genre="config" instance="1" index="41" label="S2 switch - scenes sent" size="1" value="0">
             <Help>
                 This parameter determines which actions result in sending scene IDs assigned to them.
                 Sum of:
@@ -268,4 +268,4 @@
         <Value genre="user" type="byte" instance="1" index="0" label="Venetian Blind slat position" value="0" min="0" max="100" units="%" />
         <Value genre="user" type="byte" instance="1" index="1" label="Venetian blind tilt position" value="0" min="0" max="100" units="%" />
     </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/fibaro/fgrgbwm441.xml b/Config/fibaro/fgrgbwm441.xml
index 64f0d5ccc1..dd3e5b1aef 100644
--- a/Config/fibaro/fgrgbwm441.xml
+++ b/Config/fibaro/fgrgbwm441.xml
@@ -1,145 +1,164 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0900</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgrgbwm441.png</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0900">https://products.z-wavealliance.org/products/1054/</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0900">FGRGBWM-441</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO RGBW Dimmer</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0900">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">RGBW Controller</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1054/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1072/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="2000" name="ZWProductPage" type="0900">https://products.z-wavealliance.org/products/1072/</MetaDataItem>
+    <MetaDataItem id="2000" name="FrequencyName" type="0900">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="2000" name="Identifier" type="0900">FGRGBWM-441</MetaDataItem>
+  </MetaData>
   <!-- Basic Messages should map to the ColorControl Command Class I hope -->
-  <CommandClass id="32" setasreport="true"/>
-
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- COMMAND_CLASS_POWERLEVEL does not respond to requests -->
-  <CommandClass id="115" action="remove"/>
-
+  <CommandClass action="remove" id="115"/>
   <!-- Fibaro Devices with firmware prior to 25.25 have a bug in the Report
   message -->
-  <CommandClass id="51" coloridxbug="true" >
-	 <!--  The Fibaro doesn't report immediate color values, so we need to verify the value -->
-  	<Value type="string" genre="user" instance="1" index="0" label="Color" units="#RRGGBBWW" verify_changes="false" value="#00000000" />
+  <CommandClass id="51">
+    <!--  The Fibaro doesn't report immediate color values, so we need to verify the value -->
+    <Value genre="user" index="0" instance="1" label="Color" type="string" units="#RRGGBBWW" value="#00000000" verify_changes="false"/>
+    <Compatibility>
+      <ColorIndexBug>true</ColorIndexBug>
+    </Compatibility>
   </CommandClass>
   <!-- Fibaro devices refuse to send a Report message when color changes are done.. so manually trigger a refresh -->
   <CommandClass id="38">
-	<TriggerRefreshValue Genre="user" Index="0" Instance="1">
-    	<RefreshClassValue CommandClass="51" RequestFlags="0" Index="255" Instance="1" />
+    <TriggerRefreshValue Genre="user" Index="0" Instance="1">
+      <RefreshClassValue CommandClass="51" Index="255" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
-  	<TriggerRefreshValue Genre="user" Index="0" Instance="2">
-    	<RefreshClassValue CommandClass="51" RequestFlags="0" Index="255" Instance="1" />
+    <TriggerRefreshValue Genre="user" Index="0" Instance="2">
+      <RefreshClassValue CommandClass="51" Index="255" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
     <TriggerRefreshValue Genre="user" Index="0" Instance="3">
-    	<RefreshClassValue CommandClass="51" RequestFlags="0" Index="255" Instance="1" />
+      <RefreshClassValue CommandClass="51" Index="255" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
     <TriggerRefreshValue Genre="user" Index="0" Instance="4">
-    	<RefreshClassValue CommandClass="51" RequestFlags="0" Index="255" Instance="1" />
+      <RefreshClassValue CommandClass="51" Index="255" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
     <TriggerRefreshValue Genre="user" Index="0" Instance="5">
-    	<RefreshClassValue CommandClass="51" RequestFlags="0" Index="255" Instance="1" />
+      <RefreshClassValue CommandClass="51" Index="255" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
     <TriggerRefreshValue Genre="user" Index="0" Instance="6">
-    	<RefreshClassValue CommandClass="51" RequestFlags="0" Index="255" Instance="1" />
+      <RefreshClassValue CommandClass="51" Index="255" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
   </CommandClass>
-
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="list" genre="config" instance="1" index="1" label="Enable/Disable ALL ON/OFF" size="1" value="255">
+    <Value genre="config" index="1" instance="1" label="Enable/Disable ALL ON/OFF" size="1" type="list" value="255">
       <Help>Enable/Disable ALL ON/OFF</Help>
-      <Item label="ALL ON disabled/ ALL OFF disabled" value="0" />
-      <Item label="ALL ON disabled/ ALL OFF active" value="1" />
-      <Item label="ALL ON active / ALL OFF disabled" value="2" />
-      <Item label="ALL ON active / ALL OFF active" value="255" />
+      <Item label="ALL ON disabled/ ALL OFF disabled" value="0"/>
+      <Item label="ALL ON disabled/ ALL OFF active" value="1"/>
+      <Item label="ALL ON active / ALL OFF disabled" value="2"/>
+      <Item label="ALL ON active / ALL OFF active" value="255"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="6" label="Associations command class choice" size="1" value="0">
+    <Value genre="config" index="6" instance="1" label="Associations command class choice" size="1" type="list" value="0">
       <Help>Choose which command classes are sent to associated devices.</Help>
-      <Item label="Normal (Dimmer) - BASIC SET/SWITCH_MULTILEVEL_START/STOP" value="0" />
-      <Item label="Normal (RGBW) - COLOR_CONTROL_SET/START/STOP_STATE_CHANGE" value="1" />
-      <Item label="Normal (RGBW) - COLOR_CONTROL_SET" value="2" />
-      <Item label="Brightness - BASIC SET/SWITCH_MULTILEVEL_START/STOP" value="3" />
-      <Item label="Rainbow (RGBW) - COLOR_CONTROL_SET" value="4" />
+      <Item label="Normal (Dimmer) - BASIC SET/SWITCH_MULTILEVEL_START/STOP" value="0"/>
+      <Item label="Normal (RGBW) - COLOR_CONTROL_SET/START/STOP_STATE_CHANGE" value="1"/>
+      <Item label="Normal (RGBW) - COLOR_CONTROL_SET" value="2"/>
+      <Item label="Brightness - BASIC SET/SWITCH_MULTILEVEL_START/STOP" value="3"/>
+      <Item label="Rainbow (RGBW) - COLOR_CONTROL_SET" value="4"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="8" label="Outputs state change mode" size="1" value="0">
+    <Value genre="config" index="8" instance="1" label="Outputs state change mode" size="1" type="list" value="0">
       <Help>Choose the behaviour of transitions between different levels.</Help>
-      <Item label="MODE 1 - Constant Speed (speed is defined by parameters 9 and 10)" value="0" />
-      <Item label="MODE 2 - Constant Time (RGB/RBGW only. Time is defined by parameter 11)" value="1" />
+      <Item label="MODE 1 - Constant Speed (speed is defined by parameters 9 and 10)" value="0"/>
+      <Item label="MODE 2 - Constant Time (RGB/RBGW only. Time is defined by parameter 11)" value="1"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="9" label="Dimming step value (for MODE 1)" min="1" max="99" units="" value="1">
+    <Value genre="config" index="9" instance="1" label="Dimming step value (for MODE 1)" max="99" min="1" type="byte" units="" value="1">
       <Help>Size of the step for each change in level during the transition.</Help>
-    </Value>   
-    <Value type="short" genre="config" instance="1" index="10" label="Time between dimming steps (for MODE 1)" min="0" max="60000" units="ms" value="10">
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Time between dimming steps (for MODE 1)" max="60000" min="0" type="short" units="ms" value="10">
       <Help>Time between each step in a transition between levels.  Setting this to zero means an instantaneous change.</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="11" label="Time to complete the entire transition (for MODE 2)" min="0" max="255" units="" value="67">
+    <Value genre="config" index="11" instance="1" label="Time to complete the entire transition (for MODE 2)" max="255" min="0" type="byte" units="" value="67">
       <Help>0 - immediate change; 1->63: 20ms->126ms (value*20ms); 65->127: 1s->63s (value-64)*1s; 129->191: 10s->630s (value-128)*10s; 193->255: 1min->63min (value-192)*1min.  Default setting: 67 (3s)</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="12" label="Maximum dimmer level" min="3" max="255" units="" value="255">
+    <Value genre="config" index="12" instance="1" label="Maximum dimmer level" max="255" min="3" type="byte" units="" value="255">
       <Help>Maximum brightness level for the dimmer</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="13" label="Minimum dimmer level" min="2" max="255" units="" value="2">
+    <Value genre="config" index="13" instance="1" label="Minimum dimmer level" max="255" min="2" type="byte" units="" value="2">
       <Help>Minimum brightness level for the dimmer</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="14" label="Inputs / Outputs configuration" value="4369">
+    <Value genre="config" index="14" instance="1" label="Inputs / Outputs configuration" type="short" value="4369">
       <Help>This is too complex to describe here, since this value is built up from 4-bits for each of the 4 channels.  Refer to the table in the product manual.  Default value is 4369 (1111 in hex).</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="15" label="Option double click" size="1" value="1">
+    <Value genre="config" index="15" instance="1" label="Option double click" size="1" type="list" value="1">
       <Help>Option double click (lighting set at 100%). 0 - Double click disabled, 1 - Double click enabled. Default setting 1</Help>
       <Item label="Double click disabled" value="0"/>
       <Item label="Double click enabled" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="16" label="Saving state before power failure" size="1" value="1">
+    <Value genre="config" index="16" instance="1" label="Saving state before power failure" size="1" type="list" value="1">
       <Help>Saving state before power failure</Help>
       <Item label="State NOT saved at power failure, all outputs are set to OFF upon power restore" value="0"/>
       <Item label="State saved at power failure, all outputs are set to previous state upon power restore" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="30" label="Alarm" size="1" value="0">
+    <Value genre="config" index="30" instance="1" label="Alarm" size="1" type="list" value="0">
       <Help>Alarm of any type (general alarm, water flooding alarm, smoke alarm: CO, CO2, temperature alarm).  Default setting 0 (Inactive)</Help>
       <Item label="INACTIVE - no response to alarm frames" value="0"/>
       <Item label="ALARM ON - the device turns on once alarm is detected (all channels set to 99%)" value="1"/>
       <Item label="ALARM OFF - the device turns off once alarm is detected (all channels set to 0%)" value="2"/>
       <Item label="ALARM PROGRAM - alarm sequence turns on (program selected in parameter 38)" value="3"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="38" label="Alarm sequence program" min="1" max="10" units="" value="10">
+    <Value genre="config" index="38" instance="1" label="Alarm sequence program" max="10" min="1" type="byte" units="" value="10">
       <Help>Program number selected from the 10 available.</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="39" label="Active PROGRAM alarm time" min="1" max="65534" units="s" value="600">
+    <Value genre="config" index="39" instance="1" label="Active PROGRAM alarm time" max="65534" min="1" type="short" units="s" value="600">
       <Help>In ALARM PROGRAM mode (see parameter 30), this defines the time in seconds the program lasts (1s->65534s)</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="42" label="Command class reporting Outputs status change" size="1" value="0">
+    <Value genre="config" index="42" instance="1" label="Command class reporting Outputs status change" size="1" type="list" value="0">
       <Help>Specify which command class is used to report output status changes</Help>
       <Item label="Reporting as a result of inputs and controllers actions (SWITCH MULTILEVEL)" value="0"/>
       <Item label="Reporting as a result inputs actions (SWITCH MULTILEVEL)" value="1"/>
       <Item label="Reporting as a result inputs actions (COLOUR_CONTROL)" value="2"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="43" label="Reporting 0-10v analog inputs change threshold" min="1" max="100" units="*0.1V" value="5">
+    <Value genre="config" index="43" instance="1" label="Reporting 0-10v analog inputs change threshold" max="100" min="1" type="byte" units="*0.1V" value="5">
       <Help>Parameter defines a value by which input voltage must change in order to be reported to the main controller. New value is calculated based on last reported value: Default setting: 5 (0.5V).  Range: 1->100 - (0.1V->10V).</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="44" label="Power load reporting frequency" min="1" max="65534" units="s" value="30">
+    <Value genre="config" index="44" instance="1" label="Power load reporting frequency" max="65534" min="1" type="short" units="s" value="30">
       <Help>Sent if last reported value differs from the current value. Reports will also be sent in case of polling. Default setting: 30 (30s).  Range: 1->65534 (1s->65534s) - interval between reports.  Zero means reports are only sent in the case of polling, or at turning OFF the device</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="45" label="Reporting changes in energy consumed by controlled devices" min="1" max="254" units="*0.01kWh" value="10">
+    <Value genre="config" index="45" instance="1" label="Reporting changes in energy consumed by controlled devices" max="254" min="1" type="byte" units="*0.01kWh" value="10">
       <Help>Interval between energy consumption reports (in kWh). New reported energy consumption value is calculated based on last reported value. 1->254 (0.01kWh->2.54kWh).  Zero means changes in consumed energy will not be reported, except in case of polling.</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="71" label="Response to BRIGHTNESS set to 0%" size="1" value="1">
+    <Value genre="config" index="71" instance="1" label="Response to BRIGHTNESS set to 0%" size="1" type="list" value="1">
       <Help>Set whether to remember the previous RGB mix after the brightness has fallen to zero (black)</Help>
       <Item label="Illumination colour set to white (all channels controlled together)" value="0"/>
       <Item label="Last set colour is memorized" value="1"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="72" label="Starting predefined program" min="1" max="10" units="" value="1">
+    <Value genre="config" index="72" instance="1" label="Starting predefined program" max="10" min="1" type="byte" units="" value="1">
       <Help>First predefined program to use when device is set to work in RGB/RGBW mode (parameter 14)</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="73" label="Triple Click Action" size="1" value="0">
+    <Value genre="config" index="73" instance="1" label="Triple Click Action" size="1" type="list" value="0">
       <Help>Behaviour when an input is triple-clicked</Help>
       <Item label="NODE INFO control frame is sent" value="0"/>
       <Item label="Start favourite program" value="1"/>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="5">
-      <Group index="1" max_associations="5" label="Input 1" auto="false"/>
-      <Group index="2" max_associations="5" label="Input 2"/>
-      <Group index="3" max_associations="5" label="Input 3"/>
-      <Group index="4" max_associations="5" label="Input 4"/>
-      <Group index="5" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Input 1" max_associations="5"/>
+      <Group index="2" label="Input 2" max_associations="5"/>
+      <Group index="3" label="Input 3" max_associations="5"/>
+      <Group index="4" label="Input 4" max_associations="5"/>
+      <Group auto="true" index="5" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
 
+
+
+
   <!-- Remove COMMAND_CLASS_BASIC -->
   <!-- <CommandClass id="32" action="remove" /> -->
 
diff --git a/Config/fibaro/fgrm222.xml b/Config/fibaro/fgrm222.xml
index 80bdc0fa58..29d98a3b97 100644
--- a/Config/fibaro/fgrm222.xml
+++ b/Config/fibaro/fgrm222.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="5">
   <!-- Configuration -->
   <CommandClass id="112">
     <!-- Protection -->
@@ -22,7 +22,7 @@
        <Help>Parameters value shoud be set to 1 if the module operates in Venetian Blind mode.
 	       Default setting: 0</Help>
        <Item label="Blind position reports sent to the main controller using Z-Wave Command Class" value="0" />
-       <Item label="Blind position reports sent to the main controller using Fibar Command Class" value="1" />      
+       <Item label="Blind position reports sent to the main controller using Fibaro Command Class" value="1" />      
      </Value>	
     
     <Value type="list" genre="config" instance="1" index="10" label="Roller Shutter operating modes" value="0" size="1">
@@ -169,4 +169,9 @@
       <Group index="3" max_associations="1" label="Lifeline" auto="true"/>
     </Associations>
   </CommandClass>
+  <!-- Manufacturer Proprietary, sent when configuring "Fibaro Command Class" -->
+  <CommandClass id="145">
+    <Value genre="user" type="byte" instance="1" index="0" label="Venetian Blind slat position" value="0" min="0" max="100" units="%" />
+    <Value genre="user" type="byte" instance="1" index="1" label="Venetian blind tilt position" value="0" min="0" max="100" units="%" />
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgs211.xml b/Config/fibaro/fgs211.xml
index b403cba3de..f582ea44d2 100644
--- a/Config/fibaro/fgs211.xml
+++ b/Config/fibaro/fgs211.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
 
   <!-- Configuration -->
   <CommandClass id="112">
diff --git a/Config/fibaro/fgs212.xml b/Config/fibaro/fgs212.xml
index 7d2e83ede0..caf74ebf63 100644
--- a/Config/fibaro/fgs212.xml
+++ b/Config/fibaro/fgs212.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="4">
 
   <!-- Configuration -->
   <CommandClass id="112">
diff --git a/Config/fibaro/fgs213.xml b/Config/fibaro/fgs213.xml
index 537074cf40..706945e024 100644
--- a/Config/fibaro/fgs213.xml
+++ b/Config/fibaro/fgs213.xml
@@ -1,15 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
-  <CommandClass id="38" getsupported="false"/>
+  <CommandClass id="38">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="list" genre="config" instance="1" index="9" label="Saving state before power failure" value="1" min="0" max="1" size="1">
+    <Value genre="config" index="9" instance="1" label="Saving state before power failure" max="1" min="0" size="1" type="list" value="1">
       <Help>Saving state before power failure</Help>
       <Item label="State NOT saved at power failure, all outputs are set to OFF upon power restore" value="0"/>
       <Item label="State saved at power failure, all outputs are set to previous state upon power restore" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="10" label="First channel - operating mode" value="0" min="0" max="5" size="1">
+    <Value genre="config" index="10" instance="1" label="First channel - operating mode" max="5" min="0" size="1" type="list" value="0">
       <Help>This parameter allows to choose operating for the 1st channel controlled by the S1 switch.</Help>
       <Item label="Standard operation" value="0"/>
       <Item label="Delay On" value="1"/>
@@ -18,22 +21,22 @@
       <Item label="Auto Off" value="4"/>
       <Item label="Flashing Mode" value="5"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="11" label="First channel - reaction to switch for delay/auto ON/OFF modes" value="0" min="0" max="2" size="1">
+    <Value genre="config" index="11" instance="1" label="First channel - reaction to switch for delay/auto ON/OFF modes" max="2" min="0" size="1" type="list" value="0">
       <Help>This parameter determines how the device in timed mode reacts to pushing the switch connected to the S1 terminal.</Help>
       <Item label="Cancel mode and set target state" value="0"/>
       <Item label="No reaction to switch - mode runs until it ends" value="1"/>
       <Item label="Reset timer - start counting from the beginning" value="2"/>
     </Value>
-    <Value type="short" genre="config" instance="1" index="12" label="First channel - time parameter for delay/auto ON/OFF modes" value="50" min="1" max="32000" size="2">
+    <Value genre="config" index="12" instance="1" label="First channel - time parameter for delay/auto ON/OFF modes" max="32000" min="1" size="2" type="short" value="50">
       <Help>This parameter allows to set time parameter used in timed modes. (s)</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="13" label="First channel - pulse time for flashing mode" value="5" min="1" max="32000" size="2">
+    <Value genre="config" index="13" instance="1" label="First channel - pulse time for flashing mode" max="32000" min="1" size="2" type="short" value="5">
       <Help>
         This parameter allows to set time of switching to opposite state in flashing mode.
         1-32000 (0.1-3200.0s, 0.1s step)
       </Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="15" label="Second channel - operating mode" value="0" min="0" max="5" size="1">
+    <Value genre="config" index="15" instance="1" label="Second channel - operating mode" max="5" min="0" size="1" type="list" value="0">
       <Help>This parameter allows to choose operating for the 2st channel controlled by the S2 switch.</Help>
       <Item label="Standard operation" value="0"/>
       <Item label="Delay On" value="1"/>
@@ -42,33 +45,33 @@
       <Item label="Auto Off" value="4"/>
       <Item label="Flashing Mode" value="5"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="16" label="Second channel - reaction to switch for delay/auto ON/OFF modes" value="0" min="0" max="2" size="1">
+    <Value genre="config" index="16" instance="1" label="Second channel - reaction to switch for delay/auto ON/OFF modes" max="2" min="0" size="1" type="list" value="0">
       <Help>This parameter determines how the device in timed mode reacts to pushing the switch connected to the S2 terminal.</Help>
       <Item label="Cancel mode and set target state" value="0"/>
       <Item label="No reaction to switch - mode runs until it ends" value="1"/>
       <Item label="Reset timer - start counting from the beginning" value="2"/>
     </Value>
-    <Value type="short" genre="config" instance="1" index="17" label="Second channel - time parameter for delay/auto ON/OFF modes" value="50" min="1" max="32000" size="2">
+    <Value genre="config" index="17" instance="1" label="Second channel - time parameter for delay/auto ON/OFF modes" max="32000" min="1" size="2" type="short" value="50">
       <Help>This parameter allows to set time parameter used in timed modes. (s)</Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="18" label="Second channel - pulse time for flashing mode" value="5" min="1" max="32000" size="2">
+    <Value genre="config" index="18" instance="1" label="Second channel - pulse time for flashing mode" max="32000" min="1" size="2" type="short" value="5">
       <Help>
         This parameter allows to set time of switching to opposite state in flashing mode.
         1-32000 (0.1-3200.0s, 0.1s step)
       </Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="20" label="Switch type" value="2" min="0" max="2" size="1">
+    <Value genre="config" index="20" instance="1" label="Switch type" max="2" min="0" size="1" type="list" value="2">
       <Help>Inputs type configuration</Help>
       <Item label="Momentary switch" value="0"/>
       <Item label="Toggle switch (contact closed - On, contact opened - OFF)" value="1"/>
       <Item label="Toggle switch (device changes status when switch changes status)" value="2"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="21" label="Flashing mode report" value="0" min="0" max="1" size="1">
+    <Value genre="config" index="21" instance="1" label="Flashing mode report" max="1" min="0" size="1" type="list" value="0">
       <Help>Enabled / Disabled reports on Flashing mode</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="27" label="Associations in Z-Wave network security mode" value="15" min="0" max="15" size="1">
+    <Value genre="config" index="27" instance="1" label="Associations in Z-Wave network security mode" max="15" min="0" size="1" type="byte" value="15">
       <Help>
         This parameter defines how commands are sent to specified association groups: as secure or non-secure.
         Parameter is active only in Z-Wave network security mode.
@@ -80,7 +83,7 @@
         Default setting: 15 (all)
       </Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="28" label="S1 switch - scenes sent" value="0" min="0" max="15" size="1">
+    <Value genre="config" index="28" instance="1" label="S1 switch - scenes sent" max="15" min="0" size="1" type="byte" value="0">
       <Help>
         This parameter determines which actions result in sending scene IDs assigned to them.
         1 - Key pressed 1 time.
@@ -90,7 +93,7 @@
         Default setting: 0 (none)
       </Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="29" label="S2 switch - scenes sent" value="0" min="0" max="15" size="1">
+    <Value genre="config" index="29" instance="1" label="S2 switch - scenes sent" max="15" min="0" size="1" type="byte" value="0">
       <Help>
         This parameter determines which actions result in sending scene IDs assigned to them.
         1 - Key pressed 1 time.
@@ -100,7 +103,7 @@
         Default setting: 0 (none)
       </Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="30" label="S1 associations sent to 2nd and 3rd association groups" value="0" min="0" max="15" size="1">
+    <Value genre="config" index="30" instance="1" label="S1 associations sent to 2nd and 3rd association groups" max="15" min="0" size="1" type="byte" value="0">
       <Help>
         This parameter determines which actions are ignored when sending commands to devices associated in 2nd and 3rd association group.
         All actions are active by default.
@@ -111,22 +114,22 @@
         Default setting: 0
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="31" label="S1 Switch ON value sent to 2nd and 3rd association groups" value="255" min="0" max="255" size="2">
+    <Value genre="config" index="31" instance="1" label="S1 Switch ON value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="255">
       <Help>
         This parameter determines value sent with Switch On command to devices associated in 2nd and 3rd association group.
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="32" label="S1 Switch OFF value sent to 2nd and 3rd association groups" value="0" min="0" max="255" size="2">
+    <Value genre="config" index="32" instance="1" label="S1 Switch OFF value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="0">
       <Help>
         This parameter determines value sent with Switch Off command to devices associated in 2nd and 3rd association group.
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="33" label="S1 Switch Double Click value sent to 2nd and 3rd association groups" value="99" min="0" max="255" size="2">
+    <Value genre="config" index="33" instance="1" label="S1 Switch Double Click value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="99">
       <Help>
         This parameter determines value sent with Double Click command to devices associated in 2nd and 3rd association group.
       </Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="35" label="S2 associations sent to 4th and 5th association groups" value="0" min="0" max="15" size="1">
+    <Value genre="config" index="35" instance="1" label="S2 associations sent to 4th and 5th association groups" max="15" min="0" size="1" type="byte" value="0">
       <Help>
         This parameter determines which actions are ignored when sending commands to devices associated in 4th and 5th association group.
         All actions are active by default.
@@ -137,91 +140,91 @@
         Default setting: 0
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="36" label="S2 Switch ON value sent to 4th and 5th association groups" value="255" min="0" max="255" size="2">
+    <Value genre="config" index="36" instance="1" label="S2 Switch ON value sent to 4th and 5th association groups" max="255" min="0" size="2" type="short" value="255">
       <Help>
         This parameter determines value sent with Switch On command to devices associated in 4th and 5th association group.
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="37" label="S2 Switch OFF value sent to 4th and 5th association groups" value="0" min="0" max="255" size="2">
+    <Value genre="config" index="37" instance="1" label="S2 Switch OFF value sent to 4th and 5th association groups" max="255" min="0" size="2" type="short" value="0">
       <Help>
         This parameter determines value sent with Switch Off command to devices associated in 4th and 5th association group.
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="38" label="S2 Switch Double Click value sent to 4th and 5th association groups" value="99" min="0" max="255" size="2">
+    <Value genre="config" index="38" instance="1" label="S2 Switch Double Click value sent to 4th and 5th association groups" max="255" min="0" size="2" type="short" value="99">
       <Help>
         This parameter determines value sent with Double Click command to devices associated in 4th and 5th association group.
       </Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="40" label="Reaction to General Alarm" value="3" min="0" max="3" size="1">
+    <Value genre="config" index="40" instance="1" label="Reaction to General Alarm" max="3" min="0" size="1" type="list" value="3">
       <Help>This parameter determines how the device will react to General Alarm frame.</Help>
       <Item label="Ignored" value="0"/>
       <Item label="Turn On" value="1"/>
       <Item label="Turn OFF" value="2"/>
       <Item label="Flash" value="3"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="41" label="Reaction to Flood Alarm" value="2" min="0" max="3" size="1">
+    <Value genre="config" index="41" instance="1" label="Reaction to Flood Alarm" max="3" min="0" size="1" type="list" value="2">
       <Help>This parameter determines how the device will react to Flood Alarm frame.</Help>
       <Item label="Ignored" value="0"/>
       <Item label="Turn On" value="1"/>
       <Item label="Turn OFF" value="2"/>
       <Item label="Flash" value="3"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="42" label="Reaction to CO/CO2/Smoke Alarm" value="3" min="0" max="3" size="1">
+    <Value genre="config" index="42" instance="1" label="Reaction to CO/CO2/Smoke Alarm" max="3" min="0" size="1" type="list" value="3">
       <Help>This parameter determines how the device will react to CO/CO2/Smoke Alarm frame.</Help>
       <Item label="Ignored" value="0"/>
       <Item label="Turn On" value="1"/>
       <Item label="Turn OFF" value="2"/>
       <Item label="Flash" value="3"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="43" label="Reaction to Heat Alarm" value="1" min="0" max="3" size="1">
+    <Value genre="config" index="43" instance="1" label="Reaction to Heat Alarm" max="3" min="0" size="1" type="list" value="1">
       <Help>This parameter determines how the device will react to Heat alarm frame.</Help>
       <Item label="Ignored" value="0"/>
       <Item label="Turn On" value="1"/>
       <Item label="Turn OFF" value="2"/>
       <Item label="Flash" value="3"/>
     </Value>
-    <Value type="short" genre="config" instance="1" index="44" label="Flashing alarm duration" value="600" min="1" max="32000" size="2">
+    <Value genre="config" index="44" instance="1" label="Flashing alarm duration" max="32000" min="1" size="2" type="short" value="600">
       <Help>
         This parameter allows to set duration of flashing alarm mode.
         1-32000 (0.1-32000s, 1s step) Default: 600 (10min)
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="50" label="First channel - power reports" value="20" min="1" max="100" size="2">
+    <Value genre="config" index="50" instance="1" label="First channel - power reports" max="100" min="1" size="2" type="short" value="20">
       <Help>
         This parameter determines the minimum change in consumed power
         that will result in sending new power report to the main controller.
         1-100 (%) Default 20 (20%)
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="51" label="First channel - minimal time between power reports" value="10" min="1" max="120" size="2">
+    <Value genre="config" index="51" instance="1" label="First channel - minimal time between power reports" max="120" min="1" size="2" type="short" value="10">
       <Help>
         This parameter determines minimum time that has to elapse before
         sending new power report to the main controller.
         1-120 (s) Default 10 (10s)
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="53" label="First channel - energy reports" value="100" min="1" max="32000" size="2">
+    <Value genre="config" index="53" instance="1" label="First channel - energy reports" max="32000" min="1" size="2" type="short" value="100">
       <Help>
         This parameter determines the minimum change in consumed energy
         that will result in sending new energy report to the main controller.
         1-32000 (0.01-320 kWh) Default 100 (1kWh)
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="58" label="Periodic power reports" value="3600" min="1" max="32000" size="2">
+    <Value genre="config" index="58" instance="1" label="Periodic power reports" max="32000" min="1" size="2" type="short" value="3600">
       <Help>
         This parameter determines in what time interval the periodic
         power reports are sent to the main controller.
         1-32000 (s) Default 3600 (1h)
       </Help>
     </Value>
-    <Value type="short" genre="config" instance="1" index="59" label="Periodic energy reports" value="3600" min="1" max="32000" size="2">
+    <Value genre="config" index="59" instance="1" label="Periodic energy reports" max="32000" min="1" size="2" type="short" value="3600">
       <Help>
         This parameter determines in what time interval the periodic
         power reports are sent to the main controller.
         1-32000 (s) Default 3600 (1h)
       </Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="60" label="Measuring energy consumed by the device itself" value="0" min="0" max="1" size="1">
+    <Value genre="config" index="60" instance="1" label="Measuring energy consumed by the device itself" max="1" min="0" size="1" type="list" value="0">
       <Help>
         This parameter determines whether energy metering should include
         the amount of energy consumed by the device itself. Results are
@@ -232,16 +235,24 @@
     </Value>
   </CommandClass>
   <!-- -->
-  <CommandClass id="96" mapping="endpoints"/>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="5">
-      <Group index="1" max_associations="1" label="Lifeline"/>
-      <Group index="2" max_associations="5" label="On/Off S1"/>
-      <Group index="3" max_associations="5" label="Dimmer S1"/>
-      <Group index="4" max_associations="5" label="On/Off S2"/>
-      <Group index="5" max_associations="5" label="Dimmer S2"/>
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off S1" max_associations="5"/>
+      <Group index="3" label="Dimmer S1" max_associations="5"/>
+      <Group index="4" label="On/Off S2" max_associations="5"/>
+      <Group index="5" label="Dimmer S2" max_associations="5"/>
     </Associations>
   </CommandClass>
-  <CommandClass id="142" ForceInstances="true"/>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgs221.xml b/Config/fibaro/fgs221.xml
index 5758cdb3ee..ec03e5c010 100644
--- a/Config/fibaro/fgs221.xml
+++ b/Config/fibaro/fgs221.xml
@@ -1,147 +1,129 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="list" genre="config" instance="1" index="1" label="Enable/Disable ALL ON/OFF" value="255" size="1">
+    <Value genre="config" index="1" instance="1" label="Enable/Disable ALL ON/OFF" size="1" type="list" value="255">
       <Help>Enable/Disable ALL ON/OFF</Help>
-      <Item label="ALL ON disabled/ ALL OFF disabled" value="0" />
-      <Item label="ALL ON disabled/ ALL OFF active" value="1" />
-      <Item label="ALL ON active / ALL OFF disabled" value="2" />
-      <Item label="ALL ON active / ALL OFF active" value="255" />
+      <Item label="ALL ON disabled/ ALL OFF disabled" value="0"/>
+      <Item label="ALL ON disabled/ ALL OFF active" value="1"/>
+      <Item label="ALL ON active / ALL OFF disabled" value="2"/>
+      <Item label="ALL ON active / ALL OFF active" value="255"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="3" label="Auto off relay after specified time" value="0" size="1">
+    <Value genre="config" index="3" instance="1" label="Auto off relay after specified time" size="1" type="list" value="0">
       <Help>Auto off relay after specified time, with the possibility of manual override - immediate Off after button push.
       Default value: 0 Manual override disabled</Help>
-      <Item label="Manual override disabled" value="0" />
-      <Item label="Manual override enabled" value="1" />
+      <Item label="Manual override disabled" value="0"/>
+      <Item label="Manual override enabled" value="1"/>
     </Value>
-    
-    <Value type="short" genre="config" instance="1" index="4" label="Relay 1: OFF-delay time" value="0">
+    <Value genre="config" index="4" instance="1" label="Relay 1: OFF-delay time" type="short" value="0">
       <Help>Automatic turning off relay 1 after set time, (0-255) in 10ms increments for FW1.0 to FW2.0, (0-65535) in 100 ms increment for FW2.1+</Help>
     </Value>
-    
-    <Value type="short" genre="config" instance="1" index="5" label="Relay 2: OFF-delay time" value="0">
+    <Value genre="config" index="5" instance="1" label="Relay 2: OFF-delay time" type="short" value="0">
       <Help>Automatic turning off relay 2 after set time, (0-255) in 10ms increments for FW1.0 to FW2.0, (0-65535) in 100 ms increment for FW2.1+</Help>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="6" label="Managing the transmission of control commands to the devices from first group of associations (key 1)." value="0" size="1">
+    <Value genre="config" index="6" instance="1" label="Managing the transmission of control commands to the devices from first group of associations (key 1)." size="1" type="list" value="0">
       <Help>Correct working parameter No. 6 requires settings parameter No. 15 to 1. This activates functionality double-click - Control Dimmer/Roller Shutter. Default setting: 0</Help>
-      <Item label="The control commands are sent when the device is turned on and off (default)" value="0" />
-      <Item label="The control commands are sent when the device is turned off. Enabling the device does not send commands controls. Double click on key 1 will send ON to all devices in group 1, all dimmers set to prev.value (ex. 50%)" value="1" />
-      <Item label="The control commands are sent when the device is turned off. Enabling the device does not send commands controls. Double click on key 1 will send ON to all devices in group 1, all dimmers set to 100%" value="2" />                
+      <Item label="The control commands are sent when the device is turned on and off (default)" value="0"/>
+      <Item label="The control commands are sent when the device is turned off. Enabling the device does not send commands controls. Double click on key 1 will send ON to all devices in group 1, all dimmers set to prev.value (ex. 50%)" value="1"/>
+      <Item label="The control commands are sent when the device is turned off. Enabling the device does not send commands controls. Double click on key 1 will send ON to all devices in group 1, all dimmers set to 100%" value="2"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="7" label="Managing the transmission of control commands to the devices from second group of associations (key 2)." value="0" size="1">
+    <Value genre="config" index="7" instance="1" label="Managing the transmission of control commands to the devices from second group of associations (key 2)." size="1" type="list" value="0">
       <Help>Correct working parameter No. 6 requires settings parameter No. 15 to 1. This activates functionality double-click - Control Dimmer/Roller Shutter. Default setting: 0</Help>
-      <Item label="The control commands are sent when the device is turned on and off (default)" value="0" />
-      <Item label="The control commands are sent when the device is turned off. Enabling the device does not send commands controls. Double click on key 2 will send ON to all devices in group 2, all dimmers set to prev.value (ex. 50%)" value="1" />
-      <Item label="The control commands are sent when the device is turned off. Enabling the device does not send commands controls. Double click on key 2 will send ON to all devices in group 2, all dimmers set to 100%" value="2" />
+      <Item label="The control commands are sent when the device is turned on and off (default)" value="0"/>
+      <Item label="The control commands are sent when the device is turned off. Enabling the device does not send commands controls. Double click on key 2 will send ON to all devices in group 2, all dimmers set to prev.value (ex. 50%)" value="1"/>
+      <Item label="The control commands are sent when the device is turned off. Enabling the device does not send commands controls. Double click on key 2 will send ON to all devices in group 2, all dimmers set to 100%" value="2"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="13" label="Inputs behaviour" value="0" size="1">
+    <Value genre="config" index="13" instance="1" label="Inputs behaviour" size="1" type="list" value="0">
       <Help>In case of bi-stable switches, define their behaviour (toggle or follow). Default setting: 0</Help>
       <Item label="Toggle" value="0"/>
       <Item label="Follow switch contact (closed=ON, open=OFF)" value="1"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="14" label="Inputs Button/Switch configuration" value="1" size="1">
+    <Value genre="config" index="14" instance="1" label="Inputs Button/Switch configuration" size="1" type="list" value="1">
       <Help>Binary inputs type configuration. Default setting: 1</Help>
       <Item label="Mono-stable input (button)" value="0"/>
       <Item label="Bi-stable input (switch)" value="1"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="15" label="Dimmer/Roller shutter control" value="0" size="1">
+    <Value genre="config" index="15" instance="1" label="Dimmer/Roller shutter control" size="1" type="list" value="0">
       <Help>Enable/Disable operation of dimmer or roller shutter devices associated to group 1.
         Available only when using mono-stable inputs (buttons) - Hold button 1 or double-tap for operation (only mono-stable input (button)). Default setting: 0</Help>
       <Item label="Disable Dimmer/Roller shutter control" value="0"/>
       <Item label="Enable Dimmer/Roller shutter control" value="1"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="16" label="Saving state before power failure" value="1" size="1">
+    <Value genre="config" index="16" instance="1" label="Saving state before power failure" size="1" type="list" value="1">
       <Help>Saving state before power failure. Default setting: 1</Help>
       <Item label="State NOT saved at power failure, all outputs are set to OFF upon power restore" value="0"/>
       <Item label="State saved at power failure, all outputs are set to previous state upon power restore" value="1"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="30" label="Relay 1: Response to General Alarm" value="3" size="1">
+    <Value genre="config" index="30" instance="1" label="Relay 1: Response to General Alarm" size="1" type="list" value="3">
       <Help>Default setting: 3</Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="31" label="Relay 1: Response to Water Flood Alarm" value="2" size="1">
+    <Value genre="config" index="31" instance="1" label="Relay 1: Response to Water Flood Alarm" size="1" type="list" value="2">
       <Help>Default setting: 2</Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
-      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>                
+      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="32" label="Relay 1: Response to Smoke, CO, CO2 Alarm" value="3" size="1">
+    <Value genre="config" index="32" instance="1" label="Relay 1: Response to Smoke, CO, CO2 Alarm" size="1" type="list" value="3">
       <Help>Default setting: 3</Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="33" label="Relay 1: Response to Temperature Alarm" value="1" size="1">
+    <Value genre="config" index="33" instance="1" label="Relay 1: Response to Temperature Alarm" size="1" type="list" value="1">
       <Help>Default setting: 1</Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
-      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>                
+      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="short" genre="config" instance="1" index="39" label="ALARM FLASHING alarm time" value="600" size="2">
+    <Value genre="config" index="39" instance="1" label="ALARM FLASHING alarm time" size="2" type="short" value="600">
       <Help>Amount of time (ms) the device keeps on flashing after receipt of Alarm Frame. Default setting: 600</Help>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="40" label="Relay 2: Response to General Alarm" value="3" size="1">
+    <Value genre="config" index="40" instance="1" label="Relay 2: Response to General Alarm" size="1" type="list" value="3">
       <Help>Default setting: 3</Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="41" label="Relay 2: Response to Water Flood Alarm" value="2" size="1">
+    <Value genre="config" index="41" instance="1" label="Relay 2: Response to Water Flood Alarm" size="1" type="list" value="2">
       <Help>Default setting: 2</Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
-      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>                
+      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="42" label="Relay 2: Response to Smoke, CO, CO2 Alarm" value="3" size="1">
+    <Value genre="config" index="42" instance="1" label="Relay 2: Response to Smoke, CO, CO2 Alarm" size="1" type="list" value="3">
       <Help>Default setting: 3</Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="43" label="Relay 2: Response to Temperature Alarm" value="1" size="1">
+    <Value genre="config" index="43" instance="1" label="Relay 2: Response to Temperature Alarm" size="1" type="list" value="1">
       <Help>Default setting: 1</Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
-      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>                
+      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
   </CommandClass>
-  
-  <CommandClass id="96" mapping="endpoints" />
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
-      <Group index="1" max_associations="5" label="Key no 1" auto="false"/>
-      <Group index="2" max_associations="5" label="Key no 2"/>
-      <Group index="3" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Key no 1" max_associations="5"/>
+      <Group index="2" label="Key no 2" max_associations="5"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/fibaro/fgs222.xml b/Config/fibaro/fgs222.xml
index fe9a0c1ed5..0b9e1ed1ed 100644
--- a/Config/fibaro/fgs222.xml
+++ b/Config/fibaro/fgs222.xml
@@ -1,157 +1,139 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="list" genre="config" instance="1" index="1" label="Enable/Disable ALL ON/OFF" value="255" size="1">
+    <Value genre="config" index="1" instance="1" label="Enable/Disable ALL ON/OFF" size="1" type="list" value="255">
       <Help>Enable/Disable ALL ON/OFF</Help>
-      <Item label="ALL ON disabled/ ALL OFF disabled" value="0" />
-      <Item label="ALL ON disabled/ ALL OFF active" value="1" />
-      <Item label="ALL ON active / ALL OFF disabled" value="2" />
-      <Item label="ALL ON active / ALL OFF active" value="255" />
+      <Item label="ALL ON disabled/ ALL OFF disabled" value="0"/>
+      <Item label="ALL ON disabled/ ALL OFF active" value="1"/>
+      <Item label="ALL ON active / ALL OFF disabled" value="2"/>
+      <Item label="ALL ON active / ALL OFF active" value="255"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="3" label="Auto off relay after specified time" value="0" size="1">
+    <Value genre="config" index="3" instance="1" label="Auto off relay after specified time" size="1" type="list" value="0">
       <Help>Auto off relay after specified time, with the possibility of manual override - immediate Off after button push.
       Default value: 0 Manual override disabled</Help>
-      <Item label="Manual override disabled" value="0" />
-      <Item label="Manual override enabled" value="1" />
+      <Item label="Manual override disabled" value="0"/>
+      <Item label="Manual override enabled" value="1"/>
     </Value>
-    
-    <Value type="short" genre="config" instance="1" index="4" label="Auto off for relay 1" min="0" max="65535" value="0" >
+    <Value genre="config" index="4" instance="1" label="Auto off for relay 1" max="65535" min="0" type="short" value="0">
       <Help>
          Time period for auto off, in milliseconds (0,1 s to 6553,5 s)
          0 - Auto off disabled
          Default value: 0
       </Help>
     </Value>
-    
-    <Value type="short" genre="config" instance="1" index="5" label="Auto off for relay 2" min="0" max="65535" value="0" >
+    <Value genre="config" index="5" instance="1" label="Auto off for relay 2" max="65535" min="0" type="short" value="0">
       <Help>
          Time period for auto off, in milliseconds (0,1 s to 6553,5 s)
          0 - Auto off disabled
          Default value: 0
       </Help>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="6" label="Separation of association sending (key 1)" value="0" size="1">
+    <Value genre="config" index="6" instance="1" label="Separation of association sending (key 1)" size="1" type="list" value="0">
       <Help>Activate/Deactivate association sending for group 1 - Also see param #16</Help>
-      <Item label="Map status to all devices in group 1 (default)" value="0" />
-      <Item label="Map OFF status to all devices in group 1, Double click on key 1 will send ON to all devices in group 1, all dimmers set to prev.value" value="1" />
-      <Item label="Map OFF status to all devices in group 1, Double click on key 1 will send ON to all devices in group 1, all dimmers set to 100%" value="2" />                
+      <Item label="Map status to all devices in group 1 (default)" value="0"/>
+      <Item label="Map OFF status to all devices in group 1, Double click on key 1 will send ON to all devices in group 1, all dimmers set to prev.value" value="1"/>
+      <Item label="Map OFF status to all devices in group 1, Double click on key 1 will send ON to all devices in group 1, all dimmers set to 100%" value="2"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="7" label="Control key #2 behaviour" value="1" size="1">
+    <Value genre="config" index="7" instance="1" label="Control key #2 behaviour" size="1" type="list" value="1">
       <Help>Key no.2 is not represented by any physical device except of devices on association list. 
         This functionality prevents of lack of reaction on pressing key no.2 through polling devices 
         from association list one by one and checking their actual statuses.
       </Help>
-      <Item label="Device status is not checked" value="0" />
-      <Item label="Device status is checked" value="1" />
+      <Item label="Device status is not checked" value="0"/>
+      <Item label="Device status is checked" value="1"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="13" label="Inputs behaviour" value="0" size="1">
+    <Value genre="config" index="13" instance="1" label="Inputs behaviour" size="1" type="list" value="0">
       <Help>In case of bi-stable switches, define their behaviour (toggle or follow)</Help>
       <Item label="Toggle" value="0"/>
       <Item label="Follow switch contact (closed=ON, open=OFF)" value="1"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="14" label="Inputs Button/Switch configuration" value="1" size="1">
+    <Value genre="config" index="14" instance="1" label="Inputs Button/Switch configuration" size="1" type="list" value="1">
       <Help>Binary inputs type configuration</Help>
       <Item label="Mono-stable input (button)" value="0"/>
       <Item label="Bi-stable input (switch)" value="1"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="15" label="Dimmer/Roller shutter control" value="0" size="1">
+    <Value genre="config" index="15" instance="1" label="Dimmer/Roller shutter control" size="1" type="list" value="0">
       <Help>Enable/Disable operation of dimmer or roller shutter devices associated to group 1.
         Available only when using mono-stable inputs (buttons) - Hold button 1 or double-tap for operation</Help>
       <Item label="Disable Dimmer/Roller shutter control" value="0"/>
       <Item label="Enable Dimmer/Roller shutter control" value="1"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="16" label="Saving state before power failure" value="1" size="1">
+    <Value genre="config" index="16" instance="1" label="Saving state before power failure" size="1" type="list" value="1">
       <Help>Saving state before power failure</Help>
       <Item label="State NOT saved at power failure, all outputs are set to OFF upon power restore" value="0"/>
       <Item label="State saved at power failure, all outputs are set to previous state upon power restore" value="1"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="30" label="Relay 1: Response to General Alarm" value="3" size="1">
+    <Value genre="config" index="30" instance="1" label="Relay 1: Response to General Alarm" size="1" type="list" value="3">
       <Help></Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="31" label="Relay 1: Response to Water Flood Alarm" value="2" size="1">
+    <Value genre="config" index="31" instance="1" label="Relay 1: Response to Water Flood Alarm" size="1" type="list" value="2">
       <Help></Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
-      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>                
+      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="32" label="Relay 1: Response to Smoke, CO, CO2 Alarm" value="3" size="1">
+    <Value genre="config" index="32" instance="1" label="Relay 1: Response to Smoke, CO, CO2 Alarm" size="1" type="list" value="3">
       <Help></Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="33" label="Relay 1: Response to Temperature Alarm" value="1" size="1">
+    <Value genre="config" index="33" instance="1" label="Relay 1: Response to Temperature Alarm" size="1" type="list" value="1">
       <Help></Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
-      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>                
+      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="short" genre="config" instance="1" index="39" label="ALARM FLASHING alarm time" value="600" size="2">
+    <Value genre="config" index="39" instance="1" label="ALARM FLASHING alarm time" size="2" type="short" value="600">
       <Help>Amount of time (ms) the device keeps on flashing after receipt of Alarm Frame</Help>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="40" label="Relay 2: Response to General Alarm" value="3" size="1">
+    <Value genre="config" index="40" instance="1" label="Relay 2: Response to General Alarm" size="1" type="list" value="3">
       <Help></Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="41" label="Relay 2: Response to Water Flood Alarm" value="2" size="1">
+    <Value genre="config" index="41" instance="1" label="Relay 2: Response to Water Flood Alarm" size="1" type="list" value="2">
       <Help></Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
-      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>                
+      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="42" label="Relay 2: Response to Smoke, CO, CO2 Alarm" value="3" size="1">
+    <Value genre="config" index="42" instance="1" label="Relay 2: Response to Smoke, CO, CO2 Alarm" size="1" type="list" value="3">
       <Help></Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
       <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
-    
-    <Value type="list" genre="config" instance="1" index="43" label="Relay 2: Response to Temperature Alarm" value="1" size="1">
+    <Value genre="config" index="43" instance="1" label="Relay 2: Response to Temperature Alarm" size="1" type="list" value="1">
       <Help></Help>
       <Item label="DEACTIVATION - no response to alarm frames" value="0"/>
       <Item label="ALARM RELAY ON - relay will turn ON upon receipt of alarm frame" value="1"/>
       <Item label="ALARM RELAY OFF - relay will turn OFF upon receipt of alarm frame" value="2"/>
-      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>                
+      <Item label="ALARM FLASHING - relay will turn ON and OFF periodically (see param.39)" value="3"/>
     </Value>
   </CommandClass>
-  
-  <CommandClass id="96" mapping="endpoints" />
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
-      <Group index="1" max_associations="5" label="Key no 1" auto="false"/>
-      <Group index="2" max_associations="5" label="Key no 2"/>
-      <Group index="3" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Key no 1" max_associations="5"/>
+      <Group index="2" label="Key no 2" max_associations="5"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/fibaro/fgs223.xml b/Config/fibaro/fgs223.xml
index 61304d624b..7c481020f2 100644
--- a/Config/fibaro/fgs223.xml
+++ b/Config/fibaro/fgs223.xml
@@ -1,75 +1,78 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
-    <CommandClass id="38" getsupported="false"/>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="9" label="Saving state before power failure" value="1" min="0" max="1" size="1">
-            <Help>Saving state before power failure</Help>
-            <Item label="State NOT saved at power failure, all outputs are set to OFF upon power restore" value="0"/>
-            <Item label="State saved at power failure, all outputs are set to previous state upon power restore" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="10" label="First channel - operating mode" value="0" min="0" max="5" size="1">
-            <Help>This parameter allows to choose operating for the 1st channel controlled by the S1 switch.</Help>
-            <Item label="Standard operation" value="0"/>
-            <Item label="Delay On" value="1"/>
-            <Item label="Delay Off" value="2"/>
-            <Item label="Auto On" value="3"/>
-            <Item label="Auto Off" value="4"/>
-            <Item label="Flashing Mode" value="5"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="11" label="First channel - reaction to switch for delay/auto ON/OFF modes" value="0" min="0" max="2" size="1">
-            <Help>This parameter determines how the device in timed mode reacts to pushing the switch connected to the S1 terminal.</Help>
-            <Item label="Cancel mode and set target state" value="0"/>
-            <Item label="No reaction to switch - mode runs until it ends" value="1"/>
-            <Item label="Reset timer - start counting from the beginning" value="2"/>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="12" label="First channel - time parameter for delay/auto ON/OFF modes" value="50" min="1" max="32000" size="2">
-            <Help>This parameter allows to set time parameter used in timed modes. (s)</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="13" label="First channel - pulse time for flashing mode" value="5" min="1" max="32000" size="2">
-            <Help>
+<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
+  <CommandClass id="38">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="9" instance="1" label="Saving state before power failure" max="1" min="0" size="1" type="list" value="1">
+      <Help>Saving state before power failure</Help>
+      <Item label="State NOT saved at power failure, all outputs are set to OFF upon power restore" value="0"/>
+      <Item label="State saved at power failure, all outputs are set to previous state upon power restore" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="First channel - operating mode" max="5" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose operating for the 1st channel controlled by the S1 switch.</Help>
+      <Item label="Standard operation" value="0"/>
+      <Item label="Delay On" value="1"/>
+      <Item label="Delay Off" value="2"/>
+      <Item label="Auto On" value="3"/>
+      <Item label="Auto Off" value="4"/>
+      <Item label="Flashing Mode" value="5"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="First channel - reaction to switch for delay/auto ON/OFF modes" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter determines how the device in timed mode reacts to pushing the switch connected to the S1 terminal.</Help>
+      <Item label="Cancel mode and set target state" value="0"/>
+      <Item label="No reaction to switch - mode runs until it ends" value="1"/>
+      <Item label="Reset timer - start counting from the beginning" value="2"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="First channel - time parameter for delay/auto ON/OFF modes" max="32000" min="1" size="2" type="short" value="50">
+      <Help>This parameter allows to set time parameter used in timed modes. (s)</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="First channel - pulse time for flashing mode" max="32000" min="1" size="2" type="short" value="5">
+      <Help>
                 This parameter allows to set time of switching to opposite state in flashing mode.
                 1-32000 (0.1-3200.0s, 0.1s step)
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="15" label="Second channel - operating mode" value="0" min="0" max="5" size="1">
-            <Help>This parameter allows to choose operating for the 2nd channel controlled by the S2 switch.</Help>
-            <Item label="Standard operation" value="0"/>
-            <Item label="Delay On" value="1"/>
-            <Item label="Delay Off" value="2"/>
-            <Item label="Auto On" value="3"/>
-            <Item label="Auto Off" value="4"/>
-            <Item label="Flashing Mode" value="5"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="16" label="Second channel - reaction to switch for delay/auto ON/OFF modes" value="0" min="0" max="2" size="1">
-            <Help>This parameter determines how the device in timed mode reacts to pushing the switch connected to the S2 terminal.</Help>
-            <Item label="Cancel mode and set target state" value="0"/>
-            <Item label="No reaction to switch - mode runs until it ends" value="1"/>
-            <Item label="Reset timer - start counting from the beginning" value="2"/>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="17" label="Second channel - time parameter for delay/auto ON/OFF modes" value="50" min="1" max="32000" size="2">
-            <Help>This parameter allows to set time parameter used in timed modes. (s)</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="18" label="Second channel - pulse time for flashing mode" value="5" min="1" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Second channel - operating mode" max="5" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose operating for the 2nd channel controlled by the S2 switch.</Help>
+      <Item label="Standard operation" value="0"/>
+      <Item label="Delay On" value="1"/>
+      <Item label="Delay Off" value="2"/>
+      <Item label="Auto On" value="3"/>
+      <Item label="Auto Off" value="4"/>
+      <Item label="Flashing Mode" value="5"/>
+    </Value>
+    <Value genre="config" index="16" instance="1" label="Second channel - reaction to switch for delay/auto ON/OFF modes" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter determines how the device in timed mode reacts to pushing the switch connected to the S2 terminal.</Help>
+      <Item label="Cancel mode and set target state" value="0"/>
+      <Item label="No reaction to switch - mode runs until it ends" value="1"/>
+      <Item label="Reset timer - start counting from the beginning" value="2"/>
+    </Value>
+    <Value genre="config" index="17" instance="1" label="Second channel - time parameter for delay/auto ON/OFF modes" max="32000" min="1" size="2" type="short" value="50">
+      <Help>This parameter allows to set time parameter used in timed modes. (s)</Help>
+    </Value>
+    <Value genre="config" index="18" instance="1" label="Second channel - pulse time for flashing mode" max="32000" min="1" size="2" type="short" value="5">
+      <Help>
                 This parameter allows to set time of switching to opposite state in flashing mode.
                 1-32000 (0.1-3200.0s, 0.1s step)
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="20" label="Switch type" value="2" min="0" max="2" size="1">
-            <Help>Inputs type configuration</Help>
-            <Item label="Momentary switch" value="0"/>
-            <Item label="Toggle switch (contact closed - On, contact opened - OFF)" value="1"/>
-            <Item label="Toggle switch (device changes status when switch changes status)" value="2"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="21" label="Flashing mode report" value="0" min="0" max="1" size="1">
-            <Help>Enabled / Disabled reports on Flashing mode</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Enabled" value="1"/>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="27" label="Associations in Z-Wave network security mode" value="15" min="0" max="15" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Switch type" max="2" min="0" size="1" type="list" value="2">
+      <Help>Inputs type configuration</Help>
+      <Item label="Momentary switch" value="0"/>
+      <Item label="Toggle switch (contact closed - On, contact opened - OFF)" value="1"/>
+      <Item label="Toggle switch (device changes status when switch changes status)" value="2"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Flashing mode report" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enabled / Disabled reports on Flashing mode</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="27" instance="1" label="Associations in Z-Wave network security mode" max="15" min="0" size="1" type="byte" value="15">
+      <Help>
                 This parameter defines how commands are sent to specified association groups: as secure or non-secure.
                 Parameter is active only in Z-Wave network security mode.
                 This parameter does not apply to 1st lifeline group.
@@ -79,9 +82,9 @@
                 8 - 5th group sent as secure.
                 Default setting: 15 (all)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="28" label="S1 switch - scenes sent" value="0" min="0" max="15" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="28" instance="1" label="S1 switch - scenes sent" max="15" min="0" size="1" type="byte" value="0">
+      <Help>
                 This parameter determines which actions result in sending scene IDs assigned to them.
                 1 - Key pressed 1 time.
                 2 - Key pressed 2 times.
@@ -89,9 +92,9 @@
                 8 - Key Hold Down and Key Released.
                 Default setting: 0 (none)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="29" label="S2 switch - scenes sent" value="0" min="0" max="15" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="29" instance="1" label="S2 switch - scenes sent" max="15" min="0" size="1" type="byte" value="0">
+      <Help>
                 This parameter determines which actions result in sending scene IDs assigned to them.
                 1 - Key pressed 1 time.
                 2 - Key pressed 2 times.
@@ -99,9 +102,9 @@
                 8 - Key Hold Down and Key Released.
                 Default setting: 0 (none)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="30" label="S1 associations sent to 2nd and 3rd association groups" value="0" min="0" max="15" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="S1 associations sent to 2nd and 3rd association groups" max="15" min="0" size="1" type="byte" value="0">
+      <Help>
                 This parameter determines which actions are ignored when sending commands to devices associated in 2nd and 3rd association group.
                 All actions are active by default.
                 1 - ignore turning On with 1 click of the switch.
@@ -110,24 +113,24 @@
                 8 - ignore double click of the switch.
                 Default setting: 0
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="31" label="S1 Switch ON value sent to 2nd and 3rd association groups" value="255" min="0" max="255" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="S1 Switch ON value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="255">
+      <Help>
                 This parameter determines value sent with Switch On command to devices associated in 2nd and 3rd association group.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="32" label="S1 Switch OFF value sent to 2nd and 3rd association groups" value="0" min="0" max="255" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="32" instance="1" label="S1 Switch OFF value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="0">
+      <Help>
                 This parameter determines value sent with Switch Off command to devices associated in 2nd and 3rd association group.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="33" label="S1 Switch Double Click value sent to 2nd and 3rd association groups" value="99" min="0" max="255" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="33" instance="1" label="S1 Switch Double Click value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="99">
+      <Help>
                 This parameter determines value sent with Double Click command to devices associated in 2nd and 3rd association group.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="35" label="S2 associations sent to 4th and 5th association groups" value="0" min="0" max="15" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="35" instance="1" label="S2 associations sent to 4th and 5th association groups" max="15" min="0" size="1" type="byte" value="0">
+      <Help>
                 This parameter determines which actions are ignored when sending commands to devices associated in 4th and 5th association group.
                 All actions are active by default.
                 1 - ignore turning On with 1 click of the switch.
@@ -136,133 +139,141 @@
                 8 - ignore double click of the switch.
                 Default setting: 0
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="36" label="S2 Switch ON value sent to 4th and 5th association groups" value="255" min="0" max="255" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="36" instance="1" label="S2 Switch ON value sent to 4th and 5th association groups" max="255" min="0" size="2" type="short" value="255">
+      <Help>
                 This parameter determines value sent with Switch On command to devices associated in 4th and 5th association group.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="37" label="S2 Switch OFF value sent to 4th and 5th association groups" value="0" min="0" max="255" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="37" instance="1" label="S2 Switch OFF value sent to 4th and 5th association groups" max="255" min="0" size="2" type="short" value="0">
+      <Help>
                 This parameter determines value sent with Switch Off command to devices associated in 4th and 5th association group.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="38" label="S2 Switch Double Click value sent to 4th and 5th association groups" value="99" min="0" max="255" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="38" instance="1" label="S2 Switch Double Click value sent to 4th and 5th association groups" max="255" min="0" size="2" type="short" value="99">
+      <Help>
                 This parameter determines value sent with Double Click command to devices associated in 4th and 5th association group.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="40" label="Reaction to General Alarm" value="3" min="0" max="3" size="1">
-            <Help>This parameter determines how the device will react to General Alarm frame.</Help>
-            <Item label="Ignored" value="0"/>
-            <Item label="Turn On" value="1"/>
-            <Item label="Turn OFF" value="2"/>
-            <Item label="Flash" value="3"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="41" label="Reaction to Flood Alarm" value="2" min="0" max="3" size="1">
-            <Help>This parameter determines how the device will react to Flood Alarm frame.</Help>
-            <Item label="Ignored" value="0"/>
-            <Item label="Turn On" value="1"/>
-            <Item label="Turn OFF" value="2"/>
-            <Item label="Flash" value="3"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="42" label="Reaction to CO/CO2/Smoke Alarm" value="3" min="0" max="3" size="1">
-            <Help>This parameter determines how the device will react to CO/CO2/Smoke Alarm frame.</Help>
-            <Item label="Ignored" value="0"/>
-            <Item label="Turn On" value="1"/>
-            <Item label="Turn OFF" value="2"/>
-            <Item label="Flash" value="3"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="43" label="Reaction to Heat Alarm" value="1" min="0" max="3" size="1">
-            <Help>This parameter determines how the device will react to Heat alarm frame.</Help>
-            <Item label="Ignored" value="0"/>
-            <Item label="Turn On" value="1"/>
-            <Item label="Turn OFF" value="2"/>
-            <Item label="Flash" value="3"/>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="44" label="Flashing alarm duration" value="600" min="1" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Reaction to General Alarm" max="3" min="0" size="1" type="list" value="3">
+      <Help>This parameter determines how the device will react to General Alarm frame.</Help>
+      <Item label="Ignored" value="0"/>
+      <Item label="Turn On" value="1"/>
+      <Item label="Turn OFF" value="2"/>
+      <Item label="Flash" value="3"/>
+    </Value>
+    <Value genre="config" index="41" instance="1" label="Reaction to Flood Alarm" max="3" min="0" size="1" type="list" value="2">
+      <Help>This parameter determines how the device will react to Flood Alarm frame.</Help>
+      <Item label="Ignored" value="0"/>
+      <Item label="Turn On" value="1"/>
+      <Item label="Turn OFF" value="2"/>
+      <Item label="Flash" value="3"/>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Reaction to CO/CO2/Smoke Alarm" max="3" min="0" size="1" type="list" value="3">
+      <Help>This parameter determines how the device will react to CO/CO2/Smoke Alarm frame.</Help>
+      <Item label="Ignored" value="0"/>
+      <Item label="Turn On" value="1"/>
+      <Item label="Turn OFF" value="2"/>
+      <Item label="Flash" value="3"/>
+    </Value>
+    <Value genre="config" index="43" instance="1" label="Reaction to Heat Alarm" max="3" min="0" size="1" type="list" value="1">
+      <Help>This parameter determines how the device will react to Heat alarm frame.</Help>
+      <Item label="Ignored" value="0"/>
+      <Item label="Turn On" value="1"/>
+      <Item label="Turn OFF" value="2"/>
+      <Item label="Flash" value="3"/>
+    </Value>
+    <Value genre="config" index="44" instance="1" label="Flashing alarm duration" max="32000" min="1" size="2" type="short" value="600">
+      <Help>
                 This parameter allows to set duration of flashing alarm mode.
                 1-32000 (0.1-32000s, 1s step) Default: 600 (10min)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="50" label="First channel - power reports" value="20" min="1" max="100" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="50" instance="1" label="First channel - power reports" max="100" min="1" size="2" type="short" value="20">
+      <Help>
                 This parameter determines the minimum change in consumed power
                 that will result in sending new power report to the main controller.
                 1-100 (%) Default 20 (20%)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="51" label="First channel - minimal time between power reports" value="10" min="1" max="120" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="51" instance="1" label="First channel - minimal time between power reports" max="120" min="1" size="2" type="short" value="10">
+      <Help>
                 This parameter determines minimum time that has to elapse before
                 sending new power report to the main controller.
                 1-120 (s) Default 10 (10s)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="53" label="First channel - energy reports" value="100" min="1" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="53" instance="1" label="First channel - energy reports" max="32000" min="1" size="2" type="short" value="100">
+      <Help>
                 This parameter determines the minimum change in consumed energy
                 that will result in sending new energy report to the main controller.
                 1-32000 (0.01-320 kWh) Default 100 (1kWh)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="54" label="Second Channel - power reports" value="20" min="1" max="100" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="54" instance="1" label="Second Channel - power reports" max="100" min="1" size="2" type="short" value="20">
+      <Help>
                 This parameter determines the minimum change in consumed power
                 that will result in sending new power report to the main controller.
                 1-100 (%) Default 20 (20%)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="55" label="Second channel - minimal time between power reports" value="10" min="1" max="120" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="55" instance="1" label="Second channel - minimal time between power reports" max="120" min="1" size="2" type="short" value="10">
+      <Help>
                 This parameter determines minimum time that has to elapse before
                 sending new power report to the main controller.
                 1-120 (s) Default 10 (10s)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="57" label="Second channel - energy reports" value="100" min="1" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="57" instance="1" label="Second channel - energy reports" max="32000" min="1" size="2" type="short" value="100">
+      <Help>
                 This parameter determines the minimum change in consumed energy
                 that will result in sending new energy report to the main controller
                 1-32000 (0.01-320 kWh) Default 100 (1kWh)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="58" label="Periodic power reports" value="3600" min="1" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="58" instance="1" label="Periodic power reports" max="32000" min="1" size="2" type="short" value="3600">
+      <Help>
                 This parameter determines in what time interval the periodic
                 power reports are sent to the main controller.
                 1-32000 (s) Default 3600 (1h)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="59" label="Periodic energy reports" value="3600" min="1" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="59" instance="1" label="Periodic energy reports" max="32000" min="1" size="2" type="short" value="3600">
+      <Help>
                 This parameter determines in what time interval the periodic
                 power reports are sent to the main controller.
                 1-32000 (s) Default 3600 (1h)
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="60" label="Measuring energy consumed by the device itself" value="0" min="0" max="1" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Measuring energy consumed by the device itself" max="1" min="0" size="1" type="list" value="0">
+      <Help>
                 This parameter determines whether energy metering should include
                 the amount of energy consumed by the device itself. Results are
                 being added to energy reports for first endpoint.
             </Help>
-            <Item label="function inactive" value="0"/>
-            <Item label="function active" value="1"/>
-        </Value>
-    </CommandClass>
-    <!-- -->
-    <CommandClass id="96" mapping="endpoints"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="5">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="On/Off S1"/>
-            <Group index="3" max_associations="5" label="Dimmer S1"/>
-            <Group index="4" max_associations="5" label="On/Off S2"/>
-            <Group index="5" max_associations="5" label="Dimmer S2"/>
-        </Associations>
-    </CommandClass>
-    <CommandClass id="142" ForceInstances="true"/>
+      <Item label="function inactive" value="0"/>
+      <Item label="function active" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off S1" max_associations="5"/>
+      <Group index="3" label="Dimmer S1" max_associations="5"/>
+      <Group index="4" label="On/Off S2" max_associations="5"/>
+      <Group index="5" label="Dimmer S2" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgsd002.xml b/Config/fibaro/fgsd002.xml
index 5b0d6fc701..8bb1744f73 100644
--- a/Config/fibaro/fgsd002.xml
+++ b/Config/fibaro/fgsd002.xml
@@ -1,74 +1,104 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Configuration -->
-	<CommandClass id="112">
-
-		<Value type="list" genre="config" instance="1" index="1" label="Fibaro Smoke Sensor sensitivity" min="1" max="3" value="2" size="1">
-			<Help>There are 3 levels of sensitivity to smoke presence. Level 1 means the highest sensitivity. Rising the parameter value lowers the sensitivity to smoke presence.</Help>
-			<Item label="HIGH Sensitivity" value="1" />
-			<Item label="MEDIUM Sensitivity" value="2" />
-			<Item label="LOW Sensitivity" value="3" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="Z-Wave notifications status" min="0" max="3" value="0"  size="1">
-			<Help>This parameter allows to activate excess temperature and/or enclosure opening notifications sent to the main controller.</Help>
-			<Item label="all notifications disabled" value="0" />
-			<Item label="enclosure opening notification enabled" value="1" />
-			<Item label="exceeding temperature threshold notification enabled" value="2" />
-			<Item label="all notifications enabled" value="3" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="3" label="Visual indicator notifications status" min="0" max="7" value="0"  size="1">
-			<Help>This parameter allows to activate visual indications but does not apply to major alarms, such as FIRE, TROUBLE and LOW BATTERY ALARM.</Help>
-			<Item label="all notifications disabled" value="0" />
-			<Item label="enclosure opening notification enabled" value="1" />
-			<Item label="exceeding temperature threshold notification enabled" value="2" />
-			<Item label="enclosure opening and exceeding temperature threshold notifications enabled" value="3" />
-			<Item label="lack of Z-Wave range notification" value="4" />
-			<Item label="enclosure opening and lack of Z-Wave range notifications enabled" value="5" />
-			<Item label="exceeding temperature threshold and lack of Z-Wave range notifications enabled" value="6" />
-			<Item label="all notifications enabled" value="7" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="4" label="Sound notifications status" min="0" max="7" value="0"  size="1">
-			<Help>This parameter allows to activate sound signals but does not apply to major alarms, such as FIRE, TROUBLE and LOW BATTERY ALARM.</Help>
-			<Item label="all notifications disabled" value="0" />
-			<Item label="enclosure opening notification enabled" value="1" />
-			<Item label="exceeding temperature threshold notification enabled" value="2" />
-			<Item label="enclosure opening and exceeding temperature threshold notifications enabled" value="3" />
-			<Item label="lack of Z-Wave range notification" value="4" />
-			<Item label="enclosure opening and lack of Z-Wave range notifications enabled" value="5" />
-			<Item label="exceeding temperature threshold and lack of Z-Wave range notifications enabled" value="6" />
-			<Item label="all notifications enabled" value="7" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="10" label="Configuration of control frames in BASIC command class" min="0" max="2" value="0" size="1">
-			<Help>This parameter defines which frames will be sent in the 2-nd Association Group (FIRE ALARM).</Help>
-			<Item label="BASIC ON - BASIC OFF enabled" value="0" />
-			<Item label="BASIC ON enabled" value="1" />
-			<Item label="BASIC OFF enabled" value="2" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="11" label="BASIC ON frame value" min="0" max="255" value="255">
-			<Help>BASIC ON frame is sent in case of smoke presence detection and FIRE ALARM triggering. Available settings: (1 - 99) or 255. Default setting: 255</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="12" label="BASIC OFF frame value" min="0" max="255" value="0">
-			<Help>BASIC OFF frame is sent in case of FIRE ALARM cancellation. Available settings: (1 - 99) or 255. Default setting: 255</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="13" label="Alarm broadcast" min="0" max="4" value="0" size="1">
-			<Help>A value other than 0 means that alarms are being sent in broadcast mode, i.e. to all devices within a Fibaro Smoke Sensor's range.</Help>
-			<Item label="Broadcasts INACTIVE" value="0" />
-			<Item label="Smoke ACTIVE, tamper INACTIVE" value="1" />
-			<Item label="Smoke INACTIVE, tamper ACTIVE" value="2" />
-			<Item label="Smoke ACTIVE, tamper ACTIVE" value="3" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="14" label="Associations in Z-Wave network security mode" min="0" max="15" value="0" size="1">
-			<Help>This parameter defines how commands are sent in specified association groups: as secure or non-secure. Parameter is active only in Z-Wave network security mode. It doesn't apply to 1st Lifeline group.
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1002:0C02</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgsd002.png</MetaDataItem>
+    <MetaDataItem id="1002" name="ZWProductPage" type="0C02">https://products.z-wavealliance.org/products/1273/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Fibaro Smoke Sensor inclusion:
+1) Install the battery. Visual indicator will signal the Z-Wave network inclusion status
+(green - device included, red - device not included)
+2) Make sure the device is located within direct range of the Z-Wave controller.
+3) Set the main controller into the learning mode
+(see main controllers operating manual).
+4) Quickly, triple click the B-button, located on Fibaro Smoke Sensors enclosure.
+5) Fibaro Smoke Sensor will be detected and included in the Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please use this procedure only in the event that the system primary controller is missing or otherwise inoperable.
+Fibaro Smoke Sensor reset procedure:
+1) Make sure the device has the battery installed.
+2) Press and hold the B-button for 3 seconds. Visual indicator will glow white.
+3) You will hear a short signal.
+4) Release the B-button.
+5) Wait until the visual indicator glows yellow, signaling entering the 4th menu level.
+6) Press the B-button briefly to confirm menu level choice.  At the same time you will hear a short beep, the same sound as during the power connection.
+Successful reset will be confirmed with the visual indicator changing colour to red and
+fading. At the same time, short beep will sound, same as at the power connection.</MetaDataItem>
+    <MetaDataItem id="1002" name="Identifier" type="0C02">FGSD-002</MetaDataItem>
+    <MetaDataItem name="Description">The FIBARO Smoke Sensor is a universal, ultra-light, perfectly designed, optical Z-Wave smoke detector. Fire alarm is signaled by sound, visual indicator blinking and alarm reports sent to the other devices within Z-wave network. The optical sensor detects smoke at an early stage of fire, often before flames appear and temperature starts to rise significantly. Moreover, the device has a built-in temperature sensor, which is adjustable to allow detection of fire by exceeding given temperature threshold. The FIBARO Smoke Sensor is a battery powered device designed to be placed on the wall or ceiling. Visual indicator signals fire, operating mode and it is used to check if the device is within the Z-wave network using a built-in Z-Wave range tester. The Smoke Sensor is designed to operate in confined spaces, under normal conditions (lacking of smoke, dust or condensed water vapor).
+
+
+Product video: 
+https://www.youtube.com/watch?v=50QGfkdUtns</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1273/FGSD-002-EN-A-v1.01 LQ-1.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">The Smoke Sensor will wake up at defined time interval and
+will ALWAYS try to communicate with the main controller.  There is a possibility to wake the device up manually by triple-click the B-button.</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Smoke Sensor</MetaDataItem>
+    <MetaDataItem id="1002" name="FrequencyName" type="0C02">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1) Make sure there is a battery installed
+2) Set the main controller into the learning mode (see main controllers operating
+manual)
+3) Quickly, triple click the B-button, located on Fibaro Smoke Sensors enclosure.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1273/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Fibaro Smoke Sensor sensitivity" max="3" min="1" size="1" type="list" value="2">
+      <Help>There are 3 levels of sensitivity to smoke presence. Level 1 means the highest sensitivity. Rising the parameter value lowers the sensitivity to smoke presence.</Help>
+      <Item label="HIGH Sensitivity" value="1"/>
+      <Item label="MEDIUM Sensitivity" value="2"/>
+      <Item label="LOW Sensitivity" value="3"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Z-Wave notifications status" max="3" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to activate excess temperature and/or enclosure opening notifications sent to the main controller.</Help>
+      <Item label="all notifications disabled" value="0"/>
+      <Item label="enclosure opening notification enabled" value="1"/>
+      <Item label="exceeding temperature threshold notification enabled" value="2"/>
+      <Item label="all notifications enabled" value="3"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Visual indicator notifications status" max="7" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to activate visual indications but does not apply to major alarms, such as FIRE, TROUBLE and LOW BATTERY ALARM.</Help>
+      <Item label="all notifications disabled" value="0"/>
+      <Item label="enclosure opening notification enabled" value="1"/>
+      <Item label="exceeding temperature threshold notification enabled" value="2"/>
+      <Item label="enclosure opening and exceeding temperature threshold notifications enabled" value="3"/>
+      <Item label="lack of Z-Wave range notification" value="4"/>
+      <Item label="enclosure opening and lack of Z-Wave range notifications enabled" value="5"/>
+      <Item label="exceeding temperature threshold and lack of Z-Wave range notifications enabled" value="6"/>
+      <Item label="all notifications enabled" value="7"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Sound notifications status" max="7" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to activate sound signals but does not apply to major alarms, such as FIRE, TROUBLE and LOW BATTERY ALARM.</Help>
+      <Item label="all notifications disabled" value="0"/>
+      <Item label="enclosure opening notification enabled" value="1"/>
+      <Item label="exceeding temperature threshold notification enabled" value="2"/>
+      <Item label="enclosure opening and exceeding temperature threshold notifications enabled" value="3"/>
+      <Item label="lack of Z-Wave range notification" value="4"/>
+      <Item label="enclosure opening and lack of Z-Wave range notifications enabled" value="5"/>
+      <Item label="exceeding temperature threshold and lack of Z-Wave range notifications enabled" value="6"/>
+      <Item label="all notifications enabled" value="7"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Configuration of control frames in BASIC command class" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter defines which frames will be sent in the 2-nd Association Group (FIRE ALARM).</Help>
+      <Item label="BASIC ON - BASIC OFF enabled" value="0"/>
+      <Item label="BASIC ON enabled" value="1"/>
+      <Item label="BASIC OFF enabled" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="BASIC ON frame value" max="255" min="0" type="byte" value="255">
+      <Help>BASIC ON frame is sent in case of smoke presence detection and FIRE ALARM triggering. Available settings: (1 - 99) or 255. Default setting: 255</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="BASIC OFF frame value" max="255" min="0" type="byte" value="0">
+      <Help>BASIC OFF frame is sent in case of FIRE ALARM cancellation. Available settings: (1 - 99) or 255. Default setting: 255</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Alarm broadcast" max="4" min="0" size="1" type="list" value="0">
+      <Help>A value other than 0 means that alarms are being sent in broadcast mode, i.e. to all devices within a Fibaro Smoke Sensor's range.</Help>
+      <Item label="Broadcasts INACTIVE" value="0"/>
+      <Item label="Smoke ACTIVE, tamper INACTIVE" value="1"/>
+      <Item label="Smoke INACTIVE, tamper ACTIVE" value="2"/>
+      <Item label="Smoke ACTIVE, tamper ACTIVE" value="3"/>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Associations in Z-Wave network security mode" max="15" min="0" size="1" type="byte" value="0">
+      <Help>This parameter defines how commands are sent in specified association groups: as secure or non-secure. Parameter is active only in Z-Wave network security mode. It doesn't apply to 1st Lifeline group.
 				Available settings: 0 - 15
 				0 - all groups sent as non-secure
 				1 - 2nd group sent as secure
@@ -77,41 +107,37 @@
 				8 - 5th group sent as secure
 				Parameter values may be combined, e.g. 1+2=3 means that 2nd and 3rd group are sent as secure.
 				Default setting: 15 (all groups sent as secure)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="20" label="Temperature report interval"  value="1" min="0" max="8640" >
-			<Help>Time interval between consecutive temperature reports. Report is sent when new temperature value is different from the one previously reported - according to the set hysteresis (parameter 21). Available settings: 0,1-8640 (multiply by 10 seconds) [10s-24h]. Default setting: 1 (10s)</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="21" label="Temperature report hysteresis"  value="10" min="1" max="100" size="1">
-			<Help>The temperature report will only be sent if there is a difference in temperature value from the previous value reported, defined in this parameter (hysteresis). Available settings: 1 to 100 (in 0,1C steps). Default setting: 10 (1C)</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="30" label="Temperature threshold"  value="55" min="1" max="100" size="1">
-			<Help>Temperature value measured by the built-in temperature sensor above which the excess temperature notification is sent. Available settings: 1 to 100. Default setting: 55 (55C)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="31" label="Excess temperature signaling interval"  value="1" min="1" max="8640" size="2">
-			<Help>Time interval of signaling (visual indication/sound) excess temperature level. Available settings: 1 to 8640 (multiply by 10 seconds) [10s-24h]. Default setting: 1 (10s)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="32" label="Lack of Z-Wave range indication interval"  value="180" min="1" max="8640" size="2">
-			<Help>Time interval of signaling (visual indication/sound) lack of Z-Wave range. Available settings: 1 to 8640 (multiply by 10 seconds) [10s-24h]. Default setting: 180 (30min)</Help>
-		</Value>
-	</CommandClass>
-
-	 <!-- Basic set as report -->
-	 <CommandClass id="32" setasreport="true"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="5">
-			<Group index="1" max_associations="1" label="Lifeline" />
-			<Group index="2" max_associations="5" label="Fire Alarm" />
-			<Group index="3" max_associations="5" label="Tamper" />
-			<Group index="4" max_associations="5" label="Fire Alarm Report" auto="true"/>
-			<Group index="5" max_associations="5" label="Tamper Report" auto="true"/>
-		</Associations>
-	</CommandClass>
-
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Temperature report interval" max="8640" min="0" type="short" value="1">
+      <Help>Time interval between consecutive temperature reports. Report is sent when new temperature value is different from the one previously reported - according to the set hysteresis (parameter 21). Available settings: 0,1-8640 (multiply by 10 seconds) [10s-24h]. Default setting: 1 (10s)</Help>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Temperature report hysteresis" max="100" min="1" size="1" type="byte" value="10">
+      <Help>The temperature report will only be sent if there is a difference in temperature value from the previous value reported, defined in this parameter (hysteresis). Available settings: 1 to 100 (in 0,1C steps). Default setting: 10 (1C)</Help>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Temperature threshold" max="100" min="1" size="1" type="byte" value="55">
+      <Help>Temperature value measured by the built-in temperature sensor above which the excess temperature notification is sent. Available settings: 1 to 100. Default setting: 55 (55C)</Help>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="Excess temperature signaling interval" max="8640" min="1" size="2" type="short" value="1">
+      <Help>Time interval of signaling (visual indication/sound) excess temperature level. Available settings: 1 to 8640 (multiply by 10 seconds) [10s-24h]. Default setting: 1 (10s)</Help>
+    </Value>
+    <Value genre="config" index="32" instance="1" label="Lack of Z-Wave range indication interval" max="8640" min="1" size="2" type="short" value="180">
+      <Help>Time interval of signaling (visual indication/sound) lack of Z-Wave range. Available settings: 1 to 8640 (multiply by 10 seconds) [10s-24h]. Default setting: 180 (30min)</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Fire Alarm" max_associations="5"/>
+      <Group index="3" label="Tamper" max_associations="5"/>
+      <Group auto="true" index="4" label="Fire Alarm Report" max_associations="5"/>
+      <Group auto="true" index="5" label="Tamper Report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgss101.xml b/Config/fibaro/fgss101.xml
index 8e3480ed71..e875eed660 100644
--- a/Config/fibaro/fgss101.xml
+++ b/Config/fibaro/fgss101.xml
@@ -1,125 +1,113 @@
-<?xml version="1.0" encoding="utf-8"?>
-
 <!-- Fibaro: FGSS101 Smoke Sensor -->
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
-	<CommandClass id="113" getsupported="false" />
-
-	<!-- COMMAND_CLASS_SENSOR_ALARM SensorAlarmCmd_SupportedGet not supported -->
-	<CommandClass id="156" getsupported="false" />
-
-	<!-- COMMAND_CLASS_TIME_PARAMETERS TimeParametersCmd_Get not supported -->
-	<CommandClass id="139" getsupported="false" />
-
-	<!-- Configuration -->
-	<CommandClass id="112">
-	
-		<Value type="short" genre="config" instance="1" index="1" label="Smoke alarm cancellation delay" min="0" max="65535" value="0">
-			<Help>The time between when the smoke disappears and the Fibaro Smoke Sensor stops sending the alarm signal. Available settings: 0 to 17280, 65535 (5s multiplier) [5s-24h]. 0: no delay, immediate cancellation, 65535: alarm cancellation inactive - Smoke Sensor will keep indicating smoke alarm after the smoke will have disappeared. The smoke alarm can be only ceased manually, by entering 2nd menu level (see section XIII). Default setting: 0</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="LED indicator and acoustic alarm turned ON / OFF at any alarm type" min="0" max="3" value="3" size="1">
-			<Help>Allows for deactivating the LED indicator and the acoustic alarm, in case of detecting an alarm of any type. This doesn't affect the communication with the Z-Wave network controller, i.e. the sensor will keep sending alarms, reports and all information to the associated devices. Modifying this parameter settings helps extending the battery life.</Help>
-			<Item label="Acoustic and visual alarms inactive" value="0" />
-			<Item label="Acoustic alarm inactive, visual alarm active" value="1" />
-			<Item label="Acoustic alarm active, visual alarm inactive" value="2" />
-			<Item label="Acoustic and visual alarms active" value="3" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="5" label="Type of alarm frame for association group 1" value="255" size="1">
-			<Help>Type of alarm frame for association group 1, activated by smoke sensor. The parameter allows to specify the type of alarm frame or to force transmission of control commands (BASIC_SET)</Help>
-			<Item label="ALARM SMOKE" value="0" />
-			<Item label="BASIC_SET" value="255" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="7" label="Forced Level of Dimming group 1" min="1" max="255" value="255">
-			<Help>The value of 255 allows for turning on a device. In case of Dimmer, the value of 255 means turning on the device with the last memorized state. E.g. Dimmer set to 30% and then turned off, and next turned on using the 255 command, will turn on with the last remembered status, i.e. 30%. In case of alarm frames, alarm priority is defined. Available settings: (1 - 99) or 255. Default setting: 255</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="10" label="Temperature report interval" min="0" max="17280" value="0">
-			<Help>Time interval between consecutive temperature reports. The parameter is relevant for the battery powering mode only. Longer time interval means less frequent communication and thus a longer battery life. Report is sent when new temperatue value is different from the one previously reported. Temperature reports can be also sent as a result of polling. Available settings: 1 to 17280, 0 (multiply by 5 seconds) [5s-24h]. 0 reports inactive. Default setting: 0 (Reports inactive)</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="12" label="Temperature report hysteresis" min="0" max="100" value="20">
-			<Help>The temperature report will only be sent if there is a difference in temperature value from the previous value reported, defined in this parameter (hysteresis). Temparature reports can be also sent as a result of polling. Available settings: 0 to 100 (in 0,1C steps). 0 temperature change reporting inactive. Default setting: 20 (2C)</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="13" label="Alarm broadcast" value="0" size="1">
-			<Help>Transmitting the alarm or control frame in "broadcast" mode (i.e. to all devices within range), information sent in this mode is not repeated by the mesh network. NOTE: If the broadcast mode of information transmission is activated for a given channel, then transmission of information in singlecast mode to devices assigned to the association group of this channel is deactivated. </Help>
-			<Item label="Broadcasts INACTIVE" value="0" />
-			<Item label="Smoke ACTIVE, tamper INACTIVE" value="1" />
-			<Item label="Smoke INACTIVE, tamper ACTIVE" value="2" />
-			<Item label="Smoke ACTIVE, tamper ACTIVE" value="3" />
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="73" label="Temperature measurement compensation" min="-1000" max="1000" value="0" size="2">
-			<Help>Parameter stores a temperature value to be added to or deducted from the current temperature measured by internal temperature sensor in order to compensate the difference between air temperature and temperature measured at the ceiling level. Available settings: -1000 -/+ 1000 (in 0,1C steps). Default setting: 0 (0C)</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="80" label="Z-Wave range test interval" value="1" min="0" max="144" size="1">
-			<Help>Time period between the consecutive Z-Wave network range tests. In battery powering mode, Z-Wave network range test is carried out at the wake up interval. The value of 0 turns off the Z-Wave range test, regardless of the powering mode chosen. Available settings: 0 to 144 (10min multiplier) [10min-24h]. 0 Z-Wave network range test inactive. Default setting: 1 (10min)</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="81" label="Temperature alarm threshold" value="54" min="0" max="100" size="1">
-			<Help>Temperature value, measured by the built-in temperature sensor, above which the temperature alarm is sent. Available settings: 0,2 - 100. 0 temperature alarm inactive. 2 - 100 (2 - 100C). Default setting: 54 (54C)</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="82" label="Smoke Sensor sensitivity" value="2"  min="1" max="3" size="1">
-			<Help>There are 3 levels of sensitivity to smoke presence. Level 1 means the highest sensitivity.</Help>
-			<Item label="High" value="1" />
-			<Item label="Medium" value="2" />
-			<Item label="Low" value="3" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="83" label="Black Box sensitivity level" value="2"  min="1" max="3" size="1">
-			<Help>This parameter allows for specifying the moment in which the Black Box starts recording data. After the specified smoke and temperature values will be exceeded, the Fibaro Smoke Sensor Black Box will record them.</Help>
-			<Item label="High" value="1" />
-			<Item label="Medium" value="2" />
-			<Item label="Low" value="3" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="84" label="Malfunction alarm" value="10" min="1" max="255" size="1">
-			<Help>Time interval in which malfunction alarm, if detected, is repeated using visual and acoustic alarms. Available settings: 1 - 255 (100 ms multiplier) [100ms-25,5s]. Default setting: 10 (1s)</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="85" label="Temperature alarm"  value="5" min="1" max="255" size="1">
-			<Help>Time interval in which temperature alarm, if detected, is repeated using visual and acoustic alarms. Available settings: 1 - 255 (100 ms multiplier) [100ms-25,5s]. Default setting: 5 (500ms)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="86" label="Lack of the Z-Wave range alarm" value="360" min="1" max="17280" size="2">
-			<Help>Time interval in which lack of the Z-Wave network alarm, if detected, is repeated using visual and acoustic alarms. Available settings: 1 - 17280 (5s multiplier) [5s-24h]. Default setting: 360 (30min)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="87" label="Low battery alarm" value="360" min="1" max="17280" size="2">
-			<Help>Time interval in which low battery alarm, if detected, is repeated using visual and acoustic alarms. Available settings: 1 - 17280 (5s multiplier) [5s-24h]. Default setting: 360 (30min)</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="88" label="Consider temperature measurement compensation" value="0" size="1">
-			<Help>This parameter allows for specifying the moment in which the Black Box starts recording data. After the specified smoke and temperature values will be exceeded, the Fibaro Smoke Sensor Black Box will record them.</Help>
-			<Item label="Ignore temperature compensation" value="0" />
-			<Item label="Include temperature compensation" value="1" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="89" label="Tamper alarm" value="1" min="0" max="2" size="1">
-			<Help>default setting: tamper alarm active, with cancellation option available</Help>
-			<Item label="tamper alarm inactive" value="0" />
-			<Item label="tamper alarm active, with cancellation option available" value="1" />
-			<Item label="tamper alarm active, without cancellation option" value="2" />
-		</Value>
-	</CommandClass>
-
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="5" label="Smoke Alarm" auto="false"/>
-			<Group index="2" max_associations="5" label="Tamper Alarm" />
-			<Group index="3" max_associations="1" label="Lifeline" auto="true"/>
-		</Associations>
-	</CommandClass>
-
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SENSOR_ALARM SensorAlarmCmd_SupportedGet not supported -->
+  <CommandClass id="156">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_TIME_PARAMETERS TimeParametersCmd_Get not supported -->
+  <CommandClass id="139">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Smoke alarm cancellation delay" max="65535" min="0" type="short" value="0">
+      <Help>The time between when the smoke disappears and the Fibaro Smoke Sensor stops sending the alarm signal. Available settings: 0 to 17280, 65535 (5s multiplier) [5s-24h]. 0: no delay, immediate cancellation, 65535: alarm cancellation inactive - Smoke Sensor will keep indicating smoke alarm after the smoke will have disappeared. The smoke alarm can be only ceased manually, by entering 2nd menu level (see section XIII). Default setting: 0</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="LED indicator and acoustic alarm turned ON / OFF at any alarm type" max="3" min="0" size="1" type="list" value="3">
+      <Help>Allows for deactivating the LED indicator and the acoustic alarm, in case of detecting an alarm of any type. This doesn't affect the communication with the Z-Wave network controller, i.e. the sensor will keep sending alarms, reports and all information to the associated devices. Modifying this parameter settings helps extending the battery life.</Help>
+      <Item label="Acoustic and visual alarms inactive" value="0"/>
+      <Item label="Acoustic alarm inactive, visual alarm active" value="1"/>
+      <Item label="Acoustic alarm active, visual alarm inactive" value="2"/>
+      <Item label="Acoustic and visual alarms active" value="3"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Type of alarm frame for association group 1" size="1" type="list" value="255">
+      <Help>Type of alarm frame for association group 1, activated by smoke sensor. The parameter allows to specify the type of alarm frame or to force transmission of control commands (BASIC_SET)</Help>
+      <Item label="ALARM SMOKE" value="0"/>
+      <Item label="BASIC_SET" value="255"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Forced Level of Dimming group 1" max="255" min="1" type="byte" value="255">
+      <Help>The value of 255 allows for turning on a device. In case of Dimmer, the value of 255 means turning on the device with the last memorized state. E.g. Dimmer set to 30% and then turned off, and next turned on using the 255 command, will turn on with the last remembered status, i.e. 30%. In case of alarm frames, alarm priority is defined. Available settings: (1 - 99) or 255. Default setting: 255</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Temperature report interval" max="17280" min="0" type="short" value="0">
+      <Help>Time interval between consecutive temperature reports. The parameter is relevant for the battery powering mode only. Longer time interval means less frequent communication and thus a longer battery life. Report is sent when new temperatue value is different from the one previously reported. Temperature reports can be also sent as a result of polling. Available settings: 1 to 17280, 0 (multiply by 5 seconds) [5s-24h]. 0 reports inactive. Default setting: 0 (Reports inactive)</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Temperature report hysteresis" max="100" min="0" type="byte" value="20">
+      <Help>The temperature report will only be sent if there is a difference in temperature value from the previous value reported, defined in this parameter (hysteresis). Temparature reports can be also sent as a result of polling. Available settings: 0 to 100 (in 0,1C steps). 0 temperature change reporting inactive. Default setting: 20 (2C)</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Alarm broadcast" size="1" type="list" value="0">
+      <Help>Transmitting the alarm or control frame in "broadcast" mode (i.e. to all devices within range), information sent in this mode is not repeated by the mesh network. NOTE: If the broadcast mode of information transmission is activated for a given channel, then transmission of information in singlecast mode to devices assigned to the association group of this channel is deactivated. </Help>
+      <Item label="Broadcasts INACTIVE" value="0"/>
+      <Item label="Smoke ACTIVE, tamper INACTIVE" value="1"/>
+      <Item label="Smoke INACTIVE, tamper ACTIVE" value="2"/>
+      <Item label="Smoke ACTIVE, tamper ACTIVE" value="3"/>
+    </Value>
+    <Value genre="config" index="73" instance="1" label="Temperature measurement compensation" max="1000" min="-1000" size="2" type="short" value="0">
+      <Help>Parameter stores a temperature value to be added to or deducted from the current temperature measured by internal temperature sensor in order to compensate the difference between air temperature and temperature measured at the ceiling level. Available settings: -1000 -/+ 1000 (in 0,1C steps). Default setting: 0 (0C)</Help>
+    </Value>
+    <Value genre="config" index="80" instance="1" label="Z-Wave range test interval" max="144" min="0" size="1" type="byte" value="1">
+      <Help>Time period between the consecutive Z-Wave network range tests. In battery powering mode, Z-Wave network range test is carried out at the wake up interval. The value of 0 turns off the Z-Wave range test, regardless of the powering mode chosen. Available settings: 0 to 144 (10min multiplier) [10min-24h]. 0 Z-Wave network range test inactive. Default setting: 1 (10min)</Help>
+    </Value>
+    <Value genre="config" index="81" instance="1" label="Temperature alarm threshold" max="100" min="0" size="1" type="byte" value="54">
+      <Help>Temperature value, measured by the built-in temperature sensor, above which the temperature alarm is sent. Available settings: 0,2 - 100. 0 temperature alarm inactive. 2 - 100 (2 - 100C). Default setting: 54 (54C)</Help>
+    </Value>
+    <Value genre="config" index="82" instance="1" label="Smoke Sensor sensitivity" max="3" min="1" size="1" type="list" value="2">
+      <Help>There are 3 levels of sensitivity to smoke presence. Level 1 means the highest sensitivity.</Help>
+      <Item label="High" value="1"/>
+      <Item label="Medium" value="2"/>
+      <Item label="Low" value="3"/>
+    </Value>
+    <Value genre="config" index="83" instance="1" label="Black Box sensitivity level" max="3" min="1" size="1" type="list" value="2">
+      <Help>This parameter allows for specifying the moment in which the Black Box starts recording data. After the specified smoke and temperature values will be exceeded, the Fibaro Smoke Sensor Black Box will record them.</Help>
+      <Item label="High" value="1"/>
+      <Item label="Medium" value="2"/>
+      <Item label="Low" value="3"/>
+    </Value>
+    <Value genre="config" index="84" instance="1" label="Malfunction alarm" max="255" min="1" size="1" type="byte" value="10">
+      <Help>Time interval in which malfunction alarm, if detected, is repeated using visual and acoustic alarms. Available settings: 1 - 255 (100 ms multiplier) [100ms-25,5s]. Default setting: 10 (1s)</Help>
+    </Value>
+    <Value genre="config" index="85" instance="1" label="Temperature alarm" max="255" min="1" size="1" type="byte" value="5">
+      <Help>Time interval in which temperature alarm, if detected, is repeated using visual and acoustic alarms. Available settings: 1 - 255 (100 ms multiplier) [100ms-25,5s]. Default setting: 5 (500ms)</Help>
+    </Value>
+    <Value genre="config" index="86" instance="1" label="Lack of the Z-Wave range alarm" max="17280" min="1" size="2" type="short" value="360">
+      <Help>Time interval in which lack of the Z-Wave network alarm, if detected, is repeated using visual and acoustic alarms. Available settings: 1 - 17280 (5s multiplier) [5s-24h]. Default setting: 360 (30min)</Help>
+    </Value>
+    <Value genre="config" index="87" instance="1" label="Low battery alarm" max="17280" min="1" size="2" type="short" value="360">
+      <Help>Time interval in which low battery alarm, if detected, is repeated using visual and acoustic alarms. Available settings: 1 - 17280 (5s multiplier) [5s-24h]. Default setting: 360 (30min)</Help>
+    </Value>
+    <Value genre="config" index="88" instance="1" label="Consider temperature measurement compensation" size="1" type="list" value="0">
+      <Help>This parameter allows for specifying the moment in which the Black Box starts recording data. After the specified smoke and temperature values will be exceeded, the Fibaro Smoke Sensor Black Box will record them.</Help>
+      <Item label="Ignore temperature compensation" value="0"/>
+      <Item label="Include temperature compensation" value="1"/>
+    </Value>
+    <Value genre="config" index="89" instance="1" label="Tamper alarm" max="2" min="0" size="1" type="list" value="1">
+      <Help>default setting: tamper alarm active, with cancellation option available</Help>
+      <Item label="tamper alarm inactive" value="0"/>
+      <Item label="tamper alarm active, with cancellation option available" value="1"/>
+      <Item label="tamper alarm active, without cancellation option" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group auto="false" index="1" label="Smoke Alarm" max_associations="5"/>
+      <Group index="2" label="Tamper Alarm" max_associations="5"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgt001.xml b/Config/fibaro/fgt001.xml
index dbcd9fa83a..a906368d30 100644
--- a/Config/fibaro/fgt001.xml
+++ b/Config/fibaro/fgt001.xml
@@ -1,37 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     Fibaro FGT-001
     https://products.z-wavealliance.org/products/2586
     config based on https://manuals.fibaro.com/content/manuals/en/FGT-001/FGT-001-EN-T-v1.0.pdf
     -->
     <!-- Thermostat -->
-    <CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE">
-        <Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="255" value="0">
-            <Item label="Off" value="0"/>
-            <Item label="Heat" value="1"/>
-            <Item label="Manual Valve Control" value="31"/>
-        </Value>
-        <SupportedModes>
-            <Mode index="0" label="Off"/>
-            <Mode index="1" label="Heat"/>
-            <Mode index="31" label="Manual Valve Control"/>
-        </SupportedModes>
-    </CommandClass>
-
-    <CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
-        <Instance index="1"/>
-        <Value type="decimal" genre="user" instance="1" index="1" label="Heating" units="C" read_only="false" write_only="false" min="16" max="24" value="20"/>
-    </CommandClass>
-
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="int" genre="config" instance="1" index="1" label="Override Schedule duration" min="10" max="10000" value="240">
-            <Help>This parameter determines duration of Override Schedule after turning the knob while normal schedule is active (set by Schedule CC).</Help>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="2" label="Additional functions" value="1" size="4">
-            <Help>This parameter allows to enable different additional functions of the device.
+  <CommandClass id="64">
+    <Value genre="user" index="0" instance="1" label="Mode" max="255" min="0" read_only="false" type="list" units="" value="0" write_only="false">
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+      <Item label="Manual Valve Control" value="31"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+      <Mode index="31" label="Manual Valve Control"/>
+    </SupportedModes>
+    <Compatibility/>
+  </CommandClass>
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heating" max="24" min="16" read_only="false" type="decimal" units="C" value="20" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Override Schedule duration" max="10000" min="10" type="int" value="240">
+      <Help>This parameter determines duration of Override Schedule after turning the knob while normal schedule is active (set by Schedule CC).</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Additional functions" size="4" type="int" value="1">
+      <Help>This parameter allows to enable different additional functions of the device.
                 1) Enable open window detector
                 2) Enable fast open window detector
                 4) Increase receiver sensitivity (shortens battery life)
@@ -39,27 +40,29 @@
                 16) Protect from setting Full ON and Full OFF mode by turning the knob manually
                 NOTE: Parameter values may be combined, e.g. 1+8=9 means than open window detector and LED indications when controlling remotely are enabled.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="3" label="Additional functions status" value="0" size="4" read_only="true">
-            <Help>This parameter allows to check status of different additional functions.
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Additional functions status" read_only="true" size="4" type="list" value="0">
+      <Help>This parameter allows to check status of different additional functions.
                 1) Optional temperature sensor connected and operational
                 2) Open window detected
                 NOTE: Parameter values may be combined, e.g. 1+2=3 means than optional sensor works properly and open window detection was triggered.
             </Help>
-            <Item label="None" value="0"/>
-            <Item label="Optional temperature sensor connected and operational" value="1"/>
-            <Item label="Open window detected" value="2"/>
-            <Item label="Optional temperature sensor and Open window detected" value="3"/>
-        </Value>
-    </CommandClass>
-
-    <!-- Map endpoints to instances -->
-    <CommandClass id="96" mapping="endpoints"/>
-
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+      <Item label="None" value="0"/>
+      <Item label="Optional temperature sensor connected and operational" value="1"/>
+      <Item label="Open window detected" value="2"/>
+      <Item label="Optional temperature sensor and Open window detected" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgwpe.xml b/Config/fibaro/fgwpe.xml
index 47c6ff80ee..9ccf6af355 100644
--- a/Config/fibaro/fgwpe.xml
+++ b/Config/fibaro/fgwpe.xml
@@ -1,156 +1,149 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0600</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgwpe.png</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0600">https://products.z-wavealliance.org/products/993/</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Wall Plug</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0600">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.fibaro.com/manuals/en/FGWPE_F-101-Wall-Plug/FGWPE_F-101-Wall-Plug-en-2.1-2.3.pdf</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0600">FGWPE/F-101</MetaDataItem>
+    <MetaDataItem name="Description">Fibaro Wall Plug is a universal, Z-Wave compatible, relay switch in 
+the form of a socket adapter. The Plug may be used to operate any 
+device up to 2,500W power output. The Plug features power 
+consumption measuring and uses a crystal LED ring to visualize the 
+current load by color changing illumination.
+Fibaro Wall Plug may be operated using the service button located 
+on its casing, or via any Z-Wave compatible controller.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/993/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
-  <CommandClass id="113" action="remove" />
-
+  <CommandClass action="remove" id="113"/>
   <!-- COMMAND_CLASS_SENSOR_ALARM not supported -->
-  <CommandClass id="156" action="remove" />
-
+  <CommandClass action="remove" id="156"/>
   <!-- COMMAND_CLASS_SWITCH_ALL not supported -->
-  <CommandClass id="39" action="remove" />
-
+  <CommandClass action="remove" id="39"/>
   <!-- Configuration -->
   <CommandClass id="112">
-
-    <Value type="list" genre="config" instance="1" index="1" label="Always on function" value="1" size="1">
+    <Value genre="config" index="1" instance="1" label="Always on function" size="1" type="list" value="1">
       <Help>Once activated, Wall Plug will keep a connected device constantly ON, will stop reacting to alarm frames and B-button push. "Always on" function turns the Plug into a power and energy meter. Also, connected device will not be turned off upon receiving an alarm frame from another Z-Wave device (parameter 35 will be ignored). In "Always on" mode, connected device may be turned off only after user defined power has been exceeded (parameter 70). In such a case, connected device can be turned on again by pushing the B-button or sending a control frame. By default, overload protection is inactive. Default setting: 1</Help>
-      <Item label="function activated" value="0" />
-      <Item label="function inactive" value="1" />
+      <Item label="function activated" value="0"/>
+      <Item label="function inactive" value="1"/>
     </Value>
-
-     <Value type="list" genre="config" instance="1" index="16" label="Remember device status after power failure" value="1" size="1">
+    <Value genre="config" index="16" instance="1" label="Remember device status after power failure" size="1" type="list" value="1">
       <Help>Define how will the Plug react after the power supply is back on. Default setting: 1</Help>
-      <Item label="Wall Plug does not memorize its state after a power failure" value="0" />
-      <Item label="Wall Plug memorizes its state after a power failure" value="1" />
+      <Item label="Wall Plug does not memorize its state after a power failure" value="0"/>
+      <Item label="Wall Plug memorizes its state after a power failure" value="1"/>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="34" label="Reaction to alarms" value="63" min="1" max="63" size="1">
+    <Value genre="config" index="34" instance="1" label="Reaction to alarms" max="63" min="1" size="1" type="list" value="63">
       <Help>Type of transmitted control frame for association group 1, activated via input IN1. The parameter allows to specify the type of alarm frame or to force transmission of control commands (BASIC_SET)</Help>
-      <Item label="ALARM GENERIC" value="1" />
-      <Item label="ALARM SMOKE" value="2" />
-      <Item label="ALARM CO" value="4" />
-      <Item label="ALARM CO2" value="8" />
-      <Item label="ALARM HEAT" value="16" />
-      <Item label="ALARM WATER" value="32" />
-      <Item label="ALARM ALL" value="63" />
-    </Value>
-
-    <Value type="list" genre="config" instance="1" index="35" label="Wall Plug's response to alarm frames" value="0" size="1">
+      <Item label="ALARM GENERIC" value="1"/>
+      <Item label="ALARM SMOKE" value="2"/>
+      <Item label="ALARM CO" value="4"/>
+      <Item label="ALARM CO2" value="8"/>
+      <Item label="ALARM HEAT" value="16"/>
+      <Item label="ALARM WATER" value="32"/>
+      <Item label="ALARM ALL" value="63"/>
+    </Value>
+    <Value genre="config" index="35" instance="1" label="Wall Plug's response to alarm frames" size="1" type="list" value="0">
       <Help>Parameter defines how the Wall Plug will respond to alarms (device's status change) Default setting: 0. 0 - no reaction, 1 - turn on connected device. LED ring signals an alarm through defined time period (parameter 39) or until the alarm is cancelled. 2 - turn off connected device. LED ring signals an alarm through defined time period (parameter 39) or until the alarm is cancelled. 3 - cyclically change device state, each 1second. In alarm mode Wall Plug does not report status change, power changes, ignores alarm frames. After the defined time period has passed (parameter 39) or after the alarm cancellation, connected device is set to the previous state. NOTE: If "always on" function is active (parameter 1), this parameter's settings are ignored.</Help>
-      <Item label="No reaction" value="0" />
-      <Item label="Turn on connected device" value="1" />
-      <Item label="Turn off connected device" value="2" />
-      <Item label="Cyclically change device state, each 1second" value="3" />
+      <Item label="No reaction" value="0"/>
+      <Item label="Turn on connected device" value="1"/>
+      <Item label="Turn off connected device" value="2"/>
+      <Item label="Cyclically change device state, each 1second" value="3"/>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="39" label="Alarm duration" value="600" min="1" max="65536" size="2">
+    <Value genre="config" index="39" instance="1" label="Alarm duration" max="65536" min="1" size="2" type="short" value="600">
       <Help>Wall Plug's alarm mode duration. If a device sending an alarm frame through the Z-Wave network sets alarm duration as well, this parameter's settings are ignored. Default setting: 600</Help>
     </Value>
-
-     <Value type="byte" genre="config" instance="1" index="40" label="Immediate power report" value="80" min="0" max="100" size="1">
-       <Help>Parameter defines by how much power load must change, in percents, to be reported to the main controller, with the highest priority in the Z-Wave network. By default, Fibaro Wall Plug immediately sends power report if the power load changes by 80%. Default setting: 80 (%)</Help>
+    <Value genre="config" index="40" instance="1" label="Immediate power report" max="100" min="0" size="1" type="byte" value="80">
+      <Help>Parameter defines by how much power load must change, in percents, to be reported to the main controller, with the highest priority in the Z-Wave network. By default, Fibaro Wall Plug immediately sends power report if the power load changes by 80%. Default setting: 80 (%)</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="42" label="Standard power load reporting" value="15" min="0" max="100" size="1">
+    <Value genre="config" index="42" instance="1" label="Standard power load reporting" max="100" min="0" size="1" type="byte" value="15">
       <Help>Parameter defines by how much power load must change, in percents, to be reported to the main controller. By default, Fibaro Wall Plug sends power report if the power load changes by 15%.  By default such changes in power load may be reported up to 5 times per 30 seconds. Wall Plug sends 5 reports during time period specified in paramater 43. Default setting: 15 (%)</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="43" label="Power reporting frequency" value="30" min="1" max="255" size="1">
+    <Value genre="config" index="43" instance="1" label="Power reporting frequency" max="255" min="1" size="1" type="byte" value="30">
       <Help>This parameter defines how frequently standard power reports (parameter 42) will be sent. By default Wall Plug sends up to 5 reports each 30 seconds, provided the power load changes by 15%.  Default setting: 30 (s)</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="45" label="Reporting changes in energy consumed by controlled devices" value="10" min="1" max="255" size="1">
+    <Value genre="config" index="45" instance="1" label="Reporting changes in energy consumed by controlled devices" max="255" min="1" size="1" type="byte" value="10">
       <Help>New, reported energy value is calculated based on last reported value. Default setting: 10 (0,1 kWh). Available settings: 1 - 254 (0,01kWh - 2,54kWh). Value of 255 - changes in consumed energy will not be reported. Reports will be sent only in case of polling. Default Setting: 10 (0,1 kWh)</Help>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="47" label="Time period between reports on power load and energy consumption." value="3600" size="2">
+    <Value genre="config" index="47" instance="1" label="Time period between reports on power load and energy consumption." size="2" type="short" value="3600">
       <Help>Parameter defines time period between reports sent when changes in power load have not been recorded. By default, if power load changes have not been recorded, reports are sent every hour.  Default setting: 3 600 (s), Available settings: 1 - 65534 (s). Value of 65535 - no periodic reports. Reports will be sent only in case of power load / energy consumption changes (parameters 40, 42, 43,45) or in case of polling. Default setting: 3600</Help>
     </Value>
-
-     <Value type="list" genre="config" instance="1" index="49" label="Metering energy consumed by the Wall Plug itself" value="0" size="1">
+    <Value genre="config" index="49" instance="1" label="Metering energy consumed by the Wall Plug itself" size="1" type="list" value="0">
       <Help>This parameter determines whether energy metering should include the amount of energy consumed by the Wall Plug itself. Results are being added to energy consumed by controlled device. Default setting: 0</Help>
-      <Item label="function inactive" value="0" />
-      <Item label="function activated" value="1" />
-     </Value>
-
-    <Value type="short" genre="config" instance="1" index="50" label="DOWN value" value="300" min="0" max="25000" size="2">
+      <Item label="function inactive" value="0"/>
+      <Item label="function activated" value="1"/>
+    </Value>
+    <Value genre="config" index="50" instance="1" label="DOWN value" max="25000" min="0" size="2" type="short" value="300">
       <Help>Lower power threshold, used in parameter 52. Default setting: 300 (30W) Available settings: 0 - 25000 (0,0W - 2500W) DOWN value cannot be higher than a value specified in parameter 51. Default setting: 300 (30W)</Help>
     </Value>
-
-    <Value type="short" genre="config" instance="1" index="51" label="UP value" value="500" min="1" max="25000" size="2">
+    <Value genre="config" index="51" instance="1" label="UP value" max="25000" min="1" size="2" type="short" value="500">
       <Help>Upper power threshold, used in parameter 52. Default setting: 500 (50W) Available settings: 1 - 25000 (0,1W - 2500W) UP value cannot be lower than a value specified in parameter 50. Default setting: 500 (50W)</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="52" label="Action in case of exceeding defined power values" value="6" size="1">
+    <Value genre="config" index="52" instance="1" label="Action in case of exceeding defined power values" size="1" type="list" value="6">
       <Help>Parameter deifines the way 2nd association group devices are controlled, depending on the current power load.  Default setting: 6. Available settings: 0 - function inactive, 1 - turn the associated devices on, once the power drops below DOWN value (parameter 50), 2 - turn the associated devices off, once the power drops below DOWN value (parameter 50), 3 - turn the associated devices on, once the power rises above UP value (parameter 51), 4 - turn the associated devices off, once the power rises above UP value (parameter 51), 5 - 1 and 4 combined. Turn the associated devices on, once the power drops below DOWN value (parameter 50). Turn the associated devices off, once the power rises above UP value (parameter 51).  6 - 2 and 3 combined. Turn the associated devices off, once the power drops below DOWN value (parameter 50). Turn the associated devices on, once the power rises above UP value (parameter 51). Default setting: 6</Help>
-      <Item label="Function inactive" value="0" />
-      <Item label="Turn the associated devices on,Power below DOWN" value="1" />
-      <Item label="Turn the associated devices off,Power below DOWN" value="2" />
-      <Item label="Turn the associated devices on,Power above UP" value="3" />
-      <Item label="Turn the associated devices off,Power above UP" value="4" />
-      <Item label="1 and 4 combine" value="5" />
-      <Item label="2 and 3 combined" value="6" />
-    </Value>
-
-    <Value type="short" genre="config" instance="1" index="60" label="Power load, which when exceeded, makes the LED ring flash violet." value="25000" min="1000" max="32000" size="2">
+      <Item label="Function inactive" value="0"/>
+      <Item label="Turn the associated devices on,Power below DOWN" value="1"/>
+      <Item label="Turn the associated devices off,Power below DOWN" value="2"/>
+      <Item label="Turn the associated devices on,Power above UP" value="3"/>
+      <Item label="Turn the associated devices off,Power above UP" value="4"/>
+      <Item label="1 and 4 combine" value="5"/>
+      <Item label="2 and 3 combined" value="6"/>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Power load, which when exceeded, makes the LED ring flash violet." max="32000" min="1000" size="2" type="short" value="25000">
       <Help>Function is active only when parameter 61 is set to 0 or 1. Default setting: 25000 (2500W) Available settings: 1000 - 32000 (100W - 3200W). Default setting: 25000 (2500W)</Help>
     </Value>
-
-     <Value type="list" genre="config" instance="1" index="61" label="LED ring illumination colour when controlled device is on" value="1" size="1">
-       <Help>0 - LED ring illumination colour changes in predefined steps, depending on power consumption changes, 1 - LED ring illumination colour changes continuously, using full spectrum of available colours, depending on power consumption changes. 2 - White illumination, 3 - Red illumination, 4 - Green illumination, 5 - Blue illumination, 6 - Yellow illumination, 7 - Cyan illumination, 8 - Magenta illumination, 9 - illumination turned off completely. Default setting: 1</Help>
-       <Item label="Depending on power consumption changes" value="0" />
-       <Item label="Using full spectrum of available colours" value="1" />
-       <Item label="White illumination" value="2" />
-       <Item label="Red illumination" value="3" />
-       <Item label="Green illumination" value="4" />
-       <Item label="Blue illumination" value="5" />
-       <Item label="Yellow illumination" value="6" />
-       <Item label="Cyan illumination" value="7" />
-       <Item label="Magenta illumination" value="8" />
-       <Item label="illumination turned off completely" value="9" />
-    </Value>
-
-    <Value type="list" genre="config" instance="1" index="62" label="LED ring illumination colour when controlled device is off" value="8" size="1">
-       <Help>0 - LED ring illumination colour takes on the color corresponding to the last measured power at the time when the device controlled was turn off, 1 - White illumination, 2 - Red illumination, 3 - Green illumination, 4 - Blue illumination, 5 - Yellow illumination, 6 - Cyan illumination, 7 - Magenta illumination, 8 - illumination turned off completely. Default setting: 8</Help>
-       <Item label="Depending on the last measured power" value="0" />
-       <Item label="White illumination" value="1" />
-       <Item label="Red illumination" value="2" />
-       <Item label="Green illumination" value="3" />
-       <Item label="Blue illumination" value="4" />
-       <Item label="Yellow illumination" value="5" />
-       <Item label="Cyan illumination" value="6" />
-       <Item label="Magenta illumination" value="7" />
-       <Item label="illumination turned off completely" value="8" />
-    </Value>
-
-    <Value type="list" genre="config" instance="1" index="63" label="LED ring illumination colour at the Z-Wave network alarm detection. " value="1" size="1">
+    <Value genre="config" index="61" instance="1" label="LED ring illumination colour when controlled device is on" size="1" type="list" value="1">
+      <Help>0 - LED ring illumination colour changes in predefined steps, depending on power consumption changes, 1 - LED ring illumination colour changes continuously, using full spectrum of available colours, depending on power consumption changes. 2 - White illumination, 3 - Red illumination, 4 - Green illumination, 5 - Blue illumination, 6 - Yellow illumination, 7 - Cyan illumination, 8 - Magenta illumination, 9 - illumination turned off completely. Default setting: 1</Help>
+      <Item label="Depending on power consumption changes" value="0"/>
+      <Item label="Using full spectrum of available colours" value="1"/>
+      <Item label="White illumination" value="2"/>
+      <Item label="Red illumination" value="3"/>
+      <Item label="Green illumination" value="4"/>
+      <Item label="Blue illumination" value="5"/>
+      <Item label="Yellow illumination" value="6"/>
+      <Item label="Cyan illumination" value="7"/>
+      <Item label="Magenta illumination" value="8"/>
+      <Item label="illumination turned off completely" value="9"/>
+    </Value>
+    <Value genre="config" index="62" instance="1" label="LED ring illumination colour when controlled device is off" size="1" type="list" value="8">
+      <Help>0 - LED ring illumination colour takes on the color corresponding to the last measured power at the time when the device controlled was turn off, 1 - White illumination, 2 - Red illumination, 3 - Green illumination, 4 - Blue illumination, 5 - Yellow illumination, 6 - Cyan illumination, 7 - Magenta illumination, 8 - illumination turned off completely. Default setting: 8</Help>
+      <Item label="Depending on the last measured power" value="0"/>
+      <Item label="White illumination" value="1"/>
+      <Item label="Red illumination" value="2"/>
+      <Item label="Green illumination" value="3"/>
+      <Item label="Blue illumination" value="4"/>
+      <Item label="Yellow illumination" value="5"/>
+      <Item label="Cyan illumination" value="6"/>
+      <Item label="Magenta illumination" value="7"/>
+      <Item label="illumination turned off completely" value="8"/>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="LED ring illumination colour at the Z-Wave network alarm detection. " size="1" type="list" value="1">
       <Help>0 - No change in colour. LED ring illumination colour determined by parameters 61 or 62 settings, 1 - LED ring flashes red / blue / white (default), 2 - White illumination, 3 - Red illumination, 4 - Green illumination, 5 - Blue illumination, 6 - Yellow illumination, 7 - Cyan illumination, 8 - Magenta illumination, 9 - illumination turned off completely. Default setting: 1</Help>
-      <Item label="No change in colour" value="0" />
-      <Item label="LED ring flashes red / blue / white" value="1" />
-      <Item label="White illumination" value="2" />
-      <Item label="Red illumination" value="3" />
-      <Item label="Green illumination" value="4" />
-      <Item label="Blue illumination" value="5" />
-      <Item label="Yellow illumination" value="6" />
-      <Item label="Cyan illumination" value="7" />
-      <Item label="Magenta illumination" value="8" />
-      <Item label="illumination turned off completely" value="9" />
-    </Value>
-
-    <Value type="short" genre="config" instance="1" index="70" label="Overload safety switch" value="65535" size="2">
+      <Item label="No change in colour" value="0"/>
+      <Item label="LED ring flashes red / blue / white" value="1"/>
+      <Item label="White illumination" value="2"/>
+      <Item label="Red illumination" value="3"/>
+      <Item label="Green illumination" value="4"/>
+      <Item label="Blue illumination" value="5"/>
+      <Item label="Yellow illumination" value="6"/>
+      <Item label="Cyan illumination" value="7"/>
+      <Item label="Magenta illumination" value="8"/>
+      <Item label="illumination turned off completely" value="9"/>
+    </Value>
+    <Value genre="config" index="70" instance="1" label="Overload safety switch" size="2" type="short" value="65535">
       <Help>This function allows for turning off the controlled device in case of exceeding the defined power. Controlled device will be turned off even if "always on" function is active (parameter 1). Controlled device can be turned back on via B-button or sending a control frame. By default this function is inactive.  Default setting: 65535 (6553,5W) Available settings: 10 - 65535 (1W - 6553,5W).  Value higher than 32000 (3200W) turns the overload safety switch off, i.e. this functionality is turned off by default. Default setting: 65535 (6553,5W)</Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
-      <Group index="1" max_associations="16" label="Retransmit Switch status" auto="false"/>
-      <Group index="2" max_associations="16" label="Exceeding power"  />
-      <Group index="3" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Retransmit Switch status" max_associations="16"/>
+      <Group index="2" label="Exceeding power" max_associations="16"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/fibaro/fgwpfzw5.xml b/Config/fibaro/fgwpfzw5.xml
index 4a8b22db42..bbf8acb7e5 100644
--- a/Config/fibaro/fgwpfzw5.xml
+++ b/Config/fibaro/fgwpfzw5.xml
@@ -1,8 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
 	<!-- CommandClass id="113" action="remove" /> -->
 
 	<!-- COMMAND_CLASS_SENSOR_ALARM not supported -->
@@ -12,164 +9,138 @@
 	<!-- CommandClass id="39" action="remove" /> -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-
-		<Value type="list" genre="config" instance="1" index="1" label="Always on function" value="0" size="1">
-			<Help>Once activated, Wall Plug will keep a connected device constantly ON, will stop reacting to alarm frames and B-button push. "Always on" function turns the Plug into a power and energy meter. Also, connected device will not be turned off upon receiving an alarm frame from another Z-Wave device (parameter 31 will be ignored). In "Always on" mode, connected device may be turned off only after user defined power has been exceeded (parameter 3). In such a case, connected device can be turned on again by pushing the B-button or sending a control frame. By default, overload protection is inactive. Default setting: 0</Help>
-			<Item label="Inactive" value="0" />
-			<Item label="Active" value="1" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="Remember device status after a power failure" value="1" size="1">
-			<Help>This parameter determines how the Wall Plug will react in the event of power supply failure (e.g. taking out from the electrical outlet). After the power supply is back on, the Wall Plug can be restored to previous state or remain switched off. This parameter is ignored in Always On mode - the device automatically turns ON after plugging it into the socket. Default setting: 1</Help>
-			<Item label="Wall Plug does not memorize its state after a power failure" value="0" />
-			<Item label="Wall Plug memorizes its state after a power failure" value="1" />
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="3" label="Overload safety switch" value="0" min="0" max="30000" size="2">
-			<Help>This function allows for turning off the controlled device in case of exceeding the defined power. Controlled device will be turned off even if "always on" function is active (parameter 1). Controlled device can be turned back on via B-button or sending a control frame. Available settings: 10 - 30000 (1,0W - 3000,0W step 0,1W). Default setting: 0 (function inactive)</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="10" label="High priority power report" value="80" min="1" max="100" size="1">
-			<Help>This parameter determines the minimum percentage change in active power that will result in sending power report to the main controller with the highest priority in the Z-Wave network. By default, the Wall Plug immediately sends the power report if the power load changes by 80%. Available settings: 1-99:power change in percent, 100:reports are disabled. Default setting: 80 (80%)</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="11" label="Standard power load reporting" value="15" min="1" max="100" size="1">
-			<Help>This parameter determines the minimum percentage change in active power that will result in sending power report to the main controller Compared to parameter 10, the maximum number of reports sent is reduced (parameter 12) to 5 in a specified time interval. In addition, the frames are not sent in EXPLORE mode, which prevents overloading the Z-Wave network. By default changes in power load may be reported up to 5 times per 30 seconds, when power load changes by 15%. Available settings: 1-99:power change in percent, 100:reports are disabled. Default setting: 15 (15%)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="12" label="Power reporting interval" value="30" min="5" max="600" size="2">
-			<Help>This parameter defines how frequently standard power reports (parameter 11) will be sent. By default Wall Plug sends up to 5 reports each 30 seconds, provided the power load changes by 15%.  Available setttings: 5-600 (in seconds). Default setting: 30 (s)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="13" label="Energy reporting threshold" value="10" min="0" max="500" size="2">
-			<Help>This parameter specifies the minimum change in energy consumption (in relation to the previously reported), that will result in sending a new report. Available settings: 1-500 (0,01kWh - 5kWh).   0 - energy reports inactive. Default Setting: 10 (0,1 kWh)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="14" label="Power and energy periodic reports" min="0" max="32400" value="3600" size="2">
-			<Help>This parameter defines time period between reports sent when changes in power load have not been recorded or if changes are insignificant (not exceeding values of parameters 20, 21 and 23). By default reports are sent every hour. Available settings: 5 - 32400 (s). 0 - periodic reports inactive. Reports will be sent only in case of power load / energy consumption changes (parameters 20,21,23) or in case of polling. Default setting: 3600</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="15" label="Measuring energy consumed by the Wall Plug itself" value="0" size="1">
-			<Help>This parameter determines whether energy metering should include the amount of energy consumed by the Wall Plug itself. Results are being added to energy consumed by controlled device. Default setting: 0</Help>
-			<Item label="Inactive" value="0" />
-			<Item label="Active" value="1" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="20" label="Control of On/Off (button) association group(2) devices" value="0" size="1">
-			<Help>Controlling devices with the B-Button. Control as the Wall Plug:  switching the Wall Plug on  switch the devices on (parameter 24) switching the Wall Plug off  switch the devices off (parameter 24)    This parameter is inactive in Always On mode (parameter 1). Default setting: 0</Help>
-			<Item label="Control as the wallplug" value="0" />
-			<Item label="Control opposite of wallplug" value="1" />
-		</Value>
-
-
-		<Value type="short" genre="config" instance="1" index="21" label="DOWN value- On/Off(power) association group(3)" value="300" min="0" max="24900" size="2">
-			<Help>Lower power threshold, used in parameter 23. Available settings: 0 - 24900 (0,0W - 2490,0W step 0,1W) DOWN value cannot be higher than a value specified in parameter 22. Default setting: 300 (30W)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="22" label="UP value- On/Off(power) association group(3)" value="500" min="100" max="25000" size="2">
-			<Help>Upper power threshold, used in parameter 23. Available settings: 100 - 25000 (10,0W - 2500,0W) UP value cannot be lower than a value specified in parameter 21. Default setting: 500 (50W)</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="23" label="The response after exceeding defined power values" value="6" size="1">
-			<Help>Parameter defines the way 3th association group devices are controlled, depending on the actual measured power(as parameter 21 and 22 settings). Available settings: 1 - turn the associated devices ON, once the power drops below DOWN value (parameter 21), 2 - turn the associated devices OFF, once the power drops below DOWN value (parameter 21),       3 - turn the associated devices ON, once the power rises above UP value (parameter 22), 4 - turn the associated devices OFF, once the power rises above UP value (parameter 22), 5 - combination of 1 and 4. Turn the associated devices ON, once the power drops below DOWN value (parameter 21). Turn the associated devices OFF, once the power rises above UP value (parameter 22).  6 - combination of 2 and 3. Turn the associated devices OFF, once the power drops below DOWN value (parameter 21). Turn the associated devices ON, once the power rises above UP value (parameter 22). Default setting: 6</Help>
-			<Item label="Turn the associated devices on,Power below DOWN" value="1" />
-			<Item label="Turn the associated devices off,Power below DOWN" value="2" />
-			<Item label="Turn the associated devices on,Power above UP" value="3" />
-			<Item label="Turn the associated devices off,Power above UP" value="4" />
-			<Item label="1 and 4 combine" value="5" />
-			<Item label="2 and 3 combined" value="6" />
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="24" label="Switch ON value - On/Off association groups" value="255" min="0" max="255" size="2">
-			<Help>The value of BASIC SET command frame sent to the devices associated in On/Off association groups (2, 3). On/Off (Button) association group - in accordance with parameter 20. On/Off (Power) association group - in accordance with parameter 23. Available settings: 0-99 and 255. Default setting: 255</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="30" label="Active Alarms" value="63" min="1" max="63" size="1">
-			<Help>Define Z-Wave network alarms to which the Wall Plug will respond.</Help>
-			<Item label="General alarm" value="1" />
-			<Item label="Smoke alarm" value="2" />
-			<Item label="CO alarm" value="4" />
-			<Item label="CO2 alarm" value="8" />
-			<Item label="High temperature alarm" value="16" />
-			<Item label="Flood alarm" value="32" />
-			<Item label="All alarms" value="63" />
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="31" label="Response to alarm frames" value="0" min="0" max="50" size="2">
-			<Help>This parameter defines how the Wall Plug will respond to alarms (device's status change). In case of values 1 or 2 the Wall Plug is operating normally and LED ring signals an alarm through time defined in parameter 32 or until the alarm is cancelled. In case of values 5 to 50 the Wall Plug does not report status change, power changes, ignores BASIC SET command frames. After time defined in parameter 32 or after the alarm cancellation, connected device is set to the previous state.. 0- no reaction 1-turn connected device on 2-turn connected device off 5-50(0,5-50,0s step 0,1s)-cyclically change device state with set period. Default setting:0-no reaction</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="32" label="Alarm state duration" value="600" min="1" max="32400" size="2">
-			<Help>This parameter specifies the duration of alarm state. If a device sending an alarm frame through the Z-Wave network sets alarm duration as well, this settings are ignored. Available settings 1-32400(s) Default setting: 600</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="40" label="Power load, which when exceeded, makes the LED ring flash violet." value="25000" min="1000" max="30000" size="2">
-			<Help>Function is active only when parameter 41 is set to 0 or 1. Available settings: 1000 - 30000 (100,0W - 3000,0W, step 0,1W). Default setting: 25000 (2500W)</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="41" label="LED ring illumination colour when controlled device is on" value="1" size="1">
-			<Help>0 - Illumination turned off completely, 1 - LED ring illumination colour changes continuously depending on active power, 2 - LED ring illumination colour changes in steps, depending on active power,  3 - White illumination, 4 - Red illumination, 5 - Green illumination, 6 - Blue illumination, 7 - Yellow illumination, 8 - Cyan illumination, 9 - Magenta illumination. Default setting: 1</Help>
-			<Item label="illumination turned off completely" value="0" />
-			<Item label="Colour changes continuously depending on active power" value="1" />
-			<Item label="Colour changes in steps depending on active power" value="2" />
-			<Item label="White illumination" value="3" />
-			<Item label="Red illumination" value="4" />
-			<Item label="Green illumination" value="5" />
-			<Item label="Blue illumination" value="6" />
-			<Item label="Yellow illumination" value="7" />
-			<Item label="Cyan illumination" value="8" />
-			<Item label="Magenta illumination" value="9" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="42" label="LED ring illumination colour when controlled device is off" value="0" size="1">
-			<Help>0 - Illumination turned off completely, 1 - LED ring is illuminated with a colour corresponding to the last measured power, before the controlled device was turned off, 3 - White illumination, 4 - Red illumination, 5 - Green illumination, 6 - Blue illumination, 7 - Yellow illumination, 8 - Cyan illumination, 9 - Magenta illumination. Default setting: 0</Help>
-			<Item label="illumination turned off completely" value="0" />
-			<Item label="LED ring is illuminated with a colour corresponding to the last measured power" value="1" />
-			<Item label="White illumination" value="3" />
-			<Item label="Red illumination" value="4" />
-			<Item label="Green illumination" value="5" />
-			<Item label="Blue illumination" value="6" />
-			<Item label="Yellow illumination" value="7" />
-			<Item label="Cyan illumination" value="8" />
-			<Item label="Magenta illumination" value="9" />
-
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="43" label="LED ring illumination colour at the Z-Wave network alarm detection" value="2" size="1">
-			<Help>0 - illumination turned off completely, 1 - No change in colour. LED ring illumination colour determined by parameters 41 or 42 settings, 2 - LED ring flashes red/blue/white (default), 3 - White illumination, 4 - Red illumination, 5 - Green illumination, 6 - Blue illumination, 7 - Yellow illumination, 8 - Cyan illumination, 9 - Magenta illumination. Default setting: 2</Help>
-			<Item label="illumination turned off completely" value="0" />
-			<Item label="No change in colour" value="1" />
-			<Item label="LED ring flashes red / blue / white" value="2" />
-			<Item label="White illumination" value="3" />
-			<Item label="Red illumination" value="4" />
-			<Item label="Green illumination" value="5" />
-			<Item label="Blue illumination" value="6" />
-			<Item label="Yellow illumination" value="7" />
-			<Item label="Cyan illumination" value="8" />
-			<Item label="Magenta illumination" value="9" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="50" label="Associations in Z-Wave network security mode" size="1" value="3">
-			<Help>This parameter defines how commands are sent in specified association groups: as secure or non-secure. Parameter is active only in Z-Wave network security mode. This parameter does not apply to 1st Lifeline group. Available settings: 0-3: 0 - none of the groups are  sent as secure; 1 - 2nd group sent as secure; 2 - 3rd group sent as secure; 3 - 2nd and 3rd group sent as secure; Default setting: 3</Help>
-			<Item label="none of the groups sent as secure" value="0" />
-			<Item label="2nd group send as secure" value="1" />
-			<Item label="3rd group send as secure" value="2" />
-			<Item label="2nd and 3rd group send as secure" value="3" />
-		</Value>
-
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="1" label="Lifeline"/>
-			<Group index="2" max_associations="10" label="On/Off (button)"  />
-			<Group index="3" max_associations="10" label="On/Off (power)"/>
-		</Associations>
-	</CommandClass>
-	
-	<!-- COMMAND_CLASS_BASIC supported -->
-	<CommandClass id="32" action="add" request_flags="5" />
-	
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Always on function" size="1" type="list" value="0">
+      <Help>Once activated, Wall Plug will keep a connected device constantly ON, will stop reacting to alarm frames and B-button push. "Always on" function turns the Plug into a power and energy meter. Also, connected device will not be turned off upon receiving an alarm frame from another Z-Wave device (parameter 31 will be ignored). In "Always on" mode, connected device may be turned off only after user defined power has been exceeded (parameter 3). In such a case, connected device can be turned on again by pushing the B-button or sending a control frame. By default, overload protection is inactive. Default setting: 0</Help>
+      <Item label="Inactive" value="0"/>
+      <Item label="Active" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Remember device status after a power failure" size="1" type="list" value="1">
+      <Help>This parameter determines how the Wall Plug will react in the event of power supply failure (e.g. taking out from the electrical outlet). After the power supply is back on, the Wall Plug can be restored to previous state or remain switched off. This parameter is ignored in Always On mode - the device automatically turns ON after plugging it into the socket. Default setting: 1</Help>
+      <Item label="Wall Plug does not memorize its state after a power failure" value="0"/>
+      <Item label="Wall Plug memorizes its state after a power failure" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Overload safety switch" max="30000" min="0" size="2" type="short" value="0">
+      <Help>This function allows for turning off the controlled device in case of exceeding the defined power. Controlled device will be turned off even if "always on" function is active (parameter 1). Controlled device can be turned back on via B-button or sending a control frame. Available settings: 10 - 30000 (1,0W - 3000,0W step 0,1W). Default setting: 0 (function inactive)</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="High priority power report" max="100" min="1" size="1" type="byte" value="80">
+      <Help>This parameter determines the minimum percentage change in active power that will result in sending power report to the main controller with the highest priority in the Z-Wave network. By default, the Wall Plug immediately sends the power report if the power load changes by 80%. Available settings: 1-99:power change in percent, 100:reports are disabled. Default setting: 80 (80%)</Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Standard power load reporting" max="100" min="1" size="1" type="byte" value="15">
+      <Help>This parameter determines the minimum percentage change in active power that will result in sending power report to the main controller Compared to parameter 10, the maximum number of reports sent is reduced (parameter 12) to 5 in a specified time interval. In addition, the frames are not sent in EXPLORE mode, which prevents overloading the Z-Wave network. By default changes in power load may be reported up to 5 times per 30 seconds, when power load changes by 15%. Available settings: 1-99:power change in percent, 100:reports are disabled. Default setting: 15 (15%)</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Power reporting interval" max="600" min="5" size="2" type="short" value="30">
+      <Help>This parameter defines how frequently standard power reports (parameter 11) will be sent. By default Wall Plug sends up to 5 reports each 30 seconds, provided the power load changes by 15%.  Available setttings: 5-600 (in seconds). Default setting: 30 (s)</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Energy reporting threshold" max="500" min="0" size="2" type="short" value="10">
+      <Help>This parameter specifies the minimum change in energy consumption (in relation to the previously reported), that will result in sending a new report. Available settings: 1-500 (0,01kWh - 5kWh).   0 - energy reports inactive. Default Setting: 10 (0,1 kWh)</Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Power and energy periodic reports" max="32400" min="0" size="2" type="short" value="3600">
+      <Help>This parameter defines time period between reports sent when changes in power load have not been recorded or if changes are insignificant (not exceeding values of parameters 20, 21 and 23). By default reports are sent every hour. Available settings: 5 - 32400 (s). 0 - periodic reports inactive. Reports will be sent only in case of power load / energy consumption changes (parameters 20,21,23) or in case of polling. Default setting: 3600</Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Measuring energy consumed by the Wall Plug itself" size="1" type="list" value="0">
+      <Help>This parameter determines whether energy metering should include the amount of energy consumed by the Wall Plug itself. Results are being added to energy consumed by controlled device. Default setting: 0</Help>
+      <Item label="Inactive" value="0"/>
+      <Item label="Active" value="1"/>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Control of On/Off (button) association group(2) devices" size="1" type="list" value="0">
+      <Help>Controlling devices with the B-Button. Control as the Wall Plug:  switching the Wall Plug on  switch the devices on (parameter 24) switching the Wall Plug off  switch the devices off (parameter 24)    This parameter is inactive in Always On mode (parameter 1). Default setting: 0</Help>
+      <Item label="Control as the wallplug" value="0"/>
+      <Item label="Control opposite of wallplug" value="1"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="DOWN value- On/Off(power) association group(3)" max="24900" min="0" size="2" type="short" value="300">
+      <Help>Lower power threshold, used in parameter 23. Available settings: 0 - 24900 (0,0W - 2490,0W step 0,1W) DOWN value cannot be higher than a value specified in parameter 22. Default setting: 300 (30W)</Help>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="UP value- On/Off(power) association group(3)" max="25000" min="100" size="2" type="short" value="500">
+      <Help>Upper power threshold, used in parameter 23. Available settings: 100 - 25000 (10,0W - 2500,0W) UP value cannot be lower than a value specified in parameter 21. Default setting: 500 (50W)</Help>
+    </Value>
+    <Value genre="config" index="23" instance="1" label="The response after exceeding defined power values" size="1" type="list" value="6">
+      <Help>Parameter defines the way 3th association group devices are controlled, depending on the actual measured power(as parameter 21 and 22 settings). Available settings: 1 - turn the associated devices ON, once the power drops below DOWN value (parameter 21), 2 - turn the associated devices OFF, once the power drops below DOWN value (parameter 21),       3 - turn the associated devices ON, once the power rises above UP value (parameter 22), 4 - turn the associated devices OFF, once the power rises above UP value (parameter 22), 5 - combination of 1 and 4. Turn the associated devices ON, once the power drops below DOWN value (parameter 21). Turn the associated devices OFF, once the power rises above UP value (parameter 22).  6 - combination of 2 and 3. Turn the associated devices OFF, once the power drops below DOWN value (parameter 21). Turn the associated devices ON, once the power rises above UP value (parameter 22). Default setting: 6</Help>
+      <Item label="Turn the associated devices on,Power below DOWN" value="1"/>
+      <Item label="Turn the associated devices off,Power below DOWN" value="2"/>
+      <Item label="Turn the associated devices on,Power above UP" value="3"/>
+      <Item label="Turn the associated devices off,Power above UP" value="4"/>
+      <Item label="1 and 4 combine" value="5"/>
+      <Item label="2 and 3 combined" value="6"/>
+    </Value>
+    <Value genre="config" index="24" instance="1" label="Switch ON value - On/Off association groups" max="255" min="0" size="2" type="short" value="255">
+      <Help>The value of BASIC SET command frame sent to the devices associated in On/Off association groups (2, 3). On/Off (Button) association group - in accordance with parameter 20. On/Off (Power) association group - in accordance with parameter 23. Available settings: 0-99 and 255. Default setting: 255</Help>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Active Alarms" max="63" min="1" size="1" type="list" value="63">
+      <Help>Define Z-Wave network alarms to which the Wall Plug will respond.</Help>
+      <Item label="General alarm" value="1"/>
+      <Item label="Smoke alarm" value="2"/>
+      <Item label="CO alarm" value="4"/>
+      <Item label="CO2 alarm" value="8"/>
+      <Item label="High temperature alarm" value="16"/>
+      <Item label="Flood alarm" value="32"/>
+      <Item label="All alarms" value="63"/>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="Response to alarm frames" max="50" min="0" size="2" type="short" value="0">
+      <Help>This parameter defines how the Wall Plug will respond to alarms (device's status change). In case of values 1 or 2 the Wall Plug is operating normally and LED ring signals an alarm through time defined in parameter 32 or until the alarm is cancelled. In case of values 5 to 50 the Wall Plug does not report status change, power changes, ignores BASIC SET command frames. After time defined in parameter 32 or after the alarm cancellation, connected device is set to the previous state.. 0- no reaction 1-turn connected device on 2-turn connected device off 5-50(0,5-50,0s step 0,1s)-cyclically change device state with set period. Default setting:0-no reaction</Help>
+    </Value>
+    <Value genre="config" index="32" instance="1" label="Alarm state duration" max="32400" min="1" size="2" type="short" value="600">
+      <Help>This parameter specifies the duration of alarm state. If a device sending an alarm frame through the Z-Wave network sets alarm duration as well, this settings are ignored. Available settings 1-32400(s) Default setting: 600</Help>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power load, which when exceeded, makes the LED ring flash violet." max="30000" min="1000" size="2" type="short" value="25000">
+      <Help>Function is active only when parameter 41 is set to 0 or 1. Available settings: 1000 - 30000 (100,0W - 3000,0W, step 0,1W). Default setting: 25000 (2500W)</Help>
+    </Value>
+    <Value genre="config" index="41" instance="1" label="LED ring illumination colour when controlled device is on" size="1" type="list" value="1">
+      <Help>0 - Illumination turned off completely, 1 - LED ring illumination colour changes continuously depending on active power, 2 - LED ring illumination colour changes in steps, depending on active power,  3 - White illumination, 4 - Red illumination, 5 - Green illumination, 6 - Blue illumination, 7 - Yellow illumination, 8 - Cyan illumination, 9 - Magenta illumination. Default setting: 1</Help>
+      <Item label="illumination turned off completely" value="0"/>
+      <Item label="Colour changes continuously depending on active power" value="1"/>
+      <Item label="Colour changes in steps depending on active power" value="2"/>
+      <Item label="White illumination" value="3"/>
+      <Item label="Red illumination" value="4"/>
+      <Item label="Green illumination" value="5"/>
+      <Item label="Blue illumination" value="6"/>
+      <Item label="Yellow illumination" value="7"/>
+      <Item label="Cyan illumination" value="8"/>
+      <Item label="Magenta illumination" value="9"/>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="LED ring illumination colour when controlled device is off" size="1" type="list" value="0">
+      <Help>0 - Illumination turned off completely, 1 - LED ring is illuminated with a colour corresponding to the last measured power, before the controlled device was turned off, 3 - White illumination, 4 - Red illumination, 5 - Green illumination, 6 - Blue illumination, 7 - Yellow illumination, 8 - Cyan illumination, 9 - Magenta illumination. Default setting: 0</Help>
+      <Item label="illumination turned off completely" value="0"/>
+      <Item label="LED ring is illuminated with a colour corresponding to the last measured power" value="1"/>
+      <Item label="White illumination" value="3"/>
+      <Item label="Red illumination" value="4"/>
+      <Item label="Green illumination" value="5"/>
+      <Item label="Blue illumination" value="6"/>
+      <Item label="Yellow illumination" value="7"/>
+      <Item label="Cyan illumination" value="8"/>
+      <Item label="Magenta illumination" value="9"/>
+    </Value>
+    <Value genre="config" index="43" instance="1" label="LED ring illumination colour at the Z-Wave network alarm detection" size="1" type="list" value="2">
+      <Help>0 - illumination turned off completely, 1 - No change in colour. LED ring illumination colour determined by parameters 41 or 42 settings, 2 - LED ring flashes red/blue/white (default), 3 - White illumination, 4 - Red illumination, 5 - Green illumination, 6 - Blue illumination, 7 - Yellow illumination, 8 - Cyan illumination, 9 - Magenta illumination. Default setting: 2</Help>
+      <Item label="illumination turned off completely" value="0"/>
+      <Item label="No change in colour" value="1"/>
+      <Item label="LED ring flashes red / blue / white" value="2"/>
+      <Item label="White illumination" value="3"/>
+      <Item label="Red illumination" value="4"/>
+      <Item label="Green illumination" value="5"/>
+      <Item label="Blue illumination" value="6"/>
+      <Item label="Yellow illumination" value="7"/>
+      <Item label="Cyan illumination" value="8"/>
+      <Item label="Magenta illumination" value="9"/>
+    </Value>
+    <Value genre="config" index="50" instance="1" label="Associations in Z-Wave network security mode" size="1" type="list" value="3">
+      <Help>This parameter defines how commands are sent in specified association groups: as secure or non-secure. Parameter is active only in Z-Wave network security mode. This parameter does not apply to 1st Lifeline group. Available settings: 0-3: 0 - none of the groups are  sent as secure; 1 - 2nd group sent as secure; 2 - 3rd group sent as secure; 3 - 2nd and 3rd group sent as secure; Default setting: 3</Help>
+      <Item label="none of the groups sent as secure" value="0"/>
+      <Item label="2nd group send as secure" value="1"/>
+      <Item label="3rd group send as secure" value="2"/>
+      <Item label="2nd and 3rd group send as secure" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off (button)" max_associations="10"/>
+      <Group index="3" label="On/Off (power)" max_associations="10"/>
+    </Associations>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC supported -->
+  <CommandClass action="add" id="32">
+    <Compatibility/>
+  </CommandClass>
 </Product>
diff --git a/Config/fibaro/fgwpg111.xml b/Config/fibaro/fgwpg111.xml
index 3032de6adc..0ce4163aed 100644
--- a/Config/fibaro/fgwpg111.xml
+++ b/Config/fibaro/fgwpg111.xml
@@ -1,216 +1,191 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     Fibaro FGWPG111 Wall Plug
     https://products.z-wavealliance.org/products/2899
     https://products.z-wavealliance.org/products/2854
     -->
 
     <!-- COMMAND_CLASS_BASIC supported -->
-    <CommandClass id="32" action="add" request_flags="5"/>
-
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="2" label="Remember device status after a power failure" value="1" size="1">
-            <Help>This parameter determines how the Wall Plug will react in the event of power supply failure (e.g. taking out from the electrical outlet).
+  <CommandClass action="add" id="32">
+    <Compatibility/>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" instance="1" label="Remember device status after a power failure" size="1" type="list" value="1">
+      <Help>This parameter determines how the Wall Plug will react in the event of power supply failure (e.g. taking out from the electrical outlet).
                 After the power supply is back on, the Wall Plug can be restored to previous state or remain switched off.
                 This parameter is ignored in Always On mode - the device automatically turns ON after plugging it into the socket.
                 Default setting: 1
             </Help>
-            <Item label="Device remains switched off" value="0"/>
-            <Item label="Device restores the state from before the power failure" value="1"/>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="3" label="Overload safety switch" value="0" min="0" max="30000" size="2">
-            <Help>This function allows to turning off the controlled device in case of exceeding the defined power.
+      <Item label="Device remains switched off" value="0"/>
+      <Item label="Device restores the state from before the power failure" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Overload safety switch" max="30000" min="0" size="2" type="short" value="0">
+      <Help>This function allows to turning off the controlled device in case of exceeding the defined power.
                 Controlled device can be turned back on via button or sending a control frame.
                 Available settings: 10 - 30000 (1,0W - 3000,0W step 0,1W).
                 Default setting: 0 (function inactive)
             </Help>
-        </Value>
-
-        <Value type="byte" genre="config" instance="1" index="11" label="Power reporting" value="15" min="0" max="100" size="1">
-            <Help>This parameter determines the minimum percentage change inactive power consumption (in relation to the previously reported) that will result in sending new power report.
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Power reporting" max="100" min="0" size="1" type="byte" value="15">
+      <Help>This parameter determines the minimum percentage change inactive power consumption (in relation to the previously reported) that will result in sending new power report.
                 Available settings: 1-100. 0 - power reports inactive.
                 Default Setting: 15 (%)
             </Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="12" label="Energy reporting threshold" value="10" min="0" max="500" size="2">
-            <Help>This parameter determines the minimum change in energy consumption (in relation to the previously reported), that will result in sending a new report.
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Energy reporting threshold" max="500" min="0" size="2" type="short" value="10">
+      <Help>This parameter determines the minimum change in energy consumption (in relation to the previously reported), that will result in sending a new report.
                 Available settings: 1-500 (0,01kWh - 5kWh). 0 - energy reports inactive.
                 Default Setting: 10 (0,1 kWh)
             </Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="13" label="Periodic power reporting" min="0" max="32400" value="3600" size="2">
-            <Help>This parameter defines time period between reports sent when changes in power load have not been record if changes are smaller than defined in parameter 11.
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Periodic power reporting" max="32400" min="0" size="2" type="short" value="3600">
+      <Help>This parameter defines time period between reports sent when changes in power load have not been record if changes are smaller than defined in parameter 11.
                 By default reports are sent every hour.
                 Available settings: 0 - 32400 (s). 0 - periodic reports inactive.
                 Default setting: 3600
             </Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="14" label="Periodic energy reporting" min="0" max="32400" value="3600" size="2">
-            <Help>This parameter defines time period between reports sent when changes in power load have not been recorded or if changes are smaller than in paramater 11.
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Periodic energy reporting" max="32400" min="0" size="2" type="short" value="3600">
+      <Help>This parameter defines time period between reports sent when changes in power load have not been recorded or if changes are smaller than in paramater 11.
                 By default reports are sent every hour.
                 Available settings: 0 - 32400 (s). 0 - periodic reports inactive.
                 Default setting: 3600
             </Help>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="15" label="Measuring energy consumed by the Wall Plug itself" value="0" size="1">
-            <Help>This parameter determines whether power metering should include the amount of power consumed by the Wall Plug itself.
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Measuring energy consumed by the Wall Plug itself" size="1" type="list" value="0">
+      <Help>This parameter determines whether power metering should include the amount of power consumed by the Wall Plug itself.
                 Results are being added to the value of power consumed by controlled device.
                 Default setting: 0 Inactive
             </Help>
-            <Item label="Inactive" value="0"/>
-            <Item label="Active" value="1"/>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="21" label="UP value association group 3" value="500" min="100" max="30000" size="2">
-            <Help>Upper power threshold, used in parameter 23. Up value cannot be lower than a value specified in parameter 22.
+      <Item label="Inactive" value="0"/>
+      <Item label="Active" value="1"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="UP value association group 3" max="30000" min="100" size="2" type="short" value="500">
+      <Help>Upper power threshold, used in parameter 23. Up value cannot be lower than a value specified in parameter 22.
                 Available settings: 100 - 30000 (10,0W - 30000,0W).
                 Default setting: 500 (50W)
             </Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="22" label="DOWN value association group 3" value="300" min="0" max="29900" size="2">
-            <Help>Lower power threshold, used in parameter 23.
+    </Value>
+    <Value genre="config" index="22" instance="1" label="DOWN value association group 3" max="29900" min="0" size="2" type="short" value="300">
+      <Help>Lower power threshold, used in parameter 23.
                 DOWN value cannot be higher than a value specified in parameter 21.
                 Available settings: 0 - 29900 (0,0W - 2990,0W step 0,1W).
                 Default setting: 300 (30W)
             </Help>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="23" label="Controlling association group 3" value="3" size="1">
-            <Help>This parameter defines the way that 3rd association group devices are controlled.
+    </Value>
+    <Value genre="config" index="23" instance="1" label="Controlling association group 3" size="1" type="list" value="3">
+      <Help>This parameter defines the way that 3rd association group devices are controlled.
                 Depends on the actual measured power(according to parameters 21 and 22 settings).
                 Default setting: 3
             </Help>
-            <Item label="Send frame (with value set in parameter 26) only if power exceeded value of parameter 21 turn the associated devices ON, once the power drops below DOWN value (parameter 21)"
-                  value="1"/>
-            <Item label="Send frame (with value set in parameter 27) only if power dropped below value of paramater 22"
-                  value="2"/>
-            <Item label="Send frame in both cases" value="3"/>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="24" label="Switch ON value - association group 2" value="255" min="0" max="255" size="2">
-            <Help>The value of BASIC SET command frame sent to the devices associated in 2nd group On/Off (Button) when turning the device ON using the button.
+      <Item label="Send frame (with value set in parameter 26) only if power exceeded value of parameter 21 turn the associated devices ON, once the power drops below DOWN value (parameter 21)" value="1"/>
+      <Item label="Send frame (with value set in parameter 27) only if power dropped below value of paramater 22" value="2"/>
+      <Item label="Send frame in both cases" value="3"/>
+    </Value>
+    <Value genre="config" index="24" instance="1" label="Switch ON value - association group 2" max="255" min="0" size="2" type="short" value="255">
+      <Help>The value of BASIC SET command frame sent to the devices associated in 2nd group On/Off (Button) when turning the device ON using the button.
                 Available settings: 0-99 or 255.
                 Default setting: 255
             </Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="25" label="Switch OFF value - association group 2" value="255" min="0" max="255" size="2">
-            <Help>The value of BASIC SET command frame sent to the devices associated in 2nd group On/Off (Button) when turning the device OFF using the button.
+    </Value>
+    <Value genre="config" index="25" instance="1" label="Switch OFF value - association group 2" max="255" min="0" size="2" type="short" value="255">
+      <Help>The value of BASIC SET command frame sent to the devices associated in 2nd group On/Off (Button) when turning the device OFF using the button.
                 Available settings: 0-99 or 255.
                 Default setting: 0
             </Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="26" label="THRESHOLD UP value - association group 3" value="255" min="0" max="255" size="2">
-            <Help>The value of BASIC SET command frame sent to the devices associated in 3rd group On/Off (Power) if power exceeded value of parameter 21.
+    </Value>
+    <Value genre="config" index="26" instance="1" label="THRESHOLD UP value - association group 3" max="255" min="0" size="2" type="short" value="255">
+      <Help>The value of BASIC SET command frame sent to the devices associated in 3rd group On/Off (Power) if power exceeded value of parameter 21.
                 Available settings: 0-99 or 255.
                 Default setting: 255
             </Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="27" label="THRESHOLD DOWN value - association group 3" value="255" min="0" max="255" size="2">
-            <Help>The value of BASIC SET command frame sent to the devices associated in 3rd group On/Off (Power) if power dropped below value of parameter 22.
+    </Value>
+    <Value genre="config" index="27" instance="1" label="THRESHOLD DOWN value - association group 3" max="255" min="0" size="2" type="short" value="255">
+      <Help>The value of BASIC SET command frame sent to the devices associated in 3rd group On/Off (Power) if power dropped below value of parameter 22.
                 Available settings: 0-99 or 255.
                 Default setting: 0
             </Help>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="30" label="Active Alarms" value="63" min="1" max="63" size="1">
-            <Help>Define Z-Wave network alarms to which the Wall Plug will respond.</Help>
-            <Item label="General alarm" value="1"/>
-            <Item label="Smoke alarm" value="2"/>
-            <Item label="CO alarm" value="4"/>
-            <Item label="CO2 alarm" value="8"/>
-            <Item label="High temperature alarm" value="16"/>
-            <Item label="Flood alarm" value="32"/>
-            <Item label="All alarms" value="63"/>
-        </Value>
-
-        <Value type="byte" genre="config" instance="1" index="31" label="Response to alarm frames" value="0" min="0" max="50" size="1">
-            <Help>This parameter defines how the Wall Plug will respond to alarms (device's status change).
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Active Alarms" max="63" min="1" size="1" type="list" value="63">
+      <Help>Define Z-Wave network alarms to which the Wall Plug will respond.</Help>
+      <Item label="General alarm" value="1"/>
+      <Item label="Smoke alarm" value="2"/>
+      <Item label="CO alarm" value="4"/>
+      <Item label="CO2 alarm" value="8"/>
+      <Item label="High temperature alarm" value="16"/>
+      <Item label="Flood alarm" value="32"/>
+      <Item label="All alarms" value="63"/>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="Response to alarm frames" max="50" min="0" size="1" type="byte" value="0">
+      <Help>This parameter defines how the Wall Plug will respond to alarms (device's status change).
                 In case of values 1 or 2 the Wall Plug is operating normally and LED frame signals an alarm through time defined in parameter 32 or until the alarm is cancelled.
                 In case of values 5 to 50 the Wall Plug does not report status change, power changes, ignores BASIC SET command frames.
                 After time defined in parameter 32 or after the alarm cancellation, connected device is set to the previous state.
                 0 - no reaction 1-turn connected device on 2-turn connected device off 5-50(0,5-50,0s step 0,1s)-cyclically change device state with set period.
                 Default setting:0-no reaction
             </Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="32" label="Alarm state duration" value="600" min="1" max="32400" size="2">
-            <Help>This parameter specifies the duration of alarm state.
+    </Value>
+    <Value genre="config" index="32" instance="1" label="Alarm state duration" max="32400" min="1" size="2" type="short" value="600">
+      <Help>This parameter specifies the duration of alarm state.
                 If a device sending an alarm frame through the Z-Wave network sets alarm duration as well, this settings are ignored.
                 Available settings 1-32400(s)
                 Default setting: 600
             </Help>
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="40" label="Power load for violet colour" value="30000" min="1000" max="30000" size="2">
-            <Help>This parameter determines maximum active power value, which when exceeded, causes the LED frame to flash violet. Function is active only when parameter 41 is set to 1 or 2.
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power load for violet colour" max="30000" min="1000" size="2" type="short" value="30000">
+      <Help>This parameter determines maximum active power value, which when exceeded, causes the LED frame to flash violet. Function is active only when parameter 41 is set to 1 or 2.
                 Available settings: 1000 - 30000 (100,0W - 3000,0W, step 0,1W).
                 Default setting: 30000 (3000W)
             </Help>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="41" label="LED frame colour when controlled device is on" value="1" size="1">
-            <Help>When set to 1 or 2, LED frame colour will change depending on active power and parameter 40.
+    </Value>
+    <Value genre="config" index="41" instance="1" label="LED frame colour when controlled device is on" size="1" type="list" value="1">
+      <Help>When set to 1 or 2, LED frame colour will change depending on active power and parameter 40.
                 Other colours are set permanently and do not depend on power consumption
             </Help>
-            <Item label="Illumination turned off completely" value="0"/>
-            <Item label="Colour changes smoothly depending on active power" value="1"/>
-            <Item label="Colour changes in steps depending on active power" value="2"/>
-            <Item label="White illumination" value="3"/>
-            <Item label="Red illumination" value="4"/>
-            <Item label="Green illumination" value="5"/>
-            <Item label="Blue illumination" value="6"/>
-            <Item label="Yellow illumination" value="7"/>
-            <Item label="Cyan illumination" value="8"/>
-            <Item label="Magenta illumination" value="9"/>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="42" label="LED frame colour when controlled device is off" value="0" size="1">
-            <Help>This parameter defines the illumination colour after turning off.</Help>
-            <Item label="illumination turned off completely" value="0"/>
-            <Item label="LED frame is illuminated with a colour corresponding to the last measured power, before the controlled device was turned off" value="1"/>
-            <Item label="White illumination" value="3"/>
-            <Item label="Red illumination" value="4"/>
-            <Item label="Green illumination" value="5"/>
-            <Item label="Blue illumination" value="6"/>
-            <Item label="Yellow illumination" value="7"/>
-            <Item label="Cyan illumination" value="8"/>
-            <Item label="Magenta illumination" value="9"/>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="43" label="LED frame colour at the Z-Wave network alarm detection" value="2" size="1">
-            <Help>This parameter defines the illumination colour in case of Z-Wave alarm.</Help>
-            <Item label="Illumination turned off completely" value="0"/>
-            <Item label="No change in colour. LED frame colour is determined by settings of parameters 41 or 42" value="1"/>
-            <Item label="LED frame flashes red / blue / white" value="2"/>
-            <Item label="White illumination" value="3"/>
-            <Item label="Red illumination" value="4"/>
-            <Item label="Green illumination" value="5"/>
-            <Item label="Blue illumination" value="6"/>
-            <Item label="Yellow illumination" value="7"/>
-            <Item label="Cyan illumination" value="8"/>
-            <Item label="Magenta illumination" value="9"/>
-        </Value>
-    </CommandClass>
-
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="3">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="BasicSet forward relay status on local Button event"/>
-            <Group index="3" max_associations="5" label="BasicSet base on Plug power"/>
-        </Associations>
-    </CommandClass>
-
-</Product>
\ No newline at end of file
+      <Item label="Illumination turned off completely" value="0"/>
+      <Item label="Colour changes smoothly depending on active power" value="1"/>
+      <Item label="Colour changes in steps depending on active power" value="2"/>
+      <Item label="White illumination" value="3"/>
+      <Item label="Red illumination" value="4"/>
+      <Item label="Green illumination" value="5"/>
+      <Item label="Blue illumination" value="6"/>
+      <Item label="Yellow illumination" value="7"/>
+      <Item label="Cyan illumination" value="8"/>
+      <Item label="Magenta illumination" value="9"/>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="LED frame colour when controlled device is off" size="1" type="list" value="0">
+      <Help>This parameter defines the illumination colour after turning off.</Help>
+      <Item label="illumination turned off completely" value="0"/>
+      <Item label="LED frame is illuminated with a colour corresponding to the last measured power, before the controlled device was turned off" value="1"/>
+      <Item label="White illumination" value="3"/>
+      <Item label="Red illumination" value="4"/>
+      <Item label="Green illumination" value="5"/>
+      <Item label="Blue illumination" value="6"/>
+      <Item label="Yellow illumination" value="7"/>
+      <Item label="Cyan illumination" value="8"/>
+      <Item label="Magenta illumination" value="9"/>
+    </Value>
+    <Value genre="config" index="43" instance="1" label="LED frame colour at the Z-Wave network alarm detection" size="1" type="list" value="2">
+      <Help>This parameter defines the illumination colour in case of Z-Wave alarm.</Help>
+      <Item label="Illumination turned off completely" value="0"/>
+      <Item label="No change in colour. LED frame colour is determined by settings of parameters 41 or 42" value="1"/>
+      <Item label="LED frame flashes red / blue / white" value="2"/>
+      <Item label="White illumination" value="3"/>
+      <Item label="Red illumination" value="4"/>
+      <Item label="Green illumination" value="5"/>
+      <Item label="Blue illumination" value="6"/>
+      <Item label="Yellow illumination" value="7"/>
+      <Item label="Cyan illumination" value="8"/>
+      <Item label="Magenta illumination" value="9"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="BasicSet forward relay status on local Button event" max_associations="5"/>
+      <Group index="3" label="BasicSet base on Plug power" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/firstalert/zcombo.xml b/Config/firstalert/zcombo.xml
index f85096ac24..b7c12dfae0 100644
--- a/Config/firstalert/zcombo.xml
+++ b/Config/firstalert/zcombo.xml
@@ -1,20 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0138:0002:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/firstalert/zcombo.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/862/</MetaDataItem>
+    <MetaDataItem name="Description">Smoke and Carbon Monoxide Alarm</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0001">ZCOMBO</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Smoke/CO Alarm</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/862/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- First Alert ZCombo Smoke and Carbon Monoxide Detector -->
  
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="list" genre="config" instance="1" index="1" label="Send double alarm messages" value="0" size="1">
+    <Value genre="config" index="1" instance="1" label="Send double alarm messages" size="1" type="list" value="0">
       <Help>Causes the device to send double alarm messages.</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="1" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/followgood/swz-1002.xml b/Config/followgood/swz-1002.xml
new file mode 100644
index 0000000000..454f3abc19
--- /dev/null
+++ b/Config/followgood/swz-1002.xml
@@ -0,0 +1,14 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0137:0002:3001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/followgood/swz-1002.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="3001">https://products.z-wavealliance.org/products/830/</MetaDataItem>
+    <MetaDataItem name="Description">Binary Power Switch</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="3001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Power Switch</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="3001">SWZ-1002</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/830/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/forest/fs2z5232000002.xml b/Config/forest/fs2z5232000002.xml
index cef03e88c1..a92ffe297b 100644
--- a/Config/forest/fs2z5232000002.xml
+++ b/Config/forest/fs2z5232000002.xml
@@ -1,12 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0207:0100:0027</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/forest/fs2z5232000002.png</MetaDataItem>
+    <MetaDataItem id="0100" name="ZWProductPage" type="0027">https://products.z-wavealliance.org/products/1294/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Press configuration button 3 times. LED3 is ON.
+Press and hold once more for 4 seconds.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press configuration button 25x times. LED 1 is ON. Press and hold once more for 4 seconds to confirm.
+Please use this procedure only when your network primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1294/Installing the FOREST SHUTTLE  S - L  Z-wave V1_0EN.pdf</MetaDataItem>
+    <MetaDataItem id="0100" name="Identifier" type="0027">FS2Z</MetaDataItem>
+    <MetaDataItem id="0100" name="FrequencyName" type="0027">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Forest Shuttle L  Z-Wave and the Forest motorized curtain track systems (FMS) make an unbeatable combination when it comes to noiseless operated motorized curtains. The smooth and silent running curtain track system can, in addition to remote operation, also be operated by hand. Thanks to Forest’s special Touch Impulse Technology, a gentle pull on the curtain is enough to activate the motor. The Forest Shuttle L  Z-Wave also makes sure that your curtains will always hang  beautifully smooth and supple. Opened as well as closed!
+• Touch Impulse Technology, gently pulling the curtain will activate the motor.
+• Integrated Emergency Control ensures manual operation of the curtain in case of power failure.
+• Modular motor, different modules can be attached for various control options: Radio Frequency, Switch, Infrared, Domotics, Building/Hotel Automation, Serial Communication, Z-Wave, etc.
+• Forest Shuttle L  Z-Wave will have an internal Z-Wave receiver and BUS connection.
+• Silent motor, speeds: 14 and 17 cm/sec., with slow start and slow stop.
+• Full automatic setting of the limits.
+• Stack-back position programmable to every desired setting.
+• Forest Shuttle L  Z-Wave has an integrated power supply.
+• Motor pulley connects motor and FMS track. Also available in upside down version to conceal the motor into the ceiling.
+• Available track lenghts: 5.80 meters and 7.00 meters. FMS track and components available in white and black.
+</MetaDataItem>
+    <MetaDataItem name="Name">Forest Shuttle L Z-Wave</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Press configuration button 3 times. LED3 is ON.
+Press and hold once more for 4 seconds.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1294/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Forest Shuttle L Z-Wave -->
   <!-- http://products.z-wavealliance.org/products/1294 -->
 
     <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/fortrezz/fmi.xml b/Config/fortrezz/fmi.xml
index 200462e5f1..2f5f57d181 100644
--- a/Config/fortrezz/fmi.xml
+++ b/Config/fortrezz/fmi.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- https://products.z-wavealliance.org/products/1690 -->
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
diff --git a/Config/fortrezz/gdc1_fortrezz_1501.xml b/Config/fortrezz/gdc1_fortrezz_1501.xml
new file mode 100644
index 0000000000..592211f28c
--- /dev/null
+++ b/Config/fortrezz/gdc1_fortrezz_1501.xml
@@ -0,0 +1,14 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0084:0111:0513</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fortrezz/gdc1_fortrezz_1501.png</MetaDataItem>
+    <MetaDataItem id="0111" name="ZWProductPage" type="0513">https://products.z-wavealliance.org/products/1242/</MetaDataItem>
+    <MetaDataItem id="0111" name="Identifier" type="0513">GDC1_FortrezZ_1501</MetaDataItem>
+    <MetaDataItem name="Name">FortrezZ GDC1</MetaDataItem>
+    <MetaDataItem name="Description">The GDC1 Module is an interface / bridge / siren strobe combination module with On/Off Switch outputs.</MetaDataItem>
+    <MetaDataItem id="0111" name="FrequencyName" type="0513">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1242/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/fortrezz/mimo2plus.xml b/Config/fortrezz/mimo2plus.xml
index dfec8871e0..7654e1bcf3 100644
--- a/Config/fortrezz/mimo2plus.xml
+++ b/Config/fortrezz/mimo2plus.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!--
     https://products.z-wavealliance.org/products/1893
     https://static1.squarespace.com/static/57363221555986b60e62f0f0/t/5919d919ff7c50802f0b93da/1494866202716/Tech+Appendix+MIMO2%2B+8May2017+removed+MI+address.pdf
diff --git a/Config/fortrezz/mimolite.xml b/Config/fortrezz/mimolite.xml
index 667136d80f..a56609b264 100644
--- a/Config/fortrezz/mimolite.xml
+++ b/Config/fortrezz/mimolite.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
 	<!-- https://products.z-wavealliance.org/products/1756 -->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="4">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="button" index="2" genre="config" label="Clear Pulse Meter Counts" units="" min="0" max="255" value="0" write_only="true">
diff --git a/Config/fortrezz/ssa2.xml b/Config/fortrezz/ssa2.xml
index 4cba64e87f..dab5ba766f 100644
--- a/Config/fortrezz/ssa2.xml
+++ b/Config/fortrezz/ssa2.xml
@@ -1,15 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- FortrezZ: SSA1/SSA2 - Siren and Strobe Alarm-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="1" label="Delay before accept of Basic Set Off" units="seconds" min="0" max="255" value="0">
-			<Help>
+<!-- FortrezZ: SSA1/SSA2 - Siren and Strobe Alarm--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0084:0107:0313</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fortrezz/ssa2.png</MetaDataItem>
+    <MetaDataItem id="0107" name="ZWProductPage" type="0313">https://products.z-wavealliance.org/products/130/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.fortrezz.com/</MetaDataItem>
+    <MetaDataItem name="Name">FortrezZ SSA1/SSA2 Siren &amp; Strobe Alarm</MetaDataItem>
+    <MetaDataItem id="0107" name="FrequencyName" type="0313">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">The SSA1 / SSA2 is a Z-Wave enabled device that will sound a loud siren and/or flash a strobe light when signaled via a Z-Wave enabled network. SSA1: clear lens version; SSA2: red lens version.Integrate it into the home automation and/ or security network, and this siren/strobe module will deliver the audible and visual notifications you can depend on.
+- SSA will sound a loud audible alarm >110dB@1m and a strobe lighting when an alarm signal is received from a device in the Z-Wave home network. 
+- Intended for use inside a Z-Wave Home Automation network as a Siren / Strobe Light Alarm.
+
+- Can be used in a normal, existing home’s security system with wired controllers, using  Z-Wave to RS-232/485 bridge.
+
+- Extends the range of existing Z-Wave devices in the mesh network by acting as a signal repeater.
+
+- Uses the latest and most successful wireless home automation technology.
+
+- Tamper proof.  Uses 9V batter backup to sound alarm if AC power is disconnected / cut.
+- SSA is fully programmable with Z-wave smart controllers to provide the audible and visual notifications you set for your automation and/or security network.
+
+    - Siren ONLY mode
+
+    - Strobe ONLY mode
+
+    - Strobe &amp; Siren Mode</MetaDataItem>
+    <MetaDataItem id="0107" name="Identifier" type="0313">SSA1 - SSA2 01</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.fortrezz.com/</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/130/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Delay before accept of Basic Set Off" max="255" min="0" type="byte" units="seconds" value="0">
+      <Help>
 				Delay, from the time the siren-strobe turns on, before the Basic Set Off command is accepted.
 				This could be used, for example, to avoid the situation where an associated window/door sensor turns the SSA1 alarm on and then immediately off when the window/door is opened and then quickly closed.
 				-128 seconds to -1 seconds -> Interpreted as unsigned integer for negative values sent in set command.
 			</Help>
-		</Value>
-	</CommandClass>
-
+    </Value>
+  </CommandClass>
 </Product>
diff --git a/Config/fortrezz/ssa3.xml b/Config/fortrezz/ssa3.xml
index 2de6e12242..5e33a702cc 100644
--- a/Config/fortrezz/ssa3.xml
+++ b/Config/fortrezz/ssa3.xml
@@ -1,23 +1,35 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- FortrezZ: SSA3 - Siren/Strobe Light Alarm -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="1" label="Delay before accept of Basic Set Off" units="seconds" min="0" max="255" value="0">
-			<Help>
+<!-- FortrezZ: SSA3 - Siren/Strobe Light Alarm --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0084:0205:0343</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fortrezz/ssa3.png</MetaDataItem>
+    <MetaDataItem id="0205" name="ZWProductPage" type="0343">https://products.z-wavealliance.org/products/931/</MetaDataItem>
+    <MetaDataItem id="0205" name="FrequencyName" type="0343">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://fortrezz.com/index.php/products/siren/itemlist/category/18-siren-strobe-alarm-wire-wireless</MetaDataItem>
+    <MetaDataItem name="Name">Siren &amp; Strobe Alarm</MetaDataItem>
+    <MetaDataItem id="0205" name="Identifier" type="0343">SSA3-P4</MetaDataItem>
+    <MetaDataItem name="Description">Siren Strobe Alarm SSA3 by FortrezZ, is a professional grade, with both wire and wireless triggers to be used as an alarm device for home security or home automation.
+
+SSA3 can be connected and triggered the traditional way, by wire, from the home security panel, or by wire from the security loop and also to be used wireless on the Z-Wave network.  SSA3 can be used indoor and/or outdoors and will sound a loud siren and flash a strobe light when an alarm message or alert is received on the Z-Wave network.  </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/931/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Delay before accept of Basic Set Off" max="255" min="0" type="byte" units="seconds" value="0">
+      <Help>
 				Delay, from the time the siren-strobe turns on, before the Basic Set Off command is accepted;
 				1 Byte (in seconds, default is 0, interpreted as unsigned integer for negative values sent in set command).
 				This could be used, for example, to avoid the situation where an associated window/door sensor turns the SSA3 alarm on and immediately off when the window/door is opened and then quickly closed
 			</Help>
-		</Value>
-	</CommandClass>
+    </Value>
+  </CommandClass>
   <!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="2" label="Tamper Alarm" auto="false"/>
-			<Group index="2" max_associations="2" label="Main power has dropped" />
-			<Group index="3" max_associations="2" label="Security panel trigger is active" />
-		</Associations>
-	</CommandClass>
-
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group auto="false" index="1" label="Tamper Alarm" max_associations="2"/>
+      <Group index="2" label="Main power has dropped" max_associations="2"/>
+      <Group index="3" label="Security panel trigger is active" max_associations="2"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/fortrezz/wv01.xml b/Config/fortrezz/wv01.xml
index ac56fd191f..32067620bd 100644
--- a/Config/fortrezz/wv01.xml
+++ b/Config/fortrezz/wv01.xml
@@ -1,16 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- FortrezZ WV-01 Automated Water Shut-Off Valve -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" index="0" genre="config" label="Mode" size="1" min="0" max="255" value="0">
-            <Help>
-            </Help>
-            <Item label="Water Alarm" value="0"/>
-            <Item label="Water Level" value="255"/>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="1" label="Water Level timeout" units="minutes" min="0" max="32767" value="60">
-            <Help></Help>
-        </Value>
-    </CommandClass>
-</Product>
\ No newline at end of file
+<!-- FortrezZ WV-01 Automated Water Shut-Off Valve --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0084:020C:0213</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fortrezz/wv01.png</MetaDataItem>
+    <MetaDataItem id="020C" name="ZWProductPage" type="0213">https://products.z-wavealliance.org/products/178/</MetaDataItem>
+    <MetaDataItem id="020C" name="Identifier" type="0213">WV-01_1002</MetaDataItem>
+    <MetaDataItem name="Description">Professional grade, electrically operated water shutoff valve that is Z-Wave Wireless compatible</MetaDataItem>
+    <MetaDataItem name="Name">FortrezZ Wireless Water Valve</MetaDataItem>
+    <MetaDataItem id="020C" name="FrequencyName" type="0213">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.fortrezz.com/wv01.html</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.fortrezz.com/</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/178/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/817/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/818/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0216" name="ZWProductPage" type="0243">https://products.z-wavealliance.org/products/818/</MetaDataItem>
+    <MetaDataItem id="0216" name="FrequencyName" type="0243">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0216" name="Identifier" type="0243">Wireless Water Valve</MetaDataItem>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="0" label="Mode" max="255" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Water Alarm" value="0"/>
+      <Item label="Water Level" value="255"/>
+    </Value>
+    <Value genre="config" index="1" instance="1" label="Water Level timeout" max="32767" min="0" type="short" units="minutes" value="60">
+      <Help></Help>
+    </Value>
+  </CommandClass>
+</Product>
diff --git a/Config/fortrezz/wwa-01aa.xml b/Config/fortrezz/wwa-01aa.xml
new file mode 100644
index 0000000000..7f7d6b55d3
--- /dev/null
+++ b/Config/fortrezz/wwa-01aa.xml
@@ -0,0 +1,19 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0084:0210:0013</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fortrezz/wwa-01aa.png</MetaDataItem>
+    <MetaDataItem id="0210" name="ZWProductPage" type="0013">https://products.z-wavealliance.org/products/302/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.fortrezz.com/</MetaDataItem>
+    <MetaDataItem name="Description">Wireless Water &amp; Freeze Alarm. Wireless Water Alarm WWA-01AA. This product will provide you with peace of mind and the protection you expect. Water damages are caused by leaking pipes, corroded water heaters, water storage tanks, fixtures in bathrooms, laundry rooms, refrigerator drip pans etc.
+
+•Wireless Water Alarm WWA-01AA is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. Inclusion of this WWA-01 into a Z-WaveTM network allows remote status monitoring and alerts when the detector is triggered. Other Z-Wave nodes in the system also act as repeaters if they support that function.</MetaDataItem>
+    <MetaDataItem name="Name">WWA-01AA - Wireless Water &amp; Freeze Alarm</MetaDataItem>
+    <MetaDataItem id="0210" name="FrequencyName" type="0013">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.fortrezz.com/</MetaDataItem>
+    <MetaDataItem id="0210" name="Identifier" type="0013">WWA-01AA</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/302/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/fortrezz/wwa02.xml b/Config/fortrezz/wwa02.xml
index 6bfc2d06d6..b29e886ca3 100644
--- a/Config/fortrezz/wwa02.xml
+++ b/Config/fortrezz/wwa02.xml
@@ -1,21 +1,39 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- FortrezZ: WWA-02 Water and Temperature Alarm -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="byte" genre="config" instance="1" index="1" label="Low Temperature Trigger Point" units="degrees" min="0" max="255" value="4">
-            <Help></Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="2" label="High Temperature Trigger Point" units="degrees" min="0" max="255" value="70">
-            <Help></Help>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="3">
-            <Group index="1" max_associations="2" label="Water Alarm or Heat Alarm"/>
-            <Group index="2" max_associations="2" label="Water Alarm"/>
-            <Group index="3" max_associations="2" label="Temperature Alarm"/>
-        </Associations>
-    </CommandClass>
+<!-- FortrezZ: WWA-02 Water and Temperature Alarm --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0084:0109:0023</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fortrezz/wwa02.png</MetaDataItem>
+    <MetaDataItem id="0109" name="ZWProductPage" type="0023">https://products.z-wavealliance.org/products/91/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.fortrezz.com/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.fortrezz.com/</MetaDataItem>
+    <MetaDataItem name="Name">WWA-02 - Wireless Water &amp; Temperature Alarm</MetaDataItem>
+    <MetaDataItem name="Description">Wireless Water Alarm WWA-02AA. This product will provide you with peace of mind and the protection you expect. Water damages are caused by leaking pipes, corroded water heaters, water storage tanks, fixtures in bathrooms, laundry rooms, refrigerator drip pans etc.
+
+•Wireless Water Alarm WWA-02AA is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. Inclusion of this WWA-02AA into a Z-WaveTM network allows remote status monitoring and alerts when the detector is triggered. Other Z-Wave nodes in the system also act as repeaters if they support that function.</MetaDataItem>
+    <MetaDataItem id="0109" name="Identifier" type="0023">WWA-02</MetaDataItem>
+    <MetaDataItem id="0109" name="FrequencyName" type="0023">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/91/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/92/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="010A" name="ZWProductPage" type="0021">https://products.z-wavealliance.org/products/92/</MetaDataItem>
+    <MetaDataItem id="010A" name="FrequencyName" type="0021">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="010A" name="Identifier" type="0021">WWA-02</MetaDataItem>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Low Temperature Trigger Point" max="255" min="0" type="byte" units="degrees" value="4">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="High Temperature Trigger Point" max="255" min="0" type="byte" units="degrees" value="70">
+      <Help></Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Water Alarm or Heat Alarm" max_associations="2"/>
+      <Group index="2" label="Water Alarm" max_associations="2"/>
+      <Group index="3" label="Temperature Alarm" max_associations="2"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/frostdale/fdn2311.xml b/Config/frostdale/fdn2311.xml
new file mode 100644
index 0000000000..49e863acb2
--- /dev/null
+++ b/Config/frostdale/fdn2311.xml
@@ -0,0 +1,17 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0110:0001:2411</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/frostdale/fdn2311.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="2411">https://products.z-wavealliance.org/products/599/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.frostdale.com/products/switch_2-4_buttons.html</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="2411">FDN2311</MetaDataItem>
+    <MetaDataItem name="Description">The nanogrid™ three button switch provides complete control over three independent light fixtures, with a maximum load rating of 600 watts. No additional wiring or configuration is needed to replace existing switches, and it is easily included in a Z-Wave network. Built-in temperature sensors can deliver room temperature to a Z-Wave gateway or thermostat, and may be used to trigger climate control events. The ESM (Energy Saving Mode) feature is activated by pressing and holding the switch’s top button and helps to reduce electricity usage. The switch’s unique design is available in five elegant finishes, with LEDs available in white, blue, or green.</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.frostdale.com/faq.html</MetaDataItem>
+    <MetaDataItem name="Name">nanogrid™ Wireless Light Switch</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="2411">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/599/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/frostdale/fdn2nxx.xml b/Config/frostdale/fdn2nxx.xml
index da565ab615..00c9861a47 100644
--- a/Config/frostdale/fdn2nxx.xml
+++ b/Config/frostdale/fdn2nxx.xml
@@ -1,5 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Multi-Instance configuration -->
-  <CommandClass id="96" endpoints="4" />
+  <CommandClass id="96">
+  	<Compatibility>
+  		<EndpointHint>4</EndpointHint>
+  	</Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/ge/12719-plugin-switch.xml b/Config/ge/12719-plugin-switch.xml
index 3d65666a53..7c2e228276 100644
--- a/Config/ge/12719-plugin-switch.xml
+++ b/Config/ge/12719-plugin-switch.xml
@@ -1,13 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 GE Z-Wave Plug-in Smart Switch 12719 (ZW4101) 
 https://products.z-wavealliance.org/products/1193
- -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Lifeline" />
-		</Associations>
-	</CommandClass>
+ --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3031:5052</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/12719-plugin-switch.png</MetaDataItem>
+    <MetaDataItem id="3031" name="ZWProductPage" type="5052">https://products.z-wavealliance.org/products/1210/</MetaDataItem>
+    <MetaDataItem id="3031" name="Identifier" type="5052">45703</MetaDataItem>
+    <MetaDataItem id="3031" name="FrequencyName" type="5052">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ezzwave.com</MetaDataItem>
+    <MetaDataItem name="Name">Jasco Lighting and Small Appliance Module (45703)</MetaDataItem>
+    <MetaDataItem name="Description">Florescent Light and Appliance Module</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1193/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1210/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/ge/12724-dimmer.xml b/Config/ge/12724-dimmer.xml
index cef3a0ac80..a82d0a9689 100644
--- a/Config/ge/12724-dimmer.xml
+++ b/Config/ge/12724-dimmer.xml
@@ -1,37 +1,57 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- GE(Jasco) 12724 3-Way Dimmer Switch -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters - per http://www.ezzwave.com/advanced-operation/ -->
-	<CommandClass id="112">
-		<Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" value="0" size="1">
-			<Help>Sets when the LED on the switch is lit.</Help>
-			<Item label="LED on when light off" value="0" />
-			<Item label="LED on when light on" value="1" />
-			<Item label="LED always off" value="2" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Invert Switch" min="0" max="1" size="1" value="0">
-			<Help>Change the top of the switch to OFF and the bottom of the switch to ON, if the switch was installed upside down.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<!-- Both the number of steps (or levels) that the dimmer will change and the timing of the steps can be modified to suit personal preferences. The timing of the steps can be adjusted in 10 millisecond intervals. As an example, the default setting for parameter 8 is 3. This means that the lighting level will change every 30 milliseconds when the Dim Command is received. A value of 255 would mean that the level would change every 2.55 seconds. Combined, the two parameters allow dim rate adjustments from 10 milliseconds to 4.2 minutes to go from maximum-to-minimum or minimum-to-maximum brightness levels. -->
-		<Value type="byte" index="7" genre="config" label="Z-Wave Command Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="8" genre="config" label="Z-Wave Command Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="Local Control Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="10" genre="config" label="Local Control Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="11" genre="config" label="ALL ON/ALL OFF Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="12" genre="config" label="ALL ON/ALL OFF Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-	</CommandClass>
+<!-- GE(Jasco) 12724 3-Way Dimmer Switch --><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3031:4944</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/12724-dimmer.png</MetaDataItem>
+    <MetaDataItem id="3031" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/1197/</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave Fan Control</MetaDataItem>
+    <MetaDataItem id="3031" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Jasco Fan Speed Control (45743)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ezzwave.com</MetaDataItem>
+    <MetaDataItem id="3031" name="Identifier" type="4944">12724 / ZW3005</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1197/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1201/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1202/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1221/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="3033" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/1201/</MetaDataItem>
+    <MetaDataItem id="3033" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3033" name="Identifier" type="4944">12729 / ZW3004</MetaDataItem>
+    <MetaDataItem id="3034" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/1221/</MetaDataItem>
+    <MetaDataItem id="3034" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3034" name="Identifier" type="4944">45743</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters - per http://www.ezzwave.com/advanced-operation/ -->
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Light" max="2" min="0" size="1" type="list" value="0">
+      <Help>Sets when the LED on the switch is lit.</Help>
+      <Item label="LED on when light off" value="0"/>
+      <Item label="LED on when light on" value="1"/>
+      <Item label="LED always off" value="2"/>
+    </Value>
+    <Value genre="config" index="4" label="Invert Switch" max="1" min="0" size="1" type="list" value="0">
+      <Help>Change the top of the switch to OFF and the bottom of the switch to ON, if the switch was installed upside down.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <!-- Both the number of steps (or levels) that the dimmer will change and the timing of the steps can be modified to suit personal preferences. The timing of the steps can be adjusted in 10 millisecond intervals. As an example, the default setting for parameter 8 is 3. This means that the lighting level will change every 30 milliseconds when the Dim Command is received. A value of 255 would mean that the level would change every 2.55 seconds. Combined, the two parameters allow dim rate adjustments from 10 milliseconds to 4.2 minutes to go from maximum-to-minimum or minimum-to-maximum brightness levels. -->
+    <Value genre="config" index="7" label="Z-Wave Command Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="8" label="Z-Wave Command Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="9" label="Local Control Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="10" label="Local Control Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="11" label="ALL ON/ALL OFF Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="12" label="ALL ON/ALL OFF Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+  </CommandClass>
 </Product>
diff --git a/Config/ge/12727.xml b/Config/ge/12727.xml
new file mode 100644
index 0000000000..913f3adffd
--- /dev/null
+++ b/Config/ge/12727.xml
@@ -0,0 +1,18 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3033:4952</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/12727.png</MetaDataItem>
+    <MetaDataItem id="3033" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/1200/</MetaDataItem>
+    <MetaDataItem id="3033" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">"Transform any home into a smart home with the GE Z-Wave Smart Lighting Control Smart Toggle Switch.  The in-wall GE Z-Wave Smart Lighting Control Toggle Switch replaces your current switch, uses existing wiring and remotely controls the On/Off functions of your permanently installed lighting and ceiling fans. The toggle switch can be used in groups of multiple lights or turned on and off within ambient interior lighting scenes and and provides your home with ultimate flexibility, capable of being used by itself or with up to four GE add-on switching in three, four, five and six-way wiring configurations. Three-way wiring configuration turns the light or appliance on/off from two separate locations. Four-way wiring configuration turns the light or appliance on/off from three separate locations. The GE Z-Wave Smart Lighting Control Toggle Switch is compatible with any Z-Wave certified gateway, providing access to many popular home automation systems and application. Take control of your home lighting with GE Z-Wave Smart Lighting Controls!
+
+Z-Wave is the world’s largest ecosystem of interoperable smart home products. Z-Wave lighting controls provide an easy-to-install and affordable system to control lighting and small appliances in your home. Add GE Z-Wave lighting controls to a Z-Wave certified gateway to access and control your home from anywhere in the world using your smartphone, tablet or computer as a home automation command center. Never worry if you accidentally left the lights on because you can turn them off remotely or program your lights to go on/off at specific times. Create customized lighting scenes for any occasion such as a “go to sleep” scene or a “movie night” scene. Give the illusion that someone is home by programming the lights to turn on/off while you are away—perfect for deterring crime and adding additional security!"
+</MetaDataItem>
+    <MetaDataItem name="Name">GE Z-Wave In-Wall Smart Switch (Toggle)</MetaDataItem>
+    <MetaDataItem id="3033" name="Identifier" type="4952">12727 / ZW4003</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ezzwave.com</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1200/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/ge/14282-plugin-switch.xml b/Config/ge/14282-plugin-switch.xml
index 91ff04ecbe..8ad50ff162 100644
--- a/Config/ge/14282-plugin-switch.xml
+++ b/Config/ge/14282-plugin-switch.xml
@@ -1,26 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 GE Plug-in Smart Switch, Dual Outlet with Simultaneous Control 14282 (ZW4106) 
 http://products.z-wavealliance.org/products/1437
- -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<CommandClass id="112">
-		<Value type="list" index="3" genre="config" label="LED Light" size="1" value="0">
-			<Help>
+ --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3033:5052</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/14282-plugin-switch.png</MetaDataItem>
+    <MetaDataItem id="3033" name="ZWProductPage" type="5052">https://products.z-wavealliance.org/products/1437/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-wave certified controller to include the device to the Z-wave network.
+2. Once the controller is ready to include your smart switch, single press and release the manual/program button on the smart dimmer to include it in the network.
+3. Once your controller has confirmed that the smart switch has been included, refresh the Z-wave network to optimize performance. </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-wave certified controller to exclude a device from the Z-wave network.
+2. Once the controller is ready to Exclude your device, press and release the manual/program button on the smart switch to exclude it from the network. </MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the GE Z-Wave Smart Lighting Control Plug-in Smart Switch. The lighting control enables wireless control of on/off functions for standard table and floor lamps, and is compatible with incandescent, LED, Xenon, Halogen, fluorescent and compact fluorescent bulbs. Easily controlled by your mobile device or computer using any Z-Wave certified gateway, the space-saving horizontal module plugs into a standard wall receptacle without blocking the second outlet or obstructing placement of furniture. It provides two Z-Wave enabled outlets controlled together for 2 lamps or appliances that you would like to. Perfect for 2 lamps or devices on other side of a couch or bed! Take control of your home lighting with GE Z-Wave Smart Lighting Controls!</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. If plugged in, unplug the Switch from the receptacle.
+2. Press and hold the top button for at least 3 seconds while you plug the switch into a receptacle.
+Note: This should only be used in the event your network’s primary controller is missing or otherwise inoperable. </MetaDataItem>
+    <MetaDataItem id="3033" name="Identifier" type="5052">14282 (ZW4106)</MetaDataItem>
+    <MetaDataItem name="Name">Plug-in Smart Switch, Dual Outlet with Simultaneous Control</MetaDataItem>
+    <MetaDataItem id="3033" name="FrequencyName" type="5052">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1437/14282-1 EnFrSp QSG.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1437/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Light" size="1" type="list" value="0">
+      <Help>
 				When shipped from the factory, the LED is set to turn ON when the connected light is turned OFF. 
 				This is the default setting and can be changed if your primary controller supports the node configuration function. 
 				To make the LED turn ON when the light is turned ON, change parameter 3s value to 1. 
 				To turn the LED OFF at all times, change parameter 3s value to 2.
 			</Help>
-			<Item label="LED Light on when Z-Wave turned OFF" value="0" />
-			<Item label="LED Light on when Z-Wave turned ON" value="1" />
-			<Item label="LED Light Always Off" value="2" />
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Lifeline" />
-		</Associations>
-	</CommandClass>
+      <Item label="LED Light on when Z-Wave turned OFF" value="0"/>
+      <Item label="LED Light on when Z-Wave turned ON" value="1"/>
+      <Item label="LED Light Always Off" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/ge/14288-outlet.xml b/Config/ge/14288-outlet.xml
index 8402ec7c94..e611246785 100644
--- a/Config/ge/14288-outlet.xml
+++ b/Config/ge/14288-outlet.xml
@@ -4,7 +4,7 @@
   https://products.z-wavealliance.org/products/2236
 -->
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" size="1" value="1">
diff --git a/Config/ge/14291-switch.xml b/Config/ge/14291-switch.xml
index d7028f5acc..881bf11db8 100644
--- a/Config/ge/14291-switch.xml
+++ b/Config/ge/14291-switch.xml
@@ -1,25 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!-- Configuration Parameters - per https://products.z-wavealliance.org/products/1879 -->
-	<CommandClass id="112">
-		<Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" value="0" size="1">
-			<Help>Sets when the LED on the switch is lit.</Help>
-			<Item label="LED on when light off" value="0" />
-			<Item label="LED on when light on" value="1" />
-			<Item label="LED always off" value="2" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Invert Switch" min="0" max="1" size="1" value="0">
-			<Help>Change the top of the switch to OFF and the bottom of the switch to ON, if the switch was installed upside down.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="5" label="Lifeline" />
-			<Group index="2" max_associations="5" label="Basic - Local Load" />
-			<Group index="3" max_associations="5" label="Basic - Double Tap" />
-		</Associations>
-	</CommandClass>
+<!-- Configuration Parameters - per https://products.z-wavealliance.org/products/1879 --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3036:4952</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/14291-switch.png</MetaDataItem>
+    <MetaDataItem id="3036" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/1438/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-wave certified controller to exclude a device from the Z-wave network.
+2. Once the controller is ready to Exclude your device, press and release the top or bottom of the wireless smart switch(rocker) to exclude it from the network. </MetaDataItem>
+    <MetaDataItem id="3036" name="Identifier" type="4952">14291 (ZW4005)</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the GE Z-Wave Smart Lighting Control In-Wall Smart Switch. The on/off switch replaces your current light switch, uses your existing wiring, and provides Z-Wave wireless and in-wall control of overhead lighting. The switch enables wireless control of on/off functions of direct wire incandescent, LED, xenon, halogen and fluorescent lighting. Providing ultimate flexibility, the GE Z-Wave Smart Lighting Control On/Off Switch allows you to operate the switch by itself or easily integrate the switch with two-way, three-way or four-way wiring configurations by adding the GE Add-On switch. Single pole wiring configuration turns the light or appliance on/off from one location. Three-way wiring configuration turns the light on/off from two separate locations. Four-way wiring configuration turns the light on/off from three separate locations. The GE Add-On Switch is required for Three-way or Four-way installations. The lighting control includes a blue LED indicator light to easily locate the switch in a dark room. Take control of your home lighting with GE Z-Wave Smart Lighting Controls!</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Quickly press ON (Top) button three (3) times then immediately press the OFF (Bottom) button three (3) times. The LED will flash ON/OFF 5 times when completed successfully.
+Note: This should only be used in the event your networks primary controller is missing or otherwise inoperable. </MetaDataItem>
+    <MetaDataItem id="3036" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Smart Switch</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1438/14291-1 EnFrSp QSG.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-wave certified controller to include a device to the Z-wave network.
+2. Once the controller is ready to include your device, press and release the top or bottom of the wireless smart switch(rocker) to include it in the network.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1438/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Light" max="2" min="0" size="1" type="list" value="0">
+      <Help>Sets when the LED on the switch is lit.</Help>
+      <Item label="LED on when light off" value="0"/>
+      <Item label="LED on when light on" value="1"/>
+      <Item label="LED always off" value="2"/>
+    </Value>
+    <Value genre="config" index="4" label="Invert Switch" max="1" min="0" size="1" type="list" value="0">
+      <Help>Change the top of the switch to OFF and the bottom of the switch to ON, if the switch was installed upside down.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Basic - Local Load" max_associations="5"/>
+      <Group index="3" label="Basic - Double Tap" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/ge/14292-toggle-switch.xml b/Config/ge/14292-toggle-switch.xml
index 905a2314a4..4098d3ce35 100644
--- a/Config/ge/14292-toggle-switch.xml
+++ b/Config/ge/14292-toggle-switch.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- Configuration Parameters - per https://products.z-wavealliance.org/products/2502 -->
 	<CommandClass id="112">
 		<Value type="list" index="4" genre="config" label="Invert Switch" min="0" max="1" size="1" value="0">
diff --git a/Config/ge/14294-dimmer.xml b/Config/ge/14294-dimmer.xml
index 913c4001d4..4553e21c9c 100644
--- a/Config/ge/14294-dimmer.xml
+++ b/Config/ge/14294-dimmer.xml
@@ -1,45 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- GE(Jasco) 14294 Z-Wave Plus Dimmer Switch -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters - per https://products.z-wavealliance.org/products/2105 -->
-	<CommandClass id="112">
-		<Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" value="0" size="1">
-			<Help>Sets when the LED on the switch is lit.</Help>
-			<Item label="LED on when light off" value="0" />
-			<Item label="LED on when light on" value="1" />
-			<Item label="LED always off" value="2" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Invert Switch" min="0" max="1" size="1" value="0">
-			<Help>Change the top of the switch to OFF and the bottom of the switch to ON, if the switch was installed upside down.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<!-- Both the number of steps (or levels) that the dimmer will change and the timing of the steps can be modified to suit personal preferences. The timing of the steps can be adjusted in 10 millisecond intervals. As an example, the default setting for parameter 8 is 3. This means that the lighting level will change every 30 milliseconds when the Dim Command is received. A value of 255 would mean that the level would change every 2.55 seconds. Combined, the two parameters allow dim rate adjustments from 10 milliseconds to 4.2 minutes to go from maximum-to-minimum or minimum-to-maximum brightness levels. -->
-		<Value type="byte" index="7" genre="config" label="Z-Wave Command Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="short" index="8" genre="config" label="Z-Wave Command Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="Local Control Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="short" index="10" genre="config" label="Local Control Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="11" genre="config" label="ALL ON/ALL OFF Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="short" index="12" genre="config" label="ALL ON/ALL OFF Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="5" label="Lifeline" />
-			<Group index="2" max_associations="5" label="Basic - Load" />
-			<Group index="3" max_associations="5" label="Basic - Double Tap" />
-		</Associations>
-	</CommandClass>
+<!-- GE(Jasco) 14294 Z-Wave Plus Dimmer Switch --><!-- Configuration Parameters - per
+             http://products.z-wavealliance.org/products/1442 --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3038:4944</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/14294-dimmer.png</MetaDataItem>
+    <MetaDataItem id="3038" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/1442/</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Smart Dimmer</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1442/14294-1 EnSpFr QSG.pdf</MetaDataItem>
+    <MetaDataItem id="3038" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Quickly press ON (Top) button three (3) times then immediately press the OFF (Bottom) button three (3) times. The LED will flash ON/OFF 5 times when completed successfully.
+Note: This should only be used in the event your networks primary controller is missing or otherwise inoperable. </MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-wave certified controller to include a device to the Z-wave network.
+2. Once the controller is ready to include your device, press and release the top or bottom of the wireless smart switch(rocker) to include it in the network.</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the GE Z-Wave Wireless Lighting Control In-Wall Smart Dimmer. The dimmer enables wireless control of on/off and dim functions of hard-wired dimmable LED/CFL and incandescent lighting. The dimmer replaces your current light switch, uses your existing wiring, and provides Z-Wave wireless and in-wall control of overhead lighting. Use the dimmer feature to customize the lighting output and create the perfect ambiance for any room. Providing ultimate flexibility, the In-Wall Smart Dimmer allows you to operate the switch by itself or easily integrate the switch three-way or four-way wiring configurations by adding the GE Add-On Switch. Single Pole wiring configuration controls the light from one location. Three-way wiring configuration controls the light from two separate locations. Four-way wiring configuration controls the light from three separate locations. The GE Add-On Switch is required for three-way or four-way installations. The dimmer includes an LED indicator light to easily locate the switch in a dark room. Take control of your home lighting with GE Z-Wave Wireless Lighting Controls!</MetaDataItem>
+    <MetaDataItem id="3038" name="Identifier" type="4944">14294 (ZW3005)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-wave certified controller to exclude a device from the Z-wave network.
+2. Once the controller is ready to Exclude your device, press and release the top or bottom of the wireless smart switch(rocker) to exclude it from the network. </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1442/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Light" max="2" min="0" size="1" type="list" value="0">
+      <Help>Sets when the LED on the switch is lit.</Help>
+      <Item label="LED on when light off" value="0"/>
+      <Item label="LED on when light on" value="1"/>
+      <Item label="LED always off" value="2"/>
+    </Value>
+    <Value genre="config" index="4" label="Invert Switch" max="1" min="0" size="1" type="list" value="0">
+      <Help>Change the top of the switch to OFF and the bottom of the switch to ON, if the switch was installed upside down.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <!-- Both the number of steps (or levels) that the dimmer will change and the timing of the steps can be modified to suit personal preferences. The timing of the steps can be adjusted in 10 millisecond intervals. As an example, the default setting for parameter 8 is 3. This means that the lighting level will change every 30 milliseconds when the Dim Command is received. A value of 255 would mean that the level would change every 2.55 seconds. Combined, the two parameters allow dim rate adjustments from 10 milliseconds to 4.2 minutes to go from maximum-to-minimum or minimum-to-maximum brightness levels. -->
+    <Value genre="config" index="7" label="Z-Wave Command Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="8" label="Z-Wave Command Dim Rate" max="255" min="1" type="short" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="9" label="Local Control Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="10" label="Local Control Dim Rate" max="255" min="1" type="short" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="11" label="ALL ON/ALL OFF Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="12" label="ALL ON/ALL OFF Dim Rate" max="255" min="1" type="short" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Basic - Load" max_associations="5"/>
+      <Group index="3" label="Basic - Double Tap" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/ge/14295-dimmer-toggle.xml b/Config/ge/14295-dimmer-toggle.xml
index db7f3d2c77..190d968f2c 100644
--- a/Config/ge/14295-dimmer-toggle.xml
+++ b/Config/ge/14295-dimmer-toggle.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- GE(Jasco) 14295 Z-Wave Plus Toggle Dimmer Switch -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters - per https://products.z-wavealliance.org/products/2048 -->
 	<CommandClass id="112">
 		<Value type="list" index="4" genre="config" label="Invert Switch" min="0" max="1" size="1" value="0">
diff --git a/Config/ge/26931-motion-switch.xml b/Config/ge/26931-motion-switch.xml
index ea0380947f..a34d5ff3d9 100644
--- a/Config/ge/26931-motion-switch.xml
+++ b/Config/ge/26931-motion-switch.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- GE(Jasco) 26931 Z-Wave Plus Smart Motion Switch -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters - per http://products.z-wavealliance.org/products/2035 -->
 	<CommandClass id="112">
 		<Value type="list" index="1" genre="config" label="Timeout Duration" min="0" max="255" value="5" size="1">
diff --git a/Config/ge/26933-motion-dimmer.xml b/Config/ge/26933-motion-dimmer.xml
index 5a649e8ad1..2d7d41e469 100644
--- a/Config/ge/26933-motion-dimmer.xml
+++ b/Config/ge/26933-motion-dimmer.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- GE(Jasco) 26933 Z-Wave Plus Smart Motion Dimmer -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters - per http://products.z-wavealliance.org/products/2108 -->
 	<CommandClass id="112">
 		<Value type="list" index="1" genre="config" label="Timeout Duration" min="0" max="255" value="5" size="1">
diff --git a/Config/ge/28167-plugin-dimmer.xml b/Config/ge/28167-plugin-dimmer.xml
index 320f7809e0..25ba4b24b1 100644
--- a/Config/ge/28167-plugin-dimmer.xml
+++ b/Config/ge/28167-plugin-dimmer.xml
@@ -1,5 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3038:5044</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/28167-plugin-dimmer.png</MetaDataItem>
+    <MetaDataItem id="3038" name="ZWProductPage" type="5044">https://products.z-wavealliance.org/products/1433/</MetaDataItem>
+    <MetaDataItem id="3038" name="FrequencyName" type="5044">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Plug-in Smart Dimmer (Single Plug)</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-wave certified controller to include the device to the Z-wave network.
+2. Once the controller is ready to include your smart switch, single press and release the manual/program button on the smart dimmer to include it in the network.</MetaDataItem>
+    <MetaDataItem id="3038" name="Identifier" type="5044">28167 (ZW3104)</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1433/28167-1 EnFrSp QSG.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. If plugged in, unplug the Switch from the receptacle.
+2. Press and hold the top button for at least 3 seconds while you plug the switch into a receptacle.
+Note: This should only be used in the event your network’s primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the GE Z-Wave Smart Lighting Control Plug-in Smart Dimmer. The lamp module enables wireless control of on/off and dim functions for standard incandescent table and floor lamps, as well as dimmable fluorescent, LED and CFL fixtures and more! Use the dimmer control to customize the lighting output and create the perfect ambiance for any room. The space-saving horizontal module plugs into a standard wall receptacle without blocking the second outlet or obstructing placement of furniture. The Dimmer provides one Z-Wave enabled outlet for the lamp you would like to control. Take control of your home lighting with GE Z-Wave Smart Lighting Controls!</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-wave certified controller to exclude a device from the Z-wave network.
+2. Once the controller is ready to Exclude your device, press and release the manual/program button on the smart switch to exclude it from the network.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1433/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!--
 
 There are multiple sources of information for this product:
@@ -11,11 +30,11 @@ There are multiple sources of information for this product:
 The sources above contradict each other on multiple points.
   -->
   <CommandClass id="112">
-    <Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" value="1" size="1">
+    <Value genre="config" index="3" label="LED Light" max="2" min="0" size="1" type="list" value="1">
       <Help>Sets when the LED on the switch is lit.</Help>
-      <Item label="LED on when light off" value="0" />
-      <Item label="LED on when light on" value="1" />
-      <Item label="LED always off" value="2" />
+      <Item label="LED on when light off" value="0"/>
+      <Item label="LED on when light on" value="1"/>
+      <Item label="LED always off" value="2"/>
     </Value>
     <!--
 
@@ -35,28 +54,28 @@ defined in this database and adopted the descriptions and explanations that fit
 best with the observed behavior.
 
     -->
-    <Value type="byte" index="7" genre="config" label="Z-Wave Command Dim Step" units="" min="1" max="99" value="1">
+    <Value genre="config" index="7" label="Z-Wave Command Dim Step" max="99" min="1" type="byte" units="" value="1">
       <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
     </Value>
-    <Value type="short" index="8" genre="config" label="Z-Wave Command Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
+    <Value genre="config" index="8" label="Z-Wave Command Dim Rate" max="255" min="1" type="short" units="x 10 milliseconds" value="3">
       <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
     </Value>
-    <Value type="byte" index="9" genre="config" label="Local Control Dim Step" units="" min="1" max="99" value="1">
+    <Value genre="config" index="9" label="Local Control Dim Step" max="99" min="1" type="byte" units="" value="1">
       <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
     </Value>
-    <Value type="short" index="10" genre="config" label="Local Control Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
+    <Value genre="config" index="10" label="Local Control Dim Rate" max="255" min="1" type="short" units="x 10 milliseconds" value="3">
       <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
     </Value>
-    <Value type="byte" index="11" genre="config" label="ALL ON/ALL OFF Dim Step" units="" min="1" max="99" value="1">
+    <Value genre="config" index="11" label="ALL ON/ALL OFF Dim Step" max="99" min="1" type="byte" units="" value="1">
       <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
     </Value>
-    <Value type="short" index="12" genre="config" label="ALL ON/ALL OFF Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
+    <Value genre="config" index="12" label="ALL ON/ALL OFF Dim Rate" max="255" min="1" type="short" units="x 10 milliseconds" value="3">
       <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
     </Value>
   </CommandClass>
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="1" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/ge/28169-plugin-switch.xml b/Config/ge/28169-plugin-switch.xml
index 7dae053075..23927fc32f 100644
--- a/Config/ge/28169-plugin-switch.xml
+++ b/Config/ge/28169-plugin-switch.xml
@@ -1,26 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 GE Plug-in Smart Switch, Single Outlet 28169
 http://products.z-wavealliance.org/products/2533
- -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<CommandClass id="112">
-		<Value type="list" index="3" genre="config" label="LED Light" size="1" value="0">
-			<Help>
+ --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3038:5052</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/28169-plugin-switch.png</MetaDataItem>
+    <MetaDataItem id="3038" name="ZWProductPage" type="5052">https://products.z-wavealliance.org/products/1435/</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the Jasco Z-Wave Smart Lighting Plug-in Smart Switch. The lighting control enables wireless control of on/off functions for standard table and floor lamps, and is compatible with incandescent, LED, Xenon, Halogen, fluorescent and compact fluorescent bulbs. Easily controlled by your mobile device or computer using any Z-Wave certified gateway, the space-saving horizontal module plugs into a standard wall receptacle without blocking the second outlet or obstructing placement of furniture. It provides a Z-Wave enabled outlet for the lamp or appliance that you would like to control. Perfect for plug-in fans, heaters, lamps and more! Take control of your home lighting with Jasco Z-Wave Smart Lighting Controls!</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-wave certified controller to include the device to the Z-wave network.
+2. Once the controller is ready to include your smart switch, single press and release the manual/program button on the smart dimmer to include it in the network.
+3. Once your controller has confirmed that the smart switch has been included, refresh the Z-wave network to optimize performance. </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-wave certified controller to exclude a device from the Z-wave network.
+2. Once the controller is ready to Exclude your device, press and release the manual/program button on the smart switch to exclude it from the network. </MetaDataItem>
+    <MetaDataItem id="3038" name="Identifier" type="5052">28169 (ZW4103)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. If plugged in, unplug the Switch from the receptacle.
+2. Press and hold the top button for at least 3 seconds while you plug the switch into a receptacle.
+Note: This should only be used in the event your network’s primary controller is missing or otherwise inoperable. </MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1435/28169-1 EnFrSp QSG.pdf</MetaDataItem>
+    <MetaDataItem id="3038" name="FrequencyName" type="5052">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Plug-in Smart Switch (Single Plug)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1435/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Light" size="1" type="list" value="0">
+      <Help>
 				When shipped from the factory, the LED is set to turn ON when the connected light is turned OFF. 
 				This is the default setting and can be changed if your primary controller supports the node configuration function. 
 				To make the LED turn ON when the light is turned ON, change parameter 3s value to 1. 
 				To turn the LED OFF at all times, change parameter 3s value to 2.
 			</Help>
-			<Item label="LED Light on when Z-Wave turned OFF" value="0" />
-			<Item label="LED Light on when Z-Wave turned ON" value="1" />
-			<Item label="LED Light Always Off" value="2" />
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Lifeline" />
-		</Associations>
-	</CommandClass>
+      <Item label="LED Light on when Z-Wave turned OFF" value="0"/>
+      <Item label="LED Light on when Z-Wave turned ON" value="1"/>
+      <Item label="LED Light Always Off" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/ge/45604.xml b/Config/ge/45604.xml
new file mode 100644
index 0000000000..b756c23a22
--- /dev/null
+++ b/Config/ge/45604.xml
@@ -0,0 +1,30 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3030:5250</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/45604.png</MetaDataItem>
+    <MetaDataItem id="3030" name="ZWProductPage" type="5250">https://products.z-wavealliance.org/products/671/</MetaDataItem>
+    <MetaDataItem name="Name"> Appliance Module for Schlage</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.nexiahome.com/SupportCenter/Pages/supportcenter.aspx?page=support</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.nexiahome.com/Products/ProductDetail.aspx?model=043156296347</MetaDataItem>
+    <MetaDataItem id="3030" name="FrequencyName" type="5250">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">Schlage It’s easy to remotely operate appliances, lamps and other electronics with Nexia™ Home Intelligence and this simple plug-in module. A Nexia outlet on one end and a regular outlet on the other end mean you don’t sacrifice any plug-in space for your other electrical devices. Nexia makes it easy to manage lights and many other plug-in devices from most web-connected computers, tablets or smart phones.
+ 
+
+·         Remote control appliance module is plug-in simple in any AC outlet.
+·         Activate incandescent and fluorescent floor and table lamps alike.
+·         Remotely operate or schedule small compatible appliances too—like fans, video games and stereo components—by plugging into the Nexia compatible module.
+·         Use Nexia to easily set lighting schedules, creating the appearance that someone’s home when the house is empty.
+·         On your way home, make lights come on to greet you.
+·         Forget to turn off a light? Pick up your smart phone and save electricity with one touch.
+·         Set Nexia to conveniently turn on lights when you enter your access code on your Schlage Home Keypad Lock.
+ 
+ 
+Remote management with a Nexia™ Home Intelligence system requires the Nexia Bridge and a monthly subscription of $8.99.</MetaDataItem>
+    <MetaDataItem id="3030" name="Identifier" type="5250">043156296347</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/655/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/671/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/ge/dimmer.xml b/Config/ge/dimmer.xml
index 2dd655bf13..4328aaa3e6 100644
--- a/Config/ge/dimmer.xml
+++ b/Config/ge/dimmer.xml
@@ -1,40 +1,65 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="3" genre="config" label="Night Light" size="1" value="0">
-			<Help>In night-light mode the LED on the switch will turn ON when the switch is turned OFF.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Invert Switch" size="1" value="0">
-			<Help>Change the top of the switch to OFF and the bottom of the switch to ON. Note: If you invert the switches and also install the product upside down, remember the load will now be controlled by the right, not the left switch.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="5" genre="config" label="Ignore Start-Level (Receiving)" size="1" value="1">
-			<Help>This dimmer will start dimming from its current level.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="byte" index="7" genre="config" label="On/Off Command Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="8" genre="config" label="On/Off Command Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="Local Control Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="10" genre="config" label="Local Control Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="11" genre="config" label="ALL ON/ALL OFF Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="12" genre="config" label="ALL ON/ALL OFF Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-	</CommandClass>
+<Product Revision="15" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3230:4457</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/dimmer.png</MetaDataItem>
+    <MetaDataItem id="3230" name="ZWProductPage" type="4457">https://products.z-wavealliance.org/products/1223/</MetaDataItem>
+    <MetaDataItem id="3230" name="FrequencyName" type="4457">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.jascoproducts.com/support/</MetaDataItem>
+    <MetaDataItem id="3230" name="Identifier" type="4457">45762</MetaDataItem>
+    <MetaDataItem name="Description">3-way toggle style in-wall dimmer - light almond colo</MetaDataItem>
+    <MetaDataItem name="Name">Jasco In-Wall Dimmer, Toggle, Almond (45762)</MetaDataItem>
+    <MetaDataItem name="ProductPage">www.ezzwave.com</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/293/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/654/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/842/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/844/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/846/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/856/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/893/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="9">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/894/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="10">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1214/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="11">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1215/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="12">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1216/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="13">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1217/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="14">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1220/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="15">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1223/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="Night Light" size="1" type="list" value="0">
+      <Help>In night-light mode the LED on the switch will turn ON when the switch is turned OFF.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Invert Switch" size="1" type="list" value="0">
+      <Help>Change the top of the switch to OFF and the bottom of the switch to ON. Note: If you invert the switches and also install the product upside down, remember the load will now be controlled by the right, not the left switch.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Ignore Start-Level (Receiving)" size="1" type="list" value="1">
+      <Help>This dimmer will start dimming from its current level.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="7" label="On/Off Command Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="8" label="On/Off Command Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="9" label="Local Control Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="10" label="Local Control Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="11" label="ALL ON/ALL OFF Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="12" label="ALL ON/ALL OFF Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+  </CommandClass>
 </Product>
-
diff --git a/Config/ge/dimmer_module.xml b/Config/ge/dimmer_module.xml
index 937a5056c0..2946ec085a 100644
--- a/Config/ge/dimmer_module.xml
+++ b/Config/ge/dimmer_module.xml
@@ -1,35 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="29" genre="config" label="Load Sensing" size="1" value="0">
-			<Help>Turn on the module when the attached load is connected</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="5" genre="config" label="Ignore Start-Level (Receiving)" size="1" value="1">
-			<Help>This dimmer will start dimming from its current level.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="byte" index="7" genre="config" label="On/Off Command Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="8" genre="config" label="On/Off Command Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="Local Control Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="10" genre="config" label="Local Control Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-		<Value type="byte" index="11" genre="config" label="ALL ON/ALL OFF Dim Step" units="" min="1" max="99" value="1">
-			<Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
-		</Value>
-		<Value type="byte" index="12" genre="config" label="ALL ON/ALL OFF Dim Rate" units="x 10 milliseconds" min="1" max="255" value="3">
-			<Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
-		</Value>
-	</CommandClass>
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3030:4450</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/dimmer_module.png</MetaDataItem>
+    <MetaDataItem id="3030" name="ZWProductPage" type="4450">https://products.z-wavealliance.org/products/1209/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ezzwave.com</MetaDataItem>
+    <MetaDataItem id="3030" name="Identifier" type="4450">45702/ZW3103</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://nexiahome.com/SupportCenter/Pages/supportcenter.aspx?page=suppor</MetaDataItem>
+    <MetaDataItem id="3030" name="FrequencyName" type="4450">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">RF controlled, plug-in dimmer</MetaDataItem>
+    <MetaDataItem name="Name">Jasco lamp module 45702</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/672/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/726/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/888/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1191/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1209/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="3031" name="ZWProductPage" type="5044">https://products.z-wavealliance.org/products/1191/</MetaDataItem>
+    <MetaDataItem id="3031" name="Identifier" type="5044">12718/ZW3101</MetaDataItem>
+    <MetaDataItem id="3031" name="FrequencyName" type="5044">U.S. / Canada / Mexico</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="29" label="Load Sensing" size="1" type="list" value="0">
+      <Help>Turn on the module when the attached load is connected</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Ignore Start-Level (Receiving)" size="1" type="list" value="1">
+      <Help>This dimmer will start dimming from its current level.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="7" label="On/Off Command Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="8" label="On/Off Command Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="9" label="Local Control Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="10" label="Local Control Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+    <Value genre="config" index="11" label="ALL ON/ALL OFF Dim Step" max="99" min="1" type="byte" units="" value="1">
+      <Help>Indicates how many levels the dimmer will change for each dimming step.</Help>
+    </Value>
+    <Value genre="config" index="12" label="ALL ON/ALL OFF Dim Rate" max="255" min="1" type="byte" units="x 10 milliseconds" value="3">
+      <Help>This value indicates in 10 millisecond resolution, how often the dim level will change. For example, if you set this parameter to 1, then every 10ms the dim level will change. If you set it to 255, then every 2.55 seconds the dim level will change.</Help>
+    </Value>
+  </CommandClass>
 </Product>
-
diff --git a/Config/ge/hinge-pin.xml b/Config/ge/hinge-pin.xml
index 0fc5adf0a2..6005c0cad8 100644
--- a/Config/ge/hinge-pin.xml
+++ b/Config/ge/hinge-pin.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="20" genre="config" label="Change Open/Close Report Method" size="1" value="1">
diff --git a/Config/ge/receptacle.xml b/Config/ge/receptacle.xml
index f8804da976..d3b7dbc71a 100644
--- a/Config/ge/receptacle.xml
+++ b/Config/ge/receptacle.xml
@@ -1,13 +1,31 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" size="1" value="0">
-			<Help>Sets when the LED on the outlet is lit.</Help>
-			<Item label="LED on when outlet off" value="0" />
-			<Item label="LED on when outlet on" value="1" />
-			<Item label="LED always off" value="2" />
-		</Value>
-	</CommandClass>
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3530:5252</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/receptacle.png</MetaDataItem>
+    <MetaDataItem id="3530" name="ZWProductPage" type="5252">https://products.z-wavealliance.org/products/724/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.jascoproducts.com/support/</MetaDataItem>
+    <MetaDataItem name="Description">Duplex Receptacle</MetaDataItem>
+    <MetaDataItem id="3530" name="FrequencyName" type="5252">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ezzwave.com</MetaDataItem>
+    <MetaDataItem name="Name">Jasco Z-Wave Duplex Receptacle/Outlet</MetaDataItem>
+    <MetaDataItem id="3530" name="Identifier" type="5252">45636/ZW1001</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/657/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/724/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1195/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1212/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="3031" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/1212/</MetaDataItem>
+    <MetaDataItem id="3031" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3031" name="Identifier" type="4952">45705</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Light" max="2" min="0" size="1" type="list" value="0">
+      <Help>Sets when the LED on the outlet is lit.</Help>
+      <Item label="LED on when outlet off" value="0"/>
+      <Item label="LED on when outlet on" value="1"/>
+      <Item label="LED always off" value="2"/>
+    </Value>
+  </CommandClass>
 </Product>
-
diff --git a/Config/ge/relay.xml b/Config/ge/relay.xml
index 091bac6a83..2800015595 100644
--- a/Config/ge/relay.xml
+++ b/Config/ge/relay.xml
@@ -1,18 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-	  	<Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" value="0" size="1">
-			<Help>Sets when the LED on the switch is lit.</Help>
-			<Item label="LED on when light off" value="0" />
-			<Item label="LED on when light on" value="1" />
-			<Item label="LED always off" value="2" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Invert Switch" size="1" value="0">
-			<Help>Change the top of the switch to OFF and the bottom of the switch to ON.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-	</CommandClass>
+<Product Revision="10" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3533:5257</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/relay.png</MetaDataItem>
+    <MetaDataItem id="3533" name="ZWProductPage" type="5257">https://products.z-wavealliance.org/products/1222/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ezzwave.com</MetaDataItem>
+    <MetaDataItem name="Description">3-way relay wall switch - Toggle Style - light almond color</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.jascoproducts.com/support/</MetaDataItem>
+    <MetaDataItem id="3533" name="Identifier" type="5257">45760</MetaDataItem>
+    <MetaDataItem name="Name">Jasco In-Wall ON/OFF, Toggle, Almond (45760)</MetaDataItem>
+    <MetaDataItem id="3533" name="FrequencyName" type="5257">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/653/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/725/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/841/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/845/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1196/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1213/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="9">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1219/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="10">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1222/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="3032" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/1196/</MetaDataItem>
+    <MetaDataItem id="3032" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3032" name="Identifier" type="4952">12722 / ZW4005</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Light" max="2" min="0" size="1" type="list" value="0">
+      <Help>Sets when the LED on the switch is lit.</Help>
+      <Item label="LED on when light off" value="0"/>
+      <Item label="LED on when light on" value="1"/>
+      <Item label="LED always off" value="2"/>
+    </Value>
+    <Value genre="config" index="4" label="Invert Switch" size="1" type="list" value="0">
+      <Help>Change the top of the switch to OFF and the bottom of the switch to ON.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+  </CommandClass>
 </Product>
-
diff --git a/Config/ge/ze26i.xml b/Config/ge/ze26i.xml
index 4d60382d1d..52f1c417d4 100644
--- a/Config/ge/ze26i.xml
+++ b/Config/ge/ze26i.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- GE/Jasco Smart LED Light Bulb ZE26I -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
   <!-- Configuration -->
   <CommandClass id="112">
     <Value type="list" index="1" genre="config" label="Dim level when light is turned ON" units="" min="0" max="1" size="1" value="0">
diff --git a/Config/ge/zw4001-switch.xml b/Config/ge/zw4001-switch.xml
index 2e5021b92d..1ee507de97 100644
--- a/Config/ge/zw4001-switch.xml
+++ b/Config/ge/zw4001-switch.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- http://www.ezzwave.com/advanced-operation/ -->
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
diff --git a/Config/ge/zw6302.xml b/Config/ge/zw6302.xml
index 6bd9d6941d..cf039130f2 100644
--- a/Config/ge/zw6302.xml
+++ b/Config/ge/zw6302.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!--
 GE/Jasco ZW6302 Portable Smart Motion Sensor
 https://products.z-wavealliance.org/products/1902
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
     <!-- Configuration -->
     <CommandClass id="112">
         <Value type="list" index="13" genre="config" label="PIR Sensitivity Setting" units="" min="1" max="3" size="1" value="3">
diff --git a/Config/gocontrol/GC-TBZ48L.xml b/Config/gocontrol/GC-TBZ48L.xml
index 0800dd1ec1..b5dfee55b1 100644
--- a/Config/gocontrol/GC-TBZ48L.xml
+++ b/Config/gocontrol/GC-TBZ48L.xml
@@ -1,275 +1,276 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns="http://code.google.com/p/open-zwave/">
-  <CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
-    <Instance index="1" />
-    <Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" read_only="false" write_only="false" />
-    <Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" read_only="false" write_only="false" />
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heating 1" read_only="false" type="decimal" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Cooling 1" read_only="false" type="decimal" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
   </CommandClass>
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="System Type" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="1" label="System Type" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = Standard, 1 = Heat Pump
       </Help>
-      <Item label="Standard" value="0" />
-      <Item label="Heat Pump" value="1" />
+      <Item label="Standard" value="0"/>
+      <Item label="Heat Pump" value="1"/>
     </Value>
-    <Value type="list" index="2" genre="config" label="Fan Type" units="fahrenheit" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="2" label="Fan Type" max="1" min="0" size="1" type="list" units="fahrenheit" value="0">
       <Help>
         0 = Gas (no fan w/Heat), 1 = Electric (Fan w/Heat)
       </Help>
-      <Item label="Gas" value="0" />
-      <Item label="Electric" value="1" />
+      <Item label="Gas" value="0"/>
+      <Item label="Electric" value="1"/>
     </Value>
-    <Value type="list" index="3" genre="config" label="Change Over Type" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="3" label="Change Over Type" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = w/Cool, 1 = w/Heat
       </Help>
-      <Item label="w/Cool" value="0" />
-      <Item label="w/Heat" value="1" />
+      <Item label="w/Cool" value="0"/>
+      <Item label="w/Heat" value="1"/>
     </Value>
-    <Value type="list" index="4" genre="config" label="2nd Stage Heat Enable" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="4" label="2nd Stage Heat Enable" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = no 2nd stage heat, 1 = 2nd stage heat
       </Help>
-      <Item label="w/Cool" value="0" />
-      <Item label="w/Heat" value="1" />
+      <Item label="w/Cool" value="0"/>
+      <Item label="w/Heat" value="1"/>
     </Value>
-    <Value type="list" index="5" genre="config" label="Aux Heat Enable" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="5" label="Aux Heat Enable" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = no aux heat, 1 = aux heat enabled
       </Help>
-      <Item label="Disabled" value="0" />
-      <Item label="Enabled" value="1" />
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="6" genre="config" label="2nd Stage Cool Enable" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="6" label="2nd Stage Cool Enable" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = no 2nd stage cool, 1 = 2nd stage cool
       </Help>
-      <Item label="Disabled" value="0" />
-      <Item label="Enabled" value="1" />
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="7" genre="config" label="Temperature Unit" units="" min="0" max="1" value="1" size="1">
+    <Value genre="config" index="7" label="Temperature Unit" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>
         0 = Celsius, 1 = Fahrenheit
       </Help>
-      <Item label="Celsius" value="0" />
-      <Item label="Fahrenheit" value="1" />
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
     </Value>
-    <Value type="byte" index="8" genre="config" label="Minimum Off Time" units="minutes" min="5" max="9" value="5" size="1">
+    <Value genre="config" index="8" label="Minimum Off Time" max="9" min="5" size="1" type="byte" units="minutes" value="5">
       <Help>
         Sets the Minimum Off Time (MOT) delay before another heating/cooling cycle can begin
       </Help>
     </Value>
-    <Value type="byte" index="9" genre="config" label="Minimum Run Time" units="minutes" min="3" max="9" value="3" size="1">
+    <Value genre="config" index="9" label="Minimum Run Time" max="9" min="3" size="1" type="byte" units="minutes" value="3">
       <Help>
         Sets the Minimum Run Time (MRT) delay before a heating/cooling cycle can turn of
       </Help>
     </Value>
-    <Value type="byte" index="10" genre="config" label="Setpoint H/C Delta" units="fahrenheit" min="3" max="15" value="3" size="1">
+    <Value genre="config" index="10" label="Setpoint H/C Delta" max="15" min="3" size="1" type="byte" units="fahrenheit" value="3">
       <Help>
         Sets the minimum separation between heating and cooling setpoints
       </Help>
     </Value>
-    <Value type="byte" index="11" genre="config" label="H Delta Stage 1 ON" units="fahrenheit" min="1" max="6" value="1" size="1">
+    <Value genre="config" index="11" label="H Delta Stage 1 ON" max="6" min="1" size="1" type="byte" units="fahrenheit" value="1">
       <Help>
         Sets the delta from setpoint that stage 1 heating starts
       </Help>
     </Value>
-    <Value type="byte" index="12" genre="config" label="H Delta Stage 1 OFF" units="fahrenheit" min="0" max="5" value="0" size="1">
+    <Value genre="config" index="12" label="H Delta Stage 1 OFF" max="5" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delta from setpoint that stage 1 heating stops
       </Help>
     </Value>
-    <Value type="byte" index="13" genre="config" label="H Delta Stage 2 ON" units="fahrenheit" min="2" max="7" value="2" size="1">
+    <Value genre="config" index="13" label="H Delta Stage 2 ON" max="7" min="2" size="1" type="byte" units="fahrenheit" value="2">
       <Help>
         Sets the delta from setpoint that stage 2 heating starts
       </Help>
     </Value>
-    <Value type="byte" index="14" genre="config" label="H Delta Stage 2 OFF" units="fahrenheit" min="0" max="6" value="0" size="1">
+    <Value genre="config" index="14" label="H Delta Stage 2 OFF" max="6" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delay from setpoint that stage 2 heating stops
       </Help>
     </Value>
-    <Value type="byte" index="15" genre="config" label="H Delta Aux ON" units="fahrenheit" min="3" max="8" value="3" size="1">
+    <Value genre="config" index="15" label="H Delta Aux ON" max="8" min="3" size="1" type="byte" units="fahrenheit" value="3">
       <Help>
         Sets the delta from setpoint that stage 3 heating starts
       </Help>
     </Value>
-    <Value type="byte" index="16" genre="config" label="H Delta Stage 2 OFF" units="fahrenheit" min="0" max="7" value="0" size="1">
+    <Value genre="config" index="16" label="H Delta Stage 2 OFF" max="7" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delta from setpoint that stage 3 heating stops
       </Help>
     </Value>
-    <Value type="byte" index="17" genre="config" label="C Delta Stage 1 ON" units="fahrenheit" min="1" max="6" value="1" size="1">
+    <Value genre="config" index="17" label="C Delta Stage 1 ON" max="6" min="1" size="1" type="byte" units="fahrenheit" value="1">
       <Help>
         Sets the delta from setpoint that stage 1 cooling starts
       </Help>
     </Value>
-    <Value type="byte" index="18" genre="config" label="C Delta Stage 1 OFF" units="fahrenheit" min="0" max="5" value="0" size="1">
+    <Value genre="config" index="18" label="C Delta Stage 1 OFF" max="5" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delta from setpoint that stage 1 cooling stops
       </Help>
     </Value>
-    <Value type="byte" index="19" genre="config" label="C Delta Stage 2 ON" units="fahrenheit" min="2" max="7" value="2" size="1">
+    <Value genre="config" index="19" label="C Delta Stage 2 ON" max="7" min="2" size="1" type="byte" units="fahrenheit" value="2">
       <Help>
         Sets the delta from setpoint that stage 2 cooling starts
       </Help>
     </Value>
-    <Value type="byte" index="20" genre="config" label="C Delta Stage 2 OFF" units="fahrenheit" min="0" max="6" value="0" size="1">
+    <Value genre="config" index="20" label="C Delta Stage 2 OFF" max="6" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delta from setpoint that stage 2 cooling stops
       </Help>
     </Value>
-    <Value type="list" index="21" genre="config" label="Mechanical Status" units="" min="1" max="256" size="2">
+    <Value genre="config" index="21" label="Mechanical Status" max="256" min="1" size="2" type="list" units="">
       <Help>
         Mechanical Status
       </Help>
-      <Item label="MECH_H1" value="1" />
-      <Item label="MECH_H2" value="2" />
-      <Item label="MECH_H3" value="4" />
-      <Item label="MECH_C1" value="8" />
-      <Item label="MECH_C2" value="16" />
-      <Item label="PHANTOM_F" value="32" />
-      <Item label="MECH_F" value="64" />
-      <Item label="MANUAL_F" value="128" />
-      <Item label="reserved" value="256" />
+      <Item label="MECH_H1" value="1"/>
+      <Item label="MECH_H2" value="2"/>
+      <Item label="MECH_H3" value="4"/>
+      <Item label="MECH_C1" value="8"/>
+      <Item label="MECH_C2" value="16"/>
+      <Item label="PHANTOM_F" value="32"/>
+      <Item label="MECH_F" value="64"/>
+      <Item label="MANUAL_F" value="128"/>
+      <Item label="reserved" value="256"/>
     </Value>
-    <Value type="list" index="22" genre="config" label="SCP Status" units="" min="1" max="128" size="1">
+    <Value genre="config" index="22" label="SCP Status" max="128" min="1" size="1" type="list" units="">
       <Help>
         SCP Status
       </Help>
-      <Item label="STATE_HEAT" value="1" />
-      <Item label="STATE_COOL" value="2" />
-      <Item label="STATE_2ND" value="4" />
-      <Item label="STATE_3RD" value="8" />
-      <Item label="STATE_FAN" value="16" />
-      <Item label="STATE_LAST" value="32" />
-      <Item label="STATE_MOT" value="64" />
-      <Item label="STATE_MRT" value="128" />
+      <Item label="STATE_HEAT" value="1"/>
+      <Item label="STATE_COOL" value="2"/>
+      <Item label="STATE_2ND" value="4"/>
+      <Item label="STATE_3RD" value="8"/>
+      <Item label="STATE_FAN" value="16"/>
+      <Item label="STATE_LAST" value="32"/>
+      <Item label="STATE_MOT" value="64"/>
+      <Item label="STATE_MRT" value="128"/>
     </Value>
-    <Value type="list" index="23" genre="config" label="Autosend Enable Bits" units="" min="1" max="32768" size="2">
+    <Value genre="config" index="23" label="Autosend Enable Bits" max="32768" min="1" size="2" type="list" units="">
       <Help>
         Autosend Enable Bits
       </Help>
-      <Item label="Temperature" value="1" />
-      <Item label="Setpoint H" value="2" />
-      <Item label="Setpoint C" value="4" />
-      <Item label="Mode" value="8" />
-      <Item label="Fan Mode" value="16" />
-      <Item label="Fan State" value="32" />
-      <Item label="Operating State" value="64" />
-      <Item label="Schedule Enable" value="128" />
-      <Item label="Setback" value="256" />
-      <Item label="Runhold" value="512" />
-      <Item label="Display Lock" value="1024" />
-      <Item label="Battery" value="8192" />
-      <Item label="Mechanical Status" value="16384" />
-      <Item label="SCP Status" value="32768" />
-    </Value>
-    <Value type="list" index="24" genre="config" label="Display Lock" units="" min="1" max="1" value="0" size="1">
+      <Item label="Temperature" value="1"/>
+      <Item label="Setpoint H" value="2"/>
+      <Item label="Setpoint C" value="4"/>
+      <Item label="Mode" value="8"/>
+      <Item label="Fan Mode" value="16"/>
+      <Item label="Fan State" value="32"/>
+      <Item label="Operating State" value="64"/>
+      <Item label="Schedule Enable" value="128"/>
+      <Item label="Setback" value="256"/>
+      <Item label="Runhold" value="512"/>
+      <Item label="Display Lock" value="1024"/>
+      <Item label="Battery" value="8192"/>
+      <Item label="Mechanical Status" value="16384"/>
+      <Item label="SCP Status" value="32768"/>
+    </Value>
+    <Value genre="config" index="24" label="Display Lock" max="1" min="1" size="1" type="list" units="" value="0">
       <Help>
         Display Lock
       </Help>
-      <Item label="Unlocked" value="0" />
-      <Item label="Locked" value="1" />
+      <Item label="Unlocked" value="0"/>
+      <Item label="Locked" value="1"/>
     </Value>
-    <Value type="byte" index="26" genre="config" label="Backlight Timer" units="seconds" min="10" max="30" value="20" size="1">
+    <Value genre="config" index="26" label="Backlight Timer" max="30" min="10" size="1" type="byte" units="seconds" value="20">
       <Help>
         Sets the time from last button press that the backlight will turn OFF
       </Help>
     </Value>
-    <Value type="byte" index="33" genre="config" label="Max Heat Setpoint" units="degrees" min="30" max="109" value="90" size="1">
+    <Value genre="config" index="33" label="Max Heat Setpoint" max="109" min="30" size="1" type="byte" units="degrees" value="90">
       <Help>
         Sets the maximum heating setpoint value
       </Help>
     </Value>
-    <Value type="byte" index="34" genre="config" label="Min Cool Setpoint" units="degrees" min="33" max="112" value="60" size="1">
+    <Value genre="config" index="34" label="Min Cool Setpoint" max="112" min="33" size="1" type="byte" units="degrees" value="60">
       <Help>
         Sets the minimum cooling setpoint value
       </Help>
     </Value>
-    <Value type="list" index="38" genre="config" label="Schedule Enable" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="38" label="Schedule Enable" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         Enable or disable thermostat's local scheduler
       </Help>
-      <Item label="Disabled" value="0" />
-      <Item label="Enabled" value="1" />
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="39" genre="config" label="Run/Hold Mode" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="39" label="Run/Hold Mode" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = Hold, 1 = Run
       </Help>
-      <Item label="Hold" value="0" />
-      <Item label="Run" value="1" />
+      <Item label="Hold" value="0"/>
+      <Item label="Run" value="1"/>
     </Value>
-    <Value type="list" index="40" genre="config" label="Setback Mode" units="" min="0" max="2" value="0" size="1">
+    <Value genre="config" index="40" label="Setback Mode" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = No setback, 2 = Un-occupied mode
       </Help>
-      <Item label="No Setback" value="0" />
-      <Item label="Unoccupied Mode" value="2" />
+      <Item label="No Setback" value="0"/>
+      <Item label="Unoccupied Mode" value="2"/>
     </Value>
-    <Value type="byte" index="41" genre="config" label="Un-Occupied HSP" units="degrees" min="30" max="109" value="70" size="1">
+    <Value genre="config" index="41" label="Un-Occupied HSP" max="109" min="30" size="1" type="byte" units="degrees" value="70">
       <Help>
         Heat Setpoint for Unoccupied mode
       </Help>
     </Value>
-    <Value type="byte" index="42" genre="config" label="Un-Occupied CSP" units="degrees" min="33" max="112" value="80" size="1">
+    <Value genre="config" index="42" label="Un-Occupied CSP" max="112" min="33" size="1" type="byte" units="degrees" value="80">
       <Help>
         Cool Setpoint for Unoccupied mode
       </Help>
     </Value>
-    <Value type="byte" index="43" genre="config" label="Remote Sensor 1 Node Number" units="" min="0" max="252" size="1">
+    <Value genre="config" index="43" label="Remote Sensor 1 Node Number" max="252" min="0" size="1" type="byte" units="">
       <Help>
         Node number for Remote Sensor 1
       </Help>
     </Value>
-    <Value type="byte" index="46" genre="config" label="Remote Sensor 1 Temperature" units="degrees" min="0" max="112" size="1">
+    <Value genre="config" index="46" label="Remote Sensor 1 Temperature" max="112" min="0" size="1" type="byte" units="degrees">
       <Help>
         Temperature of Remote Sensor 1
       </Help>
     </Value>
-    <Value type="byte" index="48" genre="config" label="Internal Sensor Temp Offset" units="degrees" min="-7" max="7" value="0" size="1">
+    <Value genre="config" index="48" label="Internal Sensor Temp Offset" max="7" min="-7" size="1" type="byte" units="degrees" value="0">
       <Help>
         Internal Sensor Temperature Offset
       </Help>
     </Value>
-    <Value type="byte" index="49" genre="config" label="R1 Sensor Temp Offset" units="degrees" min="-7" max="7" value="0" size="1">
+    <Value genre="config" index="49" label="R1 Sensor Temp Offset" max="7" min="-7" size="1" type="byte" units="degrees" value="0">
       <Help>
         R1 Sensor Temperature Offset
       </Help>
     </Value>
-    <Value type="short" index="52" genre="config" label="Filter Timer" units="hours" min="0" max="4000" value="4000" size="2">
+    <Value genre="config" index="52" label="Filter Timer" max="4000" min="0" size="2" type="short" units="hours" value="4000">
       <Help>
         Timer to let know when to change or clean the filter
       </Help>
     </Value>
-    <Value type="short" index="53" genre="config" label="Max Filter Timer" units="hours" min="0" max="4000" value="44" size="2">
+    <Value genre="config" index="53" label="Max Filter Timer" max="4000" min="0" size="2" type="short" units="hours" value="44">
       <Help>
         Maximum allowed value for filter timer
       </Help>
     </Value>
-    <Value type="short" index="54" genre="config" label="Heat Timer" units="hours" min="0" max="4000" value="0" size="2">
+    <Value genre="config" index="54" label="Heat Timer" max="4000" min="0" size="2" type="short" units="hours" value="0">
       <Help>
         Heat Timer in hours
       </Help>
     </Value>
-    <Value type="short" index="55" genre="config" label="Cool Timer" units="hours" min="0" max="4000" value="0" size="2">
+    <Value genre="config" index="55" label="Cool Timer" max="4000" min="0" size="2" type="short" units="hours" value="0">
       <Help>
         Cool Timer in hours
       </Help>
     </Value>
-    <Value type="byte" index="61" genre="config" label="Fan Purge Heat" units="seconds" min="0" max="90" value="0" size="1">
+    <Value genre="config" index="61" label="Fan Purge Heat" max="90" min="0" size="1" type="byte" units="seconds" value="0">
       <Help>
         Fan purge period for Heat mode
       </Help>
     </Value>
-    <Value type="byte" index="62" genre="config" label="Fan Purge Cool" units="hours" min="0" max="90" value="0" size="1">
+    <Value genre="config" index="62" label="Fan Purge Cool" max="90" min="0" size="1" type="byte" units="hours" value="0">
       <Help>
         Fan purge period for Cool mode
       </Help>
     </Value>
-
   </CommandClass>
 </Product>
diff --git a/Config/gr/gr105.xml b/Config/gr/gr105.xml
index 6c67b4710b..77b26daf15 100644
--- a/Config/gr/gr105.xml
+++ b/Config/gr/gr105.xml
@@ -1,11 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Remove COMMAND_CLASS_SWITCH_MULTILEVEL -->
-	<CommandClass id="38" action="remove" />
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline" />
-		</Associations>
-	</CommandClass>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0152:0511:0202</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/gr/gr105.png</MetaDataItem>
+    <MetaDataItem id="0511" name="ZWProductPage" type="0202">https://products.z-wavealliance.org/products/1008/</MetaDataItem>
+    <MetaDataItem id="0511" name="Identifier" type="0202">GR-105</MetaDataItem>
+    <MetaDataItem name="Name">U-Fairy Control Valve</MetaDataItem>
+    <MetaDataItem name="Description">Auto Valve - Turn on/off water valve or gas valve</MetaDataItem>
+    <MetaDataItem id="0511" name="FrequencyName" type="0202">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1008/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Remove COMMAND_CLASS_SWITCH_MULTILEVEL -->
+  <CommandClass action="remove" id="38"/>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/gr/gr105n.xml b/Config/gr/gr105n.xml
index 6c67b4710b..a17f16ebc3 100644
--- a/Config/gr/gr105n.xml
+++ b/Config/gr/gr105n.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Remove COMMAND_CLASS_SWITCH_MULTILEVEL -->
 	<CommandClass id="38" action="remove" />
 	<!-- Association Groups -->
diff --git a/Config/gr/grb3.xml b/Config/gr/grb3.xml
new file mode 100644
index 0000000000..4e67a8e2b4
--- /dev/null
+++ b/Config/gr/grb3.xml
@@ -0,0 +1,9 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <ForceVersion>2</ForceVersion>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/graber/brz1.xml b/Config/graber/brz1.xml
index 36c8a3b3b7..7ce1663839 100644
--- a/Config/graber/brz1.xml
+++ b/Config/graber/brz1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
   <!-- https://products.z-wavealliance.org/products/1787 -->
   <!-- No configuration parameters -->
diff --git a/Config/graber/vcz1.xml b/Config/graber/vcz1.xml
index 608564badd..16747c9710 100644
--- a/Config/graber/vcz1.xml
+++ b/Config/graber/vcz1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
   <!-- https://products.z-wavealliance.org/products/17876-->
   <!-- No configuration parameters -->
diff --git a/Config/greenwave/gs1110-1-gr-1.xml b/Config/greenwave/gs1110-1-gr-1.xml
new file mode 100644
index 0000000000..f6bbcfc901
--- /dev/null
+++ b/Config/greenwave/gs1110-1-gr-1.xml
@@ -0,0 +1,17 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0099:0002:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/greenwave/gs1110-1-gr-1.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/834/</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0001">GS1110-1-GR-1</MetaDataItem>
+    <MetaDataItem name="Description">The GreenWave Reality Home Energy Management service provides robust monitoring and control of devices in the home. The initial installation typically includes a Gateway, intelligent power strips (PowerNodes), and integration with third-party smart thermostats. Consumers can extend conservation efforts and further simplify their lives by creating easy-to-configure Smart Controls that can be executed by the push of a button – or at scheduled times – to turn devices or entire rooms on or off.
+
+GreenWave Reality’s focus on the consumer begins with a guided out-of-box experience that includes videos, an Energy Coach and a range of patented technologies that enable users to quickly get up and running on their own. After connecting the Gateway and plugging devices into the PowerNodes, the DeviceDNA feature automatically helps identify the type of each device for simple configuration of the system.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.greenwavereality.com/</MetaDataItem>
+    <MetaDataItem name="Name">OneGateway</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/834/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/greenwave/powernode1.xml b/Config/greenwave/powernode1.xml
index a19ba3b8af..91ce766c4a 100644
--- a/Config/greenwave/powernode1.xml
+++ b/Config/greenwave/powernode1.xml
@@ -1,54 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0099:0002:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/greenwave/powernode1.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/629/</MetaDataItem>
+    <MetaDataItem name="Description">Single-socket PowerNode, UK.The single port version of the PowerNode, these devices communicate wirelessly to the Gateway, allowing for energy monitoring and device control. Our products come pre-configured to connect to the Gateway with minimal consumer set-up.</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0002">CEPT (Europe) / Australia / New Zealand / U.S. / Canada / Mexico / CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Greenwave Single socket PowerNode UK</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.greenwavereality.com/solutions/energymgmt/</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0002">NS210-G-EN/NP210-G-EN</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/52/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/55/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/58/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/589/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/629/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductSupport">http://www.greenwavereality.com/solutions/energymgmt/</MetaDataItem>
+  </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="byte" genre="config" instance="1" index="0" label="Power delta" units="%" min="1" max="100" value="10">
+    <Value genre="config" index="0" instance="1" label="Power delta" max="100" min="1" type="byte" units="%" value="10">
       <Help>Consumer variation required to send notification.
         From 1 to 100, default 10</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="1" label="No communication light" min="1" max="255" value="2">
+    <Value genre="config" index="1" instance="1" label="No communication light" max="255" min="1" type="byte" value="2">
       <Help>After how many minutes the GreenWave device should start flashing if the controller didn't communicate with this device</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="2" label="Room color" read_only="true" size="1">
+    <Value genre="config" index="2" instance="1" label="Room color" read_only="true" size="1" type="list">
       <Help>The room color (Corner wheel color) on the GreenWave device</Help>
-      <Item label="Black (empty)" value="128" />
-      <Item label="Green (1)" value="129" />
-      <Item label="Dark Blue (2)" value="130" />
-      <Item label="Red (3)" value="131" />
-      <Item label="Yellow (4)" value="132" />
-      <Item label="Purple (5)" value="133" />
-      <Item label="Orange (6)" value="134" />
-      <Item label="Light Blue (7)" value="135" />
-      <Item label="Pink (8)" value="136" />
-      <Item label="Locked" value="137" />
+      <Item label="Black (empty)" value="128"/>
+      <Item label="Green (1)" value="129"/>
+      <Item label="Dark Blue (2)" value="130"/>
+      <Item label="Red (3)" value="131"/>
+      <Item label="Yellow (4)" value="132"/>
+      <Item label="Purple (5)" value="133"/>
+      <Item label="Orange (6)" value="134"/>
+      <Item label="Light Blue (7)" value="135"/>
+      <Item label="Pink (8)" value="136"/>
+      <Item label="Locked" value="137"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="3" label="Power on relay" size="1" min="0" max="2" value="2">
+    <Value genre="config" index="3" instance="1" label="Power on relay" max="2" min="0" size="1" type="list" value="2">
       <Help>Relais state after a power loss</Help>
-      <Item label="All OFF" value="0" />
-      <Item label="Remember last state" value="1" />
-      <Item label="All ON" value="2" />
+      <Item label="All OFF" value="0"/>
+      <Item label="Remember last state" value="1"/>
+      <Item label="All ON" value="2"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="4" label="LED on network error" size="1" min="0" max="1" value="1">
+    <Value genre="config" index="4" instance="1" label="LED on network error" max="1" min="0" size="1" type="list" value="1">
       <Help>Enable/Disable the LED on network error</Help>
-      <Item label="Disable" value="0" />
-      <Item label="Enable" value="1" />
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
     </Value>
   </CommandClass>
-
   <!-- COMMAND_CLASS_ALARM. This class is in the list reported by the GreenWave PowerNode 1, but it does not respond to requests -->
-  <CommandClass id="113" action="remove" /> 
+  <CommandClass action="remove" id="113"/>
   <!-- COMMAND_CLASS_INDICATOR. This class is in the list reported by the GreenWave PowerNode 1, but it does not respond to requests -->
-  <CommandClass id="135" action="remove" />
-  
+  <CommandClass action="remove" id="135"/>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="4">
-      <Group index="1" max_associations="1" label="Wheel"/>
-      <Group index="2" max_associations="1" label="Relay health"/>
-      <Group index="3" max_associations="1" label="Power level" auto="true"/>
-      <Group index="4" max_associations="1" label="Overcurrent protection"/>
+      <Group index="1" label="Wheel" max_associations="1"/>
+      <Group index="2" label="Relay health" max_associations="1"/>
+      <Group auto="true" index="3" label="Power level" max_associations="1"/>
+      <Group index="4" label="Overcurrent protection" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/greenwave/powernode6.xml b/Config/greenwave/powernode6.xml
index dd45d45828..05f0f2fec4 100644
--- a/Config/greenwave/powernode6.xml
+++ b/Config/greenwave/powernode6.xml
@@ -1,56 +1,71 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0099:0004:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/greenwave/powernode6.png</MetaDataItem>
+    <MetaDataItem id="0004" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/590/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.greenwavereality.com/solutions/energymgmt/</MetaDataItem>
+    <MetaDataItem id="0004" name="FrequencyName" type="0003">Australia / New Zealand / CEPT (Europe) / CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">The PowerNode 6-Port allows users to connect up to 6 appliances, making them smart, energy conscious and controllable. Our patent-pending DeviceDNA technology instantly recognizes the device upon being plugged into the PowerNode, to facilitate identification of your devices.</MetaDataItem>
+    <MetaDataItem name="Name">Multi socket PowerNode US</MetaDataItem>
+    <MetaDataItem id="0004" name="Identifier" type="0003">MP220-B/NP222-B</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/54/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/56/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/57/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/590/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductSupport">http://www.greenwavereality.com/about/contact/</MetaDataItem>
+  </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
-	<Value type="byte" genre="config" instance="1" index="0" label="Power delta" units="%" min="1" max="100" value="10">
+    <Value genre="config" index="0" instance="1" label="Power delta" max="100" min="1" type="byte" units="%" value="10">
       <Help>Consumer variation required to send notification.
 	  From 1 to 100, default 10</Help>
-    </Value>    
-	<Value type="byte" genre="config" instance="1" index="1" label="No communication light" min="1" max="255" value="2">
+    </Value>
+    <Value genre="config" index="1" instance="1" label="No communication light" max="255" min="1" type="byte" value="2">
       <Help>After how many minutes the GreenWave device should start flashing if the controller didn't communicate with this device</Help>
     </Value>
-    <Value type="list" genre="config" instance="1" index="2" label="Room color" read_only="true" size="1">
+    <Value genre="config" index="2" instance="1" label="Room color" read_only="true" size="1" type="list">
       <Help>The room color (Corner wheel color) on the GreenWave device</Help>
-      <Item label="Black (empty)" value="128" />
-      <Item label="Green (1)" value="129" />
-      <Item label="Dark Blue (2)" value="130" />
-      <Item label="Red (3)" value="131" />
-      <Item label="Yellow (4)" value="132" />
-      <Item label="Purple (5)" value="133" />
-      <Item label="Orange (6)" value="134" />
-      <Item label="Light Blue (7)" value="135" />
-      <Item label="Pink (8)" value="136" />
-      <Item label="Locked" value="137" />
+      <Item label="Black (empty)" value="128"/>
+      <Item label="Green (1)" value="129"/>
+      <Item label="Dark Blue (2)" value="130"/>
+      <Item label="Red (3)" value="131"/>
+      <Item label="Yellow (4)" value="132"/>
+      <Item label="Purple (5)" value="133"/>
+      <Item label="Orange (6)" value="134"/>
+      <Item label="Light Blue (7)" value="135"/>
+      <Item label="Pink (8)" value="136"/>
+      <Item label="Locked" value="137"/>
     </Value>
-	<Value type="list" genre="config" instance="1" index="3" label="Power on relay" size="1" min="0" max="2" value="2">
+    <Value genre="config" index="3" instance="1" label="Power on relay" max="2" min="0" size="1" type="list" value="2">
       <Help>Relais state after a power loss</Help>
-      <Item label="All OFF" value="0" />
-      <Item label="Remember last state" value="1" />
-      <Item label="All ON" value="2" />
+      <Item label="All OFF" value="0"/>
+      <Item label="Remember last state" value="1"/>
+      <Item label="All ON" value="2"/>
     </Value>
-	<Value type="list" genre="config" instance="1" index="4" label="LED on network error" size="1" min="0" max="1" value="1">
+    <Value genre="config" index="4" instance="1" label="LED on network error" max="1" min="0" size="1" type="list" value="1">
       <Help>Enable/Disable the LED on network error</Help>
-      <Item label="Disable" value="0" />
-      <Item label="Enable" value="1" />
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
     </Value>
-	
   </CommandClass>
-
-  <CommandClass id="96" mapping="endpoints" />
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
   <!-- COMMAND_CLASS_ALARM. This class is in the list reported by the GreenWave PowerNode 6, but it does not respond to requests -->
-  <CommandClass id="113" action="remove" /> 
+  <CommandClass action="remove" id="113"/>
   <!-- COMMAND_CLASS_INDICATOR. This class is in the list reported by the GreenWave PowerNode 6, but it does not respond to requests -->
-  <CommandClass id="135" action="remove" />
-  
+  <CommandClass action="remove" id="135"/>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="4">
-        <Group index="1" max_associations="1" label="Wheel"/>
-        <Group index="2" max_associations="1" label="Relay health"/>
-        <Group index="3" max_associations="1" label="Power level"/>
-        <Group index="4" max_associations="1" label="Overcurrent protection"/>
+      <Group index="1" label="Wheel" max_associations="1"/>
+      <Group index="2" label="Relay health" max_associations="1"/>
+      <Group index="3" label="Power level" max_associations="1"/>
+      <Group index="4" label="Overcurrent protection" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/hank/hkzw-dws01.xml b/Config/hank/hkzw-dws01.xml
index 19333a68dc..a03bc5c9e6 100644
--- a/Config/hank/hkzw-dws01.xml
+++ b/Config/hank/hkzw-dws01.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
       Hank HKZW-DWS01 Door/Window Sensor
       http://products.z-wavealliance.org/products/1896
diff --git a/Config/hank/hkzw-fld01.xml b/Config/hank/hkzw-fld01.xml
index 3b45637971..f0a2442989 100644
--- a/Config/hank/hkzw-fld01.xml
+++ b/Config/hank/hkzw-fld01.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
       Hank HKZW-FLD01 Flood Sensor
       https://products.z-wavealliance.org/products/2641
diff --git a/Config/hank/hkzw-ms01.xml b/Config/hank/hkzw-ms01.xml
index f7c90c71e2..d3c4bba588 100644
--- a/Config/hank/hkzw-ms01.xml
+++ b/Config/hank/hkzw-ms01.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!--
       Hank HKZW-MS01 Multisensor
       http://products.z-wavealliance.org/products/2305
diff --git a/Config/hank/hkzw-ms02.xml b/Config/hank/hkzw-ms02-200.xml
similarity index 97%
rename from Config/hank/hkzw-ms02.xml
rename to Config/hank/hkzw-ms02-200.xml
index acf75c3839..932364d891 100644
--- a/Config/hank/hkzw-ms02.xml
+++ b/Config/hank/hkzw-ms02-200.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
       Hank HKZW-MS02 Multisensor
       http://products.z-wavealliance.org/products/2578
diff --git a/Config/hank/hkzw-ms02-300.xml b/Config/hank/hkzw-ms02-300.xml
new file mode 100644
index 0000000000..932364d891
--- /dev/null
+++ b/Config/hank/hkzw-ms02-300.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+    <!--
+      Hank HKZW-MS02 Multisensor
+      http://products.z-wavealliance.org/products/2578
+      https://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/2578/HKZW-MS02-ProductManual.pdf
+      Config capabilities: https://products.z-wavealliance.org/products/2578/configs
+    -->
+    <!-- Configuration -->
+    <CommandClass id="112">
+        <Value type="byte" genre="config" instance="1" index="12" label="Motion sensor's sensitivity" units="%" size="1" min="0" max="8" value="8">
+            <Help>
+                Level 1 to 8. The higher the value, the more sensitive the PIR sensor.
+                0 Disabled.
+            </Help>
+        </Value>
+        <Value type="list" genre="config" instance="1" index="14" label="Enable/disable basic set command" size="1" min="0" max="1" value="0">
+            <Help>Enable/disable basic set command</Help>
+            <Item label="Disabled" value="0"/>
+            <Item label="Enabled" value="1"/>
+        </Value>
+        <Value type="list" genre="config" instance="1" index="15" label="Value of the basic set" size="1" min="0" max="1" value="0">
+            <Help>
+                Send basic set value = 255 to nodes associated with group 2 when motion alarm is triggered. Send basic set value = 0 to nodes associated with group 2 when motion alarm is canceled.
+                Send basic set value = 0 to nodes associated with group 2 when motion alarm is triggered. Send basic set value = 255 to nodes associated with group 2 when motion alarm is canceled.</Help>
+            <Item label="Basic On" value="0"/>
+            <Item label="Basic Off" value="1"/>
+        </Value>
+         <Value type="byte" genre="config" instance="1" index="17" label="Enable/disable shock alarm" size="1" min="0" max="1" value="0">
+            <Help>when the value is 0, the product will not sends a vibration alarm after moving or shaking; when the value is 1, the product will sends a vibration alarm after moving or shaking</Help>
+            <Item label="Disabled" value="0"/>
+            <Item label="Enabled" value="1"/>
+        </Value>
+        <Value type="short" genre="config" instance="1" index="18" label="Motion alarm cancellation delay" units="lux" size="2" min="0" max="65535" value="200">
+            <Help>
+                0 Reports are not sent.
+                1 to 65535 the change in luminance level resulting in luminance report being sent to the main controller.
+            </Help>
+        </Value>
+        <Value type="byte" genre="config" instance="1" index="32" label="Level of low battery" units="%" size="1" min="10" max="50" value="20">
+            <Help>The low level from 10% to 50%</Help>
+        </Value>
+
+    </CommandClass>
+
+    <!-- Association Groups -->
+    <CommandClass id="133">
+        <Associations num_groups="2">
+            <Group index="1" max_associations="5" label="Lifeline"/>
+            <Group index="2" max_associations="5" label="Basic set command"/>
+        </Associations>
+    </CommandClass>
+
+</Product>
diff --git a/Config/hank/hkzw-rgb01.xml b/Config/hank/hkzw-rgb01.xml
index 2cdb97dbf6..f3cf479709 100644
--- a/Config/hank/hkzw-rgb01.xml
+++ b/Config/hank/hkzw-rgb01.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
   <!-- Configuration Parameters -->
   <CommandClass id="112">
@@ -44,4 +44,4 @@
     </Associations>
   </CommandClass>
 
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/hank/hkzw-so01-smartplug.xml b/Config/hank/hkzw-so01-smartplug.xml
index a3e2ad5b8c..144842439c 100644
--- a/Config/hank/hkzw-so01-smartplug.xml
+++ b/Config/hank/hkzw-so01-smartplug.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
       http://products.z-wavealliance.org/products/1789
       http://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1789/HKZW-SO01_manual.pdf
diff --git a/Config/hank/hkzw-so03.xml b/Config/hank/hkzw-so03.xml
index d79e049d3f..0fee9a7b3e 100644
--- a/Config/hank/hkzw-so03.xml
+++ b/Config/hank/hkzw-so03.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- https://products.z-wavealliance.org/products/1901 -->
 
   <!-- Configuration Parameters -->
diff --git a/Config/hank/hkzw-so05-smartplug.xml b/Config/hank/hkzw-so05-smartplug.xml
index 5b550e969b..a826d64926 100644
--- a/Config/hank/hkzw-so05-smartplug.xml
+++ b/Config/hank/hkzw-so05-smartplug.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!--
       Hank HKZW-SO05
       http://products.z-wavealliance.org/products/1891
diff --git a/Config/hank/scenecontroller1.xml b/Config/hank/scenecontroller1.xml
index 31e0b92fe1..900273d88b 100644
--- a/Config/hank/scenecontroller1.xml
+++ b/Config/hank/scenecontroller1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!--
       Hank HKZW-SCN01 Scene Controller
       http://products.z-wavealliance.org/products/1918
@@ -23,4 +23,4 @@
         </Associations>
     </CommandClass>
 
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/hank/scenecontroller4.xml b/Config/hank/scenecontroller4.xml
index fb9121771c..41d02477bd 100644
--- a/Config/hank/scenecontroller4.xml
+++ b/Config/hank/scenecontroller4.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!--
       Hank HKZW-SCN04 Scene Controller
       http://products.z-wavealliance.org/products/1968
@@ -29,4 +29,4 @@
         </Associations>
     </CommandClass>
 
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/heiman/HS1CA-Z.xml b/Config/heiman/HS1CA-Z.xml
index ae2d67dd8b..f23f767db1 100644
--- a/Config/heiman/HS1CA-Z.xml
+++ b/Config/heiman/HS1CA-Z.xml
@@ -3,7 +3,7 @@
 CO Sensor HS1CA-Z
 http://products.z-wavealliance.org/products/1940
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="3">
diff --git a/Config/heiman/HS1CG-Z.xml b/Config/heiman/HS1CG-Z.xml
index e262291e9e..c45f3989e5 100644
--- a/Config/heiman/HS1CG-Z.xml
+++ b/Config/heiman/HS1CG-Z.xml
@@ -3,7 +3,7 @@
 Smart Combustible Gas Sensor HS1CG-Z
 http://products.z-wavealliance.org/products/2070
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="2">
diff --git a/Config/heiman/HS1DS-Z.xml b/Config/heiman/HS1DS-Z.xml
index 2e8d227683..f9eb949e5b 100644
--- a/Config/heiman/HS1DS-Z.xml
+++ b/Config/heiman/HS1DS-Z.xml
@@ -3,7 +3,7 @@
 Door Sensor HS1DS-Z
 http://products.z-wavealliance.org/products/1797
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="5">
diff --git a/Config/heiman/HS1HT-Z.xml b/Config/heiman/HS1HT-Z.xml
index af957e41d4..02e2220bd0 100644
--- a/Config/heiman/HS1HT-Z.xml
+++ b/Config/heiman/HS1HT-Z.xml
@@ -3,7 +3,7 @@
 Temperature Humidity Sensor HS1HT-Z
 http://products.z-wavealliance.org/products/2321
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="3">
diff --git a/Config/heiman/HS1MS-Z.xml b/Config/heiman/HS1MS-Z.xml
index 97b13f79ae..360e66c51e 100644
--- a/Config/heiman/HS1MS-Z.xml
+++ b/Config/heiman/HS1MS-Z.xml
@@ -3,7 +3,7 @@
 Motion Sensor HS1MS-Z
 http://products.z-wavealliance.org/products/1801
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="3">
diff --git a/Config/heiman/HS1SA-Z.xml b/Config/heiman/HS1SA-Z.xml
index 4f8580e8cc..77834515a6 100644
--- a/Config/heiman/HS1SA-Z.xml
+++ b/Config/heiman/HS1SA-Z.xml
@@ -3,7 +3,7 @@
 Smart Smoke Sensor HS1SA-Z
 http://products.z-wavealliance.org/products/1936
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="3">
diff --git a/Config/heiman/HS1WL-Z.xml b/Config/heiman/HS1WL-Z.xml
index c94d697546..034652d693 100644
--- a/Config/heiman/HS1WL-Z.xml
+++ b/Config/heiman/HS1WL-Z.xml
@@ -3,7 +3,7 @@
 Flood Sensor HS1WL-Z
 http://products.z-wavealliance.org/products/2322
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="5">
diff --git a/Config/heiman/HS2SK-Z.xml b/Config/heiman/HS2SK-Z.xml
index 9f50eb7274..b95ae157a9 100644
--- a/Config/heiman/HS2SK-Z.xml
+++ b/Config/heiman/HS2SK-Z.xml
@@ -2,7 +2,7 @@
 <!--
 Smart Plug HS2SK-Z
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="1">
diff --git a/Config/heiman/HS2WD-Z.xml b/Config/heiman/HS2WD-Z.xml
new file mode 100644
index 0000000000..53bf22e390
--- /dev/null
+++ b/Config/heiman/HS2WD-Z.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Indoor Siren HS2WD-Z
+-->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+    <!-- Association Groups -->
+    <CommandClass id="133">
+        <Associations num_groups="1">
+            <Group index="1" max_associations="5" label="LifeLine" />
+        </Associations>
+    </CommandClass>
+</Product>
diff --git a/Config/heltun/he-zw-therm-fl2.xml b/Config/heltun/he-zw-therm-fl2.xml
index 4b4b2fafd4..c95c3c7aa3 100644
--- a/Config/heltun/he-zw-therm-fl2.xml
+++ b/Config/heltun/he-zw-therm-fl2.xml
@@ -1,369 +1,371 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-  <CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
-		<Instance index="1"/>
-		<Value type="decimal" genre="user" instance="1" index="1" label="Heating" units="C" read_only="false" write_only="false" min="0" max="0" value="20"/>
-	</CommandClass>
-	<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" version="1" request_flags="4"  >
-		<Instance index="1" />
-		<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0"   size="1">
-			<Item label="Off" value="0" />
-			<Item label="Dry floor" value="8" />
-			<Item label="Auto" value="10" />
-			<Item label="Heat Econ" value="11" />
-			<Item label="Vacation" value="13" />
-			<Item label="Unknown" value="14"/>
-			<Item label="Comfort" value="15" />
-		</Value>
-		<SupportedModes>
-			<Mode index="0" label="Off" />
-			<Mode index="8" label="Dry floor" />
-			<Mode index="10" label="Auto" />
-			<Mode index="11" label="Heat Econ" />
-			<Mode index="13" label="Vacation" />
-			<Mode index="14" label="Unknown" />
-			<Mode index="15" label="Comfort" />
-		</SupportedModes>
-	</CommandClass>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="20" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="64">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Mode" max="0" min="0" read_only="false" size="1" type="list" units="" write_only="false">
+      <Item label="Off" value="0"/>
+      <Item label="Dry floor" value="8"/>
+      <Item label="Auto" value="10"/>
+      <Item label="Heat Econ" value="11"/>
+      <Item label="Vacation" value="13"/>
+      <Item label="Unknown" value="14"/>
+      <Item label="Comfort" value="15"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="8" label="Dry floor"/>
+      <Mode index="10" label="Auto"/>
+      <Mode index="11" label="Heat Econ"/>
+      <Mode index="13" label="Vacation"/>
+      <Mode index="14" label="Unknown"/>
+      <Mode index="15" label="Comfort"/>
+    </SupportedModes>
+    <Compatibility/>
+  </CommandClass>
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="Degree mode" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="1" label="Degree mode" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         Degree Mode 0=C, 1=F
       </Help>
-      <Item label="Centigrade" value="0" />
-      <Item label="Farenheit" value="1" />
+      <Item label="Centigrade" value="0"/>
+      <Item label="Farenheit" value="1"/>
     </Value>
-    <Value type="list" index="2" genre="config" label="External input mode" units="" min="0" max="2" value="1" size="1">
+    <Value genre="config" index="2" label="External input mode" max="2" min="0" size="1" type="list" units="" value="1">
       <Help>
         External input mode.  The thermostat can be connected to an external device (like security system) dry output contacts and control the thermostat operating modes depending on the contacts state. If parameter value is 0 no action will be take (the input state is ignored by the thermostat logic). If parameter value is 1 the thermostat will be switched to the operating mode selected in Parameter 3 if the output was short-circuited. The thermostat will go back to previous mode as soon as the input is open. If parameter value is 2 the thermostat will be switched to the operating mode selected in Parameter 3 if the output was short-circuited. But the thermostat will not undertake any action if the input is open again.
       </Help>
-      <Item label="Ignore external input" value="0" />
-      <Item label="Trigger on input" value="1" />
-      <Item label="Latch on input" value="2" />
+      <Item label="Ignore external input" value="0"/>
+      <Item label="Trigger on input" value="1"/>
+      <Item label="Latch on input" value="2"/>
     </Value>
-    <Value type="list" index="3" genre="config" label="Mode number" units="" min="1" max="6" value="2" size="1">
+    <Value genre="config" index="3" label="Mode number" max="6" min="1" size="1" type="list" units="" value="2">
       <Help>
         Mode number for EXT input action.  This parameter allows selecting which operating mode the thermostat should go to if the external input is short-circuited. 1=COM, 2=TIME, 3=DRY, 4=ECO, 5=VAC, 6=MAN. Note: When thermostat goes to MAN mode it will be in IDLE state till HEATING key is not pressed manually.
       </Help>
-      <Item label="COM" value="1" />
-      <Item label="TIME" value="2" />
-      <Item label="DRY" value="3" />
-      <Item label="ECO" value="4" />
-      <Item label="VAC" value="5" />
-      <Item label="MAN" value="6" />
+      <Item label="COM" value="1"/>
+      <Item label="TIME" value="2"/>
+      <Item label="DRY" value="3"/>
+      <Item label="ECO" value="4"/>
+      <Item label="VAC" value="5"/>
+      <Item label="MAN" value="6"/>
     </Value>
-    <Value type="list" index="4" genre="config" label="Source sensor" units="" min="1" max="7" value="3" size="1">
+    <Value genre="config" index="4" label="Source sensor" max="7" min="1" size="1" type="list" units="" value="3">
       <Help>
         Source Sensor: 1=A, 2=AF, 3=F, 4=FA, 5=P, 6=PA, 7=PF. A=Air sensor, AF - Air sensor + Floor sensor, F - Floor sensor, FA - Floor sensor +Air sensor, P - Power regulator, PA - Power regulator + Air sensor, PF - Power regulator + Floor sensor
       </Help>
-      <Item label="Air sensor" value="1" />
-      <Item label="Air and Floor sensors" value="2" />
-      <Item label="Floor sensor" value="3" />
-      <Item label="Floor and Air sensor" value="4" />
-      <Item label="Power regulator" value="5" />
-      <Item label="Power regulator and Air sensor" value="6" />
-      <Item label="Power rgulator and Floor sensor" value="7" />
+      <Item label="Air sensor" value="1"/>
+      <Item label="Air and Floor sensors" value="2"/>
+      <Item label="Floor sensor" value="3"/>
+      <Item label="Floor and Air sensor" value="4"/>
+      <Item label="Power regulator" value="5"/>
+      <Item label="Power regulator and Air sensor" value="6"/>
+      <Item label="Power rgulator and Floor sensor" value="7"/>
     </Value>
-    <Value type="byte" index="5" genre="config" label="Power reg on" units="mins" min="10" max="90" value="15" size="1">
+    <Value genre="config" index="5" label="Power reg on" max="90" min="10" size="1" type="byte" units="mins" value="15">
       <Help>
         Power Regulation ON time, min
       </Help>
     </Value>
-    <Value type="byte" index="6" genre="config" label="Power reg off" units="mins" min="10" max="90" value="15" size="1">
+    <Value genre="config" index="6" label="Power reg off" max="90" min="10" size="1" type="byte" units="mins" value="15">
       <Help>
         Power Regulation OFF time, min
       </Help>
     </Value>
-    <Value type="byte" index="7" genre="config" label="Dry time" units="mins" min="5" max="90" value="30" size="1">
+    <Value genre="config" index="7" label="Dry time" max="90" min="5" size="1" type="byte" units="mins" value="30">
       <Help>
         Dry Time, min
       </Help>
     </Value>
-    <Value type="bool" index="8" genre="config" label="Time by controller" units="" min="0" max="1" value="1" size="1">
+    <Value genre="config" index="8" label="Time by controller" max="1" min="0" size="1" type="bool" units="" value="1">
       <Help>
         Time correction by controller
       </Help>
     </Value>
-    <Value type="list" index="9" genre="config" label="Time format" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="9" label="Time format" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         Time format 0=24hour, 1=12hour (AM/PM)
       </Help>
-      <Item label="24 hour" value="0" />
-      <Item label="12 hour" value="1" />
+      <Item label="24 hour" value="0"/>
+      <Item label="12 hour" value="1"/>
     </Value>
-    <Value type="byte" index="10" genre="config" label="Week day" units="" min="1" max="7" value="1" size="1">
+    <Value genre="config" index="10" label="Week day" max="7" min="1" size="1" type="byte" units="" value="1">
       <Help>
         Manually set week day
       </Help>
     </Value>
-    <Value type="byte" index="11" genre="config" label="Hour" units="hours" min="0" max="23" value="0" size="1">
+    <Value genre="config" index="11" label="Hour" max="23" min="0" size="1" type="byte" units="hours" value="0">
       <Help>
         Manually set time hour
       </Help>
     </Value>
-    <Value type="byte" index="12" genre="config" label="Mins" units="mins" min="0" max="59" value="0" size="1">
+    <Value genre="config" index="12" label="Mins" max="59" min="0" size="1" type="byte" units="mins" value="0">
       <Help>
         Maually set time minute
       </Help>
     </Value>
-    <Value type="short" index="13" genre="config" label="Air temp min" units="degree" min="40" max="360" value="210" size="2">
+    <Value genre="config" index="13" label="Air temp min" max="360" min="40" size="2" type="short" units="degree" value="210">
       <Help>
         Air Temperature Minimum in degree, value x10, e.g. 22.5=225
       </Help>
     </Value>
-    <Value type="short" index="14" genre="config" label="Air temp max" units="degree" min="50" max="370" value="270" size="2">
+    <Value genre="config" index="14" label="Air temp max" max="370" min="50" size="2" type="short" units="degree" value="270">
       <Help>
         Air Temperature Maximum in degree, x10
       </Help>
     </Value>
-    <Value type="short" index="15" genre="config" label="Floor temp min" units="degree" min="40" max="360" value="180" size="2">
+    <Value genre="config" index="15" label="Floor temp min" max="360" min="40" size="2" type="short" units="degree" value="180">
       <Help>
         Floor Temperature Minimum in degree, x10
       </Help>
     </Value>
-    <Value type="short" index="16" genre="config" label="Floor temp max" units="degree" min="50" max="370" value="320" size="2">
+    <Value genre="config" index="16" label="Floor temp max" max="370" min="50" size="2" type="short" units="degree" value="320">
       <Help>
         Floor Temperature Maximum in degree, x10
       </Help>
     </Value>
-    <Value type="byte" index="17" genre="config" label="Floor sensor resistance" units="kohm" min="1" max="100" value="10" size="1">
+    <Value genre="config" index="17" label="Floor sensor resistance" max="100" min="1" size="1" type="byte" units="kohm" value="10">
       <Help>
         Floor Sensor Resistance, kohm
       </Help>
     </Value>
-    <Value type="byte" index="18" genre="config" label="Air temp calibration" units="degree" min="-95" max="95" value="0" size="1">
+    <Value genre="config" index="18" label="Air temp calibration" max="95" min="-95" size="1" type="byte" units="degree" value="0">
       <Help>
         Air Temperature Calibration in degree x10
       </Help>
     </Value>
-    <Value type="byte" index="19" genre="config" label="Floor temp calibration" units="degree" min="-95" max="95" value="0" size="1">
+    <Value genre="config" index="19" label="Floor temp calibration" max="95" min="-95" size="1" type="byte" units="degree" value="0">
       <Help>
         Floor Temperature Calibration in degree x10
       </Help>
     </Value>
-    <Value type="byte" index="20" genre="config" label="Temp hysteresis" units="degree" min="1" max="95" value="5" size="1">
+    <Value genre="config" index="20" label="Temp hysteresis" max="95" min="1" size="1" type="byte" units="degree" value="5">
       <Help>
         Temperature Hysteresis in degree, x10
       </Help>
     </Value>
-    <Value type="byte" index="21" genre="config" label="Temp diff to send values" units="" min="1" max="10" value="2" size="1">
+    <Value genre="config" index="21" label="Temp diff to send values" max="10" min="1" size="1" type="byte" units="" value="2">
       <Help>
         Temperature difference to send to controller, value x10
       </Help>
     </Value>
-    <Value type="byte" index="22" genre="config" label="Active display brightnes" units="" min="1" max="4" value="4" size="1">
+    <Value genre="config" index="22" label="Active display brightnes" max="4" min="1" size="1" type="byte" units="" value="4">
       <Help>
         Active display brightness level. Must be greater than or equal param 23
       </Help>
     </Value>
-    <Value type="byte" index="23" genre="config" label="Inactive display brightness" units="" min="1" max="4" value="3" size="1">
+    <Value genre="config" index="23" label="Inactive display brightness" max="4" min="1" size="1" type="byte" units="" value="3">
       <Help>
         Inactive display brightness level. Must be less than or equal param 22
       </Help>
     </Value>
-    <Value type="bool" index="24" genre="config" label="Auto LCD brightness" units="" min="0" max="1" value="1" size="1">
+    <Value genre="config" index="24" label="Auto LCD brightness" max="1" min="0" size="1" type="bool" units="" value="1">
       <Help>
         Auto LCD brightness control
       </Help>
     </Value>
-    <Value type="short" index="25" genre="config" label="Auto bright level 1" units="lumens" min="0" max="5000" value="30" size="2">
+    <Value genre="config" index="25" label="Auto bright level 1" max="5000" min="0" size="2" type="short" units="lumens" value="30">
       <Help>
         Auto brightness level 1 max lumens
       </Help>
     </Value>
-    <Value type="short" index="26" genre="config" label="Auto bright level 2" units="lumens" min="0" max="5000" value="200" size="2">
+    <Value genre="config" index="26" label="Auto bright level 2" max="5000" min="0" size="2" type="short" units="lumens" value="200">
       <Help>
         Auto brightness level 2 max lumens
       </Help>
     </Value>
-    <Value type="short" index="27" genre="config" label="Auto bright level 3" units="lumens" min="0" max="5000" value="3000" size="2">
+    <Value genre="config" index="27" label="Auto bright level 3" max="5000" min="0" size="2" type="short" units="lumens" value="3000">
       <Help>
         Auto brightness level 3 max lumens
       </Help>
     </Value>
-    <Value type="list" index="28" genre="config" label="Basic set action" units="" min="1" max="6" value="6" size="1">
+    <Value genre="config" index="28" label="Basic set action" max="6" min="1" size="1" type="list" units="" value="6">
       <Help>
         Basic Set Action
       </Help>
-      <Item label="COM" value="1" />
-      <Item label="TIME" value="2" />
-      <Item label="DRY" value="3" />
-      <Item label="ECO" value="4" />
-      <Item label="VAC" value="5" />
-      <Item label="MAN" value="6" />
-    </Value>    
-    <Value type="byte" index="51" genre="config" label="Touch sensitivity" units="" min="20" max="70" value="50" size="1">
+      <Item label="COM" value="1"/>
+      <Item label="TIME" value="2"/>
+      <Item label="DRY" value="3"/>
+      <Item label="ECO" value="4"/>
+      <Item label="VAC" value="5"/>
+      <Item label="MAN" value="6"/>
+    </Value>
+    <Value genre="config" index="51" label="Touch sensitivity" max="70" min="20" size="1" type="byte" units="" value="50">
       <Help>
         Touch buttons sensitivity. 20=Super sensitive. 70=lowest sensitivity.
       </Help>
     </Value>
-    <Value type="short" index="52" genre="config" label="Morning start time" units="HHMM" min="0000" max="2359" value="0600" size="2">
+    <Value genre="config" index="52" label="Morning start time" max="2359" min="0000" size="2" type="short" units="HHMM" value="0600">
       <Help>
         Morning start time. Format: HHMM. e.g.08:00 should be sent as 0800
       </Help>
     </Value>
-    <Value type="short" index="53" genre="config" label="Day start time" units="HHMM" min="0000" max="2359" value="0900" size="2">
+    <Value genre="config" index="53" label="Day start time" max="2359" min="0000" size="2" type="short" units="HHMM" value="0900">
       <Help>
         Day start time. Format: HHMM.
       </Help>
     </Value>
-    <Value type="short" index="54" genre="config" label="Evening start time" units="HHMM" min="0000" max="2359" value="1800" size="2">
+    <Value genre="config" index="54" label="Evening start time" max="2359" min="0000" size="2" type="short" units="HHMM" value="1800">
       <Help>
         Evening start time. Format: HHMM.
       </Help>
     </Value>
-    <Value type="short" index="55" genre="config" label="Night Start time" units="HHMM" min="0000" max="2359" value="2300" size="2">
+    <Value genre="config" index="55" label="Night Start time" max="2359" min="0000" size="2" type="short" units="HHMM" value="2300">
       <Help>
         Night start time. Format: HHMM.
       </Help>
     </Value>
-    <Value type="short" index="56" genre="config" label="Monday morning temp" units="degree" min="40" max="370" value="240" size="2">
+    <Value genre="config" index="56" label="Monday morning temp" max="370" min="40" size="2" type="short" units="degree" value="240">
       <Help>
         Monday morning temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="57" genre="config" label="Monday day temp" units="degree" min="40" max="370" value="200" size="2">
+    <Value genre="config" index="57" label="Monday day temp" max="370" min="40" size="2" type="short" units="degree" value="200">
       <Help>
         Monday day temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="58" genre="config" label="Monday evening temp" units="degree" min="40" max="370" value="230" size="2">
+    <Value genre="config" index="58" label="Monday evening temp" max="370" min="40" size="2" type="short" units="degree" value="230">
       <Help>
         Monday evening temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="59" genre="config" label="Monday night temp" units="degree" min="40" max="370" value="180" size="2">
+    <Value genre="config" index="59" label="Monday night temp" max="370" min="40" size="2" type="short" units="degree" value="180">
       <Help>
         Monday night temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="60" genre="config" label="Tuesday morning temp" units="degree" min="40" max="370" value="240" size="2">
+    <Value genre="config" index="60" label="Tuesday morning temp" max="370" min="40" size="2" type="short" units="degree" value="240">
       <Help>
         Tuesday morning temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="61" genre="config" label="Tuesday day temp" units="degree" min="40" max="370" value="200" size="2">
+    <Value genre="config" index="61" label="Tuesday day temp" max="370" min="40" size="2" type="short" units="degree" value="200">
       <Help>
         Tuesday day temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="62" genre="config" label="Tuesday evening temp" units="degree" min="40" max="370" value="230" size="2">
+    <Value genre="config" index="62" label="Tuesday evening temp" max="370" min="40" size="2" type="short" units="degree" value="230">
       <Help>
         Tuesday evening temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="63" genre="config" label="Tuesday night temp" units="degree" min="40" max="370" value="180" size="2">
+    <Value genre="config" index="63" label="Tuesday night temp" max="370" min="40" size="2" type="short" units="degree" value="180">
       <Help>
         Tuesday night temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="64" genre="config" label="Wednesday morning temp" units="degree" min="40" max="370" value="240" size="2">
+    <Value genre="config" index="64" label="Wednesday morning temp" max="370" min="40" size="2" type="short" units="degree" value="240">
       <Help>
         Wednesday morning temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="65" genre="config" label="Wednesday day temp" units="degree" min="40" max="370" value="200" size="2">
+    <Value genre="config" index="65" label="Wednesday day temp" max="370" min="40" size="2" type="short" units="degree" value="200">
       <Help>
         Wednesday day temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="66" genre="config" label="Wednesday evening temp" units="degree" min="40" max="370" value="230" size="2">
+    <Value genre="config" index="66" label="Wednesday evening temp" max="370" min="40" size="2" type="short" units="degree" value="230">
       <Help>
         Wednesday evening temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="67" genre="config" label="Wednesday night temp" units="degree" min="40" max="370" value="180" size="2">
+    <Value genre="config" index="67" label="Wednesday night temp" max="370" min="40" size="2" type="short" units="degree" value="180">
       <Help>
         Wednesday night temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="68" genre="config" label="Thursday morning temp" units="degree" min="40" max="370" value="240" size="2">
+    <Value genre="config" index="68" label="Thursday morning temp" max="370" min="40" size="2" type="short" units="degree" value="240">
       <Help>
         Thursday morning temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="69" genre="config" label="Thursday day temp" units="degree" min="40" max="370" value="200" size="2">
+    <Value genre="config" index="69" label="Thursday day temp" max="370" min="40" size="2" type="short" units="degree" value="200">
       <Help>
         Thursday day temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="70" genre="config" label="Thursday evening temp" units="degree" min="40" max="370" value="230" size="2">
+    <Value genre="config" index="70" label="Thursday evening temp" max="370" min="40" size="2" type="short" units="degree" value="230">
       <Help>
         Thursday evening temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="71" genre="config" label="Thursday night temp" units="degree" min="40" max="370" value="180" size="2">
+    <Value genre="config" index="71" label="Thursday night temp" max="370" min="40" size="2" type="short" units="degree" value="180">
       <Help>
         Thursday night temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="72" genre="config" label="Friday morning temp" units="degree" min="40" max="370" value="240" size="2">
+    <Value genre="config" index="72" label="Friday morning temp" max="370" min="40" size="2" type="short" units="degree" value="240">
       <Help>
         Friday morning temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="73" genre="config" label="Friday day temp" units="degree" min="40" max="370" value="200" size="2">
+    <Value genre="config" index="73" label="Friday day temp" max="370" min="40" size="2" type="short" units="degree" value="200">
       <Help>
         Friday day temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="74" genre="config" label="Friday evening temp" units="degree" min="40" max="370" value="230" size="2">
+    <Value genre="config" index="74" label="Friday evening temp" max="370" min="40" size="2" type="short" units="degree" value="230">
       <Help>
         Friday evening temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="75" genre="config" label="Friday night temp" units="degree" min="40" max="370" value="180" size="2">
+    <Value genre="config" index="75" label="Friday night temp" max="370" min="40" size="2" type="short" units="degree" value="180">
       <Help>
         Friday night temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="76" genre="config" label="Saturday morning temp" units="degree" min="40" max="370" value="240" size="2">
+    <Value genre="config" index="76" label="Saturday morning temp" max="370" min="40" size="2" type="short" units="degree" value="240">
       <Help>
         Saturday morning temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="77" genre="config" label="Saturday day temp" units="degree" min="40" max="370" value="200" size="2">
+    <Value genre="config" index="77" label="Saturday day temp" max="370" min="40" size="2" type="short" units="degree" value="200">
       <Help>
         Saturday day temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="78" genre="config" label="Saturday evening temp" units="degree" min="40" max="370" value="230" size="2">
+    <Value genre="config" index="78" label="Saturday evening temp" max="370" min="40" size="2" type="short" units="degree" value="230">
       <Help>
         Saturday evening temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="79" genre="config" label="Saturday night temp" units="degree" min="40" max="370" value="180" size="2">
+    <Value genre="config" index="79" label="Saturday night temp" max="370" min="40" size="2" type="short" units="degree" value="180">
       <Help>
         Saturday night temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="80" genre="config" label="Sunday morning temp" units="degree" min="40" max="370" value="240" size="2">
+    <Value genre="config" index="80" label="Sunday morning temp" max="370" min="40" size="2" type="short" units="degree" value="240">
       <Help>
         Sunday morning temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="81" genre="config" label="Sunday day temp" units="degree" min="40" max="370" value="200" size="2">
+    <Value genre="config" index="81" label="Sunday day temp" max="370" min="40" size="2" type="short" units="degree" value="200">
       <Help>
         Sunday day temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="82" genre="config" label="Sunday evening temp" units="degree" min="40" max="370" value="230" size="2">
+    <Value genre="config" index="82" label="Sunday evening temp" max="370" min="40" size="2" type="short" units="degree" value="230">
       <Help>
         Sunday evening temperature, value x10
       </Help>
     </Value>
-    <Value type="short" index="83" genre="config" label="Sunday night temp" units="degree" min="40" max="370" value="180" size="2">
+    <Value genre="config" index="83" label="Sunday night temp" max="370" min="40" size="2" type="short" units="degree" value="180">
       <Help>
         Sunday night temperature, value x10
       </Help>
     </Value>
   </CommandClass>
-  
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="1"  label="Lifeline" />
-      <Group index="2" max_associations="10" label="Basic Set" auto="true" />
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group auto="true" index="2" label="Basic Set" max_associations="10"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/homeseer/ezmotionplus.xml b/Config/homeseer/ezmotionplus.xml
index 26f6512299..2d5bffbb35 100644
--- a/Config/homeseer/ezmotionplus.xml
+++ b/Config/homeseer/ezmotionplus.xml
@@ -1,9 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Sensitivity" units="" min="0" max="255" value="200">
-			<Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Sensitivity" max="255" min="0" type="byte" units="" value="200">
+      <Help>
 				Sensitivity sets the amount of motion required for the device to
 				detect motion. A higher value makes it more sensitive and a
 				lower value makes it less sensitive. Note that values above 200
@@ -13,9 +12,9 @@
 				100 = Medium sensitivity for hallways.
 				200(default) = Highly sensitive for rooms where people are sitting still.
 			</Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="On Time" units="minutes" min="0" max="255" value="20">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="On Time" max="255" min="0" type="byte" units="minutes" value="20">
+      <Help>
 				On Time sets the number of minutes that the lights stay on when
 				motion has not been detected.
 				A value of 0 On Time is a special mode where the lights are
@@ -29,19 +28,19 @@
 				still for a long time.
 				This may be inaccurate, but default for Homeseer HSM100 may actually be 3 minutes, instead of 20?				
 			</Help>
-		</Value>
-		<Value type="list" index="3" genre="config" label="LED ON/OFF" units="" min="" max="" size="1" value="255">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="LED ON/OFF" max="" min="" size="1" type="list" units="" value="255">
+      <Help>
 				LED ON/OFF turns the LED on or off. A slight improvement in
 				battery life is obtained by turning the LED off. Setting LED
 				ON/OFF to zero will turn the LED off and 255 turns it on.
 				Default is On (255).
 			</Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Light Threshold" units="%" min="0" max="100" value="100">
-			<Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="4" label="Light Threshold" max="100" min="0" type="byte" units="%" value="100">
+      <Help>
 				Light Threshold is the percentage of light in the room above
 				which the lights will not be turned on. Light Threshold is often
 				used in room with a lot of natural daylight. Setting Light
@@ -61,9 +60,9 @@
 				them on as it is getting dark. Some experimentation is required
 				with each room to determine the proper setting.				
 			</Help>
-		</Value>
-		<Value type="byte" index="5" genre="config" label="Stay Awake" units="" min="0" max="255" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="5" label="Stay Awake" max="255" min="0" type="byte" units="" value="0">
+      <Help>
 				Setting Stay Awake to a non-zero value will cause the device to
 				always be awake. NOTE: this mode should NOT be used when
 				the device is battery powered! Batteries will only last a few days
@@ -79,9 +78,9 @@
 				routing information will be used now that the listening bit is set.
 				Defaults to 0.
 			</Help>
-		</Value>
-		<Value type="byte" index="6" genre="config" label="On Value" units="" min="0" max="255" value="255">
-			<Help>
+    </Value>
+    <Value genre="config" index="6" label="On Value" max="255" min="0" type="byte" units="" value="255">
+      <Help>
 				On Value is the value sent by the Z-Wave BASIC_SET
 				command when motion is detected.
 				A value of 0 will turn the lights off (not recommended).
@@ -90,9 +89,9 @@
 				A value of 255 will turn the light on (default).
 				NB! According to the manual, the value should not be set between 101-254 (inclusive).
 			</Help>
-		</Value>
-		<Value type="byte" index="7" genre="config" label="TempAdj" units="" min="0" max="255" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="7" label="TempAdj" max="255" min="0" type="byte" units="" value="0">
+      <Help>
 				TempAdj is a twos-complement number that is used to adjust the temperature reading to make it more accurate.
 				The value programmed is in tenths of degree Fahrenheit.
 				The temperature reading can be adjusted up to +12.7F to -12.8F.
@@ -101,9 +100,9 @@
 				A value of 123 will adjust the temperature by +12.3F.
 				TempAdj is NOT changed when Excluded (reset) from the Z- Wave network.
 			</Help>
-		</Value>
-		<Value type="byte" index="8" genre="config" label="Reports" units="" min="0" max="255" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="8" label="Reports" max="255" min="0" type="byte" units="" value="0">
+      <Help>
 				Bit mask for disabling the sending of sensor reports at each WakeUp interval.
 				Bit 0=Temperature
 				Bit 1=Luminance
@@ -113,15 +112,23 @@
 				Note that the controller can still request a sensor report but the sensor will not be sent automatically.
 				Disabling sensors will improve battery life.
 			</Help>
-		</Value>
-	</CommandClass>
-    <!-- Basic set as report -->
-    <CommandClass id="32" setasreport="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="96" mapping="endpoints" />
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="4" label="Motion" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Motion" max_associations="4"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/homeseer/hs-fc200plus.xml b/Config/homeseer/hs-fc200plus.xml
index ca57ad2a16..124701df20 100644
--- a/Config/homeseer/hs-fc200plus.xml
+++ b/Config/homeseer/hs-fc200plus.xml
@@ -1,115 +1,106 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     HomeSeer HS-FC200+ Z-Wave Plus RGB Smart Fan Speed Controller Switch
     https://products.z-wavealliance.org/products/2957
     https://homeseer.com/wp-content/uploads/2018/09/HS-FC200-Manual-Online-072318.pdf
     -->
 
     <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="3" genre="config" label="Bottom LED operation" min="0" max="1" size="1" value="1">
-            <Help>Sets bottom LED operation (in normal mode)</Help>
-            <Item label="Bottom LED on if load is off" value="0"/>
-            <Item label="Bottom LED off if load is off" value="1"/>
-        </Value>
-        <Value type="list" index="4" genre="config" label="Paddle load orientation" min="0" max="1" size="1" value="0">
-            <Help>Sets paddle's load orientation</Help>
-            <Item label="Top of paddle turns load ON" value="0"/>
-            <Item label="Bottom of paddle turns load ON" value="1"/>
-        </Value>
-        <Value type="list" index="5" genre="config" label="Fan type" min="0" max="1" size="1" value="0">
-            <Help>Sets fan type</Help>
-            <Item label="3-speed" value="0"/>
-            <Item label="4-speed" value="1"/>
-        </Value>
-        <Value type="list" index="13" genre="config" label="LED indicator mode" min="0" max="1" size="1" value="0">
-            <Help>Sets LED indicator mode of operation</Help>
-            <Item label="Normal mode (load status)" value="0"/>
-            <Item label="Status mode (custom status)" value="1"/>
-        </Value>
-        <Value type="list" index="14" genre="config" label="Normal mode LED color" min="0" max="6" size="1" value="0">
-            <Help>Sets the Normal mode LED color</Help>
-            <Item label="White" value="0"/>
-            <Item label="Red" value="1"/>
-            <Item label="Green" value="2"/>
-            <Item label="Blue" value="3"/>
-            <Item label="Magenta" value="4"/>
-            <Item label="Yellow" value="5"/>
-            <Item label="Cyan" value="6"/>
-        </Value>        
-        <Value type="list" index="21" genre="config" label="Status mode LED 1 (bottom) color" min="0" max="7" size="1" value="0">
-            <Help>Sets the Status mode LED 1 (bottom) color</Help>
-            <Item label="Off" value="0"/>
-            <Item label="Red" value="1"/>
-            <Item label="Green" value="2"/>
-            <Item label="Blue" value="3"/>
-            <Item label="Magenta" value="4"/>
-            <Item label="Yellow" value="5"/>
-            <Item label="Cyan" value="6"/>
-            <Item label="White" value="7"/>
-        </Value>        
-        <Value type="list" index="22" genre="config" label="Status mode LED 2 color" min="0" max="7" size="1" value="0">
-            <Help>Sets the Status mode LED 2 color</Help>
-            <Item label="Off" value="0"/>
-            <Item label="Red" value="1"/>
-            <Item label="Green" value="2"/>
-            <Item label="Blue" value="3"/>
-            <Item label="Magenta" value="4"/>
-            <Item label="Yellow" value="5"/>
-            <Item label="Cyan" value="6"/>
-            <Item label="White" value="7"/>
-        </Value>        
-        <Value type="list" index="23" genre="config" label="Status mode LED 3 color" min="0" max="7" size="1" value="0">
-            <Help>Sets the Status mode LED 3 color</Help>
-            <Item label="Off" value="0"/>
-            <Item label="Red" value="1"/>
-            <Item label="Green" value="2"/>
-            <Item label="Blue" value="3"/>
-            <Item label="Magenta" value="4"/>
-            <Item label="Yellow" value="5"/>
-            <Item label="Cyan" value="6"/>
-            <Item label="White" value="7"/>
-        </Value>        
-        <Value type="list" index="24" genre="config" label="Status mode LED 4 color" min="0" max="7" size="1" value="0">
-            <Help>Sets the Status mode LED 4 color</Help>
-            <Item label="Off" value="0"/>
-            <Item label="Red" value="1"/>
-            <Item label="Green" value="2"/>
-            <Item label="Blue" value="3"/>
-            <Item label="Magenta" value="4"/>
-            <Item label="Yellow" value="5"/>
-            <Item label="Cyan" value="6"/>
-            <Item label="White" value="7"/>
-        </Value>        
-        <Value type="byte" index="30" genre="config" label="Blink frequency for all LEDs in Status mode" min="0" max="255" value="0">
-            <Help>Sets the blink frequency for all LEDs in Status mode. Possible values: 0, 1-255
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="Bottom LED operation" max="1" min="0" size="1" type="list" value="1">
+      <Help>Sets bottom LED operation (in normal mode)</Help>
+      <Item label="Bottom LED on if load is off" value="0"/>
+      <Item label="Bottom LED off if load is off" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Paddle load orientation" max="1" min="0" size="1" type="list" value="0">
+      <Help>Sets paddle's load orientation</Help>
+      <Item label="Top of paddle turns load ON" value="0"/>
+      <Item label="Bottom of paddle turns load ON" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Fan type" max="1" min="0" size="1" type="list" value="0">
+      <Help>Sets fan type</Help>
+      <Item label="3-speed" value="0"/>
+      <Item label="4-speed" value="1"/>
+    </Value>
+    <Value genre="config" index="13" label="LED indicator mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>Sets LED indicator mode of operation</Help>
+      <Item label="Normal mode (load status)" value="0"/>
+      <Item label="Status mode (custom status)" value="1"/>
+    </Value>
+    <Value genre="config" index="14" label="Normal mode LED color" max="6" min="0" size="1" type="list" value="0">
+      <Help>Sets the Normal mode LED color</Help>
+      <Item label="White" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Magenta" value="4"/>
+      <Item label="Yellow" value="5"/>
+      <Item label="Cyan" value="6"/>
+    </Value>
+    <Value genre="config" index="21" label="Status mode LED 1 (bottom) color" max="7" min="0" size="1" type="list" value="0">
+      <Help>Sets the Status mode LED 1 (bottom) color</Help>
+      <Item label="Off" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Magenta" value="4"/>
+      <Item label="Yellow" value="5"/>
+      <Item label="Cyan" value="6"/>
+      <Item label="White" value="7"/>
+    </Value>
+    <Value genre="config" index="22" label="Status mode LED 2 color" max="7" min="0" size="1" type="list" value="0">
+      <Help>Sets the Status mode LED 2 color</Help>
+      <Item label="Off" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Magenta" value="4"/>
+      <Item label="Yellow" value="5"/>
+      <Item label="Cyan" value="6"/>
+      <Item label="White" value="7"/>
+    </Value>
+    <Value genre="config" index="23" label="Status mode LED 3 color" max="7" min="0" size="1" type="list" value="0">
+      <Help>Sets the Status mode LED 3 color</Help>
+      <Item label="Off" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Magenta" value="4"/>
+      <Item label="Yellow" value="5"/>
+      <Item label="Cyan" value="6"/>
+      <Item label="White" value="7"/>
+    </Value>
+    <Value genre="config" index="24" label="Status mode LED 4 color" max="7" min="0" size="1" type="list" value="0">
+      <Help>Sets the Status mode LED 4 color</Help>
+      <Item label="Off" value="0"/>
+      <Item label="Red" value="1"/>
+      <Item label="Green" value="2"/>
+      <Item label="Blue" value="3"/>
+      <Item label="Magenta" value="4"/>
+      <Item label="Yellow" value="5"/>
+      <Item label="Cyan" value="6"/>
+      <Item label="White" value="7"/>
+    </Value>
+    <Value genre="config" index="30" label="Blink frequency for all LEDs in Status mode" max="255" min="0" type="byte" value="0">
+      <Help>Sets the blink frequency for all LEDs in Status mode. Possible values: 0, 1-255
               0 = No blink
               1 = 100ms ON then 100ms OFF
             </Help>
-        </Value> 
-        <Value type="byte" index="31" genre="config" label="LEDs to blink in status mode" min="0" max="15" value="0">
-          <Help>Sets LEDs 1-4 to blink in Status mode. Bitmask defines specific LEDs to enable for blinking. Note: this decimal value is derived from a hex code calculation based on the following: 
+    </Value>
+    <Value genre="config" index="31" label="LEDs to blink in status mode" max="15" min="0" type="byte" value="0">
+      <Help>Sets LEDs 1-4 to blink in Status mode. Bitmask defines specific LEDs to enable for blinking. Note: this decimal value is derived from a hex code calculation based on the following: 
               Bit 0 = LED 1
               Bit 1 = LED 2
               Bit 2 = LED 3
               Bit 3 = LED 4
               IE: value of 1 = first LED, 8 = LED 4
             </Help>
-        </Value>        
-    </CommandClass>
-
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
-
-    <!-- Central Scene Reports -->
-    <CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="4" scenecount="0">
-      <Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="2" />
-      <Value type="int" genre="user" instance="1" index="1" label="Top Button Scene" units="" read_only="false" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0" />
-      <Value type="int" genre="user" instance="1" index="2" label="Bottom Button Scene" units="" read_only="false" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0" />
-    </CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/homeseer/hs-fls100plus.xml b/Config/homeseer/hs-fls100plus.xml
index 4202931550..449a578868 100644
--- a/Config/homeseer/hs-fls100plus.xml
+++ b/Config/homeseer/hs-fls100plus.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value genre="config" type="short" instance="1" index="1" value="15" label="PIR Trigger Off Period" units="seconds" size="2" min="8" max="720">
diff --git a/Config/homeseer/hs-fs100plus.xml b/Config/homeseer/hs-fs100plus.xml
new file mode 100644
index 0000000000..18f62bdfab
--- /dev/null
+++ b/Config/homeseer/hs-fs100plus.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+    <!--
+      HomeSeer HS-FS100+ Flex Sensor
+      https://products.z-wavealliance.org/products/3050
+      Manual: https://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/3050/HS-FS100-Manual%20081418.pdf
+      Config capabilities: https://products.z-wavealliance.org/products/3050/configs
+    -->
+
+    <!-- Configuration Parameters -->
+    <CommandClass id="112">
+        <Value type="list" index="1" genre="config" label="Sets light sensitivity" min="0" max="2" size="1" value="2">
+            <Help>Operation with the Light Sensor cable on USB power.</Help>
+            <Item label="High Sensitivity" value="0"/>
+            <Item label="Medium Sensitivity" value="1"/>
+            <Item label="Low Sensitivity" value="2"/>
+        </Value>
+        <Value type="list" index="2" genre="config" label="Water detection beep frequency" min="0" max="2" size="1" value="0">
+            <Help>Beep interval when on battery power and on USB power during the time water is detected.</Help>
+            <Item label="10 minutes" value="0"/>
+            <Item label="5 minutes" value="1"/>
+            <Item label="30 minutes" value="2"/>
+        </Value>
+        <Value type="byte" index="3" genre="config" label="Temperature report interval" units="seconds" min="30" max="255" size="1" value="60">
+            <Help>Temperature report interval on USB power, seconds.</Help>
+        </Value>
+        <Value type="list" index="4" genre="config" label="Notification buzzer" min="0" max="1" size="1" value="1">
+            <Help>The buzzer may be disabled when detecting water on line power or battery, the default value is set to enabled.
+            </Help>
+            <Item label="Disable" value="0"/>
+            <Item label="Enable" value="1"/>
+        </Value>
+        <Value type="byte" index="5" genre="config" label="Light detection delay" units="seconds" min="0" max="20" size="1" value="0">
+            <Help>Set delay to avoid continuous notifications when detecting flashing LEDs. Flex Sensor will not send notification until flashing LED status changes. Note: Use only when detecting flashing LEDs.</Help>
+        </Value>
+    </CommandClass>
+
+    <!-- Association Groups -->
+    <CommandClass id="133">
+        <Associations num_groups="1">
+            <Group index="1" max_associations="5" label="Lifeline"/>
+        </Associations>
+    </CommandClass>
+</Product>
diff --git a/Config/homeseer/hs-ls100plus.xml b/Config/homeseer/hs-ls100plus.xml
index 5748951845..fd626a6a4c 100644
--- a/Config/homeseer/hs-ls100plus.xml
+++ b/Config/homeseer/hs-ls100plus.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
       HomeSeer HS-LS100+ Leak Sensor
       https://products.z-wavealliance.org/products/2735
diff --git a/Config/homeseer/hs-ms100plus.xml b/Config/homeseer/hs-ms100plus.xml
index 60258496d7..1e5beacfdd 100644
--- a/Config/homeseer/hs-ms100plus.xml
+++ b/Config/homeseer/hs-ms100plus.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     HomeSeer Motion Sensor HS-MS100+
     https://products.z-wavealliance.org/products/2729
diff --git a/Config/homeseer/hs-wd100plus.xml b/Config/homeseer/hs-wd100plus.xml
index 9536bab61d..edb797e411 100644
--- a/Config/homeseer/hs-wd100plus.xml
+++ b/Config/homeseer/hs-wd100plus.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" index="4" genre="config" label="Invert switch" min="0" max="1" size="1" value="0">
diff --git a/Config/homeseer/hs-wd200plus.xml b/Config/homeseer/hs-wd200plus.xml
index 1fa78d1648..5c9251bc34 100644
--- a/Config/homeseer/hs-wd200plus.xml
+++ b/Config/homeseer/hs-wd200plus.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" index="3" genre="config" label="Sets bottom LED operation" min="0" max="1" size="1" value="1">
diff --git a/Config/homeseer/hs-ws100plus.xml b/Config/homeseer/hs-ws100plus.xml
index ff847c4333..c6c2cbc8d0 100644
--- a/Config/homeseer/hs-ws100plus.xml
+++ b/Config/homeseer/hs-ws100plus.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" index="4" genre="config" label="Invert switch" min="0" max="1" size="1" value="0">
diff --git a/Config/homeseer/hs-ws200plus.xml b/Config/homeseer/hs-ws200plus.xml
index fb08f6f437..69808fa312 100644
--- a/Config/homeseer/hs-ws200plus.xml
+++ b/Config/homeseer/hs-ws200plus.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" index="3" genre="config" label="Sets bottom LED operation" min="0" max="1" size="1" value="1">
diff --git a/Config/homeseer/hsm100.xml b/Config/homeseer/hsm100.xml
index 58f8db4801..d005309139 100644
--- a/Config/homeseer/hsm100.xml
+++ b/Config/homeseer/hsm100.xml
@@ -1,9 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Sensitivity" units="" min="0" max="255" value="200">
-			<Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Sensitivity" max="255" min="0" type="byte" units="" value="200">
+      <Help>
 				Sensitivity sets the amount of motion required for the device to
 				detect motion. A higher value makes it more sensitive and a
 				lower value makes it less sensitive. Note that values above 200
@@ -13,9 +12,9 @@
 				100 = Medium sensitivity for hallways.
 				200(default) = Highly sensitive for rooms where people are sitting still.
 			</Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="On Time" units="minutes" min="0" max="255" value="20">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="On Time" max="255" min="0" type="byte" units="minutes" value="20">
+      <Help>
 				On Time sets the number of minutes that the lights stay on when
 				motion has not been detected.
 				A value of 0 On Time is a special mode where the lights are
@@ -29,19 +28,19 @@
 				still for a long time.
 				This may be inaccurate, but default for Homeseer HSM100 may actually be 3 minutes, instead of 20?
 			</Help>
-		</Value>
-		<Value type="list" index="3" genre="config" label="LED ON/OFF" units="" min="" max="" size="1" value="255">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="LED ON/OFF" max="" min="" size="1" type="list" units="" value="255">
+      <Help>
 				LED ON/OFF turns the LED on or off. A slight improvement in
 				battery life is obtained by turning the LED off. Setting LED
 				ON/OFF to zero will turn the LED off and 255 turns it on.
 				Default is On (255).
 			</Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="255"/>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Light Threshold" units="%" min="0" max="100" value="100">
-			<Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="4" label="Light Threshold" max="100" min="0" type="byte" units="%" value="100">
+      <Help>
 				Light Threshold is the percentage of light in the room above
 				which the lights will not be turned on. Light Threshold is often
 				used in room with a lot of natural daylight. Setting Light
@@ -61,9 +60,9 @@
 				them on as it is getting dark. Some experimentation is required
 				with each room to determine the proper setting.
 			</Help>
-		</Value>
-		<Value type="byte" index="5" genre="config" label="Stay Awake" units="" min="0" max="255" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="5" label="Stay Awake" max="255" min="0" type="byte" units="" value="0">
+      <Help>
 				Setting Stay Awake to a non-zero value will cause the device to
 				always be awake. NOTE: this mode should NOT be used when
 				the device is battery powered! Batteries will only last a few days
@@ -79,9 +78,9 @@
 				routing information will be used now that the listening bit is set.
 				Defaults to 0.
 			</Help>
-		</Value>
-		<Value type="byte" index="6" genre="config" label="On Value" units="" min="0" max="255" value="255">
-			<Help>
+    </Value>
+    <Value genre="config" index="6" label="On Value" max="255" min="0" type="byte" units="" value="255">
+      <Help>
 				On Value is the value sent by the Z-Wave BASIC_SET
 				command when motion is detected.
 				A value of 0 will turn the lights off (not recommended).
@@ -90,9 +89,9 @@
 				A value of 255 will turn the light on (default).
 				NB! According to the manual, the value should not be set between 101-254 (inclusive).
 			</Help>
-		</Value>
-		<Value type="byte" index="7" genre="config" label="TempAdj" units="" min="0" max="255" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="7" label="TempAdj" max="255" min="0" type="byte" units="" value="0">
+      <Help>
 				TempAdj is a twos-complement number that is used to adjust the temperature reading to make it more accurate.
 				The value programmed is in tenths of degree Fahrenheit.
 				The temperature reading can be adjusted up to +12.7F to -12.8F.
@@ -101,18 +100,20 @@
 				A value of 123 will adjust the temperature by +12.3F.
 				TempAdj is NOT changed when Excluded (reset) from the Z- Wave network.
 			</Help>
-		</Value>
-
-	</CommandClass>
-
-    <!-- add Basic set CC to raise a node_event -->
-	<CommandClass id="32" action="add" />
-	<!-- map endpoints -->
-	<CommandClass id="96" mapping="endpoints" />
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="4" label="Motion"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- add Basic set CC to raise a node_event -->
+  <CommandClass action="add" id="32"/>
+  <!-- map endpoints -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Motion" max_associations="4"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/homeseer/hsm200.xml b/Config/homeseer/hsm200.xml
index 77df2369f0..bb11fcb70b 100644
--- a/Config/homeseer/hsm200.xml
+++ b/Config/homeseer/hsm200.xml
@@ -1,15 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="0" genre="config" label="Unidentified Parameter" units="" min="0" max="255" value="5">
-			<Help>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001E:0001:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/homeseer/hsm200.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1254/</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1254/HomeSeer-HSM200-Guide-ndc.pdf</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave Multi-Sensor HSM200</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two methods for exclusion:
+1) Put the controller into exclusion mode, then press and release the push button on the side of the HSM200. The LED will blink aqua when no longer joined to the network.
+2) (Use this procedure only when your primary controller is missing or otherwise inoperable.)  Press and hold the push button. The LED will blink blue faster and faster and then shift to yellow and continue to blink faster and faster. Once the LED goes out, the HSM200 is reset to the factory defaults and will blink aqua.
+Method 1 is recommended. Method 2 should only to be used in the event that the primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">When the HSM200 has not yet been joined to a Z-Wave network, the LED blinks aqua.
+
+To Include: Put the controller into learn mode, (in the HomeSeer Z-Wave Plug-in, choose controller functions and add/include device.) then press and release the push button on the side of the HSM200. The LED will blink blue while the HSM200 is trying to join the Z-Wave network.  Once joined to the network, the HSM200 enters a motion sensor test mode and the LED will blink white each time motion is detected. This mode lasts for about 5 minutes and then the LED will go out.
+If the HSM200 is unable to join the network, it will return to blinking aqua.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Excluding from a Z-Wave network will return the device to factory defaults. See the Product Exclusion Description for details.
+</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0004">HSM200</MetaDataItem>
+    <MetaDataItem name="Description">The HSM200 senses motion, temperature and light level, can function as a night light, and can also be programmed to display up to 7 different glowing colors when things happen in the home!
+ 
+Since the HSM200 is line powered, there are no batteries to change and the unit automatically operates as a Z-Wave network repeater.  Installation is fast and easy. Just plug into any available 120v outlet and tap the button on the side to join it to your Z-Wave network.
+ 
+HSM200 is compatible with any HomeSeer HS3-based system, including the full line of HomeTrollers, and Z-Wave systems from 3rd parties.  HomeSeer users can create events to display different colors when motion is sensed, doors are opened, water leaks are detected or just about anything else happens in the home. Color options  include red, green, blue, yellow, magenta, cyan and white. The unit can also be programmed to work as a night light after hours.</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0004">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1124/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1254/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductPage">http://store.homeseer.com/store/X-P1882.aspx</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="0" label="Unidentified Parameter" max="255" min="0" type="byte" units="" value="5">
+      <Help>
 				Parameter #0 is undocumented: let us know if you know what it does!
 				Attributes (type, units, min and max) are wild guesses, except default value.
 			</Help>
-		</Value>
-		<Value type="byte" index="1" genre="config" label="On Time" units="minutes" min="0" max="255" value="20">
-			<Help>
+    </Value>
+    <Value genre="config" index="1" label="On Time" max="255" min="0" type="byte" units="minutes" value="20">
+      <Help>
 				On Time sets the number of minutes that the lights stay on when
 				motion has not been detected.
 				A value of 0 On Time is a special mode where the lights are
@@ -23,38 +51,38 @@
 				still for a long time.
 				This may be inaccurate, but default for Homeseer HSM100 may actually be 3 minutes, instead of 20?				
 			</Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="On Level" min="-1" max="99" value="99">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="On Level" max="99" min="-1" type="byte" value="99">
+      <Help>
 				OnLevel is the value sent by the Z-Wave BASIC_SET command to all Association Group 2 nodes when motion is detected. 
 				A value of 0 will turn the lights off (not recommended).
 				A value between 1 and 99 will set the dim level to between 1% and 99% (99% is full on).
 				A value of -1 will turn the light on which depends on the device but most will set the dim level to the last dim setting.
 			</Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Lite Minutes" min="0" max="255" value="5">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="Lite Minutes" max="255" min="0" type="byte" value="5">
+      <Help>
 				LiteMinutes. A Luminance report is sent to the system controller every LiteMin minutes.
 				A value of zero turns this mode off. Luminance values can still be obtained at any time by the home control application in this mode.
 			</Help>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Temp Minutes" min="0" max="255" value="5">
-			<Help>
+    </Value>
+    <Value genre="config" index="4" label="Temp Minutes" max="255" min="0" type="byte" value="5">
+      <Help>
 				TempMinutes. A Temperature report is sent to the controller every TempMin minutes.
 				A value of zero turns this mode off. Temperature values can still be obtained at any time by polling the status of the temperature sensor.
 			</Help>
-		</Value>
-		<Value type="byte" index="5" genre="config" label="Temp Adj" min="-128" max="127" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="5" label="Temp Adj" max="127" min="-128" type="byte" value="0">
+      <Help>
 				TempAdj. TempAdj is a twos-complement number that is used to adjust the temperature reading to make it more accurate. The value is in tenths of degree Fahrenheit. The temperature reading can be adjusted by +12.7F to -12.8F. A value of 1 will adjust the temperature reading by +0.1F. A value of -1 will adjust the temperature by -0.1F. A value of 123 will adjust the temperature by +12.3F.
 			</Help>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="1" label="Motion Notification" />
-			<Group index="2" max_associations="4" label="Motion Control" auto="true"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Motion Notification" max_associations="1"/>
+      <Group auto="true" index="2" label="Motion Control" max_associations="4"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/homeseer/ztroller.xml b/Config/homeseer/ztroller.xml
index 5524ffcdc5..0eb824f78e 100644
--- a/Config/homeseer/ztroller.xml
+++ b/Config/homeseer/ztroller.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <Protocol>
     <APIcall function="0x80" present="true" />
   </Protocol>
diff --git a/Config/honeywell/39351-ZW3005.xml b/Config/honeywell/39351-ZW3005.xml
index efae040c80..ee49d87eb5 100644
--- a/Config/honeywell/39351-ZW3005.xml
+++ b/Config/honeywell/39351-ZW3005.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Honeywell(Jasco) 39351 / ZW3005 In-Wall Smart Dimmerh -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters - per https://products.z-wavealliance.org/products/2724 -->
 	<CommandClass id="112">
 		<Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" value="0" size="1">
diff --git a/Config/honeywell/lynx-touch-l5100.xml b/Config/honeywell/lynx-touch-l5100.xml
index 659aecd346..37622199d4 100644
--- a/Config/honeywell/lynx-touch-l5100.xml
+++ b/Config/honeywell/lynx-touch-l5100.xml
@@ -1,9 +1,20 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
   
   Honeywell Lynx Touch L5100 
   https://products.z-wavealliance.org/products/678
 
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0039:0003:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/honeywell/lynx-touch-l5100.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/678/</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0001">L5100</MetaDataItem>
+    <MetaDataItem name="Name">Honeywell Lynx Touch L5100</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">Honeywell </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/678/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
 </Product>
diff --git a/Config/honeywell/th6320zw2003.xml b/Config/honeywell/th6320zw2003.xml
new file mode 100644
index 0000000000..72ef8aa3ab
--- /dev/null
+++ b/Config/honeywell/th6320zw2003.xml
@@ -0,0 +1,388 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- This thermostat's setpoint descriptions are 1 based, not 0 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Schedule Type" max="4" min="0" size="1" type="list" units="" value="2">
+      <Help>
+        Schedule Type
+      </Help>
+      <Item label="No schedule/Occupancy based schedule" value="0"/>
+      <Item label="Every day the same" value="1"/>
+      <Item label="5-2 Schedule" value="2"/>
+      <Item label="5-1-1 Schedule" value="3"/>
+      <Item label="Every day individual" value="4"/>
+    </Value>
+    <Value genre="config" index="2" label="Temperature Scale" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Temperature Scale
+      </Help>
+      <Item label="Fahrenheit" value="0"/>
+      <Item label="Celsius" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="Outdoor Temperature" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Outdoor Temperature Sensor
+      </Help>
+      <Item label="No" value="0"/>
+      <Item label="Wired" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Equipment Type" max="9" min="0" size="1" type="list" units="" value="2">
+      <Help>
+        Equipment Type
+      </Help>
+      <Item label="None" value="0"/>
+      <Item label="Standard Gas" value="1"/>
+      <Item label="High Efficiency Gas" value="2"/>
+      <Item label="Oil" value="3"/>
+      <Item label="Electric" value="4"/>
+      <Item label="Fan Coil" value="5"/>
+      <Item label="Air to Air Heat pump" value="6"/>
+      <Item label="Geothermal Heat Pump" value="7"/>
+      <Item label="Hot Water" value="8"/>
+      <Item label="Steam" value="9"/>
+    </Value>
+    <Value genre="config" index="5" label="Reversing Valve" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Reversing Valve
+      </Help>
+      <Item label="O/B on Cool" value="0"/>
+      <Item label="O/B on Heat" value="1"/>
+    </Value>
+    <Value genre="config" index="6" label="Cool Stages" max="2" min="0" size="1" type="byte" units="" value="1">
+      <Help>
+        Stages
+      </Help>
+    </Value>
+    <Value genre="config" index="7" label="Heat Stages Auxiliary/Emergency stages" max="2" min="0" size="1" type="byte" units="" value="1">
+      <Help>
+        Stages
+      </Help>
+    </Value>
+    <Value genre="config" index="8" label="Auxiliary/Emergency Control" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help></Help>
+      <Item label="Both Aux and E" value="0"/>
+      <Item label="Either Aux/E" value="1"/>
+    </Value>
+    <Value genre="config" index="9" label="Auxiliary Heat Type" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Auxiliary Heat Control
+      </Help>
+      <Item label="Electric" value="0"/>
+      <Item label="Gas/Oil" value="1"/>
+    </Value>
+    <Value genre="config" index="10" label="Emergency Heat Type" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Emergency Heat Type
+      </Help>
+      <Item label="Electric" value="0"/>
+      <Item label="Gas/Oil" value="1"/>
+    </Value>
+    <Value genre="config" index="11" label="Fossil Kit Control" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Fossil Kit Control
+      </Help>
+      <Item label="Thermostat" value="0"/>
+      <Item label="External" value="1"/>
+    </Value>
+    <Value genre="config" index="12" label="Auto Changeover" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        ADVANCED PARAMETER SHOULD ONLY BE CHANGED FROM ITS DEFAULT VALUE BY A QUALIFIED HVAC PROFESSIONAL
+      </Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="1"/>
+    </Value>
+    <Value genre="config" index="13" label="Auto Differential" max="5" min="0" size="1" type="byte" units="F" value="0">
+      <Help>
+        Auto Differential in degrees Fahrenheit
+      </Help>
+    </Value>
+    <Value genre="config" index="14" label="High Cool Stage Finish" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        High Cool Stage Finish
+      </Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="15" label="High Heat Stage Finish" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        High Heat Stage Finish
+      </Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="16" label="Auxiliary Heat Droop" max="15" min="0" size="1" type="list" units="F" value="0">
+      <Help>
+        0 = Comfort (1 is not accepted) Integer from 2 to 15 degrees of Fahrenheit from setpoint
+      </Help>
+      <Item label="Comfort" value="0"/>
+      <Item label="2F" value="2"/>
+      <Item label="3F" value="3"/>
+      <Item label="4F" value="4"/>
+      <Item label="5F" value="5"/>
+      <Item label="6F" value="6"/>
+      <Item label="7F" value="7"/>
+      <Item label="8F" value="8"/>
+      <Item label="9F" value="9"/>
+      <Item label="10F" value="10"/>
+      <Item label="11F" value="11"/>
+      <Item label="12F" value="12"/>
+      <Item label="13F" value="13"/>
+      <Item label="14F" value="14"/>
+      <Item label="15F" value="15"/>
+    </Value>
+    <Value genre="config" index="17" label="Up Stage Timer Aux Heat" max="15" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Up Stage Timer Auxiliary Heat
+      </Help>
+      <Item label="Off" value="0"/>
+      <Item label="30 minutes" value="1"/>
+      <Item label="45 minutes" value="2"/>
+      <Item label="60 minutes" value="3"/>
+      <Item label="75 minutes" value="4"/>
+      <Item label="90 minutes" value="5"/>
+      <Item label="2 hours" value="6"/>
+      <Item label="3 hours" value="7"/>
+      <Item label="4 hours" value="8"/>
+      <Item label="5 hours" value="9"/>
+      <Item label="6 hours" value="10"/>
+      <Item label="8 hours" value="11"/>
+      <Item label="10 hours" value="12"/>
+      <Item label="12 hours" value="13"/>
+      <Item label="14 hours" value="14"/>
+      <Item label="16 hours" value="15"/>
+    </Value>
+    <Value genre="config" index="18" label="Balance Point (Compressor Lockout)" max="65" min="0" size="1" type="list" units="" value="65">
+      <Help>
+        0 = Off integer from 5 to 65 degrees Fahrenheit in only 5 degrees increments. Other values not accepted.
+      </Help>
+      <Item label="Balance Point Off" value="0"/>
+      <Item label="Balance Point 5 degrees Fahrenheit" value="5"/>
+      <Item label="Balance Point 10 degrees Fahrenheit" value="10"/>
+      <Item label="Balance Point 15 degrees Fahrenheit" value="15"/>
+      <Item label="Balance Point 20 degrees Fahrenheit" value="20"/>
+      <Item label="Balance Point 25 degrees Fahrenheit" value="25"/>
+      <Item label="Balance Point 30 degrees Fahrenheit" value="30"/>
+      <Item label="Balance Point 35 degrees Fahrenheit" value="35"/>
+      <Item label="Balance Point 40 degrees Fahrenheit" value="40"/>
+      <Item label="Balance Point 55 degrees Fahrenheit" value="55"/>
+      <Item label="Balance Point 60 degrees Fahrenheit" value="60"/>
+      <Item label="Balance Point 65 degrees Fahrenheit" value="65"/>
+    </Value>
+    <Value genre="config" index="19" label="Aux Heat Lock Out (Aux Heat Outdoor Lockout)" max="65" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        0 = Off integer from 5 to 65 degrees Fahrenheit in only 5 degrees increments. Other values not accepted.
+      </Help>
+      <Item label="Aux Heat Lockout Off" value="0"/>
+      <Item label="Aux Heat Lockout 5 degrees Fahrenheit" value="5"/>
+      <Item label="Aux Heat Lockout 10 degrees Fahrenheit" value="10"/>
+      <Item label="Aux Heat Lockout 15 degrees Fahrenheit" value="15"/>
+      <Item label="Aux Heat Lockout 20 degrees Fahrenheit" value="20"/>
+      <Item label="Aux Heat Lockout 25 degrees Fahrenheit" value="25"/>
+      <Item label="Aux Heat Lockout 30 degrees Fahrenheit" value="30"/>
+      <Item label="Aux Heat Lockout 35 degrees Fahrenheit" value="35"/>
+      <Item label="Aux Heat Lockout 40 degrees Fahrenheit" value="40"/>
+      <Item label="Aux Heat Lockout 55 degrees Fahrenheit" value="55"/>
+      <Item label="Aux Heat Lockout 60 degrees Fahrenheit" value="60"/>
+      <Item label="Aux Heat Lockout 65 degrees Fahrenheit" value="65"/>
+    </Value>
+    <Value genre="config" index="20" label="Cool 1 CPH (Cooling cycle rate stage 1)" max="6" min="1" size="1" type="byte" units="" value="3">
+      <Help>
+        Cycle rates per hour
+      </Help>
+    </Value>
+    <Value genre="config" index="21" label="Cool 2 CPH (Cooling cycle rate stage 2)" max="6" min="1" size="1" type="byte" units="" value="3">
+      <Help>
+        Cycle rates per hour
+      </Help>
+    </Value>
+    <Value genre="config" index="22" label="Heat 1 CPH (Heating cycle rate stage 1)" max="12" min="1" size="1" type="byte" units="" value="3">
+      <Help>
+        Cycle rates per hour
+      </Help>
+    </Value>
+    <Value genre="config" index="23" label="Heat 2 CPH (Heating cycle rate stage 2)" max="12" min="1" size="1" type="byte" units="" value="3">
+      <Help>
+        Cycle rates per hour
+      </Help>
+    </Value>
+    <Value genre="config" index="24" label="Aux Heat CPH (Heating cycle rate Auxiliary Heat)" max="12" min="1" size="1" type="byte" units="" value="9">
+      <Help>
+        Cycle rates per hour
+      </Help>
+    </Value>
+    <Value genre="config" index="25" label="EM Heat CPH (Heating cycle rate Emergency Heat)" max="12" min="1" size="1" type="byte" units="" value="9">
+      <Help>
+        Cycle rates per hour
+      </Help>
+    </Value>
+    <Value genre="config" index="26" label="Compressor Protection" max="5" min="0" size="1" type="byte" units="" value="5">
+      <Help>
+        0 = Off Integer from 1-5 minutes
+      </Help>
+      <Item label="Off" value="0"/>
+      <Item label="1 minute" value="1"/>
+      <Item label="2 minute" value="2"/>
+      <Item label="3 minute" value="3"/>
+      <Item label="4 minute" value="4"/>
+      <Item label="5 minute" value="5"/>
+    </Value>
+    <Value genre="config" index="27" label="Adaptive Intelligent Recovery" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
+        Adaptive Intelligent Recovery
+      </Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="1"/>
+    </Value>
+    <Value genre="config" index="28" label="Minimum Cool Temperature" max="99" min="50" size="1" type="byte" units="F" value="50">
+      <Help>
+        Degrees Fahrenheit
+      </Help>
+    </Value>
+    <Value genre="config" index="29" label="Maximum Heat Temperature" max="90" min="40" size="1" type="byte" units="F" value="90">
+      <Help>
+        Degrees Fahrenheit
+      </Help>
+    </Value>
+    <Value genre="config" index="30" label="Air Filters" max="2" min="0" size="1" type="byte" units="" value="0">
+      <Help>
+        Number of air filters
+      </Help>
+    </Value>
+    <Value genre="config" index="31" label="Air Filter 1 Reminder" max="19" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Air Filter 1 Reminder
+      </Help>
+      <Item label="Off" value="0"/>
+      <Item label="10 Run time Days" value="1"/>
+      <Item label="20 Run time Days" value="2"/>
+      <Item label="30 Run time Days" value="3"/>
+      <Item label="45 Run time Days" value="4"/>
+      <Item label="60 Run time Days" value="5"/>
+      <Item label="90 Run time Days" value="6"/>
+      <Item label="120 Run time Days" value="7"/>
+      <Item label="150 Run time Days" value="8"/>
+      <Item label="30 Days" value="9"/>
+      <Item label="45 Days" value="10"/>
+      <Item label="60 Days" value="11"/>
+      <Item label="75 Days" value="12"/>
+      <Item label="3 Months" value="13"/>
+      <Item label="4 Months" value="14"/>
+      <Item label="5 Months" value="15"/>
+      <Item label="6 Months" value="16"/>
+      <Item label="9 Months" value="17"/>
+      <Item label="12 Months" value="18"/>
+      <Item label="15 Months" value="19"/>
+    </Value>
+    <Value genre="config" index="32" label="Air Filter 2 Reminder" max="19" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Air Filter 2 Reminder
+      </Help>
+      <Item label="Off" value="0"/>
+      <Item label="10 Run time Days" value="1"/>
+      <Item label="20 Run time Days" value="2"/>
+      <Item label="30 Run time Days" value="3"/>
+      <Item label="45 Run time Days" value="4"/>
+      <Item label="60 Run time Days" value="5"/>
+      <Item label="90 Run time Days" value="6"/>
+      <Item label="120 Run time Days" value="7"/>
+      <Item label="150 Run time Days" value="8"/>
+      <Item label="30 Days" value="9"/>
+      <Item label="45 Days" value="10"/>
+      <Item label="60 Days" value="11"/>
+      <Item label="75 Days" value="12"/>
+      <Item label="3 Months" value="13"/>
+      <Item label="4 Months" value="14"/>
+      <Item label="5 Months" value="15"/>
+      <Item label="6 Months" value="16"/>
+      <Item label="9 Months" value="17"/>
+      <Item label="12 Months" value="18"/>
+      <Item label="15 Months" value="19"/>
+    </Value>
+    <Value genre="config" index="33" label="Humidification Pad Reminder" max="2" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Humidification Pad Reminder
+      </Help>
+      <Item label="Off" value="0"/>
+      <Item label="6 Calendar Months" value="1"/>
+      <Item label="12 Calendar Months" value="2"/>
+    </Value>
+    <Value genre="config" index="34" label="Dehumidification Filter Reminder" max="12" min="0" size="1" type="byte" units="" value="0">
+      <Help>
+        0 = Off, 1-12 Calendar Months
+      </Help>
+    </Value>
+    <Value genre="config" index="35" label="Ventilation Filter Reminder" max="12" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        integer from 0 to 12 months. 0 = Off 3 = 3 Months 6 = 6 Months 9 = 9 Months 12 = 12 Months Other values not accepted.
+      </Help>
+      <Item label="No Ventilation Filter Reminder" value="0"/>
+      <Item label="Reminder in 3 Months" value="3"/>
+      <Item label="Reminder in 6 Months" value="6"/>
+      <Item label="Reminder in 9 Months" value="9"/>
+      <Item label="Reminder in 12 Months" value="12"/>
+    </Value>
+    <Value genre="config" index="36" label="UV Devices" max="2" min="0" size="1" type="byte" units="" value="0">
+      <Help>
+        UV Devices
+      </Help>
+    </Value>
+    <Value genre="config" index="37" label="UV Bulb 1 Reminder" max="24" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        integer from 0 to 24 months. 0 = Off 6 = 6 Months 12 = 12 Months 24 = 24 Months Other values not accepted.
+      </Help>
+      <Item label="UV Bulb 1 Reminder Off" value="0"/>
+      <Item label="Reminder in 6 Months" value="6"/>
+      <Item label="Reminder in 12 Months" value="12"/>
+      <Item label="Reminder in 24 Months" value="24"/>
+    </Value>
+    <Value genre="config" index="38" label="UV Bulb 2 Reminder" max="24" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        integer from 0 to 24 months. 0 = Off 6 = 6 Months 12 = 12 Months 24 = 24 Months Other values not accepted.
+      </Help>
+      <Item label="UV Bulb 2 Reminder Off" value="0"/>
+      <Item label="Reminder in 6 Months" value="6"/>
+      <Item label="Reminder in 12 Months" value="12"/>
+      <Item label="Reminder in 24 Months" value="24"/>
+    </Value>
+    <Value genre="config" index="39" label="Idle Brightness" max="5" min="0" size="1" type="byte" units="" value="0">
+      <Help>
+        Brightness level
+      </Help>
+    </Value>
+    <Value genre="config" index="40" label="Clock Format" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Clock Format
+      </Help>
+      <Item label="12 hour" value="0"/>
+      <Item label="24 hour" value="1"/>
+    </Value>
+    <Value genre="config" index="41" label="Daylight Saving" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
+        Daylight Saving
+      </Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="1"/>
+    </Value>
+    <Value genre="config" index="42" label="Temperature Offset" max="3" min="-3" size="1" type="list" units="" value="0">
+      <Help>
+        -3 = -3 deg Fahrenheit -2 = -2 deg Fahrenheit -1 = -1 deg Fahrenheit 0 = Off 1 = +1 deg Fahrenheit 2 = +2 deg Fahrenheit 3 = +3 deg Fahrenheit
+      </Help>
+      <Item label="-3" value="-3"/>
+      <Item label="-2" value="-2"/>
+      <Item label="-1" value="-1"/>
+      <Item label="0" value="0"/>
+      <Item label="+1" value="1"/>
+      <Item label="+2" value="2"/>
+      <Item label="+3" value="3"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/honeywell/th8320zw1000.xml b/Config/honeywell/th8320zw1000.xml
index 13d23c957a..46e439a51e 100644
--- a/Config/honeywell/th8320zw1000.xml
+++ b/Config/honeywell/th8320zw1000.xml
@@ -1,5 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0039:0001:0011</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/honeywell/th8320zw1000.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0011">https://products.z-wavealliance.org/products/44/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://yourhome.honeywell.com/home/Products/Thermostats/7-Day-Programmable/VisionPRO+8000.htm</MetaDataItem>
+    <MetaDataItem name="Description">Integrate comfort control into your automated home with Honeywell's most popular programmable thermostat, designed for Z-Wave systems! VisionPRO Z-Wave offers you top-of-the-line features like touchscreen interaction, a real-time clock, and a large, easy-to-read backlit display.</MetaDataItem>
+    <MetaDataItem name="Name">Vision PRO Z-Wave Thermostat</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0011">TH8320ZW1000</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0011">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://honeywell.com/Products-Services/Pages/consumer-home.aspx</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/44/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- This thermostat's setpoint descriptions are 1 based, not 0 -->
-  <CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" base="0" />
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/horstmann/asrzw.xml b/Config/horstmann/asrzw.xml
index e56070b55d..a8360be192 100644
--- a/Config/horstmann/asrzw.xml
+++ b/Config/horstmann/asrzw.xml
@@ -1,9 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Horstmann ASR-ZW Thermostat Receiver also know as Secure SSR303-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- Horstmann ASR-ZW Thermostat Receiver also know as Secure SSR303--><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0059:0001:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/horstmann/asrzw.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/126/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.securetogether.eu/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0003">SSR301 </MetaDataItem>
+    <MetaDataItem name="Name">Secure SSR301 1ch Zwave Relay box (Rx)</MetaDataItem>
+    <MetaDataItem name="Description">ASR-RF is a mains powered receiver for connecting where a mains supply is readily available.AS2-RF thermostat transmits via Z Wave mesh radio technology and is capable of operation in most domestic houses with an operating range of approximately 30 metres. Ideal for controlling combi boilers, it can be mounted in any suitable location without the need to disturb existing wiring or décor. Operates from 3 standard AA batteries, with 2 years+ life and separate clock battery.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/125/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/126/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <CommandClass id="64">
     <TriggerRefreshValue Genre="user" Index="0" Instance="1">
-        <RefreshClassValue CommandClass="37" RequestFlags="0" Index="0" Instance="1" />
+      <RefreshClassValue CommandClass="37" Index="0" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
   </CommandClass>
 </Product>
diff --git a/Config/horstmann/hrt4zw.xml b/Config/horstmann/hrt4zw.xml
index dbc2efff75..baac811344 100644
--- a/Config/horstmann/hrt4zw.xml
+++ b/Config/horstmann/hrt4zw.xml
@@ -1,6 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0059:0003:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/horstmann/hrt4zw.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/115/</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">ThermostatThe innovative Horstmann CentaurPlus ZW combined wireless room stat and time control offers installers and householders the opportunity to easily and cost effectively update existing combi boiler controls.
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+The CentaurPlus has an integral transmitter and receiver, enabling wireless communication with the latest generation Horstmann HRT4-ZW TPI room thermostat.
+
+Suitable for combi boilers
+Volt free contacts
+Automatic BST /GMT time change
+Back lit display
+Boost and Advance
+Helps to meet Part L1 of 2010 Building Regs for existing installations
+Built in Z Wave receiver
+Industry Standard 6 terminal wall plate
+ZW wireless technology
+TPI energy saving software
+Clear backlit display
+Temperature range 5-30°C
+Battery operated for wire free installation</MetaDataItem>
+    <MetaDataItem name="Name">Secure SRT321 Zwave Stat (Tx)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.securetogether.eu/</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0001">SRT321 </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/115/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- The thermostat does not properly report its operating modes -->
   <CommandClass id="64">
     <SupportedModes>
@@ -8,23 +35,25 @@
       <Mode index="1" label="Heat"/>
     </SupportedModes>
   </CommandClass>
-
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0"/>
-
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="Temperature sensor reading" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="1" label="Temperature sensor reading" max="1" min="0" size="1" type="list" value="0">
       <Help></Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="255"/>
     </Value>
-    <Value type="list" index="2" genre="config" label="Temperature Scale" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="2" label="Temperature Scale" max="1" min="0" size="1" type="list" value="0">
       <Help></Help>
       <Item label="Celsius" value="0"/>
       <Item label="Fahrenheit" value="255"/>
     </Value>
-    <Value type="byte" index="3" genre="config" label="Temperature Delta T" value="10">
+    <Value genre="config" index="3" label="Temperature Delta T" type="byte" value="10">
       <Help>
         Delta T in steps of 0.1 degree.
       </Help>
@@ -33,12 +62,11 @@
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="5">
-      <Group index="1" max_associations="4" label="Thermostat Mode Set"/>
-      <Group index="2" max_associations="4" label="Binary Switch Set" auto="true"/>
-      <Group index="3" max_associations="4" label="Unsolicited Battery Level Reports" auto="true"/>
-      <Group index="4" max_associations="4" label="Thermostat Set Point Reports" auto="true"/>
-      <Group index="5" max_associations="4" label="Unsolicited Sensor Multilevel Reports" auto="true"/>
+      <Group index="1" label="Thermostat Mode Set" max_associations="4"/>
+      <Group auto="true" index="2" label="Binary Switch Set" max_associations="4"/>
+      <Group auto="true" index="3" label="Unsolicited Battery Level Reports" max_associations="4"/>
+      <Group auto="true" index="4" label="Thermostat Set Point Reports" max_associations="4"/>
+      <Group auto="true" index="5" label="Unsolicited Sensor Multilevel Reports" max_associations="4"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/horstmann/scsc17.xml b/Config/horstmann/scsc17.xml
index 13ea0eb018..f6404be2f6 100644
--- a/Config/horstmann/scsc17.xml
+++ b/Config/horstmann/scsc17.xml
@@ -1,42 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- SCSC17 (Secure / Horstmann) -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- SCSC17 (Secure / Horstmann) --><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0059:0001:0004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/horstmann/scsc17.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/864/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.horstmann.co.uk/central-heating.php</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0004">C17-ZW</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">C-Stat – Electronic Programmable Room Thermostat</MetaDataItem>
+    <MetaDataItem name="Description">C-Stat is an electronic programmable thermostat that combines time and temperature control in a completely new design with particular attention paid to the styling and the user interface which features easy to use menu driven programming and a clear, 70mm blue backlit display.
+
+The new 6-model range offers standard battery and mains powered units in addition to a wireless version - the C-Stat ZW - which is battery powered and has wireless connectivity using proven Z-Wave technology to communicate with its receiver. All three versions feature models with 24 hour or 7 day programming with up to six temperature settings per day. The mains powered version has a battery back up to preserve settings.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/864/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- The thermostat does not properly report its operating modes -->
-  <CommandClass id="64" getsupported="false">
+  <CommandClass id="64">
     <SupportedModes>
       <Mode index="0" label="Off"/>
       <Mode index="1" label="Heat"/>
     </SupportedModes>
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
   </CommandClass>
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0" override_precision="0"/>
-
+  <CommandClass id="67">
+    <Compatibility>
+      <OverridePrecision>0</OverridePrecision>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" instance="1" index="1" genre="config" label="Temperature Scale" size="1" value="0">
+    <Value genre="config" index="1" instance="1" label="Temperature Scale" size="1" type="list" value="0">
       <Help>Controls the temperature sensor scale</Help>
       <Item label="Celsius" value="1"/>
       <Item label="Fahrenheit" value="128"/>
     </Value>
-    <Value type="byte" instance="1" index="2" genre="config" label="Lower temperature limit" min="5" max="30" value="5">
+    <Value genre="config" index="2" instance="1" label="Lower temperature limit" max="30" min="5" type="byte" value="5">
       <Help>Defines the minimum temperature. Steps are 1C</Help>
     </Value>
-    <Value type="byte" instance="1" index="3" genre="config" label="Upper temperature limit" min="5" max="30" value="30">
+    <Value genre="config" index="3" instance="1" label="Upper temperature limit" max="30" min="5" type="byte" value="30">
       <Help>Defines the maximum temperature. Steps are 1C</Help>
     </Value>
-    <Value type="byte" instance="1" index="4" genre="config" label="Delta T: Temperature change" min="1" max="50" value="5">
+    <Value genre="config" index="4" instance="1" label="Delta T: Temperature change" max="50" min="1" type="byte" value="5">
       <Help>Change between temperatures to trigger a temperature report (step 0.1)
         1 to 50, 1 or 0.1 (Default 5 = 0,5C) -> (1C = 10)
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="1" label="Reports"/>
-      <Group index="2" max_associations="4" label="Control"/>
+      <Group index="1" label="Reports" max_associations="1"/>
+      <Group index="2" label="Control" max_associations="4"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/horstmann/ses301.xml b/Config/horstmann/ses301.xml
new file mode 100644
index 0000000000..096530b21e
--- /dev/null
+++ b/Config/horstmann/ses301.xml
@@ -0,0 +1,16 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0059:0001:000D</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/horstmann/ses301.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="000D">https://products.z-wavealliance.org/products/676/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.securetogether.eu/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="000D">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="000D">SES301</MetaDataItem>
+    <MetaDataItem name="Name">Secure SES301 Temperature Sensor</MetaDataItem>
+    <MetaDataItem name="Description">Z-wave Temperature sensor is a battery operated device which is able to measure temperature and deliver the information to associates device in a Z-Wave networks.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/676/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/horstmann/ses302.xml b/Config/horstmann/ses302.xml
index 4d4995344f..9d6ede4c4c 100644
--- a/Config/horstmann/ses302.xml
+++ b/Config/horstmann/ses302.xml
@@ -1,44 +1,63 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0059:0002:000D</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/horstmann/ses302.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="000D">https://products.z-wavealliance.org/products/1240/</MetaDataItem>
+    <MetaDataItem name="Description">The Environmental Sensor (SES 302) measures temperature. The sensor is battery-operated devices which transmit information to an associated device in a network. It can support either 1 thermistor (SES 001) or up to 4 external digital temperature sensors (SES 002/003). SES 302 operates on 2x AA batteries, providing a nominal life of 2 years (with on-board sensors operating with the default configuration).</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Step 1.On the Z-Wave controller, select Include for adding a device to the network. 
+Step 2: On the SES 302, press the button, hold and release after 1 second to send a request (Network Information Frame) to join the network. On successful inclusion the LED will flash 2 times. The total process can take up to 20 seconds. If the LED flashes 4-times this means that the inclusion process has failed, so try moving the SES 302 to another position and repeat the Inclusion steps. If the inclusion process fails again, the device may be already included in another network. So first exclude and then include the device. The controller will show when the inclusion operation is successful.</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="000D">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Device can be wakeup by button press of more then one second, devcie will stay in wakeup state for about 10 seconds.
+device will also wakeup on the every wakeup interval configured by controller. The minimum wakeup interval can be configured is 2 minutes and maximum wakeup interval can be configured is 24 hours in setps of one minte. 
+Default wakeup interval is 24 hours.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1240/SES 302 and 303 TH Sensors User Installation Manual, (Secure Controls UK Ltd) BGX501-923-R02.pdf</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="000D">SES 302</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please use this procedure only when the primary controller is missing or otherwise inoperable.
+To reset the device to factory resst, press the button 3 times within 3 seconds it will put the device in factory default, that include setting all the configuration, Association to factory default and removing the device from Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="Name">Environmental Sensor</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Step 1.On the Z-Wave controller, select exclusion for removing a device from the network. 
+Step 2: On the SES 302, press the button, hold and release after 1 second to send a request (Network Information Frame) to remove from the network. On successful exclusion the LED will flash 2 times. The total process can take up to 2 seconds. If the LED flashes 4-times this means that the exclusion process has failed, so try moving the SES 302 to another position and repeat the exclusion steps. The controller will show when the exclusion operation is successful.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1240/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-     <Value type="byte" instance="1" index="1" genre="config" label="Delta Temperature change internal" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="1" label="Delta Temperature change internal" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="2" index="1" genre="config" label="Delta Temperature change external 2" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="2" label="Delta Temperature change external 2" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="3" index="1" genre="config" label="Delta Temperature change external 3" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="3" label="Delta Temperature change external 3" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="4" index="1" genre="config" label="Delta Temperature change external 4" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="4" label="Delta Temperature change external 4" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="5" index="1" genre="config" label="Delta Temperature change external 5" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="5" label="Delta Temperature change external 5" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="1" index="2" genre="config" label="Temperature reporting interval internal" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="1" label="Temperature reporting interval internal" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
-    <Value type="byte" instance="2" index="2" genre="config" label="Temperature reporting interval external 2" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="2" label="Temperature reporting interval external 2" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
-    <Value type="byte" instance="3" index="2" genre="config" label="Temperature reporting interval external 3" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="3" label="Temperature reporting interval external 3" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
-    <Value type="byte" instance="4" index="2" genre="config" label="Temperature reporting interval external 4" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="4" label="Temperature reporting interval external 4" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
-    <Value type="byte" instance="5" index="2" genre="config" label="Temperature reporting interval external 5" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="5" label="Temperature reporting interval external 5" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
   </CommandClass>
   <!-- Association Groups -->
-  <CommandClass id="133">   
+  <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="1" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/horstmann/ses303.xml b/Config/horstmann/ses303.xml
index 41833efa14..3b27a529c3 100644
--- a/Config/horstmann/ses303.xml
+++ b/Config/horstmann/ses303.xml
@@ -1,50 +1,69 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0059:0003:000D</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/horstmann/ses303.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="000D">https://products.z-wavealliance.org/products/1175/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Step 1.On the Z-Wave controller, select Include for adding a device to the network. 
+Step 2: On the SES 303, press the button, hold and release after 1 second to send a request (Network Information Frame) to join the network. On successful inclusion the LED will flash 2 times. The total process can take up to 20 seconds. If the LED flashes 4-times this means that the inclusion process has failed, so try moving the SES 303 to another position and repeat the Inclusion steps. If the inclusion process fails again, the device may be already included in another network. So first exclude and then include the device. The controller will show when the inclusion operation is successful.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please use this procedure only when the primary controller is missing or otherwise inoperable.
+To reset the device to factory resst, press the button 3 times within 3 seconds it will put the device in factory default, that include setting all the configuration, Association to factory default and removing the device from Z-Wave network.</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="000D">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Device can be wakeup by button press of more then one second, devcie will stay in wakeup state for about 10 seconds.
+device will also wakeup on the every wakeup interval configured by controller. The minimum wakeup interval can be configured is 2 minutes and maximum wakeup interval can be configured is 24 hours in setps of one minte. 
+Default wakeup interval is 24 hours.</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="000D">SES 303</MetaDataItem>
+    <MetaDataItem name="Name">Environmental Sensor</MetaDataItem>
+    <MetaDataItem name="Description">The Environmental Sensor (SES 303) measures temperature and humidity. The sensors are battery-operated devices which transmit information to an associated device in a network. It can support either 1 thermistor (SES 001) or up to 4 external digital temperature sensors (SES 002/003). SES 303 operates on 2x AA batteries, providing a nominal life of 2 years (with on-board sensors operating with the default configuration).</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Step 1.On the Z-Wave controller, select exclusion for removing a device from the network. 
+Step 2: On the SES 303, press the button, hold and release after 1 second to send a request (Network Information Frame) to remove from the network. On successful exclusion the LED will flash 2 times. The total process can take up to 2 seconds. If the LED flashes 4-times this means that the exclusion process has failed, so try moving the SES 303 to another position and repeat the exclusion steps. The controller will show when the exclusion operation is successful.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1175/SES 302 - 303 TH Sensors User cum Installation Manual (Secure Controls UK Ltd) BGX501-923-R02.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1175/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-     <Value type="byte" instance="1" index="1" genre="config" label="Delta Temperature change internal" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="1" label="Delta Temperature change internal" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="2" index="1" genre="config" label="Delta Temperature change external 2" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="2" label="Delta Temperature change external 2" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="3" index="1" genre="config" label="Delta Temperature change external 3" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="3" label="Delta Temperature change external 3" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="4" index="1" genre="config" label="Delta Temperature change external 4" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="4" label="Delta Temperature change external 4" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="5" index="1" genre="config" label="Delta Temperature change external 5" min="0" max="255" value="0">
+    <Value genre="config" index="1" instance="5" label="Delta Temperature change external 5" max="255" min="0" type="byte" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="byte" instance="1" index="2" genre="config" label="Temperature reporting interval internal" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="1" label="Temperature reporting interval internal" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
-    <Value type="byte" instance="2" index="2" genre="config" label="Temperature reporting interval external 2" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="2" label="Temperature reporting interval external 2" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
-    <Value type="byte" instance="3" index="2" genre="config" label="Temperature reporting interval external 3" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="3" label="Temperature reporting interval external 3" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
-    <Value type="byte" instance="4" index="2" genre="config" label="Temperature reporting interval external 4" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="4" label="Temperature reporting interval external 4" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
-    <Value type="byte" instance="5" index="2" genre="config" label="Temperature reporting interval external 5" min="0" max="255" value="5">
+    <Value genre="config" index="2" instance="5" label="Temperature reporting interval external 5" max="255" min="0" type="byte" value="5">
       <Help>Temperature reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
-    <Value type="byte" instance="1" index="3" genre="config" label="Delta humidity change" min="0" max="255" value="5">
+    <Value genre="config" index="3" instance="1" label="Delta humidity change" max="255" min="0" type="byte" value="5">
       <Help>Change between humidity to trigger a humidity report (Default 5 = 5% relative humidity)</Help>
     </Value>
-    <Value type="byte" instance="1" index="4" genre="config" label="Humidity reporting interval" min="0" max="255" value="5">
+    <Value genre="config" index="4" instance="1" label="Humidity reporting interval" max="255" min="0" type="byte" value="5">
       <Help>Humidity reporting interval in minutes (Default 5 minutes)</Help>
     </Value>
   </CommandClass>
   <!-- Association Groups -->
-  <CommandClass id="133">   
+  <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="1" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/horstmann/sir321.xml b/Config/horstmann/sir321.xml
index abbdf2adea..dd79e608ba 100644
--- a/Config/horstmann/sir321.xml
+++ b/Config/horstmann/sir321.xml
@@ -1,36 +1,49 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0059:0002:0010</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/horstmann/sir321.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0010">https://products.z-wavealliance.org/products/1012/</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0010">SIR 321</MetaDataItem>
+    <MetaDataItem name="Description">Secure Intelligent Relay is having One relay, and support of duration base schedule, measuring of temperature and delta and interval temperature reporting etc</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0010">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Secure Controls SIR 321 Intelligent Relay</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1012/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" instance="1" index="1" genre="config" label="Enable Fails Safe Timer" size="1" value="0">
+    <Value genre="config" index="1" instance="1" label="Enable Fails Safe Timer" size="1" type="list" value="0">
       <Help>Enables or not the Fails Safe Timer</Help>
-      <Item label="Disabled" value="0" />
-	  <Item label="Enabled" value="255" />
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="255"/>
     </Value>
-    <Value type="list" instance="1" index="2" genre="config" label="Temperature Scale" size="1" value="0">
+    <Value genre="config" index="2" instance="1" label="Temperature Scale" size="1" type="list" value="0">
       <Help>Controls the temperature sensor scale</Help>
-      <Item label="Celsius" value="0" />
-	  <Item label="Fahrenheit" value="255" />
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="255"/>
     </Value>
-    <Value type="short" instance="1" index="3" genre="config" label="Temperature reporting intervals" min="0" max="65534" value="0" size="2">
+    <Value genre="config" index="3" instance="1" label="Temperature reporting intervals" max="65534" min="0" size="2" type="short" value="0">
       <Help>Time interval to trigger a temperature report (step 1s) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="short" instance="1" index="4" genre="config" label="Delta T: Temperature change" min="0" max="100" value="0" size="2">
+    <Value genre="config" index="4" instance="1" label="Delta T: Temperature change" max="100" min="0" size="2" type="short" value="0">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 0 = disabled)</Help>
     </Value>
-    <Value type="short" instance="1" index="5" genre="config" label="Temperature Cutoff" min="0" max="1000" value="0" size="2">
+    <Value genre="config" index="5" instance="1" label="Temperature Cutoff" max="1000" min="0" size="2" type="short" value="0">
       <Help>Temperature that when reached will cut off the switch</Help>
     </Value>
   </CommandClass>
   <!-- Basic set as report -->
-  <CommandClass id="32" setasreport="true"/>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
-  <CommandClass id="133">   
+  <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="4" label="Lifeline"/>
-      <Group index="2" max_associations="4" label="Unsolicited Sensor Multilevel Reports" auto="true"/>
+      <Group index="1" label="Lifeline" max_associations="4"/>
+      <Group auto="true" index="2" label="Unsolicited Sensor Multilevel Reports" max_associations="4"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/horstmann/srt321.xml b/Config/horstmann/srt321.xml
index addc3a4a92..c95b5b1114 100644
--- a/Config/horstmann/srt321.xml
+++ b/Config/horstmann/srt321.xml
@@ -1,6 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- https://products.z-wavealliance.org/products/1563 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- The thermostat does not properly report its operating modes -->
   <CommandClass id="64">
     <SupportedModes>
@@ -8,23 +7,25 @@
       <Mode index="1" label="Heat"/>
     </SupportedModes>
   </CommandClass>
-
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0"/>
-
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="Temperature sensor" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="1" label="Temperature sensor" max="1" min="0" size="1" type="list" value="0">
       <Help>Enables Temperature Sensor</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="255"/>
     </Value>
-    <Value type="list" index="2" genre="config" label="Temperature Scale" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="2" label="Temperature Scale" max="1" min="0" size="1" type="list" value="0">
       <Help></Help>
       <Item label="Celsius" value="0"/>
       <Item label="Fahrenheit" value="255"/>
     </Value>
-    <Value type="byte" index="3" genre="config" label="Delta Temperature" value="10">
+    <Value genre="config" index="3" label="Delta Temperature" type="byte" value="10">
       <Help>
         Delta Temperature in 0.1 degree steps.
       </Help>
@@ -33,13 +34,12 @@
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="6">
-      <Group index="1" max_associations="1" label="Lifeline"/>
-      <Group index="2" max_associations="4" label="Thermostat Mode Set"/>
-      <Group index="3" max_associations="4" label="Binary Switch Set"/>
-      <Group index="4" max_associations="4" label="Unsolicited Battery Level Reports"/>
-      <Group index="5" max_associations="4" label="Thermostat Set Point Reports"/>
-      <Group index="6" max_associations="4" label="Unsolicited Sensor Multilevel Reports" />
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Thermostat Mode Set" max_associations="4"/>
+      <Group index="3" label="Binary Switch Set" max_associations="4"/>
+      <Group index="4" label="Unsolicited Battery Level Reports" max_associations="4"/>
+      <Group index="5" label="Thermostat Set Point Reports" max_associations="4"/>
+      <Group index="6" label="Unsolicited Sensor Multilevel Reports" max_associations="4"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/horstmann/srt323.xml b/Config/horstmann/srt323.xml
index 5d80fe1e34..043f45410e 100644
--- a/Config/horstmann/srt323.xml
+++ b/Config/horstmann/srt323.xml
@@ -1,34 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0059:0004:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/horstmann/srt323.png</MetaDataItem>
+    <MetaDataItem id="0004" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1241/</MetaDataItem>
+    <MetaDataItem id="0004" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0004" name="Identifier" type="0001">323</MetaDataItem>
+    <MetaDataItem name="Description">Room thermostat</MetaDataItem>
+    <MetaDataItem name="Name">Secure Controls SRT 323 Thermostat</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1241/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0" />
-
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" instance="1" index="1" genre="config" label="Temperature sensor reading" size="1" value="255">
+    <Value genre="config" index="1" instance="1" label="Temperature sensor reading" size="1" type="list" value="255">
       <Help>Enables or not the temperature sensor reading</Help>
-      <Item label="Disabled" value="0" />
-	  <Item label="Enabled" value="255" />
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="255"/>
     </Value>
-    <Value type="list" instance="1" index="2" genre="config" label="Temperature Scale" size="1" value="0">
+    <Value genre="config" index="2" instance="1" label="Temperature Scale" size="1" type="list" value="0">
       <Help>Controls the temperature sensor scale</Help>
-      <Item label="Celsius" value="0" />
-	  <Item label="Fahrenheit" value="255" />
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="255"/>
     </Value>
-    <Value type="byte" instance="1" index="3" genre="config" label="Delta T: Temperature change" min="1" max="100" value="10">
+    <Value genre="config" index="3" instance="1" label="Delta T: Temperature change" max="100" min="1" type="byte" value="10">
       <Help>Change between temperatures to trigger a temperature report (step 0.1) (Default 10 = 1C)</Help>
     </Value>
   </CommandClass>
   <!-- Association Groups -->
-  <CommandClass id="133">   
+  <CommandClass id="133">
     <Associations num_groups="5">
-      <Group index="1" max_associations="1" label="Lifeline"/>
-      <Group index="2" max_associations="4" label="Thermostat Operating State Reports" auto="true"/>
-      <Group index="3" max_associations="4" label="Unsolicited Battery Level Reports" auto="true"/>
-      <Group index="4" max_associations="4" label="Thermostat Set Point Reports" auto="true"/>
-      <Group index="5" max_associations="4" label="Unsolicited Sensor Multilevel Reports" auto="true"/>
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group auto="true" index="2" label="Thermostat Operating State Reports" max_associations="4"/>
+      <Group auto="true" index="3" label="Unsolicited Battery Level Reports" max_associations="4"/>
+      <Group auto="true" index="4" label="Thermostat Set Point Reports" max_associations="4"/>
+      <Group auto="true" index="5" label="Unsolicited Sensor Multilevel Reports" max_associations="4"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/horstmann/ssr302.xml b/Config/horstmann/ssr302.xml
index 9f0215f5a3..417d4bbd23 100644
--- a/Config/horstmann/ssr302.xml
+++ b/Config/horstmann/ssr302.xml
@@ -1,15 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Horstmann SSR302 2-zone thermostat receiver -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- Horstmann SSR302 2-zone thermostat receiver --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0059:0002:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/horstmann/ssr302.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/116/</MetaDataItem>
+    <MetaDataItem name="Description">AS2-RF thermostat transmits via Z Wave mesh radio technology and is capable of operation  in most domestic houses with an operating range of approximately 30 metres. Ideal for controlling combi boilers, it can be mounted  in any suitable location without the need to disturb existing wiring or décor. Operates from 3 standard AA batteries, with 2 years+ life and separate clock battery.</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0003">SSR302</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Secure SSR302 2ch Zwave Relay Box (Rx)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.securetogether.eu/</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/116/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Associate V2: 
     Product supports one group (Lifeline) and have a maximum of 4 node. No current active group. 
   -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="4" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="4"/>
     </Associations>
   </CommandClass>
-
   <!-- Thermostat mode (v1): 
     Only 'Idle Mode' and 'Heat Mode' are supported within this command class, which can either set or read.
     The SSR 302 has a failsafe mode where by the relay is turned off if another Thermostat Mode SET command has not been received within 60 minutes.
@@ -18,7 +28,7 @@
     <SupportedModes>
       <Mode index="0" label="Idle Mode"/>
       <Mode index="1" label="Heat Mode"/>
-    </SupportedModes>    
+    </SupportedModes>
   </CommandClass>
   <!-- Switch Binary (v1):
     Supports SET and GET to control the relay.
@@ -53,5 +63,9 @@
     COMMAND_CLASS_ASSOCIATION
     COMMAND_CLASS_ASSOCIATION_GROUP_INFO
   -->
-  <CommandClass id="96" version="4" mapping="endpoints" />
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/horstmann/ssr303.xml b/Config/horstmann/ssr303.xml
index 0c3a18548d..f736798959 100644
--- a/Config/horstmann/ssr303.xml
+++ b/Config/horstmann/ssr303.xml
@@ -1,15 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- Horstmann SSR303 thermostat receiver -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Associate V2: 
     Product supports one group (Lifeline) and have a maximum of 4 node. No current active group. 
   -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="4" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="4"/>
     </Associations>
   </CommandClass>
-
   <!-- Thermostat mode (v1): 
     Only 'Idle Mode' and 'Heat Mode' are supported within this command class, which can either set or read.
     The SSR 303 has a failsafe mode where by the relay is turned off if another Thermostat Mode SET command has not been received within 60 minutes.
@@ -18,7 +16,7 @@
     <SupportedModes>
       <Mode index="0" label="Idle Mode"/>
       <Mode index="1" label="Heat Mode"/>
-    </SupportedModes>    
+    </SupportedModes>
   </CommandClass>
   <!-- Switch Binary (v1):
     Supports SET and GET to control the relay.
@@ -37,6 +35,9 @@
     Power Level (V1):
     Power Level Command Class defines RF transmit power controlling commands useful when installing or testing a network.
   -->
-  
-  <CommandClass id="96" version="4" mapping="endpoints" />
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/icare/zw-66.xml b/Config/icare/zw-66.xml
new file mode 100644
index 0000000000..7da3f824bc
--- /dev/null
+++ b/Config/icare/zw-66.xml
@@ -0,0 +1,14 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0012:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/icare/zw-66.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/938/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">ZW-66</MetaDataItem>
+    <MetaDataItem name="Name">Sanjose USB Dongle</MetaDataItem>
+    <MetaDataItem name="Description">USB Adapter</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/938/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/idlock/idlock101.xml b/Config/idlock/idlock101.xml
index 27eef2a79a..0876882cef 100644
--- a/Config/idlock/idlock101.xml
+++ b/Config/idlock/idlock101.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- Configuration Parameters -->
 
 <!--COMMAND_CLASS_CONFIGURATION-->
diff --git a/Config/idlock/idlock150.xml b/Config/idlock/idlock150.xml
index 7aaf30101d..87cf841078 100644
--- a/Config/idlock/idlock150.xml
+++ b/Config/idlock/idlock150.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 
 	<!--COMMAND_CLASS_CONFIGURATION_V1-->
@@ -107,4 +107,4 @@
 			<Group index="1" max_associations="5" label="Lifeline"/>
 		</Associations>
 	</CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/ingersoll/dwzwave1.xml b/Config/ingersoll/dwzwave1.xml
index 65d3fd94ed..ee15fb4112 100644
--- a/Config/ingersoll/dwzwave1.xml
+++ b/Config/ingersoll/dwzwave1.xml
@@ -1,20 +1,34 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" index="99" label="Fault Restore Report" size="1" min="0" max="255" value="255">
-			<Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/011F:0002:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ingersoll/dwzwave1.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/647/</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0001">Schlage_DWZWAVE1</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.nexiahome.com/Products/ProductDetail.aspx?model=043156955534</MetaDataItem>
+    <MetaDataItem name="Description">This sensor detects whether a door is open or closed and communicates with a Z-Wave gateway.Door window contacts should blend in with their environment and these contacts does just that by being one of the smallest in the industry. 
+
+Each sensor comes in standard white with an optional and included brown cover. This allows you to quickly change the color to best match the decor. It's designed to work as well or better than the original manufacturer models, uses a long life lithium battery and is compatible with major alarm panel manufacturers.</MetaDataItem>
+    <MetaDataItem name="Name">Schlage Home Door and Window Sensor</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/647/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="99" label="Fault Restore Report" max="255" min="0" size="1" type="list" value="255">
+      <Help>
 				Enable or disable Basic Sets of 0x00 on a fault restore to nodes in Group 2. Default = Enabled.
 			</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Enabled" value="255"/>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-  	<CommandClass id="133">
-    		<Associations num_groups="2">
-      			<Group index="1" max_associations="1" label="Reports"/>
-      			<Group index="2" max_associations="3" label="Control"/>
-    		</Associations>
-  	</CommandClass>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="255"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Reports" max_associations="1"/>
+      <Group index="2" label="Control" max_associations="3"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/inovelli/nzw1201.xml b/Config/inovelli/nzw1201.xml
index aafdda4595..618c447dfd 100644
--- a/Config/inovelli/nzw1201.xml
+++ b/Config/inovelli/nzw1201.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
   </CommandClass>
diff --git a/Config/inovelli/nzw30.xml b/Config/inovelli/nzw30.xml
index 3724607036..048addafc4 100644
--- a/Config/inovelli/nzw30.xml
+++ b/Config/inovelli/nzw30.xml
@@ -1,36 +1,26 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value genre="config" index="3" value="0" label="LED Indicator Control" units="" size="1" min="0" max="255" type="list">
+    <Value genre="config" index="3" label="LED Indicator Control" max="255" min="0" size="1" type="list" units="" value="0">
       <Help>Choose if you want the LED indicator to turn on when switch is on or off or disable completely.</Help>
-      <Item value="0" label="LED on when switch is off"/>
-      <Item value="1" label="LED on when switch is on"/>
-      <Item value="2" label="LED is disabled"/>
+      <Item label="LED on when switch is off" value="0"/>
+      <Item label="LED on when switch is on" value="1"/>
+      <Item label="LED is disabled" value="2"/>
     </Value>
-    <Value genre="config" index="4" value="0" label="Orientation" units="" size="1" min="0" max="255" type="list">
+    <Value genre="config" index="4" label="Orientation" max="255" min="0" size="1" type="list" units="" value="0">
       <Help>Controls the on/off orientation of the rocker switch</Help>
-      <Item value="0" label="Normal"/>
-      <Item value="1" label="Inverted"/>
+      <Item label="Normal" value="0"/>
+      <Item label="Inverted" value="1"/>
     </Value>
-    <Value genre="config" index="5" value="0" label="Automatically turn switch off after interval" units="seconds" size="2" min="0" max="32767" type="short">
+    <Value genre="config" index="5" label="Automatically turn switch off after interval" max="32767" min="0" size="2" type="short" units="seconds" value="0">
       <Help>Automatically turn the switch off after this many seconds. 0 is disabled</Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" label="Lifeline" max_associations="5" />
-	    <Group index="2" label="Basic_Set" max_associations="5" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Basic_Set" max_associations="5"/>
     </Associations>
   </CommandClass>
-<!-- Central Scene Reports -->
-  <CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="4" scenecount="0">
-    <Instance index="1" />
-      <Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="2" />
-      <Value type="int" genre="user" instance="1" index="1" label="Top Button Scene" units="" read_only="false" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0" />
-      <Value type="int" genre="user" instance="1" index="2" label="Bottom Button Scene" units="" read_only="false" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0" />
-  </CommandClass>
-
 </Product>
diff --git a/Config/inovelli/nzw31.xml b/Config/inovelli/nzw31.xml
index f8ab2ba7fa..d889fcec70 100644
--- a/Config/inovelli/nzw31.xml
+++ b/Config/inovelli/nzw31.xml
@@ -1,74 +1,65 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<!-- Inovelli Dimmer NZW31 -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value genre="config" index="1" label="Dimming/Brightening Step Level" min="0" max="99" units="%" value="3" size="1" type="byte">
+    <Value genre="config" index="1" label="Dimming/Brightening Step Level" max="99" min="0" size="1" type="byte" units="%" value="3">
       <Help>Each step of the dimming process will increase or decrease the brightness by this percentage. Increasing this will make the transition time slower. 0 is instant.</Help>
     </Value>
-    <Value genre="config" index="2" label="Minimum Dimming Level" min="1" max="99" units="%" value="1" size="1" type="byte">
-    <Help>This is the minimum value to which the switch will dim. Useful for CFL or LED lights that otherwise won't come on or come on but flicker/buzz.</Help>
+    <Value genre="config" index="2" label="Minimum Dimming Level" max="99" min="1" size="1" type="byte" units="%" value="1">
+      <Help>This is the minimum value to which the switch will dim. Useful for CFL or LED lights that otherwise won't come on or come on but flicker/buzz.</Help>
     </Value>
-    <Value genre="config" index="3" value="0" label="LED Indicator Control" units="" size="1" min="0" max="255" type="list">
+    <Value genre="config" index="3" label="LED Indicator Control" max="255" min="0" size="1" type="list" units="" value="0">
       <Help>Choose if you want the LED indicator to turn on when switch is on or off or disable completely.</Help>
-      <Item value="0" label="LED on when switch is off"/>
-      <Item value="1" label="LED on when switch is on"/>
-      <Item value="2" label="LED is disabled"/>
-	  <Item value="3" label="LED is always on"/>
+      <Item label="LED on when switch is off" value="0"/>
+      <Item label="LED on when switch is on" value="1"/>
+      <Item label="LED is disabled" value="2"/>
+      <Item label="LED is always on" value="3"/>
     </Value>
-    <Value genre="config" index="4" value="0" label="Orientation" units="" size="1" min="0" max="255" type="list">
+    <Value genre="config" index="4" label="Orientation" max="255" min="0" size="1" type="list" units="" value="0">
       <Help>Controls the on/off orientation of the rocker switch</Help>
-      <Item value="0" label="Normal"/>
-      <Item value="1" label="Inverted"/>
+      <Item label="Normal" value="0"/>
+      <Item label="Inverted" value="1"/>
     </Value>
-    <Value genre="config" index="5" value="0" label="Automatically turn switch off after interval" units="seconds" size="2" min="0" max="32767" type="short">
+    <Value genre="config" index="5" label="Automatically turn switch off after interval" max="32767" min="0" size="2" type="short" units="seconds" value="0">
       <Help>Automatically turn the switch off after this many seconds. 0 is disabled, or up to 32767 seconds</Help>
     </Value>
-	<Value genre="config" index="6" value="0" label="Association Group 3 Behavior" units="" size="1" min="0" max="255" type="list">
+    <Value genre="config" index="6" label="Association Group 3 Behavior" max="255" min="0" size="1" type="list" units="" value="0">
       <Help>Change how devices respond when associated in group 3</Help>
-      <Item value="0" label="Dim up/down"/>
-      <Item value="1" label="Keep in sync"/>
+      <Item label="Dim up/down" value="0"/>
+      <Item label="Keep in sync" value="1"/>
     </Value>
-	<Value genre="config" index="7" value="1" label="Association Group 3 Configuration" units="" size="1" min="0" max="255" type="list">
+    <Value genre="config" index="7" label="Association Group 3 Configuration" max="255" min="0" size="1" type="list" units="" value="1">
       <Help>Send association group 3 commands on these types of actions</Help>
-      <Item value="0" label="none"/>
-      <Item value="1" label="local"/>
-      <Item value="2" label="3way"/>
-	  <Item value="3" label="3way &amp; local"/>
-	  <Item value="4" label="z-wave hub"/>
-      <Item value="5" label="z-wave hub &amp; local"/>
-      <Item value="6" label="z-wave hub &amp; 3-way"/>
-	  <Item value="7" label="z-wave hub &amp; local &amp; 3way"/>
-	  <Item value="8" label="timer"/>
-      <Item value="9" label="timer &amp; local"/>
-      <Item value="10" label="timer &amp; 3-way"/>
-	  <Item value="11" label="timer &amp; 3-way &amp; local"/>
-	  <Item value="12" label="timer &amp; z-wave hub"/>
-      <Item value="13" label="timer &amp; z-wave hub &amp; local"/>
-      <Item value="14" label="timer &amp; z-wave hub &amp; 3-way"/>
-	  <Item value="15" label="all"/>
+      <Item label="none" value="0"/>
+      <Item label="local" value="1"/>
+      <Item label="3way" value="2"/>
+      <Item label="3way &amp; local" value="3"/>
+      <Item label="z-wave hub" value="4"/>
+      <Item label="z-wave hub &amp; local" value="5"/>
+      <Item label="z-wave hub &amp; 3-way" value="6"/>
+      <Item label="z-wave hub &amp; local &amp; 3way" value="7"/>
+      <Item label="timer" value="8"/>
+      <Item label="timer &amp; local" value="9"/>
+      <Item label="timer &amp; 3-way" value="10"/>
+      <Item label="timer &amp; 3-way &amp; local" value="11"/>
+      <Item label="timer &amp; z-wave hub" value="12"/>
+      <Item label="timer &amp; z-wave hub &amp; local" value="13"/>
+      <Item label="timer &amp; z-wave hub &amp; 3-way" value="14"/>
+      <Item label="all" value="15"/>
     </Value>
-    <Value genre="config" index="8" value="0" label="Default value when turned on at switch" min="0" max="99" size="1" type="byte">
+    <Value genre="config" index="8" label="Default value when turned on at switch" max="99" min="0" size="1" type="byte" value="0">
       <Help>Default brightness when switch is turned on locally.  0 is previous. Firmware 1.02+"</Help>
     </Value>
-    <Value genre="config" index="9" value="0" label="Default value when turned on via zwave" min="0" max="99" size="1" type="byte">
+    <Value genre="config" index="9" label="Default value when turned on via zwave" max="99" min="0" size="1" type="byte" value="0">
       <Help>Default brightness when switch is turned on via zwave.  0 is previous.  Firmware 1.02+"</Help>
     </Value>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
-      <Group index="1" label="Lifeline" max_associations="5" />
-	  <Group index="2" label="Basic_Set" max_associations="5" />
-	  <Group index="3" label="Switch_Multilevel_Set" max_associations="5" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Basic_Set" max_associations="5"/>
+      <Group index="3" label="Switch_Multilevel_Set" max_associations="5"/>
     </Associations>
   </CommandClass>
-<!-- Central Scene Reports -->
-  <CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="4" scenecount="0">
-    <Instance index="1" />
-      <Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="2" />
-      <Value type="int" genre="user" instance="1" index="1" label="Top Button Scene" units="" read_only="false" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0" />
-      <Value type="int" genre="user" instance="1" index="2" label="Bottom Button Scene" units="" read_only="false" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0" />
-  </CommandClass>
-
 </Product>
diff --git a/Config/inovelli/nzw36.xml b/Config/inovelli/nzw36.xml
index 775acdcb61..30b175ad50 100644
--- a/Config/inovelli/nzw36.xml
+++ b/Config/inovelli/nzw36.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value genre="config" index="1" value="0" label="LED Indicator Control" units="" size="1" min="0" max="255" type="list">
diff --git a/Config/inovelli/nzw37.xml b/Config/inovelli/nzw37.xml
index ca91749154..c9e9c73a35 100644
--- a/Config/inovelli/nzw37.xml
+++ b/Config/inovelli/nzw37.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value genre="config" index="1" value="0" label="LED Indicator Control" units="" size="1" min="0" max="255" type="list">
diff --git a/Config/inovelli/nzw39.xml b/Config/inovelli/nzw39.xml
index 775acdcb61..30b175ad50 100644
--- a/Config/inovelli/nzw39.xml
+++ b/Config/inovelli/nzw39.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value genre="config" index="1" value="0" label="LED Indicator Control" units="" size="1" min="0" max="255" type="list">
diff --git a/Config/inovelli/nzw96.xml b/Config/inovelli/nzw96.xml
index cf05016d34..45192e25cc 100644
--- a/Config/inovelli/nzw96.xml
+++ b/Config/inovelli/nzw96.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value genre="config" index="1" value="0" label="LED Indicator Control" units="" size="1" min="0" max="255" type="list">
diff --git a/Config/inovelli/nzw97.xml b/Config/inovelli/nzw97.xml
index 442218416f..a5405a1565 100644
--- a/Config/inovelli/nzw97.xml
+++ b/Config/inovelli/nzw97.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value genre="config" index="1" value="0" label="LED Indicator Control" units="" size="1" min="0" max="255" type="list">
diff --git a/Config/inovelli/simple_module.xml b/Config/inovelli/simple_module.xml
index 662f35684c..dc9401d5f4 100644
--- a/Config/inovelli/simple_module.xml
+++ b/Config/inovelli/simple_module.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
   </CommandClass>
diff --git a/Config/intermatic/ca8900.xml b/Config/intermatic/ca8900.xml
index e5aa2ba8bf..695dd4f65e 100644
--- a/Config/intermatic/ca8900.xml
+++ b/Config/intermatic/ca8900.xml
@@ -1,7 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0" />
-
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/iris/rangeextender.xml b/Config/iris/rangeextender.xml
index ecf15f2cd7..7226e3662a 100644
--- a/Config/iris/rangeextender.xml
+++ b/Config/iris/rangeextender.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- COMMAND_CLASS_BASIC does not respond to requests -->
   <CommandClass id="32" action="remove" />
 </Product>
diff --git a/Config/iwatsu/ne-4ct-2p.xml b/Config/iwatsu/ne-4ct-2p.xml
new file mode 100644
index 0000000000..fdf5295be7
--- /dev/null
+++ b/Config/iwatsu/ne-4ct-2p.xml
@@ -0,0 +1,16 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0123:0102:0102</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/iwatsu/ne-4ct-2p.png</MetaDataItem>
+    <MetaDataItem id="0102" name="ZWProductPage" type="0102">https://products.z-wavealliance.org/products/946/</MetaDataItem>
+    <MetaDataItem id="0102" name="Identifier" type="0102">NE-4CT-2P</MetaDataItem>
+    <MetaDataItem id="0102" name="FrequencyName" type="0102">Japan</MetaDataItem>
+    <MetaDataItem name="Name">Iwatsu Smart Connect NE-4CT-2P</MetaDataItem>
+    <MetaDataItem name="Description">Smart-CONNECT CT. 
+
+Electric power measuring equipment with Z-Wave.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/946/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/iwatsu/ne-4ct.xml b/Config/iwatsu/ne-4ct.xml
new file mode 100644
index 0000000000..7d5854e84e
--- /dev/null
+++ b/Config/iwatsu/ne-4ct.xml
@@ -0,0 +1,16 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0123:0103:0103</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/iwatsu/ne-4ct.png</MetaDataItem>
+    <MetaDataItem id="0103" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/947/</MetaDataItem>
+    <MetaDataItem name="Description">Smart-CONNECT CT. 
+
+Electric power measuring instrument with Z-Wave</MetaDataItem>
+    <MetaDataItem name="Name">Iwatsu Smart Connect NE-4CT</MetaDataItem>
+    <MetaDataItem id="0103" name="Identifier" type="0103">NE-4CT</MetaDataItem>
+    <MetaDataItem id="0103" name="FrequencyName" type="0103">Japan</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/947/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/jasco/45601.xml b/Config/jasco/45601.xml
new file mode 100644
index 0000000000..dded23dd68
--- /dev/null
+++ b/Config/jasco/45601.xml
@@ -0,0 +1,26 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0020:1391:8007</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/jasco/45601.png</MetaDataItem>
+    <MetaDataItem id="1391" name="ZWProductPage" type="8007">https://products.z-wavealliance.org/products/289/</MetaDataItem>
+    <MetaDataItem id="1391" name="FrequencyName" type="8007">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.jascoproducts.com/support</MetaDataItem>
+    <MetaDataItem name="Description">Jasco LCD Z-Wave Remote. The GE Advanced Remote turns on/off and adjusts the brightness level of Z-Wave enabled lights, as well as operates the on/off functions of Z-Wave enabled small appliances. Users create and manage custom lighting schemes by controlling up to 18 individual lights, 18 groups, and 18 scenes. The LCD menu screen allows for quick navigation of remote features and easy-to-read command feedback, while the timer function allows for up to nine timed events to be automatically activated in the home. The remote also works with Z-Wave enabled thermostats. To find out more how GE Z-Wave can help you save energy, take control and feel safe.
+Features:
+Control your entire home from one remote
+Turn on/off and adjust the brightness of Z-Wave enabled lights
+Operates the on/off functions of Z-Wave enabled small appliances
+Manage up to 18 individual lights, 18 groups, and 18 scenes
+Create custom lighting groups and scenes
+On-screen LCD menu provides easy navigation of features and command feedback
+Program up to nine timed events with advanced timer
+Label function allows you to name lights, groups, and scenes</MetaDataItem>
+    <MetaDataItem name="Name">Lighting Control Advanced Remote, Thermostat Control, 18 Lights/Groups/Scenes</MetaDataItem>
+    <MetaDataItem id="1391" name="Identifier" type="8007">45601</MetaDataItem>
+    <MetaDataItem name="ProductPage">www.ezzwave.com</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/289/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/kaipule/im20.xml b/Config/kaipule/im20.xml
index a4ed5d958b..3854173037 100644
--- a/Config/kaipule/im20.xml
+++ b/Config/kaipule/im20.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 <!--
 Kaipule IM20 Door/Window Sensor
 https://products.z-wavealliance.org/products/2027
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
 	<!-- Configuration -->
 	<CommandClass id="112">
 		<Value type="byte" genre="config" instance="1" index="1" label="Basic Set Level" size="1" min="1" max="255" value="255">
diff --git a/Config/kaipule/ix32.xml b/Config/kaipule/ix32.xml
index 3176b5a11f..fe79a1bb38 100644
--- a/Config/kaipule/ix32.xml
+++ b/Config/kaipule/ix32.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Kaipule IX32 PIR Sensor -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration -->
 	<CommandClass id="112">
 		<Value type="byte" genre="config" instance="1" index="1" label="Basic Set Level" size="1" min="1" max="255" value="255">
diff --git a/Config/kwikset/smartcode.xml b/Config/kwikset/smartcode.xml
index 75658f840e..bf02e32d2e 100644
--- a/Config/kwikset/smartcode.xml
+++ b/Config/kwikset/smartcode.xml
@@ -1,293 +1,314 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- 
 Kwikset smartcode 
 http://s7d5.scene7.com/is/content/BDHHI/z-wave-configuration
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">		
-		<Value type="list" genre="config" instance="1" index="1" label="1 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+--><Product Revision="9" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0090:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/kwikset/smartcode.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/945/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">910</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.kwikset.com/Products/Details/Electronic-Locks/910TRL-ZW-15-SMT.aspx</MetaDataItem>
+    <MetaDataItem name="Description">The SmartCode Deadbolt with Home Connect Technology featuring Z-Wave enables the door lock to wirelessly communicate with other devices in home. The lock allows the user through a web enabled device to remotely check the door lock status, lock or unlock the door and receive text or email messages.
+
+- The motor-driven deadbolt latch allows for true remote locking and unlocking.
+- SmartKey cylinders feature a stainless steel side locking bar, racks and pins for increased strength and security
+- Patented side locking bar technology offers improved security by protecting against lock bumping, an attack technique used to defeat conventional pin &amp; tumbler locks
+- Lifetime mechanical and finish warranty. 1 year electronics warranty.</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.kwikset.com/Customer-Support/Overview.aspx</MetaDataItem>
+    <MetaDataItem name="Name">SmartCode Deadbolt with Home Connect Technology </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/157/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/172/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/196/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/605/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/749/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/781/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="9">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/945/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="1 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="2 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="2 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="3 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="3 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="4" label="4 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="4 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="5" label="5 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="5 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="6" label="6 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="6 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="7" label="7 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="7 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="8" label="8 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="8 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="9" label="9 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="9 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="10" label="10 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="10 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		
-		<Value type="list" genre="config" instance="1" index="11" label="11 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="11 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="12" label="12 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="12 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="13" label="13 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="13 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="14" label="14 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="14 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="15" label="15 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="15 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="16" label="16 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="16" instance="1" label="16 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="17" label="17 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="17" instance="1" label="17 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="18" label="18 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="18" instance="1" label="18 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="19" label="19 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="19" instance="1" label="19 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="20" label="20 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="20 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		
-		<Value type="list" genre="config" instance="1" index="21" label="21 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="21 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="22" label="22 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="22 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="23" label="23 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="23" instance="1" label="23 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="24" label="24 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="24" instance="1" label="24 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="25" label="25 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="25" instance="1" label="25 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="26" label="26 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="26" instance="1" label="26 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="27" label="27 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="27" instance="1" label="27 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="28" label="28 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="28" instance="1" label="28 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="29" label="29 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="29" instance="1" label="29 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="30" label="30 User Code Type" min="0" max="255" value="1" size="1" >
-			<Help>
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="30 User Code Type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
 			 set the User Code Type for their corresponding user codes.
 			</Help>
-			<Item label="Owner" value="1"/>
-			<Item label="Guest (Required for Year Day Schedules)" value="3"/>
-			<Item label="Worker (Required for Week Day Schedules)" value="4"/>
-			<Item label="No corresponding user code" value="255"/>
-		</Value>		
-		<Value type="byte" genre="config" instance="1" index="31" label="Dipswitches state" min="0" max="255" read_only="true">
-            <Help>Bit mask field that returns the state of the user accessible Dipswitches on the door look.
+      <Item label="Owner" value="1"/>
+      <Item label="Guest (Required for Year Day Schedules)" value="3"/>
+      <Item label="Worker (Required for Week Day Schedules)" value="4"/>
+      <Item label="No corresponding user code" value="255"/>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="Dipswitches state" max="255" min="0" read_only="true" type="byte">
+      <Help>Bit mask field that returns the state of the user accessible Dipswitches on the door look.
 			Bit 0 Lock LED Status (1: enable)
 			Bit 1 Auto lock (1: enable)
 			Bit 2 Auto Buzzer (1: enable)
 			Bit 3 Secure Screen (1: enable) *Only for MB 916
 			</Help>
-        </Value>		
-		<Value type="byte" genre="config" instance="1" index="33" label="MSB SKU part numbers" min="0" max="255" >
-            <Help>The Configuration Parameter 33 and 34 are used to set the SKU part numbers to the Kwikset locks. 
+    </Value>
+    <Value genre="config" index="33" instance="1" label="MSB SKU part numbers" max="255" min="0" type="byte">
+      <Help>The Configuration Parameter 33 and 34 are used to set the SKU part numbers to the Kwikset locks. 
 			Is the first four most significant bytes (MSB). 
 			Below describes how Configuration Parameter 33 and 34 are being used.
 			* For a ZW Configuration Set, the DLM will first do a GET_SKU_ID to retrieve the full SKU from the lock, and the lock will respond with all 8 bytes. (If it not yet set, the DLM will consider that as all 0x30s.) 
@@ -295,14 +316,14 @@ http://s7d5.scene7.com/is/content/BDHHI/z-wave-configuration
 			* For a ZW Configuration Get, the DLM will do a GET_SKU_ID down to the lock, to which the lock will respond with all 8 bytes. 
 			  The DLM will return the requested 4 bytes via ZW. If the SKU is not set, it will return all 0x30s (ASCII 0s).
 			</Help>
-        </Value>
-		<Value type="byte" genre="config" instance="1" index="34" label="LSB SKU part numbers" min="0" max="255" >
-            <Help>The Configuration Parameter 33 and 34 are used to set the SKU part numbers to the Kwikset locks. 
+    </Value>
+    <Value genre="config" index="34" instance="1" label="LSB SKU part numbers" max="255" min="0" type="byte">
+      <Help>The Configuration Parameter 33 and 34 are used to set the SKU part numbers to the Kwikset locks. 
 			Is the least four significant bytes (LSB). 			
 			</Help>
-        </Value>		
-		<Value type="short" genre="config" instance="1" index="35" label="lock type" size="2" read_only="true">
-			<Help>Unique ID of the lock type
+    </Value>
+    <Value genre="config" index="35" instance="1" label="lock type" read_only="true" size="2" type="short">
+      <Help>Unique ID of the lock type
 			910 Z-Wave (Legacy, FW 3.4) 0x00 0x00
 			912 Z-Wave (Legacy, FW 3.2) 0x00 0x00
 			910 Z-Wave 0x02 0x36
@@ -310,26 +331,26 @@ http://s7d5.scene7.com/is/content/BDHHI/z-wave-configuration
 			914 Z-Wave 0x04 0x36
 			916 Z-Wave 0x06 0x42
 			</Help>
-		</Value>
-		<Value type="list" index="40" genre="config" label="Reset To Factory Defaults" size="1" value="0" write_only="true">
-			<Help>Reset to factory defaults</Help>
-            <Item label="Do reset" value="1"/>
-			<Item label="Normal" value="0"/>
-		</Value>
-	</CommandClass>
-	<CommandClass id="113">
-		<!-- These Door Locks don't send a DoorLockReport when the
+    </Value>
+    <Value genre="config" index="40" label="Reset To Factory Defaults" size="1" type="list" value="0" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Do reset" value="1"/>
+      <Item label="Normal" value="0"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="113">
+    <!-- These Door Locks don't send a DoorLockReport when the
 		Lock Status is Changed, but instead send a Alarm Message -
 		So we trigger a Refresh of the DoorLock Command Class when
 		we recieve a Alarm Message Instead -->
-		<TriggerRefreshValue Genre="user" Index="0" Instance="1">
-			<RefreshClassValue CommandClass="98" RequestFlags="0" Index="1" Instance="1"/>
-		</TriggerRefreshValue>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline" />
-		</Associations>
-	</CommandClass>
+    <TriggerRefreshValue Genre="user" Index="0" Instance="1">
+      <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
+    </TriggerRefreshValue>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/dz15s.xml b/Config/leviton/dz15s.xml
index 0315a67086..54fd034dc4 100644
--- a/Config/leviton/dz15s.xml
+++ b/Config/leviton/dz15s.xml
@@ -1,23 +1,26 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Leviton Switch DZ15S 
 http://products.z-wavealliance.org/products/1957
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="7" genre="config" label="Locator LED Status" units="" min="0" max="255" size="1" value="255">
-			<Help>Change the mode of the LED to Status Mode where the LED is illuminated when the load is On, Locator Mode where the LED is illuminated when the Load is Off, or turns off the LED completely for any other setting values.</Help>
-			<Item label="Off" value="0"/>
-			<Item label="Status Mode" value="254"/>
-			<Item label="Locator Mode" value="255"/>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
-	<CommandClass id="134" classgetsupported="false" />
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="7" label="Locator LED Status" max="255" min="0" size="1" type="list" units="" value="255">
+      <Help>Change the mode of the LED to Status Mode where the LED is illuminated when the load is On, Locator Mode where the LED is illuminated when the Load is Off, or turns off the LED completely for any other setting values.</Help>
+      <Item label="Off" value="0"/>
+      <Item label="Status Mode" value="254"/>
+      <Item label="Locator Mode" value="255"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="134">
+    <Compatibility>
+      <ClassGetVersionSupported>false</ClassGetVersionSupported>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/dz6hd.xml b/Config/leviton/dz6hd.xml
index 92d94d279a..bdfa3eee68 100644
--- a/Config/leviton/dz6hd.xml
+++ b/Config/leviton/dz6hd.xml
@@ -1,59 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Leviton Decora 600W Dimmer, http://products.z-wavealliance.org/products/1910
 Leviton Decora 1000W Dimmer, http://products.z-wavealliance.org/products/1956
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Fade On Time" units="seconds" min="0" max="253" size="1" value="2">
-			<Help>
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Fade On Time" max="253" min="0" size="1" type="byte" units="seconds" value="2">
+      <Help>
 				The amount of time to take to fade the lights from off to on.
 				A value of zero is instant (no fade), values between 1 and 127 represent 1 to 127 seconds, and values from 128 to 253 represent from 1 to 126 minutes.
 			</Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Fade Off Time" units="seconds" min="0" max="253" size="1" value="2">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="Fade Off Time" max="253" min="0" size="1" type="byte" units="seconds" value="2">
+      <Help>
 				The amount of time to take to fade the lights from on to off.  
 				A value of zero is instant (no fade), values between 1 and 127 represent 1 to 127 seconds, and values from 128 to 253 represent from 1 to 126 minutes.
 			</Help>
-			
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Minimum Light Level" units="" min="0" max="100" size="1" value="10">
-			<Help>Smallest dimming value permitted.</Help>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Maximum Light Level" units="" min="0" max="100" size="1" value="100">
-			<Help>Largest dimming value permitted.</Help>
-		</Value>
-		<Value type="byte" index="5" genre="config" label="Preset Light Level" units="" min="0" max="100" size="1" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="Minimum Light Level" max="100" min="0" size="1" type="byte" units="" value="10">
+      <Help>Smallest dimming value permitted.</Help>
+    </Value>
+    <Value genre="config" index="4" label="Maximum Light Level" max="100" min="0" size="1" type="byte" units="" value="100">
+      <Help>Largest dimming value permitted.</Help>
+    </Value>
+    <Value genre="config" index="5" label="Preset Light Level" max="100" min="0" size="1" type="byte" units="" value="0">
+      <Help>
 				The dimming level of the lights when turned from off to on via the switch.
 				If the value of 0 is used, this means the restore dimming to the last dimming value.
 			</Help>
-		</Value>
-		<Value type="list" index="6" genre="config" label="LED Dim Level Indicator Timeout" units="" min="0" max="255" size="1" value="3">
-			<Help>The length of time in seconds that the level indicators should stay illuminated after the dimming level is changed.  A value of 0 means the indicator is always off, and a value of 255 means the indicators are always on.</Help>
-			<Item label="Level Indicators Always Off" value="0" />
-			<Item label="Level Indicators Always On" value="255" />
-		</Value>
-		<Value type="list" index="7" genre="config" label="Locator LED Status" units="" min="0" max="255" size="1" value="255">
-			<Help>Change the mode of the LED to Status Mode where the LED is illuminated when the load is On, Locator Mode where the LED is illuminated when the Load is Off, or turns off the LED completely for any other setting values.</Help>
-			<Item label="LED Off" value="0" />
-			<Item label="Status Mode" value="254" />
-			<Item label="Locator Mode" value="255" />
-		</Value>
-		<Value type="list" index="8" genre="config" label="Load Type" units="" min="0" max="2" size="1" value="0">
-			<Help>Specify the type of load that this dimmer controls.</Help>
-			<Item label="Incandescent" value="0" />
-			<Item label="LED" value="1" />
-			<Item label="CFL" value="2" />
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-	<CommandClass id="134" classgetsupported="false" />
+    </Value>
+    <Value genre="config" index="6" label="LED Dim Level Indicator Timeout" max="255" min="0" size="1" type="list" units="" value="3">
+      <Help>The length of time in seconds that the level indicators should stay illuminated after the dimming level is changed.  A value of 0 means the indicator is always off, and a value of 255 means the indicators are always on.</Help>
+      <Item label="Level Indicators Always Off" value="0"/>
+      <Item label="Level Indicators Always On" value="255"/>
+    </Value>
+    <Value genre="config" index="7" label="Locator LED Status" max="255" min="0" size="1" type="list" units="" value="255">
+      <Help>Change the mode of the LED to Status Mode where the LED is illuminated when the load is On, Locator Mode where the LED is illuminated when the Load is Off, or turns off the LED completely for any other setting values.</Help>
+      <Item label="LED Off" value="0"/>
+      <Item label="Status Mode" value="254"/>
+      <Item label="Locator Mode" value="255"/>
+    </Value>
+    <Value genre="config" index="8" label="Load Type" max="2" min="0" size="1" type="list" units="" value="0">
+      <Help>Specify the type of load that this dimmer controls.</Help>
+      <Item label="Incandescent" value="0"/>
+      <Item label="LED" value="1"/>
+      <Item label="CFL" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="134">
+    <Compatibility>
+      <ClassGetVersionSupported>false</ClassGetVersionSupported>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/dzpd3.xml b/Config/leviton/dzpd3.xml
index 1b88cc89d7..301f6beb9f 100644
--- a/Config/leviton/dzpd3.xml
+++ b/Config/leviton/dzpd3.xml
@@ -1,42 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Leviton DZPD3-2BW, http://products.z-wavealliance.org/products/1958
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Fade On Time" units="" min="0" max="253" size="1" value="2">
-			<Help>The amount of time to take to fade the lights from off to on.  A value of zero is instant (no fade), values between 1 and 127 represent 1 to 127 seconds, and values from 128 to 253 represent from 1 to 126 minutes.</Help>
-			<Item label="Instant On" value="0" />
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Fade Off Time" units="" min="0" max="253" size="1" value="2">
-			<Help>The amount of time to take to fade the lights from on to off.  A value of zero is instant (no fade), values between 1 and 127 represent 1 to 127 seconds, and values from 128 to 253 represent from 1 to 126 minutes.</Help>
-			<Item label="Instant Off" value="0" />
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Minimum Light Level" units="" min="0" max="100" size="1" value="10">
-			<Help>Smallest dimming value permitted.</Help>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Maximum Light Level" units="" min="0" max="100" size="1" value="100">
-			<Help>Largest dimming value permitted.</Help>
-		</Value>
-		<Value type="list" index="7" genre="config" label="Locator LED Status" units="" min="0" max="255" size="1" value="255">
-			<Help>Change the mode of the LED to Status Mode where the LED is illuminated when the load is On, Locator Mode where the LED is illuminated when the Load is Off, or turns off the LED completely for any other setting values.</Help>
-			<Item label="LED Off" value="0" />
-			<Item label="Status Mode" value="254" />
-			<Item label="Locator Mode" value="255" />
-		</Value>
-		<Value type="list" index="8" genre="config" label="Load Type" units="" min="0" max="2" size="1" value="0">
-			<Help>Specify the type of load that this dimmer controls.</Help>
-			<Item label="Incandescent" value="0" />
-			<Item label="LED" value="1" />
-			<Item label="CFL" value="2" />
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-	<CommandClass id="134" classgetsupported="false" />
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Fade On Time" max="253" min="0" size="1" type="byte" units="" value="2">
+      <Help>The amount of time to take to fade the lights from off to on.  A value of zero is instant (no fade), values between 1 and 127 represent 1 to 127 seconds, and values from 128 to 253 represent from 1 to 126 minutes.</Help>
+      <Item label="Instant On" value="0"/>
+    </Value>
+    <Value genre="config" index="2" label="Fade Off Time" max="253" min="0" size="1" type="byte" units="" value="2">
+      <Help>The amount of time to take to fade the lights from on to off.  A value of zero is instant (no fade), values between 1 and 127 represent 1 to 127 seconds, and values from 128 to 253 represent from 1 to 126 minutes.</Help>
+      <Item label="Instant Off" value="0"/>
+    </Value>
+    <Value genre="config" index="3" label="Minimum Light Level" max="100" min="0" size="1" type="byte" units="" value="10">
+      <Help>Smallest dimming value permitted.</Help>
+    </Value>
+    <Value genre="config" index="4" label="Maximum Light Level" max="100" min="0" size="1" type="byte" units="" value="100">
+      <Help>Largest dimming value permitted.</Help>
+    </Value>
+    <Value genre="config" index="7" label="Locator LED Status" max="255" min="0" size="1" type="list" units="" value="255">
+      <Help>Change the mode of the LED to Status Mode where the LED is illuminated when the load is On, Locator Mode where the LED is illuminated when the Load is Off, or turns off the LED completely for any other setting values.</Help>
+      <Item label="LED Off" value="0"/>
+      <Item label="Status Mode" value="254"/>
+      <Item label="Locator Mode" value="255"/>
+    </Value>
+    <Value genre="config" index="8" label="Load Type" max="2" min="0" size="1" type="list" units="" value="0">
+      <Help>Specify the type of load that this dimmer controls.</Help>
+      <Item label="Incandescent" value="0"/>
+      <Item label="LED" value="1"/>
+      <Item label="CFL" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="134">
+    <Compatibility>
+      <ClassGetVersionSupported>false</ClassGetVersionSupported>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/rzi10.xml b/Config/leviton/rzi10.xml
index 65223f0ac5..426aa07366 100644
--- a/Config/leviton/rzi10.xml
+++ b/Config/leviton/rzi10.xml
@@ -1,5 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- COMMAND_CLASS_VERSION CommandClassGet not supported -->
-  <CommandClass id="134" classgetsupported="false" />
+  <CommandClass id="134">
+    <Compatibility>
+      <ClassGetVersionSupported>false</ClassGetVersionSupported>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/vrcpg.xml b/Config/leviton/vrcpg.xml
index 65223f0ac5..426aa07366 100644
--- a/Config/leviton/vrcpg.xml
+++ b/Config/leviton/vrcpg.xml
@@ -1,5 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- COMMAND_CLASS_VERSION CommandClassGet not supported -->
-  <CommandClass id="134" classgetsupported="false" />
+  <CommandClass id="134">
+    <Compatibility>
+      <ClassGetVersionSupported>false</ClassGetVersionSupported>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/vrcs2.xml b/Config/leviton/vrcs2.xml
new file mode 100644
index 0000000000..6c124d6adc
--- /dev/null
+++ b/Config/leviton/vrcs2.xml
@@ -0,0 +1,21 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001D:0206:0201</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/leviton/vrcs2.png</MetaDataItem>
+    <MetaDataItem id="0206" name="ZWProductPage" type="0201">https://products.z-wavealliance.org/products/288/</MetaDataItem>
+    <MetaDataItem id="0206" name="FrequencyName" type="0201">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">The Vizia RF + 4-Button Zone Controller with Switch (VRCZ4-MR) and 4-Button Scene Controller with Switch (VRCS4-MR) are perfect for retrofit applications because they replace an existing switch giving the user control of the local load as well as the benefit of scene or zone control.
+ Item Description
+Vizia RF + 4-Button Zone Controller with Switch for Multi-Location Control with IR Remote Capability. White face assembled on device, ivory and light almond faces included.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.leviton.com/OA_HTML/ProductDetail.jsp?partnumber=VRCZ4-MRZ&amp;section=44147&amp;minisite=10251</MetaDataItem>
+    <MetaDataItem id="0206" name="Identifier" type="0201">VRCZ4-MR</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.leviton.com/OA_HTML/Home.jsp?minisite=10251&amp;respid=22372</MetaDataItem>
+    <MetaDataItem name="Name">VRCZ4-MR</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/286/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/287/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/288/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/leviton/vrcz4.xml b/Config/leviton/vrcz4.xml
new file mode 100644
index 0000000000..ae76ad4e3e
--- /dev/null
+++ b/Config/leviton/vrcz4.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Leviton 4 Button Zone Controller VRCZ4 / VRCZ4-MR
+https://products.z-wavealliance.org/products/288
+https://products.z-wavealliance.org/products/374
+-->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+	<!-- Association Groups -->
+	<CommandClass id="133">
+		<Associations num_groups="4">
+		       <!-- Do not auto associate with Group 1 on this device -->
+		       <Group index="1" max_associations="232" label="Basic - Button 1" auto="false"/>
+		       <Group index="2" max_associations="232" label="Basic - Button 2"/>
+		       <Group index="3" max_associations="232" label="Basic - Button 3"/>
+		       <Group index="4" max_associations="232" label="Basic - Button 4"/>
+		</Associations>
+	</CommandClass>
+</Product>
diff --git a/Config/leviton/vre06.xml b/Config/leviton/vre06.xml
index d553836173..426aa07366 100644
--- a/Config/leviton/vre06.xml
+++ b/Config/leviton/vre06.xml
@@ -1,5 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- COMMAND_CLASS_VERSION CommandClassGet not supported -->
-    <CommandClass id="134" classgetsupported="false" />
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_VERSION CommandClassGet not supported -->
+  <CommandClass id="134">
+    <Compatibility>
+      <ClassGetVersionSupported>false</ClassGetVersionSupported>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/vrf01.xml b/Config/leviton/vrf01.xml
index 65223f0ac5..11e76c1571 100644
--- a/Config/leviton/vrf01.xml
+++ b/Config/leviton/vrf01.xml
@@ -1,5 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001D:0334:1001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/leviton/vrf01.png</MetaDataItem>
+    <MetaDataItem id="0334" name="ZWProductPage" type="1001">https://products.z-wavealliance.org/products/807/</MetaDataItem>
+    <MetaDataItem id="0334" name="FrequencyName" type="1001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">› Preset On Level option sets the fan speed when the device is turned on, regardless of the previous setting
+› Off-Low-Medium-High speed settings
+› Microprocessor-controlled "kick start" allows fan to go directly from OFF to any speed setting
+› LED Locator and fan speed display
+› Requires the Vizia RF + Handheld Remote - VRCPG for programming and control of the Vizia RF + System (sold separately)
+</MetaDataItem>
+    <MetaDataItem name="Name">Scene Capable Quiet Fan Speed Control</MetaDataItem>
+    <MetaDataItem id="0334" name="Identifier" type="1001">VRF01</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/807/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- COMMAND_CLASS_VERSION CommandClassGet not supported -->
-  <CommandClass id="134" classgetsupported="false" />
+  <CommandClass id="134">
+    <Compatibility>
+      <ClassGetVersionSupported>false</ClassGetVersionSupported>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/vri06.xml b/Config/leviton/vri06.xml
index 65223f0ac5..426aa07366 100644
--- a/Config/leviton/vri06.xml
+++ b/Config/leviton/vri06.xml
@@ -1,5 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- COMMAND_CLASS_VERSION CommandClassGet not supported -->
-  <CommandClass id="134" classgetsupported="false" />
+  <CommandClass id="134">
+    <Compatibility>
+      <ClassGetVersionSupported>false</ClassGetVersionSupported>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/vri10.xml b/Config/leviton/vri10.xml
index 65223f0ac5..1121510b98 100644
--- a/Config/leviton/vri10.xml
+++ b/Config/leviton/vri10.xml
@@ -1,5 +1,20 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001D:0334:0602</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/leviton/vri10.png</MetaDataItem>
+    <MetaDataItem id="0334" name="ZWProductPage" type="0602">https://products.z-wavealliance.org/products/810/</MetaDataItem>
+    <MetaDataItem name="Name">Magnetic Low Voltage Dimmer</MetaDataItem>
+    <MetaDataItem id="0334" name="FrequencyName" type="0602">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">Vizia RF + 1000VA Magnetic Low Voltage, 1000W Incandescent and Mark 10 Scene Capable Dimmer for single pole, 3-way or more applications, with LED locator and brightness display.</MetaDataItem>
+    <MetaDataItem id="0334" name="Identifier" type="0602">VRMX1</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/810/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- COMMAND_CLASS_VERSION CommandClassGet not supported -->
-  <CommandClass id="134" classgetsupported="false" />
+  <CommandClass id="134">
+    <Compatibility>
+      <ClassGetVersionSupported>false</ClassGetVersionSupported>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/leviton/vrs15.xml b/Config/leviton/vrs15.xml
new file mode 100644
index 0000000000..b82c4dca1f
--- /dev/null
+++ b/Config/leviton/vrs15.xml
@@ -0,0 +1,18 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001D:0334:0301</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/leviton/vrs15.png</MetaDataItem>
+    <MetaDataItem id="0334" name="ZWProductPage" type="0301">https://products.z-wavealliance.org/products/814/</MetaDataItem>
+    <MetaDataItem id="0334" name="Identifier" type="0301">VRS15</MetaDataItem>
+    <MetaDataItem name="Description">- Manual and remote ON/OFF control of connected loads
+- LED Display options control the length of time they remain lit
+- Push pad always returns to a neutral position whether switch is on or off so it maintains a consistent appearance when mixed in a multi-switch wall box
+- Compatible with Decora Plus screwless wallplates and Decora wallplates
+- Requires the Vizia RF + Handheld Remote - VRCPG for programming and control of the Vizia RF + System (sold separately)</MetaDataItem>
+    <MetaDataItem id="0334" name="FrequencyName" type="0301">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Wall Switch, 15A</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/814/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/linear/GC-TBZ48.xml b/Config/linear/GC-TBZ48.xml
index 50d623c902..8bddfff793 100644
--- a/Config/linear/GC-TBZ48.xml
+++ b/Config/linear/GC-TBZ48.xml
@@ -1,228 +1,257 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns="http://code.google.com/p/open-zwave/">
-  <CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
-    <Instance index="1" />
-    <Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" read_only="false" write_only="false" />
-    <Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" read_only="false" write_only="false" />
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heating 1" read_only="false" type="decimal" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Cooling 1" read_only="false" type="decimal" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
   </CommandClass>
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="System Type" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="1" label="System Type" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = Standard, 1 = Heat Pump
       </Help>
-      <Item label="Standard" value="0" />
-      <Item label="Heat Pump" value="1" />
+      <Item label="Standard" value="0"/>
+      <Item label="Heat Pump" value="1"/>
     </Value>
-    <Value type="list" index="2" genre="config" label="Fan Type" units="fahrenheit" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="2" label="Fan Type" max="1" min="0" size="1" type="list" units="fahrenheit" value="0">
       <Help>
         0 = Gas (no fan w/Heat), 1 = Electric (Fan w/Heat)
       </Help>
-      <Item label="Gas" value="0" />
-      <Item label="Electric" value="1" />
+      <Item label="Gas" value="0"/>
+      <Item label="Electric" value="1"/>
     </Value>
-    <Value type="list" index="3" genre="config" label="Change Over Type" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="3" label="Change Over Type" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = w/Cool, 1 = w/Heat
       </Help>
-      <Item label="w/Cool" value="0" />
-      <Item label="w/Heat" value="1" />
+      <Item label="w/Cool" value="0"/>
+      <Item label="w/Heat" value="1"/>
     </Value>
-    <Value type="list" index="4" genre="config" label="2nd Stage Heat Enable" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="4" label="2nd Stage Heat Enable" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = no 2nd stage heat, 1 = 2nd stage heat
       </Help>
-      <Item label="w/Cool" value="0" />
-      <Item label="w/Heat" value="1" />
+      <Item label="w/Cool" value="0"/>
+      <Item label="w/Heat" value="1"/>
     </Value>
-    <Value type="list" index="5" genre="config" label="Aux Heat Enable" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="5" label="Aux Heat Enable" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = no aux heat, 1 = aux heat enabled
       </Help>
-      <Item label="Disabled" value="0" />
-      <Item label="Enabled" value="1" />
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="6" genre="config" label="2nd Stage Cool Enable" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="6" label="2nd Stage Cool Enable" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = no 2nd stage cool, 1 = 2nd stage cool
       </Help>
-      <Item label="Disabled" value="0" />
-      <Item label="Enabled" value="1" />
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="7" genre="config" label="Temperature Unit" units="" min="0" max="1" value="1" size="1">
+    <Value genre="config" index="7" label="Temperature Unit" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>
         0 = Celsius, 1 = Fahrenheit
       </Help>
-      <Item label="Celsius" value="0" />
-      <Item label="Fahrenheit" value="1" />
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
     </Value>
-    <Value type="byte" index="8" genre="config" label="Minimum Off Time" units="minutes" min="5" max="9" value="5" size="1">
+    <Value genre="config" index="8" label="Minimum Off Time" max="9" min="5" size="1" type="byte" units="minutes" value="5">
       <Help>
         Sets the Minimum Off Time (MOT) delay before another heating/cooling cycle can begin
       </Help>
     </Value>
-    <Value type="byte" index="9" genre="config" label="Minimum Run Time" units="minutes" min="3" max="9" value="3" size="1">
+    <Value genre="config" index="9" label="Minimum Run Time" max="9" min="3" size="1" type="byte" units="minutes" value="3">
       <Help>
         Sets the Minimum Run Time (MRT) delay before a heating/cooling cycle can turn of
       </Help>
     </Value>
-    <Value type="byte" index="10" genre="config" label="Setpoint H/C Delta" units="fahrenheit" min="3" max="15" value="3" size="1">
+    <Value genre="config" index="10" label="Setpoint H/C Delta" max="15" min="3" size="1" type="byte" units="fahrenheit" value="3">
       <Help>
         Sets the minimum separation between heating and cooling setpoints
       </Help>
     </Value>
-    <Value type="byte" index="11" genre="config" label="H Delta Stage 1 ON" units="fahrenheit" min="1" max="6" value="1" size="1">
+    <Value genre="config" index="11" label="H Delta Stage 1 ON" max="6" min="1" size="1" type="byte" units="fahrenheit" value="1">
       <Help>
         Sets the delta from setpoint that stage 1 heating starts
       </Help>
     </Value>
-    <Value type="byte" index="12" genre="config" label="H Delta Stage 1 OFF" units="fahrenheit" min="0" max="5" value="0" size="1">
+    <Value genre="config" index="12" label="H Delta Stage 1 OFF" max="5" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delta from setpoint that stage 1 heating stops
       </Help>
     </Value>
-    <Value type="byte" index="13" genre="config" label="H Delta Stage 2 ON" units="fahrenheit" min="2" max="7" value="2" size="1">
+    <Value genre="config" index="13" label="H Delta Stage 2 ON" max="7" min="2" size="1" type="byte" units="fahrenheit" value="2">
       <Help>
         Sets the delta from setpoint that stage 2 heating starts
       </Help>
     </Value>
-    <Value type="byte" index="14" genre="config" label="H Delta Stage 2 OFF" units="fahrenheit" min="0" max="6" value="0" size="1">
+    <Value genre="config" index="14" label="H Delta Stage 2 OFF" max="6" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delay from setpoint that stage 2 heating stops
       </Help>
     </Value>
-    <Value type="byte" index="15" genre="config" label="H Delta Aux ON" units="fahrenheit" min="3" max="8" value="3" size="1">
+    <Value genre="config" index="15" label="H Delta Aux ON" max="8" min="3" size="1" type="byte" units="fahrenheit" value="3">
       <Help>
         Sets the delta from setpoint that stage 3 heating starts
       </Help>
     </Value>
-    <Value type="byte" index="16" genre="config" label="H Delta Stage 2 OFF" units="fahrenheit" min="0" max="7" value="0" size="1">
+    <Value genre="config" index="16" label="H Delta Stage 2 OFF" max="7" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delta from setpoint that stage 3 heating stops
       </Help>
     </Value>
-    <Value type="byte" index="17" genre="config" label="C Delta Stage 1 ON" units="fahrenheit" min="1" max="6" value="1" size="1">
+    <Value genre="config" index="17" label="C Delta Stage 1 ON" max="6" min="1" size="1" type="byte" units="fahrenheit" value="1">
       <Help>
         Sets the delta from setpoint that stage 1 cooling starts
       </Help>
     </Value>
-    <Value type="byte" index="18" genre="config" label="C Delta Stage 1 OFF" units="fahrenheit" min="0" max="5" value="0" size="1">
+    <Value genre="config" index="18" label="C Delta Stage 1 OFF" max="5" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delta from setpoint that stage 1 cooling stops
       </Help>
     </Value>
-    <Value type="byte" index="19" genre="config" label="C Delta Stage 2 ON" units="fahrenheit" min="2" max="7" value="2" size="1">
+    <Value genre="config" index="19" label="C Delta Stage 2 ON" max="7" min="2" size="1" type="byte" units="fahrenheit" value="2">
       <Help>
         Sets the delta from setpoint that stage 2 cooling starts
       </Help>
     </Value>
-    <Value type="byte" index="20" genre="config" label="C Delta Stage 2 OFF" units="fahrenheit" min="0" max="6" value="0" size="1">
+    <Value genre="config" index="20" label="C Delta Stage 2 OFF" max="6" min="0" size="1" type="byte" units="fahrenheit" value="0">
       <Help>
         Sets the delta from setpoint that stage 2 cooling stops
       </Help>
     </Value>
-    <Value type="list" index="24" genre="config" label="Display Lock" units="" min="1" max="1" value="0" size="1">
+    <Value genre="config" index="23" label="Lifeline Association Group Report To Send" max="65535" min="0" size="4" type="int" value="8319">
+      <Help>
+        Report to send to the Lifeline Association Group upon change in thermostat state. 
+        Bitmask values:
+          1 = Temperature
+          2 = Heat Setpoint
+          4 = Cool Setpoint
+          8 = Thermostat Heat/Cooling Mode
+          16 = Fan Mode
+          32 = Fan State
+          64 = Operating State
+          128 = Schedule (send CC parameter 38)
+          256 = Setback (send CC parameter 40)
+          512 = Run Hold (send CC parameter 39)
+          1024 = Display Lock (send CC parameter 24)
+          8192 = Battery Level
+          16834 = Mechanical Relay State (send CC parameter 21)
+          32768 = Thermostat State Config (send CC parameter 22)        
+      </Help>
+    </Value>
+    <Value genre="config" index="24" label="Display Lock" max="1" min="1" size="1" type="list" units="" value="0">
       <Help>
         Display Lock
       </Help>
-      <Item label="Unlocked" value="0" />
-      <Item label="Locked" value="1" />
+      <Item label="Unlocked" value="0"/>
+      <Item label="Locked" value="1"/>
     </Value>
-    <Value type="byte" index="26" genre="config" label="Backlight Timer" units="seconds" min="10" max="30" value="20" size="1">
+    <Value genre="config" index="26" label="Backlight Timer" max="30" min="10" size="1" type="byte" units="seconds" value="20">
       <Help>
         Sets the time from last button press that the backlight will turn OFF
       </Help>
     </Value>
-    <Value type="byte" index="33" genre="config" label="Max Heat Setpoint" units="degrees" min="30" max="109" value="90" size="1">
+    <Value genre="config" index="33" label="Max Heat Setpoint" max="109" min="30" size="1" type="byte" units="degrees" value="90">
       <Help>
         Sets the maximum heating setpoint value
       </Help>
     </Value>
-    <Value type="byte" index="34" genre="config" label="Min Cool Setpoint" units="degrees" min="33" max="112" value="61" size="1">
+    <Value genre="config" index="34" label="Min Cool Setpoint" max="112" min="33" size="1" type="byte" units="degrees" value="61">
       <Help>
         Sets the minimum cooling setpoint value
       </Help>
     </Value>
-    <Value type="list" index="38" genre="config" label="Schedule Enable" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="38" label="Schedule Enable" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         Enable or disable thermostat's local scheduler
       </Help>
-      <Item label="Disabled" value="0" />
-      <Item label="Enabled" value="1" />
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
     </Value>
-    <Value type="list" index="39" genre="config" label="Run/Hold Mode" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="39" label="Run/Hold Mode" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = Hold, 1 = Run
       </Help>
-      <Item label="Hold" value="0" />
-      <Item label="Run" value="1" />
+      <Item label="Hold" value="0"/>
+      <Item label="Run" value="1"/>
     </Value>
-    <Value type="list" index="40" genre="config" label="Setback Mode" units="" min="0" max="2" value="0" size="1">
+    <Value genre="config" index="40" label="Setback Mode" max="2" min="0" size="1" type="list" units="" value="0">
       <Help>
         0 = No setback, 2 = Un-occupied mode
       </Help>
-      <Item label="No Setback" value="0" />
-      <Item label="Unoccupied Mode" value="2" />
+      <Item label="No Setback" value="0"/>
+      <Item label="Unoccupied Mode" value="2"/>
     </Value>
-    <Value type="byte" index="41" genre="config" label="Un-Occupied HSP" units="degrees" min="30" max="109" value="62" size="1">
+    <Value genre="config" index="41" label="Un-Occupied HSP" max="109" min="30" size="1" type="byte" units="degrees" value="62">
       <Help>
         Heat Setpoint for Unoccupied mode
       </Help>
     </Value>
-    <Value type="byte" index="42" genre="config" label="Un-Occupied CSP" units="degrees" min="33" max="112" value="80" size="1">
+    <Value genre="config" index="42" label="Un-Occupied CSP" max="112" min="33" size="1" type="byte" units="degrees" value="80">
       <Help>
         Cool Setpoint for Unoccupied mode
       </Help>
     </Value>
-    <Value type="byte" index="43" genre="config" label="Remote Sensor 1 Node Number" units="" min="0" max="252" size="1">
+    <Value genre="config" index="43" label="Remote Sensor 1 Node Number" max="252" min="0" size="1" type="byte" units="">
       <Help>
         Node number for Remote Sensor 1
       </Help>
     </Value>
-    <Value type="byte" index="46" genre="config" label="Remote Sensor 1 Temperature" units="degrees" min="0" max="112" size="1">
+    <Value genre="config" index="46" label="Remote Sensor 1 Temperature" max="112" min="0" size="1" type="byte" units="degrees">
       <Help>
         Temperature of Remote Sensor 1
       </Help>
     </Value>
-    <Value type="byte" index="48" genre="config" label="Internal Sensor Temp Offset" units="degrees" min="-7" max="7" value="0" size="1">
+    <Value genre="config" index="48" label="Internal Sensor Temp Offset" max="7" min="-7" size="1" type="byte" units="degrees" value="0">
       <Help>
         Internal Sensor Temperature Offset
       </Help>
     </Value>
-    <Value type="byte" index="49" genre="config" label="R1 Sensor Temp Offset" units="degrees" min="-7" max="7" value="0" size="1">
+    <Value genre="config" index="49" label="R1 Sensor Temp Offset" max="7" min="-7" size="1" type="byte" units="degrees" value="0">
       <Help>
         R1 Sensor Temperature Offset
       </Help>
     </Value>
-    <Value type="short" index="52" genre="config" label="Filter Timer" units="hours" min="0" max="4000" value="4000" size="2">
+    <Value genre="config" index="52" label="Filter Timer" max="4000" min="0" size="2" type="short" units="hours" value="4000">
       <Help>
         Timer to let know when to change or clean the filter
       </Help>
     </Value>
-    <Value type="short" index="53" genre="config" label="Max Filter Timer" units="hours" min="0" max="4000" value="44" size="2">
+    <Value genre="config" index="53" label="Max Filter Timer" max="4000" min="0" size="2" type="short" units="hours" value="44">
       <Help>
         Maximum allowed value for filter timer
       </Help>
     </Value>
-    <Value type="short" index="54" genre="config" label="Heat Timer" units="hours" min="0" max="4000" value="0" size="2">
+    <Value genre="config" index="54" label="Heat Timer" max="4000" min="0" size="2" type="short" units="hours" value="0">
       <Help>
         Heat Timer in hours
       </Help>
     </Value>
-    <Value type="short" index="55" genre="config" label="Cool Timer" units="hours" min="0" max="4000" value="0" size="2">
+    <Value genre="config" index="55" label="Cool Timer" max="4000" min="0" size="2" type="short" units="hours" value="0">
       <Help>
         Cool Timer in hours
       </Help>
     </Value>
-    <Value type="byte" index="61" genre="config" label="Fan Purge Heat" units="seconds" min="0" max="90" value="0" size="1">
+    <Value genre="config" index="61" label="Fan Purge Heat" max="90" min="0" size="1" type="byte" units="seconds" value="0">
       <Help>
         Fan purge period for Heat mode
       </Help>
     </Value>
-    <Value type="byte" index="62" genre="config" label="Fan Purge Cool" units="hours" min="0" max="90" value="0" size="1">
+    <Value genre="config" index="62" label="Fan Purge Cool" max="90" min="0" size="1" type="byte" units="hours" value="0">
       <Help>
         Fan purge period for Cool mode
       </Help>
     </Value>
   </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Cool" max_associations="5"/>
+      <Group index="3" label="Heat" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/linear/LB60Z-1.xml b/Config/linear/LB60Z-1.xml
index 81053515b3..dce4ec6a04 100644
--- a/Config/linear/LB60Z-1.xml
+++ b/Config/linear/LB60Z-1.xml
@@ -1,18 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Dim Level Memory" size="1" value="0">
-			<Help>Using Last Dim Setting will bring the bulb back to the last dimness setting when turning on, instead of full brightness by default.</Help>
-			<Item label="Full Brightness" value="0" />
-			<Item label="Last Dim Setting" value="1" />
-		</Value>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/014F:3038:4754</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/linear/LB60Z-1.png</MetaDataItem>
+    <MetaDataItem id="3038" name="ZWProductPage" type="4754">https://products.z-wavealliance.org/products/1414/</MetaDataItem>
+    <MetaDataItem id="3038" name="Identifier" type="4754">LBR30Z-1</MetaDataItem>
+    <MetaDataItem name="ResetDescription">You may manually reset the light bulb as follows:
+1.  Flick the wall switch “OFF-ON” 4 times within 4 seconds. 
+2. The dt Smart Bulb will flash twice after Reset is successful.  
+
+Use this procedure only in the event that the network primary controller is lost or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem id="3038" name="FrequencyName" type="4754">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Turn off power to the light bulb socket
+2. Follow the network controller instruction to place your network controller into exclusion mode to remove the dt light bulb from the network.
+3. After being prompted by the network controller, turn On power to the light bulb.  If successful, the LED light bulb will flash twice to indicate successful inclusion.
+
+</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Turn Off power to the light bulb socket
+2. Screw in the light bulb
+3. Place your network controller into inclusion mode by following the controller manufacturer's instructions
+4. Turn On power to the light bulb.  If successful, the LED light bulb will flash twice to indicate successful inclusion.
+5. If the controller/gateway shows it was a fail, repeat the procedure.
+
+Note: If Inclusion still fails after the 2nd attempt, you need to first RESET the dt Smart Bulb before repeating the above steps. 
+</MetaDataItem>
+    <MetaDataItem name="Name">Smart LED Light Bulb</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1414/10006193X8 LBR30Z-1 Instructions.pdf</MetaDataItem>
+    <MetaDataItem name="Description">Smart LED light bulb with Z-Wave radio.
+- Control lights remotely and save energy
+- Compatible with smart home systems supporting Z-Wave
+- 65 Watt equivalent light (650 lumens)
+- Consumes only 7.5 watts of power
+- 5000K Day light with frosted glass 
+- Instant ON and fully dimmable
+- Functions as a Z-Wave signal repeater
+- Very simple to include in your network
+- Z-Wave Plus certified 
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1162/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1290/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1291/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1414/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Dim Level Memory" size="1" type="list" value="0">
+      <Help>Using Last Dim Setting will bring the bulb back to the last dimness setting when turning on, instead of full brightness by default.</Help>
+      <Item label="Full Brightness" value="0"/>
+      <Item label="Last Dim Setting" value="1"/>
+    </Value>
   </CommandClass>
   <!-- COMMAND_CLASS_ASSOCIATION -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/linear/PD300Z-2.xml b/Config/linear/PD300Z-2.xml
index 83feb1ab7b..563df804f7 100644
--- a/Config/linear/PD300Z-2.xml
+++ b/Config/linear/PD300Z-2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="bool" index="29" genre="config" label="Load Sensing" size="1" value="False">
diff --git a/Config/linear/WA00Z-1.xml b/Config/linear/WA00Z-1.xml
index fbeefbd9a6..c4f864fce6 100644
--- a/Config/linear/WA00Z-1.xml
+++ b/Config/linear/WA00Z-1.xml
@@ -1,12 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Central Scene -->
-	<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="2" request_flags="4" scenecount="0">
-		<Instance index="1" />
-			<Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="2" />
-			<Value type="int" genre="user" instance="1" index="1" label="Top Button Scene" units="" read_only="false" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0" />
-			<Value type="int" genre="user" instance="1" index="2" label="Bottom Button Scene" units="" read_only="false" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0" />
-	</CommandClass>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="2" genre="config" label="Control Mode" size="1" value="0">
diff --git a/Config/linear/WA105DBZ-1.xml b/Config/linear/WA105DBZ-1.xml
index f9d4d35f97..d8bb98fadf 100644
--- a/Config/linear/WA105DBZ-1.xml
+++ b/Config/linear/WA105DBZ-1.xml
@@ -1,19 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- Linear Security Battery Siren -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="byte" genre="config" index="0" label="Siren Strobe Mode" min="0" max="255" value="0">
-            <Help>Defines the reaction of the siren: [0] Strobe and Siren, [1] Siren, [2] Strobe (Default setting: 0)</Help>
-        </Value>
-        <Value type="byte" genre="config" index="1" label="Alarm auto stop" min="0" max="255" value="0">
-            <Help>Defines the auto time out of the alarm indication: [0] 30 seconds, [1] 60 seconds, [2] 120 seconds, [3] Continuous (Default setting: 0)</Help>
-        </Value>
-    </CommandClass>
-    <!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-    <!--  Binary report value when the Magnet switch is opened/closed -->
-	<CommandClass id="37" setasreport="true"/>
-    <!--  Battery set as report -->
-	<CommandClass id="128" setasreport="true"/>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="0" label="Siren Strobe Mode" max="255" min="0" type="byte" value="0">
+      <Help>Defines the reaction of the siren: [0] Strobe and Siren, [1] Siren, [2] Strobe (Default setting: 0)</Help>
+    </Value>
+    <Value genre="config" index="1" label="Alarm auto stop" max="255" min="0" type="byte" value="0">
+      <Help>Defines the auto time out of the alarm indication: [0] 30 seconds, [1] 60 seconds, [2] 120 seconds, [3] Continuous (Default setting: 0)</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Binary report value when the Magnet switch is opened/closed -->
+  <CommandClass id="37">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Battery set as report -->
+  <CommandClass id="128">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/linear/WADWAZ-1.xml b/Config/linear/WADWAZ-1.xml
index 9434cdf366..d43540fcd4 100644
--- a/Config/linear/WADWAZ-1.xml
+++ b/Config/linear/WADWAZ-1.xml
@@ -1,24 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Linear WADWAZ-1 Door/Window Sensor -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" index="1" label="External Switch" size="1" min="0" max="255" value="0">
-            <Help>External Switch Status</Help>
-            <Item label="On" value="255"/>
-            <Item label="Off" value="0"/>
-        </Value>
-    </CommandClass>
-
-    <!-- COMMAND_CLASS_BASIC -->
-    <CommandClass id="32" setasreport="true"/>
-
-    <!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
-    <CommandClass id="113" getsupported="false"/>
-
-    <!-- COMMAND_CLASS_ASSOCIATION -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="5" label="All Reports"/>
-        </Associations>
-    </CommandClass>
-</Product>
\ No newline at end of file
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Linear WADWAZ-1 Door/Window Sensor -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="External Switch" max="255" min="0" size="1" type="list" value="0">
+      <Help>External Switch Status</Help>
+      <Item label="On" value="255"/>
+      <Item label="Off" value="0"/>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="All Reports" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/linear/WAPIRZ-1.xml b/Config/linear/WAPIRZ-1.xml
index d338855b60..9632035f53 100644
--- a/Config/linear/WAPIRZ-1.xml
+++ b/Config/linear/WAPIRZ-1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="short" index="1" genre="config" label="Re-trigger Wait Time" size="2" min="0" max="255" units="minutes" value="3">
diff --git a/Config/linear/WD500Z-1.xml b/Config/linear/WD500Z-1.xml
index 8b70c955cb..50437be7fa 100644
--- a/Config/linear/WD500Z-1.xml
+++ b/Config/linear/WD500Z-1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="3" genre="config" label="LED Mode" size="1" value="0">
diff --git a/Config/linear/WD500Z5-1.xml b/Config/linear/WD500Z5-1.xml
index 1432b34556..9393445f42 100644
--- a/Config/linear/WD500Z5-1.xml
+++ b/Config/linear/WD500Z5-1.xml
@@ -3,7 +3,7 @@
 GoControl in-wall lighting dimmer switch WD500Z5-1 
 https://products.z-wavealliance.org/products/1883
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="3" genre="config" label="Night Light" size="1" value="0">
diff --git a/Config/linear/WS15Z-1.xml b/Config/linear/WS15Z-1.xml
index 273367ee42..fc4921a230 100644
--- a/Config/linear/WS15Z-1.xml
+++ b/Config/linear/WS15Z-1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="3" genre="config" label="LED Mode" size="1" value="0">
diff --git a/Config/linear/WT00Z-1.xml b/Config/linear/WT00Z-1.xml
index 749906ac99..619158a338 100644
--- a/Config/linear/WT00Z-1.xml
+++ b/Config/linear/WT00Z-1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="3" genre="config" label="LED Mode" size="1" value="0">
diff --git a/Config/linear/ngd00z.xml b/Config/linear/ngd00z.xml
new file mode 100644
index 0000000000..103fd92e6c
--- /dev/null
+++ b/Config/linear/ngd00z.xml
@@ -0,0 +1,20 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/014F:3530:4744</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/linear/ngd00z.png</MetaDataItem>
+    <MetaDataItem id="3530" name="ZWProductPage" type="4744">https://products.z-wavealliance.org/products/1458/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">n/a</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">With the hub in "Remove" mode, press the release the button on the side of the GD00Z.</MetaDataItem>
+    <MetaDataItem id="3530" name="FrequencyName" type="4744">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">With the hub in "Add" mode, press the release the button on the side of the GD00Z.</MetaDataItem>
+    <MetaDataItem id="3530" name="Identifier" type="4744">GD00Z-4</MetaDataItem>
+    <MetaDataItem name="Name">GD00Z-4</MetaDataItem>
+    <MetaDataItem name="Description">Garage Door Remote Controller Accessory opens or closes a sectional garage door remotely through a Z-Wave certified Gateway or Security Panel. Compatible with virtually any garage door opener connected to a sectional garage door. Audible and visual warnings prior to remotely-activated door movement, meeting UL 325 safety requirements. Included tilt sensor reports door "open" or "close" information.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1458/236956BX1 GD00Z-4 GoControl Instructions.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and release the button in the side of the unit 5 times within 10 seconds only when the primary controller is not available.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1298/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1458/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/logicsoft/ZHC5002.xml b/Config/logicsoft/ZHC5002.xml
index c8b83b8df1..c0dd7821d0 100644
--- a/Config/logicsoft/ZHC5002.xml
+++ b/Config/logicsoft/ZHC5002.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Parameters added from manual found here: https://butikk.thermo-floor.no/media/multicase/documents/_tfasdokumentasjon/smarthus/brytere/multireg/manual_multireg_z-wave_scene_controller.pdf -->
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
diff --git a/Config/logicsoft/ZHC5010.xml b/Config/logicsoft/ZHC5010.xml
index bae89fd6d4..f10a777d13 100644
--- a/Config/logicsoft/ZHC5010.xml
+++ b/Config/logicsoft/ZHC5010.xml
@@ -1,123 +1,122 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Upper paddle buttons mode" min="0" max="1" value="0" size="1" >
-			<Help>Configuration of Pair Mode for the upper two buttons (button #1 and #2).</Help>
-			<Item label="Toggle mode" value="0" />
-			<Item label="In pair mode" value="1" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Lower paddle buttons mode" min="0" max="1" value="0" size="1" >
-			<Help>Configuration of Pair Mode for the lower two buttons (button #3 and #4).</Help>
-			<Item label="Toggle mode" value="0"/>
-			<Item label="In pair mode" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="LED #1 mode" min="0" max="8" value="1" size="1" >
-			<Help>LED #1 indicates the status mode.</Help>
-			<Item label="LED indication is disabled (LED can be controlled by Indicator Command Class Set commands)" value="0"/>
-			<Item label="LED indicates the status of the corresponding button" value="1"/>
-			<Item label="LED indicates the status of the corresponding button, with inverted indication" value="2"/>
-			<Item label="LED indicates the status of corresponding paddle (in pair mode)" value="3"/>
-			<Item label="LED indicates the status of the corresponding paddle (in pair mode), with inverted indication" value="4"/>
-			<Item label="LED indicates the status of the built-in relay" value="5"/>
-			<Item label="LED indicates the status of the built-in relay, with inverted indication" value="6"/>
-			<Item label="LED show a 5 seconds indication when the corresponding button is pressed" value="7"/>
-			<Item label="LED indication is disabled, it is only controlled by Command Class Basic Set commands" value="8"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="4" label="LED #2 mode" min="0" max="8" value="1" size="1" >
-			<Help>LED #2 indicates the status mode.</Help>
-			<Item label="LED indication is disabled (LED can be controlled by Indicator Command Class Set commands)" value="0" />
-			<Item label="LED indicates the status of the corresponding button" value="1" />
-			<Item label="LED indicates the status of the corresponding button, with inverted indication" value="2" />
-			<Item label="LED indicates the status of corresponding paddle (in pair mode)" value="3" />
-			<Item label="LED indicates the status of the corresponding paddle (in pair mode), with inverted indication" value="4" />
-			<Item label="LED indicates the status of the built-in relay" value="5" />
-			<Item label="LED indicates the status of the built-in relay, with inverted indication" value="6" />
-			<Item label="LED show a 5 seconds indication when the corresponding button is pressed" value="7" />
-			<Item label="LED indication is disabled, it is only controlled by Command Class Basic Set commands" value="8" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="5" label="LED #3 mode" min="0" max="8" value="1" size="1" >
-			<Help>LED #3 indicates the status mode.</Help>
-			<Item label="LED indication is disabled (LED can be controlled by Indicator Command Class Set commands)" value="0" />
-			<Item label="LED indicates the status of the corresponding button" value="1" />
-			<Item label="LED indicates the status of the corresponding button, with inverted indication" value="2" />
-			<Item label="LED indicates the status of corresponding paddle (in pair mode)" value="3" />
-			<Item label="LED indicates the status of the corresponding paddle (in pair mode), with inverted indication" value="4" />
-			<Item label="LED indicates the status of the built-in relay" value="5" />
-			<Item label="LED indicates the status of the built-in relay, with inverted indication" value="6" />
-			<Item label="LED show a 5 seconds indication when the corresponding button is pressed" value="7" />
-			<Item label="LED indication is disabled, it is only controlled by Command Class Basic Set commands" value="8" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="6" label="LED #4 mode" min="0" max="8" value="1" size="1" >
-			<Help>LED #4 indicates the status mode.</Help>
-			<Item label="LED indication is disabled (LED can be controlled by Indicator Command Class Set commands)" value="0" />
-			<Item label="LED indicates the status of the corresponding button" value="1" />
-			<Item label="LED indicates the status of the corresponding button, with inverted indication" value="2" />
-			<Item label="LED indicates the status of corresponding paddle (in pair mode)" value="3" />
-			<Item label="LED indicates the status of the corresponding paddle (in pair mode), with inverted indication" value="4" />
-			<Item label="LED indicates the status of the built-in relay" value="5" />
-			<Item label="LED indicates the status of the built-in relay, with inverted indication" value="6" />
-			<Item label="LED show a 5 seconds indication when the corresponding button is pressed" value="7" />
-			<Item label="LED indication is disabled, it is only controlled by Command Class Basic Set commands" value="8" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="7" label="LED #1 brightness level" min="0" max="100" value="50">
-			<Help>0 - 100 Specifies the brightness level of the LED when it is on.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="8" label="LED #2 brightness level" min="0" max="100" value="50">
-			<Help>0 - 100 Specifies the brightness level of the LED when it is on.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="9" label="LED #3 brightness level" min="0" max="100" value="50">
-			<Help>0 - 100 Specifies the brightness level of the LED when it is on.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="10" label="LED #4 brightness level" min="0" max="100" value="50">
-			<Help>0 - 100 Specifies the brightness level of the LED when it is on.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="11" label="LED #1 off brightness level" min="0" max="100" value="00">
-			<Help>0 - 100 Specifies the brightness level of the LED when it is off.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="12" label="LED #2 off brightness level" min="0" max="100" value="00">
-			<Help>0 - 100 Specifies the brightness level of the LED when it is off.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="13" label="LED #3 off brightness level" min="0" max="100" value="00">
-			<Help>0 - 100 Specifies the brightness level of the LED when it is off.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="14" label="LED #4 off brightness level" min="0" max="100" value="00">
-			<Help>0 - 100 Specifies the brightness level of the LED when it is off.</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="15" label="Relay mode" min="0" max="13" value="1" size="1" >
-			<Help>This parameter configures which of the buttons that shall control the built-in relay, or if the relay only will be activated for one second, each time button #1 is used.</Help>
-			<Item label="Relay is disabled" value="0" />
-			<Item label="Relay is controlled by button #1 or by upper paddle when pair mode is active" value="1" />
-			<Item label="Relay is controlled by button #2 or by upper paddle when pair mode is active" value="2" />
-			<Item label="Relay is controlled by button #3 or by lower paddle when pair mode is active" value="3" />
-			<Item label="Relay is controlled by button #4 or by lower paddle when pair mode is active" value="4" />
-			<Item label="Relay is activated for half a second and is controlled by button #1 or by upper paddle when pair mode is active" value="5" />
-			<Item label="Relay is activated for half a second and is controlled by button #2 or by upper paddle when pair mode is active" value="6" />
-			<Item label="Relay is activated for half a second and is controlled by button #3 or by lower paddle when pair mode is active" value="7" />
-			<Item label="Relay is activated for half a second and is controlled by button #4 or by lower paddle when pair mode is active" value="8"/>
-			<Item label="Relay follows the state of button #1; when button is down the relay is on and when button is released the relay is off" value="9" />
-			<Item label="Relay follows the state of button #2; when button is down the relay is on and when button is released the relay is off" value="10" />
-			<Item label="Relay follows the state of button #3; when button is down the relay is on and when button is released the relay is off" value="11" />
-			<Item label="Relay follows the state of button #4; when button is down the relay is on and when button is released the relay is off" value="12" />
-			<Item label="Relay is only controlled by commands sent to the root device (instance 0). Commands to the root device will not be forwarded to instance 1" value="13" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="16" label="Indicator mode" min="0" max="1" value="1" size="1" >
-			<Help>When ZHC5010 receives an Indicator Set message, then the received value can be used only to set the current light level for the actual LED or the level value can be stored and will then be used for subsequent internal activations.</Help>
-			<Item label="Only used to control the LED" value="0" />
-			<Item label="Also used by internal LED activations" value="1" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="17" label="Scene notification offset" min="0" max="200" value="1">
-			<Help>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Upper paddle buttons mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>Configuration of Pair Mode for the upper two buttons (button #1 and #2).</Help>
+      <Item label="Toggle mode" value="0"/>
+      <Item label="In pair mode" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Lower paddle buttons mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>Configuration of Pair Mode for the lower two buttons (button #3 and #4).</Help>
+      <Item label="Toggle mode" value="0"/>
+      <Item label="In pair mode" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="LED #1 mode" max="8" min="0" size="1" type="list" value="1">
+      <Help>LED #1 indicates the status mode.</Help>
+      <Item label="LED indication is disabled (LED can be controlled by Indicator Command Class Set commands)" value="0"/>
+      <Item label="LED indicates the status of the corresponding button" value="1"/>
+      <Item label="LED indicates the status of the corresponding button, with inverted indication" value="2"/>
+      <Item label="LED indicates the status of corresponding paddle (in pair mode)" value="3"/>
+      <Item label="LED indicates the status of the corresponding paddle (in pair mode), with inverted indication" value="4"/>
+      <Item label="LED indicates the status of the built-in relay" value="5"/>
+      <Item label="LED indicates the status of the built-in relay, with inverted indication" value="6"/>
+      <Item label="LED show a 5 seconds indication when the corresponding button is pressed" value="7"/>
+      <Item label="LED indication is disabled, it is only controlled by Command Class Basic Set commands" value="8"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="LED #2 mode" max="8" min="0" size="1" type="list" value="1">
+      <Help>LED #2 indicates the status mode.</Help>
+      <Item label="LED indication is disabled (LED can be controlled by Indicator Command Class Set commands)" value="0"/>
+      <Item label="LED indicates the status of the corresponding button" value="1"/>
+      <Item label="LED indicates the status of the corresponding button, with inverted indication" value="2"/>
+      <Item label="LED indicates the status of corresponding paddle (in pair mode)" value="3"/>
+      <Item label="LED indicates the status of the corresponding paddle (in pair mode), with inverted indication" value="4"/>
+      <Item label="LED indicates the status of the built-in relay" value="5"/>
+      <Item label="LED indicates the status of the built-in relay, with inverted indication" value="6"/>
+      <Item label="LED show a 5 seconds indication when the corresponding button is pressed" value="7"/>
+      <Item label="LED indication is disabled, it is only controlled by Command Class Basic Set commands" value="8"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="LED #3 mode" max="8" min="0" size="1" type="list" value="1">
+      <Help>LED #3 indicates the status mode.</Help>
+      <Item label="LED indication is disabled (LED can be controlled by Indicator Command Class Set commands)" value="0"/>
+      <Item label="LED indicates the status of the corresponding button" value="1"/>
+      <Item label="LED indicates the status of the corresponding button, with inverted indication" value="2"/>
+      <Item label="LED indicates the status of corresponding paddle (in pair mode)" value="3"/>
+      <Item label="LED indicates the status of the corresponding paddle (in pair mode), with inverted indication" value="4"/>
+      <Item label="LED indicates the status of the built-in relay" value="5"/>
+      <Item label="LED indicates the status of the built-in relay, with inverted indication" value="6"/>
+      <Item label="LED show a 5 seconds indication when the corresponding button is pressed" value="7"/>
+      <Item label="LED indication is disabled, it is only controlled by Command Class Basic Set commands" value="8"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="LED #4 mode" max="8" min="0" size="1" type="list" value="1">
+      <Help>LED #4 indicates the status mode.</Help>
+      <Item label="LED indication is disabled (LED can be controlled by Indicator Command Class Set commands)" value="0"/>
+      <Item label="LED indicates the status of the corresponding button" value="1"/>
+      <Item label="LED indicates the status of the corresponding button, with inverted indication" value="2"/>
+      <Item label="LED indicates the status of corresponding paddle (in pair mode)" value="3"/>
+      <Item label="LED indicates the status of the corresponding paddle (in pair mode), with inverted indication" value="4"/>
+      <Item label="LED indicates the status of the built-in relay" value="5"/>
+      <Item label="LED indicates the status of the built-in relay, with inverted indication" value="6"/>
+      <Item label="LED show a 5 seconds indication when the corresponding button is pressed" value="7"/>
+      <Item label="LED indication is disabled, it is only controlled by Command Class Basic Set commands" value="8"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="LED #1 brightness level" max="100" min="0" type="byte" value="50">
+      <Help>0 - 100 Specifies the brightness level of the LED when it is on.</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="LED #2 brightness level" max="100" min="0" type="byte" value="50">
+      <Help>0 - 100 Specifies the brightness level of the LED when it is on.</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="LED #3 brightness level" max="100" min="0" type="byte" value="50">
+      <Help>0 - 100 Specifies the brightness level of the LED when it is on.</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="LED #4 brightness level" max="100" min="0" type="byte" value="50">
+      <Help>0 - 100 Specifies the brightness level of the LED when it is on.</Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="LED #1 off brightness level" max="100" min="0" type="byte" value="00">
+      <Help>0 - 100 Specifies the brightness level of the LED when it is off.</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="LED #2 off brightness level" max="100" min="0" type="byte" value="00">
+      <Help>0 - 100 Specifies the brightness level of the LED when it is off.</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="LED #3 off brightness level" max="100" min="0" type="byte" value="00">
+      <Help>0 - 100 Specifies the brightness level of the LED when it is off.</Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="LED #4 off brightness level" max="100" min="0" type="byte" value="00">
+      <Help>0 - 100 Specifies the brightness level of the LED when it is off.</Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Relay mode" max="13" min="0" size="1" type="list" value="1">
+      <Help>This parameter configures which of the buttons that shall control the built-in relay, or if the relay only will be activated for one second, each time button #1 is used.</Help>
+      <Item label="Relay is disabled" value="0"/>
+      <Item label="Relay is controlled by button #1 or by upper paddle when pair mode is active" value="1"/>
+      <Item label="Relay is controlled by button #2 or by upper paddle when pair mode is active" value="2"/>
+      <Item label="Relay is controlled by button #3 or by lower paddle when pair mode is active" value="3"/>
+      <Item label="Relay is controlled by button #4 or by lower paddle when pair mode is active" value="4"/>
+      <Item label="Relay is activated for half a second and is controlled by button #1 or by upper paddle when pair mode is active" value="5"/>
+      <Item label="Relay is activated for half a second and is controlled by button #2 or by upper paddle when pair mode is active" value="6"/>
+      <Item label="Relay is activated for half a second and is controlled by button #3 or by lower paddle when pair mode is active" value="7"/>
+      <Item label="Relay is activated for half a second and is controlled by button #4 or by lower paddle when pair mode is active" value="8"/>
+      <Item label="Relay follows the state of button #1; when button is down the relay is on and when button is released the relay is off" value="9"/>
+      <Item label="Relay follows the state of button #2; when button is down the relay is on and when button is released the relay is off" value="10"/>
+      <Item label="Relay follows the state of button #3; when button is down the relay is on and when button is released the relay is off" value="11"/>
+      <Item label="Relay follows the state of button #4; when button is down the relay is on and when button is released the relay is off" value="12"/>
+      <Item label="Relay is only controlled by commands sent to the root device (instance 0). Commands to the root device will not be forwarded to instance 1" value="13"/>
+    </Value>
+    <Value genre="config" index="16" instance="1" label="Indicator mode" max="1" min="0" size="1" type="list" value="1">
+      <Help>When ZHC5010 receives an Indicator Set message, then the received value can be used only to set the current light level for the actual LED or the level value can be stored and will then be used for subsequent internal activations.</Help>
+      <Item label="Only used to control the LED" value="0"/>
+      <Item label="Also used by internal LED activations" value="1"/>
+    </Value>
+    <Value genre="config" index="17" instance="1" label="Scene notification offset" max="200" min="0" type="byte" value="1">
+      <Help>
 			0     : Scene notifications are turned off.
 			1-200 : Button #1 will send scene [value], button #2 will send scene [value] + 1, button #3 will send scene [value] + 2, button #4 will send scene [value] + 3
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="18" label="House Cleaning Mode" min="0" max="1" value="0" size="1" >
-			<Help>This parameter is able to enable or disable the so-called "House Cleaning Mode", where ZHC5010 is able send a dimming command in order to set the level of the lights to 100%.</Help>
-			<Item label="Enabled" value="0" />
-			<Item label="Disabled" value="1" />
-		</Value>
-		<Value type="int" genre="config" instance="1" index="19" label="Multilevel Switch on single press for button 1" value="33488896" size="4">
-			<Help>
+    </Value>
+    <Value genre="config" index="18" instance="1" label="House Cleaning Mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter is able to enable or disable the so-called "House Cleaning Mode", where ZHC5010 is able send a dimming command in order to set the level of the lights to 100%.</Help>
+      <Item label="Enabled" value="0"/>
+      <Item label="Disabled" value="1"/>
+    </Value>
+    <Value genre="config" index="19" instance="1" label="Multilevel Switch on single press for button 1" size="4" type="int" value="33488896">
+      <Help>
 			Byte 1: Enable / Disable
 				0: Disabled - When single pressing the button, nodes associated to group 6 won't be switched
 				1: Enabled - When single pressing the button, nodes associated to group 6 will be switched between the configured upper and lower switch values. (Default)
@@ -127,10 +126,10 @@
 				When single pressing the button for OFF, a Multilevel Switch Set with this value will be send to devices in association group 6. (Default = 0)
 			Byte 4: Not used - must be set to 0.
 			Default: 33488896
-			</Help>                        
-		</Value>
-		<Value type="int" genre="config" instance="1" index="20" label="Multilevel Switch on single press for button 2" value="33488896" size="4">
-			<Help>
+			</Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Multilevel Switch on single press for button 2" size="4" type="int" value="33488896">
+      <Help>
 				Byte 1: Enable / Disable
 						0: Disabled - When single pressing the button, nodes associated to group 6 won't be switched
 						1: Enabled - When single pressing the button, nodes associated to group 6 will be switched between the configured upper and lower switch values. (Default)
@@ -141,9 +140,9 @@
 				Byte 4: Not used - must be set to 0.
 				Default: 33488896
 			</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="21" label="Multilevel Switch on single press for button 3" value="33488896" size="4">
-			<Help>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Multilevel Switch on single press for button 3" size="4" type="int" value="33488896">
+      <Help>
 				Byte 1: Enable / Disable
 						0: Disabled - When single pressing the button, nodes associated to group 6 won't be switched
 						1: Enabled - When single pressing the button, nodes associated to group 6 will be switched between the configured upper and lower switch values. (Default)
@@ -154,9 +153,9 @@
 				Byte 4: Not used - must be set to 0.
 				Default: 33488896
 			</Help>
-		</Value>
-		<Value type="int" genre="config" instance="1" index="22" label="Multilevel Switch on single press for button 4" value="33488896" size="4">
-			<Help>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="Multilevel Switch on single press for button 4" size="4" type="int" value="33488896">
+      <Help>
 			Byte 1: Enable / Disable
 					0: Disabled - When single pressing the button, nodes associated to group 6 won't be switched
 					1: Enabled - When single pressing the button, nodes associated to group 6 will be switched between the configured upper and lower switch values. (Default)
@@ -167,69 +166,69 @@
 			Byte 4: Not used - must be set to 0.
 				Default: 33488896
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="23" label="Control of association groups for button 1" min="0" max="1" value="1" size="1" >
-			<Help>Enable or disable if received commands are relayed to the nodes in the association groups received by device 1.</Help>
-			<Item label="When commands are received by device 1, nodes in the association groups will not be switched, button activations will still send switch values" value="0" />
-			<Item label="When commands are received by deivce 1, nodes in the association groups will be switched" value="1" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="24" label="Control of association groups for button 2" min="0" max="1" value="1" size="1" >
-			<Help>Enable or disable if received commands are relayed to the nodes in the association groups received by device 2.</Help>
-			<Item label="When commands are received by device 2, nodes in the association groups will not be switched, button activations will still send switch values" value="0" />
-			<Item label="When commands are received by device 2, nodes in the association groups will be switched" value="1" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="25" label="Control of association groups for button 3" min="0" max="1" value="1" size="1" >
-			<Help>Enable or disable if received commands are relayed to the nodes in the association groups received by device 3.</Help>
-			<Item label="When commands are received by device 3, nodes in the association groups will not be switched, button activations will still send switch values" value="0" />
-			<Item label="When commands are received by device 3, nodes in the association groups will be switched" value="1" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="26" label="Control of association groups for button 4" min="0" max="1" value="1" size="1" >
-			<Help>Enable or disable if received commands are relayed to the nodes in the association groups received by device 4.</Help>
-			<Item label="When commands are received by device 4, nodes in the association groups will not be switched, button activations will still send switch values" value="0" />
-			<Item label="When commands are received by device 4, nodes in the association groups will be switched" value="1" />
-		</Value>
-		<!-- Index 27 is not in use -->
-		<Value type="byte" genre="config" instance="1" index="28" label="Threshold time for long-press" min="0" max="255" value="50" size="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="23" instance="1" label="Control of association groups for button 1" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable or disable if received commands are relayed to the nodes in the association groups received by device 1.</Help>
+      <Item label="When commands are received by device 1, nodes in the association groups will not be switched, button activations will still send switch values" value="0"/>
+      <Item label="When commands are received by deivce 1, nodes in the association groups will be switched" value="1"/>
+    </Value>
+    <Value genre="config" index="24" instance="1" label="Control of association groups for button 2" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable or disable if received commands are relayed to the nodes in the association groups received by device 2.</Help>
+      <Item label="When commands are received by device 2, nodes in the association groups will not be switched, button activations will still send switch values" value="0"/>
+      <Item label="When commands are received by device 2, nodes in the association groups will be switched" value="1"/>
+    </Value>
+    <Value genre="config" index="25" instance="1" label="Control of association groups for button 3" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable or disable if received commands are relayed to the nodes in the association groups received by device 3.</Help>
+      <Item label="When commands are received by device 3, nodes in the association groups will not be switched, button activations will still send switch values" value="0"/>
+      <Item label="When commands are received by device 3, nodes in the association groups will be switched" value="1"/>
+    </Value>
+    <Value genre="config" index="26" instance="1" label="Control of association groups for button 4" max="1" min="0" size="1" type="list" value="1">
+      <Help>Enable or disable if received commands are relayed to the nodes in the association groups received by device 4.</Help>
+      <Item label="When commands are received by device 4, nodes in the association groups will not be switched, button activations will still send switch values" value="0"/>
+      <Item label="When commands are received by device 4, nodes in the association groups will be switched" value="1"/>
+    </Value>
+    <!-- Index 27 is not in use -->
+    <Value genre="config" index="28" instance="1" label="Threshold time for long-press" max="255" min="0" size="1" type="byte" value="50">
+      <Help>
 			Decides the time for when a button is detected as long-pressed.
 			0     : Detection disabled. This is not recommended.
 			1-255 : Long-press detection time in 0.01 seconds, 50 equals 0.5 seconds.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="29" label="Threshold time for keypress detection of button 1" min="0" max="255" value="30" size="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="29" instance="1" label="Threshold time for keypress detection of button 1" max="255" min="0" size="1" type="byte" value="30">
+      <Help>
 			Specifies the detection time for single-press, double-press, etc. for button 1.
 			0       : Detection disabled. This is not recommended.
 			1 - 255 : Detection time in 0.01 seconds, 30 equals 0.3 seconds.
 				Default: 30
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="30" label="Threshold time for keypress detection of button 2" min="0" max="255" value="30" size="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Threshold time for keypress detection of button 2" max="255" min="0" size="1" type="byte" value="30">
+      <Help>
 			Specifies the detection time for single-press, double-press, etc. for button 2.
 			0       : Detection disabled. This is not recommended.
 			1 - 255 : Detection time in 0.01 seconds, 30 equals 0.3 seconds.
 				Default: 30
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="31" label="Threshold time for keypress detection of button 3" min="0" max="255" value="30" size="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="Threshold time for keypress detection of button 3" max="255" min="0" size="1" type="byte" value="30">
+      <Help>
 			Specifies the detection time for single-press, double-press, etc. for button 3.
 			0       : Detection disabled. This is not recommended.
 			1 - 255 : Detection time in 0.01 seconds, 30 equals 0.3 seconds.
 				Default: 30
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="32" label="Threshold time for keypress detection of button 4" min="0" max="255" value="30" size="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="32" instance="1" label="Threshold time for keypress detection of button 4" max="255" min="0" size="1" type="byte" value="30">
+      <Help>
 			Specifies the detection time for single-press, double-press, etc. for button 4.
 			0       : Detection disabled. This is not recommended.
 			1 - 255 : Detection time in 0.01 seconds, 30 equals 0.3 seconds.
 				Default: 30
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="33" label="Non-secure commands for AG in logical device 1" min="0" max="255" value="0" size="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="33" instance="1" label="Non-secure commands for AG in logical device 1" max="255" min="0" size="1" type="byte" value="0">
+      <Help>
 			If ZHC5010 is included secure, this parameter allows sending messages on keypresses to non-secure devices (e.g. pre-gen5 relays).
 			If ZHC5010 is included non-secure, this parameter has no function.
 			0         : No commands sent unencrypted (default)
@@ -240,9 +239,9 @@
 			16 (0x10) : Bit#5. Send BINARYTOGGLESWITCHSET to association group 5 unencrypted.
 			32 (0x20) : Bit#6. Send MULTILEVELSWITCH to association group 6 unencrypted.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="34" label="Non-secure commands for AG in logical device 2" min="0" max="255" value="0" size="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="34" instance="1" label="Non-secure commands for AG in logical device 2" max="255" min="0" size="1" type="byte" value="0">
+      <Help>
 			If ZHC5010 is included secure, this parameter allows sending messages on keypresses to non-secure devices (e.g. pre-gen5 relays).
 			If ZHC5010 is included non-secure, this parameter has no function.
 			0         : No commands sent unencrypted (default)
@@ -253,9 +252,9 @@
 			16 (0x10) : Bit#5. Send BINARYTOGGLESWITCHSET to association group 5 unencrypted.
 			32 (0x20) : Bit#6. Send MULTILEVELSWITCH to association group 6 unencrypted.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="35" label="Non-secure commands for AG in logical device 3" min="0" max="255" value="0" size="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="35" instance="1" label="Non-secure commands for AG in logical device 3" max="255" min="0" size="1" type="byte" value="0">
+      <Help>
 			If ZHC5010 is included secure, this parameter allows sending messages on keypresses to non-secure devices (e.g. pre-gen5 relays).
 			If ZHC5010 is included non-secure, this parameter has no function.
 			0         : No commands sent unencrypted (default)
@@ -266,9 +265,9 @@
 			16 (0x10) : Bit#5. Send BINARYTOGGLESWITCHSET to association group 5 unencrypted.
 			32 (0x20) : Bit#6. Send MULTILEVELSWITCH to association group 6 unencrypted.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="36" label="Non-secure commands for AG in logical device 4" min="0" max="255" value="0" size="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="36" instance="1" label="Non-secure commands for AG in logical device 4" max="255" min="0" size="1" type="byte" value="0">
+      <Help>
 			If ZHC5010 is included secure, this parameter allows sending messages on keypresses to non-secure devices (e.g. pre-gen5 relays).
 			If ZHC5010 is included non-secure, this parameter has no function.
 			0         : No commands sent unencrypted (default)
@@ -279,38 +278,50 @@
 			16 (0x10) : Bit#5. Send BINARYTOGGLESWITCHSET to association group 5 unencrypted.
 			32 (0x20) : Bit#6. Send MULTILEVELSWITCH to association group 6 unencrypted.
 			</Help>
-		</Value>
-	</CommandClass>
-	<!-- COMMAND_CLASS_SWITCH_ALL SwitchAllCmd_Get is not supported -->
-	<CommandClass id="39" getsupported="false" />
-	<!-- MultiInstance Command Class. Note: If you do not need Dedicated Relay Control instance, change below mapping to "endpoints", then rejoin the node to your network. -->
-	<CommandClass id="96" mapping="all" />
-	<!-- Multi Channel Association Groups -->
-	<CommandClass id="142" ForceInstances="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="21">
-			<Group index="1" max_associations="1" label="Lifeline" />
-			<Group index="2" max_associations="5" label="Send Basic Report (On/Off) when button #1 is used" auto="true" />
-			<Group index="3" max_associations="5" label="Sends Basic Set (On/Off) when button #1 is used" />
-			<Group index="4" max_associations="5" label="Sends Binary Switch Set (On/Off) when button #1 is used" />
-			<Group index="5" max_associations="5" label="Send Binary Toggle Switch Set when button #1 is used" />
-			<Group index="6" max_associations="5" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #1 is used" />
-			<Group index="7" max_associations="5" label="Send Basic Report (On/Off) when button #2 is used" auto="true" />
-			<Group index="8" max_associations="5" label="Sends Basic Set (On/Off) when button #2 is used" />
-			<Group index="9" max_associations="5" label="Sends Binary Switch Set (On/Off) when button #2 is used" />
-			<Group index="10" max_associations="5" label="Send Binary Toggle Switch Set when button #2 is used" />
-			<Group index="11" max_associations="5" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #2 is used" />
-			<Group index="12" max_associations="5" label="Send Basic Report (On/Off) when button #3 is used" auto="true" />
-			<Group index="13" max_associations="5" label="Sends Basic Set (On/Off) when button #3 is used" />
-			<Group index="14" max_associations="5" label="Sends Binary Switch Set (On/Off) when button #3 is used" />
-			<Group index="15" max_associations="5" label="Send Binary Toggle Switch Set when button #3 is used" />
-			<Group index="16" max_associations="5" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #3 is used" />
-			<Group index="17" max_associations="5" label="Send Basic Report (On/Off) when button #4 is used" auto="true" />
-			<Group index="18" max_associations="5" label="Sends Basic Set (On/Off) when button #4 is used" />
-			<Group index="19" max_associations="5" label="Sends Binary Switch Set (On/Off) when button #4 is used" />
-			<Group index="20" max_associations="5" label="Send Binary Toggle Switch Set when button #4 is used" />
-			<Group index="21" max_associations="5" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #4 is used" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SWITCH_ALL SwitchAllCmd_Get is not supported -->
+  <CommandClass id="39">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- MultiInstance Command Class. Note: If you do not need Dedicated Relay Control instance, change below mapping to "endpoints", then rejoin the node to your network. -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Multi Channel Association Groups -->
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="21">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group auto="true" index="2" label="Send Basic Report (On/Off) when button #1 is used" max_associations="5"/>
+      <Group index="3" label="Sends Basic Set (On/Off) when button #1 is used" max_associations="5"/>
+      <Group index="4" label="Sends Binary Switch Set (On/Off) when button #1 is used" max_associations="5"/>
+      <Group index="5" label="Send Binary Toggle Switch Set when button #1 is used" max_associations="5"/>
+      <Group index="6" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #1 is used" max_associations="5"/>
+      <Group auto="true" index="7" label="Send Basic Report (On/Off) when button #2 is used" max_associations="5"/>
+      <Group index="8" label="Sends Basic Set (On/Off) when button #2 is used" max_associations="5"/>
+      <Group index="9" label="Sends Binary Switch Set (On/Off) when button #2 is used" max_associations="5"/>
+      <Group index="10" label="Send Binary Toggle Switch Set when button #2 is used" max_associations="5"/>
+      <Group index="11" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #2 is used" max_associations="5"/>
+      <Group auto="true" index="12" label="Send Basic Report (On/Off) when button #3 is used" max_associations="5"/>
+      <Group index="13" label="Sends Basic Set (On/Off) when button #3 is used" max_associations="5"/>
+      <Group index="14" label="Sends Binary Switch Set (On/Off) when button #3 is used" max_associations="5"/>
+      <Group index="15" label="Send Binary Toggle Switch Set when button #3 is used" max_associations="5"/>
+      <Group index="16" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #3 is used" max_associations="5"/>
+      <Group auto="true" index="17" label="Send Basic Report (On/Off) when button #4 is used" max_associations="5"/>
+      <Group index="18" label="Sends Basic Set (On/Off) when button #4 is used" max_associations="5"/>
+      <Group index="19" label="Sends Binary Switch Set (On/Off) when button #4 is used" max_associations="5"/>
+      <Group index="20" label="Send Binary Toggle Switch Set when button #4 is used" max_associations="5"/>
+      <Group index="21" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #4 is used" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/manufacturer_specific.xml b/Config/manufacturer_specific.xml
index 2c75c70e40..98de0931b5 100644
--- a/Config/manufacturer_specific.xml
+++ b/Config/manufacturer_specific.xml
@@ -1,2268 +1,1832 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ManufacturerSpecificData xmlns='http://code.google.com/p/open-zwave/'>
-	<Manufacturer id="0028" name="2B Electronics">
-	</Manufacturer>
-	<Manufacturer id="0098" name="2GIG Technologies">
-		<Product type="3200" id="015e" name="CT50e Thermostat" config="2gig/ct50e.xml"/>
-		<Product type="1e10" id="0158" name="CT30 Thermostat" config="2gig/ct30.xml"/>
-		<Product type="1e12" id="015c" name="CT30 Thermostat" config="2gig/ct30.xml"/>
-		<Product type="1e12" id="015e" name="CT30 Thermostat" config="2gig/ct30.xml"/>
-		<Product type="2002" id="0100" name="CT32 Thermostat" config="2gig/ct32.xml"/>
-		<Product type="5002" id="0100" name="CT80 Thermostat" config="2gig/ct80.xml"/>
-		<Product type="5003" id="0109" name="CT80 Thermostat" config="2gig/ct80.xml"/>
-		<Product type="6401" id="0105" name="CT100 Thermostat" config="2gig/ct100.xml"/>
-		<Product type="6401" id="0106" name="CT100 Thermostat USA" config="2gig/ct100.xml"/>
-		<Product type="6401" id="0107" name="CT100 Thermostat USA" config="2gig/ct100.xml"/>
-		<Product type="6401" id="01fd" name="CT100 Thermostat USA" config="2gig/ct100.xml"/>
-		<Product type="6402" id="0100" name="CT100 Plus Thermostat" config="2gig/ct100.xml"/>
-		<Product type="6402" id="0001" name="CT100 Plus Thermostat" config="2gig/ct100.xml"/>
-		<Product type="6501" id="000b" name="CT101 Thermostat (Iris)" config="2gig/ct101.xml"/>
-		<Product type="6501" id="000c" name="CT101 Thermostat (Iris)" config="2gig/ct101.xml"/>
-		<Product type="6501" id="000d" name="CT101 Thermostat" config="2gig/ct101.xml"/>
-	</Manufacturer>
-	<Manufacturer id="002a" name="3e Technologies">
-	</Manufacturer>
-	<Manufacturer id="0022" name="A-1 Components">
-	</Manufacturer>
-	<Manufacturer id="0117" name="Abilia">
-	</Manufacturer>
-	<Manufacturer id="0400" name="Abode">
-	</Manufacturer>
-	<Manufacturer id="0409" name="ABUS August Bremicker Sohne KG">
-	</Manufacturer>
-	<Manufacturer id="0403" name="ABUS Security-Center GmbH Co. KG">
-	</Manufacturer>
-	<Manufacturer id="034A" name="AcroComm Corp">
-	</Manufacturer>
-	<Manufacturer id="0001" name="ACT">
-		<Product type="4349" id="3130" name="ZCS101 Serial Interface"/>
-		<Product type="4952" id="3030" name="ZIR000 PIR Motion Sensor" config="act/zir010.xml"/>
-		<Product type="4952" id="3330" name="ZIR010 PIR Motion Sensor" config="act/zir010.xml"/>
-		<Product type="4952" id="3130" name="ZIR010 PIR Motion Sensor" config="act/zir010.xml"/>
-		<Product type="4450" id="3030" name="ZDP100 Plugin Lamp Module"/>
-		<Product type="4457" id="3033" name="ZDW103 Wall Dimmer Module" config="act/zdw103.xml"/>
-		<Product type="4457" id="3330" name="ZDW230 Wall Dimmer Module"/>
-		<Product type="4457" id="3332" name="ZDW232 Wall Dimmer Module" config="act/zdw232.xml"/>
-		<Product type="444d" id="3330" name="ZDM230 Wall Dimmer Module" config="act/zdm230.xml"/>
-		<Product type="5250" id="3030" name="ZRP100 Plugin Appliance Module"/>
-		<Product type="5250" id="3130" name="ZRP110 Exterior Appliance Module" config="act/zrp110.xml"/>
-		<Product type="5257" id="3330" name="ZRW230 Wall Appliance Module"/>
-		<Product type="5246" id="3133" name="LFM-20 Relay Fixture Module" config="act/lfm20.xml"/>
-		<Product type="5257" id="3033" name="ZRW103 Wall Switch Module" config="act/zrw103.xml"/>
-		<Product type="524d" id="3330" name="ZRM230 Wall Appliance Module"/>
-		<Product type="5457" id="3330" name="ZTW230 Wall Transmitter Module"/>
-		<Product type="544d" id="3330" name="ZTM230 Wall Transmitter Module"/>
-	</Manufacturer>
-	<Manufacturer id="0297" name="AdMobilize, LLC">
-	</Manufacturer>
-	<Manufacturer id="0101" name="ADOX, Inc.">
-	</Manufacturer>
-	<Manufacturer id="025B" name="AdTrustMedia LLC">
-	</Manufacturer>
-	<Manufacturer id="016C" name="Advanced Optronic Devices">
-	</Manufacturer>
-	<Manufacturer id="009E" name="Adventure Interactive">
-	</Manufacturer>
-	<Manufacturer id="035B" name="Aeinnovation">
-	</Manufacturer>
-	<Manufacturer id="0405" name="AEM Acotel Engineering and Manufacturing Spa">
-	</Manufacturer>
-	<Manufacturer id="0350" name="AENSys Informatics Ltd">
-	</Manufacturer>
-	<Manufacturer id="0086" name="AEON Labs">
-		<Product type="0000" id="0000" name="Z-Wave Extender"/>
-		<Product type="0001" id="0001" name="Z-Stick"/>
-		<Product type="0001" id="0002" name="DSA02203 Z-Stick S2"/>
-		<Product type="0002" id="0001" name="DSA02203 Z-Stick S2"/>
-		<Product type="0001" id="0007" name="DSA07203 Z-Stick Lite"/>
-		<Product type="0001" id="0003" name="DSA03202 Minimote" config="aeotec/dsa03202.xml"/>
-		<Product type="0001" id="0016" name="DSA22 Key Fob" config="aeotec/dsa22.xml"/>
-		<Product type="0001" id="0026" name="DSA38 Panic Button" config="aeotec/dsa38.xml"/>
-		<Product type="0002" id="0005" name="DSB05 Multisensor" config="aeotec/dsb05.xml"/>
-		<Product type="0002" id="001c" name="DSB28 Home Energy Meter (2nd Edition)" config="aeotec/dsb28.xml"/>
-		<Product type="0002" id="001d" name="DSB29 Door/Window Sensor (2nd Edition)" config="aeotec/dsb29.xml"/>
-		<Product type="0002" id="002d" name="DSB45 Water Sensor" config="aeotec/dsb45.xml" />
-		<Product type="0002" id="0036" name="DSB54 Recessed Door Sensor" config="aeotec/dsb54.xml"/>
-		<Product type="0002" id="0004" name="DSB04100 Door/Window Sensor" config="aeotec/dsb04100.xml"/>
-		<Product type="0002" id="0009" name="DSB09104 Home Energy Meter" config="aeotec/dsb09104.xml"/>
-		<Product type="0003" id="000a" name="DSC10 Heavy-Duty Smart Switch" config="aeotec/dsc10.xml"/>
-		<Product type="0003" id="000b" name="DSC11 Smart Strip" config="aeotec/dsc11.xml"/>
-		<Product type="0003" id="0018" name="DSC24 Smart Switch (2nd Edition)" config="aeotec/dsc24.xml"/>
-		<Product type="0003" id="0006" name="DSC06106 Smart Energy Switch" config="aeotec/dsc06106.xml"/>
-		<Product type="0003" id="0008" name="DSC08101 Smart Energy Illuminator" config="aeotec/dsc08101.xml"/>
-		<Product type="0003" id="000c" name="DSC12104 Micro Smart Energy Switch" config="aeotec/dsc12104.xml"/>
-		<Product type="0003" id="000d" name="DSC13104 Micro Smart Energy Illuminator" config="aeotec/dsc13104.xml"/>
-		<Product type="0003" id="000e" name="DSC14104 Micro Motor Controller" config="aeotec/dsc14104.xml"/>
-		<Product type="0003" id="0012" name="DSC18103 Micro Smart Switch (2nd Edition)" config="aeotec/dsc18103.xml" />
-		<Product type="0003" id="0013" name="DSC19103 Micro Smart Dimmer (2nd Edition)" config="aeotec/dsc19103.xml" />
-		<Product type="0003" id="001a" name="DSC26103 Micro Switch (2nd Edition)" config="aeotec/dsc26103.xml"/>
-		<Product type="0003" id="001b" name="DSC27103 Micro Dimmer (2nd Edition)" config="aeotec/dsc27103.xml"/>
-		<Product type="0003" id="0011" name="DSC35103 Micro Double Switch" config="aeotec/dsc35103.xml"/>
-		<Product type="0004" id="0025" name="DSD37 Range Extender" config="aeotec/dsd37.xml" />
-		<!-- EU-market products start with type prefix "00" -->
+<ManufacturerSpecificData Revision="21" xmlns="https://github.com/OpenZWave/open-zwave">
+  <Manufacturer id="0028" name="2B Electronics"></Manufacturer>
+  <Manufacturer id="0098" name="2GIG Technologies">
+    <Product config="2gig/ct50e.xml" id="015e" name="CT50e Thermostat" type="3200"/>
+    <Product config="2gig/ct30.xml" id="0158" name="CT30 Thermostat" type="1e10"/>
+    <Product config="2gig/ct30.xml" id="015c" name="CT30 Thermostat" type="1e12"/>
+    <Product config="2gig/ct30.xml" id="015e" name="CT30 Thermostat" type="1e12"/>
+    <Product config="2gig/ct32.xml" id="0100" name="CT32 Thermostat" type="2002"/>
+    <Product config="2gig/ct80.xml" id="0100" name="CT80 Thermostat" type="5002"/>
+    <Product config="2gig/ct80.xml" id="0109" name="CT80 Thermostat" type="5003"/>
+    <Product config="2gig/ct100.xml" id="0105" name="CT100 Thermostat" type="6401"/>
+    <Product config="2gig/ct100.xml" id="0106" name="CT100 Thermostat USA" type="6401"/>
+    <Product config="2gig/ct100.xml" id="0107" name="CT100 Thermostat USA" type="6401"/>
+    <Product config="2gig/ct100.xml" id="01fd" name="CT100 Thermostat USA" type="6401"/>
+    <Product config="2gig/ct100.xml" id="0100" name="CT100 Plus Thermostat" type="6402"/>
+    <Product config="2gig/ct100.xml" id="0001" name="CT100 Plus Thermostat" type="6402"/>
+    <Product config="2gig/ct101.xml" id="000b" name="CT101 Thermostat (Iris)" type="6501"/>
+    <Product config="2gig/ct101.xml" id="000c" name="CT101 Thermostat (Iris)" type="6501"/>
+    <Product config="2gig/ct101.xml" id="000d" name="CT101 Thermostat" type="6501"/>
+  </Manufacturer>
+  <Manufacturer id="002a" name="3e Technologies"></Manufacturer>
+  <Manufacturer id="0022" name="A-1 Components"></Manufacturer>
+  <Manufacturer id="0117" name="Abilia"></Manufacturer>
+  <Manufacturer id="0400" name="Abode"></Manufacturer>
+  <Manufacturer id="0409" name="ABUS August Bremicker Sohne KG"></Manufacturer>
+  <Manufacturer id="0403" name="ABUS Security-Center GmbH Co. KG"></Manufacturer>
+  <Manufacturer id="034A" name="AcroComm Corp"></Manufacturer>
+  <Manufacturer id="0001" name="ACT">
+    <Product id="3130" name="ZCS101 Serial Interface" type="4349"/>
+    <Product config="act/zir010.xml" id="3030" name="ZIR000 PIR Motion Sensor" type="4952"/>
+    <Product config="act/zir010.xml" id="3330" name="ZIR010 PIR Motion Sensor" type="4952"/>
+    <Product config="act/zir010.xml" id="3130" name="ZIR010 PIR Motion Sensor" type="4952"/>
+    <Product config="act/zdp100.xml" id="3030" name="ZDP100 Plugin Lamp Module" type="4450"/>
+    <Product config="act/zdw103.xml" id="3033" name="ZDW103 Wall Dimmer Module" type="4457"/>
+    <Product id="3330" name="ZDW230 Wall Dimmer Module" type="4457"/>
+    <Product config="act/zdw232.xml" id="3332" name="ZDW232 Wall Dimmer Module" type="4457"/>
+    <Product config="act/zdm230.xml" id="3330" name="ZDM230 Wall Dimmer Module" type="444d"/>
+    <Product config="act/zrp100.xml" id="3030" name="ZRP100 Plugin Appliance Module" type="5250"/>
+    <Product config="act/zrp110.xml" id="3130" name="ZRP110 Exterior Appliance Module" type="5250"/>
+    <Product config="act/zrw230.xml" id="3330" name="ZRW230 Wall Appliance Module" type="5257"/>
+    <Product config="act/lfm20.xml" id="3133" name="LFM-20 Relay Fixture Module" type="5246"/>
+    <Product config="act/zrw103.xml" id="3033" name="ZRW103 Wall Switch Module" type="5257"/>
+    <Product config="act/zrm230.xml" id="3330" name="ZRM230 Wall Appliance Module" type="524d"/>
+    <Product id="3330" name="ZTW230 Wall Transmitter Module" type="5457"/>
+    <Product id="3330" name="ZTM230 Wall Transmitter Module" type="544d"/>
+  </Manufacturer>
+  <Manufacturer id="0297" name="AdMobilize, LLC"></Manufacturer>
+  <Manufacturer id="0101" name="ADOX, Inc."></Manufacturer>
+  <Manufacturer id="025B" name="AdTrustMedia LLC"></Manufacturer>
+  <Manufacturer id="016C" name="Advanced Optronic Devices"></Manufacturer>
+  <Manufacturer id="009E" name="Adventure Interactive"></Manufacturer>
+  <Manufacturer id="035B" name="Aeinnovation"></Manufacturer>
+  <Manufacturer id="0405" name="AEM Acotel Engineering and Manufacturing Spa"></Manufacturer>
+  <Manufacturer id="0350" name="AENSys Informatics Ltd"></Manufacturer>
+  <Manufacturer id="0086" name="AEON Labs">
+    <Product id="0000" name="Z-Wave Extender" type="0000"/>
+    <Product id="0001" name="Z-Stick" type="0001"/>
+    <Product id="0002" name="DSA02203 Z-Stick S2" type="0001"/>
+    <Product config="aeotec/dsb28-zweu.xml" id="0001" name="DSA02203 Z-Stick S2" type="0002"/>
+    <Product id="0007" name="DSA07203 Z-Stick Lite" type="0001"/>
+    <Product config="aeotec/dsa03202.xml" id="0003" name="DSA03202 Minimote" type="0001"/>
+    <Product config="aeotec/dsa22.xml" id="0016" name="DSA22 Key Fob" type="0001"/>
+    <Product config="aeotec/dsa38.xml" id="0026" name="DSA38 Panic Button" type="0001"/>
+    <Product config="aeotec/dsb05.xml" id="0005" name="DSB05 Multisensor" type="0002"/>
+    <Product config="aeotec/dsb28.xml" id="001c" name="DSB28 Home Energy Meter (2nd Edition)" type="0002"/>
+    <Product config="aeotec/dsb29.xml" id="001d" name="DSB29 Door/Window Sensor (2nd Edition)" type="0002"/>
+    <Product config="aeotec/dsb45.xml" id="002d" name="DSB45 Water Sensor" type="0002"/>
+    <Product config="aeotec/dsb54.xml" id="0036" name="DSB54 Recessed Door Sensor" type="0002"/>
+    <Product config="aeotec/dsb04100.xml" id="0004" name="DSB04100 Door/Window Sensor" type="0002"/>
+    <Product config="aeotec/dsb09104.xml" id="0009" name="DSB09104 Home Energy Meter" type="0002"/>
+    <Product config="aeotec/dsc10.xml" id="000a" name="DSC10 Heavy-Duty Smart Switch" type="0003"/>
+    <Product config="aeotec/dsc11.xml" id="000b" name="DSC11 Smart Strip" type="0003"/>
+    <Product config="aeotec/dsc24.xml" id="0018" name="DSC24 Smart Switch (2nd Edition)" type="0003"/>
+    <Product config="aeotec/dsc06106.xml" id="0006" name="DSC06106 Smart Energy Switch" type="0003"/>
+    <Product config="aeotec/dsc08101.xml" id="0008" name="DSC08101 Smart Energy Illuminator" type="0003"/>
+    <Product config="aeotec/dsc12104.xml" id="000c" name="DSC12104 Micro Smart Energy Switch" type="0003"/>
+    <Product config="aeotec/dsc13104.xml" id="000d" name="DSC13104 Micro Smart Energy Illuminator" type="0003"/>
+    <Product config="aeotec/dsc14104.xml" id="000e" name="DSC14104 Micro Motor Controller" type="0003"/>
+    <Product config="aeotec/dsc18103.xml" id="0012" name="DSC18103 Micro Smart Switch (2nd Edition)" type="0003"/>
+    <Product config="aeotec/dsc19103.xml" id="0013" name="DSC19103 Micro Smart Dimmer (2nd Edition)" type="0003"/>
+    <Product config="aeotec/dsc26103.xml" id="001a" name="DSC26103 Micro Switch (2nd Edition)" type="0003"/>
+    <Product config="aeotec/dsc27103.xml" id="001b" name="DSC27103 Micro Dimmer (2nd Edition)" type="0003"/>
+    <Product config="aeotec/dsc35103.xml" id="0011" name="DSC35103 Micro Double Switch" type="0003"/>
+    <Product config="aeotec/dsd37.xml" id="0025" name="DSD37 Range Extender" type="0004"/>
+    <!-- EU-market products start with type prefix "00" -->
 		<!-- US-market products start with type prefix "01" -->
 		<!-- AU-market products start with type prefix "02" -->
 		<!-- JP-market products start with type prefix "0A" -->
 		<!-- CN-market products start with type prefix "1D" -->
 		<!-- RU-market products start with type prefix "1A" -->
-		<Product type="0004" id="0038" name="ZW056 Doorbell Gen5" config="aeotec/zw056.xml" />
-		<Product type="0104" id="0038" name="ZW056 Doorbell Gen5" config="aeotec/zw056.xml" />
-		<Product type="0204" id="0038" name="ZW056 Doorbell Gen5" config="aeotec/zw056.xml" />
-		<Product type="0304" id="0038" name="ZW056 Doorbell Gen5" config="aeotec/zw056.xml" />
-		<Product type="0904" id="0038" name="ZW056 Doorbell Gen5" config="aeotec/zw056.xml" />
-		<Product type="1D04" id="0038" name="ZW056 Doorbell Gen5" config="aeotec/zw056.xml" />
-		<Product type="1A04" id="0038" name="ZW056 Doorbell Gen5" config="aeotec/zw056.xml" />
-		<Product type="0A04" id="0038" name="ZW056 Doorbell Gen5" config="aeotec/zw056.xml" />
-		<Product type="0003" id="003e" name="ZW062 Garage Door Controller" config="aeotec/zw062.xml" />
-		<Product type="0103" id="003e" name="ZW062 Garage Door Controller" config="aeotec/zw062.xml" />
-		<Product type="0203" id="003e" name="ZW062 Garage Door Controller" config="aeotec/zw062.xml" />
-		<Product type="0002" id="004a" name="ZW074 MultiSensor Gen5" config="aeotec/zw074.xml"/>
-		<Product type="0102" id="004a" name="ZW074 MultiSensor Gen5" config="aeotec/zw074.xml"/>
-		<Product type="0202" id="004a" name="ZW074 MultiSensor Gen5" config="aeotec/zw074.xml"/>
-		<Product type="0003" id="004b" name="ZW075 Smart Switch Gen5" config="aeotec/zw075.xml"/>
-		<Product type="0103" id="004b" name="ZW075 Smart Switch Gen5" config="aeotec/zw075.xml"/>
-		<Product type="0203" id="004b" name="ZW075 Smart Switch Gen5" config="aeotec/zw075.xml"/>
-		<Product type="0003" id="004e" name="ZW078 Heavy Duty Smart Switch Gen5" config="aeotec/zw078.xml" />
-		<Product type="0103" id="004e" name="ZW078 Heavy Duty Smart Switch Gen5" config="aeotec/zw078.xml" />
-		<Product type="0203" id="004e" name="ZW078 Heavy Duty Smart Switch Gen5" config="aeotec/zw078.xml" />
-		<Product type="0004" id="0050" name="ZW080 Siren Gen5" config="aeotec/zw080.xml"/>
-		<Product type="0104" id="0050" name="ZW080 Siren Gen5" config="aeotec/zw080.xml"/>
-		<Product type="0204" id="0050" name="ZW080 Siren Gen5" config="aeotec/zw080.xml"/>
-		<Product type="0001" id="0058" name="ZW088 Key Fob Gen5" config="aeotec/zw088.xml"/>
-		<Product type="0101" id="0058" name="ZW088 Key Fob Gen5" config="aeotec/zw088.xml"/>
-		<Product type="0201" id="0058" name="ZW088 Key Fob Gen5" config="aeotec/zw088.xml"/>
-		<Product type="0002" id="0059" name="ZW089 Recessed Door Sensor Gen5" config="aeotec/zw089.xml"/>
-		<Product type="0102" id="0059" name="ZW089 Recessed Door Sensor Gen5" config="aeotec/zw089.xml"/>
-		<Product type="0202" id="0059" name="ZW089 Recessed Door Sensor Gen5" config="aeotec/zw089.xml"/>
-		<Product type="0001" id="005a" name="ZW090 Z-Stick Gen5 EU" config="aeotec/zw090.xml"/>
-		<Product type="0101" id="005a" name="ZW090 Z-Stick Gen5 US" config="aeotec/zw090.xml"/>
-		<Product type="0201" id="005a" name="ZW090 Z-Stick Gen5 AU" config="aeotec/zw090.xml"/>
-		<Product type="0001" id="005c" name="ZW092 Z-Stick Lite Gen5 EU"/>
-		<Product type="0101" id="005c" name="ZW092 Z-Stick Lite Gen5 US"/>
-		<Product type="0201" id="005c" name="ZW092 Z-Stick Lite Gen5 AU"/>
-		<Product type="0002" id="005f" name="ZW095 Home Energy Meter Gen5" config="aeotec/zw095.xml" />
-		<Product type="0102" id="005f" name="ZW095 Home Energy Meter Gen5" config="aeotec/zw095.xml" />
-		<Product type="0202" id="005f" name="ZW095 Home Energy Meter Gen5" config="aeotec/zw095.xml" />
-		<Product type="0003" id="0060" name="ZW096 Smart Switch 6" config="aeotec/zw096.xml" />
-		<Product type="0103" id="0060" name="ZW096 Smart Switch 6" config="aeotec/zw096.xml" />
-		<Product type="0203" id="0060" name="ZW096 Smart Switch 6" config="aeotec/zw096.xml" />
-		<Product type="0002" id="0061" name="ZW097 Dry Contact Sensor Gen5" config="aeotec/zw097.xml" />
-		<Product type="0102" id="0061" name="ZW097 Dry Contact Sensor Gen5" config="aeotec/zw097.xml" />
-		<Product type="0202" id="0061" name="ZW097 Dry Contact Sensor Gen5" config="aeotec/zw097.xml" />
-		<Product type="0003" id="0062" name="ZW098 LED Bulb" config="aeotec/zw098.xml" />
-		<Product type="0103" id="0062" name="ZW098 LED Bulb" config="aeotec/zw098.xml" />
-		<Product type="0203" id="0062" name="ZW098 LED Bulb" config="aeotec/zw098.xml" />
-		<Product type="0003" id="0063" name="ZW099 Smart Dimmer 6" config="aeotec/zw099.xml" />
-		<Product type="0103" id="0063" name="ZW099 Smart Dimmer 6" config="aeotec/zw099.xml" />
-		<Product type="0203" id="0063" name="ZW099 Smart Dimmer 6" config="aeotec/zw099.xml" />
-		<Product type="1D03" id="0063" name="ZW099 Smart Dimmer 6" config="aeotec/zw099.xml" />
-		<Product type="0002" id="0064" name="ZW100 MultiSensor 6" config="aeotec/zw100.xml" />
-		<Product type="0102" id="0064" name="ZW100 MultiSensor 6" config="aeotec/zw100.xml" />
-		<Product type="0202" id="0064" name="ZW100 MultiSensor 6" config="aeotec/zw100.xml" />
-		<Product type="1A02" id="0064" name="ZW100 MultiSensor 6" config="aeotec/zw100.xml" />
-		<Product type="0003" id="006f" name="ZW111 Nano Dimmer" config="aeotec/zw111.xml"/>
-		<Product type="0103" id="006f" name="ZW111 Nano Dimmer" config="aeotec/zw111.xml"/>
-		<Product type="0203" id="006f" name="ZW111 Nano Dimmer" config="aeotec/zw111.xml"/>
-		<Product type="1d03" id="006f" name="ZW111 Nano Dimmer" config="aeotec/zw111.xml"/>
-		<Product type="0002" id="0070" name="ZW112 Door Window Sensor 6" config="aeotec/zw112.xml" />
-		<Product type="0102" id="0070" name="ZW112 Door Window Sensor 6" config="aeotec/zw112.xml" />
-		<Product type="0202" id="0070" name="ZW112 Door Window Sensor 6" config="aeotec/zw112.xml" />
-		<Product type="0003" id="0074" name="ZW116 Nano Switch" config="aeotec/zw116.xml"/>
-		<Product type="0103" id="0074" name="ZW116 Nano Switch" config="aeotec/zw116.xml"/>
-		<Product type="0203" id="0074" name="ZW116 Nano Switch" config="aeotec/zw116.xml"/>
-		<Product type="1d03" id="0074" name="ZW116 Nano Switch" config="aeotec/zw116.xml"/>
-		<Product type="0004" id="0075" name="ZW117 Range Extender 6" config="aeotec/zw117.xml"/>
-		<Product type="0104" id="0075" name="ZW117 Range Extender 6" config="aeotec/zw117.xml"/>
-		<Product type="0204" id="0075" name="ZW117 Range Extender 6" config="aeotec/zw117.xml"/>
-		<Product type="1D04" id="0075" name="ZW117 Range Extender 6" config="aeotec/zw117.xml"/>
-		<Product type="0002" id="0078" name="ZW120 Door Window Sensor Gen5" config="aeotec/zw120.xml" />
-		<Product type="0102" id="0078" name="ZW120 Door Window Sensor Gen5" config="aeotec/zw120.xml" />
-		<Product type="0202" id="0078" name="ZW120 Door Window Sensor Gen5" config="aeotec/zw120.xml" />
-		<Product type="0003" id="0079" name="ZW121 LED Strip" config="aeotec/zw121.xml"/>
-		<Product type="0103" id="0079" name="ZW121 LED Strip" config="aeotec/zw121.xml"/>
-		<Product type="0203" id="0079" name="ZW121 LED Strip" config="aeotec/zw121.xml"/>
-		<Product type="0A03" id="0079" name="ZW121 LED Strip" config="aeotec/zw121.xml"/>
-		<Product type="0002" id="007a" name="ZW122 Water Sensor 6" config="aeotec/zw122.xml"/>
-		<Product type="0102" id="007a" name="ZW122 Water Sensor 6" config="aeotec/zw122.xml"/>
-		<Product type="0202" id="007a" name="ZW122 Water Sensor 6" config="aeotec/zw122.xml"/>
-		<Product type="0A02" id="007a" name="ZW122 Water Sensor 6" config="aeotec/zw122.xml"/>
-		<Product type="0002" id="0081" name="ZW129 WallMote Duo" config="aeotec/zw129.xml"/>
-		<Product type="0102" id="0081" name="ZW129 WallMote Duo" config="aeotec/zw129.xml"/>
-		<Product type="0202" id="0081" name="ZW129 WallMote Duo" config="aeotec/zw129.xml"/>
-		<Product type="1D02" id="0081" name="ZW129 WallMote Duo" config="aeotec/zw129.xml"/>
-		<Product type="0002" id="0082" name="ZW130 WallMote Quad" config="aeotec/zw130.xml"/>
-		<Product type="0102" id="0082" name="ZW130 WallMote Quad" config="aeotec/zw130.xml"/>
-		<Product type="0202" id="0082" name="ZW130 WallMote Quad" config="aeotec/zw130.xml"/>
-		<Product type="1D02" id="0082" name="ZW130 WallMote Quad" config="aeotec/zw130.xml"/>
-		<Product type="0003" id="0084" name="ZW132 Dual Nano Switch" config="aeotec/zw132.xml"/>
-		<Product type="0103" id="0084" name="ZW132 Dual Nano Switch" config="aeotec/zw132.xml"/>
-		<Product type="0203" id="0084" name="ZW132 Dual Nano Switch" config="aeotec/zw132.xml"/>
-		<Product type="1d03" id="0084" name="ZW132 Dual Nano Switch" config="aeotec/zw132.xml"/>
-		<Product type="0003" id="008b" name="ZW139 Nano Switch" config="aeotec/zw139.xml"/>
-		<Product type="0103" id="008b" name="ZW139 Nano Switch" config="aeotec/zw139.xml"/>
-		<Product type="0203" id="008b" name="ZW139 Nano Switch" config="aeotec/zw139.xml"/>
-		<Product type="1d03" id="008b" name="ZW139 Nano Switch" config="aeotec/zw139.xml"/>
-		<Product type="0003" id="008c" name="ZW140 Dual Nano Switch" config="aeotec/zw140.xml"/>
-		<Product type="0103" id="008c" name="ZW140 Dual Nano Switch" config="aeotec/zw140.xml"/>
-		<Product type="0203" id="008c" name="ZW140 Dual Nano Switch" config="aeotec/zw140.xml"/>
-		<Product type="1d03" id="008c" name="ZW140 Dual Nano Switch" config="aeotec/zw140.xml"/>
-		<Product type="0003" id="008d" name="ZW141 Nano Shutter" config="aeotec/zw141.xml"/>
-		<Product type="0103" id="008d" name="ZW141 Nano Shutter" config="aeotec/zw141.xml"/>
-		<Product type="0203" id="008d" name="ZW141 Nano Shutter" config="aeotec/zw141.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0371" name="Aeotec Limited">
-		<Product type="0003" id="0001" name="ZWA001 LED Bulb 6 Multi-White" config="aeotec/zwa001.xml"/>
-		<Product type="0103" id="0001" name="ZWA001 LED Bulb 6 Multi-White" config="aeotec/zwa001.xml"/>
-		<Product type="0003" id="0002" name="ZWA002 LED Bulb 6 Multi-Color" config="aeotec/zwa002.xml"/>
-		<Product type="0103" id="0002" name="ZWA002 LED Bulb 6 Multi-Color" config="aeotec/zwa002.xml"/>
-		<Product type="0002" id="0003" name="ZWA003 NanoMote Quad" config="aeotec/zwa003.xml"/>
-		<Product type="0102" id="0003" name="ZWA003 NanoMote Quad" config="aeotec/zwa003.xml"/>
-		<Product type="0002" id="0004" name="ZWA004 NanoMote One" config="aeotec/zwa004.xml"/>
-		<Product type="0102" id="0004" name="ZWA004 NanoMote One" config="aeotec/zwa004.xml"/>
-		<Product type="0002" id="0005" name="ZWA005 TriSensor" config="aeotec/zwa005.xml"/>
-		<Product type="0102" id="0005" name="ZWA005 TriSensor" config="aeotec/zwa005.xml"/>
-		<Product type="0003" id="00a2" name="ZW162 Doorbell 6" config="aeotec/zw162.xml"/>
-		<Product type="0103" id="00a2" name="ZW162 Doorbell 6" config="aeotec/zw162.xml"/>
-		<Product type="0203" id="00a2" name="ZW162 Doorbell 6" config="aeotec/zw162.xml"/>
-		<Product type="1d03" id="00a2" name="ZW162 Doorbell 6" config="aeotec/zw162.xml"/>
-		<Product type="0003" id="00b4" name="ZWA006 Smart Boost Timer Switch" config="aeotec/zwa006.xml"/>
-		<Product type="0103" id="00b4" name="ZWA006 Smart Boost Timer Switch" config="aeotec/zwa006.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0088" name="Airvent SAM S.p.A.">
-	</Manufacturer>
-	<Manufacturer id="0094" name="Alarm.com">
-	</Manufacturer>
-	<Manufacturer id="0126" name="Alertme (Iris)">
-		<Product type="0002" id="0001" name="Range Extender" config="iris/rangeextender.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0372" name="ALLEATO">
-	</Manufacturer>
-	<Manufacturer id="028E" name="Alphanetworks">
-	</Manufacturer>
-	<Manufacturer id="0230" name="Alphonsus Tech">
-		<Product type="0003" id="0001" name="ID Lock 101" config="idlock/idlock101.xml"/>
-	</Manufacturer>
-	<Manufacturer id="029F" name="AMADAS Co. LTD ">
-	</Manufacturer>
-	<Manufacturer id="019C" name="Amdocs">
-	</Manufacturer>
-	<Manufacturer id="005A" name="American Grid Inc.">
-	</Manufacturer>
-	<Manufacturer id="0384" name="Ameta International Co. Ltd.">
-	</Manufacturer>
-	<Manufacturer id="032B" name="Anchor Tech">
-	</Manufacturer>
-	<Manufacturer id="0392" name="Animus Home AB">
-	</Manufacturer>
-	<Manufacturer id="026D" name="Antik Technology Ltd.">
-	</Manufacturer>
-	<Manufacturer id="0078" name="anyCOMM Corporation">
-	</Manufacturer>
-	<Manufacturer id="0144" name="Applied Micro Electronics AME BV">
-	</Manufacturer>
-	<Manufacturer id="0291" name="Arkea">
-	</Manufacturer>
-	<Manufacturer id="0029" name="Asia Heading">
-	</Manufacturer>
-	<Manufacturer id="0231" name="ASITEQ">
-	</Manufacturer>
-	<Manufacturer id="028A" name="Askey Computer Corp.">
-	</Manufacturer>
-	<Manufacturer id="0129" name="Assa Abloy">
-		<Product type="0001" id="0000" name="Yale Touchscreen Lever (YRL220)" config="assa_abloy/TouchLever.xml"/>
-		<Product type="0002" id="0000" name="Yale Touchscreen Deadbolt (YRD220)" config="assa_abloy/TouchDeadbolt.xml" />
-		<Product type="0002" id="aa00" name="Yale Touchscreen Deadbolt (YRD220)" config="assa_abloy/TouchDeadbolt.xml" />
-		<Product type="0002" id="0209" name="Yale Key Free Touchscreen Deadbolt (YRD240)" config="assa_abloy/TouchDeadbolt.xml"/>
-		<Product type="8002" id="0600" name="Yale Key Free Touchscreen Deadbolt (YRD446)" config="assa_abloy/TouchDeadbolt.xml"/>
-		<Product type="8002" id="1000" name="Yale Key Free Touchscreen Deadbolt (YRD446)" config="assa_abloy/TouchDeadbolt.xml"/>
-		<Product type="0002" id="0800" name="Yale Touchscreen Deadbolt (YRD120)" config="assa_abloy/TouchDeadbolt.xml" />
-		<Product type="0003" id="0409" name="Yale Push Button Lever Lock (YRL210)" config="assa_abloy/PushButtonLever.xml"/>
-		<Product type="0003" id="0800" name="Yale Push Button Lever Lock (YRL210)" config="assa_abloy/PushButtonLever.xml"/>
-		<Product type="0004" id="0000" name="Yale Push Button Deadbolt (YRD210)" config="assa_abloy/PushButtonDeadbolt.xml"/>
-		<Product type="0004" id="0209" name="Yale Push Button Deadbolt (YRD210)" config="assa_abloy/PushButtonDeadbolt.xml"/>
-		<Product type="0004" id="aa00" name="Yale Push Button Deadbolt (YRD210)" config="assa_abloy/PushButtonDeadbolt.xml"/>
-		<Product type="8004" id="0600" name="Yale Push Button Deadbolt (YRD216)" config="assa_abloy/PushButtonDeadbolt.xml"/>
-		<Product type="0004" id="0800" name="Yale Push Button Deadbolt (YRD110)" config="assa_abloy/PushButtonDeadbolt.xml"/>
-		<Product type="0006" id="0000" name="Yale Key Free Touchscreen Deadbolt (YRD240)" config="assa_abloy/TouchDeadbolt.xml"/>
-		<Product type="0007" id="0000" name="Yale Keyless Connected Smart Lock (YSL)" config="assa_abloy/KeyfreeConnected.xml"/>
-		<Product type="1bef" id="9230" name="Yale Keyless Connected Smart Lock (YSL)" config="assa_abloy/KeyfreeConnected.xml"/>
-		<Product type="6600" id="0002" name="Yale Conexis L1 (SD-L1000-CH)" config="assa_abloy/ConexisL1.xml"/>
-		<Product type="0007" id="0001" name="Keyless Connected (YD-01-CON)" config="assa_abloy/KeyfreeConnected-plus.xml"/>
-		<Product type="0006" id="0001" name="Yale Keyfree Connected Smart Lock (YKFCON)" config="assa_abloy/KeyfreeConnected-plus.xml"/>
-		<Product type="0600" id="0000" name="Yale Keyfree Connected Smart Lock (YKFCON)" config="assa_abloy/KeyfreeConnected-plus.xml"/>
-		<Product type="8001" id="0b00" name="Yale nexTouch Wireless Push Button (NTB610)" config="assa_abloy/nexTouch.xml"/>
-		<Product type="8003" id="0b00" name="Yale nexTouch Wireless Push Button (NTB620)" config="assa_abloy/nexTouch.xml"/>
-	</Manufacturer>
-	<Manufacturer id="013B" name="AstraLink">
-	</Manufacturer>
-	<Manufacturer id="0134" name="AT&amp;T">
-	</Manufacturer>
-	<Manufacturer id="002b" name="Atech">
-	</Manufacturer>
-	<Manufacturer id="0244" name="Athom BV">
-	</Manufacturer>
-	<Manufacturer id="032A" name="AUCEAN TECHNOLOGY. INC">
-	</Manufacturer>
-	<Manufacturer id="033f" name="August">
-		<Product type="0001" id="0001" name="ASL-03 Smart Lock" config="august/asl-03.xml"/>
-	</Manufacturer>
-	<Manufacturer id="025D" name="Avadesign Technology Co.">
-	</Manufacturer>
-	<Manufacturer id="0155" name="Avadesign Technology Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0146" name="Axesstel Inc">
-	</Manufacturer>
-	<Manufacturer id="0018" name="Balboa Inst.">
-	</Manufacturer>
-	<Manufacturer id="0236" name="Bandi Comm Tech Inc.">
-	</Manufacturer>
-	<Manufacturer id="0204" name="Beijing Sino-American Boyi Software Development Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0251" name="Beijing Universal Energy Huaxia Technology Co.Ltd">
-	</Manufacturer>
-	<Manufacturer id="0196" name="Bellatrix Systems Inc.">
-	</Manufacturer>
-	<Manufacturer id="032D" name="Benetek">
-	</Manufacturer>
-	<Manufacturer id="008a" name="BeNext">
-		<Product type="0001" id="0100" name="myGate"/>
-		<Product type="0002" id="0100" name="myDisplay"/>
-		<Product type="0003" id="0100" name="MoLiTe Sensor" config="BeNext/Molite.xml"/>
-		<Product type="0003" id="0101" name="DHS-ZW-SNMT-01 Multi Sensor" config="BeNext/Molite.xml"/>
-		<Product type="0004" id="0100" name="Door Sensor" config="BeNext/DoorSensor.xml"/>
-		<Product type="0004" id="0101" name="Door Sensor" config="BeNext/DoorSensor.xml"/>
-		<Product type="0005" id="0101" name="Alarm Sound" config="BeNext/AlarmSound.xml"/>
-		<Product type="0006" id="0101" name="Energy Switch" config="BeNext/EnergySwitch.xml"/>
-		<Product type="0006" id="0200" name="Energy Switch" config="BeNext/EnergySwitch.xml"/>
-		<Product type="0007" id="0100" name="Tag Reader" config="BeNext/TagReader.xml"/>
-		<Product type="0007" id="0101" name="Tag Reader" config="BeNext/TagReader.xml"/>
-		<Product type="0007" id="0200" name="Tag Reader 500" config="BeNext/TagReader500.xml"/>
-		<Product type="0008" id="0101" name="Power Switch"/>
-		<Product type="000d" id="0100" name="Built-in Dimmer" config="BeNext/BuiltinDimmer.xml"/>
-		<Product type="0014" id="0100" name="Panic Button" config="BeNext/PanicButton.xml"/>
-		<Product type="0014" id="0101" name="Panic Button" config="BeNext/PanicButton.xml"/>
-		<Product type="0015" id="0101" name="Panic Watch" config="BeNext/PanicWatch.xml"/>
-		<Product type="0017" id="0100" name="Scene Controller" config="BeNext/SceneController.xml"/>
-		<Product type="0018" id="0100" name="Plug-in Dimmer" config="BeNext/PluginDimmer.xml"/>
-		<Product type="001e" id="0001" name="1Pole Switch" config="BeNext/1poleswitch.xml"/>
-		<Product type="001f" id="0001" name="2Pole Switch" config="BeNext/2poleswitch.xml"/>
-		<Product type="0020" id="0001" name="Energy Switch plus" config="BeNext/EnergySwitch.xml"/>
-		<Product type="0021" id="0001" name="Heating Control" config="BeNext/HeatingControl.xml"/>
-		<Product type="0021" id="0100" name="Heating Control" config="BeNext/HeatingControl.xml"/>
-		<Product type="0021" id="0102" name="Heating Control" config="BeNext/HeatingControl.xml"/>
-		<Product type="002f" id="0100" name="P1 Dongle" config="BeNext/P1dongle.xml"/>
-	</Manufacturer>
-	<Manufacturer id="014B" name="BFT S.p.A.">
-	</Manufacturer>
-	<Manufacturer id="0052" name="Bit7 Inc.">
-	</Manufacturer>
-	<Manufacturer id="0311" name="Blaze Automation">
-	</Manufacturer>
-	<Manufacturer id="0213" name="BMS Evler LTD">
-	</Manufacturer>
-	<Manufacturer id="0023" name="Boca Devices">
-	</Manufacturer>
-	<Manufacturer id="0169" name="Bonig und Kallenbach oHG (Popp)">
-		<Product type="0001" id="0001" name="ZWeather" config="popp/zweather.xml" />
-	</Manufacturer>
-	<Manufacturer id="015C" name="Bosch Security Systems Inc">
-	</Manufacturer>
-	<Manufacturer id="002d" name="Broadband Energy Networks Inc.">
-	</Manufacturer>
-	<Manufacturer id="024A" name="BTSTAR(HK) TECHNOLOGY COMPANY LIMITED">
-	</Manufacturer>
-	<Manufacturer id="0145" name="Buffalo">
-		<Product type="0001" id="0004" name="HW-100V15A-ZW Measure Power Monitor"/>
-	</Manufacturer>
-	<Manufacturer id="0190" name="Building 36 Technologies">
-	</Manufacturer>
-	<Manufacturer id="0396" name="Bulcraft Control">
-	</Manufacturer>
-	<Manufacturer id="0026" name="BuLogics">
-	</Manufacturer>
-	<Manufacturer id="0398" name="Calix">
-	</Manufacturer>
-	<Manufacturer id="009C" name="Cameo Communications Inc.">
-	</Manufacturer>
-	<Manufacturer id="002e" name="Carrier">
-	</Manufacturer>
-	<Manufacturer id="000B" name="CasaWorks">
-	</Manufacturer>
-	<Manufacturer id="0243" name="casenio AG">
-	</Manufacturer>
-	<Manufacturer id="0404" name="CCC Air Inc.">
-	</Manufacturer>
-	<Manufacturer id="0246" name="CentraLite Systems Inc">
-	</Manufacturer>
-	<Manufacturer id="033C" name="Centurylink">
-	</Manufacturer>
-	<Manufacturer id="0359" name="Chamberlain Group">
-	</Manufacturer>
-	<Manufacturer id="014E" name="Check-It Solutions Inc.">
-	</Manufacturer>
-	<Manufacturer id="038F" name="CHENGPUTECH	">
-	</Manufacturer>
-	<Manufacturer id="0320" name="China Security and Fire IOT Sensing CO. LTD">
-	</Manufacturer>
-	<Manufacturer id="0116" name="Chromagic Technologies Corporation">
-		<Product type="0001" id="0001" name="HSCP02 Motion Detector" config="everspring/hsp02.xml"/>
-		<Product type="0002" id="0001" name="HSM02 Mini Door/Window Detector" config="everspringct/hsm02.xml" />
-		<Product type="0010" id="0001" name="HAC01 Remote Button"/>
-	</Manufacturer>
-	<Manufacturer id="0280" name="Chuango Security Technology Corporation">
-	</Manufacturer>
-	<Manufacturer id="0082" name="Cisco Consumer Business Group">
-	</Manufacturer>
-	<Manufacturer id="0194" name="Clare Controls">
-	</Manufacturer>
-	<Manufacturer id="018E" name="Climax Technology, Ltd.">
-	</Manufacturer>
-	<Manufacturer id="0200" name="Cloud Media	">
-	</Manufacturer>
-	<Manufacturer id="002f" name="Color Kinetics">
-	</Manufacturer>
-	<Manufacturer id="0329" name="COMAP">
-	</Manufacturer>
-	<Manufacturer id="0309" name="Comfortability">
-	</Manufacturer>
-	<Manufacturer id="0140" name="Computime">
-	</Manufacturer>
-	<Manufacturer id="011B" name="Connected Object">
-	</Manufacturer>
-	<Manufacturer id="0179" name="ConnectHome">
-		<Product type="0001" id="0001" name="CH-201 Thermostat"/>
-	</Manufacturer>
-	<Manufacturer id="0285" name="CONNECTION TECHNOLOGY SYSTEMS">
-	</Manufacturer>
-	<Manufacturer id="025D" name="Contec intelligent housing">
-	</Manufacturer>
-	<Manufacturer id="023F" name="Control4 Corporation">
-	</Manufacturer>
-	<Manufacturer id="0019" name="ControlThink">
-	</Manufacturer>
-	<Manufacturer id="000F" name="ConvergeX">
-	</Manufacturer>
-	<Manufacturer id="007D" name="CoolGuard">
-	</Manufacturer>
-	<Manufacturer id="0079" name="Cooper Lighting">
-	</Manufacturer>
-	<Manufacturer id="001a" name="Cooper Wiring Devices">
-		<Product type="4441" id="0000" name="RF9542-Z Accessory Dimmer" config="cooper/RF9542-Z.xml"/>
-		<Product type="4449" id="0002" name="RF9534DS Wall Dimmer Module"/>
-		<Product type="4449" id="0101" name="RF9540-N All Load Dimmer Light Switch" config="cooper/RF9540-N.xml"/>
-		<Product type="5244" id="0000" name="RF9505-T Split Control Duplex Receptacle" config="cooper/RF9505-T.xml"/>
-		<Product type="534c" id="0000" name="RF9501 Light Switch" config="cooper/RF9501.xml"/>
-		<Product type="5352" id="0000" name="RF9517 Accessory Light Switch" config="cooper/RF9517.xml"/>
-		<Product type="574d" id="0000" name="RFWC5/RFWDC Scene Controller" config="cooper/RFWC5.xml"/>
-	</Manufacturer>
-	<Manufacturer id="009d" name="Coventive Technologies Inc.">
-	</Manufacturer>
-	<Manufacturer id="0379" name="CPRO">
-	</Manufacturer>
-	<Manufacturer id="0383" name="CribOS">
-	</Manufacturer>
-	<Manufacturer id="0328" name="Cvnet">
-	</Manufacturer>
-	<Manufacturer id="0014" name="Cyberhouse (GoControl)">
-		<Product type="5442" id="5436" name="GC-TBZ48L Battery Powered Z-Wave Plus Thermostat" config="gocontrol/GC-TBZ48L.xml" />
-	</Manufacturer>
-	<Manufacturer id="0067" name="CyberTAN Technology, Inc.">
-	</Manufacturer>
-	<Manufacturer id="0030" name="Cytech Technology Pre Ltd.">
-		<Product type="0001" id="0001" name="Comfort 9000 with UCM/Zwave"/>
-	</Manufacturer>
-	<Manufacturer id="0294" name="D-3 Technology Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0108" name="D-Link Corporation">
-		<Product type="0002" id="000e" name="DCH-Z110 Door/Window 3 in 1 sensor" config="dlink/dch-z110.xml"/>
-		<Product type="0002" id="000d" name="DCH-Z120 PIR/Motion 3 in 1 sensor" config="dlink/dch-z120.xml"/>
-		<Product type="0004" id="000a" name="DCH-Z510 Siren" config="dlink/dch-z510.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0002" name="Danfoss">
-		<Product type="0003" id="8010" name="RS Room Sensor" config="danfoss/rsroom.xml"/>
-		<Product type="8003" id="8001" name="RS Room Sensor" config="danfoss/rsroom.xml"/>
-		<Product type="0005" id="0175" name="Devolo Home Control Radiator Thermostat" config="danfoss/z.xml"/>
-		<Product type="0005" id="0003" name="Z Thermostat" config="danfoss/z.xml"/>
-		<Product type="0005" id="0004" name="Z Thermostat 014G0013" config="danfoss/z.xml"/>
-		<Product type="0064" id="0001" name="RA Plus-W Radiator Thermostat"/>
-		<Product type="0115" id="a010" name="Popp Radiator Thermostat" config="danfoss/z.xml"/>
-		<Product type="8004" id="2000" name="RXZ3 RF relay Switching Unit"/>
-		<Product type="8005" id="0001" name="Living Connect Radiator Thermostat" config="danfoss/living.xml"/>
-	</Manufacturer>
-	<Manufacturer id="018C" name="Dawon DNS">
-	</Manufacturer>
-	<Manufacturer id="020A" name="Decoris Intelligent System Limited">
-	</Manufacturer>
-	<Manufacturer id="013F" name="Defacontrols BV">
-	</Manufacturer>
-	<Manufacturer id="032E" name="DEFARO">
-	</Manufacturer>
-	<Manufacturer id="040D" name="Delaney Hardware">
-	</Manufacturer>
-	<Manufacturer id="0031" name="Destiny Networks">
-	</Manufacturer>
-	<Manufacturer id="0175" name="Devolo home Control">
-		<Product type="0001" id="0011" name="Metering Plug MT02646" config="devolo/mt2646.xml"/>
-		<Product type="0001" id="0012" name="Smart Metering Plug MT02792" config="devolo/mt02792.xml"/>
-		<Product type="0002" id="000e" name="Door/Window Contact MT02648" config="devolo/mt02648.xml"/>
-		<Product type="0002" id="0020" name="Humidity Sensor MT02755" config="devolo/mt02755.xml"/>
-		<Product type="0002" id="0021" name="Flood Sensor MT02756" config="devolo/mt2756.xml"/>
-		<Product type="0002" id="000d" name="Motion Sensor MT02647" config="devolo/mt2647.xml"/>
-		<Product type="0003" id="8010" name="Thermostats RS 014G0159" config="devolo/rs014G0159.xml"/>
-		<Product type="0004" id="000a" name="Siren MT02758" config="devolo/mt02758.xml"/>
-		<Product type="0005" id="0175" name="Thermostats Danfoss Connect Z" config="devolo/connectz.xml"/>
-		<Product type="0100" id="0101" name="Scene Switch MT2652" config="devolo/mt2652.xml" />
-		<Product type="0100" id="0102" name="Key MT2653" config="devolo/mt2653.xml" />
-		<Product type="2004" id="2004" name="Smoke Detector MT2651" config="devolo/mt2651.xml" />
-	</Manufacturer>
-	<Manufacturer id="0103" name="Diehl AKO">
-		<Product type="0002" id="0002" name="Dimmer Actuator"/>
-	</Manufacturer>
-	<Manufacturer id="0032" name="Digital 5 Inc.">
-	</Manufacturer>
-	<Manufacturer id="035D" name="Digital Watchdog">
-	</Manufacturer>
-	<Manufacturer id="0228" name="DigitalZone">
-	</Manufacturer>
-	<Manufacturer id="0127" name="Digital Monitoring Products">
-	</Manufacturer>
-	<Manufacturer id="0177" name="Domino sistemi d.o.o.">
-	</Manufacturer>
-	<Manufacturer id="020e" name="Domitech">
-		<Product type="4c42" id="3134" name="Smart LED Retrofit Kit ZE27EU" config="domitech/ze27eu.xml"/>
-		<Product type="4c42" id="3135" name="Smart LED Light Bulb ZB22UK" config="domitech/zb22uk.xml"/>
-	</Manufacturer>
-	<Manufacturer id="021c" name="Domux Shenzhen iSurpass Technology Co.">
-		<Product type="0168" id="0168" name="Door Sensor DX1DS-Z" config="domux/DX1DS-Z.xml"/>
-		<Product type="8001" id="1000" name="Motion Sensor DX1MS-Z" config="domux/DX1MS-Z.xml"/>
-		<Product type="8002" id="1000" name="Smart Smoke Sensor DX1SA-Z" config="domux/DX1SA-Z.xml"/>
-		<Product type="8003" id="1000" name="Combustible Gas Sensor DX1CG-Z" config="domux/DX1CG-Z.xml"/>
-		<Product type="8004" id="1000" name="Water Leakage Sensor DX1WL-Z" config="domux/DX1WL-Z.xml"/>
-		<Product type="8005" id="1000" name="CO Sensor DX1CA-Z" config="domux/DX1CA-Z.xml"/>
-		<Product type="8006" id="1000" name="Smart Metering Plug DX2SK-Z" config="domux/DX2SK-Z.xml"/>
-		<Product type="8007" id="1000" name="Temperature Humidity Sensor DX1HT-Z" config="domux/DX1HT-Z.xml"/>
-		<Product type="8008" id="1000" name="Smart Plug DX2SK-Z" config="domux/DX2SK-Z.xml"/>
-	</Manufacturer>
-	<Manufacturer id="020C" name="Dongguan Zhou Da Electronics Co.,Ltd">
-	</Manufacturer>
-	<Manufacturer id="017D" name="DRACOR Inc.">
-	</Manufacturer>
-	<Manufacturer id="0184" name="Dragon Tech">
-		<Product type="4447" id="3034" name="In Wall Dimmer" config="dragontech/wd-100.xml" />
-	</Manufacturer>
-	<Manufacturer id="0223" name="DTV Research Unipessoal, Lda">
-	</Manufacturer>
-	<Manufacturer id="0272" name="Dune-HD">
-	</Manufacturer>
-	<Manufacturer id="0334" name="Dusun Electron Ltd.">
-	</Manufacturer>
-	<Manufacturer id="031B" name="DVACO GROUP">
-	</Manufacturer>
-	<Manufacturer id="0132" name="DynaQuip Controls">
-	</Manufacturer>
-	<Manufacturer id="010D" name="e-Home AUTOMATION">
-	</Manufacturer>
-	<Manufacturer id="0247" name="EASY SAVER Co. Inc">
-	</Manufacturer>
-	<Manufacturer id="001A" name="Eaton">
-	</Manufacturer>
-	<Manufacturer id="017C" name="EbV">
-	</Manufacturer>
-	<Manufacturer id="016B" name="Echostar">
-	</Manufacturer>
-	<Manufacturer id="028F" name="Eco Automation">
-	</Manufacturer>
-	<Manufacturer id="037C" name="Eco Life Engineering Co. Ltd.">
-	</Manufacturer>
-	<Manufacturer id="014a" name="Ecolink">
-		<Product type="0001" id="0001" name="Motion Sensor" config="ecolink/sensor.xml"/>
-		<Product type="0001" id="0002" name="Door/Window Sensor" config="ecolink/doorwindow.xml"/>
-		<Product type="0001" id="0003" name="Tilt Sensor" config="ecolink/sensor.xml"/>
-		<Product type="0004" id="0001" name="Motion Detector" config="ecolink/motion.xml"/>
-		<Product type="0004" id="0002" name="Door/Window Sensor" config="ecolink/doorwindow.xml"/>
-		<Product type="0004" id="0003" name="Garage Door Tilt Sensor" config="ecolink/sensor.xml"/>
-		<Product type="0005" id="000f" name="FireFighter" config="ecolink/firefighter.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0157" name="EcoNet Controls">
-	</Manufacturer>
-	<Manufacturer id="039D" name="ECS">
-	</Manufacturer>
-	<Manufacturer id="031F" name="Eelectron SpA">
-	</Manufacturer>
-	<Manufacturer id="026B" name="Ei Electronics">
-	</Manufacturer>
-	<Manufacturer id="0087" name="Eka Systems">
-	</Manufacturer>
-	<Manufacturer id="0034" name="El-Gev Electronics LTD">
-	</Manufacturer>
-	<Manufacturer id="0389" name="Elear Solutions Tech Pvt. Ltd.">
-	</Manufacturer>
-	<Manufacturer id="0033" name="Electronic Solutions Inc">
-		<Product type="5250" id="0002" name="DBMZ Motor Control" config="electronicsolutions/dbmz.xml"/>
-		<Product type="5250" id="3032" name="DBMZ Motor Control" config="electronicsolutions/dbmz.xml"/>
-	</Manufacturer>
-	<Manufacturer id="021f" name="Elexa Consumer Products Inc. (Dome)">
-		<Product type="0003" id="0002" name="Water Shut-Off Valve" config="dome/0002.xml"/>
-		<Product type="0003" id="0083" name="Motion Detector" config="dome/0083.xml"/>
-		<Product type="0003" id="0085" name="Leak Sensor" config="dome/0085.xml"/>
-		<Product type="0003" id="0086" name="Mouser" config="dome/0086.xml"/>
-		<Product type="0003" id="0087" name="On/Off Plug-In Switch" config="dome/0087.xml"/>
-		<Product type="0003" id="0088" name="Siren" config="dome/0088.xml"/>
-		<Product type="0003" id="0101" name="Door/Window Sensor" config="dome/0101.xml"/>
-		<Product type="0003" id="0201" name="Door/Window Sensor Pro" config="dome/0201.xml"/>
-	</Manufacturer>
-	<Manufacturer id="001b" name="ELK Products">
-	</Manufacturer>
-	<Manufacturer id="0393" name="Embedded Data Systems">
-	</Manufacturer>
-	<Manufacturer id="020B" name="Embedded System Design Limited">
-	</Manufacturer>
-	<Manufacturer id="0035" name="Embedit A/S">
-	</Manufacturer>
-	<Manufacturer id="0284" name="Empers Tech Co., Ltd.">
-	</Manufacturer>
-	<Manufacturer id="0336" name="EMT Controls">
-	</Manufacturer>
-	<Manufacturer id="014d" name="Enblink">
-		<Product type="0001" id="0001" name="SS201-US-W Z-Wave Controller"/>
-	</Manufacturer>
-	<Manufacturer id="0219" name="Enwox Technologies s.r.o.">
-	</Manufacturer>
-	<Manufacturer id="006F" name="Erone">
-		<Product type="0102" id="0001" name="Door/Window Sensor"/>
-		<Product type="0104" id="0001" name="HM-AM001 Plugin Appliance Module"/>
-	</Manufacturer>
-	<Manufacturer id="0160" name="Essence Security">
-	</Manufacturer>
-	<Manufacturer id="029B" name="ESSENTIAL TECHNOLOGIES INC.">
-	</Manufacturer>
-	<Manufacturer id="0148" name="EUROtronic">
-		<Product type="0001" id="0001" name="EUR_STELLAZ Wall Radiator Thermostat Valve Control" config="eurotronic/eur_stellaz.xml"/>
-		<Product type="0002" id="0001" name="EUR_COMETZ Wall Radiator Thermostat Valve Control" config="eurotronic/eur_cometz.xml"/>
-		<Product type="0003" id="0001" name="EUR_SPIRITZ Wall Radiator Thermostat" config="eurotronic/eur_spiritz.xml"/>
-		<Product type="0003" id="0002" name="EUR_SPIRITZ Wall Radiator Thermostat" config="eurotronic/eur_spiritz.xml"/>
-		<Product type="0003" id="0003" name="EUR_SPIRITZ Wall Radiator Thermostat" config="eurotronic/eur_spiritz.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0060" name="Everspring">
-		<Product type="0001" id="0001" name="HSP02 Motion Detector" config="everspring/hsp02.xml"/>
-		<Product type="0001" id="0002" name="SP814 Motion Detector" config="everspring/sp814.xml"/>
-		<Product type="0001" id="0004" name="SP815 Pet Immune Pir Motion Detector" config="everspring/sp815.xml"/>
-		<Product type="0001" id="0005" name="SP816 Outdoor Motion Detector" config="everspring/sp816.xml"/>
-		<Product type="0002" id="0001" name="SM103 Door/Window Sensor" config="everspring/sm103.xml"/>
-		<Product type="0003" id="0001" name="AD142 Plug-in Dimmer Module"/>
-		<Product type="0003" id="0003" name="AD147 Plug-in Dimmer Module" config="everspring/ad147.xml"/>
-		<Product type="0003" id="0002" name="AD146 In wall Dimmer Module" config="everspring/ad146.xml"/>
-		<Product type="0004" id="0001" name="AN157 Plug-in Appliance Module"/>
-		<Product type="0004" id="0002" name="AN158 Plug-in Meter Appliance Module" config="everspring/an158.xml"/>
-		<Product type="0004" id="0005" name="AN163 Plug-in On/Off with meter function" config="everspring/an163.xml"/>
-		<Product type="0004" id="0006" name="AN181 Miniplug On/Off with meter function" config="everspring/an181.xml"/>
-		<Product type="0004" id="0007" name="AN180 Plug-in ON/OFF Module" config="everspring/an180.xml"/>
-		<Product type="0004" id="0008" name="AN179 In wall ON/OFF Module" config="everspring/an179.xml"/>
-		<Product type="0006" id="0001" name="ST814 Temperature and Humidity Sensor" config="everspring/st814.xml"/>
-		<Product type="0007" id="0001" name="ST815 Illumination Sensor" config="everspring/st815.xml"/>
-		<Product type="0009" id="0001" name="TSE03 Door Bell" config="everspring/tse03.xml"/>
-		<Product type="000b" id="0001" name="ST812 Flood Detector" config="everspring/st812.xml"/>
-		<Product type="000c" id="0001" name="SE812 Siren" config="everspring/se812.xml"/>
-		<Product type="000d" id="0001" name="SF812 Smoke Alarm" config="everspring/sf812.xml"/>
-		<Product type="0010" id="0001" name="HAC01 In-wall Remote Module" config="everspring/hac01.xml"/>
-		<Product type="0011" id="0001" name="HAN01 In-wall Switch Module"/>
-		<Product type="0011" id="0002" name="HAN02 In-wall Switch Module"/>
-		<Product type="0101" id="0001" name="SP103 PIR Motion Sensor" config="everspring/sp103.xml"/>
-		<Product type="0104" id="0001" name="AN145 Lamp Screw In Module" config="everspring/an145.xml"/>
-		<Product type="0202" id="0001" name="SM103 Door/Window Sensor" config="everspring/sm103.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0113" name="Evolve Guest Controls">
-		<Product type="4457" id="3034" name="LRM-AS Wall Dimmer 500W" config="evolve/lrm-as.xml"/>
-		<Product type="5246" id="3133" name="LFM-20 Fixture Module"/>
-		<Product type="5257" id="3533" name="LSM-15 Wall Switch" config="evolve/lsm-15.xml"/>
-		<Product type="5457" id="3033" name="LTM-5 Wall Switch Transmitter" config="evolve/ltm-5.xml" />
-	</Manufacturer>
-	<Manufacturer id="036F" name="Evolvere SpA">
-	</Manufacturer>
-	<Manufacturer id="0036" name="Exceptional Innovations">
-	</Manufacturer>
-	<Manufacturer id="0004" name="Exhausto">
-	</Manufacturer>
-	<Manufacturer id="009f" name="Exigent">
-	</Manufacturer>
-	<Manufacturer id="0233" name="eZEX Corporation">
-	</Manufacturer>
-	<Manufacturer id="0085" name="Fakro">
-		<Product type="0001" id="0001" name="ZWP10 Remote Controller" config="fakro/zwp10.xml"/>
-		<Product type="0002" id="0002" name="ARZ Roof Window Roller Shutter" />
-		<Product type="0002" id="0005" name="ZWS230 Chain actuator 230VAC" config="fakro/zws230.xml" />
-		<Product type="0003" id="0001" name="ZWS12 Chain actuator 12VDC" config="fakro/zws12.xml" />
-		<Product type="0003" id="0002" name="ZWS230 Chain actuator 230VAC" config="fakro/zws230.xml" />
-		<Product type="0016" id="0001" name="ZWRS Roller Shutter FLiRS module" config="fakro/zwrs.xml"/>
-	</Manufacturer>
-	<Manufacturer id="016a" name="Fantem (Oomi)">
-		<!-- EU-market products seems to start with type prefix "00" -->
+    <Product config="aeotec/zw056.xml" id="0038" name="ZW056 Doorbell Gen5" type="0004"/>
+    <Product config="aeotec/zw056.xml" id="0038" name="ZW056 Doorbell Gen5" type="0104"/>
+    <Product config="aeotec/zw056.xml" id="0038" name="ZW056 Doorbell Gen5" type="0204"/>
+    <Product config="aeotec/zw056.xml" id="0038" name="ZW056 Doorbell Gen5" type="0304"/>
+    <Product config="aeotec/zw056.xml" id="0038" name="ZW056 Doorbell Gen5" type="0904"/>
+    <Product config="aeotec/zw056.xml" id="0038" name="ZW056 Doorbell Gen5" type="1D04"/>
+    <Product config="aeotec/zw056.xml" id="0038" name="ZW056 Doorbell Gen5" type="1A04"/>
+    <Product config="aeotec/zw056.xml" id="0038" name="ZW056 Doorbell Gen5" type="0A04"/>
+    <Product config="aeotec/zw062.xml" id="003e" name="ZW062 Garage Door Controller" type="0003"/>
+    <Product config="aeotec/zw062.xml" id="003e" name="ZW062 Garage Door Controller" type="0103"/>
+    <Product config="aeotec/zw062.xml" id="003e" name="ZW062 Garage Door Controller" type="0203"/>
+    <Product config="aeotec/zw074.xml" id="004a" name="ZW074 MultiSensor Gen5" type="0002"/>
+    <Product config="aeotec/zw074.xml" id="004a" name="ZW074 MultiSensor Gen5" type="0102"/>
+    <Product config="aeotec/zw074.xml" id="004a" name="ZW074 MultiSensor Gen5" type="0202"/>
+    <Product config="aeotec/zw075.xml" id="004b" name="ZW075 Smart Switch Gen5" type="0003"/>
+    <Product config="aeotec/zw075.xml" id="004b" name="ZW075 Smart Switch Gen5" type="0103"/>
+    <Product config="aeotec/zw075.xml" id="004b" name="ZW075 Smart Switch Gen5" type="0203"/>
+    <Product config="aeotec/zw078.xml" id="004e" name="ZW078 Heavy Duty Smart Switch Gen5" type="0003"/>
+    <Product config="aeotec/zw078.xml" id="004e" name="ZW078 Heavy Duty Smart Switch Gen5" type="0103"/>
+    <Product config="aeotec/zw078.xml" id="004e" name="ZW078 Heavy Duty Smart Switch Gen5" type="0203"/>
+    <Product config="aeotec/zw080.xml" id="0050" name="ZW080 Siren Gen5" type="0004"/>
+    <Product config="aeotec/zw080.xml" id="0050" name="ZW080 Siren Gen5" type="0104"/>
+    <Product config="aeotec/zw080.xml" id="0050" name="ZW080 Siren Gen5" type="0204"/>
+    <Product config="aeotec/zw088.xml" id="0058" name="ZW088 Key Fob Gen5" type="0001"/>
+    <Product config="aeotec/zw088.xml" id="0058" name="ZW088 Key Fob Gen5" type="0101"/>
+    <Product config="aeotec/zw088.xml" id="0058" name="ZW088 Key Fob Gen5" type="0201"/>
+    <Product config="aeotec/zw089.xml" id="0059" name="ZW089 Recessed Door Sensor Gen5" type="0002"/>
+    <Product config="aeotec/zw089.xml" id="0059" name="ZW089 Recessed Door Sensor Gen5" type="0102"/>
+    <Product config="aeotec/zw089.xml" id="0059" name="ZW089 Recessed Door Sensor Gen5" type="0202"/>
+    <Product config="aeotec/zw090.xml" id="005a" name="ZW090 Z-Stick Gen5 EU" type="0001"/>
+    <Product config="aeotec/zw090.xml" id="005a" name="ZW090 Z-Stick Gen5 US" type="0101"/>
+    <Product config="aeotec/zw090.xml" id="005a" name="ZW090 Z-Stick Gen5 AU" type="0201"/>
+    <Product id="005c" name="ZW092 Z-Stick Lite Gen5 EU" type="0001"/>
+    <Product id="005c" name="ZW092 Z-Stick Lite Gen5 US" type="0101"/>
+    <Product id="005c" name="ZW092 Z-Stick Lite Gen5 AU" type="0201"/>
+    <Product config="aeotec/zw095.xml" id="005f" name="ZW095 Home Energy Meter Gen5" type="0002"/>
+    <Product config="aeotec/zw095.xml" id="005f" name="ZW095 Home Energy Meter Gen5" type="0102"/>
+    <Product config="aeotec/zw095.xml" id="005f" name="ZW095 Home Energy Meter Gen5" type="0202"/>
+    <Product config="aeotec/zw096.xml" id="0060" name="ZW096 Smart Switch 6" type="0003"/>
+    <Product config="aeotec/zw096.xml" id="0060" name="ZW096 Smart Switch 6" type="0103"/>
+    <Product config="aeotec/zw096.xml" id="0060" name="ZW096 Smart Switch 6" type="0203"/>
+    <Product config="aeotec/zw097.xml" id="0061" name="ZW097 Dry Contact Sensor Gen5" type="0002"/>
+    <Product config="aeotec/zw097.xml" id="0061" name="ZW097 Dry Contact Sensor Gen5" type="0102"/>
+    <Product config="aeotec/zw097.xml" id="0061" name="ZW097 Dry Contact Sensor Gen5" type="0202"/>
+    <Product config="aeotec/zw098.xml" id="0062" name="ZW098 LED Bulb" type="0003"/>
+    <Product config="aeotec/zw098.xml" id="0062" name="ZW098 LED Bulb" type="0103"/>
+    <Product config="aeotec/zw098.xml" id="0062" name="ZW098 LED Bulb" type="0203"/>
+    <Product config="aeotec/zw099.xml" id="0063" name="ZW099 Smart Dimmer 6" type="0003"/>
+    <Product config="aeotec/zw099.xml" id="0063" name="ZW099 Smart Dimmer 6" type="0103"/>
+    <Product config="aeotec/zw099.xml" id="0063" name="ZW099 Smart Dimmer 6" type="0203"/>
+    <Product config="aeotec/zw099.xml" id="0063" name="ZW099 Smart Dimmer 6" type="1D03"/>
+    <Product config="aeotec/zw100.xml" id="0064" name="ZW100 MultiSensor 6" type="0002"/>
+    <Product config="aeotec/zw100.xml" id="0064" name="ZW100 MultiSensor 6" type="0102"/>
+    <Product config="aeotec/zw100.xml" id="0064" name="ZW100 MultiSensor 6" type="0202"/>
+    <Product config="aeotec/zw100.xml" id="0064" name="ZW100 MultiSensor 6" type="1A02"/>
+    <Product config="aeotec/zw111.xml" id="006f" name="ZW111 Nano Dimmer" type="0003"/>
+    <Product config="aeotec/zw111.xml" id="006f" name="ZW111 Nano Dimmer" type="0103"/>
+    <Product config="aeotec/zw111.xml" id="006f" name="ZW111 Nano Dimmer" type="0203"/>
+    <Product config="aeotec/zw111.xml" id="006f" name="ZW111 Nano Dimmer" type="1d03"/>
+    <Product config="aeotec/zw112.xml" id="0070" name="ZW112 Door Window Sensor 6" type="0002"/>
+    <Product config="aeotec/zw112.xml" id="0070" name="ZW112 Door Window Sensor 6" type="0102"/>
+    <Product config="aeotec/zw112.xml" id="0070" name="ZW112 Door Window Sensor 6" type="0202"/>
+    <Product config="aeotec/zw116.xml" id="0074" name="ZW116 Nano Switch" type="0003"/>
+    <Product config="aeotec/zw116.xml" id="0074" name="ZW116 Nano Switch" type="0103"/>
+    <Product config="aeotec/zw116.xml" id="0074" name="ZW116 Nano Switch" type="0203"/>
+    <Product config="aeotec/zw116.xml" id="0074" name="ZW116 Nano Switch" type="1d03"/>
+    <Product config="aeotec/zw117.xml" id="0075" name="ZW117 Range Extender 6" type="0004"/>
+    <Product config="aeotec/zw117.xml" id="0075" name="ZW117 Range Extender 6" type="0104"/>
+    <Product config="aeotec/zw117.xml" id="0075" name="ZW117 Range Extender 6" type="0204"/>
+    <Product config="aeotec/zw117.xml" id="0075" name="ZW117 Range Extender 6" type="1D04"/>
+    <Product config="aeotec/zw120.xml" id="0078" name="ZW120 Door Window Sensor Gen5" type="0002"/>
+    <Product config="aeotec/zw120.xml" id="0078" name="ZW120 Door Window Sensor Gen5" type="0102"/>
+    <Product config="aeotec/zw120.xml" id="0078" name="ZW120 Door Window Sensor Gen5" type="0202"/>
+    <Product config="aeotec/zw121.xml" id="0079" name="ZW121 LED Strip" type="0003"/>
+    <Product config="aeotec/zw121.xml" id="0079" name="ZW121 LED Strip" type="0103"/>
+    <Product config="aeotec/zw121.xml" id="0079" name="ZW121 LED Strip" type="0203"/>
+    <Product config="aeotec/zw121.xml" id="0079" name="ZW121 LED Strip" type="0A03"/>
+    <Product config="aeotec/zw122.xml" id="007a" name="ZW122 Water Sensor 6" type="0002"/>
+    <Product config="aeotec/zw122.xml" id="007a" name="ZW122 Water Sensor 6" type="0102"/>
+    <Product config="aeotec/zw122.xml" id="007a" name="ZW122 Water Sensor 6" type="0202"/>
+    <Product config="aeotec/zw122.xml" id="007a" name="ZW122 Water Sensor 6" type="0A02"/>
+    <Product config="aeotec/zw129.xml" id="0081" name="ZW129 WallMote Duo" type="0002"/>
+    <Product config="aeotec/zw129.xml" id="0081" name="ZW129 WallMote Duo" type="0102"/>
+    <Product config="aeotec/zw129.xml" id="0081" name="ZW129 WallMote Duo" type="0202"/>
+    <Product config="aeotec/zw129.xml" id="0081" name="ZW129 WallMote Duo" type="1D02"/>
+    <Product config="aeotec/zw130.xml" id="0082" name="ZW130 WallMote Quad" type="0002"/>
+    <Product config="aeotec/zw130.xml" id="0082" name="ZW130 WallMote Quad" type="0102"/>
+    <Product config="aeotec/zw130.xml" id="0082" name="ZW130 WallMote Quad" type="0202"/>
+    <Product config="aeotec/zw130.xml" id="0082" name="ZW130 WallMote Quad" type="1D02"/>
+    <Product config="aeotec/zw132.xml" id="0084" name="ZW132 Dual Nano Switch" type="0003"/>
+    <Product config="aeotec/zw132.xml" id="0084" name="ZW132 Dual Nano Switch" type="0103"/>
+    <Product config="aeotec/zw132.xml" id="0084" name="ZW132 Dual Nano Switch" type="0203"/>
+    <Product config="aeotec/zw132.xml" id="0084" name="ZW132 Dual Nano Switch" type="1d03"/>
+    <Product config="aeotec/zw139.xml" id="008b" name="ZW139 Nano Switch" type="0003"/>
+    <Product config="aeotec/zw139.xml" id="008b" name="ZW139 Nano Switch" type="0103"/>
+    <Product config="aeotec/zw139.xml" id="008b" name="ZW139 Nano Switch" type="0203"/>
+    <Product config="aeotec/zw139.xml" id="008b" name="ZW139 Nano Switch" type="1d03"/>
+    <Product config="aeotec/zw140.xml" id="008c" name="ZW140 Dual Nano Switch" type="0003"/>
+    <Product config="aeotec/zw140.xml" id="008c" name="ZW140 Dual Nano Switch" type="0103"/>
+    <Product config="aeotec/zw140.xml" id="008c" name="ZW140 Dual Nano Switch" type="0203"/>
+    <Product config="aeotec/zw140.xml" id="008c" name="ZW140 Dual Nano Switch" type="1d03"/>
+    <Product config="aeotec/zw141.xml" id="008d" name="ZW141 Nano Shutter" type="0003"/>
+    <Product config="aeotec/zw141.xml" id="008d" name="ZW141 Nano Shutter" type="0103"/>
+    <Product config="aeotec/zw141.xml" id="008d" name="ZW141 Nano Shutter" type="0203"/>
+  </Manufacturer>
+  <Manufacturer id="0371" name="Aeotec Limited">
+    <Product config="aeotec/zwa001.xml" id="0001" name="ZWA001 LED Bulb 6 Multi-White" type="0003"/>
+    <Product config="aeotec/zwa001.xml" id="0001" name="ZWA001 LED Bulb 6 Multi-White" type="0103"/>
+    <Product config="aeotec/zwa002.xml" id="0002" name="ZWA002 LED Bulb 6 Multi-Color" type="0003"/>
+    <Product config="aeotec/zwa002.xml" id="0002" name="ZWA002 LED Bulb 6 Multi-Color" type="0103"/>
+    <Product config="aeotec/zwa003.xml" id="0003" name="ZWA003 NanoMote Quad" type="0002"/>
+    <Product config="aeotec/zwa003.xml" id="0003" name="ZWA003 NanoMote Quad" type="0102"/>
+    <Product config="aeotec/zwa004.xml" id="0004" name="ZWA004 NanoMote One" type="0002"/>
+    <Product config="aeotec/zwa004.xml" id="0004" name="ZWA004 NanoMote One" type="0102"/>
+    <Product config="aeotec/zwa005.xml" id="0005" name="ZWA005 TriSensor" type="0002"/>
+    <Product config="aeotec/zwa005.xml" id="0005" name="ZWA005 TriSensor" type="0102"/>
+    <Product config="aeotec/zw162.xml" id="00a2" name="ZW162 Doorbell 6" type="0003"/>
+    <Product config="aeotec/zw162.xml" id="00a2" name="ZW162 Doorbell 6" type="0103"/>
+    <Product config="aeotec/zw162.xml" id="00a2" name="ZW162 Doorbell 6" type="0203"/>
+    <Product config="aeotec/zw162.xml" id="00a2" name="ZW162 Doorbell 6" type="1d03"/>
+    <Product config="aeotec/zwa006.xml" id="00b4" name="ZWA006 Smart Boost Timer Switch" type="0003"/>
+    <Product config="aeotec/zwa006.xml" id="00b4" name="ZWA006 Smart Boost Timer Switch" type="0103"/>
+    <Product config="aeotec/zwa008.xml" id="0007" name="ZWA008 Door Window Sensor 7" type="0002"/>
+    <Product config="aeotec/zwa008.xml" id="0007" name="ZWA008 Door Window Sensor 7" type="0102"/>
+    <Product config="aeotec/zwa008.xml" id="0007" name="ZWA008 Door Window Sensor 7" type="0202"/>
+  </Manufacturer>
+  <Manufacturer id="0088" name="Airvent SAM S.p.A."></Manufacturer>
+  <Manufacturer id="0094" name="Alarm.com"></Manufacturer>
+  <Manufacturer id="0126" name="Alertme (Iris)">
+    <Product config="iris/rangeextender.xml" id="0001" name="Range Extender" type="0002"/>
+  </Manufacturer>
+  <Manufacturer id="0372" name="ALLEATO"></Manufacturer>
+  <Manufacturer id="028E" name="Alphanetworks"></Manufacturer>
+  <Manufacturer id="0230" name="Alphonsus Tech">
+    <Product config="idlock/idlock101.xml" id="0001" name="ID Lock 101" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="029F" name="AMADAS Co. LTD "></Manufacturer>
+  <Manufacturer id="019C" name="Amdocs"></Manufacturer>
+  <Manufacturer id="005A" name="American Grid Inc."></Manufacturer>
+  <Manufacturer id="0384" name="Ameta International Co. Ltd."></Manufacturer>
+  <Manufacturer id="032B" name="Anchor Tech"></Manufacturer>
+  <Manufacturer id="0392" name="Animus Home AB"></Manufacturer>
+  <Manufacturer id="026D" name="Antik Technology Ltd."></Manufacturer>
+  <Manufacturer id="0078" name="anyCOMM Corporation"></Manufacturer>
+  <Manufacturer id="0144" name="Applied Micro Electronics AME BV"></Manufacturer>
+  <Manufacturer id="0291" name="Arkea"></Manufacturer>
+  <Manufacturer id="0029" name="Asia Heading"></Manufacturer>
+  <Manufacturer id="0231" name="ASITEQ"></Manufacturer>
+  <Manufacturer id="028A" name="Askey Computer Corp."></Manufacturer>
+  <Manufacturer id="0129" name="Assa Abloy">
+    <Product config="assa_abloy/TouchLever.xml" id="0000" name="Yale Touchscreen Lever (YRL220)" type="0001"/>
+    <Product config="assa_abloy/TouchDeadbolt.xml" id="0000" name="Yale Touchscreen Deadbolt (YRD220)" type="0002"/>
+    <Product config="assa_abloy/TouchDeadbolt.xml" id="aa00" name="Yale Touchscreen Deadbolt (YRD220)" type="0002"/>
+    <Product config="assa_abloy/TouchDeadbolt.xml" id="0209" name="Yale Key Free Touchscreen Deadbolt (YRD240)" type="0002"/>
+    <Product config="assa_abloy/TouchDeadbolt.xml" id="0600" name="Yale Key Free Touchscreen Deadbolt (YRD446)" type="8002"/>
+    <Product config="assa_abloy/TouchDeadbolt.xml" id="1000" name="Yale Key Free Touchscreen Deadbolt (YRD446)" type="8002"/>
+    <Product config="assa_abloy/TouchDeadbolt.xml" id="0800" name="Yale Touchscreen Deadbolt (YRD120)" type="0002"/>
+    <Product config="assa_abloy/PushButtonLever.xml" id="0409" name="Yale Push Button Lever Lock (YRL210)" type="0003"/>
+    <Product config="assa_abloy/PushButtonLever.xml" id="0800" name="Yale Push Button Lever Lock (YRL210)" type="0003"/>
+    <Product config="assa_abloy/PushButtonDeadbolt.xml" id="0000" name="Yale Push Button Deadbolt (YRD210)" type="0004"/>
+    <Product config="assa_abloy/PushButtonDeadbolt.xml" id="0209" name="Yale Push Button Deadbolt (YRD210)" type="0004"/>
+    <Product config="assa_abloy/PushButtonDeadbolt.xml" id="aa00" name="Yale Push Button Deadbolt (YRD210)" type="0004"/>
+    <Product config="assa_abloy/PushButtonDeadbolt.xml" id="0600" name="Yale Push Button Deadbolt (YRD216)" type="8004"/>
+    <Product config="assa_abloy/PushButtonDeadbolt.xml" id="0800" name="Yale Push Button Deadbolt (YRD110)" type="0004"/>
+    <Product config="assa_abloy/TouchDeadbolt.xml" id="0000" name="Yale Key Free Touchscreen Deadbolt (YRD240)" type="0006"/>
+    <Product config="assa_abloy/KeyfreeConnected.xml" id="0000" name="Yale Keyless Connected Smart Lock (YSL)" type="0007"/>
+    <Product config="assa_abloy/KeyfreeConnected.xml" id="9230" name="Yale Keyless Connected Smart Lock (YSL)" type="1bef"/>
+    <Product config="assa_abloy/ConexisL1.xml" id="0002" name="Yale Conexis L1 (SD-L1000-CH)" type="6600"/>
+    <Product config="assa_abloy/KeyfreeConnected-plus.xml" id="0001" name="Keyless Connected (YD-01-CON)" type="0007"/>
+    <Product config="assa_abloy/KeyfreeConnected-plus.xml" id="0001" name="Yale Keyfree Connected Smart Lock (YKFCON)" type="0006"/>
+    <Product config="assa_abloy/KeyfreeConnected-plus.xml" id="0000" name="Yale Keyfree Connected Smart Lock (YKFCON)" type="0600"/>
+    <Product config="assa_abloy/nexTouch.xml" id="0b00" name="Yale nexTouch Wireless Push Button (NTB610)" type="8001"/>
+    <Product config="assa_abloy/nexTouch.xml" id="0b00" name="Yale nexTouch Wireless Push Button (NTB620)" type="8003"/>
+  </Manufacturer>
+  <Manufacturer id="013B" name="AstraLink"></Manufacturer>
+  <Manufacturer id="0134" name="AT&amp;T"></Manufacturer>
+  <Manufacturer id="002b" name="Atech"></Manufacturer>
+  <Manufacturer id="0244" name="Athom BV"></Manufacturer>
+  <Manufacturer id="032A" name="AUCEAN TECHNOLOGY. INC"></Manufacturer>
+  <Manufacturer id="033f" name="August">
+    <Product config="august/asl-03.xml" id="0001" name="ASL-03 Smart Lock" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="025D" name="Avadesign Technology Co."></Manufacturer>
+  <Manufacturer id="0155" name="Avadesign Technology Co. Ltd"></Manufacturer>
+  <Manufacturer id="0146" name="Axesstel Inc"></Manufacturer>
+  <Manufacturer id="0018" name="Balboa Inst."></Manufacturer>
+  <Manufacturer id="0236" name="Bandi Comm Tech Inc."></Manufacturer>
+  <Manufacturer id="0204" name="Beijing Sino-American Boyi Software Development Co. Ltd"></Manufacturer>
+  <Manufacturer id="0251" name="Beijing Universal Energy Huaxia Technology Co.Ltd"></Manufacturer>
+  <Manufacturer id="0196" name="Bellatrix Systems Inc."></Manufacturer>
+  <Manufacturer id="032D" name="Benetek"></Manufacturer>
+  <Manufacturer id="008a" name="BeNext">
+    <Product config="BeNext/mygate.xml" id="0100" name="myGate" type="0001"/>
+    <Product config="BeNext/mydisplay.xml" id="0100" name="myDisplay" type="0002"/>
+    <Product config="BeNext/Molite.xml" id="0100" name="MoLiTe Sensor" type="0003"/>
+    <Product config="BeNext/Molite.xml" id="0101" name="DHS-ZW-SNMT-01 Multi Sensor" type="0003"/>
+    <Product config="BeNext/DoorSensor.xml" id="0100" name="Door Sensor" type="0004"/>
+    <Product config="BeNext/DoorSensor.xml" id="0101" name="Door Sensor" type="0004"/>
+    <Product config="BeNext/AlarmSound.xml" id="0101" name="Alarm Sound" type="0005"/>
+    <Product config="BeNext/EnergySwitch.xml" id="0101" name="Energy Switch" type="0006"/>
+    <Product config="BeNext/EnergySwitch.xml" id="0200" name="Energy Switch" type="0006"/>
+    <Product config="BeNext/TagReader.xml" id="0100" name="Tag Reader" type="0007"/>
+    <Product config="BeNext/TagReader.xml" id="0101" name="Tag Reader" type="0007"/>
+    <Product config="BeNext/TagReader500.xml" id="0200" name="Tag Reader 500" type="0007"/>
+    <Product id="0101" name="Power Switch" type="0008"/>
+    <Product config="BeNext/BuiltinDimmer.xml" id="0100" name="Built-in Dimmer" type="000d"/>
+    <Product config="BeNext/PanicButton.xml" id="0100" name="Panic Button" type="0014"/>
+    <Product config="BeNext/PanicButton.xml" id="0101" name="Panic Button" type="0014"/>
+    <Product config="BeNext/PanicWatch.xml" id="0101" name="Panic Watch" type="0015"/>
+    <Product config="BeNext/SceneController.xml" id="0100" name="Scene Controller" type="0017"/>
+    <Product config="BeNext/PluginDimmer.xml" id="0100" name="Plug-in Dimmer" type="0018"/>
+    <Product config="BeNext/1poleswitch.xml" id="0001" name="1Pole Switch" type="001e"/>
+    <Product config="BeNext/2poleswitch.xml" id="0001" name="2Pole Switch" type="001f"/>
+    <Product config="BeNext/EnergySwitch.xml" id="0001" name="Energy Switch plus" type="0020"/>
+    <Product config="BeNext/HeatingControl.xml" id="0001" name="Heating Control" type="0021"/>
+    <Product config="BeNext/HeatingControl.xml" id="0100" name="Heating Control" type="0021"/>
+    <Product config="BeNext/HeatingControl.xml" id="0102" name="Heating Control" type="0021"/>
+    <Product config="BeNext/P1dongle.xml" id="0100" name="P1 Dongle" type="002f"/>
+  </Manufacturer>
+  <Manufacturer id="014B" name="BFT S.p.A."></Manufacturer>
+  <Manufacturer id="0052" name="Bit7 Inc."></Manufacturer>
+  <Manufacturer id="0311" name="Blaze Automation"></Manufacturer>
+  <Manufacturer id="0213" name="BMS Evler LTD"></Manufacturer>
+  <Manufacturer id="0023" name="Boca Devices"></Manufacturer>
+  <Manufacturer id="0169" name="Bonig und Kallenbach oHG (Popp)">
+    <Product config="popp/zweather.xml" id="0001" name="ZWeather" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="015C" name="Bosch Security Systems Inc"></Manufacturer>
+  <Manufacturer id="002d" name="Broadband Energy Networks Inc."></Manufacturer>
+  <Manufacturer id="024A" name="BTSTAR(HK) TECHNOLOGY COMPANY LIMITED"></Manufacturer>
+  <Manufacturer id="0145" name="Buffalo">
+    <Product config="buffalo/hw-100v15a-zw.xml" id="0004" name="HW-100V15A-ZW Measure Power Monitor" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0190" name="Building 36 Technologies"></Manufacturer>
+  <Manufacturer id="0396" name="Bulcraft Control"></Manufacturer>
+  <Manufacturer id="0026" name="BuLogics"></Manufacturer>
+  <Manufacturer id="0398" name="Calix"></Manufacturer>
+  <Manufacturer id="009C" name="Cameo Communications Inc."></Manufacturer>
+  <Manufacturer id="002e" name="Carrier"></Manufacturer>
+  <Manufacturer id="000B" name="CasaWorks"></Manufacturer>
+  <Manufacturer id="0243" name="casenio AG"></Manufacturer>
+  <Manufacturer id="0404" name="CCC Air Inc."></Manufacturer>
+  <Manufacturer id="0246" name="CentraLite Systems Inc"></Manufacturer>
+  <Manufacturer id="033C" name="Centurylink"></Manufacturer>
+  <Manufacturer id="0359" name="Chamberlain Group"></Manufacturer>
+  <Manufacturer id="014E" name="Check-It Solutions Inc."></Manufacturer>
+  <Manufacturer id="038F" name="CHENGPUTECH "></Manufacturer>
+  <Manufacturer id="0320" name="China Security and Fire IOT Sensing CO. LTD"></Manufacturer>
+  <Manufacturer id="0116" name="Chromagic Technologies Corporation">
+    <Product config="everspring/hsp02.xml" id="0001" name="HSCP02 Motion Detector" type="0001"/>
+    <Product config="everspringct/hsm02.xml" id="0001" name="HSM02 Mini Door/Window Detector" type="0002"/>
+    <Product config="everspring/hac01.xml" id="0001" name="HAC01 Remote Button" type="0010"/>
+  </Manufacturer>
+  <Manufacturer id="0280" name="Chuango Security Technology Corporation"></Manufacturer>
+  <Manufacturer id="0082" name="Cisco Consumer Business Group"></Manufacturer>
+  <Manufacturer id="0194" name="Clare Controls"></Manufacturer>
+  <Manufacturer id="018E" name="Climax Technology, Ltd."></Manufacturer>
+  <Manufacturer id="0200" name="Cloud Media "></Manufacturer>
+  <Manufacturer id="002f" name="Color Kinetics"></Manufacturer>
+  <Manufacturer id="0329" name="COMAP"></Manufacturer>
+  <Manufacturer id="0309" name="Comfortability"></Manufacturer>
+  <Manufacturer id="0140" name="Computime"></Manufacturer>
+  <Manufacturer id="011B" name="Connected Object"></Manufacturer>
+  <Manufacturer id="0179" name="ConnectHome">
+    <Product id="0001" name="CH-201 Thermostat" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0285" name="CONNECTION TECHNOLOGY SYSTEMS"></Manufacturer>
+  <Manufacturer id="025D" name="Contec intelligent housing"></Manufacturer>
+  <Manufacturer id="023F" name="Control4 Corporation"></Manufacturer>
+  <Manufacturer id="0019" name="ControlThink"></Manufacturer>
+  <Manufacturer id="000F" name="ConvergeX"></Manufacturer>
+  <Manufacturer id="007D" name="CoolGuard"></Manufacturer>
+  <Manufacturer id="0079" name="Cooper Lighting"></Manufacturer>
+  <Manufacturer id="001a" name="Cooper Wiring Devices">
+    <Product config="cooper/RF9542-Z.xml" id="0000" name="RF9542-Z Accessory Dimmer" type="4441"/>
+    <Product config="cooper/rf9534.xml" id="0002" name="RF9534DS Wall Dimmer Module" type="4449"/>
+    <Product config="cooper/RF9540-N.xml" id="0101" name="RF9540-N All Load Dimmer Light Switch" type="4449"/>
+    <Product config="cooper/RF9505-T.xml" id="0000" name="RF9505-T Split Control Duplex Receptacle" type="5244"/>
+    <Product config="cooper/RF9501.xml" id="0000" name="RF9501 Light Switch" type="534c"/>
+    <Product config="cooper/RF9517.xml" id="0000" name="RF9517 Accessory Light Switch" type="5352"/>
+    <Product config="cooper/RFWC5.xml" id="0000" name="RFWC5/RFWDC Scene Controller" type="574d"/>
+  </Manufacturer>
+  <Manufacturer id="009d" name="Coventive Technologies Inc."></Manufacturer>
+  <Manufacturer id="0379" name="CPRO"></Manufacturer>
+  <Manufacturer id="0383" name="CribOS"></Manufacturer>
+  <Manufacturer id="0328" name="Cvnet"></Manufacturer>
+  <Manufacturer id="0014" name="Cyberhouse (GoControl)">
+    <Product config="gocontrol/GC-TBZ48L.xml" id="5436" name="GC-TBZ48L Battery Powered Z-Wave Plus Thermostat" type="5442"/>
+  </Manufacturer>
+  <Manufacturer id="0067" name="CyberTAN Technology, Inc."></Manufacturer>
+  <Manufacturer id="0030" name="Cytech Technology Pre Ltd.">
+    <Product config="comfort/ucm.xml" id="0001" name="Comfort 9000 with UCM/Zwave" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0294" name="D-3 Technology Co. Ltd"></Manufacturer>
+  <Manufacturer id="0108" name="D-Link Corporation">
+    <Product config="dlink/dch-z110.xml" id="000e" name="DCH-Z110 Door/Window 3 in 1 sensor" type="0002"/>
+    <Product config="dlink/dch-z120.xml" id="000d" name="DCH-Z120 PIR/Motion 3 in 1 sensor" type="0002"/>
+    <Product config="dlink/dch-z510.xml" id="000a" name="DCH-Z510 Siren" type="0004"/>
+  </Manufacturer>
+  <Manufacturer id="0002" name="Danfoss">
+    <Product config="danfoss/rsroom.xml" id="8010" name="RS Room Sensor" type="0003"/>
+    <Product config="danfoss/rsroom.xml" id="8001" name="RS Room Sensor" type="8003"/>
+    <Product config="danfoss/z.xml" id="0175" name="Devolo Home Control Radiator Thermostat" type="0005"/>
+    <Product config="danfoss/z.xml" id="0003" name="Z Thermostat" type="0005"/>
+    <Product config="danfoss/z.xml" id="0004" name="Z Thermostat 014G0013" type="0005"/>
+    <Product id="0001" name="RA Plus-W Radiator Thermostat" type="0064"/>
+    <Product config="danfoss/z.xml" id="a010" name="Popp Radiator Thermostat" type="0115"/>
+    <Product id="2000" name="RXZ3 RF relay Switching Unit" type="8004"/>
+    <Product config="danfoss/living.xml" id="0001" name="Living Connect Radiator Thermostat" type="8005"/>
+  </Manufacturer>
+  <Manufacturer id="018C" name="Dawon DNS"></Manufacturer>
+  <Manufacturer id="020A" name="Decoris Intelligent System Limited"></Manufacturer>
+  <Manufacturer id="013F" name="Defacontrols BV"></Manufacturer>
+  <Manufacturer id="032E" name="DEFARO"></Manufacturer>
+  <Manufacturer id="040D" name="Delaney Hardware"></Manufacturer>
+  <Manufacturer id="0031" name="Destiny Networks"></Manufacturer>
+  <Manufacturer id="0175" name="Devolo home Control">
+    <Product config="devolo/mt2646.xml" id="0011" name="Metering Plug MT02646" type="0001"/>
+    <Product config="devolo/mt02792.xml" id="0012" name="Smart Metering Plug MT02792" type="0001"/>
+    <Product config="devolo/mt02648.xml" id="000e" name="Door/Window Contact MT02648" type="0002"/>
+    <Product config="devolo/mt02755.xml" id="0020" name="Humidity Sensor MT02755" type="0002"/>
+    <Product config="devolo/mt2756.xml" id="0021" name="Flood Sensor MT02756" type="0002"/>
+    <Product config="devolo/mt2647.xml" id="000d" name="Motion Sensor MT02647" type="0002"/>
+    <Product config="devolo/rs014G0159.xml" id="8010" name="Thermostats RS 014G0159" type="0003"/>
+    <Product config="devolo/mt02758.xml" id="000a" name="Siren MT02758" type="0004"/>
+    <Product config="devolo/connectz.xml" id="0175" name="Thermostats Danfoss Connect Z" type="0005"/>
+    <Product config="devolo/mt2652.xml" id="0101" name="Scene Switch MT2652" type="0100"/>
+    <Product config="devolo/mt2653.xml" id="0102" name="Key MT2653" type="0100"/>
+    <Product config="devolo/mt2651.xml" id="04a4" name="Smoke Detector MT2651" type="2004"/>
+    <Product config="devolo/mt2651.xml" id="2004" name="Smoke Detector MT2651" type="2004"/>
+  </Manufacturer>
+  <Manufacturer id="0103" name="Diehl AKO">
+    <Product config="diehlcontrols/766366.xml" id="0002" name="Dimmer Actuator" type="0002"/>
+  </Manufacturer>
+  <Manufacturer id="0032" name="Digital 5 Inc."></Manufacturer>
+  <Manufacturer id="035D" name="Digital Watchdog"></Manufacturer>
+  <Manufacturer id="0228" name="DigitalZone"></Manufacturer>
+  <Manufacturer id="0127" name="Digital Monitoring Products"></Manufacturer>
+  <Manufacturer id="0177" name="Domino sistemi d.o.o."></Manufacturer>
+  <Manufacturer id="020e" name="Domitech">
+    <Product config="domitech/ze27eu.xml" id="3134" name="Smart LED Retrofit Kit ZE27EU" type="4c42"/>
+    <Product config="domitech/zb22uk.xml" id="3135" name="Smart LED Light Bulb ZB22UK" type="4c42"/>
+  </Manufacturer>
+  <Manufacturer id="021c" name="Domux Shenzhen iSurpass Technology Co.">
+    <Product config="domux/DX1DS-Z.xml" id="0168" name="Door Sensor DX1DS-Z" type="0168"/>
+    <Product config="domux/DX1MS-Z.xml" id="1000" name="Motion Sensor DX1MS-Z" type="8001"/>
+    <Product config="domux/DX1SA-Z.xml" id="1000" name="Smart Smoke Sensor DX1SA-Z" type="8002"/>
+    <Product config="domux/DX1CG-Z.xml" id="1000" name="Combustible Gas Sensor DX1CG-Z" type="8003"/>
+    <Product config="domux/DX1WL-Z.xml" id="1000" name="Water Leakage Sensor DX1WL-Z" type="8004"/>
+    <Product config="domux/DX1CA-Z.xml" id="1000" name="CO Sensor DX1CA-Z" type="8005"/>
+    <Product config="domux/DX2SK-Z.xml" id="1000" name="Smart Metering Plug DX2SK-Z" type="8006"/>
+    <Product config="domux/DX1HT-Z.xml" id="1000" name="Temperature Humidity Sensor DX1HT-Z" type="8007"/>
+    <Product config="domux/DX2SK-Z.xml" id="1000" name="Smart Plug DX2SK-Z" type="8008"/>
+  </Manufacturer>
+  <Manufacturer id="020C" name="Dongguan Zhou Da Electronics Co.,Ltd"></Manufacturer>
+  <Manufacturer id="017D" name="DRACOR Inc."></Manufacturer>
+  <Manufacturer id="0184" name="Dragon Tech">
+    <Product config="dragontech/wd-100.xml" id="3034" name="In Wall Dimmer" type="4447"/>
+  </Manufacturer>
+  <Manufacturer id="0223" name="DTV Research Unipessoal, Lda"></Manufacturer>
+  <Manufacturer id="0272" name="Dune-HD"></Manufacturer>
+  <Manufacturer id="0334" name="Dusun Electron Ltd."></Manufacturer>
+  <Manufacturer id="031B" name="DVACO GROUP"></Manufacturer>
+  <Manufacturer id="0132" name="DynaQuip Controls"></Manufacturer>
+  <Manufacturer id="010D" name="e-Home AUTOMATION"></Manufacturer>
+  <Manufacturer id="0247" name="EASY SAVER Co. Inc"></Manufacturer>
+  <Manufacturer id="001A" name="Eaton"></Manufacturer>
+  <Manufacturer id="017C" name="EbV"></Manufacturer>
+  <Manufacturer id="016B" name="Echostar"></Manufacturer>
+  <Manufacturer id="028F" name="Eco Automation"></Manufacturer>
+  <Manufacturer id="037C" name="Eco Life Engineering Co. Ltd."></Manufacturer>
+  <Manufacturer id="014a" name="Ecolink">
+    <Product config="ecolink/sensor.xml" id="0001" name="Motion Sensor" type="0001"/>
+    <Product config="ecolink/doorwindow.xml" id="0002" name="Door/Window Sensor" type="0001"/>
+    <Product config="ecolink/tiltsensor.xml" id="0003" name="Tilt Sensor" type="0001"/>
+    <Product config="ecolink/motion.xml" id="0001" name="Motion Detector" type="0004"/>
+    <Product config="ecolink/doorwindow.xml" id="0002" name="Door/Window Sensor" type="0004"/>
+    <Product config="ecolink/tiltsensor.xml" id="0003" name="Tilt Sensor" type="0004"/>
+    <Product config="ecolink/firefighter.xml" id="000f" name="FireFighter" type="0005"/>
+  </Manufacturer>
+  <Manufacturer id="0157" name="EcoNet Controls"></Manufacturer>
+  <Manufacturer id="039D" name="ECS"></Manufacturer>
+  <Manufacturer id="031F" name="Eelectron SpA"></Manufacturer>
+  <Manufacturer id="026B" name="Ei Electronics"></Manufacturer>
+  <Manufacturer id="0087" name="Eka Systems"></Manufacturer>
+  <Manufacturer id="0034" name="El-Gev Electronics LTD"></Manufacturer>
+  <Manufacturer id="0389" name="Elear Solutions Tech Pvt. Ltd."></Manufacturer>
+  <Manufacturer id="0033" name="Electronic Solutions Inc">
+    <Product config="electronicsolutions/dbmz.xml" id="0002" name="DBMZ Motor Control" type="5250"/>
+    <Product config="electronicsolutions/dbmz.xml" id="3032" name="DBMZ Motor Control" type="5250"/>
+  </Manufacturer>
+  <Manufacturer id="021f" name="Elexa Consumer Products Inc. (Dome)">
+    <Product config="dome/0002.xml" id="0002" name="Water Shut-Off Valve" type="0003"/>
+    <Product config="dome/0083.xml" id="0083" name="Motion Detector" type="0003"/>
+    <Product config="dome/0085.xml" id="0085" name="Leak Sensor" type="0003"/>
+    <Product config="dome/0086.xml" id="0086" name="Mouser" type="0003"/>
+    <Product config="dome/0087.xml" id="0087" name="On/Off Plug-In Switch" type="0003"/>
+    <Product config="dome/0088.xml" id="0088" name="Siren" type="0003"/>
+    <Product config="dome/0101.xml" id="0101" name="Door/Window Sensor" type="0003"/>
+    <Product config="dome/0201.xml" id="0201" name="Door/Window Sensor Pro" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="001b" name="ELK Products"></Manufacturer>
+  <Manufacturer id="0393" name="Embedded Data Systems"></Manufacturer>
+  <Manufacturer id="020B" name="Embedded System Design Limited"></Manufacturer>
+  <Manufacturer id="0035" name="Embedit A/S"></Manufacturer>
+  <Manufacturer id="0284" name="Empers Tech Co., Ltd."></Manufacturer>
+  <Manufacturer id="0336" name="EMT Controls"></Manufacturer>
+  <Manufacturer id="014d" name="Enblink">
+    <Product config="enblink/ss201-us-w_1308.xml" id="0001" name="SS201-US-W Z-Wave Controller" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0219" name="Enwox Technologies s.r.o."></Manufacturer>
+  <Manufacturer id="006F" name="Erone">
+    <Product id="0001" name="Door/Window Sensor" type="0102"/>
+    <Product id="0001" name="HM-AM001 Plugin Appliance Module" type="0104"/>
+  </Manufacturer>
+  <Manufacturer id="0160" name="Essence Security"></Manufacturer>
+  <Manufacturer id="029B" name="ESSENTIAL TECHNOLOGIES INC."></Manufacturer>
+  <Manufacturer id="0148" name="EUROtronic">
+    <Product config="eurotronic/eur_stellaz.xml" id="0001" name="EUR_STELLAZ Wall Radiator Thermostat Valve Control" type="0001"/>
+    <Product config="eurotronic/eur_cometz.xml" id="0001" name="EUR_COMETZ Wall Radiator Thermostat Valve Control" type="0002"/>
+    <Product config="eurotronic/eur_spiritz.xml" id="0001" name="EUR_SPIRITZ Wall Radiator Thermostat" type="0003"/>
+    <Product config="eurotronic/eur_spiritz.xml" id="0002" name="EUR_SPIRITZ Wall Radiator Thermostat" type="0003"/>
+    <Product config="eurotronic/eur_spiritz.xml" id="0003" name="EUR_SPIRITZ Wall Radiator Thermostat" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="0128" name="Eneco">
+    <Product id="0000" name="ED2.0 Meter Adapter" type="0000"/>
+    <Product id="0000" name="ED2.0 Display" type="0128"/>
+  </Manufacturer>
+  <Manufacturer id="011a" name="Enerwave">
+    <Product config="enerwave/zwn-bpc.xml" id="0901" name="ZWN-BPC Ceiling Mounted PIR Motion Sensor" type="0601"/>
+    <Product config="enerwave/zwn-sc7.xml" id="0b03" name="ZWN-SC7 7-Button Scene Controller" type="0801"/>
+    <Product config="enerwave/zw15s.xml" id="0102" name="ZW15S 15A On/Off Switch" type="0101"/>
+    <Product config="enerwave/zw20r.xml" id="0603" name="ZW20R 20A TR Duplex Receptacle" type="0101"/>
+    <Product config="enerwave/zwnrsm1plus.xml" id="0605" name="ZWN-RSM1 PLUS—Smart Single Relay Switch Module" type="0111"/>
+    <!--<Product type="0111" id="0605" name="ZWN-RSM2-PLUS Smart Single Relay Switch Module" config="enerwave/zwnrsm2plus.xml"/>-->
+    <Product config="enerwave/zw20rm.xml" id="0101" name="ZW20RM 20A TR Smart Meter Duplex Receptacle" type="0111"/>
+    <Product config="enerwave/zw500d.xml" id="0201" name="ZW500D 500W In-Wall Preset Dimmer Switch" type="0102"/>
+    <Product config="enerwave/zw15rmplus.xml" id="0105" name="ZW15RM Plus 15A TR Smart Meter Duplex Receptacle" type="0111"/>
+  </Manufacturer>
+  <Manufacturer id="0060" name="Everspring">
+    <Product config="everspring/hsp02.xml" id="0001" name="HSP02 Motion Detector" type="0001"/>
+    <Product config="everspring/sp814.xml" id="0002" name="SP814 Motion Detector" type="0001"/>
+    <Product config="everspring/sp815.xml" id="0004" name="SP815 Pet Immune Pir Motion Detector" type="0001"/>
+    <Product config="everspring/sp816.xml" id="0005" name="SP816 Outdoor Motion Detector" type="0001"/>
+    <Product config="everspring/sm103.xml" id="0001" name="SM103 Door/Window Sensor" type="0002"/>
+    <Product config="everspring/lptdm1u.xml" id="0001" name="AD142 Plug-in Dimmer Module" type="0003"/>
+    <Product config="everspring/ad147.xml" id="0003" name="AD147 Plug-in Dimmer Module" type="0003"/>
+    <Product config="everspring/ad146.xml" id="0002" name="AD146 In wall Dimmer Module" type="0003"/>
+    <Product config="everspring/an157.xml" id="0001" name="AN157 Plug-in Appliance Module" type="0004"/>
+    <Product config="everspring/an158.xml" id="0002" name="AN158 Plug-in Meter Appliance Module" type="0004"/>
+    <Product config="everspring/an163.xml" id="0005" name="AN163 Plug-in On/Off with meter function" type="0004"/>
+    <Product config="everspring/an181.xml" id="0006" name="AN181 Miniplug On/Off with meter function" type="0004"/>
+    <Product config="everspring/an180.xml" id="0007" name="AN180 Plug-in ON/OFF Module" type="0004"/>
+    <Product config="everspring/an179.xml" id="0008" name="AN179 In wall ON/OFF Module" type="0004"/>
+    <Product config="everspring/st814.xml" id="0001" name="ST814 Temperature and Humidity Sensor" type="0006"/>
+    <Product config="everspring/st815.xml" id="0001" name="ST815 Illumination Sensor" type="0007"/>
+    <Product config="everspring/tse03.xml" id="0001" name="TSE03 Door Bell" type="0009"/>
+    <Product config="everspring/st812.xml" id="0001" name="ST812 Flood Detector" type="000b"/>
+    <Product config="everspring/se812.xml" id="0001" name="SE812 Siren" type="000c"/>
+    <Product config="everspring/sf812.xml" id="0001" name="SF812 Smoke Alarm" type="000d"/>
+    <Product config="everspring/hac01.xml" id="0001" name="HAC01 In-wall Remote Module" type="0010"/>
+    <Product config="everspring/han01.xml" id="0001" name="HAN01 In-wall Switch Module" type="0011"/>
+    <Product config="everspring/han02-1.xml" id="0002" name="HAN02 In-wall Switch Module" type="0011"/>
+    <Product config="everspring/sp103.xml" id="0001" name="SP103 PIR Motion Sensor" type="0101"/>
+    <Product config="everspring/an145.xml" id="0001" name="AN145 Lamp Screw In Module" type="0104"/>
+    <Product config="everspring/sm103.xml" id="0001" name="SM103 Door/Window Sensor" type="0202"/>
+  </Manufacturer>
+  <Manufacturer id="0113" name="Evolve Guest Controls">
+    <Product config="evolve/lrm-as.xml" id="3034" name="LRM-AS Wall Dimmer 500W" type="4457"/>
+    <Product config="evolve/lfm-20.xml" id="3133" name="LFM-20 Fixture Module" type="5246"/>
+    <Product config="evolve/lsm-15.xml" id="3533" name="LSM-15 Wall Switch" type="5257"/>
+    <Product config="evolve/ltm-5.xml" id="3033" name="LTM-5 Wall Switch Transmitter" type="5457"/>
+  </Manufacturer>
+  <Manufacturer id="036F" name="Evolvere SpA"></Manufacturer>
+  <Manufacturer id="0036" name="Exceptional Innovations"></Manufacturer>
+  <Manufacturer id="0004" name="Exhausto"></Manufacturer>
+  <Manufacturer id="009f" name="Exigent"></Manufacturer>
+  <Manufacturer id="0233" name="eZEX Corporation"></Manufacturer>
+  <Manufacturer id="0085" name="Fakro">
+    <Product config="fakro/zwp10.xml" id="0001" name="ZWP10 Remote Controller" type="0001"/>
+    <Product config="fakro/arz.xml" id="0002" name="ARZ Roof Window Roller Shutter" type="0002"/>
+    <Product config="fakro/zws230.xml" id="0005" name="ZWS230 Chain actuator 230VAC" type="0002"/>
+    <Product config="fakro/zws12.xml" id="0001" name="ZWS12 Chain actuator 12VDC" type="0003"/>
+    <Product config="fakro/zws230.xml" id="0002" name="ZWS230 Chain actuator 230VAC" type="0003"/>
+    <Product config="fakro/zwrs.xml" id="0001" name="ZWRS Roller Shutter FLiRS module" type="0016"/>
+  </Manufacturer>
+  <Manufacturer id="016a" name="Fantem (Oomi)">
+    <!-- EU-market products seems to start with type prefix "00" -->
 		<!-- US-market products start with type prefix "01" -->
 		<!-- AU-market products start with type prefix "02" -->
 		<!-- CN-market products start with type prefix "1D" -->
-		<Product type="0002" id="0064" name="FT100 MultiSensor 6" config="oomi/ft100.xml" />
-		<Product type="0102" id="0064" name="FT100 MultiSensor 6" config="oomi/ft100.xml" />
-		<Product type="0202" id="0064" name="FT100 MultiSensor 6" config="oomi/ft100.xml" />
-		<Product type="1D02" id="0064" name="FT100 MultiSensor 6" config="oomi/ft100.xml" />
-		<Product type="0103" id="006F" name="FT111 In Wall Dimmer" config="oomi/ft111.xml" />
-		<Product type="0203" id="006F" name="FT111 In Wall Dimmer" config="oomi/ft111.xml" />
-		<Product type="1D03" id="006F" name="FT111 In Wall Dimmer" config="oomi/ft111.xml" />
-	</Manufacturer>
-	<Manufacturer id="010f" name="FIBARO System">
-		<Product type="0501" id="0101" name="FGBS001 Universal Binary Sensor" config="fibaro/fgbs001.xml" />
-		<Product type="0501" id="0102" name="FGBS001 Universal Binary Sensor" config="fibaro/fgbs001.xml" />
-		<Product type="0501" id="0109" name="FGBS001 Universal Binary Sensor" config="fibaro/fgbs001.xml" />
-		<Product type="0501" id="1002" name="FGBS001 Universal Binary Sensor" config="fibaro/fgbs001.xml" />
-		<Product type="0501" id="3002" name="FGBS001 Universal Binary Sensor" config="fibaro/fgbs001.xml" />
-		<Product type="0501" id="4002" name="FGBS001 Universal Binary Sensor" config="fibaro/fgbs001.xml" />
-		<Product type="0100" id="0104" name="FGD211 Universal Dimmer 500W" config="fibaro/fgd211.xml" />
-		<Product type="0100" id="0106" name="FGD211 Universal Dimmer 500W" config="fibaro/fgd211.xml" />
-		<Product type="0100" id="0107" name="FGD211 Universal Dimmer 500W" config="fibaro/fgd211.xml" />
-		<Product type="0100" id="0109" name="FGD211 Universal Dimmer 500W" config="fibaro/fgd211.xml" />
-		<Product type="0100" id="100a" name="FGD211 Universal Dimmer 500W" config="fibaro/fgd211.xml" />
-		<Product type="0100" id="300a" name="FGD211 Universal Dimmer 500W" config="fibaro/fgd211.xml" />
-		<Product type="0102" id="1000" name="FGD212 Dimmer 2" config="fibaro/fgd212.xml" />
-		<Product type="0102" id="2000" name="FGD212 Dimmer 2" config="fibaro/fgd212.xml"/>
-		<Product type="0102" id="3000" name="FGD212 Dimmer 2" config="fibaro/fgd212.xml" />
-		<Product type="0102" id="4000" name="FGD212 Dimmer 2" config="fibaro/fgd212.xml" />
-		<Product type="0700" id="1000" name="FGK101 Door Opening Sensor" config="fibaro/fgk001.xml" />
-		<Product type="0700" id="2000" name="FGK10x Door Opening Sensor" config="fibaro/fgk001.xml" />
-		<Product type="0700" id="3000" name="FGK101 Door Opening Sensor" config="fibaro/fgk001.xml" />
-		<Product type="0700" id="4000" name="FGK101 Door Opening Sensor" config="fibaro/fgk001.xml" />
-		<Product type="0701" id="1001" name="FGK10x Door Opening Sensor" config="fibaro/fgk10x.xml" />
-		<Product type="0701" id="2001" name="FGK10x Door Opening Sensor" config="fibaro/fgk10x.xml" />
-		<Product type="0701" id="3001" name="FGK10x Door Opening Sensor" config="fibaro/fgk10x.xml" />
-		<Product type="0702" id="1000" name="FGDW002 Door Opening Sensor 2" config="fibaro/fgdw2.xml" />
-		<Product type="0300" id="0104" name="FGR221 Roller Shutter Controller" config="fibaro/fgr221.xml"/>
-		<Product type="0300" id="100a" name="FGR221 Roller Shutter Controller" config="fibaro/fgr221.xml"/>
-		<Product type="0300" id="0106" name="FGR221 Roller Shutter Controller" config="fibaro/fgr221.xml"/>
-		<Product type="0300" id="0107" name="FGR221 Roller Shutter Controller" config="fibaro/fgr221.xml"/>
-		<Product type="0300" id="0109" name="FGR221 Roller Shutter Controller" config="fibaro/fgr221.xml"/>
-		<Product type="0301" id="1001" name="FGRM222 Roller Shutter Controller 2" config="fibaro/fgrm222.xml"/>
-		<Product type="0302" id="1000" name="FGRM222 Roller Shutter Controller 2" config="fibaro/fgrm222.xml"/>
-		<Product type="0302" id="4000" name="FGRM222 Roller Shutter Controller 2" config="fibaro/fgrm222.xml"/>
-		<Product type="0303" id="1000" name="FGRM223 Roller Shutter Controller 3" config="fibaro/fgr223.xml"/>
-		<Product type="0400" id="0104" name="FGS211 Switch 3kW" config="fibaro/fgs211.xml" />
-		<Product type="0400" id="0105" name="FGS211 Switch 3kW" config="fibaro/fgs211.xml" />
-		<Product type="0400" id="0106" name="FGS211 Switch 3kW" config="fibaro/fgs211.xml" />
-		<Product type="0400" id="0107" name="FGS211 Switch 3kW" config="fibaro/fgs211.xml" />
-		<Product type="0400" id="0108" name="FGS211 Switch 3kW" config="fibaro/fgs211.xml" />
-		<Product type="0400" id="0109" name="FGS211 Switch 3kW" config="fibaro/fgs211.xml" />
-		<Product type="0400" id="100a" name="FGS211 Switch 3kW" config="fibaro/fgs211.xml" />
-		<Product type="0400" id="400a" name="FGS211 Switch 3kW" config="fibaro/fgs211.xml" />
-		<Product type="0402" id="1002" name="FGS212 Switch 3kW" config="fibaro/fgs212.xml" />
-		<Product type="0402" id="3002" name="FGS212 Switch 3kW" config="fibaro/fgs212.xml" />
-		<Product type="0402" id="4002" name="FGS212 Switch 3kW" config="fibaro/fgs212.xml" />
-		<Product type="0403" id="1000" name="FGS213 Switch" config="fibaro/fgs213.xml"/>
-		<Product type="0403" id="2000" name="FGS213 Switch" config="fibaro/fgs213.xml"/>
-		<Product type="0403" id="4000" name="FGS213 Switch" config="fibaro/fgs213.xml"/>
-		<Product type="0200" id="0104" name="FGS221 Double Relay Switch 2x1.5kW" config="fibaro/fgs221.xml" />
-		<Product type="0200" id="0105" name="FGS221 Double Relay Switch 2x1.5kW" config="fibaro/fgs221.xml" />
-		<Product type="0200" id="0106" name="FGS221 Double Relay Switch 2x1.5kW" config="fibaro/fgs221.xml" />
-		<Product type="0200" id="0107" name="FGS221 Double Relay Switch 2x1.5kW" config="fibaro/fgs221.xml" />
-		<Product type="0200" id="0109" name="FGS221 Double Relay Switch 2x1.5kW" config="fibaro/fgs221.xml" />
-		<Product type="0200" id="100a" name="FGS221 Double Relay Switch 2x1.5kW" config="fibaro/fgs221.xml" />
-		<Product type="0200" id="300a" name="FGS221 Double Relay Switch 2x1.5kW" config="fibaro/fgs221.xml" />
-		<Product type="0200" id="400a" name="FGS221 Double Relay Switch 2x1.5kW" config="fibaro/fgs221.xml" />
-		<Product type="0202" id="1002" name="FGS222 Double Relay Switch 2x1.5kW" config="fibaro/fgs222.xml" />
-		<Product type="0202" id="3002" name="FGS222 Double Relay Switch 2x1.5kW" config="fibaro/fgs222.xml" />
-		<Product type="0203" id="1000" name="FGS223 Double Relay" config="fibaro/fgs223.xml"/>
-		<Product type="0203" id="2000" name="FGS223 Double Relay" config="fibaro/fgs223.xml"/>
-		<Product type="0203" id="3000" name="FGS223 Double Relay" config="fibaro/fgs223.xml"/>
-		<Product type="0303" id="1000" name="FGR223 Roller Shutter Controller 3" config="fibaro/fgr223.xml"/>
-		<Product type="0600" id="1000" name="FGWPE/F Wall Plug" config="fibaro/fgwpe.xml" />
-		<Product type="0200" id="1000" name="FGWPE/F Wall Plug" config="fibaro/fgwpe.xml"/>
-		<Product type="0602" id="1001" name="FGWPE/F Wall Plug Gen5" config="fibaro/fgwpfzw5.xml" />
-		<Product type="0602" id="1003" name="FGWPE/F Wall Plug Gen5" config="fibaro/fgwpfzw5.xml" />
-		<Product type="0800" id="1001" name="FGMS001 Motion Sensor" config="fibaro/fgms.xml" />
-		<Product type="0800" id="2001" name="FGMS001 Motion Sensor" config="fibaro/fgms.xml" />
-		<Product type="0800" id="3001" name="FGMS001 Motion Sensor" config="fibaro/fgms.xml" />
-		<Product type="0800" id="4001" name="FGMS001 Motion Sensor" config="fibaro/fgms.xml" />
-		<!--<Product type="0801" id="1001" name="FGMS001 Motion Sensor" config="fibaro/fgms.xml" />-->
-		<Product type="0801" id="1001" name="FGMS001-ZW5 Motion Sensor" config="fibaro/fgmszw5.xml"/>
-		<Product type="0801" id="1002" name="FGMS001-ZW5 Motion Sensor" config="fibaro/fgmszw5.xml"/>
-		<Product type="0801" id="2001" name="FGMS001-ZW5 Motion Sensor" config="fibaro/fgmszw5.xml"/>
-		<Product type="0801" id="3001" name="FGMS001-ZW5 Motion Sensor" config="fibaro/fgmszw5.xml"/>
-		<Product type="0b00" id="3001" name="FGFS101 Flood Sensor" config="fibaro/fgfs101.xml" />
-		<Product type="0b00" id="4001" name="FGFS101 Flood Sensor" config="fibaro/fgfs101.xml" />
-		<Product type="0b00" id="1001" name="FGFS101 Flood Sensor" config="fibaro/fgfs101.xml" />
-		<Product type="0b00" id="2001" name="FGFS101 Flood Sensor" config="fibaro/fgfs101.xml" />
-		<Product type="0b00" id="9e00" name="FGFS101 Flood Sensor" config="fibaro/fgfs101.xml" />
-		<Product type="0b01" id="1002" name="FGFS101 Zwave+ Flood Sensor" config="fibaro/fgfs101zw5.xml" />
-		<Product type="0b01" id="1003" name="FGFS101 Zwave+ Flood Sensor" config="fibaro/fgfs101zw5.xml" />
-		<Product type="0b01" id="2002" name="FGFS101 Zwave+ Flood Sensor" config="fibaro/fgfs101zw5.xml" />
-		<Product type="0900" id="1000" name="FGRGBWM441 RGBW Controller" config="fibaro/fgrgbwm441.xml" />
-		<Product type="0900" id="2000" name="FGRGBWM441 RGBW Controller" config="fibaro/fgrgbwm441.xml"/>
-		<Product type="0900" id="3000" name="FGRGBWM441 RGBW Controller" config="fibaro/fgrgbwm441.xml"/>
-		<Product type="0900" id="4000" name="FGRGBWM441 RGBW Controller" config="fibaro/fgrgbwm441.xml" />
-		<Product type="0c00" id="1000" name="FGSS101 Smoke Sensor" config="fibaro/fgss101.xml" />
-		<Product type="0c02" id="1002" name="FGSD002 Smoke Sensor" config="fibaro/fgsd002.xml" />
-		<Product type="0c02" id="1003" name="FGSD002 Smoke Sensor" config="fibaro/fgsd002.xml" />
-		<Product type="0d01" id="1000" name="FGGC001 Swipe" config="fibaro/fggc001.xml" />
-		<Product type="0d01" id="2000" name="FGGC001 Swipe" config="fibaro/fggc001.xml"/>
-		<Product type="0f01" id="1000" name="FGPB101 Button" config="fibaro/fgpb101.xml" />
-		<Product type="0f01" id="2000" name="FGPB101 Button" config="fibaro/fgpb101.xml" />
-		<Product type="0f01" id="3000" name="FGPB101 Button" config="fibaro/fgpb101.xml" />
-		<Product type="1001" id="1000" name="FGKF601 Keyfob" config="fibaro/fgkf601.xml" />
-		<Product type="1001" id="2000" name="FGKF601 Keyfob" config="fibaro/fgkf601.xml" />
-		<Product type="1201" id="1000" name="FGSD001 CO Sensor" config="fibaro/fgcd001.xml" />
-		<Product type="1201" id="1001" name="FGSD001 CO Sensor" config="fibaro/fgcd001.xml" />
-		<Product type="1301" id="1000" name="FGT001 Heat Controller" config="fibaro/fgt001.xml"/>
-		<Product type="1701" id="2000" name="FGWPG111 US Wall Plug" config="fibaro/fgwpg111.xml"/>
-		<Product type="1801" id="1000" name="FGWPG111 UK Wall Plug" config="fibaro/fgwpg111.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0295" name="fifthplay nv">
-	</Manufacturer>
-	<Manufacturer id="0138" name="First Alert (BRK Brands Inc)">
-		<Product type="0001" id="0002" name="ZCombo Smoke and Carbon Monoxide Detector"  config="firstalert/zcombo.xml"/>
-	</Manufacturer>
-	<Manufacturer id="002c" name="Flex Automation">
-	</Manufacturer>
-	<Manufacturer id="004F" name="Flex Automation">
-	</Manufacturer>
-	<Manufacturer id="018D" name="Flextronics">
-	</Manufacturer>
-	<Manufacturer id="0024" name="Flue Sentinel">
-	</Manufacturer>
-	<Manufacturer id="0037" name="Foard Systems">
-	</Manufacturer>
-	<Manufacturer id="018F" name="Focal Point Limited">
-	</Manufacturer>
-	<Manufacturer id="0137" name="FollowGood Technology Company">
-		<Product type="3001" id="0002" name="SWZ-1002 Binary Power Switch"/>
-	</Manufacturer>
-	<Manufacturer id="0207" name="Forest Group Nederland B.V">
-		<Product type="0027" id="0100" name="Shuttle L Z-Wave" config="forest/fs2z5232000002.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0084" name="FortrezZ">
-		<Product type="0013" id="0210" name="WWA-01AA - Wireless Water and Freeze Alarm" />
-		<Product type="0021" id="010a" name="WWA-02 Water and Temperature Alarm" config="fortrezz/wwa02.xml"/>
-		<Product type="0023" id="0109" name="WWA-02 Water and Temperature Alarm" config="fortrezz/wwa02.xml"/>
-		<Product type="0053" id="0216" name="WWA-01AA Wireless Water and Freeze Alarm" />
-		<Product type="0213" id="020c" name="WV-01 Automated Water Shut-Off Valve" config="fortrezz/wv01.xml"/>
-		<Product type="0241" id="0300" name="WV-01 Automated Water Shut-Off Valve" config="fortrezz/wv01.xml"/>
-		<Product type="0243" id="0216" name="WV-01 Automated Water Shut-Off Valve" config="fortrezz/wv01.xml"/>
-		<Product type="0311" id="0109" name="SSA1 / SSA2 - Siren/Strobe Light Alarm" config="fortrezz/ssa2.xml"/>
-		<Product type="0311" id="010b" name="SSA1 / SSA2 - Siren/Strobe Light Alarm" config="fortrezz/ssa2.xml"/>
-		<Product type="0313" id="0107" name="SSA1 / SSA2 - Siren/Strobe Light Alarm" config="fortrezz/ssa2.xml"/>
-		<Product type="0313" id="010b" name="SSA2 - Siren/Strobe Light Alarm" config="fortrezz/ssa2.xml"/>
-		<Product type="0331" id="010b" name="SSA3 - Siren/Strobe Light Alarm" config="fortrezz/ssa3.xml"/>
-		<Product type="0341" id="0205" name="SSA3 - Siren/Strobe Light Alarm" config="fortrezz/ssa3.xml"/>
-		<Product type="0343" id="0205" name="SSA3 - Siren/Strobe Light Alarm" config="fortrezz/ssa3.xml"/>
-		<Product type="0451" id="0111" name="MIMOlite" config="fortrezz/mimolite.xml"/>
-		<Product type="0453" id="0110" name="MIMOlite" config="fortrezz/mimolite.xml"/>
-		<Product type="0453" id="0111" name="MIMOlite" config="fortrezz/mimolite.xml"/>
-		<Product type="0463" id="0204" name="MIMO2+" config="fortrezz/mimo2plus.xml"/>
-		<Product type="0463" id="0208" name="MIMO2+" config="fortrezz/mimo2plus.xml"/>
-		<Product type="0473" id="0110" name="FMI Flow Meter" config="fortrezz/fmi.xml"/>
-		<Product type="0513" id="0111" name="GDC1 Siren/Strobe Light Alarm"/>
-	</Manufacturer>
-	<Manufacturer id="011D" name="Foxconn">
-	</Manufacturer>
-	<Manufacturer id="039C" name="Foxconn Industrial Internet">
-	</Manufacturer>
-	<Manufacturer id="0110" name="Frostdale">
-		<Product type="2411" id="0001" name="Nanogrid: FDN2nxx light switch - where n is 1, 2, 3 or 4 buttons"/>
-		<Product type="7333" id="0031" name="Nanogrid: FDN2nxx light switch - where n is 1, 2, 3 or 4 buttons" config="frostdale/fdn2nxx.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0305" name="Future Home AS">
-	</Manufacturer>
-	<Manufacturer id="033E" name="GE">
-	</Manufacturer>
-	<Manufacturer id="0063" name="GE (Jasco Products)">
-		<Product type="4450" id="3030" name="45602 Lamp Dimmer Module" config="ge/dimmer_module.xml"/>
-		<Product type="4457" id="3230" name="45606 2-Way Dimmer Switch" config="ge/dimmer.xml"/>
-		<Product type="4944" id="3031" name="12724 3-Way Dimmer Switch" config="ge/12724-dimmer.xml"/>
-		<Product type="4944" id="3033" name="12729 3-Way Dimmer Switch" config="ge/12724-dimmer.xml"/>
-		<Product type="4944" id="3034" name="12730 Fan Control Switch" config="ge/12724-dimmer.xml"/>
-		<Product type="4944" id="3131" name="14287 Fan Control Switch" config="ge/12724-dimmer.xml"/>
-		<Product type="4952" id="3134" name="14288 In-Wall Tamper Resistant Smart Outlet" config="ge/14288-outlet.xml"/>
-		<Product type="4944" id="3038" name="14294 In-Wall Smart Dimmer" config="ge/14294-dimmer.xml"/>
-		<Product type="4944" id="3039" name="14299 In-Wall 1000W Smart Dimmer" config="ge/14294-dimmer.xml"/>
-		<Product type="4944" id="3130" name="14295 In-Wall Smart Toggle Dimmer" config="ge/14295-dimmer-toggle.xml"/>
-		<Product type="494d" id="3032" name="26931 Smart Motion Switch" config="ge/26931-motion-switch.xml"/>
-		<Product type="494d" id="3034" name="26933 Smart Motion Dimmer" config="ge/26933-motion-dimmer.xml"/>
-		<Product type="4952" id="3036" name="14291 In-Wall Smart Switch" config="ge/14291-switch.xml"/>
-		<Product type="4952" id="3037" name="14292 In-Wall Smart Toggle Switch" config="ge/14292-toggle-switch.xml"/>
-		<Product type="4952" id="3038" name="14293 In-Wall Smart Toggle Switch" config="ge/14292-toggle-switch.xml"/>
-		<Product type="5250" id="3030" name="45603 Plugin Appliance Module"/>
-		<Product type="5250" id="3130" name="45604 Outdoor Module"/>
-		<Product type="4f50" id="3031" name="12720 Outdoor Smart Switch"/>
-		<Product type="4f50" id="3032" name="14284 Outdoor Smart Switch"/>
-		<Product type="5252" id="3530" name="45605 Duplex Receptacle" config="ge/receptacle.xml"/>
-		<Product type="5044" id="3038" name="28167/ZW3104 Plug-In Smart Dimmer (Single Plug)" config="ge/28167-plugin-dimmer.xml"/>
-		<Product type="4952" id="3133" name="14288 Duplex Receptacle" config="ge/receptacle.xml"/>
-		<Product type="5257" id="3533" name="45609 On/Off Relay Switch" config="ge/relay.xml"/>
-		<Product type="4457" id="3033" name="45613 3-Way Dimmer Switch" config="ge/dimmer.xml"/>
-		<Product type="4952" id="3031" name="12721 Lighting Control Duplex Receptacle" config="ge/receptacle.xml"/>
-		<Product type="4952" id="3032" name="12722 On/Off Relay Switch" config="ge/relay.xml"/>
-		<Product type="4952" id="3033" name="12727 In-Wall Smart Switch (Toggle)"/>
-		<Product type="4953" id="3032" name="32563 Hinge Pin Smart Door Sensor" config="ge/hinge-pin.xml"/>
-		<Product type="5044" id="3031" name="12718 Plug-In Two-Outlet Smart Dimmer" config="ge/dimmer_module.xml"/>
-		<Product type="5052" id="3031" name="12719 Plug-in Smart Switch" config="ge/12719-plugin-switch.xml"/>
-		<Product type="5052" id="3033" name="14282 Plug-In Two-Outlet Smart Switch" config="ge/14282-plugin-switch.xml"/>
-		<Product type="5052" id="3038" name="28169 Plug-In One-Outlet Smart Switch" config="ge/28169-plugin-switch.xml"/>
-		<Product type="6363" id="3533" name="ZW4001 In-Wall Decora Style On/Off Relay Switch" config="ge/zw4001-switch.xml"/>
-		<Product type="4c42" id="3031" name="ZW7101 Smart LED Light Bulb ZE26I" config="ge/ze26i.xml"/>
-		<Product type="4953" id="3133" name="ZW6302 Portable Smart Motion Sensor" config="ge/zw6302.xml"/>
-		<Product type="4953" id="3134" name="ZW6302 Portable Smart Motion Sensor" config="ge/zw6302.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0408" name="Gerber Technology">
-	</Manufacturer>
-	<Manufacturer id="025A" name="GES">
-	</Manufacturer>
-	<Manufacturer id="022B" name="GKB Security Corporation">
-	</Manufacturer>
-	<Manufacturer id="018A" name="Globalchina-Tech">
-	</Manufacturer>
-	<Manufacturer id="0076" name="Goggin Research">
-	</Manufacturer>
-	<Manufacturer id="0068" name="Good Way Technology Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0099" name="GreenWave Reality Inc">
-		<Product type="0001" id="0002" name="One Gateway"/>
-		<Product type="0002" id="0002" name="PowerNode 1 port" config="greenwave/powernode1.xml"/>
-		<Product type="0003" id="0004" name="PowerNode 6 port" config="greenwave/powernode6.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0401" name="Grenton Sp. z o.o.">
-	</Manufacturer>
-	<Manufacturer id="018B" name="Grib">
-	</Manufacturer>
-	<Manufacturer id="0391" name="GUANGDONG PHNIX ECO-ENERGY SOLUTION LTD">
-	</Manufacturer>
-	<Manufacturer id="016D" name="Guangzhou Ruixiang M&amp;E Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0158" name="GuangZhou Zeewave Information Technology Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0395" name="Guangzhou_SIMT Limited">
-	</Manufacturer>
-	<Manufacturer id="037B" name="Guardtec Inc">
-	</Manufacturer>
-	<Manufacturer id="0287" name="HAB Home Intelligence LLC">
-	</Manufacturer>
-	<Manufacturer id="030D" name="Hampoo">
-	</Manufacturer>
-	<Manufacturer id="040A" name="Hangzhou Hikvision Digital Technology Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0387" name="HangZhou iMagic Technology Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0208" name="HANK Electronics Ltd">
-		<Product type="0101" id="0005" name="HKZW-SO01 Smart Plug" config="hank/hkzw-so01-smartplug.xml"/>
-		<Product type="0100" id="000a" name="HKZW-SO05 Smart Plug" config="hank/hkzw-so05-smartplug.xml"/>
-		<Product type="0200" id="0006" name="HKZW-MS01 Multisensor" config="hank/hkzw-ms01.xml"/>
-		<Product type="0200" id="0012" name="HKZW-MS02 Motion Sensor" config="hank/hkzw-ms02.xml"/>
-		<Product type="0200" id="0008" name="HKZW-DWS01 Door/Window Sensor" config="hank/hkzw-dws01.xml"/>
-		<Product type="0201" id="0008" name="HKZW-DWS01 Door/Window Sensor" config="hank/hkzw-dws01.xml"/>
-		<Product type="0200" id="0009" name="HKZW-SCN01 Scene Controller" config="hank/scenecontroller1.xml"/>
-		<Product type="0200" id="000b" name="HKZW-SCN04 Scene Controller" config="hank/scenecontroller4.xml"/>
-		<Product type="0201" id="000b" name="HKZW-SCN04 Scene Controller" config="hank/scenecontroller4.xml"/>
-		<Product type="0100" id="0004" name="HKZW-RGB01 RGB bulb" config="hank/hkzw-rgb01.xml"/>
-		<Product type="0101" id="0004" name="HKZW-RGB01 RGB bulb" config="hank/hkzw-rgb01.xml"/>
-		<Product type="0101" id="000a" name="HKZW-SO03 Smart Plug" config="hank/hkzw-so03.xml"/>
-		<Product type="0200" id="000f" name="HKZW-FLD01 Flood Sensor" config="hank/hkzw-fld01.xml"/>
-	</Manufacturer>
-	<Manufacturer id="024C" name="Hankook Gas Kiki CO.LTD">
-	</Manufacturer>
-	<Manufacturer id="025C" name="Hauppauge">
-	</Manufacturer>
-	<Manufacturer id="0073" name="Hawking Technologies Inc">
-	</Manufacturer>
-	<Manufacturer id="040C" name="HEIGHTS TELECOM T LTD">
-	</Manufacturer>
-	<Manufacturer id="0260" name="Heiman Technology Co. Ltd">
-		<Product type="0168" id="0168" name="Door Sensor HS1DS-Z" config="heiman/HS1DS-Z.xml"/>
-		<Product type="8001" id="1000" name="Motion Sensor HS1MS-Z" config="heiman/HS1MS-Z.xml"/>
-		<Product type="8002" id="1000" name="Smart Smoke Sensor HS1SA-Z" config="heiman/HS1SA-Z.xml"/>
-		<Product type="8003" id="1000" name="Combustible Gas Sensor HS1CG-Z" config="heiman/HS1CG-Z.xml"/>
-		<Product type="8004" id="1000" name="Water Leakage Sensor HS1WL-Z" config="heiman/HS1WL-Z.xml"/>
-		<Product type="8005" id="1000" name="CO Sensor HS1CA-Z" config="heiman/HS1CA-Z.xml"/>
-		<Product type="8006" id="1000" name="Smart Metering Plug HS2SK-Z" config="heiman/HS2SK-Z.xml"/>
-		<Product type="8007" id="1000" name="Temperature Humidity Sensor HS1HT-Z" config="heiman/HS1HT-Z.xml"/>
-		<Product type="8008" id="1000" name="Smart Plug HS2SK-Z" config="heiman/HS2SK-Z.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0344" name="HELTUN">
-		<Product type="0003" id="0001" name="HE-ZW-THERM-FL2 Heating Thermostat" config="heltun/he-zw-therm-fl2.xml"/>
-	</Manufacturer>
-	<Manufacturer id="020F" name="Herald Datanetics Limited">
-	</Manufacturer>
-	<Manufacturer id="0017" name="HiTech Automation">
-	</Manufacturer>
-	<Manufacturer id="024C" name="Hankook Gas Kiki CO.LTD">
-	</Manufacturer>
-	<Manufacturer id="025C" name="Hauppauge">
-	</Manufacturer>
-	<Manufacturer id="0073" name="Hawking Technologies Inc">
-	</Manufacturer>
-	<Manufacturer id="040C" name="HEIGHTS TELECOM T LTD">
-	</Manufacturer>
-	<Manufacturer id="0344" name="HELTUN">
-	</Manufacturer>
-	<Manufacturer id="020F" name="Herald Datanetics Limited">
-	</Manufacturer>
-	<Manufacturer id="0017" name="HiTech Automation">
-	</Manufacturer>
-	<Manufacturer id="0181" name="Holion Electronic Engineering Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="013E" name="Holtec Electronics BV">
-	</Manufacturer>
-	<Manufacturer id="000D" name="Home Automated Living">
-	</Manufacturer>
-	<Manufacturer id="009a" name="Home Automation Europe">
-	</Manufacturer>
-	<Manufacturer id="005b" name="Home Automation Inc.">
-	</Manufacturer>
-	<Manufacturer id="0293" name="Home controls">
-	</Manufacturer>
-	<Manufacturer id="0038" name="Home Director">
-	</Manufacturer>
-	<Manufacturer id="0070" name="Homemanageables Inc">
-	</Manufacturer>
-	<Manufacturer id="0050" name="Homepro">
-	</Manufacturer>
-	<Manufacturer id="0162" name="HomeScenario">
-	</Manufacturer>
-	<Manufacturer id="001e" name="Homeseer (Express Controls)">
-		<Product type="0001" id="0002" name="ZTroller" config="homeseer/ztroller.xml"/>
-		<Product type="0002" id="0001" name="HSM100 Wireless Multi-Sensor" config="homeseer/hsm100.xml"/>
-		<Product type="0002" id="0002" name="EZMotion+ 3-in-1 Sensor" config="homeseer/ezmotionplus.xml"/>
-		<Product type="0004" id="0001" name="HSM200 Wireless Multi-Sensor" config="homeseer/hsm200.xml"/>
-	</Manufacturer>
-	<Manufacturer id="000c" name="HomeSeer Technologies">
-		<Product type="4447" id="3033" name="HS-WS100+ Wall Switch" config="homeseer/hs-ws100plus.xml"/>
-		<Product type="4447" id="3034" name="HS-WD100+ Wall Dimmer" config="homeseer/hs-wd100plus.xml"/>
-		<Product type="4447" id="3035" name="HS-WS200+ Wall Switch" config="homeseer/hs-ws200plus.xml"/>
-		<Product type="4447" id="3036" name="HS-WD200+ Wall Dimmer" config="homeseer/hs-wd200plus.xml"/>
-		<Product type="201"  id="9"    name="HS-MS100+ Motion Sensor" config="homeseer/hs-ms100plus.xml"/>
-		<Product type="201"  id="a"    name="HS-LS100+ Leak Sensor" config="homeseer/hs-ls100plus.xml"/>
-		<Product type="0201" id="000b" name="HS-FLS100+ Floodlight Sensor" config="homeseer/hs-fls100plus.xml"/>
-		<Product type="0203" id="0001" name="HS-FC200+ Z-Wave Plus Fan Controller" config="homeseer/hs-fc200plus.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0275" name="Honest Technology">
-	</Manufacturer>
-	<Manufacturer id="023D" name="Honest Technology Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0039" name="Honeywell">
-		<Product type="0011" id="0001" name="TH8320ZW1000 Touchscreen Thermostat" config="honeywell/th8320zw1000.xml"/>
-		<Product type="0001" id="0003" name="Lynx Touch L5100 / L7000" config="honeywell/lynx-touch-l5100.xml"/>
-		<Product type="4944" id="3038" name="39351 / ZW3005 In-Wall Smart Dimmer" config="honeywell/39351-ZW3005.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0313" name="Hoppe">
-	</Manufacturer>
-	<Manufacturer id="0377" name="HORNBACH Baumarkt AG">
-	</Manufacturer>
-	<Manufacturer id="0059" name="Horstmann (Secure Meters)">
-		<Product type="0001" id="0001" name="ASR-RF Thermostat Receiver"/>
-		<Product type="0001" id="0002" name="AS2-RF Thermostat Transmitter"/>
-		<Product type="0001" id="0003" name="HRT4-ZW Thermostat Transmitter" config="horstmann/hrt4zw.xml"/>
-		<Product type="0001" id="0004" name="SRT 323 Electronic Room Thermostat and Temperature" config="horstmann/srt323.xml"/>
-		<Product type="0001" id="0005" name="SRT-321 Thermostat-HVAC" config="horstmann/srt321.xml"/>
-		<Product type="0003" id="0001" name="ASR-ZW Thermostat Receiver" config="horstmann/asrzw.xml"/>
-		<Product type="0003" id="0002" name="SSR 302 2-zone Thermostat Receiver" config="horstmann/ssr302.xml"/>
-		<Product type="0003" id="0005" name="SSR 303 Thermostat Receiver" config="horstmann/ssr303.xml"/>
-		<Product type="0004" id="0001" name="SCSC17 Thermostat" config="horstmann/scsc17.xml"/>
-		<Product type="000d" id="0001" name="SES 301 Temperature Sensor"/>
-		<Product type="000d" id="0002" name="SES 302 Temperature Sensor" config="horstmann/ses302.xml"/>
-		<Product type="000d" id="0003" name="SES 303 Temperature and Humidity Sensor" config="horstmann/ses303.xml"/>
-		<Product type="000f" id="0001" name="SWM01 Water Meter Sensor"/>
-		<Product type="0010" id="0001" name="SIR321 RF Countdown Timer" config="horstmann/sir321.xml"/>
-		<Product type="0010" id="0002" name="SIR321 RF Countdown Timer with temperature" config="horstmann/sir321.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0298" name="Horus Smart Control">
-	</Manufacturer>
-	<Manufacturer id="0221" name="HOSEOTELNET">
-	</Manufacturer>
-	<Manufacturer id="0180" name="Huapin Information Technology Co.Ltd">
-	</Manufacturer>
-	<Manufacturer id="025F" name="Huawei Device Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="024B" name="Huawei Technologies Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="007C" name="Hunter Douglas">
-	</Manufacturer>
-	<Manufacturer id="0374" name="Hyundai Telecom">
-	</Manufacturer>
-	<Manufacturer id="038A" name="iamsmart">
-	</Manufacturer>
-	<Manufacturer id="0218" name="iAutomade Pte Ltd">
-	</Manufacturer>
-	<Manufacturer id="0011" name="iCOM Technology b.v.">
-	</Manufacturer>
-	<Manufacturer id="0106" name="Icontrol Networks">
-	</Manufacturer>
-	<Manufacturer id="0373" name="ID Lock AS">
-		<Product type="0003" id="0001" name="150" config="idlock/idlock150.xml"/>
-	</Manufacturer>
-	<Manufacturer id="019E" name="iEXERGY GmbH">
-	</Manufacturer>
-	<Manufacturer id="031C" name="Ilevia srl">
-	</Manufacturer>
-	<Manufacturer id="0056" name="Impact Technologies and Products">
-	</Manufacturer>
-	<Manufacturer id="0061" name="Impact Technologies BV">
-	</Manufacturer>
-	<Manufacturer id="0385" name="Inergy Systems LLC">
-	</Manufacturer>
-	<Manufacturer id="012B" name="Infusion Development">
-	</Manufacturer>
-	<Manufacturer id="006C" name="Ingersoll Rand (Schlage)">
-	</Manufacturer>
-	<Manufacturer id="011f" name="Ingersoll Rand">
-		<Product type="0001" id="0002" name="DWZWAVE1" config="ingersoll/dwzwave1.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0256" name="Inkel Corp">
-	</Manufacturer>
-	<Manufacturer id="003a" name="Inlon Srl">
-	</Manufacturer>
-	<Manufacturer id="0141" name="Innoband Technologies Inc">
-	</Manufacturer>
-	<Manufacturer id="0382" name="INNOPIA Technologies Inc">
-	</Manufacturer>
-	<Manufacturer id="0077" name="Innovus">
-		<Product type="0002" id="0001" name="SmoothRemote Controller"/>
-		<Product type="0001" id="0002" name="RAone SmartPower Wall Appliance Module"/>
-		<Product type="0001" id="0001" name="RAone SmartDimmer Wall Dimmer Module"/>
-	</Manufacturer>
-	<Manufacturer id="0312" name="Inovelli">
-		<Product type="1e01" id="1e01" name="NZW30 Smart Switch" config="inovelli/nzw30.xml"/>
-		<Product type="1e00" id="1e00" name="NZW30 Smart Switch (w/Scene)" config="inovelli/nzw30.xml"/>
-		<Product type="1e02" id="1e02" name="NZW30 Smart Toggle Switch (w/Scene)" config="inovelli/nzw30.xml"/>
-		<Product type="1f01" id="1f01" name="NZW31 Smart Dimmer" config="inovelli/nzw31.xml"/>
-		<Product type="1f00" id="1f00" name="NZW31 Smart Dimmer (w/Scene)" config="inovelli/nzw31.xml"/>
-		<Product type="1f02" id="1f02" name="NZW31 Smart Toggle Dimmer (w/Scene)" config="inovelli/nzw31.xml"/>
-		<Product type="b211" id="241c" name="NZW36 1-Channel Smart Plug-In Module" config="inovelli/simple_module.xml"/>
-		<Product type="2400" id="2400" name="NZW36 1-Channel Smart Plug (w/Scene)" config="inovelli/nzw36.xml"/>
-		<Product type="b221" id="251c" name="NZW37 2-Channel Smart Plug" config="inovelli/simple_module.xml"/>
-		<Product type="2500" id="2500" name="NZW37 2-Channel Smart Plug (w/Scene)" config="inovelli/nzw37.xml"/>
-		<Product type="b212" id="271c" name="NZW39 Smart Plug Dimmer" config="inovelli/simple_module.xml"/>
-		<Product type="2700" id="2700" name="NZW39 Smart Plug Dimmer (w/Scene)" config="inovelli/nzw39.xml"/>
-		<Product type="6000" id="6000" name="NZW96 1-Channel Outdoor Smart Plug" config="inovelli/nzw96.xml"/>
-		<Product type="6100" id="6100" name="NZW97 2-Channel Outdoor Smart Plug" config="inovelli/nzw97.xml"/>
-	</Manufacturer>
-	<Manufacturer id="031E" name="Inovelli">
-	</Manufacturer>
-	<Manufacturer id="0100" name="Insignia">
-	</Manufacturer>
-	<Manufacturer id="0006" name="Intel">
-	</Manufacturer>
-	<Manufacturer id="001c" name="IntelliCon">
-	</Manufacturer>
-	<Manufacturer id="0072" name="Interactive Electronics Systems">
-	</Manufacturer>
-	<Manufacturer id="0005" name="Intermatic">
-		<Product type="0002" id="0003" name="HA-02 Appliance Module"/>
-		<Product type="0003" id="0003" name="HA-03WD Lamp Module"/>
-		<Product type="0004" id="0003" name="HA-04C Outdoor Module"/>
-		<Product type="0005" id="0003" name="HA-05C Lamp Screw In Module"/>
-		<Product type="0006" id="0003" name="HA-06 In-Wall Switch Dimmer"/>
-		<Product type="4341" id="0600" name="CA600 Wall Dimmer"/>
-		<Product type="4341" id="3000" name="CA3000 Wall Switch"/>
-		<Product type="4341" id="3500" name="CA3560 Split-Duplex Receptacle"/>
-		<Product type="4341" id="8900" name="CA8900 Digital Thermostat" config="intermatic/ca8900.xml"/>
-		<Product type="4341" id="9000" name="CA9000 PIR Occupancy Sensor"/>
-	</Manufacturer>
-	<Manufacturer id="0338" name="International Integrated Systems Inc">
-	</Manufacturer>
-	<Manufacturer id="0013" name="Internet Dom">
-	</Manufacturer>
-	<Manufacturer id="0288" name="INTERSOFT">
-	</Manufacturer>
-	<Manufacturer id="039E" name="Invalance">
-	</Manufacturer>
-	<Manufacturer id="0278" name="Inventec">
-	</Manufacturer>
-	<Manufacturer id="0368" name="IOOOTA">
-	</Manufacturer>
-	<Manufacturer id="005F" name="IQ-Group">
-	</Manufacturer>
-	<Manufacturer id="0212" name="iRevo">
-	</Manufacturer>
-	<Manufacturer id="0253" name="iungo.nl B.V.">
-	</Manufacturer>
-	<Manufacturer id="0123" name="IWATSU">
-		<Product type="0000" id="0000" name="TM-H2VHD081 HA Dongle"/>
-		<Product type="0102" id="0102" name="NE-4CT-2P Electric Power Measuring Equipment"/>
-		<Product type="0103" id="0103" name="NE-4CT Electric Power Measuring Equipment"/>
-	</Manufacturer>
-	<Manufacturer id="0063" name="Jasco Products">
-	</Manufacturer>
-	<Manufacturer id="015A" name="Jin Tao Bao">
-	</Manufacturer>
-	<Manufacturer id="039F" name="JLabs Corporation">
-	</Manufacturer>
-	<Manufacturer id="0164" name="JSW Pacific Corporation">
-	</Manufacturer>
-	<Manufacturer id="0214" name="Kaipule Technology Co. Ltd">
-		<Product type="0002" id="0001" name="IM20 Door/Window Sensor" config="kaipule/im20.xml"/>
-		<Product type="0003" id="0002" name="PIR Celling Sensor" config="kaipule/ix32.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0091" name="Kamstrup A/S">
-	</Manufacturer>
-	<Manufacturer id="006A" name="Kellendonk Elektronik">
-	</Manufacturer>
-	<Manufacturer id="0114" name="Kichler">
-	</Manufacturer>
-	<Manufacturer id="035F" name="KIWILAB">
-	</Manufacturer>
-	<Manufacturer id="0139" name="KlickH Pvt Ltd">
-	</Manufacturer>
-	<Manufacturer id="0261" name="KOOL KONCEPTS">
-	</Manufacturer>
-	<Manufacturer id="0174" name="Kopera Development Inc">
-	</Manufacturer>
-	<Manufacturer id="023A" name="KUMHO ELECTRIC INC">
-	</Manufacturer>
-	<Manufacturer id="0090" name="Kwikset (Spectrum Brands)">
-		<Product type="0001" id="0001" name="Touchpad Electronic Deadbolt" config="kwikset/smartcode.xml"/>
-		<Product type="0003" id="0642" name="SmartCode 916" config="kwikset/smartcode.xml"/>
-		<Product type="0006" id="0440" name="SmartCode 10" config="kwikset/smartcode.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0051" name="Lagotek Corp">
-	</Manufacturer>
-	<Manufacturer id="0173" name="Leak Intelligence LLC">
-	</Manufacturer>
-	<Manufacturer id="0300" name="LEEDARSON LIGHTING CO. LTD">
-	</Manufacturer>
-	<Manufacturer id="0187" name="LEVION Technologies GmbH">
-	</Manufacturer>
-	<Manufacturer id="001d" name="Leviton">
-		<Product type="0101" id="0206" name="RZP15-1LW Binary Scene Switch"/>
-		<Product type="0201" id="0206" name="RZP03-1LW Binary Scene Switch"/>
-		<Product type="0202" id="030b" name="VRP03-1LW Lamp Module"/>
-		<Product type="0301" id="0206" name="RZS15-1LX Binary Scene Switch"/>
-		<Product type="0301" id="0209" name="VRS15-1LZ Binary Scene Switch"/>
-		<Product type="0301" id="0334" name="VRS15-1LZ Switch"/>
-		<Product type="0401" id="0206" name="RZI10-1LX Multilevel Scene Switch" config="leviton/rzi10.xml"/>
-		<Product type="0401" id="0209" name="VRI06-1LX Multilevel Scene Switch" config="leviton/vri06.xml"/>
-		<Product type="0501" id="0206" name="VRI10-1LX Multilevel Scene Switch" config="leviton/vri10.xml"/>
-		<Product type="0501" id="0209" name="VRI10-1LZ Scene Capable Dimmer" config="leviton/vri10.xml"/>
-		<Product type="0602" id="0209" name="VRMX1-1LZ Multilevel Scene Switch" config="leviton/vri10.xml"/>
-		<Product type="0602" id="0334" name="VRMX1-1LZ Multilevel Scene Switch" config="leviton/vri10.xml"/>
-		<Product type="0901" id="0215" name="VRC51-1LX One Scene Controller"/>
-		<Product type="0702" id="0261" name="VRCZ4-M0Z 4-Button Zone Controller"/>
-		<Product type="0b02" id="030b" name="VRC0P-1LW Plug-in Serial Interface Module"/>
-		<Product type="0c01" id="0206" name="VRCPG-SG RF Handheld Remote Controller" config="leviton/vrcpg.xml"/>
-		<Product type="0e01" id="0334" name="VRE06-1LZ Multilevel Scene Switch" config="leviton/vre06.xml"/>
-		<Product type="1001" id="0209" name="VRF01-1LZ Scene Capable Quiet Fan Speed Control" config="leviton/vrf01.xml"/>
-		<Product type="1001" id="0334" name="VRF01-1LZ Quiet Fan Speed Control" config="leviton/vrf01.xml"/>
-		<Product type="1102" id="0243" name="VRCS2-MRZ 2-Button Scene Controller with Switches"/>
-		<Product type="1202" id="0243" name="VRCZ4-MRZ 4-Button Zone Controller with Switch"/>
-		<Product type="1902" id="0334" name="DZPD3-1LW Plug-In Dimming Lamp Module"/>
-		<Product type="1a02" id="0334" name="DZPA1-1LW Plug-In Appliance Module"/>
-		<Product type="1b03" id="0334" name="DZMX1-1LZ Dimmer"/>
-		<Product type="1c02" id="0334" name="DZS15-1LZ Switch"/>
-		<Product type="1d04" id="0334" name="DZR15-1LZ Receptacle"/>
-		<Product type="3201" id="0001" name="DZ6HD-1BZ Decora 600W Smart Dimmer" config="leviton/dz6hd.xml"/>
-		<Product type="3301" id="0001" name="DZ1KD-1BZ Decora 1000W Smart Dimmer" config="leviton/dz6hd.xml"/>
-		<Product type="3401" id="0001" name="DZ15S-1BZ Decora Smart Switch" config="leviton/dz15s.xml"/>
-		<Product type="3501" id="0001" name="DZPD3-2BW Decora 300W Plug-In Smart Dimmer" config="leviton/dzpd3.xml"/>
-		<Product type="3601" id="0001" name="DZPA1-2BW Plug-In Outlet" config="leviton/dz15s.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0015" name="Lexel">
-	</Manufacturer>
-	<Manufacturer id="015B" name="LG Electronics">
-	</Manufacturer>
-	<Manufacturer id="0362" name="LiaoningYouwang Lighting and Electronic Technology Pty Ltd">
-	</Manufacturer>
-	<Manufacturer id="0224" name="LifeShield LLC">
-	</Manufacturer>
-	<Manufacturer id="003C" name="Lifestyle Networks">
-	</Manufacturer>
-	<Manufacturer id="0210" name="Light Engine Limited">
-	</Manufacturer>
-	<Manufacturer id="0342" name="LIMEI">
-	</Manufacturer>
-	<Manufacturer id="014f" name="Linear (Nortek Security Control LLC)">
-		<Product type="2001" id="0102" name="WADWAZ-1 Door/Window Sensor" config="linear/WADWAZ-1.xml"/>
-		<Product type="2002" id="0203" name="WAPIRZ-1 Motion Sensor" config="linear/WAPIRZ-1.xml"/>
-		<Product type="2009" id="0903" name="WA105DBZ-1 Main Operated Siren" config="linear/WA105DBZ-1.xml"/>
-		<Product type="4450" id="3030" name="PD300Z-2 Plug-in Dimmer Module" config="linear/PD300Z-2.xml"/>
-		<Product type="4457" id="3034" name="WD500Z-1 Wall Dimmer Switch" config="linear/WD500Z-1.xml"/>
-		<Product type="4457" id="3331" name="WD1000Z-1 Wall Dimmer Switch"/>
-		<Product type="4744" id="3030" name="GD00Z-4 Garage Door Opener Remote Controller"/>
-		<Product type="4744" id="3530" name="GD00Z-4 Garage Door Opener Remote Controller"/>
-		<Product type="4744" id="3531" name="GD00Z-7 Garage Door Opener Remote Controller"/>
-		<Product type="4754" id="3038" name="LB60Z-1 Dimmable LED Light Bulb" config="linear/LB60Z-1.xml"/>
-		<Product type="5246" id="3133" name="FS20Z Isolated Contact Fixture Module"/>
-		<Product type="5250" id="3030" name="PS15Z-2 Plug-in Appliance Module"/>
-		<Product type="5252" id="3530" name="WO15Z-1 Single Wall Outlet"/>
-		<Product type="5257" id="3533" name="WS15Z-1 Wall Switch" config="linear/WS15Z-1.xml"/>
-		<Product type="5343" id="3132" name="WA00Z-1 Scene Switch" config="linear/WA00Z-1.xml"/>
-		<Product type="5457" id="3033" name="WT00Z-1 3-Way Wall Accessory Switch" config="linear/WT00Z-1.xml"/>
-		<Product type="5442" id="5431" name="GC-TBZ48 Battery Powered Z-Wave Thermostat" config="linear/GC-TBZ48.xml" />
-		<Product type="5442" id="5436" name="GC-TBZ48 Battery Powered Z-Wave Thermostat" config="linear/GC-TBZ48.xml" />
-		<Product type="5442" id="5437" name="GC-TBZ48 Battery Powered Z-Wave Thermostat" config="linear/GC-TBZ48.xml" />
-		<Product type="5744" id="3530" name="WD500Z5-1 Wall Mounted Dimmer" config="linear/WD500Z5-1.xml" />
-	</Manufacturer>
-	<Manufacturer id="035C" name="LINK ELECTRONICS Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0316" name="Lite Automation">
-	</Manufacturer>
-	<Manufacturer id="017A" name="Liveguard Ltd">
-	</Manufacturer>
-	<Manufacturer id="013A" name="Living Style Enterprises Ltd">
-	</Manufacturer>
-	<Manufacturer id="015e" name="Locstar">
-		<Product type="8015" id="0001" name="LS-8015-ZW Single Latch Door Lock"/>
-	</Manufacturer>
-	<Manufacturer id="0234" name="Logic Soft">
-		<Product type="0003" id="010a" name="ZHC5010 Wall switch" config="logicsoft/ZHC5010.xml"/>
-		<Product type="0003" id="010c" name="ZHC5002 Z-Scene Controller" config="logicsoft/ZHC5002.xml"/>
-	</Manufacturer>
-	<Manufacturer id="007f" name="Logitech">
-	</Manufacturer>
-	<Manufacturer id="0025" name="Loudwater Tech">
-	</Manufacturer>
-	<Manufacturer id="038C" name="Lowes">
-	</Manufacturer>
-	<Manufacturer id="0071" name="LS Control">
-		<Product type="0002" id="035D" name="ES 861 Temperature Sensor"/>
-	</Manufacturer>
-	<Manufacturer id="036D" name="Luffanet Co. Lte">
-	</Manufacturer>
-	<Manufacturer id="025E" name="LUXEASY technology company LTD">
-	</Manufacturer>
-	<Manufacturer id="0062" name="LVI Produkter AB">
-	</Manufacturer>
-	<Manufacturer id="0192" name="m2m Solution">
-	</Manufacturer>
-	<Manufacturer id="0195" name="M2M Solution">
-	</Manufacturer>
-	<Manufacturer id="006E" name="Manodo / KTC">
-	</Manufacturer>
-	<Manufacturer id="003d" name="Marmitek BV">
-	</Manufacturer>
-	<Manufacturer id="003e" name="Martec Access">
-	</Manufacturer>
-	<Manufacturer id="0092" name="Martin Renz GmbH">
-	</Manufacturer>
-	<Manufacturer id="008f" name="MB Turn Key Design">
-	</Manufacturer>
-	<Manufacturer id="015f" name="McoHome Technology Co Ltd">
-		<Product type="0001" id="0001" name="Mini Energy Dimmer"/>
-		<Product type="0002" id="0001" name="Mini Energy Switch"/>
-		<!--EU-->
-		<Product type="210a" id="1302" name="MH-P210 Mini Energy Dimmer" config="mcohome/mhp210.xml"/>
-		<Product type="3102" id="0201" name="MH-S311 One-load" config="mcohome/mhs311.xml"/>
-		<Product type="3102" id="0202" name="MH-S312 Two-load" config="mcohome/mhs312.xml"/>
-		<Product type="3102" id="0204" name="MH-S314 Four-load" config="mcohome/mhs314.xml"/>
-		<Product type="3141" id="1302" name="MH-S314 Four-load" config="mcohome/mhs314.xml"/>
-		<Product type="5102" id="3141" name="MH-S314 Four-load" config="mcohome/mhs314.xml"/>
-		<Product type="4102" id="0201" name="MH-S411 One-load" config="mcohome/mhs411.xml"/>
-		<Product type="4102" id="0202" name="MH-S412 Two-load" config="mcohome/mhs412.xml"/>
-		<Product type="4121" id="1302" name="MH-S412 Two-load" config="mcohome/mhs412.xml"/>
-		<Product type="4121" id="5102" name="MH-S412 Two-load" config="mcohome/mhs412.xml"/>
-		<Product type="0801" id="3102" name="MH8-FC-EU Thermostat" config="mcohome/mh8fceu.xml"/>
-		<Product type="0802" id="3102" name="MH8-FC4-EU Thermostat" config="mcohome/mh8fceu.xml"/>
-		<Product type="0905" id="0201" name="MH9-CO2-WD CO2 Monitor" config="mcohome/mh9co2.xml"/>
-		<Product type="a800" id="1352" name="A8-9 Multi-sensor" config="mcohome/a8-9.xml"/>
-                <Product type="0701" id="5102" name="MH7H Water/Electrical Heating Thermostat" config="mcohome/mh7h.xml"/>
-                <Product type="0702" id="5102" name="MH7H Water/Electrical Heating Thermostat" config="mcohome/mh7h.xml"/>
-                <Product type="0712" id="5102" name="MH7H Water/Electrical Heating Thermostat" config="mcohome/mh7h.xml"/>
-                <Product type="0732" id="5102" name="MH7H Water/Electrical Heating Thermostat" config="mcohome/mh7h.xml"/>
-		<!--US-->
-		<Product type="5102" id="0103" name="Touch Panel Switch MH-S513" config="mcohome/mhs513.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0222" name="MCT CO. LTD">
-	</Manufacturer>
-	<Manufacturer id="0027" name="Meedio LLC">
-	</Manufacturer>
-	<Manufacturer id="0107" name="MegaChips">
-	</Manufacturer>
-	<Manufacturer id="022D" name="Mercury Corporation">
-	</Manufacturer>
-	<Manufacturer id="007a" name="Merten">
-		<Product type="8001" id="0001" name="Plug-in Appliance Module"/>
-		<Product type="8002" id="0001" name="Plug-in Dimmer Module"/>
-		<Product type="8003" id="0001" name="Plug-in Roller Shutter Module" config="merten/507801.xml"/>
-		<Product type="4003" id="0001" name="Wall Dimmer Module"/>
-		<Product type="4002" id="0001" name="Wall Appliance Module"/>
-		<Product type="4004" id="0001" name="Wall Roller Shutter Module" config="merten/50x5xx.xml"/>
-		<Product type="8001" id="8001" name="Receiver Flush-Mounted 1-Gang Switch"/>
-		<Product type="0003" id="0004" name="Transmitter Flush-Mounted 4-Gang Switch"/>
-		<Product type="0001" id="0002" name="Transmitter 1-Gang Switch"/>
-		<Product type="0001" id="0004" name="Transmitter 2-Gang Switch"/>
-		<Product type="0002" id="0001" name="Transmitter Move"/>
-	</Manufacturer>
-	<Manufacturer id="0238" name="Milanity Inc">
-	</Manufacturer>
-	<Manufacturer id="0112" name="MITSUMI">
-	</Manufacturer>
-	<Manufacturer id="019D" name="MOBILUS MOTOR z o.o.">
-	</Manufacturer>
-	<Manufacturer id="0232" name="MODACOM CO. LTD">
-	</Manufacturer>
-	<Manufacturer id="008D" name="Modstrom">
-	</Manufacturer>
-	<Manufacturer id="000E" name="Mohito Networks">
-	</Manufacturer>
-	<Manufacturer id="0202" name="Monoprice">
-	</Manufacturer>
-	<Manufacturer id="007E" name="Monster Cable">
-	</Manufacturer>
-	<Manufacturer id="0125" name="Motion Control Systems">
-	</Manufacturer>
-	<Manufacturer id="003F" name="Motorola">
-	</Manufacturer>
-	<Manufacturer id="0122" name="MSK Miyakawa Seisakusho">
-		<Product type="0001" id="0001" name="ME-D101 Electric Power Measuring Instrument"/>
-		<Product type="8000" id="0000" name="ZW-GW Smart Bridge"/>
-	</Manufacturer>
-	<Manufacturer id="0083" name="MTC Maintronic">
-	</Manufacturer>
-	<Manufacturer id="0143" name="myStrom">
-	</Manufacturer>
-	<Manufacturer id="016E" name="Nanjing Easthouse Electrical Co">
-	</Manufacturer>
-	<Manufacturer id="0121" name="Napco Security Technologies, Inc.">
-		<Product type="0001" id="0001" name="I-Bridge Z-Wave Controller"/>
-	</Manufacturer>
-	<Manufacturer id="038D" name="nCube">
-	</Manufacturer>
-	<Manufacturer id="036B" name="NEC Platforms Ltd">
-	</Manufacturer>
-	<Manufacturer id="0241" name="NEEO AG">
-	</Manufacturer>
-	<Manufacturer id="006D" name="Nefit">
-	</Manufacturer>
-	<Manufacturer id="0351" name="NEOCONTROL US LLC">
-	</Manufacturer>
-	<Manufacturer id="0189" name="Ness Corporation Pty Ltd">
-	</Manufacturer>
-	<Manufacturer id="0133" name="Netgear">
-	</Manufacturer>
-	<Manufacturer id="0248" name="neusta next GmbH Co. KG">
-	</Manufacturer>
-	<Manufacturer id="0203" name="Newland Communication Science Technology Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="0268" name="Nexa Trading AB">
-	</Manufacturer>
-	<Manufacturer id="0178" name="Nexia">
-		<!-- full name in Z-wave database: Ingersoll Rand - Nexia Home Intelligence -->
-		<Product type="4442" id="3130" name="DB100Z Doorbell Sensor" config="nexia/db100z.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0075" name="NextEnergy">
-	</Manufacturer>
-	<Manufacturer id="0361" name="NHN Entertainment">
-	</Manufacturer>
-	<Manufacturer id="0185" name="Ningbo Sentek Electronics Co Ltd">
-	</Manufacturer>
-	<Manufacturer id="0165" name="NodOn (ID-RF)">
-		<Product type="0001" id="0001" name="ASP-3-1-00 Smart Plug" config="nodon/asp3100SmartPlug.xml"/>
-		<Product type="0001" id="0003" name="MSP-3-1-XX Micro Smart Plug" config="nodon/msp31xxMicroSmartPlug.xml"/>
-		<Product type="0002" id="0001" name="CRC-3-1-00 Octan Remote" config="nodon/crc3100OctanRemote.xml"/>
-		<Product type="0002" id="0002" name="CRC-3-6-0x Soft Remote" config="nodon/crc360xSofremote.xml"/>
-		<Product type="0002" id="0003" name="CWS-3-1-01 Wall Switch" config="nodon/cws3101wallswitch.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0252" name="North China University of Technology">
-	</Manufacturer>
-	<Manufacturer id="0096" name="NorthQ">
-		<Product type="0001" id="0001" name="NQ-92021 Power Reader" config="northq/nq92021.xml"/>
-		<Product type="0001" id="0002" name="NQ-9021 Power Reader" config="northq/nq9021.xml" />
-		<Product type="0010" id="0001" name="NQ-9121 Gas Meter" config="northq/nq9121.xml" />
-	</Manufacturer>
-	<Manufacturer id="0040" name="Novar Electrical Devices and Systems">
-	</Manufacturer>
-	<Manufacturer id="020D" name="Novateqni HK Ltd">
-	</Manufacturer>
-	<Manufacturer id="0296" name="OBLO LIVING LLC	">
-	</Manufacturer>
-	<Manufacturer id="0119" name="Omnima Limited">
-	</Manufacturer>
-	<Manufacturer id="014C" name="OnSite Pro">
-	</Manufacturer>
-	<Manufacturer id="0041" name="OpenPeak Inc">
-	</Manufacturer>
-	<Manufacturer id="027D" name="Oregon Automation">
-	</Manufacturer>
-	<Manufacturer id="0104" name="Panasonic Electric Works Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="031A" name="Panasonic ES Shin Dong-A Co Ltd">
-	</Manufacturer>
-	<Manufacturer id="028D" name="Panodic Electric (Shenzhen) Limited">
-	</Manufacturer>
-	<Manufacturer id="0257" name="PARATECH">
-	</Manufacturer>
-	<Manufacturer id="0172" name="PassivSystems Limited">
-	</Manufacturer>
-	<Manufacturer id="0322" name="Paxton Access Ltd">
-	</Manufacturer>
-	<Manufacturer id="0281" name="PC Partner">
-	</Manufacturer>
-	<Manufacturer id="013D" name="Pella">
-	</Manufacturer>
-	<Manufacturer id="0245" name="permundo GmbH">
-		<Product type="0003" id="0002" name="PSC132ZW Smart Mini Plug"/>
-		<Product type="0003" id="0001" name="PSC234ZW Smart Plug"/>
-	</Manufacturer>
-	<Manufacturer id="0366" name="PHILIA TECHNOLOGY Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="013c" name="Philio Technology Corp">
-		<Product type="0001" id="0001" name="PAN11-4 Smart Energy Plug In Switch"/>
-		<Product type="0001" id="0003" name="PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement" config="philio/pan04.xml"/>
-		<Product type="0001" id="0004" name="PAN06-1 In Wall Dual Relay (1 Way) Switch Module" config="philio/pan06.xml"/>
-		<Product type="0001" id="0005" name="PAN07-1 TWO SPDT Switch module with meter" config="philio/pan07.xml"/>
-		<Product type="0001" id="0006" name="PAN08-1 In Wall Roller Shutter Controller" config="philio/pan08.xml"/>
-		<Product type="0001" id="000f" name="PAN03 Switch Module with meter 3 KW X1" config="philio/pan03.xml"/>
-		<Product type="0001" id="0011" name="PAN11 Smart Energy Plug In Switch" config="philio/pan11.xml"/>
-		<Product type="0001" id="0012" name="PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement" config="philio/pan04.xml"/>
-		<Product type="0001" id="0015" name="PAN08-1 In Wall Roller Shutter Controller" config="philio/pan08.xml"/>
-		<Product type="0001" id="0029" name="PAN16 Smart energy plug in switch" config="philio/pan16.xml"/>
-		<Product type="0002" id="0002" name="PSM02-1 Slim Multi-Sensor" config="philio/psm02.xml"/>
-		<Product type="0002" id="0050" name="PSP05 PIR/Motion" config="philio/psp05.xml"/>
-		<Product type="0002" id="000c" name="PST02-A 4 in 1 Multi-Sensor" config="philio/pst02.xml"/>
-		<Product type="0002" id="000d" name="PST02-B PIR/Motion 3 in 1 Sensor" config="philio/pst02-b.xml"/>
-		<Product type="0002" id="000e" name="PST02-C Door/Window 3 in 1 sensor" config="philio/pst02-1c.xml"/>
-		<Product type="0002" id="001e" name="PH-PSG01 Smoke Sensor" config="philio/phpsg01.xml"/>
-		<Product type="0002" id="001f" name="PH-PAT02.eu Flood Multisensor 3in1" config="philio/phpat02.xml"/>
-		<Product type="0002" id="0020" name="PH-PAT02-B.eu Multisensor 2in1" config="philio/phpat02.xml"/>
-		<Product type="0004" id="000a" name="PH-PSE02.eu Zipato Indoor Siren" config="philio/pse02.xml"/>
-		<Product type="0005" id="0031" name="PH-PAD02.eu Smart Dimmer Socket E27" config="philio/pad02.xml"/>
-		<Product type="0006" id="001a" name="PH-PAB01.eu Micromodule Energy Meter" config="philio/phpab01.xml"/>
-		<Product type="0008" id="001d" name="PSR03-1B.EU Keyfob 5 Remote" config="philio/psr03-1b.xml"/>
-		<Product type="0009" id="0022" name="PSR04 Smart Color Button" config="philio/psr04.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0277" name="Pixela Corporation ">
-	</Manufacturer>
-	<Manufacturer id="010e" name="Poly-control">
-		<Product type="0002" id="0001" name="Danalock Keypad" config="polycontrol/keypad.xml"/>
-		<Product type="0003" id="0002" name="Danalock Circle/Square" config="polycontrol/doorlock.xml"/>
-		<Product type="0001" id="0001" name="Polylock" config="polycontrol/polylock.xml"/>
-		<Product type="0008" id="0002" name="Danalock V2 BTZE" config="polycontrol/doorlock.xml"/>
-		<Product type="0009" id="0001" name="Danalock V3 BTZE" config="polycontrol/doorlockv3.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0154" name="Popp &amp; Co">
-		<Product type="0001" id="0001" name="123658 Plug-in Switch plus Power Meter" config="popp/123658.xml"/>
-		<Product type="0003" id="0001" name="009105 Wall Plug Switch Schuko (IP44)" config="popp/009105.xml"/>
-		<Product type="0004" id="0002" name="Solar Powered Outdoor Siren" config="popp/solar-siren.xml" />
-		<Product type="0004" id="0003" name="004407 CO Detector" config="popp/004407.xml"/>
-		<Product type="0004" id="0004" name="009402 10-Year Smoke Detector" config="popp/009402.xml"/>
-		<Product type="0005" id="0003" name="009501 Flow Stop" config="popp/009501.xml"/>
-		<Product type="0004" id="0011" name="Popp Z-Rain Rain Sensor" config="popp/700168.xml"/>
-		<Product type="0005" id="0001" name="012501 Strike Lock Control" config="popp/012501.xml"/>
-		<Product type="0005" id="0002" name="700045 Universal Keypad" config="popp/700045.xml"/>
-		<Product type="0100" id="0101" name="009303 Battery Wall Controller" config="popp/009303.xml" />
-		<Product type="0100" id="0103" name="Popp KFOB-C Remote Control" config="zwave.me/ZME_KFOB-S.xml" />
-		<Product type="0100" id="0201" name="Smoke Detector and Siren" config="popp/smoke-detector.xml" />
-		<Product type="0100" id="0400" name="ZWeather" config="popp/zweather.xml"/>
-		<Product type="1100" id="0001" name="123601 Plug-in Switch" config="popp/123601.xml" />
-		<Product type="1100" id="0002" name="123580 Plug-in Dimmer" config="popp/123580.xml" />
-	</Manufacturer>
-	<Manufacturer id="0064" name="Popp / Duwi (Reitz-Group.de)">
-		<Product type="0001" id="0000" name="ZW EDAN 300 Flush Mounted Dimmer" />
-		<Product type="1000" id="0002" name="Flush Mounted Switch"/>
-		<Product type="1001" id="0000" name="Plugin Dimmer" />
-		<Product type="1000" id="0009" name="Wall Dimmer Set for Busch-Jaeger DURO 2000" config="duwi/05458.xml"/>
-		<Product type="2001" id="0000" name="ZW ES 1000 Flush Mounted Switch" config="duwi/ZWES1000.xml" />
-		<Product type="3001" id="0000" name="ZW ZS 3500 Plugin Switch" />
-		<Product type="3002" id="0000" name="ZW ZSA 3500 Plugin Switch" />
-		<Product type="4001" id="0000" name="ZW ESJ Blind Control" config="duwi/ZWESJ300.xml" />
-		<Product type="5001" id="0000" name="ZW FB Wireless remote control 10-channel" config="duwi/zwfb.xml"/>
-		<Product type="5002" id="0000" name="Wireless Flush Mounted Switch" />
-		<Product type="5003" id="0000" name="Static Controller" />
-	</Manufacturer>
-	<Manufacturer id="0170" name="Powerhouse Dynamics">
-	</Manufacturer>
-	<Manufacturer id="0074" name="PowerLinx">
-	</Manufacturer>
-	<Manufacturer id="0016" name="PowerLynx">
-	</Manufacturer>
-	<Manufacturer id="0042" name="Pragmatic Cons">
-	</Manufacturer>
-	<Manufacturer id="0341" name="Prodea">
-	</Manufacturer>
-	<Manufacturer id="0128" name="Prodrive Technologies">
-		<Product type="0000" id="0000" name="ED2.0 Meter Adapter"/>
-		<Product type="0128" id="0000" name="ED2.0 Display"/>
-	</Manufacturer>
-	<Manufacturer id="0161" name="Promixis LLC">
-	</Manufacturer>
-	<Manufacturer id="005d" name="Pulse Technologies (Aspalis)">
-		<Product type="0202" id="0511" name="Plugin Lamp Module"/>
-	</Manufacturer>
-	<Manufacturer id="0376" name="Pytronic AB">
-	</Manufacturer>
-	<Manufacturer id="0095" name="Qees">
-		<Product type="3101" id="0001" name="RETO Dimmer Plus 2013" config="qees/reto-dimmer-plus.xml"/>
-		<Product type="3103" id="0001" name="RETO Plug-in Switch Plus" config="qees/reto-plugin-switch.xml" />
-	</Manufacturer>
-	<Manufacturer id="0355" name="Qingdao hongyu cles air conditioning co.ltd">
-	</Manufacturer>
-	<Manufacturer id="012A" name="Qolsys">
-	</Manufacturer>
-	<Manufacturer id="0159" name="Qubino (Goap)">
-		<Product type="0001" id="0001" name="ZMNHDA2 Flush Dimmer" config="qubino/ZMNHDA2.xml"/>
-		<Product type="0001" id="0051" name="ZMNHDD1 Flush Dimmer" config="qubino/ZMNHDDx.xml"/>
-		<Product type="0001" id="0052" name="ZMNHSDx Din Dimmer" config="qubino/ZMNHSDx.xml"/>
-		<Product type="0001" id="0053" name="ZMNHVDx Flush Dimmer 0-10V" config="qubino/ZMNHVDx.xml"/>
-		<Product type="0001" id="0054" name="ZMNHWD1 Flush RGBW Dimmer" config="qubino/ZMNHWD1.xml"/>
-		<Product type="0002" id="0001" name="ZMNHBA2 Flush 2 Relays" config="qubino/ZMNHBA2.xml"/>
-		<Product type="0002" id="0051" name="ZMNHBDx Flush 2 Relays" config="qubino/ZMNHBDx.xml"/>
-		<Product type="0002" id="0002" name="ZMNHAA2 Flush 1 Relay" config="qubino/ZMNHAA2.xml"/>
-		<Product type="0002" id="0052" name="ZMNHADx Flush 1 Relay" config="qubino/ZMNHADx.xml"/>
-		<Product type="0002" id="0053" name="ZMNHND1 Flush 1D relay" config="qubino/ZMNHNDx.xml"/>
-		<Product type="0002" id="0054" name="ZMNHYD1 Smart Plug 16A" config="qubino/ZMNHYDx.xml"/>
-		<Product type="0003" id="0002" name="ZMNHCA2 Flush Shutter" config="qubino/ZMNHCA2.xml"/>
-		<Product type="0003" id="0052" name="ZMNHCDx Flush Shutter" config="qubino/ZMNHCDx.xml"/>
-		<Product type="0003" id="0053" name="ZMNHOD1 Flush Shutter DC" config="qubino/ZMNHODx.xml"/>
-		<Product type="0004" id="0001" name="ZMNHJA2 Flush Dimmer Pilot Wire" config="qubino/ZMNHJA2.xml"/>
-		<Product type="0004" id="0051" name="ZMNHJD1 Flush Dimmer Pilot Wire" config="qubino/ZMNHJD1.xml"/>
-		<Product type="0004" id="0052" name="ZMNHUD1 DIN Pilot Wire" config="qubino/ZMNHUD1.xml"/>
-		<Product type="0005" id="0001" name="ZMNHIA2 Flush on/off thermostat" config="qubino/ZMNHIA2.xml"/>
-		<!--<Product type="0005" id="0051" name="ZMNHIDx Flush on/off thermostat (H1S1P1)" config="qubino/ZMNHIDxS1.xml"/>-->
-		<Product type="0005" id="0051" name="ZMNHIDx Flush on/off thermostat (H1S2P1)" config="qubino/ZMNHIDxS2.xml"/>
-		<Product type="0005" id="0052" name="ZMNHKDx Flush Heat and Cool thermostat" config="qubino/ZMNHKDx.xml"/>
-		<Product type="0005" id="0053" name="ZMNHLDx Flush PWM thermostat" config="qubino/ZMNHLDx.xml"/>
-		<Product type="0005" id="0003" name="ZMNHLA2 Flush PWM thermostat" config="qubino/ZMNHLAx.xml"/>
-		<!--<Product type="0007" id="0052" name="ZMNHTDx Smart meter S1 S2 S3" config="qubino/ZMNHTDxS3.xml"/>-->
-		<Product type="0007" id="0052" name="ZMNHTDx Smart meter S4 S5 S6" config="qubino/ZMNHTDx.xml"/>
-		<Product type="0007" id="0053" name="ZMNHZDx Weather Station" config="qubino/ZMNHZDx.xml"/>
-		<Product type="0007" id="0054" name="ZMNHXDx 3-phase Smart Meter" config="qubino/ZMNHXDx.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0130" name="Quby">
-		<Product type="0001" id="0001" name="Energy Management System"/>
-	</Manufacturer>
-	<Manufacturer id="0163" name="Queenlock">
-		<Product type="3001" id="0301" name="ZW-702 Door Lock"/>
-	</Manufacturer>
-	<Manufacturer id="0142" name="Rademacher Gerate-Elektronik GmbH">
-	</Manufacturer>
-	<Manufacturer id="0098" name="Radio Thermostat Company of America">
-	</Manufacturer>
-	<Manufacturer id="0314" name="Raonix Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="008E" name="Raritan">
-	</Manufacturer>
-	<Manufacturer id="040F" name="RATOC Systems Inc">
-	</Manufacturer>
-	<Manufacturer id="0370" name="Raylios">
-	</Manufacturer>
-	<Manufacturer id="021E" name="Red Bee Co. Ltd">
-	</Manufacturer>
-	<Manufacturer id="022C" name="Remote Solution">
-	</Manufacturer>
-	<Manufacturer id="0255" name="Remote Technologies Incorporated">
-	</Manufacturer>
-	<Manufacturer id="5254" name="Remotec">
-		<Product type="0000" id="531f" name="Z-URC" config="remotec/zurc.xml"/>
-		<Product type="0001" id="8380" name="ZRC-100"/>
-		<Product type="0101" id="8371" name="ZXT-310EU"/>
-		<Product type="0100" id="8377" name="ZXT-120US" config="remotec/zxt-120.xml"/>
-		<Product type="0101" id="8377" name="ZXT-120EU" config="remotec/zxt-120.xml"/>
-		<Product type="0102" id="8377" name="ZXT-120AU" config="remotec/zxt-120.xml"/>
-		<Product type="0103" id="8377" name="ZXT-120IN" config="remotec/zxt-120.xml"/>
-		<Product type="0106" id="8377" name="ZXT-120RU" config="remotec/zxt-120.xml"/>
-		<Product type="0107" id="8377" name="ZXT-120IL" config="remotec/zxt-120.xml"/>
-		<Product type="0108" id="8377" name="ZXT-120BR" config="remotec/zxt-120.xml"/>
-		<Product type="0100" id="8490" name="ZXT-600US AC MASTER" config="remotec/zxt-600.xml"/>
-		<Product type="0101" id="8490" name="ZXT-600EU AC MASTER" config="remotec/zxt-600.xml"/>
-		<Product type="0102" id="8490" name="ZXT-600AU AC MASTER" config="remotec/zxt-600.xml"/>
-		<Product type="0103" id="8490" name="ZXT-600IN AC MASTER" config="remotec/zxt-600.xml"/>
-		<Product type="0001" id="8510" name="ZRC-90" config="remotec/zrc-90.xml"/>
-		<Product type="0002" id="8510" name="ZRC-90" config="remotec/zrc-90.xml"/>
-		<Product type="8201" id="8120" name="ZFM-X10EU Dual Mode Insert Module "/>
-		<Product type="8000" id="0002" name="ZFM-80" config="remotec/zfm-80.xml" />
-		<Product type="0200" id="8031" name="ZTS-110" config="remotec/zts-110.xml" />
-		<Product type="0202" id="8031" name="ZTS-110" config="remotec/zts-110.xml" />
-		<Product type="0200" id="8170" name="ZTS-500US" config="remotec/zts-500.xml" />
-	</Manufacturer>
-	<Manufacturer id="039B" name="Reply S.p.A.">
-	</Manufacturer>
-	<Manufacturer id="0010" name="Residential Control Systems">
-		<Product type="0001" id="0002" name="TZ43 Thermostat" config="rcs/therm0009.xml" />
-		<Product type="0001" id="0005" name="TZ43-IHD SMUD Thermostat" config="rcs/therm0005.xml" />
-		<Product type="0001" id="0007" name="TZ45-IHD SMUD Thermostat" config="rcs/therm0007.xml" />
-		<Product type="0001" id="0009" name="TZ45 Thermostat" config="rcs/therm0009.xml" />
-		<Product type="0001" id="000a" name="TZ4Z-IHD RCS Thermostat" />
-		<Product type="454d" id="3532" name="EM52-ZW Z-Wave Home Energy Meter" config="rcs/em52-zw.xml" />
-		<Product type="504d" id="3132" name="PM12-ZW Z-Wave Power Monitoring Module" config="rcs/pm12-zw.xml" />
-	</Manufacturer>
-	<Manufacturer id="0216" name="RET Nanjing Intelligence System">
-	</Manufacturer>
-	<Manufacturer id="0153" name="Revolv">
-	</Manufacturer>
-	<Manufacturer id="035E" name="RISCO Group">
-	</Manufacturer>
-	<Manufacturer id="023B" name="ROC-Connect">
-	</Manufacturer>
-	<Manufacturer id="0197" name="RPE Ajax LLC">
-	</Manufacturer>
-	<Manufacturer id="0065" name="RS Scene Automation">
-	</Manufacturer>
-	<Manufacturer id="029D" name="Rubetek">
-	</Manufacturer>
-	<Manufacturer id="0290" name="S1">
-	</Manufacturer>
-	<Manufacturer id="023C" name="SafeTech Products">
-	</Manufacturer>
-	<Manufacturer id="0201" name="Samsung Electronics">
-	</Manufacturer>
-	<Manufacturer id="022E" name="Samsung SDS">
-	</Manufacturer>
-	<Manufacturer id="0093" name="San Shih Electrical Enterprise">
-	</Manufacturer>
-	<Manufacturer id="012C" name="SANAV">
-	</Manufacturer>
-	<Manufacturer id="0307" name="SATCO Products">
-	</Manufacturer>
-	<Manufacturer id="0318" name="SBCK Corp">
-	</Manufacturer>
-	<Manufacturer id="003b" name="Schlage (Allegion)">
-		<Product type="634b" id="504c" name="FE599GR Wireless Door Lock"/>
-		<Product type="6341" id="5044" name="BE469 Touchscreen Deadbolt" config="schlage/BE469.xml"/>
-		<Product type="6349" id="5044" name="BE468 Touchscreen Deadbolt" config="schlage/BE468.xml"/>
-		<Product type="0001" id="0469" name="BE469ZP Connect Smart Deadbolt" config="schlage/BE469ZP.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0097" name="Schlage Link (Wintop)">
-		<Product type="1182" id="4501" name="iTemp Dual Sensor" config="schlagelink/itemp.xml" />
-		<Product type="1188" id="4501" name="iTemp Dual Sensor" config="schlagelink/itemp.xml" />
-		<Product type="6131" id="4501" name="Mini Keypad RFID" config="schlagelink/minikeypad.xml" />
-		<Product type="6131" id="4101" name="Mini Keypad RFID" config="schlagelink/minikeypad.xml" />
-		<Product type="6941" id="5501" name="LE120 Appliance Module"/>
-		<Product type="6943" id="4501" name="On-Wall Power Socket"/>
-	</Manufacturer>
-	<Manufacturer id="001F" name="Scientia Technologies">
-	</Manufacturer>
-	<Manufacturer id="029A" name="Scout Alarm">
-	</Manufacturer>
-	<Manufacturer id="011E" name="Secure Wireless">
-	</Manufacturer>
-	<Manufacturer id="0167" name="SecureNet Technologies">
-	</Manufacturer>
-	<Manufacturer id="0182" name="Securifi">
-	</Manufacturer>
-	<Manufacturer id="0069" name="Seluxit">
-	</Manufacturer>
-	<Manufacturer id="0043" name="Senmatic A/S">
-	</Manufacturer>
-	<Manufacturer id="019a" name="Sensative">
-		<Product type="0003" id="0003" name="Strips" config="sensative/strips.xml" />
-		<Product type="0003" id="000a" name="Strips Comfort" config="sensative/stripscomfort.xml" />
-	</Manufacturer>
-	<Manufacturer id="0044" name="Sequoia Tech">
-	</Manufacturer>
-	<Manufacturer id="0151" name="Sercomm">
-		<Product type="0002" id="0001" name="SW-CLP01-EU Clamp Power Meter"/>
-	</Manufacturer>
-	<Manufacturer id="0378" name="Shandong Bittel Intelligent Technology">
-	</Manufacturer>
-	<Manufacturer id="030B" name="Shandong Smart Life Data System">
-	</Manufacturer>
-	<Manufacturer id="0215" name="Shangdong Smart Life Data System">
-	</Manufacturer>
-	<Manufacturer id="023E" name="Shanghai Dorlink Intelligent Technologies">
-	</Manufacturer>
-	<Manufacturer id="0205" name="Shanghai Longchuang Eco-energy Systems">
-	</Manufacturer>
-	<Manufacturer id="010B" name="Sharp">
-	</Manufacturer>
-	<Manufacturer id="0357" name="Shenzhen 3nod Acousticlink">
-	</Manufacturer>
-	<Manufacturer id="021A" name="SHENZHEN AOYA INDUSTRY">
-	</Manufacturer>
-	<Manufacturer id="0286" name="Shenzhen Easyhome Technology">
-	</Manufacturer>
-	<Manufacturer id="021C" name="Shenzhen iSurpass Technology">
-	</Manufacturer>
-	<Manufacturer id="037A" name="Shenzhen JBT Smart Lighting">
-	</Manufacturer>
-	<Manufacturer id="021D" name="Shenzhen Kaadas Intelligent Technology">
-	</Manufacturer>
-	<Manufacturer id="0211" name="Shenzhen Liao Wang Tong Da Technology">
-	</Manufacturer>
-	<Manufacturer id="0406" name="Shenzhen Meian Technology">
-	</Manufacturer>
-	<Manufacturer id="0258" name="Shenzhen Neo Electronics Co Ltd">
-		<Product type="0003" id="0082" name="Door/Window Detector" config="shenzen_neo/nas-ds01z.xml"/>
-		<Product type="0003" id="1082" name="Door/Window Detector" config="shenzen_neo/nas-ds01z.xml"/>
-		<Product type="0003" id="2082" name="Door/Window Detector" config="shenzen_neo/nas-ds01z.xml"/>
-		<Product type="0003" id="0087" name="Power plug 12A" config="shenzen_neo/nas-wr01z.xml"/>
-		<Product type="0003" id="1087" name="Power plug 12A" config="shenzen_neo/nas-wr01z.xml"/>
-		<Product type="0200" id="1027" name="Power plug 12A" config="shenzen_neo/nas-wr01ze.xml"/>
-		<Product type="0003" id="0083" name="Battery Powered PIR Sensor" config="shenzen_neo/nas-pd01z.xml"/>
-		<Product type="0003" id="1083" name="Battery Powered PIR Sensor" config="shenzen_neo/nas-pd01z.xml"/>
-		<Product type="0003" id="108d" name="Battery Powered PIR Sensor V2" config="shenzen_neo/nas-pd02z.xml"/>
-		<!--<Product type="0003" id="108d" name="Battery Powered PIR Sensor with temp" config="shenzen_neo/nas-pd01z.xml"/>-->
-		<Product type="0003" id="0085" name="Water Leakage Detector" config="shenzen_neo/nas-ws02z.xml"/>
-		<Product type="0003" id="1085" name="Water Leakage Detector" config="shenzen_neo/nas-ws02z.xml"/>
-		<Product type="0003" id="6085" name="Water Leakage Detector" config="shenzen_neo/nas-ws02z.xml"/>
-		<Product type="0003" id="0088" name="Siren Alarm" config="shenzen_neo/nas-ab01z.xml"/>
-		<Product type="0003" id="1088" name="Siren Alarm" config="shenzen_neo/nas-ab01z.xml"/>
-		<Product type="0003" id="008a" name="SOS/Remote Control" config="shenzen_neo/nas-rc01z.xml"/>
-		<Product type="0003" id="108a" name="SOS/Remote Control" config="shenzen_neo/nas-rc01z.xml"/>
-		<Product type="0003" id="008b" name="Wall Switch (2 channels)" config="shenzen_neo/ls02ch.xml"/>
-		<Product type="0003" id="108b" name="Wall Switch (2 channels)" config="shenzen_neo/ls02ch.xml"/>
-		<Product type="0003" id="008c" name="Wall Switch (1 channel)" config="shenzen_neo/ls01ch.xml"/>
-		<Product type="0003" id="108c" name="Wall Switch (1 channel)" config="shenzen_neo/ls01ch.xml"/>
-	</Manufacturer>
-	<Manufacturer id="032C" name="Shenzhen Saykey Technology">
-	</Manufacturer>
-	<Manufacturer id="036C" name="Shenzhen Sen5 Technology">
-	</Manufacturer>
-	<Manufacturer id="0381" name="Shenzhen Thingsview Tech">
-	</Manufacturer>
-	<Manufacturer id="0250" name="Shenzhen Tripath Digital Audio Equipment">
-	</Manufacturer>
-	<Manufacturer id="0356" name="Shenzhen ZHIQU Technology Limited">
-	</Manufacturer>
-	<Manufacturer id="0081" name="SIEGENIA-AUBI KG">
-	</Manufacturer>
-	<Manufacturer id="0267" name="Simon">
-		<Product type="0001" id="0000" name="S100 Socket iO" config="simon/10002034-13X.xml"/>
-		<Product type="0001" id="00da" name="S100 Socket iO" config="simon/10002034-13X.xml"/>
-		<Product type="0009" id="0022" name="S100 Socket iO" config="simon/10002041-13X.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0045" name="Sine Wireless">
-	</Manufacturer>
-	<Manufacturer id="0266" name="Siterwell Technology HK">
-	</Manufacturer>
-	<Manufacturer id="0282" name="Smart Electronic Industrial">
-	</Manufacturer>
-	<Manufacturer id="0046" name="Smart Products">
-	</Manufacturer>
-	<Manufacturer id="026A" name="SmartAll">
-	</Manufacturer>
-	<Manufacturer id="0323" name="SmartHome Partner GmbH">
-	</Manufacturer>
-	<Manufacturer id="024F" name="Smartly AS">
-	</Manufacturer>
-	<Manufacturer id="0150" name="SmartThings">
-	</Manufacturer>
-	<Manufacturer id="0102" name="SMK Manufacturing">
-	</Manufacturer>
-	<Manufacturer id="029C" name="SoftAtHome">
-	</Manufacturer>
-	<Manufacturer id="0047" name="Somfy">
-	</Manufacturer>
-	<Manufacturer id="0394" name="SONG JIANG YUN-AN TECHNOLOGY">
-	</Manufacturer>
-	<Manufacturer id="0402" name="Sony Mobile Communications">
-	</Manufacturer>
-	<Manufacturer id="0274" name="Soosan Hometech">
-	</Manufacturer>
-	<Manufacturer id="035A" name="SOREL GmbH">
-	</Manufacturer>
-	<Manufacturer id="026e" name="Springs Window Fashions (Graber)">
-		<Product type="4252" id="5a31" name="BRZ1 Remote Control" config="graber/brz1.xml"/>
-		<Product type="5253" id="5a31" name="RSZ1 Roller Shade"/>
-		<Product type="5643" id="5a31" name="VCZ1 Virtual Cord Remote Control" config="graber/vcz1.xml"/>
-		<Product type="4353" id="5a31" name="CSZ1 Cellular Shade"/>
-	</Manufacturer>
-	<Manufacturer id="026F" name="Sprue Safety Products">
-	</Manufacturer>
-	<Manufacturer id="0124" name="Square Connect">
-	</Manufacturer>
-	<Manufacturer id="021B" name="ST&amp;T Electric Corporation">
-	</Manufacturer>
-	<Manufacturer id="0358" name="Star Automation">
-	</Manufacturer>
-	<Manufacturer id="0259" name="Starkoff">
-	</Manufacturer>
-	<Manufacturer id="0265" name="StarVedia">
-	</Manufacturer>
-	<Manufacturer id="0271" name="Steinel">
-		<Product type="0002" id="1a72" name="IS140-2" config="steinel/is140-2.xml"/>
-		<Product type="0001" id="1a74" name="RS LED D2" config="steinel/rs-led-d2.xml"/>
-		<Product type="0001" id="1a73" name="XLED HOME 2" config="steinel/xled-home-2.xml"/>
-                <Product type="0001" id="1a75" name="L810 LED iHF" config="steinel/l810-led-ihf.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0239" name="Stelpro">
-		<Product type="0001" id="0001" name="STZW402+ Electronic Thermostat" config="stelpro/stzw402.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0217" name="Strattec Advanced Logic">
-	</Manufacturer>
-	<Manufacturer id="0168" name="STRATTEC Security">
-	</Manufacturer>
-	<Manufacturer id="0105" name="Sumitomo">
-	</Manufacturer>
-	<Manufacturer id="028B" name="Sunjet Components">
-	</Manufacturer>
-	<Manufacturer id="0054" name="Superna">
-	</Manufacturer>
-	<Manufacturer id="0191" name="Swann Communications">
-	</Manufacturer>
-	<Manufacturer id="0339" name="SWYCS">
-	</Manufacturer>
-	<Manufacturer id="0166" name="Swiid (CBCC Domotique SAS)">
-		<Product type="0100" id="0100" name="SwiidInter" config="swiid/swiidinter.xml"/>
-		<Product type="2007" id="0706" name="SwiidPlug" config="swiid/swiidplug.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0009" name="Sylvania">
-	</Manufacturer>
-	<Manufacturer id="0136" name="Systech Corporation">
-	</Manufacturer>
-	<Manufacturer id="0276" name="Systemair Sverige AB">
-	</Manufacturer>
-	<Manufacturer id="0375" name="T&amp;W">
-	</Manufacturer>
-	<Manufacturer id="0235" name="TAEWON Lighting">
-	</Manufacturer>
-	<Manufacturer id="0262" name="Taiwan Fu Hsing Industrial">
-	</Manufacturer>
-	<Manufacturer id="0264" name="Taiwan iCATCH">
-	</Manufacturer>
-	<Manufacturer id="0186" name="Team Digital Limited">
-	</Manufacturer>
-	<Manufacturer id="0089" name="Team Precision PCL">
-	</Manufacturer>
-	<Manufacturer id="0240" name="Technicolor">
-	</Manufacturer>
-	<Manufacturer id="000A" name="Techniku">
-	</Manufacturer>
-	<Manufacturer id="012F" name="Tecom">
-	</Manufacturer>
-	<Manufacturer id="0012" name="Tell It Online">
-		<Product type="0001" id="0001" name="Switchkeeper Plug-in Appliance Module"/>
-	</Manufacturer>
-	<Manufacturer id="0176" name="Telldus">
-		<Product type="0003" id="0001" name="TZWP-100 Plug-in Switch" config="telldus/tzwp100.xml"/>
-		<Product type="0003" id="0003" name="TZWP-102 Plug-in Switch" config="telldus/tzwp102.xml"/>
-		<Product type="0005" id="0001" name="TZDW-100 Magnet Switch" config="telldus/tzdw100.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0048" name="Telsey">
-	</Manufacturer>
-	<Manufacturer id="017E" name="Telular">
-	</Manufacturer>
-	<Manufacturer id="0397" name="Teptron AB">
-	</Manufacturer>
-	<Manufacturer id="005C" name="Terra Optima B.V.">
-	</Manufacturer>
-	<Manufacturer id="010c" name="There Corporation">
-		<Product type="0001" id="0001" name="ThereGate"/>
-	</Manufacturer>
-	<Manufacturer id="019b" name="ThermoFloor AS">
-		<Product type="0001" id="0001" name="Heatit Thermostat TF 021" config="thermofloor/heatit021.xml"/>
-		<Product type="0003" id="0202" name="Heatit Thermostat TF 056" config="thermofloor/heatit056.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0317" name="Think Simple srl">
-	</Manufacturer>
-	<Manufacturer id="022A" name="TIMEVALVE">
-	</Manufacturer>
-	<Manufacturer id="033B" name="Tingcore AB">
-	</Manufacturer>
-	<Manufacturer id="0118" name="TKB Home">
-		<Product type="0001" id="0001" name="TZ88 Smart Energy Plug-in Switch" config="wenzhou/tz88.xml"/>
-		<Product type="0001" id="0011" name="TZ88 Smart Energy Plug-in Switch" config="wenzhou/tz88.xml"/>
-		<Product type="0002" id="0001" name="SM103 Door/Window Sensor" config="wenzhou/sm103.xml"/>
-		<Product type="0002" id="0002" name="TSP01 3 in 1 PIR Motion Sensor" config="wenzhou/tsp01.xml" />
-		<Product type="0003" id="0002" name="TZ68 On/Off Switch Socket" config="wenzhou/tz68.xml"/>
-		<Product type="0003" id="0003" name="TZ56 Wall Switch On/Off" config="wenzhou/tz56.xml"/>
-		<Product type="0003" id="0004" name="TZ55 Wall Switch Dimmer" config="wenzhou/tz55.xml"/>
-		<Product type="0004" id="0002" name="TZ69 Smart energy plug in switch" config="wenzhou/tz69.xml"/>
-		<Product type="0116" id="3119" name="TZ69F Smart energy plug in switch" config="wenzhou/tz69.xml"/>
-		<Product type="000b" id="0001" name="ST812 Flood Detector" config="everspring/st812.xml"/>
-		<Product type="0808" id="0808" name="TZ65 Dual Wall Dimmer" config="wenzhou/tz65d.xml"/>
-		<Product type="0101" id="0103" name="TZ68 On/Off Switch Socket" config="wenzhou/tz68.xml"/>
-		<Product type="0102" id="1020" name="TZ66D Dual Wall Switch" config="wenzhou/tz66d.xml"/>
-		<Product type="0202" id="0611" name="TZ67 Wall Plug Dimmer" config="wenzhou/tz67.xml"/>
-		<Product type="0311" id="0103" name="TZ69E Smart energy plug in switch" config="wenzhou/tz69.xml"/>
-		<Product type="0311" id="0202" name="TZ56S On/Off wall switch" config="wenzhou/tz56s.xml"/>
-		<Product type="0311" id="0203" name="TZ57 Two channel switch" config="wenzhou/tz57.xml"/>
-		<Product type="0311" id="0305" name="TZ79 Power meter Relay Switch" config="wenzhou/tz79.xml"/>
-		<Product type="0311" id="0304" name="TZ74 Dual Switch" config="wenzhou/tz74.xml"/>
-	</Manufacturer>
-	<Manufacturer id="011C" name="TKH Group / Eminent">
-	</Manufacturer>
-	<Manufacturer id="0327" name="TMC Technology">
-	</Manufacturer>
-	<Manufacturer id="0326" name="TODKI">
-	</Manufacturer>
-	<Manufacturer id="0319" name="Toledo">
-	</Manufacturer>
-	<Manufacturer id="034F" name="TONG LUNG METAL INDUSTRY">
-	</Manufacturer>
-	<Manufacturer id="0333" name="Toshiba Visual Solution">
-	</Manufacturer>
-	<Manufacturer id="0283" name="TP-Link Technologies">
-	</Manufacturer>
-	<Manufacturer id="008b" name="Trane Corporation">
-		<Product type="5452" id="5431" name="Model TZEMT400AB32MAA" config="trane/TZEMT400AB32MAA.xml"/>
-		<Product type="5452" id="5433" name="Model TZEMT400BB32MAA" config="trane/TZEMT400BB32MAA.xml"/>
-		<Product type="5452" id="5436" name="Model TZEMT400BB32MAA" config="trane/TZEMT400BB32MAA.xml"/>
-		<Product type="5452" id="5442" name="Model TZEMT524AA21MA" config="trane/TZEMT524AA21MA.xml"/>
-		<Product type="5452" id="5439" name="Model TCONT624AS42DAA" config="trane/TZEMT524AA21MA.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0066" name="TrickleStar">
-	</Manufacturer>
-	<Manufacturer id="006b" name="Tricklestar">
-	</Manufacturer>
-	<Manufacturer id="0055" name="Tridium">
-	</Manufacturer>
-	<Manufacturer id="0111" name="Tronico Technology Co. Ltd.">
-		<Product type="8200" id="0200" name="ZDS-100"/>
-	</Manufacturer>
-	<Manufacturer id="0330" name="Tronika">
-		<Product type="0003" id="a10d" name="Touch Panel Wall Controller - ZSC-01D" config="tronika/zsc01d.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0049" name="Twisthink">
-	</Manufacturer>
-	<Manufacturer id="0270" name="Ubitech">
-	</Manufacturer>
-	<Manufacturer id="0152" name="UFairy G.R. Tech">
-		<Product type="0202" id="0511" name="GR105 Auto Valve" config="gr/gr105.xml"/>
-		<Product type="0003" id="0512" name="GR105n Auto Valve" config="gr/gr105n.xml"/>
-		<Product type="0500" id="0003" name="ZSE02 Motion Sensor"/>
-	</Manufacturer>
-	<Manufacturer id="0193" name="Universal Devices">
-	</Manufacturer>
-	<Manufacturer id="0020" name="Universal Electronics Inc.">
-		<Product type="8007" id="1390" name="Wireless Lighting Control"/>
-		<Product type="8007" id="1391" name="45601 Advanced Remote"/>
-	</Manufacturer>
-	<Manufacturer id="0183" name="Universe Future">
-	</Manufacturer>
-	<Manufacturer id="0209" name="UTC Fire and Security Americas Corp">
-	</Manufacturer>
-	<Manufacturer id="0388" name="Vates">
-	</Manufacturer>
-	<Manufacturer id="030F" name="Vemmio">
-	</Manufacturer>
-	<Manufacturer id="0198" name="Venstar">
-	</Manufacturer>
-	<Manufacturer id="008c" name="Vera Control">
-		<Product type="0001" id="0001" name="Vera Lite"/>
-	</Manufacturer>
-	<Manufacturer id="0080" name="Vero Duco">
-	</Manufacturer>
-	<Manufacturer id="0237" name="Vestel Elektronik Ticaret ve Sanayi">
-	</Manufacturer>
-	<Manufacturer id="0053" name="Viewsonic">
-	</Manufacturer>
-	<Manufacturer id="005e" name="ViewSonic Corporation">
-	</Manufacturer>
-	<Manufacturer id="0007" name="Vimar CRS">
-	</Manufacturer>
-	<Manufacturer id="0188" name="Vipa-Star">
-	</Manufacturer>
-	<Manufacturer id="010a" name="Vitrum (VDA)">
-		<Product type="1100" id="4900" name="Vitrum I EU Wireless Dimmer" config="vitrum/vitrumBS.xml"/>
-		<Product type="1100" id="4a00" name="Vitrum II EU Wireless Dimmer" config="vitrum/vitrumBS.xml"/>
-		<Product type="1100" id="4b00" name="Vitrum III EU Wireless Dimmer" config="vitrum/vitrumBS.xml"/>
-		<Product type="1200" id="5100" name="Vitrum I EU Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="1200" id="5200" name="Vitrum II EU Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="1200" id="5300" name="Vitrum III EU Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="1200" id="5400" name="Vitrum IV EU Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="1300" id="5A00" name="Vitrum II EU Roller Blind Control" config="vitrum/vitrumBS.xml"/>
-		<Product type="2100" id="8a00" name="Vitrum II BS Wireless Dimmer" config="vitrum/vitrumBS.xml"/>
-		<Product type="2200" id="9100" name="Vitrum I BS Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="2200" id="9200" name="Vitrum II BS Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="2200" id="9400" name="Vitrum IV BS Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="4400" id="6400" name="Vitrum IV EU Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="3400" id="6400" name="Vitrum IV EU Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="1400" id="6600" name="Vitrum VI EU Wireless On-off" config="vitrum/vitrumBS.xml"/>
-		<Product type="1400" id="6100" name="Vitrum I EU Wireless On-off" config="vitrum/vitrumBS.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0109" name="Vision Security">
-		<Product type="1001" id="0101" name="ZU1401 Z-Wave USB Stick"/>
-		<Product type="1001" id="0104" name="ZU1401 Z-Wave USB Stick"/>
-		<Product type="1001" id="0105" name="ZU1401 Z-Wave USB Stick"/>
-		<Product type="2001" id="0101" name="ZD2102 US Door/Window Sensor" config="vision/zd2102.xml"/>
-		<Product type="2001" id="0102" name="ZD2102 AU Door/Window Sensor" config="vision/zd2102.xml"/>
-		<Product type="2001" id="0104" name="ZD2102 JP Door/Window Sensor" config="vision/zd2102.xml"/>
-		<Product type="2001" id="0105" name="ZD2102 EU Door/Window Sensor" config="vision/zd2102.xml"/>
-		<Product type="2001" id="0106" name="ZD2102 EU Door/Window Sensor" config="vision/zd2102.xml"/>
-		<Product type="2002" id="0201" name="ZP3102 PIR Motion Sensor" config="vision/zp3102.xml"/>
-		<Product type="2002" id="0202" name="ZP3102 PIR Motion Sensor" config="vision/zp3102.xml"/>
-		<Product type="2002" id="0203" name="ZP3102 PIR Motion Sensor" config="vision/zp3102.xml"/>
-		<Product type="2002" id="0204" name="ZP3102 PIR Motion Sensor" config="vision/zp3102.xml"/>
-		<Product type="2002" id="0205" name="ZP3102 PIR Motion Sensor" config="vision/zp3102.xml"/>
-		<Product type="2003" id="0301" name="ZS5101 Shock and Vibration Sensor" config="vision/zs5101eu.xml"/>
-		<Product type="2003" id="0302" name="ZS5101 Shock and Vibration Sensor" config="vision/zs5101eu.xml"/>
-		<Product type="2003" id="0306" name="ZS5101 Shock and Vibration Sensor" config="vision/zs5101eu.xml"/>
-		<Product type="2003" id="0307" name="ZS5101 Shock and Vibration Sensor" config="vision/zs5101eu.xml"/>
-		<Product type="2004" id="0403" name="ZS6101 Smoke Detector"/>
-		<Product type="2005" id="0503" name="ZM1601 Battery Operated Siren" config="vision/zm1601eu.xml"/>
-		<Product type="2005" id="0505" name="ZM1601 Battery Operated Siren" config="vision/zm1601eu.xml"/>
-		<Product type="2005" id="0508" name="ZM1601EU-5 Battery Operated Siren" config="vision/zm1601eu5.xml"/>
-		<Product type="2006" id="0610" name="ZM1701 Electronic Deadbolt Door Lock without Handle"/>
-		<Product type="2006" id="0620" name="ZM1702 Electronic Deadbolt Door Lock with Handle"/>
-		<Product type="2006" id="0621" name="ZM1701 Electronic Deadbolt Door Lock without Handle"/>
-		<Product type="2007" id="0703" name="Plug-in Switch"/>
-		<Product type="2008" id="0803" name="ZL7101 Plug-in Dimmer Module"/>
-		<Product type="2009" id="0903" name="ZM1602 Main Operated Siren" config="vision/zm1602eu.xml"/>
-		<Product type="2009" id="0908" name="ZM1602+ DC/AC Power Siren" config="vision/zm1602eu5.xml"/>
-		<Product type="200a" id="0a02" name="ZG8101 Garage Door Detector" config="vision/zg8101.xml"/>
-		<Product type="200c" id="0c02" name="ZL7431 In-Wall Switch Single Relay" config="vision/zl7431.xml"/>
-		<Product type="200f" id="0f02" name="ZS6301 CO Detector"/>
-		<Product type="200f" id="0f03" name="ZS6301 CO Detector"/>
-		<Product type="2012" id="1203" name="ZR1202 Repeater"/>
-		<Product type="2014" id="1401" name="ZL7101 Plug-in Dimmer Module"/>
-		<Product type="2017" id="1717" name="ZL7432 In-Wall Switch, Dual Relay"/>
-		<Product type="201a" id="1aa4" name="ZL7261 Plug-in Power Monitor" config="vision/zl7261.xml"/>
-		<Product type="201c" id="1c01" name="ZF5201 Flood sensor" config="vision/zf5201.xml"/>
-		<Product type="201f" id="1f10" name="ZD2201 Multisensor 4in1" config="vision/zd2201.xml"/>
-		<Product type="201f" id="1f20" name="ZD2301 Multisensor 4in1" config="vision/zd2301.xml"/>
-		<Product type="2021" id="2101" name="ZP3111 Multisensor 4in1" config="vision/zp3111.xml"/>
-		<Product type="2022" id="2201" name="ZD2105US-5 Recessed Door/Window Sensor" config="vision/zd2105us5.xml"/>
-		<Product type="3001" id="0104" name="ZM1602 Main Operated Siren"/>
-	</Manufacturer>
-	<Manufacturer id="004a" name="Visualize">
-	</Manufacturer>
-	<Manufacturer id="0058" name="Vitelec">
-	</Manufacturer>
-	<Manufacturer id="0263" name="Viva Labs AS">
-	</Manufacturer>
-	<Manufacturer id="0156" name="Vivint">
-	</Manufacturer>
-	<Manufacturer id="017B" name="Vs-Safety AS">
-	</Manufacturer>
-	<Manufacturer id="004b" name="Watt Stopper">
-	</Manufacturer>
-	<Manufacturer id="0008" name="Wayne Dalton">
-		<Product type="0007" id="0020" name="WDTC-20 Thermostat" config="waynedalton/WDTC-20.xml"/>
-	</Manufacturer>
-	<Manufacturer id="019F" name="Webee Life">
-	</Manufacturer>
-	<Manufacturer id="0171" name="WeBeHome AB">
-		<Product type="0001" id="0001" name="WBH HG-900 Home Gateway"/>
-	</Manufacturer>
-	<Manufacturer id="011a" name="Wenzhou MTLC Electric Appliances (Enerwave)">
-		<Product type="0601" id="0901" name="ZWN-BPC Ceiling Mounted PIR Motion Sensor" config="enerwave/zwn-bpc.xml"/>
-		<Product type="0801" id="0b03" name="ZWN-SC7 7-Button Scene Controller" config="enerwave/zwn-sc7.xml"/>
-		<Product type="0101" id="0102" name="ZW15S 15A On/Off Switch" config="enerwave/zw15s.xml"/>
-		<Product type="0101" id="0603" name="ZW20R 20A TR Duplex Receptacle" config="enerwave/zw20r.xml"/>
-		<Product type="0111" id="0605" name="ZWN-RSM1 PLUS-Smart Single Relay Switch Module" config="enerwave/zwnrsm1plus.xml"/>
-		<!--<Product type="0111" id="0605" name="ZWN-RSM2-PLUS Smart Single Relay Switch Module" config="enerwave/zwnrsm2plus.xml"/>-->
-		<Product type="0111" id="0101" name="ZW20RM 20A TR Smart Meter Duplex Receptacle" config="enerwave/zw20rm.xml"/>
-		<Product type="0102" id="0201" name="ZW500D 500W In-Wall Preset Dimmer Switch" config="enerwave/zw500d.xml"/>
-		<Product type="0111" id="0105" name="ZW15RM Plus 15A TR Smart Meter Duplex Receptacle" config="enerwave/zw15rmplus.xml"/>
-	</Manufacturer>
-	<Manufacturer id="026C" name="Westcontrol AS">
-	</Manufacturer>
-	<Manufacturer id="0057" name="Whirlpool">
-	</Manufacturer>
-	<Manufacturer id="027B" name="White Rabbit">
-	</Manufacturer>
-	<Manufacturer id="0149" name="wiDom">
-		<Product type="0012" id="0104" name="UBS104 Universal Relay Switch" config="widom/UBS104.xml"/>
-		<Product type="1214" id="0304" name="UME304 Energy Driven Switch" config="widom/UME304C_S.xml"/>
-		<Product type="1214" id="0504" name="WDS Universal Double Switch" config="widom/WDS.xml"/>
-	</Manufacturer>
-	<Manufacturer id="012D" name="Wilshine Holding">
-	</Manufacturer>
-	<Manufacturer id="017F" name="Wink">
-	</Manufacturer>
-	<Manufacturer id="004c" name="Woodward Labs">
-	</Manufacturer>
-	<Manufacturer id="0242" name="Winytechnology">
-	</Manufacturer>
-	<Manufacturer id="0199" name="Wireless Maingate AB">
-	</Manufacturer>
-	<Manufacturer id="0269" name="WOOREE Lighting">
-	</Manufacturer>
-	<Manufacturer id="0003" name="Wrap">
-	</Manufacturer>
-	<Manufacturer id="022F" name="WRT Intelligent Technology">
-	</Manufacturer>
-	<Manufacturer id="012E" name="Wuhan NWD Technology">
-	</Manufacturer>
-	<Manufacturer id="004d" name="Xanboo">
-	</Manufacturer>
-	<Manufacturer id="037D" name="Xiamen AcTEC Electronics">
-	</Manufacturer>
-	<Manufacturer id="0000" name="Z-Wave (Sigma Designs)">
-		<Product type="0001" id="0001" name="UZB Z-Wave USB Adapter"/>
-	</Manufacturer>
-	<Manufacturer id="031D" name="Z-Wave Alliance">
-	</Manufacturer>
-	<Manufacturer id="004F" name="Z-Wave Technologia">
-	</Manufacturer>
-	<Manufacturer id="0115" name="Z-Wave.Me">
-		<Product type="0001" id="0001" name="Z-Wave USB Stick"/>
-		<Product type="0001" id="0069" name="Key Fob" config="zwave.me/kfob.xml"/>
-		<Product type="0002" id="0003" name="Z-Wave USB Stick"/>
-		<Product type="0024" id="0001" name="Floor Thermostat"/>
-		<Product type="0100" id="0001" name="ZME_KFOB 4 Button Key Fob" config="zwave.me/kfob.xml"/>
-		<Product type="0100" id="0004" name="ZME_WCD2 Double Paddle Wall Controller" config="zwave.me/ZME_WCD2.xml"/>
-		<Product type="0100" id="0101" name="ZME_WALLC-S Secure Wall Controller" config="zwave.me/ZME_WALLC-S.xml" />
-		<Product type="0100" id="0102" name="ZME_KFOB-S 4 Button Key Fob" config="zwave.me/ZME_KFOB-S.xml" />
-		<Product type="0100" id="0103" name="Popp KFOB-C Remote Control" config="zwave.me/popp_kfob-c.xml" />
-		<Product type="0100" id="0200" name="Smoke Detector"/>
-		<Product type="0100" id="0201" name="Smoke Detector"/>
-		<Product type="0100" id="0400" name="Z-Weather Wind and Weather Sensor" config="zwave.me/zweather.xml"/>
-		<Product type="0110" id="0001" name="Z-Uno" config="zwave.me/ZUno.xml"/>
-		<Product type="0200" id="0001" name="iTemp Temperature Sensor" config="zwave.me/iTemp.xml"/>
-		<Product type="0201" id="0001" name="iTemp Temperature Sensor" config="zwave.me/iTemp.xml"/>
-		<Product type="0201" id="0002" name="Thermostat"/>
-		<Product type="0201" id="0003" name="Binary Sensor"/>
-		<Product type="0400" id="0001" name="ZME_UZB1 USB Stick"/>
-		<Product type="1000" id="0001" name="ZME_054313Z Flush-Mountable Switch" config="zwave.me/ZME_05431.xml"/>
-		<Product type="1000" id="0002" name="ZME_06433/05433 Wall Flush-Mountable Dimmer" config="zwave.me/ZME_06433.xml"/>
-		<Product type="1000" id="0003" name="ZME_06436 Motor Control" config="zwave.me/ZME_06436.xml" />
-		<Product type="1000" id="0004" name="ZME_064435 Wall Controller" config="zwave.me/ZME_064435.xml"/>
-		<Product type="1000" id="0100" name="ZME_05461 Dual Load Wall Switch" config="zwave.me/ZME_05461.xml"/>
-		<Product type="1000" id="0200" name="ZME_064281 Wall Plug switch Schuko (IP44) Gen 5" config="zwave.me/ZME_064381.xml"/>
-		<Product type="1000" id="0300" name="ZME_RC2 Remote Control" config="zwave.me/ZME_RC2.xml"/>
-		<Product type="1100" id="0002" name="PLDE Plug-in Dimmer"/>
-	</Manufacturer>
-	<Manufacturer id="0147" name="Z-Wave.Me">
-		<Product type="0002" id="0003" name="RaZberry Controller"/>
-		<Product type="0400" id="0001" name="RaZberry Controller ZWave+"/>
-		<Product type="0400" id="0002" name="RaZberry Controller 2016 ZWave+"/>
-	</Manufacturer>
-	<Manufacturer id="024D" name="Z-works">
-	</Manufacturer>
-	<Manufacturer id="024E" name="zConnect">
-	</Manufacturer>
-	<Manufacturer id="004e" name="Zdata">
-	</Manufacturer>
-	<Manufacturer id="016F" name="Zhejiang Jiuxing Electric">
-	</Manufacturer>
-	<Manufacturer id="040E" name="ZHONGSHAN YunJia INTELLIGENT TECHNOLOGY">
-	</Manufacturer>
-	<Manufacturer id="036E" name="Zinno">
-	</Manufacturer>
-	<Manufacturer id="0131" name="Zipato">
-		<Product type="0001" id="0012" name="Micro Module Switch Double PAN04" config="zipato/pan04.xml" />
-		<Product type="0002" id="0002" name="RGBW LED Bulb" config="zipato/RGBBulb.xml" />
-		<Product type="0002" id="0003" name="Bulb 2" config="zipato/RGBBulb2.xml"/>
-		<Product type="0002" id="000c" name="PST02-A 4 in 1 Multi-Sensor" config="philio/pst02.xml"/>
-		<Product type="0004" id="000a" name="Indoor Siren" config="philio/pse02.xml"/>
-		<Product type="0005" id="0031" name="PH-PAD02.eu Smart Dimmer Socket E27" config="philio/pad02.xml"/>
-		<Product type="0006" id="001a" name="PH-PAB01.eu Micromodule Energy Meter" config="philio/phpab01.xml"/>
-		<Product type="6131" id="4501" name="Zipato Mini Keypad" config="zipato/MiniKeypad.xml" />
-		<Product type="2001" id="0106" name="VS-ZD2102 Door/Window Sensor" config="zipato/vszd2102.xml" />
-		<Product type="2002" id="0205" name="ZP3102-EU Multisensor Duo" config="zipato/zp3102.xml"/>
-		<Product type="201f" id="1f20" name="ZD2301 Multisensor 4in1" config="vision/zd2301.xml"/>
-		<Product type="8002" id="1000" name="Smart Smoke Sensor HS1SA-Z" config="heiman/HS1SA-Z.xml"/>
-		<Product type="8003" id="1000" name="Combustible Gas Sensor HS1CG-Z" config="heiman/HS1CG-Z.xml"/>
-		<Product type="8004" id="1000" name="Water Leakage Sensor HS1WL-Z" config="heiman/HS1WL-Z.xml"/>
-		<Product type="8005" id="1000" name="CO Sensor HS1CA-Z" config="heiman/HS1CA-Z.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0120" name="Zonoff">
-	</Manufacturer>
-	<Manufacturer id="027a" name="Zooz">
-		<Product type="0003" id="0082" name="ZSE08 Contact Sensor" config="zooz/zse08.xml" />
-		<Product type="0003" id="0083" name="ZSE09 Mini Sensor" config="zooz/zse09.xml" />
-		<Product type="b112" id="1f1c" name="ZEN22 Dimmer V2" config="zooz/zen22v2.xml"/>
-		<Product type="0003" id="0085" name="ZSE30 Water Sensor" config="zooz/zse30.xml" />
-		<Product type="0003" id="0087" name="ZEN07 Mini Plug" config="zooz/zen07.xml" />
-		<Product type="2021" id="2101" name="ZSE40 4-in-1 sensor" config="zooz/zse40.xml" />
-		<Product type="0003" id="0088" name="ZSE33 Smart Chime" config="zooz/zse33.xml" />
-		<Product type="0101" id="000a" name="ZEN06" config="zooz/zen06.xml"/>
-		<Product type="b111" id="251c" name="ZEN23 Toggle Switch V2" config="zooz/zen23.xml" />
-		<Product type="0101" id="000D" name="ZEN15 Power Switch" config="zooz/zen15.xml" />
-		<Product type="0301" id="0012" name="ZSE18 Motion Sensor" config="zooz/zse18.xml" />
-		<Product type="0401" id="0002" name="ZST10 S2 Z-Wave Plus USB Stick" />
-		<Product type="a000" id="a001" name="ZEN26 S2 On Off Wall Switch" config="zooz/zen26.xml" />
-		<Product type="a000" id="a002" name="ZEN27 S2 Dimmer Wall Switch" config="zooz/zen27.xml" />
-		<Product type="b111" id="1e1c" name="ZEN21 Switch V2.0" config="zooz/zen21.xml" />
-		<Product type="000c" id="0003" name="ZSE19 S2 Multisiren" config="zooz/zse19.xml" />
-		<Product type="a000" id="a004" name="ZEN20 V2.0 Power Strip" config="zooz/zen20v2.xml" />
-	</Manufacturer>
-	<Manufacturer id="015d" name="Zooz (Willis Electric)">
-		<Product type="0651" id="f51c" name="ZEN20 Power Strip" config="zooz/zen20.xml" />
-		<Product type="0111" id="231c" name="ZEN21 Switch" config="zooz/zen21.xml"/>
-		<Product type="0112" id="241c" name="ZEN22 Dimmer" config="zooz/zen22.xml"/>
-		<Product type="1111" id="1e1c" name="ZEN23 Toggle Switch" config="zooz/zen23.xml" />
-		<Product type="0111" id="1f1c" name="ZEN24 Dimmer Switch" config="zooz/zen24.xml" />
-		<Product type="6100" id="6100" name="NZW97 Inovelli Dual Outdoor Z-Wave Plug" config="inovelli/nzw97.xml"/>
-		<Product type="b111" id="1e1c" name="ZEN21 Switch V2.0" config="zooz/zen21.xml" />
-	</Manufacturer>
-	<Manufacturer id="0315" name="zwaveproducts.com">
-		<Product type="4447" id="3034" name="WD-100" config="zwp/WD-100.xml"/>
-	</Manufacturer>
-	<Manufacturer id="0021" name="Zykronix">
-	</Manufacturer>
-	<Manufacturer id="0135" name="ZyXEL">
-	</Manufacturer>
+    <Product config="oomi/ft100.xml" id="0064" name="FT100 MultiSensor 6" type="0002"/>
+    <Product config="oomi/ft100.xml" id="0064" name="FT100 MultiSensor 6" type="0102"/>
+    <Product config="oomi/ft100.xml" id="0064" name="FT100 MultiSensor 6" type="0202"/>
+    <Product config="oomi/ft100.xml" id="0064" name="FT100 MultiSensor 6" type="1D02"/>
+    <Product config="oomi/ft111.xml" id="006F" name="FT111 In Wall Dimmer" type="0103"/>
+    <Product config="oomi/ft111.xml" id="006F" name="FT111 In Wall Dimmer" type="0203"/>
+    <Product config="oomi/ft111.xml" id="006F" name="FT111 In Wall Dimmer" type="1D03"/>
+  </Manufacturer>
+  <Manufacturer id="010f" name="FIBARO System">
+    <Product config="fibaro/fgbs001.xml" id="0101" name="FGBS001 Universal Binary Sensor" type="0501"/>
+    <Product config="fibaro/fgbs001.xml" id="0102" name="FGBS001 Universal Binary Sensor" type="0501"/>
+    <Product config="fibaro/fgbs001.xml" id="0109" name="FGBS001 Universal Binary Sensor" type="0501"/>
+    <Product config="fibaro/fgbs001.xml" id="1002" name="FGBS001 Universal Binary Sensor" type="0501"/>
+    <Product config="fibaro/fgbs001.xml" id="3002" name="FGBS001 Universal Binary Sensor" type="0501"/>
+    <Product config="fibaro/fgbs001.xml" id="4002" name="FGBS001 Universal Binary Sensor" type="0501"/>
+    <Product config="fibaro/fgbs222.xml" id="1000" name="FGBS222 Smart Implant" type="0502"/>
+    <Product config="fibaro/fgd211.xml" id="0104" name="FGD211 Universal Dimmer 500W" type="0100"/>
+    <Product config="fibaro/fgd211.xml" id="0106" name="FGD211 Universal Dimmer 500W" type="0100"/>
+    <Product config="fibaro/fgd211.xml" id="0107" name="FGD211 Universal Dimmer 500W" type="0100"/>
+    <Product config="fibaro/fgd211.xml" id="0109" name="FGD211 Universal Dimmer 500W" type="0100"/>
+    <Product config="fibaro/fgd211.xml" id="100a" name="FGD211 Universal Dimmer 500W" type="0100"/>
+    <Product config="fibaro/fgd211.xml" id="300a" name="FGD211 Universal Dimmer 500W" type="0100"/>
+    <Product config="fibaro/fgd212.xml" id="1000" name="FGD212 Dimmer 2" type="0102"/>
+    <Product config="fibaro/fgd212.xml" id="2000" name="FGD212 Dimmer 2" type="0102"/>
+    <Product config="fibaro/fgd212.xml" id="3000" name="FGD212 Dimmer 2" type="0102"/>
+    <Product config="fibaro/fgd212.xml" id="4000" name="FGD212 Dimmer 2" type="0102"/>
+    <Product config="fibaro/fgk001.xml" id="1000" name="FGK101 Door Opening Sensor" type="0700"/>
+    <Product config="fibaro/fgk001.xml" id="2000" name="FGK10x Door Opening Sensor" type="0700"/>
+    <Product config="fibaro/fgk001.xml" id="3000" name="FGK101 Door Opening Sensor" type="0700"/>
+    <Product config="fibaro/fgk001.xml" id="4000" name="FGK101 Door Opening Sensor" type="0700"/>
+    <Product config="fibaro/fgk10x.xml" id="1001" name="FGK10x Door Opening Sensor" type="0701"/>
+    <Product config="fibaro/fgk10x.xml" id="2001" name="FGK10x Door Opening Sensor" type="0701"/>
+    <Product config="fibaro/fgk10x.xml" id="3001" name="FGK10x Door Opening Sensor" type="0701"/>
+    <Product config="fibaro/fgdw2.xml" id="1000" name="FGDW002 Door Opening Sensor 2" type="0702"/>
+    <Product config="fibaro/fgr221.xml" id="0104" name="FGR221 Roller Shutter Controller" type="0300"/>
+    <Product config="fibaro/fgr221.xml" id="100a" name="FGR221 Roller Shutter Controller" type="0300"/>
+    <Product config="fibaro/fgr221.xml" id="0106" name="FGR221 Roller Shutter Controller" type="0300"/>
+    <Product config="fibaro/fgr221.xml" id="0107" name="FGR221 Roller Shutter Controller" type="0300"/>
+    <Product config="fibaro/fgr221.xml" id="0109" name="FGR221 Roller Shutter Controller" type="0300"/>
+    <Product config="fibaro/fgrm222.xml" id="1001" name="FGRM222 Roller Shutter Controller 2" type="0301"/>
+    <Product config="fibaro/fgrm222.xml" id="1000" name="FGRM222 Roller Shutter Controller 2" type="0302"/>
+    <Product config="fibaro/fgrm222.xml" id="4000" name="FGRM222 Roller Shutter Controller 2" type="0302"/>
+    <Product config="fibaro/fgr223.xml" id="1000" name="FGRM223 Roller Shutter Controller 3" type="0303"/>
+    <Product config="fibaro/fgs211.xml" id="0104" name="FGS211 Switch 3kW" type="0400"/>
+    <Product config="fibaro/fgs211.xml" id="0105" name="FGS211 Switch 3kW" type="0400"/>
+    <Product config="fibaro/fgs211.xml" id="0106" name="FGS211 Switch 3kW" type="0400"/>
+    <Product config="fibaro/fgs211.xml" id="0107" name="FGS211 Switch 3kW" type="0400"/>
+    <Product config="fibaro/fgs211.xml" id="0108" name="FGS211 Switch 3kW" type="0400"/>
+    <Product config="fibaro/fgs211.xml" id="0109" name="FGS211 Switch 3kW" type="0400"/>
+    <Product config="fibaro/fgs211.xml" id="100a" name="FGS211 Switch 3kW" type="0400"/>
+    <Product config="fibaro/fgs211.xml" id="400a" name="FGS211 Switch 3kW" type="0400"/>
+    <Product config="fibaro/fgs212.xml" id="1002" name="FGS212 Switch 3kW" type="0402"/>
+    <Product config="fibaro/fgs212.xml" id="3002" name="FGS212 Switch 3kW" type="0402"/>
+    <Product config="fibaro/fgs212.xml" id="4002" name="FGS212 Switch 3kW" type="0402"/>
+    <Product config="fibaro/fgs213.xml" id="1000" name="FGS213 Switch" type="0403"/>
+    <Product config="fibaro/fgs213.xml" id="2000" name="FGS213 Switch" type="0403"/>
+    <Product config="fibaro/fgs213.xml" id="4000" name="FGS213 Switch" type="0403"/>
+    <Product config="fibaro/fgs221.xml" id="0104" name="FGS221 Double Relay Switch 2x1.5kW" type="0200"/>
+    <Product config="fibaro/fgs221.xml" id="0105" name="FGS221 Double Relay Switch 2x1.5kW" type="0200"/>
+    <Product config="fibaro/fgs221.xml" id="0106" name="FGS221 Double Relay Switch 2x1.5kW" type="0200"/>
+    <Product config="fibaro/fgs221.xml" id="0107" name="FGS221 Double Relay Switch 2x1.5kW" type="0200"/>
+    <Product config="fibaro/fgs221.xml" id="0109" name="FGS221 Double Relay Switch 2x1.5kW" type="0200"/>
+    <Product config="fibaro/fgs221.xml" id="100a" name="FGS221 Double Relay Switch 2x1.5kW" type="0200"/>
+    <Product config="fibaro/fgs221.xml" id="300a" name="FGS221 Double Relay Switch 2x1.5kW" type="0200"/>
+    <Product config="fibaro/fgs221.xml" id="400a" name="FGS221 Double Relay Switch 2x1.5kW" type="0200"/>
+    <Product config="fibaro/fgs222.xml" id="1002" name="FGS222 Double Relay Switch 2x1.5kW" type="0202"/>
+    <Product config="fibaro/fgs222.xml" id="3002" name="FGS222 Double Relay Switch 2x1.5kW" type="0202"/>
+    <Product config="fibaro/fgs223.xml" id="1000" name="FGS223 Double Relay" type="0203"/>
+    <Product config="fibaro/fgs223.xml" id="2000" name="FGS223 Double Relay" type="0203"/>
+    <Product config="fibaro/fgs223.xml" id="3000" name="FGS223 Double Relay" type="0203"/>
+    <Product config="fibaro/fgs223.xml" id="4000" name="FGS223 Double Relay" type="0203"/>
+    <Product config="fibaro/fgr223.xml" id="1000" name="FGR223 Roller Shutter Controller 3" type="0303"/>
+    <Product config="fibaro/fgwpe.xml" id="1000" name="FGWPE/F Wall Plug" type="0600"/>
+    <Product config="fibaro/fgwpe.xml" id="1000" name="FGWPE/F Wall Plug" type="0200"/>
+    <Product config="fibaro/fgwpfzw5.xml" id="1001" name="FGWPE/F Wall Plug Gen5" type="0602"/>
+    <Product config="fibaro/fgwpfzw5.xml" id="1003" name="FGWPE/F Wall Plug Gen5" type="0602"/>
+    <Product config="fibaro/fgms.xml" id="1001" name="FGMS001 Motion Sensor" type="0800"/>
+    <Product config="fibaro/fgms.xml" id="2001" name="FGMS001 Motion Sensor" type="0800"/>
+    <Product config="fibaro/fgms.xml" id="3001" name="FGMS001 Motion Sensor" type="0800"/>
+    <Product config="fibaro/fgms.xml" id="4001" name="FGMS001 Motion Sensor" type="0800"/>
+    <!--<Product type="0801" id="1001" name="FGMS001 Motion Sensor" config="fibaro/fgms.xml" />-->
+    <Product config="fibaro/fgmszw5.xml" id="1001" name="FGMS001-ZW5 Motion Sensor" type="0801"/>
+    <Product config="fibaro/fgmszw5.xml" id="1002" name="FGMS001-ZW5 Motion Sensor" type="0801"/>
+    <Product config="fibaro/fgmszw5.xml" id="2001" name="FGMS001-ZW5 Motion Sensor" type="0801"/>
+    <Product config="fibaro/fgmszw5.xml" id="2002" name="FGMS001-ZW5 Motion Sensor" type="0801"/>
+    <Product config="fibaro/fgmszw5.xml" id="3001" name="FGMS001-ZW5 Motion Sensor" type="0801"/>
+    <Product config="fibaro/fgfs101.xml" id="3001" name="FGFS101 Flood Sensor" type="0b00"/>
+    <Product config="fibaro/fgfs101.xml" id="4001" name="FGFS101 Flood Sensor" type="0b00"/>
+    <Product config="fibaro/fgfs101.xml" id="1001" name="FGFS101 Flood Sensor" type="0b00"/>
+    <Product config="fibaro/fgfs101.xml" id="2001" name="FGFS101 Flood Sensor" type="0b00"/>
+    <Product config="fibaro/fgfs101.xml" id="9e00" name="FGFS101 Flood Sensor" type="0b00"/>
+    <Product config="fibaro/fgfs101zw5.xml" id="1002" name="FGFS101 Zwave+ Flood Sensor" type="0b01"/>
+    <Product config="fibaro/fgfs101zw5.xml" id="1003" name="FGFS101 Zwave+ Flood Sensor" type="0b01"/>
+    <Product config="fibaro/fgfs101zw5.xml" id="2002" name="FGFS101 Zwave+ Flood Sensor" type="0b01"/>
+    <Product config="fibaro/fgrgbwm441.xml" id="1000" name="FGRGBWM441 RGBW Controller" type="0900"/>
+    <Product config="fibaro/fgrgbwm441.xml" id="2000" name="FGRGBWM441 RGBW Controller" type="0900"/>
+    <Product config="fibaro/fgrgbwm441.xml" id="3000" name="FGRGBWM441 RGBW Controller" type="0900"/>
+    <Product config="fibaro/fgrgbwm441.xml" id="4000" name="FGRGBWM441 RGBW Controller" type="0900"/>
+    <Product config="fibaro/fgss101.xml" id="1000" name="FGSS101 Smoke Sensor" type="0c00"/>
+    <Product config="fibaro/fgsd002.xml" id="1002" name="FGSD002 Smoke Sensor" type="0c02"/>
+    <Product config="fibaro/fgsd002.xml" id="1003" name="FGSD002 Smoke Sensor" type="0c02"/>
+    <Product config="fibaro/fggc001.xml" id="1000" name="FGGC001 Swipe" type="0d01"/>
+    <Product config="fibaro/fggc001.xml" id="2000" name="FGGC001 Swipe" type="0d01"/>
+    <Product config="fibaro/fgpb101.xml" id="1000" name="FGPB101 Button" type="0f01"/>
+    <Product config="fibaro/fgpb101.xml" id="2000" name="FGPB101 Button" type="0f01"/>
+    <Product config="fibaro/fgpb101.xml" id="3000" name="FGPB101 Button" type="0f01"/>
+    <Product config="fibaro/fgkf601.xml" id="1000" name="FGKF601 Keyfob" type="1001"/>
+    <Product config="fibaro/fgkf601.xml" id="2000" name="FGKF601 Keyfob" type="1001"/>
+    <Product config="fibaro/fgcd001.xml" id="1000" name="FGSD001 CO Sensor" type="1201"/>
+    <Product config="fibaro/fgcd001.xml" id="1001" name="FGSD001 CO Sensor" type="1201"/>
+    <Product config="fibaro/fgt001.xml" id="1000" name="FGT001 Heat Controller" type="1301"/>
+    <Product config="fibaro/fgwpg111.xml" id="2000" name="FGWPG111 US Wall Plug" type="1701"/>
+    <Product config="fibaro/fgwpg111.xml" id="1000" name="FGWPG111 UK Wall Plug" type="1801"/>
+  </Manufacturer>
+  <Manufacturer id="0295" name="fifthplay nv"></Manufacturer>
+  <Manufacturer id="0138" name="First Alert (BRK Brands Inc)">
+    <Product config="firstalert/zcombo.xml" id="0002" name="ZCombo Smoke and Carbon Monoxide Detector" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="002c" name="Flex Automation"></Manufacturer>
+  <Manufacturer id="004F" name="Flex Automation"></Manufacturer>
+  <Manufacturer id="018D" name="Flextronics"></Manufacturer>
+  <Manufacturer id="0024" name="Flue Sentinel"></Manufacturer>
+  <Manufacturer id="0037" name="Foard Systems"></Manufacturer>
+  <Manufacturer id="018F" name="Focal Point Limited"></Manufacturer>
+  <Manufacturer id="0137" name="FollowGood Technology Company">
+    <Product config="followgood/swz-1002.xml" id="0002" name="SWZ-1002 Binary Power Switch" type="3001"/>
+  </Manufacturer>
+  <Manufacturer id="0207" name="Forest Group Nederland B.V">
+    <Product config="forest/fs2z5232000002.xml" id="0100" name="Shuttle L Z-Wave" type="0027"/>
+  </Manufacturer>
+  <Manufacturer id="0084" name="FortrezZ">
+    <Product config="fortrezz/wwa-01aa.xml" id="0210" name="WWA-01AA - Wireless Water and Freeze Alarm" type="0013"/>
+    <Product config="fortrezz/wwa02.xml" id="010a" name="WWA-02 Water and Temperature Alarm" type="0021"/>
+    <Product config="fortrezz/wwa02.xml" id="0109" name="WWA-02 Water and Temperature Alarm" type="0023"/>
+    <Product id="0216" name="WWA-01AA Wireless Water and Freeze Alarm" type="0053"/>
+    <Product config="fortrezz/wv01.xml" id="020c" name="WV-01 Automated Water Shut-Off Valve" type="0213"/>
+    <Product config="fortrezz/wv01.xml" id="0300" name="WV-01 Automated Water Shut-Off Valve" type="0241"/>
+    <Product config="fortrezz/wv01.xml" id="0216" name="WV-01 Automated Water Shut-Off Valve" type="0243"/>
+    <Product config="fortrezz/ssa2.xml" id="0109" name="SSA1 / SSA2 - Siren/Strobe Light Alarm" type="0311"/>
+    <Product config="fortrezz/ssa2.xml" id="010b" name="SSA1 / SSA2 - Siren/Strobe Light Alarm" type="0311"/>
+    <Product config="fortrezz/ssa2.xml" id="0107" name="SSA1 / SSA2 - Siren/Strobe Light Alarm" type="0313"/>
+    <Product config="fortrezz/ssa2.xml" id="010b" name="SSA2 - Siren/Strobe Light Alarm" type="0313"/>
+    <Product config="fortrezz/ssa3.xml" id="010b" name="SSA3 - Siren/Strobe Light Alarm" type="0331"/>
+    <Product config="fortrezz/ssa3.xml" id="0205" name="SSA3 - Siren/Strobe Light Alarm" type="0341"/>
+    <Product config="fortrezz/ssa3.xml" id="0205" name="SSA3 - Siren/Strobe Light Alarm" type="0343"/>
+    <Product config="fortrezz/mimolite.xml" id="0111" name="MIMOlite" type="0451"/>
+    <Product config="fortrezz/mimolite.xml" id="0110" name="MIMOlite" type="0453"/>
+    <Product config="fortrezz/mimolite.xml" id="0111" name="MIMOlite" type="0453"/>
+    <Product config="fortrezz/mimo2plus.xml" id="0204" name="MIMO2+" type="0463"/>
+    <Product config="fortrezz/mimo2plus.xml" id="0208" name="MIMO2+" type="0463"/>
+    <Product config="fortrezz/fmi.xml" id="0110" name="FMI Flow Meter" type="0473"/>
+    <Product config="fortrezz/gdc1_fortrezz_1501.xml" id="0111" name="GDC1 Siren/Strobe Light Alarm" type="0513"/>
+  </Manufacturer>
+  <Manufacturer id="011D" name="Foxconn"></Manufacturer>
+  <Manufacturer id="039C" name="Foxconn Industrial Internet"></Manufacturer>
+  <Manufacturer id="0110" name="Frostdale">
+    <Product config="frostdale/fdn2311.xml" id="0001" name="Nanogrid: FDN2nxx light switch - where n is 1, 2, 3 or 4 buttons" type="2411"/>
+    <Product config="frostdale/fdn2nxx.xml" id="0031" name="Nanogrid: FDN2nxx light switch - where n is 1, 2, 3 or 4 buttons" type="7333"/>
+  </Manufacturer>
+  <Manufacturer id="0305" name="Future Home AS"></Manufacturer>
+  <Manufacturer id="033E" name="GE"></Manufacturer>
+  <Manufacturer id="0063" name="GE (Jasco Products)">
+    <Product config="ge/dimmer_module.xml" id="3030" name="45602 Lamp Dimmer Module" type="4450"/>
+    <Product config="ge/dimmer.xml" id="3230" name="45606 2-Way Dimmer Switch" type="4457"/>
+    <Product config="ge/12724-dimmer.xml" id="3031" name="12724 3-Way Dimmer Switch" type="4944"/>
+    <Product config="ge/12724-dimmer.xml" id="3033" name="12729 3-Way Dimmer Switch" type="4944"/>
+    <Product config="ge/12724-dimmer.xml" id="3034" name="12730 Fan Control Switch" type="4944"/>
+    <Product config="ge/12724-dimmer.xml" id="3131" name="14287 Fan Control Switch" type="4944"/>
+    <Product config="ge/14288-outlet.xml" id="3134" name="14288 In-Wall Tamper Resistant Smart Outlet" type="4952"/>
+    <Product config="ge/14294-dimmer.xml" id="3038" name="14294 In-Wall Smart Dimmer" type="4944"/>
+    <Product config="ge/14294-dimmer.xml" id="3039" name="14299 In-Wall 1000W Smart Dimmer" type="4944"/>
+    <Product config="ge/14295-dimmer-toggle.xml" id="3130" name="14295 In-Wall Smart Toggle Dimmer" type="4944"/>
+    <Product config="ge/26931-motion-switch.xml" id="3032" name="26931 Smart Motion Switch" type="494d"/>
+    <Product config="ge/26933-motion-dimmer.xml" id="3034" name="26933 Smart Motion Dimmer" type="494d"/>
+    <Product config="ge/14291-switch.xml" id="3036" name="14291 In-Wall Smart Switch" type="4952"/>
+    <Product config="ge/14292-toggle-switch.xml" id="3037" name="14292 In-Wall Smart Toggle Switch" type="4952"/>
+    <Product config="ge/14292-toggle-switch.xml" id="3038" name="14293 In-Wall Smart Toggle Switch" type="4952"/>
+    <Product config="ge/45604.xml" id="3030" name="45603 Plugin Appliance Module" type="5250"/>
+    <Product id="3130" name="45604 Outdoor Module" type="5250"/>
+    <Product id="3031" name="12720 Outdoor Smart Switch" type="4f50"/>
+    <Product id="3032" name="14284 Outdoor Smart Switch" type="4f50"/>
+    <Product config="ge/receptacle.xml" id="3530" name="45605 Duplex Receptacle" type="5252"/>
+    <Product config="ge/28167-plugin-dimmer.xml" id="3038" name="28167/ZW3104 Plug-In Smart Dimmer (Single Plug)" type="5044"/>
+    <Product config="ge/receptacle.xml" id="3133" name="14288 Duplex Receptacle" type="4952"/>
+    <Product config="ge/relay.xml" id="3533" name="45609 On/Off Relay Switch" type="5257"/>
+    <Product config="ge/dimmer.xml" id="3033" name="45613 3-Way Dimmer Switch" type="4457"/>
+    <Product config="ge/receptacle.xml" id="3031" name="12721 Lighting Control Duplex Receptacle" type="4952"/>
+    <Product config="ge/relay.xml" id="3032" name="12722 On/Off Relay Switch" type="4952"/>
+    <Product config="ge/12727.xml" id="3033" name="12727 In-Wall Smart Switch (Toggle)" type="4952"/>
+    <Product config="ge/hinge-pin.xml" id="3032" name="32563 Hinge Pin Smart Door Sensor" type="4953"/>
+    <Product config="ge/dimmer_module.xml" id="3031" name="12718 Plug-In Two-Outlet Smart Dimmer" type="5044"/>
+    <Product config="ge/12719-plugin-switch.xml" id="3031" name="12719 Plug-in Smart Switch" type="5052"/>
+    <Product config="ge/14282-plugin-switch.xml" id="3033" name="14282 Plug-In Two-Outlet Smart Switch" type="5052"/>
+    <Product config="ge/28169-plugin-switch.xml" id="3038" name="28169 Plug-In One-Outlet Smart Switch" type="5052"/>
+    <Product config="ge/zw4001-switch.xml" id="3533" name="ZW4001 In-Wall Decora Style On/Off Relay Switch" type="6363"/>
+    <Product config="ge/ze26i.xml" id="3031" name="ZW7101 Smart LED Light Bulb ZE26I" type="4c42"/>
+    <Product config="ge/zw6302.xml" id="3133" name="ZW6302 Portable Smart Motion Sensor" type="4953"/>
+    <Product config="ge/zw6302.xml" id="3134" name="ZW6302 Portable Smart Motion Sensor" type="4953"/>
+  </Manufacturer>
+  <Manufacturer id="0408" name="Gerber Technology"></Manufacturer>
+  <Manufacturer id="025A" name="GES"></Manufacturer>
+  <Manufacturer id="022B" name="GKB Security Corporation"></Manufacturer>
+  <Manufacturer id="018A" name="Globalchina-Tech"></Manufacturer>
+  <Manufacturer id="0076" name="Goggin Research"></Manufacturer>
+  <Manufacturer id="0068" name="Good Way Technology Co. Ltd"></Manufacturer>
+  <Manufacturer id="0152" name="G.R.">
+    <Product config="gr/gr105.xml" id="0511" name="GR105 Auto Valve" type="0202"/>
+    <Product config="gr/gr105n.xml" id="0512" name="GR105n Auto Valve" type="0003"/>
+    <Product config="gr/grb3.xml" id="0005" name="GRB3 Multichannel Switch" type="0500"/>
+    <Product id="0003" name="ZSE02 Motion Sensor" type="0500"/>
+  </Manufacturer>
+  <Manufacturer id="0099" name="GreenWave Reality Inc">
+    <Product config="greenwave/gs1110-1-gr-1.xml" id="0002" name="One Gateway" type="0001"/>
+    <Product config="greenwave/powernode1.xml" id="0002" name="PowerNode 1 port" type="0002"/>
+    <Product config="greenwave/powernode6.xml" id="0004" name="PowerNode 6 port" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="0401" name="Grenton Sp. z o.o."></Manufacturer>
+  <Manufacturer id="018B" name="Grib"></Manufacturer>
+  <Manufacturer id="0391" name="GUANGDONG PHNIX ECO-ENERGY SOLUTION LTD"></Manufacturer>
+  <Manufacturer id="016D" name="Guangzhou Ruixiang M&amp;E Co. Ltd"></Manufacturer>
+  <Manufacturer id="0158" name="GuangZhou Zeewave Information Technology Co. Ltd"></Manufacturer>
+  <Manufacturer id="0395" name="Guangzhou_SIMT Limited"></Manufacturer>
+  <Manufacturer id="037B" name="Guardtec Inc"></Manufacturer>
+  <Manufacturer id="0287" name="HAB Home Intelligence LLC"></Manufacturer>
+  <Manufacturer id="030D" name="Hampoo"></Manufacturer>
+  <Manufacturer id="040A" name="Hangzhou Hikvision Digital Technology Co. Ltd"></Manufacturer>
+  <Manufacturer id="0387" name="HangZhou iMagic Technology Co. Ltd"></Manufacturer>
+  <Manufacturer id="0208" name="HANK Electronics Ltd">
+    <Product config="hank/hkzw-so01-smartplug.xml" id="0005" name="HKZW-SO01 Smart Plug" type="0101"/>
+    <Product config="hank/hkzw-so05-smartplug.xml" id="000a" name="HKZW-SO05 Smart Plug" type="0100"/>
+    <Product config="hank/hkzw-ms01.xml" id="0006" name="HKZW-MS01 Multisensor" type="0200"/>
+    <Product config="hank/hkzw-ms02-200.xml" id="0012" name="HKZW-MS02 Motion Sensor" type="0200"/>
+    <Product config="hank/hkzw-dws01.xml" id="0008" name="HKZW-DWS01 Door/Window Sensor" type="0200"/>
+    <Product config="hank/hkzw-dws01.xml" id="0008" name="HKZW-DWS01 Door/Window Sensor" type="0201"/>
+    <Product config="hank/scenecontroller1.xml" id="0009" name="HKZW-SCN01 Scene Controller" type="0200"/>
+    <Product config="hank/scenecontroller4.xml" id="000b" name="HKZW-SCN04 Scene Controller" type="0200"/>
+    <Product config="hank/scenecontroller4.xml" id="000b" name="HKZW-SCN04 Scene Controller" type="0201"/>
+    <Product config="hank/hkzw-rgb01.xml" id="0004" name="HKZW-RGB01 RGB bulb" type="0100"/>
+    <Product config="hank/hkzw-rgb01.xml" id="0004" name="HKZW-RGB01 RGB bulb" type="0101"/>
+    <Product config="hank/hkzw-so03.xml" id="000a" name="HKZW-SO03 Smart Plug" type="0101"/>
+    <Product config="hank/hkzw-fld01.xml" id="000f" name="HKZW-FLD01 Flood Sensor" type="0200"/>
+  </Manufacturer>
+  <Manufacturer id="024C" name="Hankook Gas Kiki CO.LTD"></Manufacturer>
+  <Manufacturer id="025C" name="Hauppauge"></Manufacturer>
+  <Manufacturer id="0073" name="Hawking Technologies Inc"></Manufacturer>
+  <Manufacturer id="040C" name="HEIGHTS TELECOM T LTD"></Manufacturer>
+  <Manufacturer id="0260" name="Heiman Technology Co. Ltd">
+    <Product config="heiman/HS1DS-Z.xml" id="0168" name="Door Sensor HS1DS-Z" type="0168"/>
+    <Product config="heiman/HS1MS-Z.xml" id="1000" name="Motion Sensor HS1MS-Z" type="8001"/>
+    <Product config="heiman/HS1SA-Z.xml" id="1000" name="Smart Smoke Sensor HS1SA-Z" type="8002"/>
+    <Product config="heiman/HS1CG-Z.xml" id="1000" name="Combustible Gas Sensor HS1CG-Z" type="8003"/>
+    <Product config="heiman/HS1WL-Z.xml" id="1000" name="Water Leakage Sensor HS1WL-Z" type="8004"/>
+    <Product config="heiman/HS1CA-Z.xml" id="1000" name="CO Sensor HS1CA-Z" type="8005"/>
+    <Product config="heiman/HS2SK-Z.xml" id="1000" name="Smart Metering Plug HS2SK-Z" type="8006"/>
+    <Product config="heiman/HS1HT-Z.xml" id="1000" name="Temperature Humidity Sensor HS1HT-Z" type="8007"/>
+    <Product config="heiman/HS2SK-Z.xml" id="1000" name="Smart Plug HS2SK-Z" type="8008"/>
+  </Manufacturer>
+  <Manufacturer id="0344" name="HELTUN">
+    <Product config="heltun/he-zw-therm-fl2.xml" id="0001" name="HE-ZW-THERM-FL2 Heating Thermostat" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="020F" name="Herald Datanetics Limited"></Manufacturer>
+  <Manufacturer id="0017" name="HiTech Automation"></Manufacturer>
+  <Manufacturer id="024C" name="Hankook Gas Kiki CO.LTD"></Manufacturer>
+  <Manufacturer id="025C" name="Hauppauge"></Manufacturer>
+  <Manufacturer id="0073" name="Hawking Technologies Inc"></Manufacturer>
+  <Manufacturer id="040C" name="HEIGHTS TELECOM T LTD"></Manufacturer>
+  <Manufacturer id="0344" name="HELTUN"></Manufacturer>
+  <Manufacturer id="020F" name="Herald Datanetics Limited"></Manufacturer>
+  <Manufacturer id="0017" name="HiTech Automation"></Manufacturer>
+  <Manufacturer id="0181" name="Holion Electronic Engineering Co. Ltd"></Manufacturer>
+  <Manufacturer id="013E" name="Holtec Electronics BV"></Manufacturer>
+  <Manufacturer id="000D" name="Home Automated Living"></Manufacturer>
+  <Manufacturer id="009a" name="Home Automation Europe"></Manufacturer>
+  <Manufacturer id="005b" name="Home Automation Inc."></Manufacturer>
+  <Manufacturer id="0293" name="Home controls"></Manufacturer>
+  <Manufacturer id="0038" name="Home Director"></Manufacturer>
+  <Manufacturer id="0070" name="Homemanageables Inc"></Manufacturer>
+  <Manufacturer id="0050" name="Homepro"></Manufacturer>
+  <Manufacturer id="0162" name="HomeScenario"></Manufacturer>
+  <Manufacturer id="001e" name="Homeseer (Express Controls)">
+    <Product config="homeseer/ztroller.xml" id="0002" name="ZTroller" type="0001"/>
+    <Product config="homeseer/hsm100.xml" id="0001" name="HSM100 Wireless Multi-Sensor" type="0002"/>
+    <Product config="homeseer/ezmotionplus.xml" id="0002" name="EZMotion+ 3-in-1 Sensor" type="0002"/>
+    <Product config="homeseer/hsm200.xml" id="0001" name="HSM200 Wireless Multi-Sensor" type="0004"/>
+  </Manufacturer>
+  <Manufacturer id="000c" name="HomeSeer Technologies">
+    <Product config="homeseer/hs-ws100plus.xml" id="3033" name="HS-WS100+ Wall Switch" type="4447"/>
+    <Product config="homeseer/hs-wd100plus.xml" id="3034" name="HS-WD100+ Wall Dimmer" type="4447"/>
+    <Product config="homeseer/hs-ws200plus.xml" id="3035" name="HS-WS200+ Wall Switch" type="4447"/>
+    <Product config="homeseer/hs-wd200plus.xml" id="3036" name="HS-WD200+ Wall Dimmer" type="4447"/>
+    <Product config="homeseer/hs-ms100plus.xml" id="9" name="HS-MS100+ Motion Sensor" type="201"/>
+    <Product config="homeseer/hs-ls100plus.xml" id="a" name="HS-LS100+ Leak Sensor" type="201"/>
+    <Product config="homeseer/hs-fls100plus.xml" id="000b" name="HS-FLS100+ Floodlight Sensor" type="0201"/>
+    <Product config="homeseer/hs-fc200plus.xml" id="0001" name="HS-FC200+ Z-Wave Plus Fan Controller" type="0203"/>
+  </Manufacturer>
+  <Manufacturer id="0275" name="Honest Technology"></Manufacturer>
+  <Manufacturer id="023D" name="Honest Technology Co. Ltd"></Manufacturer>
+  <Manufacturer id="0039" name="Honeywell">
+    <Product config="honeywell/th8320zw1000.xml" id="0001" name="TH8320ZW1000 Touchscreen Thermostat" type="0011"/>
+    <Product config="honeywell/th6320zw2003.xml" id="0008" name="TH6320ZW2003 T6 Pro Series Thermostat" type="0011"/>
+    <Product config="honeywell/lynx-touch-l5100.xml" id="0003" name="Lynx Touch L5100 / L7000" type="0001"/>
+    <Product config="honeywell/39351-ZW3005.xml" id="3038" name="39351 / ZW3005 In-Wall Smart Dimmer" type="4944"/>
+  </Manufacturer>
+  <Manufacturer id="0313" name="Hoppe"></Manufacturer>
+  <Manufacturer id="0377" name="HORNBACH Baumarkt AG"></Manufacturer>
+  <Manufacturer id="0059" name="Horstmann (Secure Meters)">
+    <Product id="0001" name="ASR-RF Thermostat Receiver" type="0001"/>
+    <Product id="0002" name="AS2-RF Thermostat Transmitter" type="0001"/>
+    <Product config="horstmann/hrt4zw.xml" id="0003" name="HRT4-ZW Thermostat Transmitter" type="0001"/>
+    <Product config="horstmann/srt323.xml" id="0004" name="SRT 323 Electronic Room Thermostat and Temperature" type="0001"/>
+    <Product config="horstmann/srt321.xml" id="0005" name="SRT-321 Thermostat-HVAC" type="0001"/>
+    <Product config="horstmann/asrzw.xml" id="0001" name="ASR-ZW Thermostat Receiver" type="0003"/>
+    <Product config="horstmann/ssr302.xml" id="0002" name="SSR 302 2-zone Thermostat Receiver" type="0003"/>
+    <Product config="horstmann/ssr303.xml" id="0005" name="SSR 303 Thermostat Receiver" type="0003"/>
+    <Product config="horstmann/scsc17.xml" id="0001" name="SCSC17 Thermostat" type="0004"/>
+    <Product config="horstmann/ses301.xml" id="0001" name="SES 301 Temperature Sensor" type="000d"/>
+    <Product config="horstmann/ses302.xml" id="0002" name="SES 302 Temperature Sensor" type="000d"/>
+    <Product config="horstmann/ses303.xml" id="0003" name="SES 303 Temperature and Humidity Sensor" type="000d"/>
+    <Product id="0001" name="SWM01 Water Meter Sensor" type="000f"/>
+    <Product config="horstmann/sir321.xml" id="0001" name="SIR321 RF Countdown Timer" type="0010"/>
+    <Product config="horstmann/sir321.xml" id="0002" name="SIR321 RF Countdown Timer with temperature" type="0010"/>
+  </Manufacturer>
+  <Manufacturer id="0298" name="Horus Smart Control"></Manufacturer>
+  <Manufacturer id="0221" name="HOSEOTELNET"></Manufacturer>
+  <Manufacturer id="0180" name="Huapin Information Technology Co.Ltd"></Manufacturer>
+  <Manufacturer id="025F" name="Huawei Device Co. Ltd"></Manufacturer>
+  <Manufacturer id="024B" name="Huawei Technologies Co. Ltd"></Manufacturer>
+  <Manufacturer id="007C" name="Hunter Douglas"></Manufacturer>
+  <Manufacturer id="0374" name="Hyundai Telecom"></Manufacturer>
+  <Manufacturer id="038A" name="iamsmart"></Manufacturer>
+  <Manufacturer id="0218" name="iAutomade Pte Ltd"></Manufacturer>
+  <Manufacturer id="0011" name="iCOM Technology b.v."></Manufacturer>
+  <Manufacturer id="0106" name="Icontrol Networks"></Manufacturer>
+  <Manufacturer id="0373" name="ID Lock AS">
+    <Product config="idlock/idlock150.xml" id="0001" name="150" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="019E" name="iEXERGY GmbH"></Manufacturer>
+  <Manufacturer id="031C" name="Ilevia srl"></Manufacturer>
+  <Manufacturer id="0056" name="Impact Technologies and Products"></Manufacturer>
+  <Manufacturer id="0061" name="Impact Technologies BV"></Manufacturer>
+  <Manufacturer id="0385" name="Inergy Systems LLC"></Manufacturer>
+  <Manufacturer id="012B" name="Infusion Development"></Manufacturer>
+  <Manufacturer id="006C" name="Ingersoll Rand (Schlage)"></Manufacturer>
+  <Manufacturer id="011f" name="Ingersoll Rand">
+    <Product config="ingersoll/dwzwave1.xml" id="0002" name="DWZWAVE1" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0256" name="Inkel Corp"></Manufacturer>
+  <Manufacturer id="003a" name="Inlon Srl"></Manufacturer>
+  <Manufacturer id="0141" name="Innoband Technologies Inc"></Manufacturer>
+  <Manufacturer id="0382" name="INNOPIA Technologies Inc"></Manufacturer>
+  <Manufacturer id="0077" name="Innovus">
+    <Product id="0001" name="SmoothRemote Controller" type="0002"/>
+    <Product id="0002" name="RAone SmartPower Wall Appliance Module" type="0001"/>
+    <Product id="0001" name="RAone SmartDimmer Wall Dimmer Module" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0312" name="Inovelli">
+    <Product config="inovelli/nzw30.xml" id="1e01" name="NZW30 Smart Switch" type="1e01"/>
+    <Product config="inovelli/nzw30.xml" id="1e00" name="NZW30 Smart Switch (w/Scene)" type="1e00"/>
+    <Product config="inovelli/nzw30.xml" id="1e02" name="NZW30 Smart Toggle Switch (w/Scene)" type="1e02"/>
+    <Product config="inovelli/nzw31.xml" id="1f01" name="NZW31 Smart Dimmer" type="1f01"/>
+    <Product config="inovelli/nzw31.xml" id="1f00" name="NZW31 Smart Dimmer (w/Scene)" type="1f00"/>
+    <Product config="inovelli/nzw31.xml" id="1f02" name="NZW31 Smart Toggle Dimmer (w/Scene)" type="1f02"/>
+    <Product config="inovelli/simple_module.xml" id="241c" name="NZW36 1-Channel Smart Plug-In Module" type="b211"/>
+    <Product config="inovelli/nzw36.xml" id="2400" name="NZW36 1-Channel Smart Plug (w/Scene)" type="2400"/>
+    <Product config="inovelli/simple_module.xml" id="251c" name="NZW37 2-Channel Smart Plug" type="b221"/>
+    <Product config="inovelli/nzw37.xml" id="2500" name="NZW37 2-Channel Smart Plug (w/Scene)" type="2500"/>
+    <Product config="inovelli/simple_module.xml" id="271c" name="NZW39 Smart Plug Dimmer" type="b212"/>
+    <Product config="inovelli/nzw39.xml" id="2700" name="NZW39 Smart Plug Dimmer (w/Scene)" type="2700"/>
+    <Product config="inovelli/nzw96.xml" id="6000" name="NZW96 1-Channel Outdoor Smart Plug" type="6000"/>
+    <Product config="inovelli/nzw97.xml" id="6100" name="NZW97 2-Channel Outdoor Smart Plug" type="6100"/>
+  </Manufacturer>
+  <Manufacturer id="031E" name="Inovelli"></Manufacturer>
+  <Manufacturer id="0100" name="Insignia"></Manufacturer>
+  <Manufacturer id="0006" name="Intel"></Manufacturer>
+  <Manufacturer id="001c" name="IntelliCon"></Manufacturer>
+  <Manufacturer id="0072" name="Interactive Electronics Systems"></Manufacturer>
+  <Manufacturer id="0005" name="Intermatic">
+    <Product id="0003" name="HA-02 Appliance Module" type="0002"/>
+    <Product id="0003" name="HA-03WD Lamp Module" type="0003"/>
+    <Product id="0003" name="HA-04C Outdoor Module" type="0004"/>
+    <Product id="0003" name="HA-05C Lamp Screw In Module" type="0005"/>
+    <Product id="0003" name="HA-06 In-Wall Switch Dimmer" type="0006"/>
+    <Product id="0600" name="CA600 Wall Dimmer" type="4341"/>
+    <Product id="3000" name="CA3000 Wall Switch" type="4341"/>
+    <Product id="3500" name="CA3560 Split-Duplex Receptacle" type="4341"/>
+    <Product config="intermatic/ca8900.xml" id="8900" name="CA8900 Digital Thermostat" type="4341"/>
+    <Product id="9000" name="CA9000 PIR Occupancy Sensor" type="4341"/>
+  </Manufacturer>
+  <Manufacturer id="0338" name="International Integrated Systems Inc"></Manufacturer>
+  <Manufacturer id="0013" name="Internet Dom"></Manufacturer>
+  <Manufacturer id="0288" name="INTERSOFT"></Manufacturer>
+  <Manufacturer id="039E" name="Invalance"></Manufacturer>
+  <Manufacturer id="0278" name="Inventec"></Manufacturer>
+  <Manufacturer id="0368" name="IOOOTA"></Manufacturer>
+  <Manufacturer id="005F" name="IQ-Group"></Manufacturer>
+  <Manufacturer id="0212" name="iRevo"></Manufacturer>
+  <Manufacturer id="0253" name="iungo.nl B.V."></Manufacturer>
+  <Manufacturer id="0123" name="IWATSU">
+    <Product id="0000" name="TM-H2VHD081 HA Dongle" type="0000"/>
+    <Product config="iwatsu/ne-4ct-2p.xml" id="0102" name="NE-4CT-2P Electric Power Measuring Equipment" type="0102"/>
+    <Product config="iwatsu/ne-4ct.xml" id="0103" name="NE-4CT Electric Power Measuring Equipment" type="0103"/>
+  </Manufacturer>
+  <Manufacturer id="0063" name="Jasco Products"></Manufacturer>
+  <Manufacturer id="015A" name="Jin Tao Bao"></Manufacturer>
+  <Manufacturer id="039F" name="JLabs Corporation"></Manufacturer>
+  <Manufacturer id="0164" name="JSW Pacific Corporation"></Manufacturer>
+  <Manufacturer id="0214" name="Kaipule Technology Co. Ltd">
+    <Product config="kaipule/im20.xml" id="0001" name="IM20 Door/Window Sensor" type="0002"/>
+    <Product config="kaipule/ix32.xml" id="0002" name="PIR Celling Sensor" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="0091" name="Kamstrup A/S"></Manufacturer>
+  <Manufacturer id="006A" name="Kellendonk Elektronik"></Manufacturer>
+  <Manufacturer id="0114" name="Kichler"></Manufacturer>
+  <Manufacturer id="035F" name="KIWILAB"></Manufacturer>
+  <Manufacturer id="0139" name="KlickH Pvt Ltd"></Manufacturer>
+  <Manufacturer id="0261" name="KOOL KONCEPTS"></Manufacturer>
+  <Manufacturer id="0174" name="Kopera Development Inc"></Manufacturer>
+  <Manufacturer id="023A" name="KUMHO ELECTRIC INC"></Manufacturer>
+  <Manufacturer id="0090" name="Kwikset (Spectrum Brands)">
+    <Product config="kwikset/smartcode.xml" id="0001" name="Touchpad Electronic Deadbolt" type="0001"/>
+    <Product config="kwikset/smartcode.xml" id="0642" name="SmartCode 916" type="0003"/>
+    <Product config="kwikset/smartcode.xml" id="0440" name="SmartCode 10" type="0006"/>
+  </Manufacturer>
+  <Manufacturer id="0051" name="Lagotek Corp"></Manufacturer>
+  <Manufacturer id="0173" name="Leak Intelligence LLC"></Manufacturer>
+  <Manufacturer id="0300" name="LEEDARSON LIGHTING CO. LTD"></Manufacturer>
+  <Manufacturer id="0187" name="LEVION Technologies GmbH"></Manufacturer>
+  <Manufacturer id="001d" name="Leviton">
+    <Product id="0206" name="RZP15-1LW Binary Scene Switch" type="0101"/>
+    <Product config="leviton/vrcs2.xml" id="0206" name="RZP03-1LW Binary Scene Switch" type="0201"/>
+    <Product id="030b" name="VRP03-1LW Lamp Module" type="0202"/>
+    <Product id="0206" name="RZS15-1LX Binary Scene Switch" type="0301"/>
+    <Product id="0209" name="VRS15-1LZ Binary Scene Switch" type="0301"/>
+    <Product config="leviton/vrs15.xml" id="0334" name="VRS15-1LZ Switch" type="0301"/>
+    <Product config="leviton/rzi10.xml" id="0206" name="RZI10-1LX Multilevel Scene Switch" type="0401"/>
+    <Product config="leviton/vri06.xml" id="0209" name="VRI06-1LX Multilevel Scene Switch" type="0401"/>
+    <Product config="leviton/vri10.xml" id="0206" name="VRI10-1LX Multilevel Scene Switch" type="0501"/>
+    <Product config="leviton/vri10.xml" id="0209" name="VRI10-1LZ Scene Capable Dimmer" type="0501"/>
+    <Product config="leviton/vri10.xml" id="0209" name="VRMX1-1LZ Multilevel Scene Switch" type="0602"/>
+    <Product config="leviton/vri10.xml" id="0334" name="VRMX1-1LZ Multilevel Scene Switch" type="0602"/>
+    <Product id="0215" name="VRC51-1LX One Scene Controller" type="0901"/>
+    <Product config="leviton/vrcz4.xml" id="0261" name="VRCZ4-M0Z 4-Button Zone Controller" type="0702"/>
+    <Product id="030b" name="VRC0P-1LW Plug-in Serial Interface Module" type="0b02"/>
+    <Product config="leviton/vrcpg.xml" id="0206" name="VRCPG-SG RF Handheld Remote Controller" type="0c01"/>
+    <Product config="leviton/vre06.xml" id="0334" name="VRE06-1LZ Multilevel Scene Switch" type="0e01"/>
+    <Product config="leviton/vrf01.xml" id="0209" name="VRF01-1LZ Scene Capable Quiet Fan Speed Control" type="1001"/>
+    <Product config="leviton/vrf01.xml" id="0334" name="VRF01-1LZ Quiet Fan Speed Control" type="1001"/>
+    <Product id="0243" name="VRCS2-MRZ 2-Button Scene Controller with Switches" type="1102"/>
+    <Product config="leviton/vrcz4.xml" id="0243" name="VRCZ4-MRZ 4-Button Zone Controller with Switch" type="1202"/>
+    <Product id="0334" name="DZPD3-1LW Plug-In Dimming Lamp Module" type="1902"/>
+    <Product id="0334" name="DZPA1-1LW Plug-In Appliance Module" type="1a02"/>
+    <Product id="0334" name="DZMX1-1LZ Dimmer" type="1b03"/>
+    <Product id="0334" name="DZS15-1LZ Switch" type="1c02"/>
+    <Product id="0334" name="DZR15-1LZ Receptacle" type="1d04"/>
+    <Product config="leviton/dz6hd.xml" id="0001" name="DZ6HD-1BZ Decora 600W Smart Dimmer" type="3201"/>
+    <Product config="leviton/dz6hd.xml" id="0001" name="DZ1KD-1BZ Decora 1000W Smart Dimmer" type="3301"/>
+    <Product config="leviton/dz15s.xml" id="0001" name="DZ15S-1BZ Decora Smart Switch" type="3401"/>
+    <Product config="leviton/dzpd3.xml" id="0001" name="DZPD3-2BW Decora 300W Plug-In Smart Dimmer" type="3501"/>
+    <Product config="leviton/dz15s.xml" id="0001" name="Leviton DZPA1 Plug-In Outlet" type="3601"/>
+  </Manufacturer>
+  <Manufacturer id="0015" name="Lexel"></Manufacturer>
+  <Manufacturer id="015B" name="LG Electronics"></Manufacturer>
+  <Manufacturer id="0362" name="LiaoningYouwang Lighting and Electronic Technology Pty Ltd"></Manufacturer>
+  <Manufacturer id="0224" name="LifeShield LLC"></Manufacturer>
+  <Manufacturer id="003C" name="Lifestyle Networks"></Manufacturer>
+  <Manufacturer id="0210" name="Light Engine Limited"></Manufacturer>
+  <Manufacturer id="0342" name="LIMEI"></Manufacturer>
+  <Manufacturer id="014f" name="Linear (Nortek Security Control LLC)">
+    <Product config="linear/WADWAZ-1.xml" id="0102" name="WADWAZ-1 Door/Window Sensor" type="2001"/>
+    <Product config="linear/WAPIRZ-1.xml" id="0203" name="WAPIRZ-1 Motion Sensor" type="2002"/>
+    <Product config="linear/WA105DBZ-1.xml" id="0903" name="WA105DBZ-1 Main Operated Siren" type="2009"/>
+    <Product config="linear/PD300Z-2.xml" id="3030" name="PD300Z-2 Plug-in Dimmer Module" type="4450"/>
+    <Product config="linear/WD500Z-1.xml" id="3034" name="WD500Z-1 Wall Dimmer Switch" type="4457"/>
+    <Product id="3331" name="WD1000Z-1 Wall Dimmer Switch" type="4457"/>
+    <Product id="3030" name="GD00Z-4 Garage Door Opener Remote Controller" type="4744"/>
+    <Product config="linear/ngd00z.xml" id="3530" name="GD00Z-4 Garage Door Opener Remote Controller" type="4744"/>
+    <Product id="3531" name="GD00Z-7 Garage Door Opener Remote Controller" type="4744"/>
+    <Product config="linear/LB60Z-1.xml" id="3038" name="LB60Z-1 Dimmable LED Light Bulb" type="4754"/>
+    <Product id="3133" name="FS20Z Isolated Contact Fixture Module" type="5246"/>
+    <Product id="3030" name="PS15Z-2 Plug-in Appliance Module" type="5250"/>
+    <Product id="3530" name="WO15Z-1 Single Wall Outlet" type="5252"/>
+    <Product config="linear/WS15Z-1.xml" id="3533" name="WS15Z-1 Wall Switch" type="5257"/>
+    <Product config="linear/WA00Z-1.xml" id="3132" name="WA00Z-1 Scene Switch" type="5343"/>
+    <Product config="linear/WT00Z-1.xml" id="3033" name="WT00Z-1 3-Way Wall Accessory Switch" type="5457"/>
+    <Product config="linear/GC-TBZ48.xml" id="5431" name="GC-TBZ48 Battery Powered Z-Wave Thermostat" type="5442"/>
+    <Product config="linear/GC-TBZ48.xml" id="5436" name="GC-TBZ48 Battery Powered Z-Wave Thermostat" type="5442"/>
+    <Product config="linear/GC-TBZ48.xml" id="5437" name="GC-TBZ48 Battery Powered Z-Wave Thermostat" type="5442"/>
+    <Product config="linear/WD500Z5-1.xml" id="3530" name="WD500Z5-1 Wall Mounted Dimmer" type="5744"/>
+  </Manufacturer>
+  <Manufacturer id="035C" name="LINK ELECTRONICS Co. Ltd"></Manufacturer>
+  <Manufacturer id="0316" name="Lite Automation"></Manufacturer>
+  <Manufacturer id="017A" name="Liveguard Ltd"></Manufacturer>
+  <Manufacturer id="013A" name="Living Style Enterprises Ltd"></Manufacturer>
+  <Manufacturer id="015e" name="Locstar">
+    <Product id="0001" name="LS-8015-ZW Single Latch Door Lock" type="8015"/>
+  </Manufacturer>
+  <Manufacturer id="0234" name="Logic Soft">
+    <Product config="logicsoft/ZHC5010.xml" id="010a" name="ZHC5010 Wall switch" type="0003"/>
+    <Product config="logicsoft/ZHC5002.xml" id="010c" name="ZHC5002 Z-Scene Controller" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="007f" name="Logitech"></Manufacturer>
+  <Manufacturer id="0025" name="Loudwater Tech"></Manufacturer>
+  <Manufacturer id="038C" name="Lowes"></Manufacturer>
+  <Manufacturer id="0071" name="LS Control">
+    <Product id="035D" name="ES 861 Temperature Sensor" type="0002"/>
+  </Manufacturer>
+  <Manufacturer id="036D" name="Luffanet Co. Lte"></Manufacturer>
+  <Manufacturer id="025E" name="LUXEASY technology company LTD"></Manufacturer>
+  <Manufacturer id="0062" name="LVI Produkter AB"></Manufacturer>
+  <Manufacturer id="0192" name="m2m Solution"></Manufacturer>
+  <Manufacturer id="0195" name="M2M Solution"></Manufacturer>
+  <Manufacturer id="006E" name="Manodo / KTC"></Manufacturer>
+  <Manufacturer id="003d" name="Marmitek BV"></Manufacturer>
+  <Manufacturer id="003e" name="Martec Access"></Manufacturer>
+  <Manufacturer id="0092" name="Martin Renz GmbH"></Manufacturer>
+  <Manufacturer id="008f" name="MB Turn Key Design"></Manufacturer>
+  <Manufacturer id="015f" name="McoHome Technology Co Ltd">
+    <Product id="0001" name="Mini Energy Dimmer" type="0001"/>
+    <Product id="0001" name="Mini Energy Switch" type="0002"/>
+    <!--EU-->
+    <Product config="mcohome/mhp210.xml" id="1302" name="MH-P210 Mini Energy Dimmer" type="210a"/>
+    <Product config="mcohome/mhs311.xml" id="0201" name="MH-S311 One-load" type="3102"/>
+    <Product config="mcohome/mhs312.xml" id="0202" name="MH-S312 Two-load" type="3102"/>
+    <Product config="mcohome/mhs314.xml" id="0204" name="MH-S314 Four-load" type="3102"/>
+    <Product config="mcohome/mhs314.xml" id="1302" name="MH-S314 Four-load" type="3141"/>
+    <Product config="mcohome/mhs314.xml" id="3141" name="MH-S314 Four-load" type="5102"/>
+    <Product config="mcohome/mhs411.xml" id="0201" name="MH-S411 One-load" type="4102"/>
+    <Product config="mcohome/mhs412.xml" id="0202" name="MH-S412 Two-load" type="4102"/>
+    <Product config="mcohome/mhs412.xml" id="1302" name="MH-S412 Two-load" type="4121"/>
+    <Product config="mcohome/mhs412.xml" id="5102" name="MH-S412 Two-load" type="4121"/>
+    <Product config="mcohome/mh8fceu.xml" id="3102" name="MH8-FC-EU Thermostat" type="0801"/>
+    <Product config="mcohome/mh8fceu.xml" id="3102" name="MH8-FC4-EU Thermostat" type="0802"/>
+    <Product config="mcohome/mh9co2.xml" id="0201" name="MH9-CO2-WD CO2 Monitor" type="0905"/>
+    <Product config="mcohome/mh9co2.xml" id="3102" name="MH9-CO2-WD CO2 Monitor" type="0901"/>
+    <Product config="mcohome/a8-9.xml" id="1352" name="A8-9 Multi-sensor" type="a800"/>
+    <Product config="mcohome/mh7h.xml" id="5102" name="MH7H Water/Electrical Heating Thermostat" type="0701"/>
+    <Product config="mcohome/mh7h.xml" id="5102" name="MH7H Water/Electrical Heating Thermostat" type="0702"/>
+    <Product config="mcohome/mh7h.xml" id="5102" name="MH7H Water/Electrical Heating Thermostat" type="0712"/>
+    <Product config="mcohome/mh7h.xml" id="5102" name="MH7H Water/Electrical Heating Thermostat" type="0732"/>
+    <!--US-->
+    <Product config="mcohome/mhs513.xml" id="0103" name="Touch Panel Switch MH-S513" type="5102"/>
+  </Manufacturer>
+  <Manufacturer id="0222" name="MCT CO. LTD"></Manufacturer>
+  <Manufacturer id="0027" name="Meedio LLC"></Manufacturer>
+  <Manufacturer id="0107" name="MegaChips"></Manufacturer>
+  <Manufacturer id="022D" name="Mercury Corporation"></Manufacturer>
+  <Manufacturer id="007a" name="Merten">
+    <Product id="0001" name="Plug-in Appliance Module" type="8001"/>
+    <Product id="0001" name="Plug-in Dimmer Module" type="8002"/>
+    <Product config="merten/507801.xml" id="0001" name="Plug-in Roller Shutter Module" type="8003"/>
+    <Product config="merten/5046xx.xml" id="0001" name="Wall Dimmer Module" type="4003"/>
+    <Product config="merten/5044xx.xml" id="0001" name="Wall Appliance Module" type="4002"/>
+    <Product config="merten/50x5xx.xml" id="0001" name="Wall Roller Shutter Module" type="4004"/>
+    <Product id="8001" name="Receiver Flush-Mounted 1-Gang Switch" type="8001"/>
+    <Product config="merten/506004.xml" id="0004" name="Transmitter Flush-Mounted 4-Gang Switch" type="0003"/>
+    <Product id="0002" name="Transmitter 1-Gang Switch" type="0001"/>
+    <Product id="0004" name="Transmitter 2-Gang Switch" type="0001"/>
+    <Product config="merten/508244.xml" id="0001" name="Transmitter Move" type="0002"/>
+  </Manufacturer>
+  <Manufacturer id="0238" name="Milanity Inc"></Manufacturer>
+  <Manufacturer id="0112" name="MITSUMI"></Manufacturer>
+  <Manufacturer id="019D" name="MOBILUS MOTOR z o.o."></Manufacturer>
+  <Manufacturer id="0232" name="MODACOM CO. LTD"></Manufacturer>
+  <Manufacturer id="008D" name="Modstrom"></Manufacturer>
+  <Manufacturer id="000E" name="Mohito Networks"></Manufacturer>
+  <Manufacturer id="0202" name="Monoprice"></Manufacturer>
+  <Manufacturer id="007E" name="Monster Cable"></Manufacturer>
+  <Manufacturer id="0125" name="Motion Control Systems"></Manufacturer>
+  <Manufacturer id="003F" name="Motorola"></Manufacturer>
+  <Manufacturer id="0122" name="MSK Miyakawa Seisakusho">
+    <Product config="miyakawaelectric/me-d101.xml" id="0001" name="ME-D101 Electric Power Measuring Instrument" type="0001"/>
+    <Product id="0000" name="ZW-GW Smart Bridge" type="8000"/>
+  </Manufacturer>
+  <Manufacturer id="0083" name="MTC Maintronic"></Manufacturer>
+  <Manufacturer id="0143" name="myStrom"></Manufacturer>
+  <Manufacturer id="016E" name="Nanjing Easthouse Electrical Co"></Manufacturer>
+  <Manufacturer id="0121" name="Napco Security Technologies, Inc.">
+    <Product id="0001" name="I-Bridge Z-Wave Controller" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="038D" name="nCube"></Manufacturer>
+  <Manufacturer id="036B" name="NEC Platforms Ltd"></Manufacturer>
+  <Manufacturer id="0241" name="NEEO AG"></Manufacturer>
+  <Manufacturer id="006D" name="Nefit"></Manufacturer>
+  <Manufacturer id="0351" name="NEOCONTROL US LLC"></Manufacturer>
+  <Manufacturer id="0189" name="Ness Corporation Pty Ltd"></Manufacturer>
+  <Manufacturer id="0133" name="Netgear"></Manufacturer>
+  <Manufacturer id="0248" name="neusta next GmbH Co. KG"></Manufacturer>
+  <Manufacturer id="0203" name="Newland Communication Science Technology Co. Ltd"></Manufacturer>
+  <Manufacturer id="0268" name="Nexa Trading AB"></Manufacturer>
+  <Manufacturer id="0178" name="Nexia">
+    <!-- full name in Z-wave database: Ingersoll Rand - Nexia Home Intelligence -->
+    <Product config="nexia/db100z.xml" id="3130" name="DB100Z Doorbell Sensor" type="4442"/>
+  </Manufacturer>
+  <Manufacturer id="0075" name="NextEnergy"></Manufacturer>
+  <Manufacturer id="0361" name="NHN Entertainment"></Manufacturer>
+  <Manufacturer id="0185" name="Ningbo Sentek Electronics Co Ltd"></Manufacturer>
+  <Manufacturer id="0165" name="NodOn (ID-RF)">
+    <Product config="nodon/asp3100SmartPlug.xml" id="0001" name="ASP-3-1-00 Smart Plug" type="0001"/>
+    <Product config="nodon/msp31xxMicroSmartPlug.xml" id="0003" name="MSP-3-1-XX Micro Smart Plug" type="0001"/>
+    <Product config="nodon/crc3100OctanRemote.xml" id="0001" name="CRC-3-1-00 Octan Remote" type="0002"/>
+    <Product config="nodon/crc360xSofremote.xml" id="0002" name="CRC-3-6-0x Soft Remote" type="0002"/>
+    <Product config="nodon/cws3101wallswitch.xml" id="0003" name="CWS-3-1-01 Wall Switch" type="0002"/>
+  </Manufacturer>
+  <Manufacturer id="0252" name="North China University of Technology"></Manufacturer>
+  <Manufacturer id="0096" name="NorthQ">
+    <Product config="northq/nq92021.xml" id="0001" name="NQ-92021 Power Reader" type="0001"/>
+    <Product config="northq/nq9021.xml" id="0002" name="NQ-9021 Power Reader" type="0001"/>
+    <Product config="northq/nq9121.xml" id="0001" name="NQ-9121 Gas Meter" type="0010"/>
+  </Manufacturer>
+  <Manufacturer id="0040" name="Novar Electrical Devices and Systems"></Manufacturer>
+  <Manufacturer id="020D" name="Novateqni HK Ltd"></Manufacturer>
+  <Manufacturer id="0296" name="OBLO LIVING LLC "></Manufacturer>
+  <Manufacturer id="0119" name="Omnima Limited"></Manufacturer>
+  <Manufacturer id="014C" name="OnSite Pro"></Manufacturer>
+  <Manufacturer id="0041" name="OpenPeak Inc"></Manufacturer>
+  <Manufacturer id="027D" name="Oregon Automation"></Manufacturer>
+  <Manufacturer id="0104" name="Panasonic Electric Works Co. Ltd"></Manufacturer>
+  <Manufacturer id="031A" name="Panasonic ES Shin Dong-A Co Ltd"></Manufacturer>
+  <Manufacturer id="028D" name="Panodic Electric (Shenzhen) Limited"></Manufacturer>
+  <Manufacturer id="0257" name="PARATECH"></Manufacturer>
+  <Manufacturer id="0172" name="PassivSystems Limited"></Manufacturer>
+  <Manufacturer id="0322" name="Paxton Access Ltd"></Manufacturer>
+  <Manufacturer id="0281" name="PC Partner"></Manufacturer>
+  <Manufacturer id="013D" name="Pella"></Manufacturer>
+  <Manufacturer id="0245" name="permundo GmbH">
+    <Product id="0002" name="PSC132ZW Smart Mini Plug" type="0003"/>
+    <Product id="0001" name="PSC234ZW Smart Plug" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="0366" name="PHILIA TECHNOLOGY Co. Ltd"></Manufacturer>
+  <Manufacturer id="013c" name="Philio Technology Corp">
+    <Product config="philio/pan11-1.xml" id="0001" name="PAN11-4 Smart Energy Plug In Switch" type="0001"/>
+    <Product config="philio/pan04.xml" id="0003" name="PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement" type="0001"/>
+    <Product config="philio/pan05.xml" id="0010" name="PAN05-1 In Wall Single relay (1 way) Switch" type="0001"/>
+    <Product config="philio/pan06.xml" id="0004" name="PAN06-1 In Wall Dual Relay (1 Way) Switch Module" type="0001"/>
+    <Product config="philio/pan07.xml" id="0005" name="PAN07-1 TWO SPDT Switch module with meter" type="0001"/>
+    <Product config="philio/pan08.xml" id="0006" name="PAN08-1 In Wall Roller Shutter Controller" type="0001"/>
+    <Product config="philio/pan03.xml" id="000f" name="PAN03 Switch Module with meter 3 KW X1" type="0001"/>
+    <Product config="philio/pan11.xml" id="0011" name="PAN11 Smart Energy Plug In Switch" type="0001"/>
+    <Product config="philio/pan04.xml" id="0012" name="PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement" type="0001"/>
+    <Product config="philio/pan08.xml" id="0015" name="PAN08-1 In Wall Roller Shutter Controller" type="0001"/>
+    <Product config="philio/pan16.xml" id="0029" name="PAN16 Smart energy plug in switch" type="0001"/>
+    <Product config="philio/psm02.xml" id="0002" name="PSM02-1 Slim Multi-Sensor" type="0002"/>
+    <Product config="philio/psp05.xml" id="0050" name="PSP05 PIR/Motion" type="0002"/>
+    <Product config="philio/pst02.xml" id="000c" name="PST02-A 4 in 1 Multi-Sensor" type="0002"/>
+    <Product config="philio/pst02-b.xml" id="000d" name="PST02-B PIR/Motion 3 in 1 Sensor" type="0002"/>
+    <Product config="philio/pst02-1c.xml" id="000e" name="PST02-C Door/Window 3 in 1 sensor" type="0002"/>
+    <Product config="philio/phpsg01.xml" id="001e" name="PH-PSG01 Smoke Sensor" type="0002"/>
+    <Product config="philio/phpat02.xml" id="001f" name="PH-PAT02.eu Flood Multisensor 3in1" type="0002"/>
+    <Product config="philio/phpat02.xml" id="0020" name="PH-PAT02-B.eu Multisensor 2in1" type="0002"/>
+    <Product config="philio/pse02.xml" id="000a" name="PH-PSE02.eu Zipato Indoor Siren" type="0004"/>
+    <Product config="philio/pad02.xml" id="0031" name="PH-PAD02.eu Smart Dimmer Socket E27" type="0005"/>
+    <Product config="philio/phpab01.xml" id="001a" name="PH-PAB01.eu Micromodule Energy Meter" type="0006"/>
+    <Product config="philio/psr03-1b.xml" id="001d" name="PSR03-1B.EU Keyfob 5 Remote" type="0008"/>
+    <Product config="philio/psr04.xml" id="0022" name="PSR04 Smart Color Button" type="0009"/>
+  </Manufacturer>
+  <Manufacturer id="0277" name="Pixela Corporation "></Manufacturer>
+  <Manufacturer id="010e" name="Poly-control">
+    <Product config="polycontrol/keypad.xml" id="0001" name="Danalock Keypad" type="0002"/>
+    <Product config="polycontrol/doorlock.xml" id="0002" name="Danalock Circle/Square" type="0003"/>
+    <Product config="polycontrol/polylock.xml" id="0001" name="Polylock" type="0001"/>
+    <Product config="polycontrol/doorlock.xml" id="0002" name="Danalock V2 BTZE" type="0008"/>
+    <Product config="polycontrol/doorlockv3.xml" id="0001" name="Danalock V3 BTZE" type="0009"/>
+  </Manufacturer>
+  <Manufacturer id="0154" name="Popp &amp; Co">
+    <Product config="popp/123658.xml" id="0001" name="123658 Plug-in Switch plus Power Meter" type="0001"/>
+    <Product config="popp/009105.xml" id="0001" name="009105 Wall Plug Switch Schuko (IP44)" type="0003"/>
+    <Product config="popp/700397.xml" id="000a" name="700397 Wall Plug Switch Outdoor Schuko (IP44)" type="0003"/>
+    <Product config="popp/solar-siren.xml" id="0002" name="Solar Powered Outdoor Siren" type="0004"/>
+    <Product config="popp/004407.xml" id="0003" name="004407 CO Detector" type="0004"/>
+    <Product config="popp/009402.xml" id="0004" name="009402 10-Year Smoke Detector" type="0004"/>
+    <Product config="popp/009501.xml" id="0003" name="009501 Flow Stop" type="0005"/>
+    <Product config="popp/700168.xml" id="0011" name="Popp Z-Rain Rain Sensor" type="0004"/>
+    <Product config="popp/012501.xml" id="0001" name="012501 Strike Lock Control" type="0005"/>
+    <Product config="popp/700045.xml" id="0002" name="700045 Universal Keypad" type="0005"/>
+    <Product config="popp/009303.xml" id="0101" name="009303 Battery Wall Controller" type="0100"/>
+    <Product config="zwave.me/ZME_KFOB-S.xml" id="0103" name="Popp KFOB-C Remote Control" type="0100"/>
+    <Product config="popp/smoke-detector.xml" id="0201" name="Smoke Detector and Siren" type="0100"/>
+    <Product config="popp/zweather.xml" id="0400" name="ZWeather" type="0100"/>
+    <Product config="popp/123601.xml" id="0001" name="123601 Plug-in Switch" type="1100"/>
+    <Product config="popp/123580.xml" id="0002" name="123580 Plug-in Dimmer" type="1100"/>
+  </Manufacturer>
+  <Manufacturer id="0064" name="Popp / Duwi (Reitz-Group.de)">
+    <Product config="duwi/zw-edan-300.xml" id="0000" name="ZW EDAN 300 Flush Mounted Dimmer" type="0001"/>
+    <Product id="0002" name="Flush Mounted Switch" type="1000"/>
+    <Product config="duwi/zw-zdan-300.xml" id="0000" name="Plugin Dimmer" type="1001"/>
+    <Product config="duwi/05458.xml" id="0009" name="Wall Dimmer Set for Busch-Jaeger DURO 2000" type="1000"/>
+    <Product config="duwi/ZWES1000.xml" id="0000" name="ZW ES 1000 Flush Mounted Switch" type="2001"/>
+    <Product id="0000" name="ZW ZS 3500 Plugin Switch" type="3001"/>
+    <Product id="0000" name="ZW ZSA 3500 Plugin Switch" type="3002"/>
+    <Product config="duwi/ZWESJ300.xml" id="0000" name="ZW ESJ Blind Control" type="4001"/>
+    <Product config="duwi/zwfb.xml" id="0000" name="ZW FB Wireless remote control 10-channel" type="5001"/>
+    <Product config="duwi/zwws.xml" id="0000" name="Wireless Flush Mounted Switch" type="5002"/>
+    <Product id="0000" name="Static Controller" type="5003"/>
+  </Manufacturer>
+  <Manufacturer id="0170" name="Powerhouse Dynamics"></Manufacturer>
+  <Manufacturer id="0074" name="PowerLinx"></Manufacturer>
+  <Manufacturer id="0016" name="PowerLynx"></Manufacturer>
+  <Manufacturer id="0042" name="Pragmatic Cons"></Manufacturer>
+  <Manufacturer id="0341" name="Prodea"></Manufacturer>
+  <Manufacturer id="0128" name="Prodrive Technologies">
+    <Product id="0000" name="ED2.0 Meter Adapter" type="0000"/>
+    <Product id="0000" name="ED2.0 Display" type="0128"/>
+  </Manufacturer>
+  <Manufacturer id="0161" name="Promixis LLC"></Manufacturer>
+  <Manufacturer id="005d" name="Pulse Technologies (Aspalis)">
+    <Product id="0511" name="Plugin Lamp Module" type="0202"/>
+  </Manufacturer>
+  <Manufacturer id="0376" name="Pytronic AB"></Manufacturer>
+  <Manufacturer id="0095" name="Qees">
+    <Product config="qees/reto-dimmer-plus.xml" id="0001" name="RETO Dimmer Plus 2013" type="3101"/>
+    <Product config="qees/reto-plugin-switch.xml" id="0001" name="RETO Plug-in Switch Plus" type="3103"/>
+  </Manufacturer>
+  <Manufacturer id="0355" name="Qingdao hongyu cles air conditioning co.ltd"></Manufacturer>
+  <Manufacturer id="012A" name="Qolsys"></Manufacturer>
+  <Manufacturer id="0159" name="Qubino (Goap)">
+    <Product config="qubino/ZMNHDA2.xml" id="0001" name="ZMNHDA2 Flush Dimmer" type="0001"/>
+    <Product config="qubino/ZMNHDDx.xml" id="0051" name="ZMNHDD1 Flush Dimmer" type="0001"/>
+    <Product config="qubino/ZMNHSDx.xml" id="0052" name="ZMNHSDx Din Dimmer" type="0001"/>
+    <Product config="qubino/ZMNHVDx.xml" id="0053" name="ZMNHVDx Flush Dimmer 0-10V" type="0001"/>
+    <Product config="qubino/ZMNHWD1.xml" id="0054" name="ZMNHWD1 Flush RGBW Dimmer" type="0001"/>
+    <Product config="qubino/ZMNHBA2.xml" id="0001" name="ZMNHBA2 Flush 2 Relays" type="0002"/>
+    <Product config="qubino/ZMNHBDx.xml" id="0051" name="ZMNHBDx Flush 2 Relays" type="0002"/>
+    <Product config="qubino/ZMNHAA2.xml" id="0002" name="ZMNHAA2 Flush 1 Relay" type="0002"/>
+    <Product config="qubino/ZMNHADx.xml" id="0052" name="ZMNHADx Flush 1 Relay" type="0002"/>
+    <Product config="qubino/ZMNHNDx.xml" id="0053" name="ZMNHND1 Flush 1D relay" type="0002"/>
+    <Product config="qubino/ZMNHYDx.xml" id="0054" name="ZMNHYD1 Smart Plug 16A" type="0002"/>
+    <Product config="qubino/ZMNHCA2.xml" id="0002" name="ZMNHCA2 Flush Shutter" type="0003"/>
+    <Product config="qubino/ZMNHCDx.xml" id="0052" name="ZMNHCDx Flush Shutter" type="0003"/>
+    <Product config="qubino/ZMNHODx.xml" id="0053" name="ZMNHOD1 Flush Shutter DC" type="0003"/>
+    <Product config="qubino/ZMNHJA2.xml" id="0001" name="ZMNHJA2 Flush Dimmer Pilot Wire" type="0004"/>
+    <Product config="qubino/ZMNHJD1.xml" id="0051" name="ZMNHJD1 Flush Dimmer Pilot Wire" type="0004"/>
+    <Product config="qubino/ZMNHUD1.xml" id="0052" name="ZMNHUD1 DIN Pilot Wire" type="0004"/>
+    <Product config="qubino/ZMNHIA2.xml" id="0001" name="ZMNHIA2 Flush on/off thermostat" type="0005"/>
+    <!--<Product type="0005" id="0051" name="ZMNHIDx Flush on/off thermostat (H1S1P1)" config="qubino/ZMNHIDxS1.xml"/>-->
+    <Product config="qubino/ZMNHIDxS2.xml" id="0051" name="ZMNHIDx Flush on/off thermostat (H1S2P1)" type="0005"/>
+    <Product config="qubino/ZMNHKDx.xml" id="0052" name="ZMNHKDx Flush Heat and Cool thermostat" type="0005"/>
+    <Product config="qubino/ZMNHLDx.xml" id="0053" name="ZMNHLDx Flush PWM thermostat" type="0005"/>
+    <Product config="qubino/ZMNHLAx.xml" id="0003" name="ZMNHLA2 Flush PWM thermostat" type="0005"/>
+    <!--<Product type="0007" id="0052" name="ZMNHTDx Smart meter S1 S2 S3" config="qubino/ZMNHTDxS3.xml"/>-->
+    <Product config="qubino/ZMNHTDx.xml" id="0052" name="ZMNHTDx Smart meter S4 S5 S6" type="0007"/>
+    <Product config="qubino/ZMNHZDx.xml" id="0053" name="ZMNHZDx Weather Station" type="0007"/>
+    <Product config="qubino/ZMNHXDx.xml" id="0054" name="ZMNHXDx 3-phase Smart Meter" type="0007"/>
+    <Product config="qubino/ZMNKIDx.xml" id="0054" name="ZMNKIDx OnOff Thermostat 2" type="0005"/>
+  </Manufacturer>
+  <Manufacturer id="0130" name="Quby">
+    <Product config="quby/qb2.xml" id="0001" name="Energy Management System" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0163" name="Queenlock">
+    <Product config="prowell/zw-702.xml" id="0301" name="ZW-702 Door Lock" type="3001"/>
+  </Manufacturer>
+  <Manufacturer id="0142" name="Rademacher Gerate-Elektronik GmbH"></Manufacturer>
+  <Manufacturer id="0098" name="Radio Thermostat Company of America"></Manufacturer>
+  <Manufacturer id="0314" name="Raonix Co. Ltd"></Manufacturer>
+  <Manufacturer id="008E" name="Raritan"></Manufacturer>
+  <Manufacturer id="040F" name="RATOC Systems Inc"></Manufacturer>
+  <Manufacturer id="0370" name="Raylios"></Manufacturer>
+  <Manufacturer id="021E" name="Red Bee Co. Ltd"></Manufacturer>
+  <Manufacturer id="022C" name="Remote Solution"></Manufacturer>
+  <Manufacturer id="0255" name="Remote Technologies Incorporated"></Manufacturer>
+  <Manufacturer id="5254" name="Remotec">
+    <Product config="remotec/zurc.xml" id="531f" name="Z-URC" type="0000"/>
+    <Product id="8380" name="ZRC-100" type="0001"/>
+    <Product config="remotec/zxt-310.xml" id="8371" name="ZXT-310US" type="0100"/>
+    <Product config="remotec/zxt-310.xml" id="8371" name="ZXT-310EU" type="0101"/>
+    <Product config="remotec/zxt-310.xml" id="8371" name="ZXT-310AU" type="0102"/>
+    <Product config="remotec/zxt-310.xml" id="8371" name="ZXT-310IN" type="0103"/>
+    <Product config="remotec/zxt-310.xml" id="8371" name="ZXT-310RU" type="0106"/>
+    <Product config="remotec/zxt-310.xml" id="8371" name="ZXT-310IL" type="0107"/>
+    <Product config="remotec/zxt-310.xml" id="8371" name="ZXT-310BR" type="0108"/>
+    <Product config="remotec/zxt-120.xml" id="8377" name="ZXT-120US" type="0100"/>
+    <Product config="remotec/zxt-120.xml" id="8377" name="ZXT-120EU" type="0101"/>
+    <Product config="remotec/zxt-120.xml" id="8377" name="ZXT-120AU" type="0102"/>
+    <Product config="remotec/zxt-120.xml" id="8377" name="ZXT-120IN" type="0103"/>
+    <Product config="remotec/zxt-120.xml" id="8377" name="ZXT-120RU" type="0106"/>
+    <Product config="remotec/zxt-120.xml" id="8377" name="ZXT-120IL" type="0107"/>
+    <Product config="remotec/zxt-120.xml" id="8377" name="ZXT-120BR" type="0108"/>
+    <Product config="remotec/zxt-600.xml" id="8490" name="ZXT-600US AC MASTER" type="0100"/>
+    <Product config="remotec/zxt-600.xml" id="8490" name="ZXT-600EU AC MASTER" type="0101"/>
+    <Product config="remotec/zxt-600.xml" id="8490" name="ZXT-600AU AC MASTER" type="0102"/>
+    <Product config="remotec/zxt-600.xml" id="8490" name="ZXT-600IN AC MASTER" type="0103"/>
+    <Product config="remotec/zrc-90.xml" id="8510" name="ZRC-90" type="0001"/>
+    <Product config="remotec/zrc-90.xml" id="8510" name="ZRC-90" type="0002"/>
+    <Product config="remotec/bw8120eu.xml" id="8120" name="ZFM-X10EU Dual Mode Insert Module " type="8201"/>
+    <Product config="remotec/zfm-80.xml" id="0002" name="ZFM-80" type="8000"/>
+    <Product config="remotec/zts-110.xml" id="8031" name="ZTS-110" type="0200"/>
+    <Product config="remotec/zts-110.xml" id="8031" name="ZTS-110" type="0202"/>
+    <Product config="remotec/zts-500.xml" id="8170" name="ZTS-500US" type="0200"/>
+  </Manufacturer>
+  <Manufacturer id="039B" name="Reply S.p.A."></Manufacturer>
+  <Manufacturer id="0010" name="Residential Control Systems">
+    <Product config="rcs/therm0009.xml" id="0002" name="TZ43 Thermostat" type="0001"/>
+    <Product config="rcs/therm0005.xml" id="0005" name="TZ43-IHD SMUD Thermostat" type="0001"/>
+    <Product config="rcs/therm0007.xml" id="0007" name="TZ45-IHD SMUD Thermostat" type="0001"/>
+    <Product config="rcs/therm0009.xml" id="0009" name="TZ45 Thermostat" type="0001"/>
+    <Product id="000a" name="TZ4Z-IHD RCS Thermostat" type="0001"/>
+    <Product config="rcs/em52-zw.xml" id="3532" name="EM52-ZW Z-Wave Home Energy Meter" type="454d"/>
+    <Product config="rcs/pm12-zw.xml" id="3132" name="PM12-ZW Z-Wave Power Monitoring Module" type="504d"/>
+  </Manufacturer>
+  <Manufacturer id="0216" name="RET Nanjing Intelligence System"></Manufacturer>
+  <Manufacturer id="0153" name="Revolv"></Manufacturer>
+  <Manufacturer id="035E" name="RISCO Group"></Manufacturer>
+  <Manufacturer id="023B" name="ROC-Connect"></Manufacturer>
+  <Manufacturer id="0197" name="RPE Ajax LLC"></Manufacturer>
+  <Manufacturer id="0065" name="RS Scene Automation"></Manufacturer>
+  <Manufacturer id="029D" name="Rubetek"></Manufacturer>
+  <Manufacturer id="0290" name="S1"></Manufacturer>
+  <Manufacturer id="023C" name="SafeTech Products"></Manufacturer>
+  <Manufacturer id="0201" name="Samsung Electronics"></Manufacturer>
+  <Manufacturer id="022E" name="Samsung SDS"></Manufacturer>
+  <Manufacturer id="0093" name="San Shih Electrical Enterprise"></Manufacturer>
+  <Manufacturer id="0150" name="Samsung SmartThings">
+    <Product config="smartthings/sth-eth200.xml" id="0006" name="SmartThings Hub v2" type="0002"/>
+    <Product config="smartthings/pgc401m.xml" id="0191" name="SmartThings Hub v1" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="012C" name="SANAV"></Manufacturer>
+  <Manufacturer id="0307" name="SATCO Products"></Manufacturer>
+  <Manufacturer id="0318" name="SBCK Corp"></Manufacturer>
+  <Manufacturer id="003b" name="Schlage (Allegion)">
+    <Product config="schlage/fe599.xml" id="504c" name="FE599GR Wireless Door Lock" type="634b"/>
+    <Product config="schlage/BE469.xml" id="5044" name="BE469 Touchscreen Deadbolt" type="6341"/>
+    <Product config="schlage/BE468.xml" id="5044" name="BE468 Touchscreen Deadbolt" type="6349"/>
+    <Product config="schlage/BE469ZP.xml" id="0469" name="BE469ZP Connect Smart Deadbolt" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0097" name="Schlage Link (Wintop)">
+    <Product config="schlagelink/itemp.xml" id="4501" name="iTemp Dual Sensor" type="1182"/>
+    <Product config="schlagelink/itemp.xml" id="4501" name="iTemp Dual Sensor" type="1188"/>
+    <Product config="schlagelink/minikeypad.xml" id="4501" name="Mini Keypad RFID" type="6131"/>
+    <Product config="schlagelink/minikeypad.xml" id="4101" name="Mini Keypad RFID" type="6131"/>
+    <Product config="schlagelink/41.xml" id="5501" name="LE120 Appliance Module" type="6941"/>
+    <Product id="4501" name="On-Wall Power Socket" type="6943"/>
+  </Manufacturer>
+  <Manufacturer id="001F" name="Scientia Technologies"></Manufacturer>
+  <Manufacturer id="029A" name="Scout Alarm"></Manufacturer>
+  <Manufacturer id="011E" name="Secure Wireless"></Manufacturer>
+  <Manufacturer id="0167" name="SecureNet Technologies"></Manufacturer>
+  <Manufacturer id="0182" name="Securifi"></Manufacturer>
+  <Manufacturer id="0069" name="Seluxit"></Manufacturer>
+  <Manufacturer id="0043" name="Senmatic A/S"></Manufacturer>
+  <Manufacturer id="019a" name="Sensative">
+    <Product config="sensative/strips.xml" id="0003" name="Strips" type="0003"/>
+    <Product config="sensative/stripscomfort.xml" id="000a" name="Strips Comfort" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="0044" name="Sequoia Tech"></Manufacturer>
+  <Manufacturer id="0151" name="Sercomm">
+    <Product config="sercomm/sw-clp01-eu.xml" id="0001" name="SW-CLP01-EU Clamp Power Meter" type="0002"/>
+  </Manufacturer>
+  <Manufacturer id="0378" name="Shandong Bittel Intelligent Technology"></Manufacturer>
+  <Manufacturer id="030B" name="Shandong Smart Life Data System"></Manufacturer>
+  <Manufacturer id="0215" name="Shangdong Smart Life Data System"></Manufacturer>
+  <Manufacturer id="023E" name="Shanghai Dorlink Intelligent Technologies"></Manufacturer>
+  <Manufacturer id="0205" name="Shanghai Longchuang Eco-energy Systems"></Manufacturer>
+  <Manufacturer id="010B" name="Sharp"></Manufacturer>
+  <Manufacturer id="0357" name="Shenzhen 3nod Acousticlink"></Manufacturer>
+  <Manufacturer id="021A" name="SHENZHEN AOYA INDUSTRY"></Manufacturer>
+  <Manufacturer id="0286" name="Shenzhen Easyhome Technology"></Manufacturer>
+  <Manufacturer id="021C" name="Shenzhen iSurpass Technology"></Manufacturer>
+  <Manufacturer id="037A" name="Shenzhen JBT Smart Lighting"></Manufacturer>
+  <Manufacturer id="021D" name="Shenzhen Kaadas Intelligent Technology"></Manufacturer>
+  <Manufacturer id="0211" name="Shenzhen Liao Wang Tong Da Technology"></Manufacturer>
+  <Manufacturer id="0406" name="Shenzhen Meian Technology"></Manufacturer>
+  <Manufacturer id="0258" name="Shenzhen Neo Electronics Co Ltd">
+    <Product config="shenzen_neo/nas-ds01z.xml" id="0082" name="Door/Window Detector" type="0003"/>
+    <Product config="shenzen_neo/nas-ds01z.xml" id="1082" name="Door/Window Detector" type="0003"/>
+    <Product config="shenzen_neo/nas-ds01z.xml" id="2082" name="Door/Window Detector" type="0003"/>
+    <Product config="shenzen_neo/nas-wr01z.xml" id="0087" name="Power plug 12A" type="0003"/>
+    <Product config="shenzen_neo/nas-wr01z.xml" id="1087" name="Power plug 12A" type="0003"/>
+    <Product config="shenzen_neo/nas-wr01ze.xml" id="1027" name="Power plug 12A" type="0200"/>
+    <Product config="shenzen_neo/nas-wr01z.xml" id="2087" name="Power plug 12A" type="0003"/>
+    <Product config="shenzen_neo/nas-pd01z.xml" id="0083" name="Battery Powered PIR Sensor" type="0003"/>
+    <Product config="shenzen_neo/nas-pd01z.xml" id="1083" name="Battery Powered PIR Sensor" type="0003"/>
+    <Product config="shenzen_neo/nas-pd02z.xml" id="108d" name="Battery Powered PIR Sensor V2" type="0003"/>
+    <!--<Product type="0003" id="108d" name="Battery Powered PIR Sensor with temp" config="shenzen_neo/nas-pd01z.xml"/>-->
+    <Product config="shenzen_neo/nas-ws02z.xml" id="0085" name="Water Leakage Detector" type="0003"/>
+    <Product config="shenzen_neo/nas-ws02z.xml" id="1085" name="Water Leakage Detector" type="0003"/>
+    <Product config="shenzen_neo/nas-ws02z.xml" id="6085" name="Water Leakage Detector" type="0003"/>
+    <Product config="shenzen_neo/nas-ws02z.xml" id="2085" name="Water Leakage Detector" type="0003"/>
+    <Product config="shenzen_neo/nas-ab01z.xml" id="0088" name="Siren Alarm" type="0003"/>
+    <Product config="shenzen_neo/nas-ab01z.xml" id="1088" name="Siren Alarm" type="0003"/>
+    <Product config="shenzen_neo/nas-rc01z.xml" id="008a" name="SOS/Remote Control" type="0003"/>
+    <Product config="shenzen_neo/nas-rc01z.xml" id="108a" name="SOS/Remote Control" type="0003"/>
+    <Product config="shenzen_neo/ls02ch.xml" id="008b" name="Wall Switch (2 channels)" type="0003"/>
+    <Product config="shenzen_neo/ls02ch.xml" id="108b" name="Wall Switch (2 channels)" type="0003"/>
+    <Product config="shenzen_neo/ls01ch.xml" id="008c" name="Wall Switch (1 channel)" type="0003"/>
+    <Product config="shenzen_neo/ls01ch.xml" id="108c" name="Wall Switch (1 channel)" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="032C" name="Shenzhen Saykey Technology"></Manufacturer>
+  <Manufacturer id="036C" name="Shenzhen Sen5 Technology"></Manufacturer>
+  <Manufacturer id="0381" name="Shenzhen Thingsview Tech"></Manufacturer>
+  <Manufacturer id="0250" name="Shenzhen Tripath Digital Audio Equipment"></Manufacturer>
+  <Manufacturer id="0356" name="Shenzhen ZHIQU Technology Limited"></Manufacturer>
+  <Manufacturer id="0081" name="SIEGENIA-AUBI KG"></Manufacturer>
+  <Manufacturer id="0267" name="Simon">
+    <Product config="simon/10002034-13X.xml" id="0000" name="S100 Socket iO" type="0001"/>
+    <Product config="simon/10002034-13X.xml" id="00da" name="S100 Socket iO" type="0001"/>
+    <Product config="simon/10002041-13X.xml" id="0022" name="S100 Socket iO" type="0009"/>
+  </Manufacturer>
+  <Manufacturer id="0045" name="Sine Wireless"></Manufacturer>
+  <Manufacturer id="0266" name="Siterwell Technology HK"></Manufacturer>
+  <Manufacturer id="0282" name="Smart Electronic Industrial"></Manufacturer>
+  <Manufacturer id="0046" name="Smart Products"></Manufacturer>
+  <Manufacturer id="026A" name="SmartAll"></Manufacturer>
+  <Manufacturer id="0323" name="SmartHome Partner GmbH"></Manufacturer>
+  <Manufacturer id="024F" name="Smartly AS"></Manufacturer>
+  <Manufacturer id="0150" name="SmartThings"></Manufacturer>
+  <Manufacturer id="0102" name="SMK Manufacturing"></Manufacturer>
+  <Manufacturer id="029C" name="SoftAtHome"></Manufacturer>
+  <Manufacturer id="0047" name="Somfy"></Manufacturer>
+  <Manufacturer id="0394" name="SONG JIANG YUN-AN TECHNOLOGY"></Manufacturer>
+  <Manufacturer id="0402" name="Sony Mobile Communications"></Manufacturer>
+  <Manufacturer id="0274" name="Soosan Hometech"></Manufacturer>
+  <Manufacturer id="035A" name="SOREL GmbH"></Manufacturer>
+  <Manufacturer id="026e" name="Springs Window Fashions (Graber)">
+    <Product config="graber/brz1.xml" id="5a31" name="BRZ1 Remote Control" type="4252"/>
+    <Product id="5a31" name="RSZ1 Roller Shade" type="5253"/>
+    <Product config="graber/vcz1.xml" id="5a31" name="VCZ1 Virtual Cord Remote Control" type="5643"/>
+    <Product id="5a31" name="CSZ1 Cellular Shade" type="4353"/>
+  </Manufacturer>
+  <Manufacturer id="026F" name="Sprue Safety Products"></Manufacturer>
+  <Manufacturer id="0124" name="Square Connect"></Manufacturer>
+  <Manufacturer id="021B" name="ST&amp;T Electric Corporation"></Manufacturer>
+  <Manufacturer id="0358" name="Star Automation"></Manufacturer>
+  <Manufacturer id="0259" name="Starkoff"></Manufacturer>
+  <Manufacturer id="0265" name="StarVedia"></Manufacturer>
+  <Manufacturer id="0271" name="Steinel">
+    <Product config="steinel/is140-2.xml" id="1a72" name="IS140-2" type="0002"/>
+    <Product config="steinel/rs-led-d2.xml" id="1a74" name="RS LED D2" type="0001"/>
+    <Product config="steinel/xled-home-2.xml" id="1a73" name="XLED HOME 2" type="0001"/>
+    <Product config="steinel/l810-led-ihf.xml" id="1a75" name="L810 LED iHF" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0239" name="Stelpro">
+    <Product config="stelpro/stzw402.xml" id="0001" name="STZW402+ Electronic Thermostat" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0217" name="Strattec Advanced Logic"></Manufacturer>
+  <Manufacturer id="0168" name="STRATTEC Security"></Manufacturer>
+  <Manufacturer id="0105" name="Sumitomo"></Manufacturer>
+  <Manufacturer id="028B" name="Sunjet Components"></Manufacturer>
+  <Manufacturer id="0054" name="Superna"></Manufacturer>
+  <Manufacturer id="0191" name="Swann Communications"></Manufacturer>
+  <Manufacturer id="0339" name="SWYCS"></Manufacturer>
+  <Manufacturer id="0166" name="Swiid (CBCC Domotique SAS)">
+    <Product config="swiid/swiidinter.xml" id="0100" name="SwiidInter" type="0100"/>
+    <Product config="swiid/swiidplug.xml" id="0706" name="SwiidPlug" type="2007"/>
+  </Manufacturer>
+  <Manufacturer id="0009" name="Sylvania"></Manufacturer>
+  <Manufacturer id="0136" name="Systech Corporation"></Manufacturer>
+  <Manufacturer id="0276" name="Systemair Sverige AB"></Manufacturer>
+  <Manufacturer id="0375" name="T&amp;W"></Manufacturer>
+  <Manufacturer id="0235" name="TAEWON Lighting"></Manufacturer>
+  <Manufacturer id="0262" name="Taiwan Fu Hsing Industrial"></Manufacturer>
+  <Manufacturer id="0264" name="Taiwan iCATCH"></Manufacturer>
+  <Manufacturer id="0186" name="Team Digital Limited"></Manufacturer>
+  <Manufacturer id="0089" name="Team Precision PCL"></Manufacturer>
+  <Manufacturer id="0240" name="Technicolor"></Manufacturer>
+  <Manufacturer id="000A" name="Techniku"></Manufacturer>
+  <Manufacturer id="012F" name="Tecom"></Manufacturer>
+  <Manufacturer id="0012" name="Tell It Online">
+    <Product config="icare/zw-66.xml" id="0001" name="Switchkeeper Plug-in Appliance Module" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0176" name="Telldus">
+    <Product config="telldus/tzwp100.xml" id="0001" name="TZWP-100 Plug-in Switch" type="0003"/>
+    <Product config="telldus/tzwp102.xml" id="0003" name="TZWP-102 Plug-in Switch" type="0003"/>
+    <Product config="telldus/tzdw100.xml" id="0001" name="TZDW-100 Magnet Switch" type="0005"/>
+  </Manufacturer>
+  <Manufacturer id="0048" name="Telsey"></Manufacturer>
+  <Manufacturer id="017E" name="Telular"></Manufacturer>
+  <Manufacturer id="0397" name="Teptron AB"></Manufacturer>
+  <Manufacturer id="005C" name="Terra Optima B.V."></Manufacturer>
+  <Manufacturer id="010c" name="There Corporation">
+    <Product config="there/800z.xml" id="0001" name="ThereGate" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="019b" name="ThermoFloor AS">
+    <Product config="thermofloor/heatit021.xml" id="0001" name="Heatit Thermostat TF 021" type="0001"/>
+    <Product config="thermofloor/heatit056.xml" id="0202" name="Heatit Thermostat TF 056" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="0317" name="Think Simple srl"></Manufacturer>
+  <Manufacturer id="022A" name="TIMEVALVE"></Manufacturer>
+  <Manufacturer id="033B" name="Tingcore AB"></Manufacturer>
+  <Manufacturer id="0118" name="TKB Home">
+    <Product config="wenzhou/tz88.xml" id="0001" name="TZ88 Smart Energy Plug-in Switch" type="0001"/>
+    <Product config="wenzhou/tz88.xml" id="0011" name="TZ88 Smart Energy Plug-in Switch" type="0001"/>
+    <Product config="wenzhou/sm103.xml" id="0001" name="SM103 Door/Window Sensor" type="0002"/>
+    <Product config="wenzhou/tsp01.xml" id="0002" name="TSP01 3 in 1 PIR Motion Sensor" type="0002"/>
+    <Product config="wenzhou/tz68.xml" id="0002" name="TZ68 On/Off Switch Socket" type="0003"/>
+    <Product config="wenzhou/tz56.xml" id="0003" name="TZ56 Wall Switch On/Off" type="0003"/>
+    <Product config="wenzhou/tz55.xml" id="0004" name="TZ55 Wall Switch Dimmer" type="0003"/>
+    <Product config="wenzhou/tz69.xml" id="0002" name="TZ69 Smart energy plug in switch" type="0004"/>
+    <Product config="wenzhou/tz69.xml" id="3119" name="TZ69F Smart energy plug in switch" type="0116"/>
+    <Product config="everspring/st812.xml" id="0001" name="ST812 Flood Detector" type="000b"/>
+    <Product config="wenzhou/tz65d.xml" id="0808" name="TZ65 Dual Wall Dimmer" type="0808"/>
+    <Product config="wenzhou/tz68.xml" id="0103" name="TZ68 On/Off Switch Socket" type="0101"/>
+    <Product config="wenzhou/tz66d.xml" id="1020" name="TZ66D Dual Wall Switch" type="0102"/>
+    <Product config="wenzhou/tz67.xml" id="0611" name="TZ67 Wall Plug Dimmer" type="0202"/>
+    <Product config="wenzhou/tz69.xml" id="0103" name="TZ69E Smart energy plug in switch" type="0311"/>
+    <Product config="wenzhou/tz56s.xml" id="0202" name="TZ56S On/Off wall switch" type="0311"/>
+    <Product config="wenzhou/tz57.xml" id="0203" name="TZ57 Two channel switch" type="0311"/>
+    <Product config="wenzhou/tz79.xml" id="0305" name="TZ79 Power meter Relay Switch" type="0311"/>
+    <Product config="wenzhou/tz74.xml" id="0304" name="TZ74 Dual Switch" type="0311"/>
+  </Manufacturer>
+  <Manufacturer id="011C" name="TKH Group / Eminent"></Manufacturer>
+  <Manufacturer id="0327" name="TMC Technology"></Manufacturer>
+  <Manufacturer id="0326" name="TODKI"></Manufacturer>
+  <Manufacturer id="0319" name="Toledo"></Manufacturer>
+  <Manufacturer id="034F" name="TONG LUNG METAL INDUSTRY"></Manufacturer>
+  <Manufacturer id="0333" name="Toshiba Visual Solution"></Manufacturer>
+  <Manufacturer id="0283" name="TP-Link Technologies"></Manufacturer>
+  <Manufacturer id="008b" name="Trane Corporation">
+    <Product config="trane/TZEMT400AB32MAA.xml" id="5431" name="Model TZEMT400AB32MAA" type="5452"/>
+    <Product config="trane/TZEMT400BB32MAA.xml" id="5433" name="Model TZEMT400BB32MAA" type="5452"/>
+    <Product config="trane/TZEMT400BB32MAA.xml" id="5436" name="Model TZEMT400BB32MAA" type="5452"/>
+    <Product config="trane/TZEMT524AA21MA.xml" id="5442" name="Model TZEMT524AA21MA" type="5452"/>
+    <Product config="trane/TZEMT524AA21MA.xml" id="5439" name="Model TCONT624AS42DAA" type="5452"/>
+  </Manufacturer>
+  <Manufacturer id="0066" name="TrickleStar"></Manufacturer>
+  <Manufacturer id="006b" name="Tricklestar"></Manufacturer>
+  <Manufacturer id="0055" name="Tridium"></Manufacturer>
+  <Manufacturer id="0111" name="Tronico Technology Co. Ltd.">
+    <Product config="airlinemechanical/zds-ud10.xml" id="0200" name="ZDS-100" type="8200"/>
+  </Manufacturer>
+  <Manufacturer id="0330" name="Tronika">
+    <Product config="sunricher/srzv9001t4dimeu.xml" id="a10d" name="Touch Panel Wall Controller - ZSC-01D" type="0003"/>
+    <Product config="sunricher/zv9101.xml" id="d005" name="Dimmer ZV-9101" type="0200"/>
+    <Product config="sunricher/srzv9101sachpeu.xml" id="d00c" name="Dimmer ZV9040" type="0200"/>
+  </Manufacturer>
+  <Manufacturer id="0049" name="Twisthink"></Manufacturer>
+  <Manufacturer id="0270" name="Ubitech"></Manufacturer>
+  <Manufacturer id="0152" name="UFairy G.R. Tech">
+    <Product config="gr/gr105.xml" id="0511" name="GR105 Auto Valve" type="0202"/>
+    <Product config="gr/gr105n.xml" id="0512" name="GR105n Auto Valve" type="0003"/>
+    <Product id="0003" name="ZSE02 Motion Sensor" type="0500"/>
+  </Manufacturer>
+  <Manufacturer id="0193" name="Universal Devices"></Manufacturer>
+  <Manufacturer id="0020" name="Universal Electronics Inc.">
+    <Product id="1390" name="Wireless Lighting Control" type="8007"/>
+    <Product config="jasco/45601.xml" id="1391" name="45601 Advanced Remote" type="8007"/>
+  </Manufacturer>
+  <Manufacturer id="0183" name="Universe Future"></Manufacturer>
+  <Manufacturer id="0209" name="UTC Fire and Security Americas Corp"></Manufacturer>
+  <Manufacturer id="0388" name="Vates"></Manufacturer>
+  <Manufacturer id="030F" name="Vemmio"></Manufacturer>
+  <Manufacturer id="0198" name="Venstar"></Manufacturer>
+  <Manufacturer id="008c" name="Vera Control">
+    <Product config="vera/vera2.xml" id="0001" name="Vera Lite" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="0080" name="Vero Duco"></Manufacturer>
+  <Manufacturer id="0237" name="Vestel Elektronik Ticaret ve Sanayi"></Manufacturer>
+  <Manufacturer id="0053" name="Viewsonic"></Manufacturer>
+  <Manufacturer id="005e" name="ViewSonic Corporation"></Manufacturer>
+  <Manufacturer id="0007" name="Vimar CRS"></Manufacturer>
+  <Manufacturer id="0188" name="Vipa-Star"></Manufacturer>
+  <Manufacturer id="010a" name="Vitrum (VDA)">
+    <Product config="vitrum/vitrumI-Dimmer.xml" id="4900" name="Vitrum I EU Wireless Dimmer" type="1100"/>
+    <Product config="vitrum/vitrumII-Dimmer.xml" id="4a00" name="Vitrum II EU Wireless Dimmer" type="1100"/>
+    <Product config="vitrum/vitrumIII-Dimmer.xml" id="4b00" name="Vitrum III EU Wireless Dimmer" type="1100"/>
+    <Product config="vitrum/vitrumI-Switch.xml" id="5100" name="Vitrum I EU Wireless On-off" type="1200"/>
+    <Product config="vitrum/vitrumII-Switch.xml" id="5200" name="Vitrum II EU Wireless On-off" type="1200"/>
+    <Product config="vitrum/vitrumIII-Switch.xml" id="5300" name="Vitrum III EU Wireless On-off" type="1200"/>
+    <Product config="vitrum/vitrumIV-Switch.xml" id="5400" name="Vitrum IV EU Wireless On-off" type="1200"/>
+    <Product config="vitrum/vitrumII-Blind.xml" id="5A00" name="Vitrum II EU Roller Blind Control" type="1300"/>
+    <Product config="vitrum/vitrumII-Dimmer.xml" id="8a00" name="Vitrum II BS Wireless Dimmer" type="2100"/>
+    <Product config="vitrum/vitrumI-Dimmer.xml" id="9100" name="Vitrum I BS Wireless On-off" type="2200"/>
+    <Product config="vitrum/vitrumII-Switch.xml" id="9200" name="Vitrum II BS Wireless On-off" type="2200"/>
+    <Product config="vitrum/vitrumIV-Switch.xml" id="9400" name="Vitrum IV BS Wireless On-off" type="2200"/>
+    <Product config="vitrum/vitrumIV-Switch.xml" id="6400" name="Vitrum IV EU Wireless On-off" type="4400"/>
+    <Product config="vitrum/vitrumIV-Switch.xml" id="6400" name="Vitrum IV EU Wireless On-off" type="3400"/>
+    <Product config="vitrum/vitrumVI-Switch.xml" id="6600" name="Vitrum VI EU Wireless On-off" type="1400"/>
+    <Product config="vitrum/vitrumI-Switch.xml" id="6100" name="Vitrum I EU Wireless On-off" type="1400"/>
+  </Manufacturer>
+  <Manufacturer id="0109" name="Vision Security">
+    <Product config="vision/zu1401jp.xml" id="0101" name="ZU1401 Z-Wave USB Stick" type="1001"/>
+    <Product id="0104" name="ZU1401 Z-Wave USB Stick" type="1001"/>
+    <Product id="0105" name="ZU1401 Z-Wave USB Stick" type="1001"/>
+    <Product config="vision/zd2102.xml" id="0101" name="ZD2102 US Door/Window Sensor" type="2001"/>
+    <Product config="vision/zd2102.xml" id="0102" name="ZD2102 AU Door/Window Sensor" type="2001"/>
+    <Product config="vision/zd2102.xml" id="0104" name="ZD2102 JP Door/Window Sensor" type="2001"/>
+    <Product config="vision/zd2102.xml" id="0105" name="ZD2102 EU Door/Window Sensor" type="2001"/>
+    <Product config="vision/zd2102.xml" id="0106" name="ZD2102 EU Door/Window Sensor" type="2001"/>
+    <Product config="vision/zp3102.xml" id="0201" name="ZP3102 PIR Motion Sensor" type="2002"/>
+    <Product config="vision/zp3102.xml" id="0202" name="ZP3102 PIR Motion Sensor" type="2002"/>
+    <Product config="vision/zp3102.xml" id="0203" name="ZP3102 PIR Motion Sensor" type="2002"/>
+    <Product config="vision/zp3102.xml" id="0204" name="ZP3102 PIR Motion Sensor" type="2002"/>
+    <Product config="vision/zp3102.xml" id="0205" name="ZP3102 PIR Motion Sensor" type="2002"/>
+    <Product config="vision/zs5101eu.xml" id="0301" name="ZS5101 Shock and Vibration Sensor" type="2003"/>
+    <Product config="vision/zs5101eu.xml" id="0302" name="ZS5101 Shock and Vibration Sensor" type="2003"/>
+    <Product config="vision/zs5101eu.xml" id="0306" name="ZS5101 Shock and Vibration Sensor" type="2003"/>
+    <Product config="vision/zs5101eu.xml" id="0307" name="ZS5101 Shock and Vibration Sensor" type="2003"/>
+    <Product config="vision/zs610eu.xml" id="0403" name="ZS6101 Smoke Detector" type="2004"/>
+    <Product config="vision/zm1601eu.xml" id="0503" name="ZM1601 Battery Operated Siren" type="2005"/>
+    <Product config="vision/zm1601eu.xml" id="0505" name="ZM1601 Battery Operated Siren" type="2005"/>
+    <Product config="vision/zm1601eu5.xml" id="0508" name="ZM1601EU-5 Battery Operated Siren" type="2005"/>
+    <Product id="0610" name="ZM1701 Electronic Deadbolt Door Lock without Handle" type="2006"/>
+    <Product config="vision/1701.xml" id="0620" name="ZM1702 Electronic Deadbolt Door Lock with Handle" type="2006"/>
+    <Product id="0621" name="ZM1701 Electronic Deadbolt Door Lock without Handle" type="2006"/>
+    <Product config="vision/zl7201us.xml" id="0703" name="Plug-in Switch" type="2007"/>
+    <Product config="vision/zl7101us.xml" id="0803" name="ZL7101 Plug-in Dimmer Module" type="2008"/>
+    <Product config="vision/zm1602eu.xml" id="0903" name="ZM1602 Main Operated Siren" type="2009"/>
+    <Product config="vision/zm1602eu5.xml" id="0908" name="ZM1602+ DC/AC Power Siren" type="2009"/>
+    <Product config="vision/zg8101.xml" id="0a02" name="ZG8101 Garage Door Detector" type="200a"/>
+    <Product config="vision/zl7431.xml" id="0c02" name="ZL7431 In-Wall Switch Single Relay" type="200c"/>
+    <Product id="0f02" name="ZS6301 CO Detector" type="200f"/>
+    <Product id="0f03" name="ZS6301 CO Detector" type="200f"/>
+    <Product config="vision/zr1202us.xml" id="1203" name="ZR1202 Repeater" type="2012"/>
+    <Product config="vision/brg1-433.xml" id="1401" name="ZL7101 Plug-in Dimmer Module" type="2014"/>
+    <Product id="1717" name="ZL7432 In-Wall Switch, Dual Relay" type="2017"/>
+    <Product config="vision/zl7261.xml" id="1aa4" name="ZL7261 Plug-in Power Monitor" type="201a"/>
+    <Product config="vision/zf5201.xml" id="1c01" name="ZF5201 Flood sensor" type="201c"/>
+    <Product config="vision/zd2201.xml" id="1f10" name="ZD2201 Multisensor 4in1" type="201f"/>
+    <Product config="vision/zd2301.xml" id="1f20" name="ZD2301 Multisensor 4in1" type="201f"/>
+    <Product config="vision/zp3111.xml" id="2101" name="ZP3111 Multisensor 4in1" type="2021"/>
+    <Product config="vision/zd2105us5.xml" id="2201" name="ZD2105US-5 Recessed Door/Window Sensor" type="2022"/>
+    <Product id="0104" name="ZM1602 Main Operated Siren" type="3001"/>
+  </Manufacturer>
+  <Manufacturer id="004a" name="Visualize"></Manufacturer>
+  <Manufacturer id="0058" name="Vitelec"></Manufacturer>
+  <Manufacturer id="0263" name="Viva Labs AS"></Manufacturer>
+  <Manufacturer id="0156" name="Vivint"></Manufacturer>
+  <Manufacturer id="017B" name="Vs-Safety AS"></Manufacturer>
+  <Manufacturer id="004b" name="Watt Stopper"></Manufacturer>
+  <Manufacturer id="0008" name="Wayne Dalton">
+    <Product config="waynedalton/WDTC-20.xml" id="0020" name="WDTC-20 Thermostat" type="0007"/>
+  </Manufacturer>
+  <Manufacturer id="019F" name="Webee Life"></Manufacturer>
+  <Manufacturer id="0171" name="WeBeHome AB">
+    <Product id="0001" name="WBH HG-900 Home Gateway" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="011a" name="Wenzhou MTLC Electric Appliances (Enerwave)">
+    <Product config="enerwave/zwn-bpc.xml" id="0901" name="ZWN-BPC Ceiling Mounted PIR Motion Sensor" type="0601"/>
+    <Product config="enerwave/zwn-sc7.xml" id="0b03" name="ZWN-SC7 7-Button Scene Controller" type="0801"/>
+    <Product config="enerwave/zw15s.xml" id="0102" name="ZW15S 15A On/Off Switch" type="0101"/>
+    <Product config="enerwave/zw20r.xml" id="0603" name="ZW20R 20A TR Duplex Receptacle" type="0101"/>
+    <Product config="enerwave/zwnrsm1plus.xml" id="0605" name="ZWN-RSM1 PLUS-Smart Single Relay Switch Module" type="0111"/>
+    <!--<Product type="0111" id="0605" name="ZWN-RSM2-PLUS Smart Single Relay Switch Module" config="enerwave/zwnrsm2plus.xml"/>-->
+    <Product config="enerwave/zw20rm.xml" id="0101" name="ZW20RM 20A TR Smart Meter Duplex Receptacle" type="0111"/>
+    <Product config="enerwave/zw500d.xml" id="0201" name="ZW500D 500W In-Wall Preset Dimmer Switch" type="0102"/>
+    <Product config="enerwave/zw15rmplus.xml" id="0105" name="ZW15RM Plus 15A TR Smart Meter Duplex Receptacle" type="0111"/>
+  </Manufacturer>
+  <Manufacturer id="026C" name="Westcontrol AS"></Manufacturer>
+  <Manufacturer id="0057" name="Whirlpool"></Manufacturer>
+  <Manufacturer id="027B" name="White Rabbit"></Manufacturer>
+  <Manufacturer id="0149" name="wiDom">
+    <Product config="widom/UBS104.xml" id="0104" name="UBS104 Universal Relay Switch" type="0012"/>
+    <Product config="widom/UME304C_S.xml" id="0304" name="UME304 Energy Driven Switch" type="1214"/>
+    <Product config="widom/WDS.xml" id="0504" name="WDS Universal Double Switch" type="1214"/>
+  </Manufacturer>
+  <Manufacturer id="012D" name="Wilshine Holding"></Manufacturer>
+  <Manufacturer id="017F" name="Wink"></Manufacturer>
+  <Manufacturer id="004c" name="Woodward Labs"></Manufacturer>
+  <Manufacturer id="0242" name="Winytechnology"></Manufacturer>
+  <Manufacturer id="0199" name="Wireless Maingate AB"></Manufacturer>
+  <Manufacturer id="0269" name="WOOREE Lighting"></Manufacturer>
+  <Manufacturer id="0003" name="Wrap"></Manufacturer>
+  <Manufacturer id="022F" name="WRT Intelligent Technology"></Manufacturer>
+  <Manufacturer id="012E" name="Wuhan NWD Technology"></Manufacturer>
+  <Manufacturer id="004d" name="Xanboo"></Manufacturer>
+  <Manufacturer id="037D" name="Xiamen AcTEC Electronics"></Manufacturer>
+  <Manufacturer id="0000" name="Z-Wave (Sigma Designs)">
+    <Product id="0001" name="UZB Z-Wave USB Adapter" type="0001"/>
+  </Manufacturer>
+  <Manufacturer id="031D" name="Z-Wave Alliance"></Manufacturer>
+  <Manufacturer id="004F" name="Z-Wave Technologia"></Manufacturer>
+  <Manufacturer id="0115" name="Z-Wave.Me">
+    <Product config="zwave.me/zme_raz5.xml" id="0001" name="Z-Wave USB Stick" type="0001"/>
+    <Product config="zwave.me/kfob.xml" id="0069" name="Key Fob" type="0001"/>
+    <Product id="0003" name="Z-Wave USB Stick" type="0002"/>
+    <Product id="0001" name="Floor Thermostat" type="0024"/>
+    <Product config="zwave.me/kfob.xml" id="0001" name="ZME_KFOB 4 Button Key Fob" type="0100"/>
+    <Product config="zwave.me/ZME_WCD2.xml" id="0004" name="ZME_WCD2 Double Paddle Wall Controller" type="0100"/>
+    <Product config="zwave.me/ZME_WALLC-S.xml" id="0101" name="ZME_WALLC-S Secure Wall Controller" type="0100"/>
+    <Product config="zwave.me/ZME_KFOB-S.xml" id="0102" name="ZME_KFOB-S 4 Button Key Fob" type="0100"/>
+    <Product config="zwave.me/popp_kfob-c.xml" id="0103" name="Popp KFOB-C Remote Control" type="0100"/>
+    <Product id="0200" name="Smoke Detector" type="0100"/>
+    <Product config="zwave.me/004001.xml" id="0201" name="Smoke Detector" type="0100"/>
+    <Product config="zwave.me/zweather.xml" id="0400" name="Z-Weather Wind and Weather Sensor" type="0100"/>
+    <Product config="zwave.me/ZUno.xml" id="0001" name="Z-Uno" type="0110"/>
+    <Product config="zwave.me/iTemp.xml" id="0001" name="iTemp Temperature Sensor" type="0200"/>
+    <Product config="zwave.me/iTemp.xml" id="0001" name="iTemp Temperature Sensor" type="0201"/>
+    <Product id="0002" name="Thermostat" type="0201"/>
+    <Product id="0003" name="Binary Sensor" type="0201"/>
+    <Product id="0001" name="ZME_UZB1 USB Stick" type="0400"/>
+    <Product config="zwave.me/ZME_05431.xml" id="0001" name="ZME_054313Z Flush-Mountable Switch" type="1000"/>
+    <Product config="zwave.me/ZME_06433.xml" id="0002" name="ZME_06433/05433 Wall Flush-Mountable Dimmer" type="1000"/>
+    <Product config="zwave.me/ZME_06436.xml" id="0003" name="ZME_06436 Motor Control" type="1000"/>
+    <Product config="zwave.me/ZME_064435.xml" id="0004" name="ZME_064435 Wall Controller" type="1000"/>
+    <Product config="zwave.me/ZME_05461.xml" id="0100" name="ZME_05461 Dual Load Wall Switch" type="1000"/>
+    <Product config="zwave.me/ZME_064381.xml" id="0200" name="ZME_064281 Wall Plug switch Schuko (IP44) Gen 5" type="1000"/>
+    <Product config="zwave.me/ZME_RC2.xml" id="0300" name="ZME_RC2 Remote Control" type="1000"/>
+    <Product id="0002" name="PLDE Plug-in Dimmer" type="1100"/>
+  </Manufacturer>
+  <Manufacturer id="0147" name="Z-Wave.Me">
+    <Product id="0003" name="RaZberry Controller" type="0002"/>
+    <Product id="0001" name="RaZberry Controller ZWave+" type="0400"/>
+    <Product id="0002" name="RaZberry Controller 2016 ZWave+" type="0400"/>
+  </Manufacturer>
+  <Manufacturer id="024D" name="Z-works"></Manufacturer>
+  <Manufacturer id="024E" name="zConnect"></Manufacturer>
+  <Manufacturer id="004e" name="Zdata"></Manufacturer>
+  <Manufacturer id="016F" name="Zhejiang Jiuxing Electric"></Manufacturer>
+  <Manufacturer id="040E" name="ZHONGSHAN YunJia INTELLIGENT TECHNOLOGY"></Manufacturer>
+  <Manufacturer id="036E" name="Zinno"></Manufacturer>
+  <Manufacturer id="0131" name="Zipato">
+    <Product config="zipato/pan04.xml" id="0012" name="Micro Module Switch Double PAN04" type="0001"/>
+    <Product config="zipato/RGBBulb.xml" id="0002" name="RGBW LED Bulb" type="0002"/>
+    <Product config="zipato/RGBBulb2.xml" id="0003" name="Bulb 2" type="0002"/>
+    <Product config="philio/pst02.xml" id="000c" name="PST02-A 4 in 1 Multi-Sensor" type="0002"/>
+    <Product config="philio/pse02.xml" id="000a" name="Indoor Siren" type="0004"/>
+    <Product config="philio/pad02.xml" id="0031" name="PH-PAD02.eu Smart Dimmer Socket E27" type="0005"/>
+    <Product config="philio/phpab01.xml" id="001a" name="PH-PAB01.eu Micromodule Energy Meter" type="0006"/>
+    <Product config="zipato/MiniKeypad.xml" id="4501" name="Zipato Mini Keypad" type="6131"/>
+    <Product config="zipato/vszd2102.xml" id="0106" name="VS-ZD2102 Door/Window Sensor" type="2001"/>
+    <Product config="zipato/zp3102.xml" id="0205" name="ZP3102-EU Multisensor Duo" type="2002"/>
+    <Product config="vision/zd2301.xml" id="1f20" name="ZD2301 Multisensor 4in1" type="201f"/>
+    <Product config="heiman/HS1SA-Z.xml" id="1000" name="Smart Smoke Sensor HS1SA-Z" type="8002"/>
+    <Product config="heiman/HS1CG-Z.xml" id="1000" name="Combustible Gas Sensor HS1CG-Z" type="8003"/>
+    <Product config="heiman/HS1WL-Z.xml" id="1000" name="Water Leakage Sensor HS1WL-Z" type="8004"/>
+    <Product config="heiman/HS1CA-Z.xml" id="1000" name="CO Sensor HS1CA-Z" type="8005"/>
+  </Manufacturer>
+  <Manufacturer id="0120" name="Zonoff"></Manufacturer>
+  <Manufacturer id="027a" name="Zooz">
+    <Product config="zooz/zse08.xml" id="0082" name="ZSE08 Contact Sensor" type="0003"/>
+    <Product config="zooz/zse09.xml" id="0083" name="ZSE09 Mini Sensor" type="0003"/>
+    <Product config="zooz/zen22v2.xml" id="1f1c" name="ZEN22 Dimmer V2" type="b112"/>
+    <Product config="zooz/zse30.xml" id="0085" name="ZSE30 Water Sensor" type="0003"/>
+    <Product config="zooz/zen07.xml" id="0087" name="ZEN07 Mini Plug" type="0003"/>
+    <Product config="zooz/zse40.xml" id="2101" name="ZSE40 4-in-1 sensor" type="2021"/>
+    <Product config="zooz/zse33.xml" id="0088" name="ZSE33 Smart Chime" type="0003"/>
+    <Product config="zooz/zen06.xml" id="000a" name="ZEN06" type="0101"/>
+    <Product config="zooz/zen23.xml" id="251c" name="ZEN23 Toggle Switch V2" type="b111"/>
+    <Product config="zooz/zen15.xml" id="000D" name="ZEN15 Power Switch" type="0101"/>
+    <Product config="zooz/zse18.xml" id="0012" name="ZSE18 Motion Sensor" type="0301"/>
+    <Product id="0002" name="ZST10 S2 Z-Wave Plus USB Stick" type="0401"/>
+    <Product config="zooz/zen26.xml" id="a001" name="ZEN26 S2 On Off Wall Switch" type="a000"/>
+    <Product config="zooz/zen27.xml" id="a002" name="ZEN27 S2 Dimmer Wall Switch" type="a000"/>
+    <Product config="zooz/zen21.xml" id="1e1c" name="ZEN21 Switch V2.0" type="b111"/>
+    <Product config="zooz/zse19.xml" id="0003" name="ZSE19 S2 Multisiren" type="000c"/>
+    <Product config="zooz/zen20v2.xml" id="a004" name="ZEN20 V2.0 Power Strip" type="a000"/>
+  </Manufacturer>
+  <Manufacturer id="015d" name="Zooz (Willis Electric)">
+    <Product config="zooz/zen20.xml" id="f51c" name="ZEN20 Power Strip" type="0651"/>
+    <Product config="zooz/zen21.xml" id="231c" name="ZEN21 Switch" type="0111"/>
+    <Product config="zooz/zen22.xml" id="241c" name="ZEN22 Dimmer" type="0112"/>
+    <Product config="zooz/zen23.xml" id="1e1c" name="ZEN23 Toggle Switch" type="1111"/>
+    <Product config="zooz/zen24.xml" id="1f1c" name="ZEN24 Dimmer Switch" type="0111"/>
+    <Product config="inovelli/nzw97.xml" id="6100" name="NZW97 Inovelli Dual Outdoor Z-Wave Plug" type="6100"/>
+    <Product config="zooz/zen21.xml" id="1e1c" name="ZEN21 Switch V2.0" type="b111"/>
+  </Manufacturer>
+  <Manufacturer id="0315" name="zwaveproducts.com">
+    <Product config="zwp/WD-100.xml" id="3034" name="WD-100" type="4447"/>
+  </Manufacturer>
+  <Manufacturer id="0021" name="Zykronix"></Manufacturer>
+  <Manufacturer id="0135" name="ZyXEL"></Manufacturer>
 </ManufacturerSpecificData>
diff --git a/Config/manufacturer_specific.xsd b/Config/manufacturer_specific.xsd
index bd760abe6e..68bd90a2c2 100644
--- a/Config/manufacturer_specific.xsd
+++ b/Config/manufacturer_specific.xsd
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
 <xs:schema
   xmlns:xs='http://www.w3.org/2001/XMLSchema'
-  targetNamespace='http://code.google.com/p/open-zwave/'
-  xmlns:ManufacturerSpecificData='http://code.google.com/p/open-zwave/'
+  targetNamespace='https://github.com/OpenZWave/open-zwave'
+  xmlns:ManufacturerSpecificData='https://github.com/OpenZWave/open-zwave'
   elementFormDefault='qualified'>
 
  <xs:element name='ManufacturerSpecificData'>
@@ -10,6 +10,7 @@
    <xs:sequence>
     <xs:element ref='ManufacturerSpecificData:Manufacturer' minOccurs='0' maxOccurs='unbounded'/>
    </xs:sequence>
+   <xs:attribute name='Revision' type='xs:integer' use='required'/>
   </xs:complexType>
  </xs:element>
 
diff --git a/Config/mcohome/a8-9.xml b/Config/mcohome/a8-9.xml
index 8d432fa4eb..3ad9a78fe3 100644
--- a/Config/mcohome/a8-9.xml
+++ b/Config/mcohome/a8-9.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- MCOHome 9 in 1 Multi-sensor A8-9 -->
     <!-- Configuration -->
     <CommandClass id="112">
diff --git a/Config/mcohome/mh7h.xml b/Config/mcohome/mh7h.xml
index e191116cb3..8ff1fe9db0 100644
--- a/Config/mcohome/mh7h.xml
+++ b/Config/mcohome/mh7h.xml
@@ -1,8 +1,6 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
-	
-  <CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE">
-    <Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0" value="0">
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="64">
+    <Value genre="user" index="0" instance="1" label="Mode" max="0" min="0" read_only="false" type="list" units="" value="0" write_only="false">
       <Item label="Off" value="0"/>
       <Item label="Heat" value="1"/>
       <Item label="Energy Heat" value="11"/>
@@ -14,52 +12,51 @@
       <Mode index="11" label="Energy Heat"/>
       <Mode index="13" label="Away"/>
     </SupportedModes>
+    <Compatibility/>
   </CommandClass>
-  
-   <CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
+  <CommandClass id="67">
     <Instance index="1"/>
-    <Value type="decimal" genre="user" instance="1" index="1" label="Heating" units="C" read_only="false" write_only="false" min="0" max="0" value="20"/>
-    <Value type="decimal" genre="user" instance="1" index="11" label="Energy Heating" units="C" read_only="false" write_only="false" min="0" max="0" value="16"/>
+    <Value genre="user" index="1" instance="1" label="Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="20" write_only="false"/>
+    <Value genre="user" index="11" instance="1" label="Energy Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="16" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
   </CommandClass>
-
-
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value genre="config" instance="1" index="1" value="2" label="Upload temperature format automatically" units="" size="1" min="0" max="2" type="list">
+    <Value genre="config" index="1" instance="1" label="Upload temperature format automatically" max="2" min="0" size="1" type="list" units="" value="2">
       <Help>Upload temperature format automatically</Help>
-      <Item value="0" label="Celsius"/>
-      <Item value="1" label="Fahrenheit"/>
-      <Item value="2" label="Follow the main display"/>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+      <Item label="Follow the main display" value="2"/>
     </Value>
-    <Value genre="config" instance="1" index="2" value="3" label="Upload temperature and humidity automatically" units="" size="1" min="0" max="3" type="list">
+    <Value genre="config" index="2" instance="1" label="Upload temperature and humidity automatically" max="3" min="0" size="1" type="list" units="" value="3">
       <Help>Upload temperature and humidity automatically</Help>
-      <Item value="0" label="OFF"/>
-      <Item value="1" label="Upload the difference value only"/>
-      <Item value="2" label="Timing upload mode only"/>
-      <Item value="3" label="Upload the difference+timing upload mode"/>
+      <Item label="OFF" value="0"/>
+      <Item label="Upload the difference value only" value="1"/>
+      <Item label="Timing upload mode only" value="2"/>
+      <Item label="Upload the difference+timing upload mode" value="3"/>
     </Value>
-    <Value genre="config" instance="1" index="3" value="5" label="Upload temperature difference" units="" size="2" min="3" max="1000" type="short">
+    <Value genre="config" index="3" instance="1" label="Upload temperature difference" max="1000" min="3" size="2" type="short" units="" value="5">
       <Help>Base on 0.1C unit, 5 by default, 5*0.1C=0.5C</Help>
     </Value>
-    <Value genre="config" instance="1" index="4" value="30" label="Upload time interval regularly" units="" size="2" min="19" max="65535" type="short">
+    <Value genre="config" index="4" instance="1" label="Upload time interval regularly" max="65535" min="19" size="2" type="short" units="" value="30">
       <Help>Base on 1s unit, it suggest to be set above 30s</Help>
     </Value>
-    <Value genre="config" instance="1" index="5" value="3" label="Upload humidity difference" units="" size="1" min="2" max="255" type="byte">
+    <Value genre="config" index="5" instance="1" label="Upload humidity difference" max="255" min="2" size="1" type="byte" units="" value="3">
       <Help>Upload when percent difference exceeded</Help>
     </Value>
-    <Value genre="config" instance="1" index="255" value="0" label="Factory setting" units="" size="1" min="0" max="255" type="byte">
+    <Value genre="config" index="255" instance="1" label="Factory setting" max="255" min="0" size="1" type="byte" units="" value="0">
       <Help>Restore the factory setting - write only, set to 85 to reset</Help>
     </Value>
   </CommandClass>
-
-   <!-- Association Groups -->
-   <CommandClass id="133">
-       <Associations num_groups="3">
-           <Group index="1" max_associations="1" label="Lifeline"/>
-           <Group index="2" max_associations="5" label="Basic_Set"/>
-           <Group index="3" max_associations="5" label="Basic_Set"/>
-       </Associations>
-   </CommandClass>
-
-
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic_Set" max_associations="5"/>
+      <Group index="3" label="Basic_Set" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/mcohome/mh8fceu.xml b/Config/mcohome/mh8fceu.xml
index b171b571f5..67302e60e5 100644
--- a/Config/mcohome/mh8fceu.xml
+++ b/Config/mcohome/mh8fceu.xml
@@ -1,25 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--MCOHome Thermostat fan coil MH8-FC-EU -->
-    <CommandClass id="67" base="0"/>
-    <!-- The thermostat does not properly report its operating modes -->
-    <CommandClass id="68" name="COMMAND_CLASS_THERMOSTAT_FAN_MODE" >
-        <Instance index="1"/>
-        <Value type="list" genre="user" instance="1" index="0" label="Fan Mode" units="" size="1">
-            <Item label="On Low" value="1"/>
-            <Item label="On High" value="3"/>
-            <Item label="On Medium" value="5"/>
-        </Value>
-        <SupportedModes>
-            <Mode index="1" label="On Low"/>
-            <Mode index="3" label="On High"/>
-            <Mode index="5" label="Unknown 5"/>
-        </SupportedModes>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--MCOHome Thermostat fan coil MH8-FC-EU -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- The thermostat does not properly report its operating modes -->
+  <CommandClass id="68">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Fan Mode" size="1" type="list" units="">
+      <Item label="On Low" value="1"/>
+      <Item label="On High" value="3"/>
+      <Item label="On Medium" value="5"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="1" label="On Low"/>
+      <Mode index="3" label="On High"/>
+      <Mode index="5" label="Unknown 5"/>
+    </SupportedModes>
+    <Compatibility/>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/mcohome/mh9co2.xml b/Config/mcohome/mh9co2.xml
index 062b4d20cb..1c24ec2202 100644
--- a/Config/mcohome/mh9co2.xml
+++ b/Config/mcohome/mh9co2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--MCOHome CO2 Monitor MH9-CO2-WD -->
     <!-- Configuration -->
     <CommandClass id="112">
diff --git a/Config/mcohome/mhp210.xml b/Config/mcohome/mhp210.xml
index 8fc7927904..de811a5591 100644
--- a/Config/mcohome/mhp210.xml
+++ b/Config/mcohome/mhp210.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--MCOHome (Zipato) MH-P210 Mini Energy Dimmer -->
     <!-- Configuration -->
     <CommandClass id="112">
@@ -25,4 +25,4 @@
             <Group index="2" max_associations="1" label="Lifeline" auto="true"/>
         </Associations>
     </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/mcohome/mhs311.xml b/Config/mcohome/mhs311.xml
index 7accea7b0d..7190f39b54 100644
--- a/Config/mcohome/mhs311.xml
+++ b/Config/mcohome/mhs311.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!--MCOHome Touch Panel Switch MH-S311 -->
   <!-- Configuration -->
   <CommandClass id="112">    
@@ -17,4 +17,4 @@
       <Group index="2" max_associations="1" label="Lifeline" auto="true"/>
     </Associations>
   </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/mcohome/mhs312.xml b/Config/mcohome/mhs312.xml
index 0ae8a2bc9c..6561e7e783 100644
--- a/Config/mcohome/mhs312.xml
+++ b/Config/mcohome/mhs312.xml
@@ -1,24 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!--MCOHome Touch Panel Switch MH-S312 -->
   <!-- Configuration -->
-  <CommandClass id="112">    
-    <Value type="list" genre="config" instance="1" index="1" label="Saving state before power failure" size="1" value="1">
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Saving state before power failure" size="1" type="list" value="1">
       <Help>Switch state saved or not when power down</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
-    </Value>   
+    </Value>
   </CommandClass>
-    
   <!-- Map endpoints to instances -->
-  <CommandClass id="96" mapping="endpoints" />
-    
-  <!-- Association Groups -->  
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
-      <Group index="1" max_associations="5" label="Button1" auto="false"/>
-      <Group index="2" max_associations="5" label="Button2"/>
-      <Group index="3" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Button1" max_associations="5"/>
+      <Group index="2" label="Button2" max_associations="5"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/mcohome/mhs314.xml b/Config/mcohome/mhs314.xml
index dd64e49e67..26705b2557 100644
--- a/Config/mcohome/mhs314.xml
+++ b/Config/mcohome/mhs314.xml
@@ -1,29 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!--MCOHome Touch Panel Switch MH-S314 -->
   <!-- Configuration -->
-  <CommandClass id="112">    
-    <Value type="list" genre="config" instance="1" index="1" label="Saving state before power failure" size="1" value="1">
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Saving state before power failure" size="1" type="list" value="1">
       <Help>Switch state saved or not when power down</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
-    </Value>   
+    </Value>
   </CommandClass>
-  
   <!-- Basic set as report -->
-  <CommandClass id="32" setasreport="true"/>
-	
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- Map endpoints to instances -->
-  <CommandClass id="96" mapping="endpoints" />
-    
-  <!-- Association Groups -->  
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="5">
-      <Group index="1" max_associations="5" label="Button1" auto="false"/>
-      <Group index="2" max_associations="5" label="Button2" />
-      <Group index="3" max_associations="5" label="Button3" />
-      <Group index="4" max_associations="5" label="Button4" />
-	  <Group index="5" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Button1" max_associations="5"/>
+      <Group index="2" label="Button2" max_associations="5"/>
+      <Group index="3" label="Button3" max_associations="5"/>
+      <Group index="4" label="Button4" max_associations="5"/>
+      <Group auto="true" index="5" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/mcohome/mhs411.xml b/Config/mcohome/mhs411.xml
index 0322f4cd6c..6ddc7e0e7d 100644
--- a/Config/mcohome/mhs411.xml
+++ b/Config/mcohome/mhs411.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!--MCOHome Touch Panel Switch MH-S411 -->
   <!-- Configuration -->
   <CommandClass id="112">    
@@ -17,4 +17,4 @@
       <Group index="2" max_associations="1" label="Lifeline" auto="true"/>
     </Associations>
   </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/mcohome/mhs412.xml b/Config/mcohome/mhs412.xml
index 4ca8b342cf..8da6f100a7 100644
--- a/Config/mcohome/mhs412.xml
+++ b/Config/mcohome/mhs412.xml
@@ -1,24 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!--MCOHome Touch Panel Switch MH-S412 -->
   <!-- Configuration -->
-  <CommandClass id="112">    
-    <Value type="list" genre="config" instance="1" index="1" label="Saving state before power failure" size="1" value="1">
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Saving state before power failure" size="1" type="list" value="1">
       <Help>Switch state saved or not when power down</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
-    </Value>   
+    </Value>
   </CommandClass>
-    
   <!-- Map endpoints to instances -->
-  <CommandClass id="96" mapping="endpoints" />
-    
-  <!-- Association Groups -->  
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
-      <Group index="1" max_associations="5" label="Button1" auto="false"/>
-	  <Group index="2" max_associations="5" label="Button2"/>
-      <Group index="3" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Button1" max_associations="5"/>
+      <Group index="2" label="Button2" max_associations="5"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/mcohome/mhs513.xml b/Config/mcohome/mhs513.xml
index 767177f4be..cad9d94025 100644
--- a/Config/mcohome/mhs513.xml
+++ b/Config/mcohome/mhs513.xml
@@ -1,25 +1,26 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!--MCOHome Touch Panel Switch MH-S513 -->
   <!-- Configuration -->
-  <CommandClass id="112">    
-    <Value type="list" genre="config" instance="1" index="1" label="Saving state before power failure" size="1" value="1">
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Saving state before power failure" size="1" type="list" value="1">
       <Help>Switch state saved or not when power down</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
-    </Value>   
+    </Value>
   </CommandClass>
-    
   <!-- Map endpoints to instances -->
-  <CommandClass id="96" mapping="endpoints" />
-    
-  <!-- Association Groups -->  
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="4">
-      <Group index="1" max_associations="5" label="Button1" auto="false"/>
-      <Group index="2" max_associations="5" label="Button2"/>
-      <Group index="3" max_associations="5" label="Button3"/>
-      <Group index="4" max_associations="1" label="Lifeline" auto="true"/>
+      <Group auto="false" index="1" label="Button1" max_associations="5"/>
+      <Group index="2" label="Button2" max_associations="5"/>
+      <Group index="3" label="Button3" max_associations="5"/>
+      <Group auto="true" index="4" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/merten/5044xx.xml b/Config/merten/5044xx.xml
new file mode 100644
index 0000000000..eb9399c03d
--- /dev/null
+++ b/Config/merten/5044xx.xml
@@ -0,0 +1,24 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/007A:0001:4002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/merten/5044xx.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="4002">https://products.z-wavealliance.org/products/321/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="4002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="4002">5044xx</MetaDataItem>
+    <MetaDataItem name="Name">5044xx - Radio sensor cover for in-wall switch</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.merten.com/Radio-transmitter-and-radio-receiver.148.0.html?&amp;L=3%3Fq%3Dplus%20lin</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.merten.com/Info-Centre.59.0.html</MetaDataItem>
+    <MetaDataItem name="Description">Binary Switch + Sensor Plate.CONNECT radio push-button, 1-gang
+
+To control the radio receiver
+ 
+Extremely flat design
+The ideal solution for retrofitting
+Can be secured with screws or adhesive
+Can be snapped into existing switch ranges</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/321/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/merten/5046xx.xml b/Config/merten/5046xx.xml
new file mode 100644
index 0000000000..b63298eeaf
--- /dev/null
+++ b/Config/merten/5046xx.xml
@@ -0,0 +1,15 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/007A:0001:4003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/merten/5046xx.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="4003">https://products.z-wavealliance.org/products/494/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="4003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Radio sensor cover for in wall dimmer</MetaDataItem>
+    <MetaDataItem name="Name">5046xx -  Radio sensor cover for in wall dimmer</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="4003">5046xx</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/494/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/merten/506004.xml b/Config/merten/506004.xml
new file mode 100644
index 0000000000..9e81433694
--- /dev/null
+++ b/Config/merten/506004.xml
@@ -0,0 +1,21 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/007A:0004:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/merten/506004.png</MetaDataItem>
+    <MetaDataItem id="0004" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/211/</MetaDataItem>
+    <MetaDataItem id="0004" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.merten.com/Radio-transmitter-and-radio-receiver.148.0.html?&amp;L=3%3Fq%3Dplus%20lin</MetaDataItem>
+    <MetaDataItem name="Description">506004 4-Channel Binary Sensor.CONNECT radio transmitter flush-mounted, 4-gang
+
+For integration into any conventional switch range in the radio system
+ 
+Just place the radio pellet behind the push-button or switch inserts in the flush-mounted socket
+ </MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.merten.com/Info-Centre.59.0.html</MetaDataItem>
+    <MetaDataItem name="Name">506004 Radio Transmitter flush-mounted CONNECT, 4-gang</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/211/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/merten/507801.xml b/Config/merten/507801.xml
index cdd0142a18..579be1df55 100644
--- a/Config/merten/507801.xml
+++ b/Config/merten/507801.xml
@@ -1,39 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--http://www.pepper1.net/zwavedb/device/72-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration -->
   <CommandClass id="112">
-
-    <Value type="byte" genre="config" instance="1" index="176" label="Changeover delay (motor protection)" value="100">
+    <Value genre="config" index="176" instance="1" label="Changeover delay (motor protection)" type="byte" value="100">
       <Help>To configure the time (value * 0.1 sec) the motor waits before switching direction.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="177" label="Raising time input 1" value="100">
+    <Value genre="config" index="177" instance="1" label="Raising time input 1" type="byte" value="100">
       <Help>To configure input 1 of the raising time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="178" label="Raising time input 2" value="100">
+    <Value genre="config" index="178" instance="1" label="Raising time input 2" type="byte" value="100">
       <Help>To configure input 1 of the raising time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="179" label="Lowering time input 1" value="100">
+    <Value genre="config" index="179" instance="1" label="Lowering time input 1" type="byte" value="100">
       <Help>To configure input 1 of the lowering time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="180" label="Lowering time input 2" value="100">
+    <Value genre="config" index="180" instance="1" label="Lowering time input 2" type="byte" value="100">
       <Help>To configure input 1 of the lowering time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
   </CommandClass>
-  
   <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
-  <CommandClass id="113" getsupported="false" />
-
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="12" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="12"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/merten/508244.xml b/Config/merten/508244.xml
new file mode 100644
index 0000000000..31f2e0d367
--- /dev/null
+++ b/Config/merten/508244.xml
@@ -0,0 +1,21 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/007A:0001:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/merten/508244.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/268/</MetaDataItem>
+    <MetaDataItem name="Description">Battery powered pushbutton devices that controls other devices.
+
+(1 Key Device) (5080xx)Move - Mobile switching and dimming of lighting
+
+Move is for anyone who wants to be even more fl exible. The new little round radio push-button can be easily removed from its respective wall bracket and used as a radio remote control. And you can snap it back into the frame when you're done.</MetaDataItem>
+    <MetaDataItem name="Name">508244 - CONNECT MOVE </MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.merten.com/Info-Centre.59.0.html</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.merten.com/Radio-transmitter-and-radio-receiver.148.0.html?&amp;L=3%3Fq%3Dplus%20lin</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0002">508244</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/268/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/merten/50x5xx.xml b/Config/merten/50x5xx.xml
index 639255ccdf..d1ed7d6736 100644
--- a/Config/merten/50x5xx.xml
+++ b/Config/merten/50x5xx.xml
@@ -1,70 +1,56 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--http://www.pepper1.net/zwavedb/device/85-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration -->
   <CommandClass id="112">
-
-    <Value type="byte" genre="config" instance="1" index="1" label="Switching additional CONNECT radio receivers" value="1">
+    <Value genre="config" index="1" instance="1" label="Switching additional CONNECT radio receivers" type="byte" value="1">
       <Help>To configure if other radio receivers from Merten should be switched as well.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="176" label="Changeover delay (motor protection)" value="100">
+    <Value genre="config" index="176" instance="1" label="Changeover delay (motor protection)" type="byte" value="100">
       <Help>To configure the time the motor waits before switching direction.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="177" label="Raising time input 1" value="100">
+    <Value genre="config" index="177" instance="1" label="Raising time input 1" type="byte" value="100">
       <Help>To configure input 1 of the raising time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="178" label="Raising time input 2" value="100">
+    <Value genre="config" index="178" instance="1" label="Raising time input 2" type="byte" value="100">
       <Help>To configure input 1 of the raising time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="179" label="Lowering time input 1" value="100">
+    <Value genre="config" index="179" instance="1" label="Lowering time input 1" type="byte" value="100">
       <Help>To configure input 1 of the lowering time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="180" label="Lowering time input 2" value="100">
+    <Value genre="config" index="180" instance="1" label="Lowering time input 2" type="byte" value="100">
       <Help>To configure input 1 of the lowering time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="181" label="Light sensor" value="0" size="1">
+    <Value genre="config" index="181" instance="1" label="Light sensor" size="1" type="list" value="0">
       <Help>To configure use of light sensor. Default: 0 .</Help>
       <Item label="0 - Auto" value="0"/>
       <Item label="1 - On" value="1"/>
       <Item label="2 - Off" value="1"/>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="182" label="Brightness threshold for light sensor" value="1">
+    <Value genre="config" index="182" instance="1" label="Brightness threshold for light sensor" type="byte" value="1">
       <Help>To configure brightness threshold for light sensor.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="183" label="Sensor raising reaction threshold input 1" value="1">
+    <Value genre="config" index="183" instance="1" label="Sensor raising reaction threshold input 1" type="byte" value="1">
       <Help>To configure input 1 of reaction threshold for raising shutter time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="184" label="Sensor raising reaction threshold input 1" value="100">
+    <Value genre="config" index="184" instance="1" label="Sensor raising reaction threshold input 1" type="byte" value="100">
       <Help>To configure input 2 of reaction threshold for raising shutter time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="185" label="Sensor lowering reaction threshold input 1" value="1">
+    <Value genre="config" index="185" instance="1" label="Sensor lowering reaction threshold input 1" type="byte" value="1">
       <Help>To configure input 1 of reaction threshold for lowering shutter time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="186" label="Sensor lowering reaction threshold input 1" value="100">
+    <Value genre="config" index="186" instance="1" label="Sensor lowering reaction threshold input 1" type="byte" value="100">
       <Help>To configure input 2 of reaction threshold for lowering shutter time calculation (256 * Input 1 + Input 2) * 0.1 sec</Help>
     </Value>
-
-	</CommandClass>
-  
+  </CommandClass>
   <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
-  <CommandClass id="113" getsupported="false" />
-
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Lifeline" />
+      <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
   </CommandClass>
-
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/miyakawaelectric/me-d101.xml b/Config/miyakawaelectric/me-d101.xml
new file mode 100644
index 0000000000..49495d43f5
--- /dev/null
+++ b/Config/miyakawaelectric/me-d101.xml
@@ -0,0 +1,15 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0122:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/miyakawaelectric/me-d101.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/633/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">Japan</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">ME-D101</MetaDataItem>
+    <MetaDataItem name="Description">Electric power measuring instrument for the home</MetaDataItem>
+    <MetaDataItem name="Name">MSK CT type electric power measuring instrument</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/633/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/nexia/db100z.xml b/Config/nexia/db100z.xml
index ab1330fae3..e1f03a46d9 100644
--- a/Config/nexia/db100z.xml
+++ b/Config/nexia/db100z.xml
@@ -1,19 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Ingersoll Rand - Nexia Home Intelligence; DB100Z Z-Wave Doorbell Sensor -->
-<!-- If the device isn't being discovered by OZW, tap the install button 3 times in a second (LED will turn on for 10 seconds) -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Send Battery Report with Notification Report" min="0" max="1" value="0" size="1">
-			<Help>Send a battery report in addition to the alarm report when the alarm report is triggered</Help>
-			<Item label="No (default)" value="0" />
-			<Item label="Yes (recommended)" value="1" />
-		</Value>
-	</CommandClass>
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<!-- Z-Wave Plus Lifeline Battery Report, Notification Report, Device Reset Locally Notification -->
-			<Group index="1" max_associations="5" label="Lifeline" />
-		</Associations>
-	</CommandClass>
+<!-- Ingersoll Rand - Nexia Home Intelligence; DB100Z Z-Wave Doorbell Sensor --><!-- If the device isn't being discovered by OZW, tap the install button 3 times in a second (LED will turn on for 10 seconds) --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0178:3130:4442</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/nexia/db100z.png</MetaDataItem>
+    <MetaDataItem id="3130" name="ZWProductPage" type="4442">https://products.z-wavealliance.org/products/1349/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">When the Install Button is triple-pressed, the device will send a Wakeup Notification report and stay awake for 10 seconds.
+
+WAKEUP_INTERVAL_CAPABILITIES_REPORT 
+Min Wake Up Interval :60 seconds 
+Max Wake Up Interval: 86400 seconds 
+Default Wake Up Interval: 25200 seconds 
+Wake Up Interval Step: 60
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1.  Set primary controller to Exclude mode
+2. Press the Install Button</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave Doorbell Sensor</MetaDataItem>
+    <MetaDataItem name="Description">The DB100Z is a battery powered, voltage sensing device that sends out a Notification report when voltage is detected at the sensor inputs.    </MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1.  Set primary controller to Include mode
+2. Press the Install Button</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1349/18-HD77D1-1-EN DB100Z Z-Wave Door Bell Sensor.pdf</MetaDataItem>
+    <MetaDataItem id="3130" name="Identifier" type="4442">DB100Z</MetaDataItem>
+    <MetaDataItem id="3130" name="FrequencyName" type="4442">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please only perform a factory reset when the primary controller is missing or inoperable.  A factory reset will remove all network settings and configurations. 
+
+1. Hold down Install Button for 10 seconds
+2. Release the Install Button
+3. When the Status LED begins to blink, the unit has finished restoring configuration</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1349/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Send Battery Report with Notification Report" max="1" min="0" size="1" type="list" value="0">
+      <Help>Send a battery report in addition to the alarm report when the alarm report is triggered</Help>
+      <Item label="No (default)" value="0"/>
+      <Item label="Yes (recommended)" value="1"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <!-- Z-Wave Plus Lifeline Battery Report, Notification Report, Device Reset Locally Notification -->
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/nodon/asp3100SmartPlug.xml b/Config/nodon/asp3100SmartPlug.xml
index 90ac53e089..bcc5d1b6ce 100644
--- a/Config/nodon/asp3100SmartPlug.xml
+++ b/Config/nodon/asp3100SmartPlug.xml
@@ -1,15 +1,37 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- NodOn ASP-3-1-00 Smart Plug Z-Wave+ -->
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0165:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/nodon/asp3100SmartPlug.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1069/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Long press during 2 seconds to send several NIF during 30 seconds or a triple press to send a single NIF</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Long press during 2 seconds to send several NIF during 30 seconds or a triple press to send a single NIF</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">The NodOn Smart Plug can be controlled by any kind of Z-Wave® (or Z-Wave Plus®) gateway or other Z-Wave® controller (standalone mode) such as the NodOn® Soft Remote or Octan Remote.
+In both standard, Type E (French) or Schuko (German), the plug can be mounted in both side (head up or head down). Combined to its ultra-thin design, these both specificities allow an easy integration, without obstructing nearby power holes on a power strip. 
+Equipped with a very small super-capacitor, the NodOn Smart Plug is able to send an emergency frame to the gateway in case of power outage. 
+
+The NodOn Smart Plug is based on brand new 500 series Z-Wave® module from Sigma Designs®, and support all the new features of Z-Wave Plus® standard: 
+Longer range (up to 40m), lower power consumption, higher data rate transmission, and many more new features.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Long press during more than 5 seconds then release.
+Please use this procedure only when the primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave+ Smart Plug ON/OFF (Type E)</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1069/NodOn_SmartPlug_ZWave_UserGuide_EN.pdf</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">ASP-3-1-00</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1069/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- NodOn ASP-3-1-00 Smart Plug Z-Wave+ -->
     <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Default State" min="0" max="2" size="1" value="2">
-            <Help>After Power-On-Reset of the device, the Channel Output State is set in Default State</Help>
-            <Item label="Channel output state OFF" value="0"/>
-            <Item label="Channel output state ON" value="1"/>
-            <Item label="Channel output state remembers previous state" value="2"/>
-        </Value>
-        <Value type="byte" index="2" genre="config" label="Power Failure" min="0" max="63" value="0">
-            <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Default State" max="2" min="0" size="1" type="list" value="2">
+      <Help>After Power-On-Reset of the device, the Channel Output State is set in Default State</Help>
+      <Item label="Channel output state OFF" value="0"/>
+      <Item label="Channel output state ON" value="1"/>
+      <Item label="Channel output state remembers previous state" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Power Failure" max="63" min="0" type="byte" value="0">
+      <Help>
                 This parameter allows unsolicited Notification Report Commands and/or Basic Set Commands to be sent when a power failure detection and/or a power failure recover occurs. Only the four least significant bits can be addressed.
                 
                 Bit 0: Enable or disable power failure detection and recover. Setting this bit to 1 automatically allows the product to send unsolicited report through Lifeline. If this bit is not set, it is not possible to enable Association Group 4, 5 and 6. Consequently, if a Configuration Set Command is received, enabling one or more Association Groups (4, 5 and / or 6), this bit will be automatically set.
@@ -19,84 +41,84 @@
                 Bit 4: Enable or disable Basic Set ON Command sent to associated nodes of Group 7, when power recover is detected.
                 Bit 5: Enable or disable Basic Set OFF Command sent to associated nodes of Group 8, when power recover is detected.
             </Help>
-        </Value>
-        <Value type="byte" index="3" genre="config" label="Follow State" size="1" min="0" max="3" value="3">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" label="Follow State" max="3" min="0" size="1" type="byte" value="3">
+      <Help>
                 This parameter allows Basic Set Commands to be sent when the channel output state changes (ON or OFF). Only the two least significant bits can be addressed.
                 Bit 0: Enable or disable Basic Set Commands sent to associated nodes of Group 2, when Channel Output State changes.
                 Bit 1: Enable or disable Basic Set Commands sent to associated nodes of Group 3, when Channel Output State changes.
             </Help>
-        </Value>
-        <Value type="list" index="4" genre="config" label="Always ON" size="1" min="0" max="1" value="0">
-            <Help>This parameter forces the channel output state to be always ON. It is not possible to turn OFF the channel output, which means that:
+    </Value>
+    <Value genre="config" index="4" label="Always ON" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter forces the channel output state to be always ON. It is not possible to turn OFF the channel output, which means that:
                 * All Switch OFF Command is rejected
                 * Basic Set OFF Command is rejected
                 * Binary Switch OFF Command is rejected
                 * Local Control does not toggle channel output state
                 * Product cannot be triggered by unsolicited Notification Report Command and enters in Alarm Mode</Help>
-            <Item label="Channel output state always ON disable" value="0"/>
-            <Item label="Channel output state always ON enable" value="1"/>
-        </Value>
-        <Value type="short" index="5" genre="config" label="Alarm 1 Type" size="2" min="0" max="65535" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="int" index="6" genre="config" label="Alarm 1 Parameters" size="4" min="0" max="4294967295" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="short" index="7" genre="config" label="Alarm 2 Type" size="2" min="0" max="65535" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="int" index="8" genre="config" label="Alarm 2 Parameters" size="4" min="0" max="4294967295" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="short" index="9" genre="config" label="Alarm 3 Type" size="2" min="0" max="65535" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="int" index="10" genre="config" label="Alarm 3 Parameters" size="4" min="0" max="4294967295" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="short" index="11" genre="config" label="Alarm 4 Type" size="2" min="0" max="65535" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="int" index="12" genre="config" label="Alarm 4 Parameters" size="4" min="0" max="4294967295" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="short" index="13" genre="config" label="Alarm 5 Type" size="2" min="0" max="65535" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="int" index="14" genre="config" label="Alarm 5 Parameters" size="4" min="0" max="4294967295" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="short" index="15" genre="config" label="Alarm 6 Type" size="2" min="0" max="65535" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="int" index="16" genre="config" label="Alarm 6 Parameters" size="4" min="0" max="4294967295" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="short" index="7" genre="config" label="Alarm 7 Type" size="2" min="0" max="65535" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="int" index="18" genre="config" label="Alarm 7 Parameters" size="4" min="0" max="4294967295" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="short" index="19" genre="config" label="Alarm 8 Type" size="2" min="0" max="65535" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-        <Value type="int" index="20" genre="config" label="Alarm 8 Parameters" size="4" min="0" max="4294967295" value="0">
-            <Help>see Appendix C - Description of Alarm Parameters</Help>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="8">
-            <Group index="1" max_associations="5" label="Lifeline" />
-            <Group index="2" max_associations="5" label="Follow State" />
-            <Group index="3" max_associations="5" label="Follow Complementary State" />
-            <Group index="4" max_associations="5" label="Power Failure Notification" auto="true"/>
-            <Group index="5" max_associations="5" label="Power Failure Set On" />
-            <Group index="6" max_associations="5" label="Power Failure Set Off" />
-            <Group index="7" max_associations="5" label="Power Recover Set On" />
-            <Group index="8" max_associations="5" label="Power Recover Set Off" />
-        </Associations>
-    </CommandClass>
+      <Item label="Channel output state always ON disable" value="0"/>
+      <Item label="Channel output state always ON enable" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Alarm 1 Type" max="65535" min="0" size="2" type="short" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="6" label="Alarm 1 Parameters" max="4294967295" min="0" size="4" type="int" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="7" label="Alarm 2 Type" max="65535" min="0" size="2" type="short" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="8" label="Alarm 2 Parameters" max="4294967295" min="0" size="4" type="int" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="9" label="Alarm 3 Type" max="65535" min="0" size="2" type="short" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="10" label="Alarm 3 Parameters" max="4294967295" min="0" size="4" type="int" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="11" label="Alarm 4 Type" max="65535" min="0" size="2" type="short" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="12" label="Alarm 4 Parameters" max="4294967295" min="0" size="4" type="int" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="13" label="Alarm 5 Type" max="65535" min="0" size="2" type="short" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="14" label="Alarm 5 Parameters" max="4294967295" min="0" size="4" type="int" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="15" label="Alarm 6 Type" max="65535" min="0" size="2" type="short" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="16" label="Alarm 6 Parameters" max="4294967295" min="0" size="4" type="int" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="7" label="Alarm 7 Type" max="65535" min="0" size="2" type="short" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="18" label="Alarm 7 Parameters" max="4294967295" min="0" size="4" type="int" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="19" label="Alarm 8 Type" max="65535" min="0" size="2" type="short" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+    <Value genre="config" index="20" label="Alarm 8 Parameters" max="4294967295" min="0" size="4" type="int" value="0">
+      <Help>see Appendix C - Description of Alarm Parameters</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="8">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Follow State" max_associations="5"/>
+      <Group index="3" label="Follow Complementary State" max_associations="5"/>
+      <Group auto="true" index="4" label="Power Failure Notification" max_associations="5"/>
+      <Group index="5" label="Power Failure Set On" max_associations="5"/>
+      <Group index="6" label="Power Failure Set Off" max_associations="5"/>
+      <Group index="7" label="Power Recover Set On" max_associations="5"/>
+      <Group index="8" label="Power Recover Set Off" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/nodon/crc3100OctanRemote.xml b/Config/nodon/crc3100OctanRemote.xml
index 079d0933f5..f85a6a431e 100644
--- a/Config/nodon/crc3100OctanRemote.xml
+++ b/Config/nodon/crc3100OctanRemote.xml
@@ -1,81 +1,117 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- NodOn CRC-3-1-00 Octan Remote Z-Wave+ -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0165:0001:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/nodon/crc3100OctanRemote.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1326/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Simultaneously push on buttons 3 and 4, during 1 second. The LED will blink red and green to validate the factory reset.
+
+A factory reset will completely delete the memory of the remote control and restore all parameters to default value.
+In "Standalone" Mode, make sure to remove all the devices added or associated in the remote control's network before performing a factory reset. 
+In "Gateway" Mode, use the factory reset procedure only when the primary controller (i.e the Gateway) is missing or defective. Reset the remote control does not mean that it has been removed from the primary controller memory. Remove the remote control (through the primary controller) before performing a factory reset.</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">OCTAN Remote</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0002">CRC-3-1-0X</MetaDataItem>
+    <MetaDataItem name="Description">The OCTAN Remote NodOn® controls any compatible receivers Z-Wave® or Z-Wave Plus®, such as the Smart Plug NodOn®. It can address, directly, up to 4 groups of 8 devices and sent up to 16 different scenes to a Home Automation Gateway. This controller can operate on its own (“Standalone” Mode) or as gateway’s assistant (“Gateway” Mode). The product integrates a LED, which give an intuitive feedback for each operation you perform.
+
+Based on an innovative technology, the OCTAN Remote NodOn® is only powered with a CR2032 battery, offering 2 years’ autonomy.
+
+A magnetic wall support is included with your OCTAN Remote NodOn®, which allow you to easily install and move it. This support can be screwed or fixed by adhesive bonding. The remote control embeds a small magnet, allowing fixing it on its wall support or on any metallic surface (fridge door, heater, etc.).
+
+The OCTAN Remote NodOn® is based on brand new 500 series Z-Wave® module from Sigma Designs®, and supports all the new features of Z-Wave Plus® standard: 
+Longer range (up to 40 meters indoor), lower power consumption, higher data rate transmission, and many more new features.
+</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">When the product in "Gateway" mode, any action on button will send a wake up notification to the gateway.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1- Push 3 times (quickly) on the button 2. The LED blinks in blue.
+
+2- Place the device you want to remove in “Learning” Mode. To do so, please refer to your device’s user guide. The LED blinks in green to confirm the exclusion.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1326/NodOn-CRC-3-1-xx-UserGuide-150528-EN-online.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1- Push 3 times (quickly) on the button 3. The LED blinks in blue.
+ 
+2- Place the device you want to add in “Learning” Mode. To do so, please refer to your device’s user guide. The LED blinks in green to confirm the inclusion.
+
+Note: If you wish to include and associate a device, please refer to "Other Special Features"</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1326/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- NodOn CRC-3-1-00 Octan Remote Z-Wave+ -->
     <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Profile Buttons 1 &amp; 3" min="0" max="2" size="1" value="0">
-        <Help>This parameter configures the behavior of the buttons 1 and 3 when the product is in "Gateway Centric Mode"</Help>
-            <Item label="Scene Mode" value="0"/>
-            <Item label="Mono Mode" value="1"/>
-            <Item label="Duo Mode" value="2"/>
-        </Value>	
-        <Value type="list" index="2" genre="config" label="Profile Buttons 2 &amp; 4" min="0" max="2" size="1" value="0">
-        <Help>This parameter configures the behavior of the buttons 2 and 4 when the product is in "Gateway Centric Mode"</Help>
-            <Item label="Scene Mode" value="0"/>
-            <Item label="Mono Mode" value="1"/>
-            <Item label="Duo Mode" value="2"/>
-        </Value>
-        <Value type="list" index="3" genre="config" label="Scene Type" min="0" max="1" size="1" value="0">
-        <Help>This parameter configures the type of command sent when the product is in "Gateway Centric Mode", with buttons profile configuration set in "Scene Behavior".</Help>
-            <Item label="Central Scene" value="0"/>
-            <Item label="Scene Activation" value="1"/>
-        </Value>
-        <Value type="list" index="4" genre="config" label="Action Button 1 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Profile Buttons 1 &amp; 3" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter configures the behavior of the buttons 1 and 3 when the product is in "Gateway Centric Mode"</Help>
+      <Item label="Scene Mode" value="0"/>
+      <Item label="Mono Mode" value="1"/>
+      <Item label="Duo Mode" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Profile Buttons 2 &amp; 4" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter configures the behavior of the buttons 2 and 4 when the product is in "Gateway Centric Mode"</Help>
+      <Item label="Scene Mode" value="0"/>
+      <Item label="Mono Mode" value="1"/>
+      <Item label="Duo Mode" value="2"/>
+    </Value>
+    <Value genre="config" index="3" label="Scene Type" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter configures the type of command sent when the product is in "Gateway Centric Mode", with buttons profile configuration set in "Scene Behavior".</Help>
+      <Item label="Central Scene" value="0"/>
+      <Item label="Scene Activation" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Action Button 1 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 2" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="5" genre="config" label="Action Button 2 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+      <Item label="Control Group 2" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="5" label="Action Button 2 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 3" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="6" genre="config" label="Action Button 3 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+      <Item label="Control Group 3" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="6" label="Action Button 3 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 4" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="7" genre="config" label="Action Button 4 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+      <Item label="Control Group 4" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="7" label="Action Button 4 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 5" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="8" genre="config" label="Led Management" min="0" max="3" size="1" value="0">
-            <Item label="Led OFF" value="0"/>
-            <Item label="Led Blink on button action" value="1"/>
-            <Item label="Led Blink on transmission result" value="2"/>
-            <Item label="Led Blink on button action and transmission result" value="3"/>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="7">
-            <Group index="1" max_associations="1" label="Lifeline" />
-            <Group index="2" max_associations="8" label="Button 1 - Mono - Controlled nodes" />
-            <Group index="3" max_associations="8" label="Button 2 - Mono - Controlled nodes" />
-            <Group index="4" max_associations="8" label="Button 3 - Mono - Controlled nodes" />
-            <Group index="5" max_associations="8" label="Button 4 - Mono - Controlled nodes" />
-            <Group index="6" max_associations="8" label="Button 1 &amp; 3 - Duo - Controlled nodes" />
-            <Group index="7" max_associations="8" label="Button 2 &amp; 4 - Duo - Controlled nodes" />
-        </Associations>
-    </CommandClass>
+      <Item label="Control Group 5" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="8" label="Led Management" max="3" min="0" size="1" type="list" value="0">
+      <Item label="Led OFF" value="0"/>
+      <Item label="Led Blink on button action" value="1"/>
+      <Item label="Led Blink on transmission result" value="2"/>
+      <Item label="Led Blink on button action and transmission result" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="7">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Button 1 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="3" label="Button 2 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="4" label="Button 3 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="5" label="Button 4 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="6" label="Button 1 &amp; 3 - Duo - Controlled nodes" max_associations="8"/>
+      <Group index="7" label="Button 2 &amp; 4 - Duo - Controlled nodes" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/nodon/crc360xSofremote.xml b/Config/nodon/crc360xSofremote.xml
index 45d0910764..4ad907f823 100644
--- a/Config/nodon/crc360xSofremote.xml
+++ b/Config/nodon/crc360xSofremote.xml
@@ -1,81 +1,114 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- NodOn CRC 3 6 04 Soft Remote Z-Wave+ -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0165:0002:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/nodon/crc360xSofremote.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1418/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Simultaneously push on buttons 3 and 4, during 1 second. The LED will blink red and green to validate the factory reset.
+
+A factory reset will completely delete the memory of the Soft Remote and restore all parameters to default value.
+In "Standalone" Mode, make sure to remove all the devices added or associated in the Soft Remote's network before performing a factory reset. 
+In "Gateway" Mode, use the factory reset procedure only when the primary controller (i.e the Gateway) is missing or defective. Reset the Soft Remote does not mean that it has been removed from the primary controller memory. Remove the Soft Remote (through the primary controller) before performing a factory reset. </MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0002">CRC-3-6-0X</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1418/nodon-crc-3-6-xx-userguide-150707-en-interactive.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription"> When the product in "Gateway" mode, any action on button will send a wake up notification to the gateway. </MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1- Push 3 times (quickly) on the button 2. The LED blinks in blue.
+
+2- Place the device you want to remove in “Learning” Mode. To do so, please refer to your device’s user guide. The LED blinks in green to confirm the exclusion.
+ </MetaDataItem>
+    <MetaDataItem name="Name">NodOn® Soft Remote</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1- Push 3 times (quickly) on the button 3. The LED blinks in blue.
+ 
+2- Place the device you want to add in “Learning” Mode. To do so, please refer to your device’s user guide. The LED blinks in green to confirm the inclusion.
+
+Note: If you wish to include and associate a device, please refer to "Other Special Features" </MetaDataItem>
+    <MetaDataItem name="Description">The NodOn® Soft Remote controls any compatible receivers Z-Wave® or Z-Wave Plus®, such as the Smart Plug NodOn®. It can address, directly, up to 4 groups of 8 devices and sent up to 16 different scenes to a Home Automation Gateway. This controller can operate on its own (“Standalone” Mode) or as gateway’s assistant (“Gateway” Mode). The product integrates a LED, which give an intuitive feedback for each operation you perform. 
+
+Based on an innovative technology, the NodOn® Soft Remote is only powered with a CR2032 battery, offering 2 years’ autonomy. 
+
+The NodOn® Soft Remote is based on brand new 500 series Z-Wave® module from Sigma Designs®, and supports all the new features of Z-Wave Plus® standard: 
+Longer range (up to 40 meters indoor), lower power consumption, higher data rate transmission, and many more new features. </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1418/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- NodOn CRC 3 6 04 Soft Remote Z-Wave+ -->
     <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Profile Buttons 1 and 3" min="0" max="2" size="1" value="0">
-        <Help>This parameter configures the behavior of the buttons 1 and 3 when the product is in "Gateway Centric Mode"</Help>
-            <Item label="Scene Mode" value="0"/>
-            <Item label="Mono Mode" value="1"/>
-            <Item label="Duo Mode" value="2"/>
-        </Value>	
-        <Value type="list" index="2" genre="config" label="Profile Buttons 2 and 4" min="0" max="2" size="1" value="0">
-        <Help>This parameter configures the behavior of the buttons 2 and 4 when the product is in "Gateway Centric Mode"</Help>
-            <Item label="Scene Mode" value="0"/>
-            <Item label="Mono Mode" value="1"/>
-            <Item label="Duo Mode" value="2"/>
-        </Value>
-        <Value type="list" index="3" genre="config" label="Scene Type" min="0" max="1" size="1" value="0">
-        <Help>This parameter configures the type of command sent when the product is in "Gateway Centric Mode", with buttons profile configuration set in "Scene Behavior".</Help>
-            <Item label="Central Scene" value="0"/>
-            <Item label="Scene Activation" value="1"/>
-        </Value>
-        <Value type="list" index="4" genre="config" label="Action Button 1 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Profile Buttons 1 and 3" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter configures the behavior of the buttons 1 and 3 when the product is in "Gateway Centric Mode"</Help>
+      <Item label="Scene Mode" value="0"/>
+      <Item label="Mono Mode" value="1"/>
+      <Item label="Duo Mode" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Profile Buttons 2 and 4" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter configures the behavior of the buttons 2 and 4 when the product is in "Gateway Centric Mode"</Help>
+      <Item label="Scene Mode" value="0"/>
+      <Item label="Mono Mode" value="1"/>
+      <Item label="Duo Mode" value="2"/>
+    </Value>
+    <Value genre="config" index="3" label="Scene Type" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter configures the type of command sent when the product is in "Gateway Centric Mode", with buttons profile configuration set in "Scene Behavior".</Help>
+      <Item label="Central Scene" value="0"/>
+      <Item label="Scene Activation" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Action Button 1 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 2" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="5" genre="config" label="Action Button 2 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+      <Item label="Control Group 2" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="5" label="Action Button 2 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 3" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="6" genre="config" label="Action Button 3 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+      <Item label="Control Group 3" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="6" label="Action Button 3 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 4" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="7" genre="config" label="Action Button 4 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+      <Item label="Control Group 4" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="7" label="Action Button 4 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 5" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="8" genre="config" label="Led Management" min="0" max="3" size="1" value="0">
-            <Item label="Led OFF" value="0"/>
-            <Item label="Led Blink on button action" value="1"/>
-            <Item label="Led Blink on transmission result" value="2"/>
-            <Item label="Led Blink on button action and transmission result" value="3"/>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="7">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-            <Group index="2" max_associations="8" label="Button 1 - Mono - Controlled nodes" />
-            <Group index="3" max_associations="8" label="Button 2 - Mono - Controlled nodes" />
-            <Group index="4" max_associations="8" label="Button 3 - Mono - Controlled nodes" />
-            <Group index="5" max_associations="8" label="Button 4 - Mono - Controlled nodes" />
-            <Group index="6" max_associations="8" label="Button 1 and 3 - Duo - Controlled nodes" />
-            <Group index="7" max_associations="8" label="Button 2 and 4 - Duo - Controlled nodes" />
-        </Associations>
-    </CommandClass>
+      <Item label="Control Group 5" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="8" label="Led Management" max="3" min="0" size="1" type="list" value="0">
+      <Item label="Led OFF" value="0"/>
+      <Item label="Led Blink on button action" value="1"/>
+      <Item label="Led Blink on transmission result" value="2"/>
+      <Item label="Led Blink on button action and transmission result" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="7">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Button 1 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="3" label="Button 2 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="4" label="Button 3 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="5" label="Button 4 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="6" label="Button 1 and 3 - Duo - Controlled nodes" max_associations="8"/>
+      <Group index="7" label="Button 2 and 4 - Duo - Controlled nodes" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/nodon/cws3101wallswitch.xml b/Config/nodon/cws3101wallswitch.xml
index 3cc4dbd633..76138f12c1 100644
--- a/Config/nodon/cws3101wallswitch.xml
+++ b/Config/nodon/cws3101wallswitch.xml
@@ -1,81 +1,117 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- NodOn CWS-3-1-01 Wall Switch Z-Wave+ -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0165:0003:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/nodon/cws3101wallswitch.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1383/</MetaDataItem>
+    <MetaDataItem name="Name">NodOn® wall switch</MetaDataItem>
+    <MetaDataItem name="WakeupDescription"> When the product in "Gateway" mode, any action on button will send a wake up notification to the gateway. </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Simultaneously push on buttons 3 and 4, during 1 second. The LED will blink red and green to validate the factory reset.
+
+A factory reset will completely delete the memory of the wall switch and restore all parameters to default value.
+In "Standalone" Mode, make sure to remove all the devices added or associated in the wall switch's network before performing a factory reset. 
+In "Gateway" Mode, use the factory reset procedure only when the primary controller (i.e the Gateway) is missing or defective. Reset the wall switch does not mean that it has been removed from the primary controller memory. Remove the wall switch (through the primary controller) before performing a factory reset. </MetaDataItem>
+    <MetaDataItem name="Description">The NodOn® wall switch controls any compatible receivers Z-Wave® or Z-Wave Plus®, such as the Smart Plug NodOn®. It can address, directly, up to 4 groups of 8 devices and sent up to 16 different scenes to a Home Automation Gateway. This controller can operate on its own (“Standalone” Mode) or as gateway’s assistant (“Gateway” Mode). The product integrates a LED, which give an intuitive feedback for each operation you perform. 
+
+Based on an innovative technology, the NodOn® wall switch is only powered with a CR2032 battery, offering 2 years’ autonomy. 
+
+The NodOn® wall switch can be screwed or bonded thanks of the
+adhesive tape included.
+
+The NodOn® wall switch is based on brand new 500 series Z-Wave® module from Sigma Designs®, and supports all the new features of Z-Wave Plus® standard: 
+Longer range (up to 40 meters indoor), lower power consumption, higher data rate transmission, and many more new features. </MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1383/CWS-3-1-xx-certicfication-product-150701.pdf</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0002">CWS-3-1-0X</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1- Push 3 times (quickly) on the button 2. The LED blinks in blue.
+
+2- Place the device you want to remove in “Learning” Mode. To do so, please refer to your device’s user guide. The LED blinks in green to confirm the exclusion.
+ </MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1- Push 3 times (quickly) on the button 3. The LED blinks in blue.
+ 
+2- Place the device you want to add in “Learning” Mode. To do so, please refer to your device’s user guide. The LED blinks in green to confirm the inclusion.
+
+Note: If you wish to include and associate a device, please refer to "Other Special Features" </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1383/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- NodOn CWS-3-1-01 Wall Switch Z-Wave+ -->
     <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Profile Buttons 1 &amp; 3" min="0" max="2" size="1" value="0">
-        <Help>This parameter configures the behavior of the buttons 1 and 3 when the product is in "Gateway Centric Mode"</Help>
-            <Item label="Scene Mode" value="0"/>
-            <Item label="Mono Mode" value="1"/>
-            <Item label="Duo Mode" value="2"/>
-        </Value>	
-        <Value type="list" index="2" genre="config" label="Profile Buttons 2 &amp; 4" min="0" max="2" size="1" value="0">
-        <Help>This parameter configures the behavior of the buttons 2 and 4 when the product is in "Gateway Centric Mode"</Help>
-            <Item label="Scene Mode" value="0"/>
-            <Item label="Mono Mode" value="1"/>
-            <Item label="Duo Mode" value="2"/>
-        </Value>
-        <Value type="list" index="3" genre="config" label="Scene Type" min="0" max="1" size="1" value="0">
-        <Help>This parameter configures the type of command sent when the product is in "Gateway Centric Mode", with buttons profile configuration set in "Scene Behavior".</Help>
-            <Item label="Central Scene" value="0"/>
-            <Item label="Scene Activation" value="1"/>
-        </Value>
-        <Value type="list" index="4" genre="config" label="Action Button 1 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Profile Buttons 1 &amp; 3" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter configures the behavior of the buttons 1 and 3 when the product is in "Gateway Centric Mode"</Help>
+      <Item label="Scene Mode" value="0"/>
+      <Item label="Mono Mode" value="1"/>
+      <Item label="Duo Mode" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Profile Buttons 2 &amp; 4" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter configures the behavior of the buttons 2 and 4 when the product is in "Gateway Centric Mode"</Help>
+      <Item label="Scene Mode" value="0"/>
+      <Item label="Mono Mode" value="1"/>
+      <Item label="Duo Mode" value="2"/>
+    </Value>
+    <Value genre="config" index="3" label="Scene Type" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter configures the type of command sent when the product is in "Gateway Centric Mode", with buttons profile configuration set in "Scene Behavior".</Help>
+      <Item label="Central Scene" value="0"/>
+      <Item label="Scene Activation" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Action Button 1 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 2" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="5" genre="config" label="Action Button 2 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+      <Item label="Control Group 2" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="5" label="Action Button 2 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 3" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="6" genre="config" label="Action Button 3 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+      <Item label="Control Group 3" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="6" label="Action Button 3 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 4" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="7" genre="config" label="Action Button 4 Mono" min="0" max="2" size="1" value="0">
-        <Help>When button are set in Mono Button mode they can have 3 different behaviors :
+      <Item label="Control Group 4" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="7" label="Action Button 4 Mono" max="2" min="0" size="1" type="list" value="0">
+      <Help>When button are set in Mono Button mode they can have 3 different behaviors :
         1: They can directly control other nodes with Basic and multi-level command class
         2: Send Switch All On command
         3: Send Switch All Off command
          </Help>
-            <Item label="Control Group 5" value="0"/>
-            <Item label="All Switch ON" value="1"/>
-            <Item label="All Switch OFF" value="2"/>
-        </Value>
-        <Value type="list" index="8" genre="config" label="Led Management" min="0" max="3" size="1" value="0">
-            <Item label="Led OFF" value="0"/>
-            <Item label="Led Blink on button action" value="1"/>
-            <Item label="Led Blink on transmission result" value="2"/>
-            <Item label="Led Blink on button action and transmission result" value="3"/>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="7">
-            <Group index="1" max_associations="1" label="Lifeline" />
-            <Group index="2" max_associations="8" label="Button 1 - Mono - Controlled nodes" />
-            <Group index="3" max_associations="8" label="Button 2 - Mono - Controlled nodes" />
-            <Group index="4" max_associations="8" label="Button 3 - Mono - Controlled nodes" />
-            <Group index="5" max_associations="8" label="Button 4 - Mono - Controlled nodes" />
-            <Group index="6" max_associations="8" label="Button 1 &amp; 3 - Duo - Controlled nodes" />
-            <Group index="7" max_associations="8" label="Button 2 &amp; 4 - Duo - Controlled nodes" />
-        </Associations>
-    </CommandClass>
+      <Item label="Control Group 5" value="0"/>
+      <Item label="All Switch ON" value="1"/>
+      <Item label="All Switch OFF" value="2"/>
+    </Value>
+    <Value genre="config" index="8" label="Led Management" max="3" min="0" size="1" type="list" value="0">
+      <Item label="Led OFF" value="0"/>
+      <Item label="Led Blink on button action" value="1"/>
+      <Item label="Led Blink on transmission result" value="2"/>
+      <Item label="Led Blink on button action and transmission result" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="7">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Button 1 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="3" label="Button 2 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="4" label="Button 3 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="5" label="Button 4 - Mono - Controlled nodes" max_associations="8"/>
+      <Group index="6" label="Button 1 &amp; 3 - Duo - Controlled nodes" max_associations="8"/>
+      <Group index="7" label="Button 2 &amp; 4 - Duo - Controlled nodes" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/nodon/msp31xxMicroSmartPlug.xml b/Config/nodon/msp31xxMicroSmartPlug.xml
index aad8913f43..969e39551f 100644
--- a/Config/nodon/msp31xxMicroSmartPlug.xml
+++ b/Config/nodon/msp31xxMicroSmartPlug.xml
@@ -1,4 +1,4 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- NodOn MSP-3-1-XX Micro Smart Plug Z-Wave+ -->
     <!-- Configuration Parameters -->
     <CommandClass id="112">
diff --git a/Config/northq/nq9021.xml b/Config/northq/nq9021.xml
index cf6ed0bd92..4b69b2be9a 100644
--- a/Config/northq/nq9021.xml
+++ b/Config/northq/nq9021.xml
@@ -1,70 +1,73 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 NorthQ NQ-9021 Power Reader
 http://northq.com/wp-content/uploads/2016/01/Technical-Integration.pdf
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- COMMAND_CLASS_BASIC -->
-    <CommandClass id="32" getsupported="false"/>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="int" index="1" genre="config" label="Pulse factor" units="pulses" min="10" max="1000000" value="10000" >
-            <Help>How many pulses are counted per 10 kWh.</Help>
-        </Value>
-        <Value type="list" index="2" genre="config" label="Sensor type" units="" min="1" max="2" value="1" size="1">
-            <Help>Defines the meter type on which the Power Reader is placed</Help>
-            <Item label="Pulse Meter" value="1"/>
-            <Item label="Rotating Wheel" value="2"/>
-        </Value>
-        <Value type="byte" index="3" genre="config" label="IR Listen period" units="" min="0" max="127" value="0">
-            <Help>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Pulse factor" max="1000000" min="10" type="int" units="pulses" value="10000">
+      <Help>How many pulses are counted per 10 kWh.</Help>
+    </Value>
+    <Value genre="config" index="2" label="Sensor type" max="2" min="1" size="1" type="list" units="" value="1">
+      <Help>Defines the meter type on which the Power Reader is placed</Help>
+      <Item label="Pulse Meter" value="1"/>
+      <Item label="Rotating Wheel" value="2"/>
+    </Value>
+    <Value genre="config" index="3" label="IR Listen period" max="127" min="0" type="byte" units="" value="0">
+      <Help>
                 Additional time for feedback measurement.
                 Should always be 0.
             </Help>
-        </Value>
-        <Value type="byte" index="4" genre="config" label="IR Pulse Width" units="" min="0" max="127" value="50">
-            <Help>
+    </Value>
+    <Value genre="config" index="4" label="IR Pulse Width" max="127" min="0" type="byte" units="" value="50">
+      <Help>
                 Adjusts transmit signal so received signal will in average be equal to this values.
                 Auto calibration might select another value than this.
             </Help>
-        </Value>
-        <Value type="byte" index="5" genre="config" label="Poll / Wake up frequency" units="seconds" min="1" max="50" value="20">
-            <Help>
+    </Value>
+    <Value genre="config" index="5" label="Poll / Wake up frequency" max="50" min="1" type="byte" units="seconds" value="20">
+      <Help>
                 Wake device up this many times per second.
                 This value also controls number of measurements per second on mechanical meters.
             </Help>
-        </Value>
-        <Value type="byte" index="6" genre="config" label="Pulse Threshold Low" units="" min="1" max="113" value="0" size="1">
-            <Help>Low detection threshold for wheel meters.</Help>
-        </Value>
-        <Value type="byte" index="7" genre="config" label="Pulse Threshold high" units="" min="1" max="113" value="5" size="1">
-            <Help>High detection threshold for wheel meters.</Help>
-        </Value>
-        <Value type="int" index="8" genre="config" label="Wake up interval" units="seconds" min="0" max="113" value="3" size="4" read_only="true">
-            <Help>Do not use. Set this value using WAKE_UP_INTERVAL_SET instead.</Help>
-        </Value>
-        <Value type="int" index="9" genre="config" label="Pulse count" units="" size="4" min="0" max="2147483647" value="0">
-            <Help>In order for the Power Reader to report the proper total meter consumption the value for this registered has to be initialized with total_meter_consumption_stated_on_the_meter * impulse factor.</Help>
-        </Value>
-        <Value type="short" index="10" genre="config" label="Keep alive period" units="second" size="2" min="1" max="32767" value="5">
-            <Help>set to the number of seconds that it will take the controlling node to send a response / request to the wake up notification</Help>
-        </Value>
-        <Value type="short" index="11" genre="config" label="Real-time mode" units="" size="2" min="0" max="32767" value="0" read_only="true">
-            <Help>Set this to enter real-time mode from remote. Contains seconds * poll frequency before going back to sleep. If you press the button once this value will be set.</Help>
-        </Value>
-        <Value type="int" index="12" genre="config" label="serial number" size="4" value="0" read_only="true">
-            <Help>The serial numbers written on the Power Reader are in HEX</Help>
-        </Value>
-        <Value type="list" index="13" genre="config" label="Debug" units="" min="0" max="1" value="1" size="1">
-            <Help>Debug Mode</Help>
-            <Item label="Off" value="0"/>
-            <Item label="LED blinks at pulse counting" value="1"/>
-        </Value>
-        <Value type="int" index="15" genre="config" label="Calibration status" size="4" value="0" read_only="true">
-            <Help>The calibration progress is calculated as (value[1] - 65 + value[2] / value[3]) * 25
+    </Value>
+    <Value genre="config" index="6" label="Pulse Threshold Low" max="113" min="1" size="1" type="byte" units="" value="0">
+      <Help>Low detection threshold for wheel meters.</Help>
+    </Value>
+    <Value genre="config" index="7" label="Pulse Threshold high" max="113" min="1" size="1" type="byte" units="" value="5">
+      <Help>High detection threshold for wheel meters.</Help>
+    </Value>
+    <Value genre="config" index="8" label="Wake up interval" max="113" min="0" read_only="true" size="4" type="int" units="seconds" value="3">
+      <Help>Do not use. Set this value using WAKE_UP_INTERVAL_SET instead.</Help>
+    </Value>
+    <Value genre="config" index="9" label="Pulse count" max="2147483647" min="0" size="4" type="int" units="" value="0">
+      <Help>In order for the Power Reader to report the proper total meter consumption the value for this registered has to be initialized with total_meter_consumption_stated_on_the_meter * impulse factor.</Help>
+    </Value>
+    <Value genre="config" index="10" label="Keep alive period" max="32767" min="1" size="2" type="short" units="second" value="5">
+      <Help>set to the number of seconds that it will take the controlling node to send a response / request to the wake up notification</Help>
+    </Value>
+    <Value genre="config" index="11" label="Real-time mode" max="32767" min="0" read_only="true" size="2" type="short" units="" value="0">
+      <Help>Set this to enter real-time mode from remote. Contains seconds * poll frequency before going back to sleep. If you press the button once this value will be set.</Help>
+    </Value>
+    <Value genre="config" index="12" label="serial number" read_only="true" size="4" type="int" value="0">
+      <Help>The serial numbers written on the Power Reader are in HEX</Help>
+    </Value>
+    <Value genre="config" index="13" label="Debug" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Debug Mode</Help>
+      <Item label="Off" value="0"/>
+      <Item label="LED blinks at pulse counting" value="1"/>
+    </Value>
+    <Value genre="config" index="15" label="Calibration status" read_only="true" size="4" type="int" value="0">
+      <Help>The calibration progress is calculated as (value[1] - 65 + value[2] / value[3]) * 25
                 The calibration is finished successfully when value[0] = 2 and value[2] = value[3].
                 The calibration has failed if value[0] != 1 OR (value[0] = 2 AND value[2] != value[3])
             </Help>
-        </Value>
-    </CommandClass>
+    </Value>
+  </CommandClass>
 </Product>
diff --git a/Config/northq/nq9121.xml b/Config/northq/nq9121.xml
index ad4c3daf8d..915043f35d 100644
--- a/Config/northq/nq9121.xml
+++ b/Config/northq/nq9121.xml
@@ -1,61 +1,63 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 NorthQ NQ-9121 Gas Meter
 http://northq.com/wp-content/uploads/2016/01/Technical-Integration.pdf
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- COMMAND_CLASS_BASIC -->
-  <CommandClass id="32" getsupported="false"/>
+  <CommandClass id="32">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="int" index="1" genre="config" label="Pulse factor" units="" min="10" max="1000000" value="1000">
+    <Value genre="config" index="1" label="Pulse factor" max="1000000" min="10" type="int" units="" value="1000">
       <Help>set the meter impulse or rotation factor x 10.</Help>
     </Value>
-    <Value type="list" index="2" genre="config" label="Sensor type" units="" min="1" max="2" value="2" size="1">
+    <Value genre="config" index="2" label="Sensor type" max="2" min="1" size="1" type="list" units="" value="2">
       <Help>Defines the meter type on which the Power Reader is placed</Help>
       <Item label="Magnetic contact meter" value="1"/>
       <Item label="Silver spot meter" value="2"/>
     </Value>
-    <Value type="byte" index="3" genre="config" label="IR Listen period" units="" min="0" max="127" value="0">
+    <Value genre="config" index="3" label="IR Listen period" max="127" min="0" type="byte" units="" value="0">
       <Help>
       	Additional time for feedback measurement.
       	Should always be 0.
      </Help>
     </Value>
-    <Value type="byte" index="4" genre="config" label="IR Pulse Width" units="" min="0" max="127" value="50">
+    <Value genre="config" index="4" label="IR Pulse Width" max="127" min="0" type="byte" units="" value="50">
       <Help>
       	Adjusts transmit signal so received signal will in average be equal to this values. 
       	Auto calibration might select another value than this.
       </Help>
     </Value>
-    <Value type="byte" index="5" genre="config" label="Poll / Wake up frequency" units="seconds" min="1" max="50" value="20" >
+    <Value genre="config" index="5" label="Poll / Wake up frequency" max="50" min="1" type="byte" units="seconds" value="20">
       <Help>
       	Wake device up this many times per second. 
       	This value also controls number of measurements per second on mechanical meters.
      </Help>
     </Value>
-    <Value type="int" index="9" genre="config" label="Pulse count" units="" size="4" min="0" max="2147483647" value="0" >
+    <Value genre="config" index="9" label="Pulse count" max="2147483647" min="0" size="4" type="int" units="" value="0">
       <Help>In order for the Power Reader to report the proper total meter consumption the value for this registered has to be initialized with total_meter_consumption_stated_on_the_meter * impulse factor.</Help>
     </Value>
-    <Value type="short" index="10" genre="config" label="Keep alive period" units="second" size="2" min="1" max="32767" value="5">
+    <Value genre="config" index="10" label="Keep alive period" max="32767" min="1" size="2" type="short" units="second" value="5">
       <Help>set to the number of seconds that it will take the controlling node to send a response / request to the wake up notification</Help>
     </Value>
-    <Value type="short" index="11" genre="config" label="Real-time mode" units="" size="2" min="0" max="32767" value="0" read_only="true" >
+    <Value genre="config" index="11" label="Real-time mode" max="32767" min="0" read_only="true" size="2" type="short" units="" value="0">
       <Help>Set this to enter real-time mode from remote. Contains seconds * poll frequency before going back to sleep. If you press the button once this value will be set.</Help>
     </Value>
-    <Value type="int" index="12" genre="config" label="serial number" size="4" value="0" read_only="true" >
+    <Value genre="config" index="12" label="serial number" read_only="true" size="4" type="int" value="0">
       <Help>The serial numbers written on the Power Reader are in HEX</Help>
     </Value>
-    <Value type="list" index="13" genre="config" label="Debug" units="" min="0" max="1" value="1" size="1">
+    <Value genre="config" index="13" label="Debug" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>Debug Mode</Help>
       <Item label="Off" value="0"/>
       <Item label="LED blinks at pulse counting" value="1"/>
     </Value>
-    <Value type="int" index="15" genre="config" label="Calibration status" size="4" value="0" read_only="true" >
+    <Value genre="config" index="15" label="Calibration status" read_only="true" size="4" type="int" value="0">
       <Help>The calibration progress is calculated as (value[1] - 65 + value[2] / value[3]) * 25
 			The calibration is finished successfully when value[0] = 2 and value[2] = value[3].
 			The calibration has failed if value[0] != 1 OR (value[0] = 2 AND value[2] != value[3])</Help>
     </Value>
   </CommandClass>
 </Product>
-
diff --git a/Config/northq/nq92021.xml b/Config/northq/nq92021.xml
index 4c930be251..1c38c5de56 100644
--- a/Config/northq/nq92021.xml
+++ b/Config/northq/nq92021.xml
@@ -1,41 +1,56 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-  <!--
+<!--
   NorthQ NQ-92021 Power Reader & Power Manager
   http://products.z-wavealliance.org/products/69
   http://northq.com/wp-content/uploads/2016/01/Technical-Integration.pdf
-  -->
+  --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0096:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/northq/nq92021.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/69/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://northq.com/qpower/</MetaDataItem>
+    <MetaDataItem name="Description">NorthQ has developed a small Power Reader that can be easily installed on existing electronic or mechanical meters in order to visualize electricity consumption in private homes. The meter reading solution is based on the Z-Wave wireless standard, which is ideal for controlling automation products within the home.
+
+The product consists of 3 parts: a Power Reader, a battery-powered wireless transmitter and a USB receiver. Electricity data is transferred to a chosen PC every 15 minutes, where it can then be visualized in the form of graphs, enabling customers to keep track of their electricity consumption (in kWh and in local currency), and monitor their CO2 emissions, etc. It is also possible to receive real-time measurements in order to investigate how much each individual appliance uses in active or standby mode.
+
+Furthermore, it is possible to enter a budget for how much you want to consume in EUR or kWh per year. The NorthQ eGadget on the screen continuously monitors and updates the electricity consumption data to indicate whether you are under or over budget. You are then able to compare your electricity consumption in the current year with that in previous years. It is also possible to compare the consumption in your current home with other types of homes, e.g. apartments, houses, villas, etc. 
+</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">NorthQ Power Reader &amp; Power Manager</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">NQ-92021</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/69/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="int" index="1" genre="config" label="Pulse factor" units="pulses" min="10" max="1000000" value="10000">
+    <Value genre="config" index="1" label="Pulse factor" max="1000000" min="10" type="int" units="pulses" value="10000">
       <Help>How many pulses are counted per 10 kWh.</Help>
     </Value>
-    <Value type="list" index="2" genre="config" label="Sensor type" units="" min="1" max="2" value="1" size="1">
+    <Value genre="config" index="2" label="Sensor type" max="2" min="1" size="1" type="list" units="" value="1">
       <Help>Defines the meter type on which the Power Reader is placed</Help>
       <Item label="Pulse Meter" value="1"/>
       <Item label="Rotating Wheel" value="2"/>
     </Value>
-    <Value type="byte" index="3" genre="config" label="IR Listen period" units="" min="0" max="127" value="0">
+    <Value genre="config" index="3" label="IR Listen period" max="127" min="0" type="byte" units="" value="0">
       <Help>Additional time for feedback measurement.Should always be 0.</Help>
     </Value>
-    <Value type="byte" index="4" genre="config" label="IR Pulse Width" units="" min="0" max="127" value="50">
+    <Value genre="config" index="4" label="IR Pulse Width" max="127" min="0" type="byte" units="" value="50">
       <Help>Adjusts transmit signal so received signal will in average be equal to this values. Auto calibration might select another value than this.</Help>
     </Value>
-    <Value type="byte" index="5" genre="config" label="Poll / Wake up frequency" units="seconds" min="1" max="50" value="20" >
+    <Value genre="config" index="5" label="Poll / Wake up frequency" max="50" min="1" type="byte" units="seconds" value="20">
       <Help>Wake device up this many times per second. This value also controls number of measurements per second on mechanical meters.</Help>
     </Value>
-    <Value type="int" index="8" genre="config" label="Wake up interval" units="seconds" min="1" max="32767" value="900" read_only="true" >
+    <Value genre="config" index="8" label="Wake up interval" max="32767" min="1" read_only="true" type="int" units="seconds" value="900">
       <Help>Do not use. Set this value using WAKE_UP_INTERVAL_SET instead.</Help>
     </Value>
-    <Value type="int" index="9" genre="config" label="Pulse count" units="pulses/kWh" min="0" max="2147483647" value="0" >
+    <Value genre="config" index="9" label="Pulse count" max="2147483647" min="0" type="int" units="pulses/kWh" value="0">
       <Help>Current pulse count in device (pulse count / pulse factor = kWh).</Help>
     </Value>
-    <Value type="short" index="10" genre="config" label="Keep alive period" units="second" size="2" min="1" max="32767" value="5">
+    <Value genre="config" index="10" label="Keep alive period" max="32767" min="1" size="2" type="short" units="second" value="5">
       <Help>set to the number of seconds that it will take the controlling node to send a response / request to the wake up notification</Help>
     </Value>
-    <Value type="int" index="11" genre="config" label="Real-time mode" units="pulses/kWh" min="0" max="32767" value="0" >
+    <Value genre="config" index="11" label="Real-time mode" max="32767" min="0" type="int" units="pulses/kWh" value="0">
       <Help>Set this to enter real-time mode from remote. Contains seconds * poll frequency before going back to sleep. If you press the button once this value will be set.</Help>
     </Value>
   </CommandClass>
 </Product>
-
diff --git a/Config/oomi/ft100.xml b/Config/oomi/ft100.xml
index ab0d8e8188..9013d5efd7 100644
--- a/Config/oomi/ft100.xml
+++ b/Config/oomi/ft100.xml
@@ -1,96 +1,95 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- 
 Oomi FT100 MultiSensor 6
 https://products.z-wavealliance.org/products/2592
 V1.09 (01/24/2018)
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
 	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="2" genre="config" label="Wake up 10 minutes on Power On" min="0" max="1" value="0" size="1">
-			<Help>Enable/Disable waking up for 10 minutes when re-power on (battery mode) the MultiSensor</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="short" index="3" genre="config" label="On time" units="seconds" min="10" max="3600" value="240">
-			<Help>Duration that the motion sensor must observe no motion before it will return to the no-motion state.
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="Wake up 10 minutes on Power On" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/Disable waking up for 10 minutes when re-power on (battery mode) the MultiSensor</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="On time" max="3600" min="10" type="short" units="seconds" value="240">
+      <Help>Duration that the motion sensor must observe no motion before it will return to the no-motion state.
 			If value greater than 255, effective value is rounded up to the nearest minute (255 -> 255 seconds, 256 -> 300 seconds)</Help>
-		</Value>
-		<Value type="list" index="4" genre="config" label="Enable Motion Sensor" min="0" max="1" value="5" size="1">
-			<Help>Enable Motion Sensor, (1 minimum, 5 maximum sensitivity level)</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled level 1" value="1" />
-			<Item label="Enabled level 2" value="2" />
-			<Item label="Enabled level 3" value="3" />
-			<Item label="Enabled level 4" value="4" />
-			<Item label="Enabled level 5" value="5" />
-		</Value>
-		<Value type="list" index="5" genre="config" label="Command Options" min="1" max="2" value="1" size="1">		
-			<Help>Which commands to send when PIR motion sensor triggered
+    </Value>
+    <Value genre="config" index="4" label="Enable Motion Sensor" max="1" min="0" size="1" type="list" value="5">
+      <Help>Enable Motion Sensor, (1 minimum, 5 maximum sensitivity level)</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled level 1" value="1"/>
+      <Item label="Enabled level 2" value="2"/>
+      <Item label="Enabled level 3" value="3"/>
+      <Item label="Enabled level 4" value="4"/>
+      <Item label="Enabled level 5" value="5"/>
+    </Value>
+    <Value genre="config" index="5" label="Command Options" max="2" min="1" size="1" type="list" value="1">
+      <Help>Which commands to send when PIR motion sensor triggered
 			OZW Ideal Value is Binary Sensor Report</Help>
-			<Item label="Basic Set" value="1" />
-			<Item label="Binary Sensor Report" value="2" />
-		</Value>
-		<Value type="byte" index="8" genre="config" label="Awake timeout" min="8" max="255" value="30" size="1">
-			<Help>
+      <Item label="Basic Set" value="1"/>
+      <Item label="Binary Sensor Report" value="2"/>
+    </Value>
+    <Value genre="config" index="8" label="Awake timeout" max="255" min="8" size="1" type="byte" value="30">
+      <Help>
 			Set the timeout of awake after the Wake Up CC is sent out.
 			Available rang: 8 to 255 seconds.
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="9" label="Current power mode" min="0" max="257" size="2" value="0" read_only="true">
-			<Help>Report the current power mode and the product state for battery power mode</Help>
-			<Item label="USB power, sleeping mode after re-power on" value="0"/>
-			<Item label="USB power, keep awake for 10 minutes after re-power on" value="1"/>
-			<Item label="Battery power, sleeping mode after re-power on" value="256"/>
-			<Item label="Battery power, keep awake for 10 minutes after re-power on" value="257"/>
-		</Value>
-		<Value type="byte" index="39" genre="config" label="Low Battery" min="10" max="50" value="20" size="1">
-			<Help>Configure low battery value
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Current power mode" max="257" min="0" read_only="true" size="2" type="list" value="0">
+      <Help>Report the current power mode and the product state for battery power mode</Help>
+      <Item label="USB power, sleeping mode after re-power on" value="0"/>
+      <Item label="USB power, keep awake for 10 minutes after re-power on" value="1"/>
+      <Item label="Battery power, sleeping mode after re-power on" value="256"/>
+      <Item label="Battery power, keep awake for 10 minutes after re-power on" value="257"/>
+    </Value>
+    <Value genre="config" index="39" label="Low Battery" max="50" min="10" size="1" type="byte" value="20">
+      <Help>Configure low battery value
 			Value=10 to 50.</Help>
-		</Value>
-		<Value type="list" index="40" genre="config" label="Report Only On Thresholds" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable the selective reporting only when measurements reach a certain threshold or percentage 
+    </Value>
+    <Value genre="config" index="40" label="Report Only On Thresholds" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable the selective reporting only when measurements reach a certain threshold or percentage 
 			set in the threshold settings.  This is used to reduce network
 			traffic.</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled" value="1" />
-		</Value>
-		<Value type="int" index="41" genre="config" label="Temperature Reporting Threshold" units="C/F" min="0" max="39321" value="20" size="4">
-			<Help>Threshold change in temperature to induce an automatic report.  
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="41" label="Temperature Reporting Threshold" max="39321" min="0" size="4" type="int" units="C/F" value="20">
+      <Help>Threshold change in temperature to induce an automatic report.  
 			Note: 
 			1. The unit is Fahrenheit for US version, Celsius for EU/AU version.
 			2. The value contains one decimal point. E.g. if the value is set to 20, the threshold value = 2.0 C (EU/AU) or 2.0 F (US). When the temperature has changed by 2.0 (of the appropriate unit), a temperature report will be sent.
 			</Help>
-		</Value>
-		<Value type="byte" index="42" genre="config" label="Humidity Reporting Threshold" units="%" min="0" max="100" value="10" size="1">
-			<Help>Threshold change in humidity to induce an automatic report. 
+    </Value>
+    <Value genre="config" index="42" label="Humidity Reporting Threshold" max="100" min="0" size="1" type="byte" units="%" value="10">
+      <Help>Threshold change in humidity to induce an automatic report. 
 			Note: 
 			1. The unit is %.
 			2. The default value is 10, which means that a 10% change in humidity will trigger a report.
 			</Help>
-		</Value>
-		<Value type="short" index="43" genre="config" label="Luminance Reporting Threshold" units="LUX" min="0" max="1000" value="100" size="2">
-			<Help>Threshold change in luminance to induce an automatic report.</Help>
-		</Value>
-		<Value type="byte" index="44" genre="config" label="Battery Reporting Threshold" units="%" min="0" max="100" value="10" size="1">
-			<Help>Threshold change in battery level to induce an  automatic report. 
+    </Value>
+    <Value genre="config" index="43" label="Luminance Reporting Threshold" max="1000" min="0" size="2" type="short" units="LUX" value="100">
+      <Help>Threshold change in luminance to induce an automatic report.</Help>
+    </Value>
+    <Value genre="config" index="44" label="Battery Reporting Threshold" max="100" min="0" size="1" type="byte" units="%" value="10">
+      <Help>Threshold change in battery level to induce an  automatic report. 
 			Note: 
 			1. The unit is %.
 			2. The default value is 10, which means that a 10% change in battery will trigger a report.
 			</Help>
-		</Value>
-		<Value type="byte" index="45" genre="config" label="UV Reporting Threshold" units="" min="0" max="255" value="2" read_only="true">
-			<Help>Threshold change in ultraviolet to induce an automatic report.
+    </Value>
+    <Value genre="config" index="45" label="UV Reporting Threshold" max="255" min="0" read_only="true" type="byte" units="" value="2">
+      <Help>Threshold change in ultraviolet to induce an automatic report.
 			</Help>
-		</Value>
-		<Value type="list" index="46" genre="config" label="Low Temp Alarm" min="0" max="1" value="0" size="1">
-			<Help>Enable/disable to send the alarm report of low temperature(Less than 15 Degress C)
+    </Value>
+    <Value genre="config" index="46" label="Low Temp Alarm" max="1" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable to send the alarm report of low temperature(Less than 15 Degress C)
 			</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Enabled" value="1" />
-		</Value>
-		<Value type="byte" index="48" genre="config" label="Enable/disable to send a report on Threshold" units="" min="0" max="255" value="0" >
-			<Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="48" label="Enable/disable to send a report on Threshold" max="255" min="0" type="byte" units="" value="0">
+      <Help>
 			Enable/disable to send a report when the measurement is more than the upper limit value or less than the lower limit value.
 			Bit mask = 0, disable.
 			Bit mask = 1, enable.
@@ -107,9 +106,9 @@ V1.09 (01/24/2018)
 			Note: 
 			If USB power, the Sensor will check the limit every 10 seconds. If battery power, the Sensor will check the limit when it is waken up. 
 			</Help>
-		</Value>
-		<Value type="int" index="49" genre="config" label="Set the upper limit value of temperature sensor" value="71681" >
-			<Help>
+    </Value>
+    <Value genre="config" index="49" label="Set the upper limit value of temperature sensor" type="int" value="71681">
+      <Help>
 			When the measurement is more than this upper limit, which will trigger to sent out a sensor report.
 			High byte is the upper limit value. Low byte is the unit (0x01=Celsius, 0x02=Fahrenheit).
 			1. When unit is Celsius.
@@ -119,9 +118,9 @@ V1.09 (01/24/2018)
 			Upper limit range: -40.0 to 212.0 F (0xFE70 to 0x0848).
 			E.g. The default upper limit of US version is 82.4F (0X0338), when the measurement is more than 82.4F, it will be triggered to send out a temperature sensor report.
 			</Help>
-		</Value>
-		<Value type="int" index="50" genre="config" label="Set the lower limit value of temperature sensor" value="1" >
-			<Help>
+    </Value>
+    <Value genre="config" index="50" label="Set the lower limit value of temperature sensor" type="int" value="1">
+      <Help>
 			When the measurement is less than this lower limit, which will trigger to sent out a sensor report.
 			High byte is the lower limit value. Low byte is the unit (0x01=Celsius, 0x02=Fahrenheit).
 			1. When unit is Celsius.
@@ -131,51 +130,51 @@ V1.09 (01/24/2018)
 			Upper limit range: -40.0 to 212.0 F (0xFE70 to 0x0848).
 			E.g. The default lower limit of US version is 32.0F (0x0140), when the measurement is less than 32.0F, it will be triggered to send out a temperature sensor report.
 			</Help>
-		</Value>
-		<Value type="byte" index="51" genre="config" label="Set the upper limit value of humidity sensor" units="%" min="0" max="100" value="60" >
-			<Help>
+    </Value>
+    <Value genre="config" index="51" label="Set the upper limit value of humidity sensor" max="100" min="0" type="byte" units="%" value="60">
+      <Help>
 			When the measurement is more than this upper limit, which will trigger to sent out a sensor report.
 			Upper limit range: 0 to 100%.
 			E.g. The default upper limit is 60%, when the measurement is more than 60%, it will be triggered to send out a humidity sensor report. 
 			</Help>
-		</Value>
-		<Value type="byte" index="52" genre="config" label="Set the lower limit value of humidity sensor" units="%" min="0" max="100" value="50" >
-			<Help>
+    </Value>
+    <Value genre="config" index="52" label="Set the lower limit value of humidity sensor" max="100" min="0" type="byte" units="%" value="50">
+      <Help>
 			When the measurement is less than this lower limit, which will trigger to sent out a sensor report.
 			Lower limit range: 0 to 100%.
 			E.g. The default lower limit is 50%, when the measurement is less than 50%, it will be triggered to send out a humidity sensor report. 
 			</Help>
-		</Value>
-		<Value type="short" index="53" genre="config" label="Set the upper limit value of Lighting sensor" units="lux" min="0" max="30000" value="1000" >
-			<Help>
+    </Value>
+    <Value genre="config" index="53" label="Set the upper limit value of Lighting sensor" max="30000" min="0" type="short" units="lux" value="1000">
+      <Help>
 			When the measurement is more than this upper limit, which will trigger to sent out a sensor report.
 			Upper limit range: 0 to 30000 Lux.
 			E.g. The default upper limit is 1000Lux, when the measurement is more than 1000Lux, it will be triggered to send out a Lighting sensor report. 
 			</Help>
-		</Value>
-		<Value type="short" index="54" genre="config" label="Set the lower limit value of Lighting sensor" units="lux" min="0" max="30000" value="100" >
-			<Help>
+    </Value>
+    <Value genre="config" index="54" label="Set the lower limit value of Lighting sensor" max="30000" min="0" type="short" units="lux" value="100">
+      <Help>
 			When the measurement is less than this lower limit, which will trigger to sent out a sensor report.
 			Lower limit range: 0 to 30000 Lux.
 			E.g. The default lower limit is 100Lux, when the measurement is less than 100Lux, it will be triggered to send out a Lighting sensor report. 			
 			</Help>
-		</Value>
-		<Value type="byte" index="55" genre="config" label="Set the upper limit value of ultraviolet sensor" units="UV" min="1" max="11" value="8" >
-			<Help>
+    </Value>
+    <Value genre="config" index="55" label="Set the upper limit value of ultraviolet sensor" max="11" min="1" type="byte" units="UV" value="8">
+      <Help>
 			 When the measurement is more than this upper limit, which will trigger to sent out a sensor report.
 			 Upper limit range: 1 to 11.
 			 E.g. The default upper limit is 8, when the measurement is more than 8, it will be triggered to send out a ultraviolet sensor report. 
 			</Help>
-		</Value>
-		<Value type="byte" index="56" genre="config" label="Set the lower limit value of ultraviolet sensor" units="UV" min="1" max="11" value="4" >
-			<Help>
+    </Value>
+    <Value genre="config" index="56" label="Set the lower limit value of ultraviolet sensor" max="11" min="1" type="byte" units="UV" value="4">
+      <Help>
 			 When the measurement is less than this upper limit, which will trigger to sent out a sensor report.
 			 Lower limit range: 1 to 11.
 			 E.g. The default lower limit is 4, when the measurement is less than 8, it will be triggered to send out a ultraviolet sensor report.
 			</Help>
-		</Value>
-		<Value type="short" index="57" genre="config" label="Set the recover limit value of temperature sensor" value="5121" >
-			<Help>
+    </Value>
+    <Value genre="config" index="57" label="Set the recover limit value of temperature sensor" type="short" value="5121">
+      <Help>
 			Note:
 			1. When the current measurement lower or equal (Upper limit - Recover limit), the upper limit report is enabled and then it would send out a sensor report when the next measurement is more than the upper limit. 
 			After that, the upper limit report would be disabled again until the measurement lower or equal (Upper limit - Recover limit).
@@ -185,9 +184,9 @@ V1.09 (01/24/2018)
 			4. Recover limit range: 1.0 to 25.5 C/ F (0x0101 to 0xFF01 or 0x0102 to 0xFF02).
 			E.g. The default recover limit value is 2.0 C/F (0x1401/0x1402), when the measurement is less than (Upper limit - 2), the upper limit report would be enabled one time or when the measurement is more than (Lower limit + 2), the lower limit report would be enabled one time.
 			</Help>
-		</Value>
-		<Value type="byte" index="58" genre="config" label="Set the recover limit value of humidity sensor" units="%" min="1" max="255" value="5" >
-			<Help>
+    </Value>
+    <Value genre="config" index="58" label="Set the recover limit value of humidity sensor" max="255" min="1" type="byte" units="%" value="5">
+      <Help>
 			 Note:
 			1. When the current measurement lower or equal (Upper limit - Recover limit), the upper limit report is enabled and then it would send out a sensor report when the next measurement is more than the upper limit. 
 			After that the upper limit report would be disabled again until the measurement lower or equal (Upper limit - Recover limit).
@@ -195,10 +194,10 @@ V1.09 (01/24/2018)
 			After that the lower limit report would be disabled again until the measurement greater or equal(Lower limit + Recover limit).
 			3. Recover limit range: 1 to 50% (0x01 to 0x32).
 			E.g. The default recover limit value is 5%, when the measurement is less than (Upper limit - 5), the upper limit report would be enabled one time or when the measurement is more than (Lower limit + 5), the lower limit report would be enabled one time. 
-			</Help>			
-		</Value>
-		<Value type="byte" index="59" genre="config" label="Set the recover limit value of Lighting sensor" units="10xlux" min="1" max="255" value="10" >
-			<Help>
+			</Help>
+    </Value>
+    <Value genre="config" index="59" label="Set the recover limit value of Lighting sensor" max="255" min="1" type="byte" units="10xlux" value="10">
+      <Help>
 			Note:
 			1. When the current measurement lower or equal (Upper limit - Recover limit), the upper limit report is enabled and then it would send out a sensor report when the next measurement is more than the upper limit. 
 			After that the upper limit report would be disabled again until the measurement lower or equal (Upper limit - Recover limit).
@@ -208,9 +207,9 @@ V1.09 (01/24/2018)
 			4. Recover limit range: 10 to 2550Lux (0x01 to 0xFF).
 			E.g. The default recover limit value is 100 Lux, when the measurement is less than (Upper limit - 100), the upper limit report would be enabled one time or when the measurement is more than (Lower limit + 100), the lower limit report would be enabled one time.
 			</Help>
-		</Value>
-		<Value type="byte" index="60" genre="config" label="Set the recover limit value of Ultraviolet sensor" units="UV" min="1" max="5" value="2" >
-			<Help>
+    </Value>
+    <Value genre="config" index="60" label="Set the recover limit value of Ultraviolet sensor" max="5" min="1" type="byte" units="UV" value="2">
+      <Help>
 			 Note:
 			1. When the current measurement lower or equal (Upper limit - Recover limit), the upper limit report is enabled and then it would send out a sensor report when the next measurement is more than the upper limit. 
 			After that the upper limit report would be disabled again until the measurement lower or equal (Upper limit - Recover limit).
@@ -219,9 +218,9 @@ V1.09 (01/24/2018)
 			3. Recover limit range: 1 to 50% (0x01 to 0x32).
 			E.g. The default recover limit value is 5%, when the measurement is less than (Upper limit - 5), the upper limit report would be enabled one time or when the measurement is more than (Lower limit + 5), the lower limit report would be enabled one time. 
 			</Help>
-		</Value>
-		<Value type="byte" index="61" genre="config" label="Get the out-of-limit state of the Sensors" units="" min="0" max="255" value="0" read_only="true">
-			<Help>
+    </Value>
+    <Value genre="config" index="61" label="Get the out-of-limit state of the Sensors" max="255" min="0" read_only="true" type="byte" units="" value="0">
+      <Help>
 			Get the out-of-limit state of the Sensors.
 			Bit mask = 0, within the limit.
 			Bit mask = 1, out of the limit.
@@ -236,23 +235,23 @@ V1.09 (01/24/2018)
 			Bit 6 = luminance.
 			Bit 7 = ultraviolet.
 			</Help>
-		</Value>		
-		<Value type="list" index="64" genre="config" label="Temperature scale" min="1" max="2" value="1" size="1">
-			<Help>Default value: Celsius for EU/AU version, Fahrenheit for US version.</Help>
-			<Item label="Celsius" value="1" />
-			<Item label="Fahrenheit" value="2" />
-		</Value>
-        <Value type="list" index="81" genre="config" label="LED blinking report" min="0" max="2" value="0" size="1">
-			<Help>Enable/disable the LED blinking for motion, wakeup, and sensor report.</Help>
-			<Item label="Enable LED blinking" value="0" />
-			<Item label="Disable LED blinking only when the PIR is triggered" value="1" />
-			<Item label="Completely disable LED for motion, wakeup, and sensor report" value="2" />
-		</Value>
-		<Value type="button" index="100" genre="config" label="Reset Params 101-103 to Default" write_only="true" affects="101,102,103">
-			<Help>Reset The Reporting Group Configuration (101 to 103) to default</Help>
-		</Value>
-		<Value type="int" index="101" genre="config" label="Group 1 Reports" value="241">
-			<Help>Which reports need to send automatically in timing intervals for group 1.
+    </Value>
+    <Value genre="config" index="64" label="Temperature scale" max="2" min="1" size="1" type="list" value="1">
+      <Help>Default value: Celsius for EU/AU version, Fahrenheit for US version.</Help>
+      <Item label="Celsius" value="1"/>
+      <Item label="Fahrenheit" value="2"/>
+    </Value>
+    <Value genre="config" index="81" label="LED blinking report" max="2" min="0" size="1" type="list" value="0">
+      <Help>Enable/disable the LED blinking for motion, wakeup, and sensor report.</Help>
+      <Item label="Enable LED blinking" value="0"/>
+      <Item label="Disable LED blinking only when the PIR is triggered" value="1"/>
+      <Item label="Completely disable LED for motion, wakeup, and sensor report" value="2"/>
+    </Value>
+    <Value affects="101,102,103" genre="config" index="100" label="Reset Params 101-103 to Default" type="button" write_only="true">
+      <Help>Reset The Reporting Group Configuration (101 to 103) to default</Help>
+    </Value>
+    <Value genre="config" index="101" label="Group 1 Reports" type="int" value="241">
+      <Help>Which reports need to send automatically in timing intervals for group 1.
 				Bitmask:
 				10000000 - 128 - Luminance
 				01000000 - 64 - Humidity
@@ -261,9 +260,9 @@ V1.09 (01/24/2018)
 				00000001 - 1 - Battery
 				10100000 - 160 - Luminance and Temperature (32+128)
 				11110001 - 241 - All (1+16+32+64+128)</Help>
-		</Value>
-		<Value type="int" index="102" genre="config" label="Group 2 Reports" value="0">
-			<Help>Which reports need to send automatically in timing intervals for group 2.
+    </Value>
+    <Value genre="config" index="102" label="Group 2 Reports" type="int" value="0">
+      <Help>Which reports need to send automatically in timing intervals for group 2.
 				Bitmask:
 				10000000 - 128 - Luminance
 				01000000 - 64 - Humidity
@@ -272,9 +271,9 @@ V1.09 (01/24/2018)
 				00000001 - 1 - Battery
 				10100000 - 160 - Luminance and Temperature (32+128)
 				11110001 - 241 - All (1+16+32+64+128)</Help>
-		</Value>
-		<Value type="int" index="103" genre="config" label="Group 3 Reports" value="0">
-			<Help>Which reports need to send automatically in timing intervals for group 3.
+    </Value>
+    <Value genre="config" index="103" label="Group 3 Reports" type="int" value="0">
+      <Help>Which reports need to send automatically in timing intervals for group 3.
 				Bitmask:
 				10000000 - 128 - Luminance
 				01000000 - 64 - Humidity
@@ -283,31 +282,31 @@ V1.09 (01/24/2018)
 				00000001 - 1 - Battery
 				10100000 - 160 - Luminance and Temperature (32+128)
 				11110001 - 241 - All (1+16+32+64+128)</Help>
-		</Value>
-		<Value type="button" index="110" genre="config" label="Reset Params 111-113 to Default" write_only="true" affects="111,112,113">
-			<Help>Reset The Reporting Group Interval Configuration (111 to 113) to default</Help>
-		</Value>
-		<!-- Applications can check IsNodeListeningDevice to determine if the device is on USB power (listening) or battery (not listening) -->
-		<Value type="int" index="111" genre="config" label="Group 1 Interval" units="seconds" min="1" max="2678400" value="3600">
-			<Help>The interval for sending reports for group 1.
+    </Value>
+    <Value affects="111,112,113" genre="config" index="110" label="Reset Params 111-113 to Default" type="button" write_only="true">
+      <Help>Reset The Reporting Group Interval Configuration (111 to 113) to default</Help>
+    </Value>
+    <!-- Applications can check IsNodeListeningDevice to determine if the device is on USB power (listening) or battery (not listening) -->
+    <Value genre="config" index="111" label="Group 1 Interval" max="2678400" min="1" type="int" units="seconds" value="3600">
+      <Help>The interval for sending reports for group 1.
 			The effective behavior of this setting depends on the device's power source:
 			- If the device is on USB power, it will send the reports at the configured interval; set it to something low (~15-60 seconds) to get frequent updates from a powered device.
 			- If the device is on battery, the sensor will never report in more often than its configured wake interval, regardless of what this setting is configured to; setting this to 3601 when the wake interval is 3600 would make this group report in every 7200 seconds. 240 seconds is the minimum wake interval, but will quickly use battery.</Help>
-		</Value>
-		<Value type="int" index="112" genre="config" label="Group 2 Interval" units="seconds" min="1" max="2678400" value="3600">
-			<Help>The interval for sending reports for group 2.
+    </Value>
+    <Value genre="config" index="112" label="Group 2 Interval" max="2678400" min="1" type="int" units="seconds" value="3600">
+      <Help>The interval for sending reports for group 2.
 			The effective behavior of this setting depends on the device's power source:
 			- If the device is on USB power, it will send the reports at the configured interval; set it to something low (~15-60 seconds) to get frequent updates from a powered device.
 			- If the device is on battery, the sensor will never report in more often than its configured wake interval, regardless of what this setting is configured to; setting this to 3601 when the wake interval is 3600 would make this group report in every 7200 seconds. 240 seconds is the minimum wake interval, but will quickly use battery.</Help>
-		</Value>
-		<Value type="int" index="113" genre="config" label="Group 3 Interval" units="seconds" min="1" max="2678400" value="3600">
-			<Help>The interval for sending reports for group 3.
+    </Value>
+    <Value genre="config" index="113" label="Group 3 Interval" max="2678400" min="1" type="int" units="seconds" value="3600">
+      <Help>The interval for sending reports for group 3.
 			The effective behavior of this setting depends on the device's power source:
 			- If the device is on USB power, it will send the reports at the configured interval; set it to something low (~15-60 seconds) to get frequent updates from a powered device.
 			- If the device is on battery, the sensor will never report in more often than its configured wake interval, regardless of what this setting is configured to; setting this to 3601 when the wake interval is 3600 would make this group report in every 7200 seconds. 240 seconds is the minimum wake interval, but will quickly use battery.</Help>
-		</Value>
-		<Value type="short" index="201" genre="config" label="Temperature Calibration" value="1">
-			<Help>Temperature calibration (the available value range is [-128,127] or [-12.8C,12.7C]).
+    </Value>
+    <Value genre="config" index="201" label="Temperature Calibration" type="short" value="1">
+      <Help>Temperature calibration (the available value range is [-128,127] or [-12.8C,12.7C]).
 			Note:
 			1. High byte is the calibration value. Low byte is the unit (0x01=Celsius,0x02=Fahrenheit)
 			2. The calibration value (high byte) contains one decimal point. 
@@ -317,51 +316,52 @@ V1.09 (01/24/2018)
 			If the measure value =30.1C and the standard value = 33.2C, so the calibration value= 33.2C - 30.1C=3.1C (0x1F).
 			Default value: 1 for EU/AU version, 2 for US version.
 			</Help>
-		</Value>
-		<Value type="byte" index="202" genre="config" label="Humidity Calibration" min="0" max="255" value="0">
-			<Help>The calibration value = standard value - measure value.
+    </Value>
+    <Value genre="config" index="202" label="Humidity Calibration" max="255" min="0" type="byte" value="0">
+      <Help>The calibration value = standard value - measure value.
 			(the available value range is [-50, 50]).
 			If measure value =80RH and the standard value = 75RH, so the calibration value= 75RH-80RH = -5RH (0xFB).
 			If the measure value =85RH and the standard value = 90RH, so the calibration value= 90RH-85RH = 5RH (0x05).  
 			</Help>
-		</Value>
-		<Value type="short" index="203" genre="config" label="Luminance Calibration" min="0" max="65535"  value="0">
-			<Help>The calibration value = standard value - measure value. 
+    </Value>
+    <Value genre="config" index="203" label="Luminance Calibration" max="65535" min="0" type="short" value="0">
+      <Help>The calibration value = standard value - measure value. 
 			(the available value range is [-1000, 1000]).
 			If measure value =800Lux and the standard value = 750Lux, so the calibration value= 750-800 = -50 (0xFFCE). 
 			If the measure value =850Lux and the standard value = 900Lux, so the calibration value= 900-850 = 50 (0x0032). 
 			</Help>
-		</Value>
-		<Value type="byte" index="204" genre="config" label="Ultraviolet Calibration" min="0" max="255" value="0">
-			<Help>The calibration value = standard value measure value. 
+    </Value>
+    <Value genre="config" index="204" label="Ultraviolet Calibration" max="255" min="0" type="byte" value="0">
+      <Help>The calibration value = standard value measure value. 
 			(the available value range is [-10, 10]).
 			If measure value =9 and the standard value = 8, so the calibration value= 8-9 = -1 (0xFE). 
 			If the measure value =7 and the standard value = 9, so the calibration value= 9-7 = 2 (0x02).  
 			</Help>
-		</Value>
-		<Value type="list" index="252" genre="config" label="Enable/disable Lock Configuration" units="" min="0" max="1" value="0" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="252" label="Enable/disable Lock Configuration" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
 				Enable/disable Lock Configuration
 			</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="1" />
-		</Value>
-		<Value type="list" index="255" genre="config" label="Reset To Factory Defaults" size="4" value="1" write_only="true">
-          		<Help>Reset to factory defaults</Help>
-          		<Item label="Reset to factory default setting" value="0"/>
-          		<Item label="Normal" value="1"/>
-          		<Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
-      		</Value>
-	</CommandClass>
-
-	<!-- the Device Doesn't support Get for Alarm Class -->
-	<CommandClass id="113" getsupported="false"/>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="LifeLine" />
-		</Associations>
-	</CommandClass>
-
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
+      <Help>Reset to factory defaults</Help>
+      <Item label="Reset to factory default setting" value="0"/>
+      <Item label="Normal" value="1"/>
+      <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
+    </Value>
+  </CommandClass>
+  <!-- the Device Doesn't support Get for Alarm Class -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/oomi/ft111.xml b/Config/oomi/ft111.xml
index 096e02cfd2..6ae0368435 100644
--- a/Config/oomi/ft111.xml
+++ b/Config/oomi/ft111.xml
@@ -3,7 +3,7 @@
 Oomi FT111 Nano Dimmer
 https://products.z-wavealliance.org/products/2765
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" index="3" genre="config" label="Over current protection" units="" min="0" max="1" size="1" value="1">
diff --git a/Config/options.xml b/Config/options.xml
index d9c4b00f2b..7d05169a9e 100644
--- a/Config/options.xml
+++ b/Config/options.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- To be effective, this file should be placed in the user data folder specified in the Options::Create method -->
-<Options xmlns='http://code.google.com/p/open-zwave/'>
+<Options xmlns='https://github.com/OpenZWave/open-zwave'>
   <Option name="logging" value="true" />
   <Option name="Associate" value="true" />
   <Option name="NotifyTransactions" value="false" />
@@ -16,4 +16,6 @@
   "available" usercode slot rather than retrieve every one -->
   <Option name="RefreshAllUserCodes" value="false" />
   <Option name="ThreadTerminateTimeout" value="5000" />
+  <!-- Language we should use for ValueID Labels and Help Text -->
+  <!-- <Option name="Language" value="fr" /> -->
 </Options>
diff --git a/Config/options.xsd b/Config/options.xsd
index a11dabc1d3..e0f5cf79dd 100644
--- a/Config/options.xsd
+++ b/Config/options.xsd
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
 <xs:schema
   xmlns:xs='http://www.w3.org/2001/XMLSchema'
-  targetNamespace='http://code.google.com/p/open-zwave/'
-  xmlns:Options='http://code.google.com/p/open-zwave/'
+  targetNamespace='https://github.com/OpenZWave/open-zwave'
+  xmlns:Options='https://github.com/OpenZWave/open-zwave'
   elementFormDefault='qualified'>
 
  <xs:element name='Options'>
diff --git a/Config/philio/pad02.xml b/Config/philio/pad02.xml
index ce8e56ef66..20f56da6e5 100644
--- a/Config/philio/pad02.xml
+++ b/Config/philio/pad02.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     philio / Zipato Smart Dimmer Socket E27
     https://products.z-wavealliance.org/products/2355
@@ -43,4 +43,4 @@
         </Associations>
     </CommandClass>
 
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/philio/pan03.xml b/Config/philio/pan03.xml
index b84b6461bf..584bff5ade 100644
--- a/Config/philio/pan03.xml
+++ b/Config/philio/pan03.xml
@@ -1,82 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- Philio: PAN03 Micromodule Single Switch -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="short" instance="1" index="1" genre="config" label="Watt meter report period" min="1" max="32767" value="720">
-			<Help>If the setting is configured for 1 hour (set value =720), the device will report its instant power consumption every 1 hour to Z-Wave Controller. Unit: 5 seconds.</Help>
-		</Value>
-
-		<Value type="short" instance="1" index="2" genre="config" label="kWh meter report period" min="1" max="32767" value="6">
-			<Help>If the setting is configured for 1hour (set value =6), the Micromodule will report its Accumulated Power Consumption (KW/h) every 1 hour to Z-Wave Controller. 10min.</Help>
-		</Value>
-
-		<Value type="short" instance="1" index="3" genre="config" label="Threshold of current load for Load Caution" min="10" max="1100" value="1100">
-			<Help>This is a warning when the current of load over the preset threshold value, if the setting value is 1100 (11A), when the load current of Relay1 over this value, Micromodule will send current meter report to warn the Z-Wave Controller. Unit: 0.01A </Help>
-		</Value>
-
-		<Value type="short" instance="1" index="4" genre="config" label="Threshold of KWh for Load Caution" min="10" max="10000" value="10000">
-			<Help>This is a warning when the KWh of load over the preset threshold value, if the setting value is 10000, when the Accumulated Power Consumption of Relay1 over this value, Micromodule will send KWH meter report to warn the Z-Wave Controller. Unit: 1KWh</Help>
-		</Value>
-
-		<Value type="list" instance="1" index="5" genre="config" label="Restore Switch State Mode" min="0" max="2" size="1" value="1">
-			<Help>Whenever the AC power return from lost, Micromodule will restore the switch state which could be 
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Watt meter report period" max="32767" min="1" type="short" value="720">
+      <Help>If the setting is configured for 1 hour (set value =720), the device will report its instant power consumption every 1 hour to Z-Wave Controller. Unit: 5 seconds.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="kWh meter report period" max="32767" min="1" type="short" value="6">
+      <Help>If the setting is configured for 1hour (set value =6), the Micromodule will report its Accumulated Power Consumption (KW/h) every 1 hour to Z-Wave Controller. 10min.</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Threshold of current load for Load Caution" max="1100" min="10" type="short" value="1100">
+      <Help>This is a warning when the current of load over the preset threshold value, if the setting value is 1100 (11A), when the load current of Relay1 over this value, Micromodule will send current meter report to warn the Z-Wave Controller. Unit: 0.01A </Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Threshold of KWh for Load Caution" max="10000" min="10" type="short" value="10000">
+      <Help>This is a warning when the KWh of load over the preset threshold value, if the setting value is 10000, when the Accumulated Power Consumption of Relay1 over this value, Micromodule will send KWH meter report to warn the Z-Wave Controller. Unit: 1KWh</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Restore Switch State Mode" max="2" min="0" size="1" type="list" value="1">
+      <Help>Whenever the AC power return from lost, Micromodule will restore the switch state which could be 
 				SWITCH OFF
 				LAST SWITCH STATE
 				SWITCH ON</Help>
-			<Item label="SWITCH OFF" value="0" />
-                        <Item label="LAST SWITCH STATE" value="1" />
-                        <Item label="SWITCH ON" value="2" />
-
-		</Value>
-
-		<Value type="byte" instance="1" index="6" genre="config" label="Manual ON/OFF Mode" min="0" max="1" value="0">
-			<Help>The On/Off function of S1, S2 and learn switch can be disabled or enabled by this parameter, default value is Enable. But the learning operation won't be affected. When manual On/Off function is disabled, the RF command can only switch On but not Off. This is useful function for keeping the device in switch on state.</Help>
-		</Value>
-
-		<Value type="byte" instance="1" index="7" genre="config" label="LED Indication Mode" min="1" max="3" value="1">
-			<Help> LED Indication Mode:
+      <Item label="SWITCH OFF" value="0"/>
+      <Item label="LAST SWITCH STATE" value="1"/>
+      <Item label="SWITCH ON" value="2"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Manual ON/OFF Mode" max="1" min="0" type="byte" value="0">
+      <Help>The On/Off function of S1, S2 and learn switch can be disabled or enabled by this parameter, default value is Enable. But the learning operation won't be affected. When manual On/Off function is disabled, the RF command can only switch On but not Off. This is useful function for keeping the device in switch on state.</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="LED Indication Mode" max="3" min="1" type="byte" value="1">
+      <Help> LED Indication Mode:
 				1: SHOW SWITCH STATE: When switch is on, LED is on. When switch is off, LED is off. The default setting is Show Switch State. :
 				2 :SHOW NIGHT MODE: When switch is on, LED is off. When switch is off, LED is on.
 				3 : ONE FLASH MODE: When the state of switch changes, LED will be on only one second, then LED keeps off.</Help>
-        		</Value>
-
-		<Value type="short" instance="1" index="8" genre="config" label="Auto off timer" min="0" max="32767" value="0">
-			<Help>Whenever Micromodule switches to on, the auto off timer begin to count down. After the timer decrease to zero, it will switch to off automatically. However if Auto off timer is set as 0, the auto off function will be disabled. The default setting is 0.</Help>
-		</Value>
-
-		<Value type="byte" instance="1" index="9" genre="config" label="RF Off Command Mode" min="0" max="3" value="0">
-			<Help>Whenever a switch off command, BASIC_SET, BINARY_SWITCH_SET, SWITCH_ALL_OFF, is received, it could be interpreted as 4 variety of commands: 
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Auto off timer" max="32767" min="0" type="short" value="0">
+      <Help>Whenever Micromodule switches to on, the auto off timer begin to count down. After the timer decrease to zero, it will switch to off automatically. However if Auto off timer is set as 0, the auto off function will be disabled. The default setting is 0.</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="RF Off Command Mode" max="3" min="0" type="byte" value="0">
+      <Help>Whenever a switch off command, BASIC_SET, BINARY_SWITCH_SET, SWITCH_ALL_OFF, is received, it could be interpreted as 4 variety of commands: 
 				0: SWITCH OFF:It switches to OFF state. The default setting is Switch Off. 
 				1: IGNORE:The switch off command will be ignored. 
 				2: SWITCH TOGGLE:It switches to the inverse of current state. 
 				3 :SWITCH ON:It switches to ON state</Help>
-             		</Value>
-
-		<Value type="byte" instance="1" index="10" genre="config" label="Edge Mode, Pulse mode or Edge-Toggle mode" min="1" max="3" value="1">
-			<Help>Manual switch S1 and S2 can set to Edge mode or Pulse mode or Edge-Toggle mode, default value is Edge mode.
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Edge Mode, Pulse mode or Edge-Toggle mode" max="3" min="1" type="byte" value="1">
+      <Help>Manual switch S1 and S2 can set to Edge mode or Pulse mode or Edge-Toggle mode, default value is Edge mode.
 				1: EDGE MODE: This mode is suitable for the bi-stable wall switch that has indicator point on the switch, and the same position correspond to same state of relay1. If the Micromodule relay change the state because of receiving Z-Wave RF command, it may need two times of change (switch on to off or switch off to on) to let relay back to the correspond state. Manual switch S2 is disabled in this mode. 
 				2: PULSE MODE: This mode is suitable for the toggle type wall switch to swap the state of Relay1. 
 				3 :EDGE-TOGGLE MODE: This mode is suitable for the normal bi-stable switch, wheneverchange the state of the wall switch will also swap the state of Relay1.</Help>
-			</Value>
-
-	</CommandClass>
-
-	<CommandClass id="96" mapping="endpoints" />
-
-	<!-- COMMAND_CLASS_BASIC does not respond to requests -->
-	<CommandClass id="32" action="remove" />
-
-	<!-- COMMAND_CLASS_ALARM does not respond to requests -->
-	<CommandClass id="113" action="remove" />
-			
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-		<Group index="1" max_associations="1" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
-
+    </Value>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC does not respond to requests -->
+  <CommandClass action="remove" id="32"/>
+  <!-- COMMAND_CLASS_ALARM does not respond to requests -->
+  <CommandClass action="remove" id="113"/>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/philio/pan04.xml b/Config/philio/pan04.xml
index 0a1f2bf752..6cc4b6ea35 100644
--- a/Config/philio/pan04.xml
+++ b/Config/philio/pan04.xml
@@ -1,52 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Philio: PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!-- Philio: PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement --><Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:0003:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/pan04.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/851/</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0001">PAN04-2</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://philio-tech.com/</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0001">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description"> This in-wall dual relay switch module is a transceiver which is a Z-Wave Plus™ enabled device and is fully compatible with any Z-Wave™ enabled network.  Mini size design let the module can easily hide itself into the wall box and that will be good for the house decoration. There are many kind of 
+application by using the module to switch AC power On and Off, one main application is the light control. The new smart relay calibration technology can reduce the inrush current caused by the load and let the module work perfectly with many kind of light like incandescent, fluorescent and LED light.
 
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="short" instance="1" index="1" genre="config" label="Watt meter report period" min="1" max="32000" value="720">
-			<Help>If the setting is configured for 1hour (set value =720), the device will report its instant power consumption every 1 hour to Z-Wave Controller. Unit: 5 seconds.</Help>
-		</Value>
-
-		<Value type="short" instance="1" index="2" genre="config" label="kWh meter report period" min="1" max="32000" value="6">
-			<Help>If the setting is configured for 1hour (set value =720), the device will report its power consumption in KWh every 1 hour to Z-Wave Controller. Unit: 5 seconds.</Help>
-		</Value>
-
-		<Value type="byte" instance="1" index="3" genre="config" label="Selected end point" min="0" max="3" value="1">
-			 <Help>1: Relay 1 and Relay 2. 2: Relay 1. 3: Relay 2</Help>
-		</Value>
-	
-		<Value type="byte" instance="1" index="4" genre="config" label="Edge or Pulse mode or Edge-Toggle mode" min="0" max="3" value="1">
-			<Help>Edge or Pulse mode or Edge-Toggle mode defines the operating mode of the externally connected switch. Default: Edge Mode</Help>
-			<Item label="Edge Mode" value="1" />
-			<Item label="Toggle Mode" value="2" />
-			<Item label="Edge/Toggle Mode" value="3" />
-		</Value>
-	
-		<Value type="short" instance="1" index="5" genre="config" label="Threshold of Watt for Load Caution" min="10" max="1500" value="1500">
-			 <Help>Threshold of Watt for Load Caution</Help>
-		</Value>
-
-		<Value type="short" instance="1" index="6" genre="config" label="Threshold of kWh for Load Caution" min="0" max="10000" value="10000">
-			 <Help>Threshold of kWh for Load Caution</Help>
-		</Value>
-	</CommandClass>
-
-	<CommandClass id="96" mapping="endpoints" />
-	
-	<!-- COMMAND_CLASS_BASIC does not respond to requests -->
-	<CommandClass id="32" action="remove" />
-
-	<!-- COMMAND_CLASS_ALARM does not respond to requests -->
-	<CommandClass id="113" action="remove" />
-			
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="1" label="Relay 1 and 2 together" />
-			<Group index="2" max_associations="1" label="Relay 1"/>
-			<Group index="3" max_associations="1" label="Relay 2"/>
-		</Associations>
-	</CommandClass>
+This in-wall switch module is able to detect Instant power wattage and overload current (7.5A) of connected light or appliances. When detecting overload state, the Module will be disabled and its On/Off button will be lockout of which LED will flash quickly. However, disconnect and re-connect the Module will reset its overload condition to normal status. 
+</MetaDataItem>
+    <MetaDataItem name="Name">In Wall Dual relay(1 way) switch module</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/820/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/851/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1148/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0012" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1148/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1.    Put your Z-Wave controller into inclusion mode by following the instructions provided by the controller manufacturer. 
+2.    Pressing INCLUDE_BUTTON three times within 2 seconds will enter inclusion mode. </MetaDataItem>
+    <MetaDataItem id="0012" name="Identifier" type="0001">PAN04-1A</MetaDataItem>
+    <MetaDataItem id="0012" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">This procedure should only be used in the event the primary controller is lost or otherwise inoperable.
 
+1.  Pressing INCLUDE_BUTTON three times within 2 seconds will enter inclusion mode. 
+2.  Within 1 second, press INCLUDE_BUTTON again for 5 seconds. 
+3.  IDs are excluded. 
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1148/PAN04-1-2-3A manual-20140918.pdf</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1.    Put your Z-Wave controller into exclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing INCLUDE_BUTTON three times within 2 seconds will enter exclusion mode. </MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Watt meter report period" max="32000" min="1" type="short" value="720">
+      <Help>If the setting is configured for 1hour (set value =720), the device will report its instant power consumption every 1 hour to Z-Wave Controller. Unit: 5 seconds.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="kWh meter report period" max="32000" min="1" type="short" value="6">
+      <Help>If the setting is configured for 1hour (set value =720), the device will report its power consumption in KWh every 1 hour to Z-Wave Controller. Unit: 5 seconds.</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Selected end point" max="3" min="0" type="byte" value="1">
+      <Help>1: Relay 1 and Relay 2. 2: Relay 1. 3: Relay 2</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Edge or Pulse mode or Edge-Toggle mode" max="3" min="0" type="byte" value="1">
+      <Help>Edge or Pulse mode or Edge-Toggle mode defines the operating mode of the externally connected switch. Default: Edge Mode</Help>
+      <Item label="Edge Mode" value="1"/>
+      <Item label="Toggle Mode" value="2"/>
+      <Item label="Edge/Toggle Mode" value="3"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Threshold of Watt for Load Caution" max="1500" min="10" type="short" value="1500">
+      <Help>Threshold of Watt for Load Caution</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Threshold of kWh for Load Caution" max="10000" min="0" type="short" value="10000">
+      <Help>Threshold of kWh for Load Caution</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC does not respond to requests -->
+  <CommandClass action="remove" id="32"/>
+  <!-- COMMAND_CLASS_ALARM does not respond to requests -->
+  <CommandClass action="remove" id="113"/>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Relay 1 and 2 together" max_associations="1"/>
+      <Group index="2" label="Relay 1" max_associations="1"/>
+      <Group index="3" label="Relay 2" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/philio/pan05.xml b/Config/philio/pan05.xml
new file mode 100644
index 0000000000..4877f23cd8
--- /dev/null
+++ b/Config/philio/pan05.xml
@@ -0,0 +1,81 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:0010:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/pan05.png</MetaDataItem>
+    <MetaDataItem id="0010" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1149/</MetaDataItem>
+    <MetaDataItem id="0010" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1.  Put your Z-Wave controller into exclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing Include button of PAN05 three times within 2 seconds will enter inclusion mode. </MetaDataItem>
+    <MetaDataItem name="Description">This in-wall switch module is a transceiver which is a security enabled device which based on Z-Wave Plus technology, and it is fully compatible with any Z-Wave™ enabled network. Mini size design let the module can easily hide itself into the wall box and that will be good for the house decoration. Since PAN05 supports Security Command Class, it can learn with Secured controller. Its functionality and supported command classes is identical when included as a secure and non-secure device. 
+
+There are many kind of application by using the module to switch Load On and Off, one main application is the light control. If connect the COM terminal directly to AC Line  terminal,  the  new  smart  relay  calibration  technology  can  reduce  the  inrush current caused by the load and let the module work perfectly with many kind of light like  incandescent,  fluorescent  and  LED  light.  This  module  can  also  connect  to alternative  power  supply  like  DC  12V  to  switch  on/off  12V  MR-16  light.
+
+</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1.  Put your Z-Wave controller into inclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing Include button of PAN05 three times within 2 seconds will enter inclusion mode. 
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">This procedure should only be used in the event that the primary controller is lost or otherwise inoperable.
+1.  Pressing Include button of PAN05 three times within 2 seconds will enter inclusion mode. 
+2.  Within 1 second, press Include button of PAN05 again for 5 seconds. 
+3.  IDs are excluded. </MetaDataItem>
+    <MetaDataItem name="Name">In Wall Single relay (1 way) switch  module</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1149/PAN05-1-2-3A manual-20140923.pdf</MetaDataItem>
+    <MetaDataItem id="0010" name="Identifier" type="0001">PAN05-1A</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1149/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Inputs S1 and S2 configuration" max="3" min="1" size="1" type="list" value="1">
+      <Help>To match different kind of external switches, the inputs S1 and S2 can be set to either Edge Mode, Pulse Mode or Edge/Toggle Mode. Edge Mode: The Position of the external switch determines the switching state of the relay. After a wireless switching command it may be needed to operate the switch twice to return to the direct relation of switch position and relay state. Toggle Mode: Each ON-Position of the external switch will toggle the state of the relays. This mode is particularly suited for mono-stable switches. Edge/Toggle-Mode: Every change of the state of the external switch results in a change of the relay state. Default setting: Edge Mode</Help>
+      <Item label="Edge Mode" value="1"/>
+      <Item label="Pulse Mode" value="2"/>
+      <Item label="Edge/Toggle Mode" value="3"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Switch state after cycling power" max="2" min="0" size="1" type="list" value="1">
+      <Help>When the AC power returns, e.g. after a power failure, the relay states can be set to Off, On or to retain it's last state . Default setting: Retain last state</Help>
+      <Item label="Switch Off" value="0"/>
+      <Item label="Retain last state" value="1"/>
+      <Item label="Switch On" value="2"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Manual On/Off mode" max="1" min="0" size="1" type="list" value="1">
+      <Help>The On/Off function of S1,S2 and learn switch can be disabled or enabled by this parameter, default value is Enable. But the learning operation wont be affected. When manual On/Off function is disabled, the RF command can only switch On but not Off. This is useful function for keeping the device in switch on state</Help>
+      <Item label="Disable manual On/Off" value="0"/>
+      <Item label="Enable manual On/Off" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="LED indication mode" max="3" min="1" size="1" type="list" value="1">
+      <Help>Controls the light indicator in the device
+               Switch State: When switch is on, LED is on. When switch is off, LED is off. (default)
+               Night mode: When switch is on, LED is off. When switch is off, LED is on.
+               One flash: When the device changes state, the LED illuminates for one second.
+         </Help>
+      <Item label="Switch state" value="1"/>
+      <Item label="Night mode" value="2"/>
+      <Item label="One flash" value="3"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Auto off" max="32767" min="0" type="short" value="0">
+      <Help>After being switched on, the relays can be set to automatically switch off after the specified time. Available settings: 1-32767: time in seconds, 0: function disabled. Default setting: 0</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Z-Wave Off command action" max="3" min="0" size="1" type="list" value="0">
+      <Help>Action when a Z-Wave Off command is received. Default setting: Switch Off</Help>
+      <Item label="Switch Off" value="0"/>
+      <Item label="Ignore" value="1"/>
+      <Item label="Toggle switch" value="2"/>
+      <Item label="Switch On" value="3"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM does not respond to requests -->
+  <CommandClass action="remove" id="113"/>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label=" Report ON/OFF status of Relay" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/philio/pan06.xml b/Config/philio/pan06.xml
index 8161611cee..90ebf6a7dc 100644
--- a/Config/philio/pan06.xml
+++ b/Config/philio/pan06.xml
@@ -1,50 +1,80 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
-   <!-- Configuration Parameters -->
-   <CommandClass id="112">
-      <Value type="list" genre="config" instance="1" index="1" label="Selected Relay" value="3" size="1">
-         <Help>If the controller treats this device as a single channel relay/switch, you may select which one of the relays that will report and respond to commands. Default setting: Relay 1 + Relay 2</Help>
-         <Item label="Relay 1" value="1" />
-         <Item label="Relay 2" value="2" />
-         <Item label="Relay 1 + Relay 2" value="3" />
-      </Value>
-      <Value type="list" genre="config" instance="1" index="2" label="Inputs S1 and S2 configuration" value="1" size="1">
-         <Help>To match different kind of external switches, the inputs S1 and S2 can be set to either Edge Mode, Pulse Mode or Edge/Toggle Mode. Edge Mode: The Position of the external switch determines the switching state of the relay. After a wireless switching command it may be needed to operate the switch twice to return to the direct relation of switch position and relay state. Toggle Mode: Each ON-Position of the external switch will toggle the state of the relays. This mode is particularly suited for mono-stable switches. Edge/Toggle-Mode: Every change of the state of the external switch results in a change of the relay state. Default setting: Edge Mode</Help>
-         <Item label="Edge Mode" value="1" />
-         <Item label="Pulse Mode" value="2" />
-         <Item label="Edge/Toggle Mode" value="3" />
-      </Value>
-      <Value type="list" genre="config" instance="1" index="3" label="Switch state after cycling power" value="1" size="1">
-         <Help>When the AC power returns, e.g. after a power failure, the relay states can be set to Off, On or to retain it's last state . Default setting: Retain last state</Help>
-         <Item label="Switch Off" value="0" />
-         <Item label="Retain last state" value="1" />
-         <Item label="Switch On" value="2" />
-      </Value>
-      <Value type="short" genre="config" instance="1" index="4" label="Auto off" min="0" max="32767" value="0">
-         <Help>After being switched on, the relays can be set to automatically switch off after the specified time. Available settings: 1-32767: time in seconds, 0: function disabled. Default setting: 0</Help>
-      </Value>
-      <Value type="list" genre="config" instance="1" index="5" label="Z-Wave Off command action" value="0" size="1">
-         <Help>Action when a Z-Wave Off command is received. Default setting: Switch Off</Help>
-         <Item label="Switch Off" value="0" />
-         <Item label="Ignore" value="1" />
-         <Item label="Toggle switch" value="2" />
-         <Item label="Switch On" value="3" />
-      </Value>
-      <Value type="list" genre="config" instance="1" index="6" label="Existence of endpoint 3 Action" value="1" size="1">
-         <Help>The endpoint3 of Multi-Channel Command Class is related to relay1 and relay2. It may be redundant for the need to control relay1 or relay2 individually. When the Existence of Endpoint3 is set as 0, the endpoint3 of Multi-Channel Command Class will be disabled.  Default setting: Endpoint3 disable</Help>
-         <Item label="Endpoint3 disable" value="0" />
-         <Item label="Endpoint3 exists" value="1" />
-      </Value>
-   </CommandClass>
-   <CommandClass id="96" mapping="endpoints" />
-   <!-- COMMAND_CLASS_ALARM does not respond to requests -->
-   <CommandClass id="113" action="remove" />
-   <!-- Association Groups -->
-   <CommandClass id="133">
-      <Associations num_groups="3">
-         <Group index="1" max_associations="1" label="Relay 1 and 2 together" />
-         <Group index="2" max_associations="1" label="Relay 1" />
-         <Group index="3" max_associations="1" label="Relay 2" />
-      </Associations>
-   </CommandClass>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:0004:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/pan06.png</MetaDataItem>
+    <MetaDataItem id="0004" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/854/</MetaDataItem>
+    <MetaDataItem id="0004" name="Identifier" type="0001">PAN06-2</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Switch Module</MetaDataItem>
+    <MetaDataItem id="0004" name="FrequencyName" type="0001">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">Features:
+- World first two relay Z-wave 400 series module in a very slim case.
+- Input voltage AC100~240V / DC24~60V.
+- Adopt Z-Wave protocol to secure the success of wireless two way communication.
+- Slim design, easy install.
+- Adopt newest Z-wave 400series chip, support multichannel operation and higher data rate (9.6/40/100kbps).
+- Resistive load 1500W X 2.
+- Two dry contact relay.
+- Z-Wave V6.02
+- Very low electricity consumption, meet Europe year 2012 energy-related products requirement directive 2009/125/EC no. 1275/2008.
+- LVD:EN 60669-2-1:2004+A1:2009+A12:2010,
+- EN 60669-2-2 :2006
+- EN 60669-1:1999+A1:2002+A2:2008+IS1:2009
+- R&amp;TTE: EN 301489, EN 300200,</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/822/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/854/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductPage">http://philio-tech.com/</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Selected Relay" size="1" type="list" value="3">
+      <Help>If the controller treats this device as a single channel relay/switch, you may select which one of the relays that will report and respond to commands. Default setting: Relay 1 + Relay 2</Help>
+      <Item label="Relay 1" value="1"/>
+      <Item label="Relay 2" value="2"/>
+      <Item label="Relay 1 + Relay 2" value="3"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Inputs S1 and S2 configuration" size="1" type="list" value="1">
+      <Help>To match different kind of external switches, the inputs S1 and S2 can be set to either Edge Mode, Pulse Mode or Edge/Toggle Mode. Edge Mode: The Position of the external switch determines the switching state of the relay. After a wireless switching command it may be needed to operate the switch twice to return to the direct relation of switch position and relay state. Toggle Mode: Each ON-Position of the external switch will toggle the state of the relays. This mode is particularly suited for mono-stable switches. Edge/Toggle-Mode: Every change of the state of the external switch results in a change of the relay state. Default setting: Edge Mode</Help>
+      <Item label="Edge Mode" value="1"/>
+      <Item label="Pulse Mode" value="2"/>
+      <Item label="Edge/Toggle Mode" value="3"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Switch state after cycling power" size="1" type="list" value="1">
+      <Help>When the AC power returns, e.g. after a power failure, the relay states can be set to Off, On or to retain it's last state . Default setting: Retain last state</Help>
+      <Item label="Switch Off" value="0"/>
+      <Item label="Retain last state" value="1"/>
+      <Item label="Switch On" value="2"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Auto off" max="32767" min="0" type="short" value="0">
+      <Help>After being switched on, the relays can be set to automatically switch off after the specified time. Available settings: 1-32767: time in seconds, 0: function disabled. Default setting: 0</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Z-Wave Off command action" size="1" type="list" value="0">
+      <Help>Action when a Z-Wave Off command is received. Default setting: Switch Off</Help>
+      <Item label="Switch Off" value="0"/>
+      <Item label="Ignore" value="1"/>
+      <Item label="Toggle switch" value="2"/>
+      <Item label="Switch On" value="3"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Existence of endpoint 3 Action" size="1" type="list" value="1">
+      <Help>The endpoint3 of Multi-Channel Command Class is related to relay1 and relay2. It may be redundant for the need to control relay1 or relay2 individually. When the Existence of Endpoint3 is set as 0, the endpoint3 of Multi-Channel Command Class will be disabled.  Default setting: Endpoint3 disable</Help>
+      <Item label="Endpoint3 disable" value="0"/>
+      <Item label="Endpoint3 exists" value="1"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM does not respond to requests -->
+  <CommandClass action="remove" id="113"/>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Relay 1 and 2 together" max_associations="1"/>
+      <Group index="2" label="Relay 1" max_associations="1"/>
+      <Group index="3" label="Relay 2" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/philio/pan07.xml b/Config/philio/pan07.xml
index 2a0bc95185..3f8cd1af23 100644
--- a/Config/philio/pan07.xml
+++ b/Config/philio/pan07.xml
@@ -1,66 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- Philio: PAN07-1 TWO SPDT Switch module with meter. -->
 <!-- From: http://telldus.se/wp-content/uploads/311664-PAN07-1-2-3A-manual-20141028.pdf -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="short" instance="1" index="1" genre="config" label="Watt Meter Report Period" min="1" max="32000" value="720">
-			<Help>If the setting is configured for 1hour (set value =720), the device will report its instant power consumption every 1 hour to Z-Wave Controller. Unit: 5 seconds.</Help>
-		</Value>
-
-		<Value type="short" instance="1" index="2" genre="config" label="kWh meter report period" min="1" max="32000" value="6">
-			<Help>If the setting is configured for 1hour (set value =6), the device will report its power consumption in KWh every 1 hour to Z-Wave Controller. Unit: 10 minutes.</Help>
-		</Value>
-
-		<Value type="list" instance="1" index="3" genre="config" label="Selected end point" min="1" max="3" value="1" size="1">
-			<Help>Selected end points</Help>
-			<Item label="Relay 1 and Relay 2" value="1" />
-			<Item label="Relay 1" value="2" />
-			<Item label="Relay 2" value="3" />
-		</Value>
-
-		<Value type="list" instance="1" index="4" genre="config" label="Edge or Pulse mode or Edge-Toggle mode" min="1" max="3" value="1" size="1">
-			<Help>Edge or Pulse mode or Edge-Toggle mode defines the operating mode of the externally connected switch. Default: Edge Mode</Help>
-			<Item label="Edge Mode" value="1" />
-			<Item label="Toggle Mode" value="2" />
-			<Item label="Edge/Toggle Mode" value="3" />
-		</Value>
-
-		<Value type="short" instance="1" index="5" genre="config" label="Threshold of Current for Load Caution" min="10" max="600" value="600">
-			<Help>Threshold of Current for Load Caution. Unit 0.01A</Help>
-		</Value>
-
-		<Value type="short" instance="1" index="6" genre="config" label="Threshold of kWh for Load Caution" min="0" max="10000" value="10000">
-			 <Help>Threshold of kWh for Load Caution. Unit 1KWh</Help>
-		</Value>
-
-		<Value type="list" instance="1" index="7" genre="config" label="Relay control mode" min="1" max="2" value="1" size="1">
-		        <Help>Relay control mode. Default: Power mode</Help>
-		        <Item label="By measuring 2w of power as 'On'." value="1" />
-			<Item label="Directly" value="2" />
-		</Value>
-		<Value type="list" instance="1" index="8" genre="config" label="Restore relay state mode" min="0" max="2" value="1" size="1">
-			<Help>Restore switch state mode</Help>
-			<Item label="NC terminal" value="0" />
-                        <Item label="Last relay switch state" value="1" />
-                        <Item label="NO terminal" value="2" />
-                </Value>
-		<Value type="list" instance="1" index="9" genre="config" label="Existence of endpoint 3" min="1" max="2" value="1" size="1">
-			<Help>Whether endpoint 3 exists.</Help>
-			<Item label="Endpoint 3 exists" value="1" />
-			<Item label="No Endpoint 3" value="2" />
-		</Value>
-	</CommandClass>
-
-	<CommandClass id="96" mapping="endpoints" />
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-	        <Associations num_groups="3">
-			<Group index="1" max_associations="1" label="Relay 1 and 2 together" />
-			<Group index="2" max_associations="1" label="Relay 1"/>
-			<Group index="3" max_associations="1" label="Relay 2"/>
-		</Associations>
-	</CommandClass>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Watt Meter Report Period" max="32000" min="1" type="short" value="720">
+      <Help>If the setting is configured for 1hour (set value =720), the device will report its instant power consumption every 1 hour to Z-Wave Controller. Unit: 5 seconds.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="kWh meter report period" max="32000" min="1" type="short" value="6">
+      <Help>If the setting is configured for 1hour (set value =6), the device will report its power consumption in KWh every 1 hour to Z-Wave Controller. Unit: 10 minutes.</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Selected end point" max="3" min="1" size="1" type="list" value="1">
+      <Help>Selected end points</Help>
+      <Item label="Relay 1 and Relay 2" value="1"/>
+      <Item label="Relay 1" value="2"/>
+      <Item label="Relay 2" value="3"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Edge or Pulse mode or Edge-Toggle mode" max="3" min="1" size="1" type="list" value="1">
+      <Help>Edge or Pulse mode or Edge-Toggle mode defines the operating mode of the externally connected switch. Default: Edge Mode</Help>
+      <Item label="Edge Mode" value="1"/>
+      <Item label="Toggle Mode" value="2"/>
+      <Item label="Edge/Toggle Mode" value="3"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Threshold of Current for Load Caution" max="600" min="10" type="short" value="600">
+      <Help>Threshold of Current for Load Caution. Unit 0.01A</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Threshold of kWh for Load Caution" max="10000" min="0" type="short" value="10000">
+      <Help>Threshold of kWh for Load Caution. Unit 1KWh</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Relay control mode" max="2" min="1" size="1" type="list" value="1">
+      <Help>Relay control mode. Default: Power mode</Help>
+      <Item label="By measuring 2w of power as 'On'." value="1"/>
+      <Item label="Directly" value="2"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Restore relay state mode" max="2" min="0" size="1" type="list" value="1">
+      <Help>Restore switch state mode</Help>
+      <Item label="NC terminal" value="0"/>
+      <Item label="Last relay switch state" value="1"/>
+      <Item label="NO terminal" value="2"/>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Existence of endpoint 3" max="2" min="1" size="1" type="list" value="1">
+      <Help>Whether endpoint 3 exists.</Help>
+      <Item label="Endpoint 3 exists" value="1"/>
+      <Item label="No Endpoint 3" value="2"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Relay 1 and 2 together" max_associations="1"/>
+      <Group index="2" label="Relay 1" max_associations="1"/>
+      <Group index="3" label="Relay 2" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/philio/pan08.xml b/Config/philio/pan08.xml
index 3c6529dc45..a39feca415 100644
--- a/Config/philio/pan08.xml
+++ b/Config/philio/pan08.xml
@@ -1,37 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Philio: PAN08-1 In Wall Roller Shutter Controller with Power Measurement -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="short" instance="1" index="1" genre="config" label="Watt meter report period" min="1" max="32767" value="720">
-			<Help>Watt Meter Report Period. Unit: 5 seconds.</Help>
-		</Value>
-
-		<Value type="short" instance="1" index="2" genre="config" label="kWh meter report period" min="1" max="32767" value="6">
-			<Help>kWH Meter Report Period. Unit: 10 minutes.</Help>
-		</Value>
-
-		<Value type="short" instance="1" index="3" genre="config" label="Threshold of Watt for Load Caution" min="10" max="1100" value="1100">
-			 <Help>Threshold of Watt for Load Caution. Unit: 1 watt</Help>
-		</Value>
-
-		<Value type="short" instance="1" index="4" genre="config" label="Threshold of kWh for Load Caution" min="1" max="10000" value="10000">
-			 <Help>Threshold of kWH for Load Caution. Unit: 1 kWH</Help>
-		</Value>
-
-		<Value type="byte" instance="1" index="5" genre="config" label="External switch type" min="1" max="2" value="1">
-			 <Help>External switch type: 1-> One Push button, 2->Two Push button</Help>
-		</Value>
-
-		<Value type="byte" instance="1" index="6" genre="config" label="Level report mode" min="1" max="2" value="1">
-			 <Help>Level report mode: 1-> Report destination level in 5s, 2-> Report 10 percent level while running</Help>
-		</Value>
-	</CommandClass>
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-
+<!-- Philio: PAN08-1 In Wall Roller Shutter Controller with Power Measurement --><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:0006:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/pan08.png</MetaDataItem>
+    <MetaDataItem id="0006" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/891/</MetaDataItem>
+    <MetaDataItem id="0006" name="FrequencyName" type="0001">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.philio-tech.com/p_switch.htm</MetaDataItem>
+    <MetaDataItem name="Description">The in-wall Roller Shutter Controller is designed to switch rise/lower roller shutter connected to its terminals using radio waves, controllers and a push button directly connected to this Roller Controller. 
+This in-wall Roller Shutter Controller is a transceiver which is a Z-Wave Plus™
+ enabled device and is fully compatible with any Z-Wave™ enabled network. Slim design let the Controller can easily hide itself into the wall box and that will be good for the house decoration.   
+The new smart relay calibration technology can reduce the inrush current caused by the load and let the module work perfectly with many kind of Roller Shutter.     
+This in-wall Roller Shutter Controller is able to detect position of the Shutter by using the patterned power measuring method, so it can be remote controlled not only fully up or down, but also can be adjusted to ex. 30% or 50%.  And  when  manual controlled by push button, the controller also can memorize the position and send the new shutter position to its controller (ex. IP-Gateway). </MetaDataItem>
+    <MetaDataItem name="Name">Roller shutter controller</MetaDataItem>
+    <MetaDataItem id="0006" name="Identifier" type="0001">PAN08-2</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/880/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/891/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1164/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0015" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1164/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Use this procedure only in the event that the primary controller is lost or otherwise inoperable. 
+1. Pressing Include button three times within 2 seconds will enter inclusion mode.
+2.  Within 1 second, press Include button again for 5 seconds. </MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1164/PAN08-1A manual-20141027.doc</MetaDataItem>
+    <MetaDataItem id="0015" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1.  Put your Z-Wave controller into inclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing Include button three times within 2 seconds will enter inclusion mode. </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1.  Put your Z-Wave controller into exclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing Include button three times within 2 seconds will enter exclusion mode. </MetaDataItem>
+    <MetaDataItem id="0015" name="Identifier" type="0001">PAN08-1A</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Watt meter report period" max="32767" min="1" type="short" value="720">
+      <Help>Watt Meter Report Period. Unit: 5 seconds.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="kWh meter report period" max="32767" min="1" type="short" value="6">
+      <Help>kWH Meter Report Period. Unit: 10 minutes.</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Threshold of Watt for Load Caution" max="1100" min="10" type="short" value="1100">
+      <Help>Threshold of Watt for Load Caution. Unit: 1 watt</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Threshold of kWh for Load Caution" max="10000" min="1" type="short" value="10000">
+      <Help>Threshold of kWH for Load Caution. Unit: 1 kWH</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="External switch type" max="2" min="1" type="byte" value="1">
+      <Help>External switch type: 1-> One Push button, 2->Two Push button</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Level report mode" max="2" min="1" type="byte" value="1">
+      <Help>Level report mode: 1-> Report destination level in 5s, 2-> Report 10 percent level while running</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/philio/pan11-1.xml b/Config/philio/pan11-1.xml
new file mode 100644
index 0000000000..b7ad1a0d70
--- /dev/null
+++ b/Config/philio/pan11-1.xml
@@ -0,0 +1,27 @@
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/pan11-1.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/855/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">PAN11-4</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">Features:
+- Higher RF output power (+2.5dBm output power as compared to -2.5dBm 300 series Z-wave module) to enhance the communication range
+- Adopt Z-Wave protocol to secure the success of wireless two way communication
+- Easy install
+- Very low no load power consumption, meet Europe year 2012 energy-related products requirement directive 2009/125/EC no. 1275/2008
+- Resistive load 1400W
+- Overload protection
+- Voltage, Current, Power factor, Instant power Wattage and Accumulated power consumption KWh report
+- Z-Wave V6.02
+- UL, FCC part15B+C LVD</MetaDataItem>
+    <MetaDataItem name="Name">Smart Energy Plug In Switch</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/780/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/783/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/784/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/855/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductPage">http://philio-tech.com/</MetaDataItem>
+  </MetaData>
+</Product>
diff --git a/Config/philio/pan11.xml b/Config/philio/pan11.xml
index 1343201e31..ade7b0d63c 100644
--- a/Config/philio/pan11.xml
+++ b/Config/philio/pan11.xml
@@ -1,62 +1,87 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Philio Tech: PAN11-1B Plug-in Switch plus Power Meter -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:0011:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/pan11.png</MetaDataItem>
+    <MetaDataItem id="0011" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1088/</MetaDataItem>
+    <MetaDataItem id="0011" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">(Use this procedure only in the event that the primary controller is lost or otherwise inoperable.)
+
+1.  Pressing On/Off button three times within 2 seconds will enter inclusion mode on the switch.
+2.  Within 1 second, press On/Off button again for 5 seconds. 
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1088/PAN11-1B manual-20140816.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1.  Put your Z-Wave controller into inclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing On/Off button three times within 2 seconds will enter inclusion 
+     mode on the switch. </MetaDataItem>
+    <MetaDataItem name="Name">Smart Energy Plug In Switch</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1.  Put your Z-Wave controller into exclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing On/Off button three times within 2 seconds will enter exclusion 
+     mode on the switch. </MetaDataItem>
+    <MetaDataItem id="0011" name="Identifier" type="0001">PAN11-1A</MetaDataItem>
+    <MetaDataItem name="Description">This plug-in ON/OFF switch PAN11 is a security enabled wireless switch, based on Z-Wave  Plus™  technology.  Z-Wave  Plus™  enabled  devices  displaying  the  Z-Wave Plus™ logo can also be used with it regardless of the manufacturer, and can also be used in other manufacturer’s Z-Wave™ enabled networks. Remote On/Off control of the  connected  load  is  possible  with  other  manufacturer’s  wireless controller.  Each switch is designed to act as a repeater. Repeaters will re-transmit the RF signal to ensure  that  the  signal  is  received  by  its  intended  destination  by  routing  the  signal around obstacles and radio dead spots. Because PAN11 supports Security Command Class, it can learn with Secured controller. Its functionality and supported command classes is identical when included as a secure and non-secure device. 
+ 
+This  plug-in  ON/OFF  switch  is  able  to  detect  instance  wattage  (3000W/CE/CN, 1500W/UL/TW/JP)  and  overload  current  (14.5A)  of  connected  lights  or  appliances. When detecting overload state, the Switch will be disabled and its On/Off button will be  lockout  of  which  LED  will  flash  quickly.    However,  unplug  and  re-connect  the switch will reset its overload condition to normal status. 
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1088/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Philio Tech: PAN11-1B Plug-in Switch plus Power Meter -->
 
     <!-- Configuration  -->
-    <CommandClass id="112">
-        <Value type="short" genre="config" instance="1" index="1" label="Watt Meter Report Period" units="seconds" size="2" min="1" max="32767" value="720">
-            <Help>If the setting is configured for 1 hour(set value=720), the device will report its instant power consumption every 1 hour to Z_Wave controller. Unit: 5 secs, Min: 1, Max: 32767, Default: 720</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="2" label="KWH Meter Report Period" units="minutes" size="2" min="1" max="32767" value="6">
-            <Help>If the setting is configured for 1hour (set value =6), the PAN11 will report its Accumulated Power Consumption (KW/h) every 1 hour to Group1 node. The maximum interval to report its Accumulated Power Consumption (KW/h) is 227.55 days (10min*32767/1440=227.55 days).</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="3" label="Thereshold of current for Load Caution" units="ampere" size="2" min="10" max="1300" value="1300">
-            <Help>This is a warning when the current of load over the preset threshold value, if the setting value is 1300, when the load current of Relay1 over this value, PAN11 will send current meter report to warn the Group1 node, the Range of the setting value is from 10 to 1300,and the default value is 1300.</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="4" label="Thereshold of KWh for Load Caution" units="KWh" size="2" min="1" max="10000" value="10000">
-            <Help>This is a warning when the KWh of load over the preset threshold value, If the setting value is 10000, when the Accumulated Power Consumption of Relay1 over this value, PAN11 will send KWH meter report to warn the Group1 node, minimum value is 1KWh and default value is 10000 kWh.</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="5" label="Restore switch state mode" min="0" max="2" size="1" value="1">
-            <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Watt Meter Report Period" max="32767" min="1" size="2" type="short" units="seconds" value="720">
+      <Help>If the setting is configured for 1 hour(set value=720), the device will report its instant power consumption every 1 hour to Z_Wave controller. Unit: 5 secs, Min: 1, Max: 32767, Default: 720</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="KWH Meter Report Period" max="32767" min="1" size="2" type="short" units="minutes" value="6">
+      <Help>If the setting is configured for 1hour (set value =6), the PAN11 will report its Accumulated Power Consumption (KW/h) every 1 hour to Group1 node. The maximum interval to report its Accumulated Power Consumption (KW/h) is 227.55 days (10min*32767/1440=227.55 days).</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Thereshold of current for Load Caution" max="1300" min="10" size="2" type="short" units="ampere" value="1300">
+      <Help>This is a warning when the current of load over the preset threshold value, if the setting value is 1300, when the load current of Relay1 over this value, PAN11 will send current meter report to warn the Group1 node, the Range of the setting value is from 10 to 1300,and the default value is 1300.</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Thereshold of KWh for Load Caution" max="10000" min="1" size="2" type="short" units="KWh" value="10000">
+      <Help>This is a warning when the KWh of load over the preset threshold value, If the setting value is 10000, when the Accumulated Power Consumption of Relay1 over this value, PAN11 will send KWH meter report to warn the Group1 node, minimum value is 1KWh and default value is 10000 kWh.</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Restore switch state mode" max="2" min="0" size="1" type="list" value="1">
+      <Help>
                 Whenever the AC power return from lost, PAN11 will restore the switch state which could be SWITCH OFF, LAST SWITCH STATE, SWITCH ON. The default setting is LAST SWITCH STATE.
             </Help>
-            <Item label="Switch Off" value="0"/>
-            <Item label="Last Switch State" value="1"/>
-            <Item label="Switch On" value="2"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="6" label="Mode of Switch Off function" min="0" max="1" size="1" value="1">
-            <Help>
+      <Item label="Switch Off" value="0"/>
+      <Item label="Last Switch State" value="1"/>
+      <Item label="Switch On" value="2"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Mode of Switch Off function" max="1" min="0" size="1" type="list" value="1">
+      <Help>
                 When the mode of switch On/Off is set to 0, any command of switch off will be disabled and the On/Off function of include button will be disabled. The default setting is enable mode. When manual On/Off function is disabled, the RF command can only switch On but not Off. This is useful function for keeping the device in switch on state.
             </Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="7" label="LED indication mode" min="1" max="3" size="1" value="1">
-            <Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="LED indication mode" max="3" min="1" size="1" type="list" value="1">
+      <Help>
                 Show Switch State:When switch is on, LED is on. When switch is off, LED is off. The default setting is Show Switch State. Show Night mode:When switch is on, LED is off. When switch is off, LED is on. One Flash mode:When the state of switch changes, LED will be on only one second, then LED keeps off.
             </Help>
-            <Item label="Switch state" value="1"/>
-            <Item label="Night mode" value="2"/>
-            <Item label="One flash" value="3"/>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="8" label="Auto off timer" units="seconds" size="2" min="0" max="32767" value="0">
-            <Help>Whenever PAN11 switches to on, the auto off timer begin to count down. After the timer decrease to zero, it will switch to off automatically. However if Auto off timer is set as 0, the auto off function will be disabled. The default setting is 0.</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="9" label="RF off command mode" min="0" max="3" size="1" value="0">
-            <Help>
+      <Item label="Switch state" value="1"/>
+      <Item label="Night mode" value="2"/>
+      <Item label="One flash" value="3"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Auto off timer" max="32767" min="0" size="2" type="short" units="seconds" value="0">
+      <Help>Whenever PAN11 switches to on, the auto off timer begin to count down. After the timer decrease to zero, it will switch to off automatically. However if Auto off timer is set as 0, the auto off function will be disabled. The default setting is 0.</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="RF off command mode" max="3" min="0" size="1" type="list" value="0">
+      <Help>
                 Whenever a switch off command (BASIC_SET, BINARY_SWITCH_SET, SWITCH_ALL_OFF) is received, it could be interpreted as 4 variety of commands. Switch Off: It switches to OFF state. The default setting is Switch Off. Ignore: The switch off command will be ignored. Switch Toggle: It switches to the inverse of current state. Switch On: It switches to ON state.
             </Help>
-            <Item label="Switch off" value="0"/>
-            <Item label="Ignore" value="1"/>
-            <Item label="Switch toggle" value="2"/>
-            <Item label="Switch on" value="3"/>
-        </Value>
-    </CommandClass>
-
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="1" label="load vary over 5% or stage has changed" />
-        </Associations>
-    </CommandClass>
+      <Item label="Switch off" value="0"/>
+      <Item label="Ignore" value="1"/>
+      <Item label="Switch toggle" value="2"/>
+      <Item label="Switch on" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="load vary over 5% or stage has changed" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/philio/pan16.xml b/Config/philio/pan16.xml
index 2d87f9211f..794cc1aca8 100644
--- a/Config/philio/pan16.xml
+++ b/Config/philio/pan16.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     Philio Tech: PAN16 Plug-in Switch plus Power Meter
     http://products.z-wavealliance.org/products/2001
@@ -66,4 +66,4 @@
             <Group index="1" max_associations="1" label="Lifeline"/>
         </Associations>
     </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/philio/phpab01.xml b/Config/philio/phpab01.xml
index 285d2a4d37..9a365c033d 100644
--- a/Config/philio/phpab01.xml
+++ b/Config/philio/phpab01.xml
@@ -1,37 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- PH-PAB01.eu Micromodule Energy Meter  -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Remove COMMAND_CLASS_BASIC -->
-    <CommandClass id="32" action="remove"/>
-    <!-- Map endpoints to instances -->
-    <CommandClass id="96" mapping="endpoints"/>
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="short" instance="1" index="1" genre="config" label="Watt Meter Report Period" units="5 sec" min="1" max="32767" value="720">
-            <Help></Help>
-        </Value>
-        <Value type="short" instance="1" index="2" genre="config" label="kWh meter report period" units="5 sec" min="1" max="32767" value="720">
-            <Help></Help>
-        </Value>
-        <Value type="list" instance="1" index="3" genre="config" label="Selected End Point" size="1" min="1" max="3" value="1">
-            <Help></Help>
-            <Item label="CT1 and CT2" value="1"/>
-            <Item label="CT1" value="2"/>
-            <Item label="CT2" value="3"/>
-        </Value>
-        <Value type="short" instance="1" index="4" genre="config" label="Threshold of Current for Load Caution" units="0.01 Amp" min="10" max="750" value="750">
-            <Help></Help>
-        </Value>
-        <Value type="short" instance="1" index="5" genre="config" label="Threshold of KWH for Load Caution" units="KWh" min="1" max="10000" value="10000">
-            <Help></Help>
-        </Value>
-    </CommandClass>
-    <CommandClass id="133">
-        <Associations num_groups="3">
-            <Group index="1" max_associations="1" label="Report CT1 and CT2"/>
-            <Group index="2" max_associations="5" label="Report CT1" auto="true"/>
-            <Group index="3" max_associations="5" label="Report CT2" auto="true"/>
-        </Associations>
-    </CommandClass>
-    <CommandClass id="142" ForceInstances="true"/>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Watt Meter Report Period" max="32767" min="1" type="short" units="5 sec" value="720">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="kWh meter report period" max="32767" min="1" type="short" units="5 sec" value="720">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Selected End Point" max="3" min="1" size="1" type="list" value="1">
+      <Help></Help>
+      <Item label="CT1 and CT2" value="1"/>
+      <Item label="CT1" value="2"/>
+      <Item label="CT2" value="3"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Threshold of Current for Load Caution" max="750" min="10" type="short" units="0.01 Amp" value="750">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Threshold of KWH for Load Caution" max="10000" min="1" type="short" units="KWh" value="10000">
+      <Help></Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Report CT1 and CT2" max_associations="1"/>
+      <Group auto="true" index="2" label="Report CT1" max_associations="5"/>
+      <Group auto="true" index="3" label="Report CT2" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/philio/phpat02.xml b/Config/philio/phpat02.xml
index 3730a494cd..4f2c821f07 100644
--- a/Config/philio/phpat02.xml
+++ b/Config/philio/phpat02.xml
@@ -1,107 +1,135 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Philio Technology Corporation PH-PAT02 Multisensor 3in1 sold as Zipato brend -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config"  index="1" label="Basic Set OFF Level" size="1" min="0" max="255" value="0">
-			<Help>
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:001F:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/phpat02.png</MetaDataItem>
+    <MetaDataItem id="001F" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1450/</MetaDataItem>
+    <MetaDataItem id="001F" name="Identifier" type="0002">PAT02-1A</MetaDataItem>
+    <MetaDataItem id="001F" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">The flood multisensor PAT02 has flood, temperature and humidity, 3 sensors function in one, based on Z-Wave™ technology.  Using Z-Wave™ plus technology, it supports security and Over-The-Air updating.</MetaDataItem>
+    <MetaDataItem name="Name">Flood Multisensor</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">When the device power on, the device will wake about 20 seconds. In this duration, the controller can communicate with the device. Normally the device is always sleeping to save the battery energy.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1450/PAT02_Manual.pdf</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Have Z-Wave™ Controller entered exclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the exclusion mode.
+Node ID has been excluded.
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing tamper key four times within 1.5 seconds and do not release the tamper key in the 4th pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the tamper key. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are excluded and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Have Z-Wave™ Controller entered inclusion mode.
+2. Pressing the tamper key three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave™ Controller about 20 seconds.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1186/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1299/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1450/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Philio Technology Corporation PH-PAT02 Multisensor 3in1 sold as Zipato brend -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Basic Set OFF Level" max="255" min="0" size="1" type="byte" value="0">
+      <Help>
                 Setting the BASIC command value.
                 When the flood trigger off(0x00), send the BASIC CC to the group 2
             </Help>
-		</Value>
-        <Value type="byte" genre="config"  index="2" label="Basic Set ON Level" size="1" min="0" max="255" value="255">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="Basic Set ON Level" max="255" min="0" size="1" type="byte" value="255">
+      <Help>
                 Setting the BASIC command value.
                 When the flood trigger on(0xFF), send the BASIC CC to the group 2
             </Help>
-		</Value>
-        <Value type="byte" genre="config" instance="1" index="5" label="Operation Mode" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Operation Mode" max="255" min="0" type="byte" value="0">
+      <Help>
                 Bit0: Disable the Flood function.
                 Bit3: Setting the temperature scale. 0: Fahrenheit, 1:Celsius
                 Bit5: Disable the temperature report after event triggered. (1:Disable,0:Enable)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="6" label="Multi-Sensor Function Switch" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Multi-Sensor Function Switch" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Bit6: Disable the humidity report after event triggered. (1:Disable, 0:Enable)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="7" label="Costumer Function" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Costumer Function" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Bit3: Disable send out BASIC OFF after the flood event cleared. (1:Disable, 0:Enable)
                 Bit4: Notification Type. (0: Using Notification Report, 1: Using Sensor Binary Report)
                 Bit5: Disable Multi CC in auto report. (1:Disable, 0:Enable)
                 Bit6: Disable to report battery state when the device triggered. (1:Disable, 0:Enable)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="10" label="Auto Report Battery Time" units="" min="0" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Auto Report Battery Time" max="127" min="0" type="byte" units="" value="12">
+      <Help>
                 The interval time for auto report the battery level.
                 0 means turn off auto report.
                 The default value is 12.
                 The tick time can be set by the configuration No.20.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="13" label="Auto Report Temperature Time" units="" min="0" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Auto Report Temperature Time" max="127" min="0" type="byte" units="" value="12">
+      <Help>
                 The interval time for auto report the temperature.
                 0 means turn off auto report.
                 The default value is 12.
                 The tick time can be set by the configuration No.20.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="14" label="Auto Report Humidity Time" units="" min="0" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Auto Report Humidity Time" max="127" min="0" type="byte" units="" value="12">
+      <Help>
                 The interval time for auto report the humidity.
                 0 means turn off auto report.
                 The default value is 12.
                 The tick time can be set by the configuration No.20.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="15" label="Auto Report Flood Time" units="" min="0" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Auto Report Flood Time" max="127" min="0" type="byte" units="" value="12">
+      <Help>
                 The interval time for auto report the flood state.
                 0 means turn off auto report.
                 The default value is 12.
                 The tick time can be set by the configuration No.20.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="20" label="Auto Report Tick Interval" units="minute" min="0" max="255" value="30">
-            <Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Auto Report Tick Interval" max="255" min="0" type="byte" units="minute" value="30">
+      <Help>
                 The interval time for auto report each tick.
                 Setting this configuration will effect configuration No.10, No.13, No.14 and No.15.
                 Units of one minute.
                 Caution1: Setting to 0 means turn off all auto report function.
                 Caution2: The value is unsigned byte
             </Help>
-        </Value>
-
-        <Value type="byte" genre="config" instance="1" index="21" label="Temperature Differential Report" units="fahrenheit" min="0" max="127" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Temperature Differential Report" max="127" min="0" type="byte" units="fahrenheit" value="1">
+      <Help>
                 The temperature differential to report.
                 0 means turn off this function. The unit is Fahrenheit.
                 Enable this function the device will detect every 10 seconds.
                 And when the temperature is over 140 degree Fahrenheit, it will continue report.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="22" label="Humidity Differential Report" units="%" min="0" max="60" value="5">
-            <Help>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="Humidity Differential Report" max="60" min="0" type="byte" units="%" value="5">
+      <Help>
                 The humidity differential to report.
                 0 means turn off this function.
                 The unit is percentage. Enable this function the device will detect every 10 seconds.
             </Help>
-        </Value>
-
-    </CommandClass>
-
-	<!-- COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- COMMAND_CLASS_ASSOCIATION -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="8" label="Lifeline"/>
-            <Group index="2" max_associations="8" label="Light control" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="Light control" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/philio/phpsg01.xml b/Config/philio/phpsg01.xml
index 4c15f642e5..688c415126 100644
--- a/Config/philio/phpsg01.xml
+++ b/Config/philio/phpsg01.xml
@@ -1,10 +1,32 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Zipato: PH-PSG01 Smoke Sensor -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="byte" index="7" genre="config" label="Customer Function" min="0" max="127" value="4">
-            <Help>
+<!-- Zipato: PH-PSG01 Smoke Sensor --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:001E:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/phpsg01.png</MetaDataItem>
+    <MetaDataItem id="001E" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1167/</MetaDataItem>
+    <MetaDataItem name="Name">Smoke Sensor</MetaDataItem>
+    <MetaDataItem name="Description">The  Smoke  Sensor   PSG01   is   designed   to   give   early   warning   of developing fires by giving off the alarm sounds from its build-in alarm horn, based on Z-Wave™  technology.
+It is a Z-Wave™ plus product, it supports the security, OTA... Those newest features of the  Z-Wave™  technology.  Z-Wave™ is a wireless communication protocol designed for home automation, specifically to remotely control   applications in residential and light commercial environments. The technology uses a low-power RF radio embedded or retrofitted into home electronics devices and systems, such as lighting, home access control, entertainment systems and household appliances.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Have Z-Wave™ Controller entered inclusion mode.
+2. Pressing button three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave™ Controller about 20 seconds.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Have Z-Wave™  Controller entered exclusion mode.
+2. Pressing button three times within 1.5 seconds to  enter the exclusion mode. Node ID has been removed.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1167/PSG01_Manual.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing button four times within 1.5 seconds and do not release the button in the 4 th  pressed, and the red LED will light ON.
+2. After the red LED flash 9 times, release the button within 2 seconds.
+3. IDs are removed and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem id="001E" name="Identifier" type="0002">PSG01</MetaDataItem>
+    <MetaDataItem id="001E" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">After the device adding to the network, it will wake-up once per day in default. When it wake-up it will broadcast the “Wake Up Notification” message  to  the  network,  and  wake-up  10  seconds  for  receive  the setting commands. The wake-up interval minimum setting is 30 minutes, and maximum setting is 120 hours. And the interval step is 30 minutes. If the user want to wake-up the device immediately, please press the button once. The device will wake-up 10 seconds.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1167/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="7" label="Customer Function" max="127" min="0" type="byte" value="4">
+      <Help>
                 Customer function switch, using bit control.
                 Bit0: Reserve.
                 Bit1: Reserve.
@@ -14,21 +36,24 @@
                 Bit6: Reserve.
                 Bit7: Reserve.
             </Help>
-        </Value>
-        <Value type="byte" instance="1" index="10" genre="config" label="Auto Report Battery Time" units="30 min"
-               min="1" max="127" value="12">
-            <Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Auto Report Battery Time" max="127" min="1" type="byte" units="30 min" value="12">
+      <Help>
                 The interval time for auto report the battery level.
                 30 minutes per tick and minimum time is 30 minutes, default tick is 12 (6 hours)
             </Help>
-        </Value>
-    </CommandClass>
-    <!-- Basic set as report -->
-    <CommandClass id="32" setasreport="true"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="8" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/philio/pse02.xml b/Config/philio/pse02.xml
index 45c0c3347e..7cd99d5bbf 100644
--- a/Config/philio/pse02.xml
+++ b/Config/philio/pse02.xml
@@ -1,42 +1,45 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <!-- Zipato: PH-PSE02.eu Indoor Siren -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="7" genre="config" label="Customer Function" size="1" value="0">
-			<Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="7" label="Customer Function" size="1" type="list" value="0">
+      <Help>
 				bit 0 Notification Type: 0: Using Notification Report, 1: Using Sensor Binary Report.
 				bit 7 Other sounds: 0: Disabled, 1: Enable.
 			</Help>
-			<Item label="Using Notification Report" value="0" />
-			<Item label="Using Sensor Binary Report" value="1" />
-			<Item label="Using Notification Report with other sounds" value="128"/>
-			<Item label="Using Sensor Binary Report with other sounds" value="129"/>
-		</Value>
-		<Value type="list" index="29" genre="config" label="Disable Alarm" size="1" value="0">
-			<Help>
+      <Item label="Using Notification Report" value="0"/>
+      <Item label="Using Sensor Binary Report" value="1"/>
+      <Item label="Using Notification Report with other sounds" value="128"/>
+      <Item label="Using Sensor Binary Report with other sounds" value="129"/>
+    </Value>
+    <Value genre="config" index="29" label="Disable Alarm" size="1" type="list" value="0">
+      <Help>
 				Disable the alarm function.
 				1: Disable Alarm,
 				0: Enable Alarm.
 				Caution: After the power up, this configuration is always 0.
 			</Help>
-			<Item label="Enable Alarm" value="0" />
-			<Item label="Disable Alarm" value="1" />
-		</Value>
-		<Value type="byte" index="31" genre="config" label="Basic Set Off Level" min="0" max="127" value="6">
-			<Help>
+      <Item label="Enable Alarm" value="0"/>
+      <Item label="Disable Alarm" value="1"/>
+    </Value>
+    <Value genre="config" index="31" label="Basic Set Off Level" max="127" min="0" type="byte" value="6">
+      <Help>
 				Play alarm sound duration,
 				1 tick is 30 seconds. Default is 3 minutes, maximum is 63.5 minutes.
 				0 means never auto stop.
 			</Help>
-		</Value>
-	</CommandClass>
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="8" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/philio/psm02.xml b/Config/philio/psm02.xml
index 0719a3037c..1535d799ee 100644
--- a/Config/philio/psm02.xml
+++ b/Config/philio/psm02.xml
@@ -1,18 +1,45 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
- 
+<Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:0002:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/psm02.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/836/</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0002">PSM02-2</MetaDataItem>
+    <MetaDataItem name="Description">Multi-sensor PSM02 has PIR, door/window, temperature and illumination, 4 sensors function in one, based on Z-Wave technology.
+
+Features
+
+ - (1)Door/window (2)PIR (3)illumination and (4)temperature functions in one sensor
+ - Adopt newest Z-wave 400 series chip, support multichannel operation and higher data rate (9.6/40/100kbps)
+ - Higher output power (+2.5dBm output power as compared to -2.5dBm 300 series Z-wave module) to enhance the communication range
+ - 1500mA CR123A lithium battery to guarantee 2 year battery life
+ - Built in light sensor while applied to light control
+ - Adopt Z-Wave protocol to secure the success of wireless two way communication
+ - With Tamper proof protection
+ - Easy install
+ - Low battery indication
+ - Z-Wave V6.02
+ - Auto report the open/close status and battery status
+ - FCC part15.249 / EN300 220-1/ certification
+ - NCC</MetaDataItem>
+    <MetaDataItem name="Name">PSM02-2 Multi-Sensor</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0002">CEPT (Europe) / Japan / U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/821/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/835/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/836/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem name="ProductPage">http://philio-tech.com/</MetaDataItem>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-
-    <Value type="byte" instance="1" index="2" genre="config" label="Basic Set Level" min="1" max="255" value="255">
+    <Value genre="config" index="2" instance="1" label="Basic Set Level" max="255" min="1" type="byte" value="255">
       <Help>
           Setting the BASIC command value to turn on the light. The 0xFF (255) means turn on the light. 
           For dimmer equipment 1 to 100 means the light strength.
 	  </Help>
     </Value>
-
-    <Value type="byte" instance="1" index="3" genre="config" label="PIR Sensitivity" min="0" max="99" value="70">
-       <Help>
+    <Value genre="config" index="3" instance="1" label="PIR Sensitivity" max="99" min="0" type="byte" value="70">
+      <Help>
           PIR sensitivity settings. 
           0 means disable the PIR motion.
           1 means the lowest sensitivity.
@@ -20,8 +47,7 @@
           High sensitivity means can detect long distance, but if there is more noise signal in the environment, it will re-trigger too frequently. 
        </Help>
     </Value>
-	
-    <Value type="byte" instance="1" index="4" genre="config" label="Light threshold" min="0" max="100" value="99">
+    <Value genre="config" index="4" instance="1" label="Light threshold" max="100" min="0" type="byte" value="99">
       <Help>
           Setting the illumination threshold to turn on the light. When the event triggered and the environment illumination lower than 
           the threshold, the device will turn on the light.
@@ -32,9 +58,8 @@
           * Notice * in none test mode, only the value in 1 to 99 will enable the illumination detected function and update the illumination value.
        </Help>
     </Value>
-	
-    <Value type="byte" instance="1" index="5" genre="config" label="Operation Mode" min="0" max="127" value="0">
-       <Help>
+    <Value genre="config" index="5" instance="1" label="Operation Mode" max="127" min="0" type="byte" value="0">
+      <Help>
           Bit 0: 1 means security mode; 0 means home automation mode.
           Bit 1: 1 means enable test mode; 0 means disable test mode
           * Notice * Bit 0 and bit 1 will effect when the DIP Switch setting to program mode. If bit1 is enabled, the bit0 is useless.
@@ -44,9 +69,8 @@
           Bit 5: Disable temperature report after event triggered
        </Help>
     </Value>
-
-    <Value type="byte" instance="1" index="6" genre="config" label="Multi-Sensor Function Switch" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="6" instance="1" label="Multi-Sensor Function Switch" max="127" min="0" type="byte" value="4">
+      <Help>
           Multi-Sensor Function switch. Using bit to control.
           Bit 0: Reserved, always 1.
           Bit 1: Disable PIR integrate Illumination.
@@ -58,9 +82,8 @@
           And also the temperature over 140 degree Fahrenheit, it will report every 64 seconds.
 	  </Help>
     </Value>
-	
-	<Value type="byte" index="7" genre="config" label="Customer Function" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="7" label="Customer Function" max="127" min="0" type="byte" value="4">
+      <Help>
           Customer function switch, using bit control. 
           Bit 0: Reserve. 
           Bit 1: Enable sending motion OFF report (0:Disable, 1:Enable). 
@@ -74,64 +97,57 @@
 		  ozw recommended setting: 00010110 : 22
        </Help>
     </Value>
-
-    <Value type="byte" instance="1" index="8" genre="config" label="PIR re-detect interval time" units="8 sec" min="3" max="27" value="3">
-       <Help>
+    <Value genre="config" index="8" instance="1" label="PIR re-detect interval time" max="27" min="3" type="byte" units="8 sec" value="3">
+      <Help>
           In the security mode, after the PIR report motion detected, setting the re-detect time. 8 seconds per tick, and minimum time is 24 seconds, default tick is 3 (24 seconds).
           Setting the suitable value to prevent received the trigger signal too frequency. Also can save the battery energy.
           * Notice * If this value bigger than the configuration setting NO. 9. There is a period after the light turned off and the PIR not detecting.
        </Help>
     </Value>
-	
-    <Value type="byte" instance="1" index="9" genre="config" label="Turn Off Light Time" units="8 sec" min="4" max="127" value="4">
-       <Help>
+    <Value genre="config" index="9" instance="1" label="Turn Off Light Time" max="127" min="4" type="byte" units="8 sec" value="4">
+      <Help>
           After turn on the light, setting the delay time to turn off the light when the PIR motion is not detected.
           8 seconds per tick, and minimum time is 32 seconds, default tick is 4 (32 seconds).
        </Help>
     </Value>
- 
-    <Value type="byte" instance="1" index="10" genre="config" label="Auto Report Battery Time" units="30 min" min="1" max="127" value="12">
+    <Value genre="config" index="10" instance="1" label="Auto Report Battery Time" max="127" min="1" type="byte" units="30 min" value="12">
       <Help>
          The interval time for auto report the battery level.
          30 minutes per tick and minimum time is 30 minutes, default tick is 12 (6 hours)
       </Help>
     </Value>
- 
-    <Value type="byte" instance="1" index="12" genre="config" label="Auto Report Illumination Time" units="30 min" min="1" max="127" value="12">
+    <Value genre="config" index="12" instance="1" label="Auto Report Illumination Time" max="127" min="1" type="byte" units="30 min" value="12">
       <Help>
          The interval time for auto report the illumination.
          30 minutes per tick and minimum time is 30 minutes, default tick is 12 (6 hours)
       </Help>
     </Value>
- 
-    <Value type="byte" instance="1" index="13" genre="config" label="Auto Report Temperature time" units="30 min" min="1" max="127" value="12">
+    <Value genre="config" index="13" instance="1" label="Auto Report Temperature time" max="127" min="1" type="byte" units="30 min" value="12">
       <Help>
          The interval time for auto report the temperature.
          30 minutes per tick and minimum time is 30 minutes, default tick is 12 (6 hours)
       </Help>
     </Value>
- 
   </CommandClass>
-
   <!-- Basic set as report -->
   <!-- <CommandClass id="32" setasreport="true" ignoremapping="true"/> -->
- 
-  <CommandClass id="48" create_vars="false">
-      <Instance index="1" />
-      <Value type="bool" genre="user" instance="1" index="0" label="Motion Sensor" read_only="true" write_only="false"  min="0" max="0" value="false" />
-      <Value type="bool" genre="user" instance="1" index="1" label="Door/Window Sensor" read_only="true" write_only="false" value="false" />
-      <Value type="bool" genre="user" instance="1" index="2" label="Tamper Sensor" read_only="true" write_only="false" min="0" max="0" value="false" />
-      <SensorMap index="0" type="12" />
-      <SensorMap index="1" type="10" />
-      <SensorMap index="2" type="8" />
+  <CommandClass id="48">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Motion Sensor" max="0" min="0" read_only="true" type="bool" value="false" write_only="false"/>
+    <Value genre="user" index="1" instance="1" label="Door/Window Sensor" read_only="true" type="bool" value="false" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Tamper Sensor" max="0" min="0" read_only="true" type="bool" value="false" write_only="false"/>
+    <SensorMap index="0" type="12"/>
+    <SensorMap index="1" type="10"/>
+    <SensorMap index="2" type="8"/>
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
   </CommandClass>
- 
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="7" label="Lifeline" />
-      <Group index="2" max_associations="7" label="Light control" auto="true"/>
+      <Group index="1" label="Lifeline" max_associations="7"/>
+      <Group auto="true" index="2" label="Light control" max_associations="7"/>
     </Associations>
   </CommandClass>
-
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/philio/psp05.xml b/Config/philio/psp05.xml
index 530272ec08..b5a826c50e 100644
--- a/Config/philio/psp05.xml
+++ b/Config/philio/psp05.xml
@@ -4,7 +4,7 @@ Philio: PSP05 PIR/Motion for version B, C and D
 http://products.z-wavealliance.org/products/2002
 http://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/2002/PSP05_manual.pdf
 -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
  
   <!-- Configuration Parameters -->
   <CommandClass id="112">
diff --git a/Config/philio/psr03-1b.xml b/Config/philio/psr03-1b.xml
index e4e584dc6e..f8b95e5d27 100644
--- a/Config/philio/psr03-1b.xml
+++ b/Config/philio/psr03-1b.xml
@@ -1,96 +1,121 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Zipato Keyfob 5 Remote
 https://products.z-wavealliance.org/products/2432
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" index="2" label="Basic Set Level" units="" min="0" max="255" value="255">
-            <Help>
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:001D:0008</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/psr03-1b.png</MetaDataItem>
+    <MetaDataItem id="001D" name="ZWProductPage" type="0008">https://products.z-wavealliance.org/products/1176/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Have Z-Wave ™  Controller entered remove mode.
+2. Hold down the central key, then press the top-right 
+key three times within 1.5 seconds to enter the 
+remove mode.
+Node ID has been excluded.</MetaDataItem>
+    <MetaDataItem id="001D" name="Identifier" type="0008">PSR03</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Hold down the central key, then press the top-right key four times within 1.5 seconds and do not release the top-right key in the 4 th  pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the keys. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are remove and all settings will reset to factory 
+default.</MetaDataItem>
+    <MetaDataItem name="Name">Remote</MetaDataItem>
+    <MetaDataItem id="001D" name="FrequencyName" type="0008">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">The Remote PSR03 is a simple control can control AV device through Z-Wave-to-IR extender, and it can also controls 8 lighting groups ON/OFF via basic set, based on Z-Wave™  technology.
+It is a Z-Wave™ plus product, it supports the security, OTA... Those newest features of the  Z-Wave™  technology.  Z-Wave™ is a wireless communication protocol designed for home automation, specifically to remotely control   applications in residential and light commercial environments. The technology uses a low-power RF radio embedded or retrofitted into home electronics devices and systems, such as lighting, home access control, entertainment systems and household appliances.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">After the device adding to the network, it will wake-up once per day in default. When it wake-up it will broadcast the “Wake Up Notification” message  to  the  network,  and  wake-up  10  seconds  for  receive  the setting commands. The wake-up interval minimum setting is 30 minutes, and maximum setting is 120 hours. And the interval step is 30 minutes. If the user want to wake-up the device immediately, please press the button once. The device will wake-up 10 seconds.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1176/PSR03_Manual.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Have Z-Wave TM  Controller entered add mode.
+2. Hold down the central key, then press the top-right key three times within 1.5 seconds to enter the add mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave ™ Controller about 20 seconds.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1176/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" label="Basic Set Level" max="255" min="0" type="byte" units="" value="255">
+      <Help>
                 Setting the BASIC command value to turn on the light.
                 The 0xFF(-1) means turn on the light.
                 For dimmer equipment 1 to 99 means the light strength.
                 0 means turn off the light.
             </Help>
-        </Value>
-		<Value type="list" genre="config" index="7" label="Customer function" size="1" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="7" label="Customer function" size="1" type="list" value="0">
+      <Help>
                 Customer function switch, using bit control.
             </Help>
-            <Item label="Switch AV control" value="0"/>
-            <Item label="Lighting group control" value="1"/>
-        </Value>
-        <Value type="short" genre="config" index="10" label="Auto Report Battery Time" min="0" max="127" value="12">
-			<Help>
+      <Item label="Switch AV control" value="0"/>
+      <Item label="Lighting group control" value="1"/>
+    </Value>
+    <Value genre="config" index="10" label="Auto Report Battery Time" max="127" min="0" type="short" value="12">
+      <Help>
                 The interval time for auto report the battery level.
                 0 means turn off auto report battery.
                 Each tick means 30 minutes.
                 The default value is 12(6 hours).
             </Help>
-		</Value>
-		<Value type="byte" genre="config" index="82" label="Association Group 2 Basic Set Level" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="82" label="Association Group 2 Basic Set Level" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Setting the BASIC command value to turn on the light in the association group 2.
                 0 means using the value of configuration 2 to set.
             </Help>
-        </Value>
-		<Value type="byte" genre="config" index="83" label="Association Group 3 Basic Set Level" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="83" label="Association Group 3 Basic Set Level" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Setting the BASIC command value to turn on the light in the association group 3.
                 0 means using the value of configuration 2 to set.
             </Help>
-        </Value>
-		<Value type="byte" genre="config" index="84" label="Association Group 4 Basic Set Level" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="84" label="Association Group 4 Basic Set Level" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Setting the BASIC command value to turn on the light in the association group 4.
                 0 means using the value of configuration 2 to set.
             </Help>
-        </Value>
-		<Value type="byte" genre="config" index="85" label="Association Group 5 Basic Set Level" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="85" label="Association Group 5 Basic Set Level" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Setting the BASIC command value to turn on the light in the association group 5.
                 0 means using the value of configuration 2 to set.
             </Help>
-        </Value>
-		<Value type="byte" genre="config" index="86" label="Association Group 6 Basic Set Level" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="86" label="Association Group 6 Basic Set Level" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Setting the BASIC command value to turn on the light in the association group 6.
                 0 means using the value of configuration 2 to set.
             </Help>
-        </Value>
-		<Value type="byte" genre="config" index="87" label="Association Group 7 Basic Set Level" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="87" label="Association Group 7 Basic Set Level" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Setting the BASIC command value to turn on the light in the association group 7.
                 0 means using the value of configuration 2 to set.
             </Help>
-        </Value>
-		<Value type="byte" genre="config" index="88" label="Association Group 8 Basic Set Level" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="88" label="Association Group 8 Basic Set Level" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Setting the BASIC command value to turn on the light in the association group 8.
                 0 means using the value of configuration 2 to set.
             </Help>
-        </Value>
-		<Value type="byte" genre="config" index="89" label="Association Group 9 Basic Set Level" units="" min="0" max="255" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="89" label="Association Group 9 Basic Set Level" max="255" min="0" type="byte" units="" value="0">
+      <Help>
                 Setting the BASIC command value to turn on the light in the association group 9.
                 0 means using the value of configuration 2 to set.
             </Help>
-        </Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="9">
-			<Group index="1" max_associations="4" label="Z-Wave Plus Lifeline" />
-			<Group index="2" max_associations="4" label="Top-left Key" />
-			<Group index="3" max_associations="4" label="Top-right Key" />
-			<Group index="4" max_associations="4" label="Bottom-left Key" />
-			<Group index="5" max_associations="4" label="Bottom-right Key" />
-			<Group index="6" max_associations="4" label="Top-left Key" />
-			<Group index="7" max_associations="4" label="Top-right Key" />
-			<Group index="8" max_associations="4" label="Bottom-left Key" />
-			<Group index="9" max_associations="4" label="Bottom-right Key" />
-		</Associations>
-	</CommandClass>
-</Product>
\ No newline at end of file
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="9">
+      <Group index="1" label="Z-Wave Plus Lifeline" max_associations="4"/>
+      <Group index="2" label="Top-left Key" max_associations="4"/>
+      <Group index="3" label="Top-right Key" max_associations="4"/>
+      <Group index="4" label="Bottom-left Key" max_associations="4"/>
+      <Group index="5" label="Bottom-right Key" max_associations="4"/>
+      <Group index="6" label="Top-left Key" max_associations="4"/>
+      <Group index="7" label="Top-right Key" max_associations="4"/>
+      <Group index="8" label="Bottom-left Key" max_associations="4"/>
+      <Group index="9" label="Bottom-right Key" max_associations="4"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/philio/psr04.xml b/Config/philio/psr04.xml
index 537a2a3672..07d5b55b40 100644
--- a/Config/philio/psr04.xml
+++ b/Config/philio/psr04.xml
@@ -1,35 +1,56 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Philio: PSR04 Smart Color Button -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
- 
+<!-- Philio: PSR04 Smart Color Button --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:0022:0009</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/psr04.png</MetaDataItem>
+    <MetaDataItem id="0022" name="ZWProductPage" type="0009">https://products.z-wavealliance.org/products/1448/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Have Z-Wave™ Controller entered inclusion mode.
+2. Rotate to area A and then press button three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave™ Controller about 20 seconds.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Have Z-Wave™  Controller entered exclusion mode.
+2. Rotate to area A and then press button three times within 1.5 seconds to  enter the exclusion mode. Node ID has been removed.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">After the device adding to the network, it will wake-up once per day in default. When it wake-up it will broadcast the “Wake Up Notification” message  to  the  network,  and  wake-up  20  seconds  for  receive  the setting commands. The wake-up interval minimum setting is 30 minutes, and maximum setting is 120 hours. And the interval step is 30 minutes. If the user wants to wake-up the device immediately, please rotate to area A and then press the button once. The device will wake-up 10 seconds.</MetaDataItem>
+    <MetaDataItem name="Description">This device is a multiple functions button switch. It is able to
+switch the appliances on/off or adjust the percentage of dimmer.
+It can also work as a timer. The well designed wall bracket and
+magnetic back let the switch can be fixed on the wall. This product
+can be included and operated in any Z-Wave™  network  with other Z-Wave™  certified devices from other manufacturers and/or other applications.</MetaDataItem>
+    <MetaDataItem id="0022" name="Identifier" type="0009">PSR04</MetaDataItem>
+    <MetaDataItem name="Name">Smart Color Button</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1448/PSR04_Manual-2015-08-11.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Rotate to area A and then press button four times within 1.5 seconds and do not release the button in the 4 th  pressed, and the red LED will light ON.
+2. After the red LED goes out, release the button within 2 seconds.
+3. IDs are removed and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem id="0022" name="FrequencyName" type="0009">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1300/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1448/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-
-    <Value type="byte" index="1" genre="config" label="Basic Set Off Level" min="0" max="99" value="0">
+    <Value genre="config" index="1" label="Basic Set Off Level" max="99" min="0" type="byte" value="0">
       <Help>
           Control the value represented by the left-side in area D.
 		  E.g. Setting this configuration
 		  to 15 means range of Command Basic Set value start from 15
 	  </Help>
     </Value>
-	
-	<Value type="byte" index="2" genre="config" label="Basic Set On Level" min="0" max="99" value="99">
+    <Value genre="config" index="2" label="Basic Set On Level" max="99" min="0" type="byte" value="99">
       <Help>
           Control the value represented by the right-side in area D.
 		  E.g. Setting this configuration
 		  to 15 means range of Command Basic Set value start from 15
 	  </Help>
     </Value>
-
-    <Value type="byte" index="10" genre="config" label="Auto report battery time" min="0" max="127" value="12">
-       <Help>
+    <Value genre="config" index="10" label="Auto report battery time" max="127" min="0" type="byte" value="12">
+      <Help>
           The interval time for auto reporting
           the Battery level. 0 means turn off auto report battery.
           The default value is 12.
        </Help>
     </Value>
-	
-    <Value type="byte" index="25" genre="config" label="Customer function" min="0" max="3" value="0">
+    <Value genre="config" index="25" label="Customer function" max="3" min="0" type="byte" value="0">
       <Help>
           Bit 0: Dimmer setting method.
           0 : Auto send Command Basic Set after rotating.
@@ -39,25 +60,25 @@
           1: Disable.
        </Help>
     </Value>
-	
-    <Value type="list" index="26" genre="config" label="Scene Holding report" size="1" value="0">
-       <Help>
+    <Value genre="config" index="26" label="Scene Holding report" size="1" type="list" value="0">
+      <Help>
           Send Central Scene Holding when the button is held.
        </Help>
-	  <Item label="Enabled" value="0" />
-      <Item label="Disabled" value="1" />
-    </Value> 
+      <Item label="Enabled" value="0"/>
+      <Item label="Disabled" value="1"/>
+    </Value>
   </CommandClass>
-
   <!-- Basic set as report -->
-  <CommandClass id="32" setasreport="true"/>
- 
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="8" label="Reports"/>
-      <Group index="2" max_associations="8" label="Light Control" auto="true"/>
+      <Group index="1" label="Reports" max_associations="8"/>
+      <Group auto="true" index="2" label="Light Control" max_associations="8"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/philio/pst02-1c.xml b/Config/philio/pst02-1c.xml
index a612efc131..75249b9dd2 100644
--- a/Config/philio/pst02-1c.xml
+++ b/Config/philio/pst02-1c.xml
@@ -1,18 +1,44 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Philio: PST02-1C Slim Multi Sensor -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
- 
+<!-- Philio: PST02-1C Slim Multi Sensor --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:000E:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/pst02-1c.png</MetaDataItem>
+    <MetaDataItem id="000E" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1092/</MetaDataItem>
+    <MetaDataItem name="Description">The slim multisensor PST02 has door/window, temperature and illumination, 3 sensors function in one,based on Z-Wave technology.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To reset the device: 
+Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing tamper key four times within 1.5 seconds and do not release the tamper key in the 4th  pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the tamper key. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are excluded and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem id="000E" name="Identifier" type="0002">PST02-1C</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1092/PST02_Manual-2014-08-15B.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+Press any key once, the device will awake 10 seconds.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To add into a Z-Wave network: 
+1. Have Z-Wave  Controller entered inclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave Controller about 20 seconds.</MetaDataItem>
+    <MetaDataItem name="Name">Slim Multisensor</MetaDataItem>
+    <MetaDataItem id="000E" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To remove the device from a Z-Wave network: 
+1. Have Z-Wave  Controller entered exclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the exclusion mode.
+Node ID has been excluded.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1092/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-
-    <Value type="byte" index="2" genre="config" label="Basic Set Level" min="-1" max="255" value="255">
+    <Value genre="config" index="2" label="Basic Set Level" max="255" min="-1" type="byte" value="255">
       <Help>
           Setting the BASIC command value to turn on the light. The 0xFF (-1) means turn on the light. 
           For dimmer equipment 1 to 100 means the light strength. 0 means turn off the light.
 	  </Help>
     </Value>
-	
-    <Value type="byte" index="4" genre="config" label="Light threshold" min="0" max="100" value="99">
+    <Value genre="config" index="4" label="Light threshold" max="100" min="0" type="byte" value="99">
       <Help>
           Setting the illumination threshold to turn on the light. When the event triggered and the environment illumination lower than 
           the threshold, the device will turn on the light.
@@ -23,9 +49,8 @@
           * Notice * in none test mode, only the value in 1 to 99 will enable the illumination detected function and update the illumination value.
        </Help>
     </Value>
-	
-    <Value type="byte" index="5" genre="config" label="Operation Mode" min="0" max="127" value="0">
-       <Help>
+    <Value genre="config" index="5" label="Operation Mode" max="127" min="0" type="byte" value="0">
+      <Help>
           Bit 0: Reserved 
           Bit 1: Reserved 
           Bit 2: Disable the door/window function (1: Disable, 0: Enable). 
@@ -34,9 +59,8 @@
           Bit 5: Disable the temperature report after event triggered (1: Disable, 0: Enable).
        </Help>
     </Value>
-
-    <Value type="byte" index="6" genre="config" label="Multi-Sensor Function Switch" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="6" label="Multi-Sensor Function Switch" max="127" min="0" type="byte" value="4">
+      <Help>
           Multi-Sensor Function switch. Using bit to control.
           Bit 0: Disable magnetic integrate illumination to turn ON the lighting nodes in the association group 2 (1: Disable, 0: Enable). 
           Bit 1: Reserved always 1 
@@ -47,9 +71,8 @@
           Bit 6: Enable temperature monitoring. When this bit enabled the temperature changed 3 degree Fahrenheit. It will report. And also temp above 140 it will report every 64 seconds.
 	  </Help>
     </Value>
-
-    <Value type="byte" index="7" genre="config" label="Customer Function" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="7" label="Customer Function" max="127" min="0" type="byte" value="4">
+      <Help>
           Customer function switch, using bit control. 
           Bit 0: Reserve. 
           Bit 1: Enable sending motion OFF report (0:Disable, 1:Enable). 
@@ -63,68 +86,56 @@
 		  ozw recommended setting: 00010110 : 22
        </Help>
     </Value>
-
-    <Value type="byte" index="9" genre="config" label="Turn Off Light Time" units="8 sec" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="9" label="Turn Off Light Time" max="127" min="0" type="byte" units="8 sec" value="4">
+      <Help>
           After turn on the lighting, setting the delay time to turn off the lighting when the PIR motion is not detected. 
           8 seconds per tick, default tick is 4 (32 seconds). 0 means never send turn off light command.
        </Help>
     </Value>
- 
-    <Value type="byte" index="10" genre="config" label="Auto Report Battery Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="10" label="Auto Report Battery Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the battery level. 0 means turn off auto report battery. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
-
-    <Value type="byte" index="11" genre="config" label="Auto Report Door/Window State Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="11" label="Auto Report Door/Window State Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the door/window state. 0 means turn off auto report door/window state. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="12" genre="config" label="Auto Report Illumination Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="12" label="Auto Report Illumination Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the illumination. 0 means turn off auto report illumination. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="13" genre="config" label="Auto Report Temperature time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="13" label="Auto Report Temperature time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the temperature. 0 means turn off auto report temperature. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="20" genre="config" label="Auto Report Tick Interval" min="0" max="255" value="30">
+    <Value genre="config" index="20" label="Auto Report Tick Interval" max="255" min="0" type="byte" value="30">
       <Help>
           The interval time for auto report each tick. Setting this configuration will effect configuration No.10, No.11, No.12 and No.13. Caution: Setting to 0 means turn off all auto report function.
       </Help>
     </Value>
- 
-
-    <Value type="byte" index="21" genre="config" label="Temperature Differential Report" min="0" max="255" value="1">
+    <Value genre="config" index="21" label="Temperature Differential Report" max="255" min="0" type="byte" value="1">
       <Help>
           The temperature differential to report. 0 means turn off this function. The unit is Fahrenheit. Enable this function the device will detect every minutes. And when the temperature is over 140 degree Fahrenheit, it will continue report. Enable this functionality will cause some issue please see the detail in the "Temperature Report" section.
       </Help>
     </Value>
- 
-    <Value type="byte" index="22" genre="config" label="Illumination Differential Report" min="0" max="255" value="0">
+    <Value genre="config" index="22" label="Illumination Differential Report" max="255" min="0" type="byte" value="0">
       <Help>
           The illumination differential to report.0 means turn off this function. The unit is percentage. Enable this function the device will detect every minutes. Enable this functionality will cause some issue please see the detail in the "Illumination Report" section.
       </Help>
     </Value>
- 
   </CommandClass>
-
   <!-- Basic set as report -->
   <!-- <CommandClass id="32" setasreport="true" ignoremapping="true"/> -->
  
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="8" label="Lifeline" />
-      <Group index="2" max_associations="8" label="Light Control" />
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="Light Control" max_associations="8"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/philio/pst02-b.xml b/Config/philio/pst02-b.xml
index 25e83e2635..463c4b4e45 100644
--- a/Config/philio/pst02-b.xml
+++ b/Config/philio/pst02-b.xml
@@ -1,19 +1,45 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Philio: PST02-B 3 in 1 Multi Sensor -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
- 
+<!-- Philio: PST02-B 3 in 1 Multi Sensor --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:000D:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/pst02-b.png</MetaDataItem>
+    <MetaDataItem id="000D" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1090/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To add into a Z-Wave network: 
+1. Have Z-Wave  Controller entered inclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave Controller about 20 seconds.</MetaDataItem>
+    <MetaDataItem id="000D" name="Identifier" type="0002">PST02-1B</MetaDataItem>
+    <MetaDataItem name="ResetDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To reset the device: 
+Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing tamper key four times within 1.5 seconds and do not release the tamper key in the 4th  pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the tamper key. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are excluded and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+Press any key once, the device will awake 10 seconds.</MetaDataItem>
+    <MetaDataItem name="Name">Slim Multisensor</MetaDataItem>
+    <MetaDataItem name="Description">The slim multisensor PST02 has PIR, temperature and illumination, 3 sensors function in one,based on Z-Wave technology.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To remove the device from a Z-Wave network: 
+1. Have Z-Wave  Controller entered exclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the exclusion mode.
+Node ID has been excluded.</MetaDataItem>
+    <MetaDataItem id="000D" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1090/PST02_Manual-2014-08-15B.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1090/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-
-    <Value type="byte" index="2" genre="config" label="Basic Set Level" min="-1" max="255" value="255">
+    <Value genre="config" index="2" label="Basic Set Level" max="255" min="-1" type="byte" value="255">
       <Help>
           Setting the BASIC command value to turn on the light. The 0xFF (-1) means turn on the light. 
           For dimmer equipment 1 to 100 means the light strength. 0 means turn off the light.
 	  </Help>
     </Value>
-
-    <Value type="byte" index="3" genre="config" label="PIR Sensitivity" min="0" max="99" value="80">
-       <Help>
+    <Value genre="config" index="3" label="PIR Sensitivity" max="99" min="0" type="byte" value="80">
+      <Help>
           PIR sensitivity settings. 
           0 means disable the PIR motion. 
           1 means the lowest sensitivity, 
@@ -21,8 +47,7 @@
           High sensitivity means can detected long distance, but if there is more noise signal in the environment, it will re-trigger too frequency.
        </Help>
     </Value>
-	
-    <Value type="byte" index="4" genre="config" label="Light threshold" min="0" max="100" value="99">
+    <Value genre="config" index="4" label="Light threshold" max="100" min="0" type="byte" value="99">
       <Help>
           Setting the illumination threshold to turn on the light. When the event triggered and the environment illumination lower than 
           the threshold, the device will turn on the light.
@@ -33,9 +58,8 @@
           * Notice * in none test mode, only the value in 1 to 99 will enable the illumination detected function and update the illumination value.
        </Help>
     </Value>
-	
-    <Value type="byte" index="5" genre="config" label="Operation Mode" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="5" label="Operation Mode" max="127" min="0" type="byte" value="4">
+      <Help>
           Bit 0: Reserve. 
           Bit 1: 1 means enable test mode, 0 means disable normal mode. Notice: This bit only effect by the DIP Switch setting to program mode. 
           Bit 2: Set to 1.
@@ -46,9 +70,8 @@
           Bit 7: Disable the back key release into test mode (1: Disable, 0: Enable).
        </Help>
     </Value>
-
-    <Value type="byte" index="6" genre="config" label="Multi-Sensor Function Switch" min="0" max="127" value="5">
-       <Help>
+    <Value genre="config" index="6" label="Multi-Sensor Function Switch" max="127" min="0" type="byte" value="5">
+      <Help>
           Multi-Sensor Function switch. Using bit to control.
           Bit 0: Set to 1.
           Bit 1: Disable PIR integrate Illumination to turn ON the lighting nodes in the association group 2 (1: Disable, 0: Enable). 
@@ -60,9 +83,8 @@
           Bit 7: Reserve. 
 	  </Help>
     </Value>
-
-    <Value type="byte" index="7" genre="config" label="Customer Function" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="7" label="Customer Function" max="127" min="0" type="byte" value="4">
+      <Help>
           Customer function switch, using bit control. 
           Bit 0: Reserve. 
           Bit 1: Enable sending motion OFF report (0:Disable, 1:Enable). 
@@ -76,70 +98,58 @@
 		  ozw recommended setting: 00010110 : 22
        </Help>
     </Value>
-
-
-    <Value type="byte" index="8" genre="config" label="PIR re-detect interval time" units="8 sec" min="1" max="127" value="3">
-       <Help>
+    <Value genre="config" index="8" label="PIR re-detect interval time" max="127" min="1" type="byte" units="8 sec" value="3">
+      <Help>
           In the normal mode, after the PIR motion detected, setting the re-detect time. 8 seconds per tick, default tick is 3 (24 seconds). 
           Setting the suitable value to prevent received the trigger signal too frequency. Also can save the battery energy. 
           Notice: If this value bigger than the configuration setting NO. 9. There is a period after the light turned off and the PIR not start detecting.
        </Help>
     </Value>
-	
-    <Value type="byte" index="9" genre="config" label="Turn Off Light Time" units="8 sec" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="9" label="Turn Off Light Time" max="127" min="0" type="byte" units="8 sec" value="4">
+      <Help>
           After turn on the lighting, setting the delay time to turn off the lighting when the PIR motion is not detected. 
           8 seconds per tick, default tick is 4 (32 seconds). 0 means never send turn off light command.
        </Help>
     </Value>
- 
-    <Value type="byte" index="10" genre="config" label="Auto Report Battery Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="10" label="Auto Report Battery Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the battery level. 0 means turn off auto report battery. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
-
-    <Value type="byte" index="12" genre="config" label="Auto Report Illumination Time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="12" label="Auto Report Illumination Time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the illumination. 0 means turn off auto report illumination. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="13" genre="config" label="Auto Report Temperature time" units="30 min" min="0" max="127" value="12">
+    <Value genre="config" index="13" label="Auto Report Temperature time" max="127" min="0" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the temperature. 0 means turn off auto report temperature. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="20" genre="config" label="Auto Report Tick Interval" min="0" max="255" value="30">
+    <Value genre="config" index="20" label="Auto Report Tick Interval" max="255" min="0" type="byte" value="30">
       <Help>
           The interval time for auto report each tick. Setting this configuration will effect configuration No.10, No.11, No.12 and No.13. Caution: Setting to 0 means turn off all auto report function.
       </Help>
     </Value>
- 
-    <Value type="byte" index="21" genre="config" label="Temperature Differential Report" min="0" max="255" value="1">
+    <Value genre="config" index="21" label="Temperature Differential Report" max="255" min="0" type="byte" value="1">
       <Help>
           The temperature differential to report. 0 means turn off this function. The unit is Fahrenheit. Enable this function the device will detect every minutes. And when the temperature is over 140 degree Fahrenheit, it will continue report. Enable this functionality will cause some issue please see the detail in the "Temperature Report" section.
       </Help>
     </Value>
- 
-    <Value type="byte" index="22" genre="config" label="Illumination Differential Report" min="0" max="255" value="0">
+    <Value genre="config" index="22" label="Illumination Differential Report" max="255" min="0" type="byte" value="0">
       <Help>
           The illumination differential to report.0 means turn off this function. The unit is percentage. Enable this function the device will detect every minutes. Enable this functionality will cause some issue please see the detail in the "Illumination Report" section.
       </Help>
     </Value>
- 
   </CommandClass>
-
   <!-- Basic set as report -->
   <!-- <CommandClass id="32" setasreport="true" ignoremapping="true"/> -->
  
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="8" label="Lifeline" />
-      <Group index="2" max_associations="8" label="Light Control" />
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="Light Control" max_associations="8"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/philio/pst02.xml b/Config/philio/pst02.xml
index e497c88a75..90a5d1c863 100644
--- a/Config/philio/pst02.xml
+++ b/Config/philio/pst02.xml
@@ -1,19 +1,46 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Philio: PST02-A 4 in 1 Multi-Sensor -->
-<Product xmlns="http://code.google.com/p/open-zwave/">
- 
+<!-- Philio: PST02-A 4 in 1 Multi-Sensor --><Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/013C:000C:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/philio/pst02.png</MetaDataItem>
+    <MetaDataItem id="000C" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1449/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To remove the device from a Z-Wave network: 
+1. Have Z-Wave  Controller entered exclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the exclusion mode.
+Node ID has been excluded.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+Press any key once, the device will awake 10 seconds.</MetaDataItem>
+    <MetaDataItem name="Description">The slim multisensor PST02 has PIR, door/window, temperature and illumination, 4 sensors function in one,based on Z-Wave technology.</MetaDataItem>
+    <MetaDataItem name="Name">Slim Multisensor</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To add into a Z-Wave network: 
+1. Have Z-Wave  Controller entered inclusion mode.
+2. Pressing tamper key three times within 1.5 seconds to enter the inclusion mode.
+3. After add successful, the device will wake to receive the setting command from Z-Wave Controller about 20 seconds.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1449/PST02_Manual.pdf</MetaDataItem>
+    <MetaDataItem id="000C" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">There are two tamper keys in the device, one is in the back side, another is in the front side.  Both of them  can add,  remove, reset or association from Z-Wave network.
+To reset the device: 
+Notice: Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing tamper key four times within 1.5 seconds and do not release the tamper key in the 4th  pressed, and the LED will light ON.
+2. After 3 seconds the LED will turn OFF, after that within 2 seconds, release the tamper key. If successful, the LED will light ON one second. Otherwise, the LED will flash once.
+3. IDs are excluded and all settings will reset to factory default.</MetaDataItem>
+    <MetaDataItem id="000C" name="Identifier" type="0002">PST02-1A</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1087/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1449/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-
-    <Value type="byte" index="2" genre="config" label="Basic Set Level" min="-1" max="100" value="255" size="1">
+    <Value genre="config" index="2" label="Basic Set Level" max="100" min="-1" size="1" type="byte" value="255">
       <Help>
           Setting the BASIC command value to turn on the light. The 0xFF (-1) means turn on the light. 
           For dimmer equipment 1 to 100 means the light strength. 0 means turn off the light.
 	  </Help>
     </Value>
-
-    <Value type="byte" index="3" genre="config" label="PIR Sensitivity" min="0" max="99" value="80" size="1">
-       <Help>
+    <Value genre="config" index="3" label="PIR Sensitivity" max="99" min="0" size="1" type="byte" value="80">
+      <Help>
           PIR sensitivity settings. 
           0 means disable the PIR motion. 
           1 means the lowest sensitivity, 
@@ -21,8 +48,7 @@
           High sensitivity means can detected long distance, but if there is more noise signal in the environment, it will re-trigger too frequency.
        </Help>
     </Value>
-	
-    <Value type="byte" index="4" genre="config" label="Light threshold" min="0" max="100" value="99" size="1">
+    <Value genre="config" index="4" label="Light threshold" max="100" min="0" size="1" type="byte" value="99">
       <Help>
           Setting the illumination threshold to turn on the light. When the event triggered and the environment illumination lower than 
           the threshold, the device will turn on the light.
@@ -33,9 +59,8 @@
           * Notice * in none test mode, only the value in 1 to 99 will enable the illumination detected function and update the illumination value.
        </Help>
     </Value>
-	
-    <Value type="byte" index="5" genre="config" label="Operation Mode" min="0" max="127" value="0" size="1">
-       <Help>
+    <Value genre="config" index="5" label="Operation Mode" max="127" min="0" size="1" type="byte" value="0">
+      <Help>
           Bit 0: Reserve. 
           Bit 1: 1 means enable test mode, 0 means disable normal mode. Notice: This bit only effect by the DIP Switch setting to program mode. 
           Bit 2: Disable the door/window function (1: Disable, 0: Enable). 
@@ -46,9 +71,8 @@
           Bit 7: Disable the back key release into test mode (1: Disable, 0: Enable).
        </Help>
     </Value>
-
-    <Value type="byte" index="6" genre="config" label="Multi-Sensor Function Switch" min="0" max="127" value="4" size="1">
-       <Help>
+    <Value genre="config" index="6" label="Multi-Sensor Function Switch" max="127" min="0" size="1" type="byte" value="4">
+      <Help>
           Multi-Sensor Function switch. Using bit to control.
           Bit 0: Disable magnetic integrate illumination to turn ON the lighting nodes in the association group 2 (1: Disable, 0: Enable). 
           Bit 1: Disable PIR integrate Illumination to turn ON the lighting nodes in the association group 2 (1: Disable, 0: Enable). 
@@ -60,9 +84,8 @@
           Bit 7: Reserve. 
 	  </Help>
     </Value>
-
-    <Value type="byte" index="7" genre="config" label="Customer Function" min="0" max="127" value="4">
-       <Help>
+    <Value genre="config" index="7" label="Customer Function" max="127" min="0" type="byte" value="4">
+      <Help>
           Customer function switch, using bit control. 
           Bit 0: Reserve. 
           Bit 1: Enable sending motion OFF report (0:Disable, 1:Enable). 
@@ -76,84 +99,74 @@
 		  ozw recommended setting: 00010110 : 22
        </Help>
     </Value>
-    
-    <Value type="byte" index="8" genre="config" label="PIR re-detect interval time" units="8 sec" min="1" max="127" value="3" size="1">
-       <Help>
+    <Value genre="config" index="8" label="PIR re-detect interval time" max="127" min="1" size="1" type="byte" units="8 sec" value="3">
+      <Help>
           In the normal mode, after the PIR motion detected, setting the re-detect time. 8 seconds per tick, default tick is 3 (24 seconds). 
           Setting the suitable value to prevent received the trigger signal too frequency. Also can save the battery energy. 
           Notice: If this value bigger than the configuration setting NO. 9. There is a period after the light turned off and the PIR not start detecting.
        </Help>
     </Value>
-	
-    <Value type="byte" index="9" genre="config" label="Turn Off Light Time" units="8 sec" min="0" max="127" value="4" size="1">
-       <Help>
+    <Value genre="config" index="9" label="Turn Off Light Time" max="127" min="0" size="1" type="byte" units="8 sec" value="4">
+      <Help>
           After turn on the lighting, setting the delay time to turn off the lighting when the PIR motion is not detected. 
           8 seconds per tick, default tick is 4 (32 seconds). 0 means never send turn off light command.
        </Help>
     </Value>
- 
-    <Value type="byte" index="10" genre="config" label="Auto Report Battery Time" units="30 min" min="0" max="127" value="12" size="1">
+    <Value genre="config" index="10" label="Auto Report Battery Time" max="127" min="0" size="1" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the battery level. 0 means turn off auto report battery. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
-
-    <Value type="byte" index="11" genre="config" label="Auto Report Door/Window State Time" units="30 min" min="0" max="127" value="12" size="1">
+    <Value genre="config" index="11" label="Auto Report Door/Window State Time" max="127" min="0" size="1" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the door/window state. 0 means turn off auto report door/window state. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="12" genre="config" label="Auto Report Illumination Time" units="30 min" min="0" max="127" value="12" size="1">
+    <Value genre="config" index="12" label="Auto Report Illumination Time" max="127" min="0" size="1" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the illumination. 0 means turn off auto report illumination. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
     </Value>
- 
-    <Value type="byte" index="13" genre="config" label="Auto Report Temperature time" units="30 min" min="0" max="127" value="12" size="1">
+    <Value genre="config" index="13" label="Auto Report Temperature time" max="127" min="0" size="1" type="byte" units="30 min" value="12">
       <Help>
           The interval time for auto report the temperature. 0 means turn off auto report temperature. The default value is 12. The tick time can setting by the configuration No.20.
       </Help>
-    </Value> 
-    
-    <Value type="byte" index="20" genre="config" label="Auto Report Tick Interval" min="0" max="255" value="30">
+    </Value>
+    <Value genre="config" index="20" label="Auto Report Tick Interval" max="255" min="0" type="byte" value="30">
       <Help>
           The interval time for auto report each tick. Setting this configuration will effect configuration No.10, No.11, No.12 and No.13. Caution: Setting to 0 means turn off all auto report function.
       </Help>
     </Value>
-    
-    <Value type="byte" index="21" genre="config" label="Temperature Differential Report" min="0" max="255" value="1">
+    <Value genre="config" index="21" label="Temperature Differential Report" max="255" min="0" type="byte" value="1">
       <Help>
           The temperature differential to report. 0 means turn off this function. The unit is Fahrenheit. Enable this function the device will detect every minutes. And when the temperature is over 140 degree Fahrenheit, it will continue report. Enable this functionality will cause some issue please see the detail in the "Temperature Report" section.
       </Help>
     </Value>
- 
-    <Value type="byte" index="22" genre="config" label="Illumination Differential Report" min="0" max="255" value="0">
+    <Value genre="config" index="22" label="Illumination Differential Report" max="255" min="0" type="byte" value="0">
       <Help>
           The illumination differential to report.0 means turn off this function. The unit is percentage. Enable this function the device will detect every minutes. Enable this functionality will cause some issue please see the detail in the "Illumination Report" section.
       </Help>
     </Value>
   </CommandClass>
-
   <!-- Basic set as report -->
   <!-- <CommandClass id="32" setasreport="true" ignoremapping="true"/> -->
- 
-  <CommandClass id="48" create_vars="false">
-      <Instance index="1" />
-      <Value type="bool" genre="user" instance="1" index="0" label="Motion Sensor" read_only="true" write_only="false"  min="0" max="0" value="false" />
-      <Value type="bool" genre="user" instance="1" index="1" label="Door/Window Sensor" read_only="true" write_only="false" value="false" />
-      <Value type="bool" genre="user" instance="1" index="2" label="Tamper Sensor" read_only="true" write_only="false" min="0" max="0" value="false" />
-      <SensorMap index="0" type="12" />
-      <SensorMap index="1" type="10" />
-      <SensorMap index="2" type="8" />
+  <CommandClass id="48">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Motion Sensor" max="0" min="0" read_only="true" type="bool" value="false" write_only="false"/>
+    <Value genre="user" index="1" instance="1" label="Door/Window Sensor" read_only="true" type="bool" value="false" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Tamper Sensor" max="0" min="0" read_only="true" type="bool" value="false" write_only="false"/>
+    <SensorMap index="0" type="12"/>
+    <SensorMap index="1" type="10"/>
+    <SensorMap index="2" type="8"/>
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
   </CommandClass>
-
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="8" label="Lifeline" />
-      <Group index="2" max_associations="8" label="Light Control" />
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="Light Control" max_associations="8"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/polycontrol/doorlock.xml b/Config/polycontrol/doorlock.xml
index b988b7f9e6..90dcacf543 100644
--- a/Config/polycontrol/doorlock.xml
+++ b/Config/polycontrol/doorlock.xml
@@ -1,86 +1,112 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010E:0002:0008</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/polycontrol/doorlock.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0008">https://products.z-wavealliance.org/products/1251/</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0008">DanalockBTZE100Circle</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To remove or exclude the danalock into a Z-Wave network
+Set the controller in exclusion mode
+Touch the User Button until you hear two beeps.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To add or include the danalock into a Z-Wave network
+Set the controller in inclusion mode
+Touch the User Button until you hear two beeps.
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">The danalock can be set to factory settings by holding the User Button for ten beeps. Please use this procedure only when the primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Name">Danalock</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0008">U.S. / Canada / Mexico / CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1251/Danalock Product manual.pdf</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave Controlled door lock with keypad, and Bluetooth Smart.
+Operated by Z-Wave.
+Connect Danalock to your Z-Wave gateway -  Danalock interfaces with your existing Z-Wave network through the Danalock smartphone app.
+Operate Danalock remotely by accessing your Z-Wave network from anywhere in the world with internet access.
 
-<!-- Polycontrol: Danalock 150 door lock  -->
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1238/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1251/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Polycontrol: Danalock 150 door lock  -->
 
 	<!-- COMMAND_CLASS_BASIC does not respond to requests -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Direction" min="0" max="1" value="0" size="1">
-			<Help>0=The motor goes clockwise when unlatched; 1= The motor goes counterclockwise when unlatched</Help>
-			<Item label="Clockwise" value="0"/>
-			<Item label="Counterclockwise" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Lock Speed" min="1" max="5" value="5" size="1">
-			<Help>Speed (Torque)</Help>
-			<Item label="Slowest" value="1"/>
-			<Item label="Slow" value="2"/>
-			<Item label="Normal" value="3"/>
-			<Item label="Fast" value="4"/>
-			<Item label="Fastest" value="5"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Lock Mode" min="0" max="2" value="1" size="1">
-			<Help>0=Stepper motor mode wave drive (Power Saving); 1=Stepper motor mode full drive(Normal)</Help>
-			<Item label="Wave drive" value="0"/>
-			<Item label="Full drive" value="1"/>
-			<Item label="Relay mode" value="2"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="Lock Turn Degrees" min="1" max="100" value="9">
-			<Help>Factor 10 turn degree( 1 = degrees, 9 = 90 degres, etc. )</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="5" label="Auto Latch time" min="0" max="60" value="0">
-			<Help>How many seconds from the lock has been unlatched to it automatically close again. If 0 then it's disabled</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="6" label="Sound" min="0" max="1" value="1" size="1">
-			<Help>Disable or enable the beep sound from latch or unlatch operations(</Help>
-			<Item label="Disable" value="0"/>
-			<Item label="Enable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="7" label="Battery Type" min="0" max="1" value="0" size="1">
-			<Help>Set the type of battery that powers the device. This affect the returned battery state.</Help>
-			<Item label="3.6V" value="0"/>
-			<Item label="3.0V" value="1"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="8" label="Battery Alarm Percent" min="0" max="100" value="0">
-			<Help>When the battery level is equal to, or under this value, the device will notify with a beep sound after latch or unlatch</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="9" label="Turn and Go" min="0" max="1" value="0" size="1">
-			<Help>Used if the lock is using a optional rotation sensor. Latch and Go on will turn automatically when manual turn is detected.</Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="1"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="10" label="Brake and Go Back" min="0" max="15" value="0">
-			<Help>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Direction" max="1" min="0" size="1" type="list" value="0">
+      <Help>0=The motor goes clockwise when unlatched; 1= The motor goes counterclockwise when unlatched</Help>
+      <Item label="Clockwise" value="0"/>
+      <Item label="Counterclockwise" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Lock Speed" max="5" min="1" size="1" type="list" value="5">
+      <Help>Speed (Torque)</Help>
+      <Item label="Slowest" value="1"/>
+      <Item label="Slow" value="2"/>
+      <Item label="Normal" value="3"/>
+      <Item label="Fast" value="4"/>
+      <Item label="Fastest" value="5"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Lock Mode" max="2" min="0" size="1" type="list" value="1">
+      <Help>0=Stepper motor mode wave drive (Power Saving); 1=Stepper motor mode full drive(Normal)</Help>
+      <Item label="Wave drive" value="0"/>
+      <Item label="Full drive" value="1"/>
+      <Item label="Relay mode" value="2"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Lock Turn Degrees" max="100" min="1" type="byte" value="9">
+      <Help>Factor 10 turn degree( 1 = degrees, 9 = 90 degres, etc. )</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Auto Latch time" max="60" min="0" type="byte" value="0">
+      <Help>How many seconds from the lock has been unlatched to it automatically close again. If 0 then it's disabled</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Sound" max="1" min="0" size="1" type="list" value="1">
+      <Help>Disable or enable the beep sound from latch or unlatch operations(</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Battery Type" max="1" min="0" size="1" type="list" value="0">
+      <Help>Set the type of battery that powers the device. This affect the returned battery state.</Help>
+      <Item label="3.6V" value="0"/>
+      <Item label="3.0V" value="1"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Battery Alarm Percent" max="100" min="0" type="byte" value="0">
+      <Help>When the battery level is equal to, or under this value, the device will notify with a beep sound after latch or unlatch</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Turn and Go" max="1" min="0" size="1" type="list" value="0">
+      <Help>Used if the lock is using a optional rotation sensor. Latch and Go on will turn automatically when manual turn is detected.</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Brake and Go Back" max="15" min="0" type="byte" value="0">
+      <Help>
 			0 = Disabled. 
 			1-15 Seconds to brake. 
 			When used the lock will brake for x amount of seconds and then turn 75 degrees back. 
 			Made for special doors without door lever.(Only when unlatching).</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="11" label="Async" min="0" max="1" value="0" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Async" max="1" min="0" size="1" type="list" value="0">
+      <Help>
 			Used if the lock is using an optional rotation sensor. 
 			When async is enabled the lock will auto calibrate if already unlatched and asked to Unlatch again (used for special door locks where the key turn is asynced from the inside nob.)
 			</Help>
-			<Item label="Off" value="0"/>
-			<Item label="On" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="12" label="Door lock operation report type" min="0" max="2" value="0" size="1">
-			<Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="1"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Door lock operation report type" max="2" min="0" size="1" type="list" value="0">
+      <Help>
 			0 = Simple supported by all controllers that support door locks. 
 			1 = Advanced, more specific reports through notification Command Class. 
 			2 = No Door lock operation reports are sent unsolicited.
 			</Help>
-			<Item label="Simple" value="0"/>
-			<Item label="Advanced" value="1"/>
-			<Item label="Nothing" value="2"/>
-		</Value>
-	</CommandClass>
-
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-
+      <Item label="Simple" value="0"/>
+      <Item label="Advanced" value="1"/>
+      <Item label="Nothing" value="2"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/polycontrol/doorlockv3.xml b/Config/polycontrol/doorlockv3.xml
index 266b1f7f9a..b4def3c82a 100644
--- a/Config/polycontrol/doorlockv3.xml
+++ b/Config/polycontrol/doorlockv3.xml
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     Polycontrol: Danalock V3 door lock
     https://products.z-wavealliance.org/products/2556
     -->
     <!-- COMMAND_CLASS_BASIC does not respond to requests -->
-    <CommandClass id="32" setasreport="true"/>
-
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Twist Assist" min="0" max="1" value="0" size="1">
-            <Help></Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Enabled" value="1"/>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="2" label="Hold and Release" min="0" max="2147483647" units="seconds" value="0" size="4">
-            <Help>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Twist Assist" max="1" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Hold and Release" max="2147483647" min="0" size="4" type="int" units="seconds" value="0">
+      <Help>
                 0 Disable.
                 1 to 2147483647 Enable, time in seconds.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="3" label="Block to Block" min="0" max="1" value="0" size="1">
-            <Help></Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="4" label="BLE Temporary Allowed" min="0" max="2147483647" units="seconds" value="0" size="4">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Block to Block" max="1" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="BLE Temporary Allowed" max="2147483647" min="0" size="4" type="int" units="seconds" value="0">
+      <Help>
                 0 Disable.
                 1 to 2147483647 Enable, time in seconds.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="5" label="BLE Always Allowed" min="0" max="1" value="0" size="1">
-            <Help></Help>
-            <Item label="Disable" value="0"/>
-            <Item label="Enable" value="1"/>
-        </Value>
-        <Value type="int" genre="config" instance="1" index="6" label="Autolock" min="0" max="2147483647" units="seconds" value="0" size="4">
-            <Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="BLE Always Allowed" max="1" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Autolock" max="2147483647" min="0" size="4" type="int" units="seconds" value="0">
+      <Help>
                 0 Disable.
                 1 to 2147483647 Enable, time in seconds.
             </Help>
-        </Value>
-    </CommandClass>
-
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
-
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/polycontrol/keypad.xml b/Config/polycontrol/keypad.xml
index 6120b7666a..eabbd76e51 100644
--- a/Config/polycontrol/keypad.xml
+++ b/Config/polycontrol/keypad.xml
@@ -1,25 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
-
-<!-- Polycontrol: Danalock Keypad -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Polycontrol: Danalock Keypad -->
 
 	<!-- COMMAND_CLASS_BASIC does not respond to requests -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- COMMAND_CLASS_DOOR_LOCK does not respond to requests -->
-	<CommandClass id="98" getsupported="false"/>
-
-	<!-- COMMAND_CLASS_ALARM does not respond to requests -->
-	<CommandClass id="113" getsupported="false"/>
-
-	<!-- COMMAND_CLASS_POWERLEVEL does not respond to requests -->
-	<CommandClass id="115" action="remove"/>
-
-	<!-- COMMAND_CLASS_ASSOCIATION. This class is in the list reported, but it does not respond to requests -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Group 1" write_only="true"/>
-		</Associations>
-	</CommandClass>
-
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_DOOR_LOCK does not respond to requests -->
+  <CommandClass id="98">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM does not respond to requests -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_POWERLEVEL does not respond to requests -->
+  <CommandClass action="remove" id="115"/>
+  <!-- COMMAND_CLASS_ASSOCIATION. This class is in the list reported, but it does not respond to requests -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Group 1" max_associations="1" write_only="true"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/polycontrol/polylock.xml b/Config/polycontrol/polylock.xml
index b964f6b234..2c45b43b3d 100644
--- a/Config/polycontrol/polylock.xml
+++ b/Config/polycontrol/polylock.xml
@@ -1,38 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
-
-<!-- Polycontrol: Polylock  -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Polycontrol: Polylock  -->
 
 	<!-- COMMAND_CLASS_BASIC does not respond to requests -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="0" label="Invert Lock Direction" min="0" max="1" value="0">
-			<Help>0=The motor goes clockwise when unlatched; 1= The motor goes counterclockwise when unlatched</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="1" label="Run time Lock" min="1" max="15" value="5">
-			<Help>Motor/relay run time LOCK in sec 1-15</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="2" label="Run time UnLock" min="1" max="15" value="5">
-			<Help>Motor/relay run time UNLOCK in sec 1-15</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="Motor speed" min="0" max="15" value="9">
-			<Help>Value 0-15/0=fastest 15=slowest</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="4" label="Step Motor drive mode" size="1" value="0">
-			<Help>How the motor will turn according to torque and speed</Help>
-            <Item label="(Step motor) Wave drive mode.(Less torque, min. power usage, full rotation speed.)" value="0" />
-            <Item label="(Step motor) Full drive mode.  (Medium torque, max. power usage, full rotation speed.)" value="1" />
-            <Item label="(Step motor) HalfFstep drive mode. (Max. torque, max. power usage, half rotation speed.)" value="2" />
-            <Item label="(Relay) Puts DC on connector pin 1 &amp; 2 for the duration of parameter #2 or #3. The polarity of pin 1 &amp; 2 are reversed with respect to  open / close command. A close command would set p1+ and p2F, open is p1F and   p2+" value="3" />
-            <Item label="(Relay) Lock open sets p1+, p2F, p3z, p4z for parameter #3 seconds. Lock close sets p1z, p2z, p3+, p4F." value="4" />
-		</Value>
-	</CommandClass>
-
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Group 1" write_only="true"/>
-		</Associations>
-	</CommandClass>
-
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="0" instance="1" label="Invert Lock Direction" max="1" min="0" type="byte" value="0">
+      <Help>0=The motor goes clockwise when unlatched; 1= The motor goes counterclockwise when unlatched</Help>
+    </Value>
+    <Value genre="config" index="1" instance="1" label="Run time Lock" max="15" min="1" type="byte" value="5">
+      <Help>Motor/relay run time LOCK in sec 1-15</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Run time UnLock" max="15" min="1" type="byte" value="5">
+      <Help>Motor/relay run time UNLOCK in sec 1-15</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Motor speed" max="15" min="0" type="byte" value="9">
+      <Help>Value 0-15/0=fastest 15=slowest</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Step Motor drive mode" size="1" type="list" value="0">
+      <Help>How the motor will turn according to torque and speed</Help>
+      <Item label="(Step motor) Wave drive mode.(Less torque, min. power usage, full rotation speed.)" value="0"/>
+      <Item label="(Step motor) Full drive mode.  (Medium torque, max. power usage, full rotation speed.)" value="1"/>
+      <Item label="(Step motor) HalfFstep drive mode. (Max. torque, max. power usage, half rotation speed.)" value="2"/>
+      <Item label="(Relay) Puts DC on connector pin 1 &amp; 2 for the duration of parameter #2 or #3. The polarity of pin 1 &amp; 2 are reversed with respect to  open / close command. A close command would set p1+ and p2F, open is p1F and   p2+" value="3"/>
+      <Item label="(Relay) Lock open sets p1+, p2F, p3z, p4z for parameter #3 seconds. Lock close sets p1z, p2z, p3+, p4F." value="4"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Group 1" max_associations="1" write_only="true"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/popp/004407.xml b/Config/popp/004407.xml
index aad0761208..e16e4eb474 100644
--- a/Config/popp/004407.xml
+++ b/Config/popp/004407.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     Popp: Z-Wave CO Detector
     http://products.z-wavealliance.org/products/2086
diff --git a/Config/popp/009105.xml b/Config/popp/009105.xml
index f06b03bd81..f6c7232a24 100644
--- a/Config/popp/009105.xml
+++ b/Config/popp/009105.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Popp 009105 Wall Plug Switch Schuko (IP44) -->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
+<!-- Popp: POPE009105 Wall Plug switch Schuko (IP44) - Gen 5 -->
 	<!-- Configuration  -->
 	<CommandClass id="112">
 		<Value type="list" genre="config" instance="1" index="1" label="LED indication mode" size="1" value="1">
diff --git a/Config/popp/009303.xml b/Config/popp/009303.xml
index 01a44e5d66..de5a0b0ce8 100644
--- a/Config/popp/009303.xml
+++ b/Config/popp/009303.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
 <!-- Popp 009303 Z-Wave Plus Battery Wall Controller -->
 
diff --git a/Config/popp/009402.xml b/Config/popp/009402.xml
index 5ff8ffcad3..6d59e0da93 100644
--- a/Config/popp/009402.xml
+++ b/Config/popp/009402.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
 
 <!-- Popp: 10 Year Smoke Detector and Siren (POPE009402)
 
diff --git a/Config/popp/009501.xml b/Config/popp/009501.xml
index 642ae3cd3b..2f3ed81d8a 100644
--- a/Config/popp/009501.xml
+++ b/Config/popp/009501.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Popp Flow Stop Automated Water Shut-Off Valve
      https://www.popp.eu/wp-content/uploads/2015/07/Manual_Flow-Stop_POPP_En.pdf -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration -->
   <CommandClass id="112">
     <Value type="list" genre="config" instance="1" index="0" label="LED status" size="1" value="0">
diff --git a/Config/popp/012501.xml b/Config/popp/012501.xml
index 05eb70de73..70df1afb33 100644
--- a/Config/popp/012501.xml
+++ b/Config/popp/012501.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- 
 Popp 012501 Strike Lock Control 
 http://www.popp.eu/wp-content/uploads/2016/11/Manual_ElectricStrikeLockControl_POPP_en.pdf
diff --git a/Config/popp/123580.xml b/Config/popp/123580.xml
index 627eaa59af..e5740087a7 100644
--- a/Config/popp/123580.xml
+++ b/Config/popp/123580.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 
 <!-- Popp: 123580 Plug-in Dimmer -->
 
diff --git a/Config/popp/123601.xml b/Config/popp/123601.xml
index 4f81c302fd..70d100d734 100644
--- a/Config/popp/123601.xml
+++ b/Config/popp/123601.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
 <!-- Popp: 123601 Plug-in Switch -->
 
diff --git a/Config/popp/123658.xml b/Config/popp/123658.xml
index 1338adcc6e..1b04deb7d0 100644
--- a/Config/popp/123658.xml
+++ b/Config/popp/123658.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 
 <!-- Popp: 123658 Plug-in Switch plus Power Meter -->
 
diff --git a/Config/popp/700045.xml b/Config/popp/700045.xml
index 9db704158f..7b7c9354a5 100644
--- a/Config/popp/700045.xml
+++ b/Config/popp/700045.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     Popp: Universal Z-Wave Keypad
     http://products.z-wavealliance.org/products/2481
diff --git a/Config/popp/700168.xml b/Config/popp/700168.xml
index 6825f22c33..aed4172e20 100644
--- a/Config/popp/700168.xml
+++ b/Config/popp/700168.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Popp: Z-Wave Rain Sensor http://products.z-wavealliance.org/products/2418 -->
 	<!-- Configuration  -->
 	<CommandClass id="112">
diff --git a/Config/popp/700397.xml b/Config/popp/700397.xml
new file mode 100644
index 0000000000..d8ab8b358f
--- /dev/null
+++ b/Config/popp/700397.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+    <!--
+    Popp 700397 Wall Plug Switch Outdoor Schuko (IP44)
+    https://products.z-wavealliance.org/products/2842/
+    -->
+
+    <!-- Configuration  -->
+    <CommandClass id="112">
+        <Value type="list" genre="config" instance="1" index="1" label="LED indication mode" size="1" value="1">
+            <Help>Defines when the LED shall shine and how</Help>
+            <Item label="LED off, only blinks on traffic" value="0" />
+            <Item label="Defined by Parameter 21 and 22" value="1" />
+        </Value>
+
+        <Value type="short" genre="config" instance="1" index="2" label="Automatically switch Off" size="2" units="seconds" min="0" max="65535" value="0">
+            <Help>
+                If not zero, automatically switch device off after an user defined time.
+                0 -> Disabled (default)
+                1-65535 -> Enabled time in seconds.
+            </Help>
+        </Value>
+
+        <Value type="list" genre="config" instance="1" index="3" label="Behaviour for a RF Off-Command" size="1" value="0">
+            <Help>
+                Defines how to interpret RF Off-Command.
+                Ignore - to switch on the light by motion detectors and switch it off after some amount of time;
+                in case of multiple motion detectors each would try to switch the light off that would break logic;
+                Switch on - to switch on the light on both On and Off paddle press on the remote and switch it off after some amount of time.
+                Button off click will still work (if button operations are not disabled).
+            </Help>
+            <Item label="Switch off" value="0" />
+            <Item label="Ignore" value="1" />
+            <Item label="Switch on" value="2" />
+            <Item label="Switch on if load is off else switch off" value="3" />
+        </Value>
+
+        <Value type="list" genre="config" instance="1" index="4" label="Button Mode" size="1" value="0">
+            <Help>This parameter defines if the local button shall control (switch) the load or it is only used to send out scene control commands to the central controller.</Help>
+            <Item label="Controls Load + Controls Scenes" value="0" />
+            <Item label="Scene Control Only" value="1" />
+        </Value>
+
+        <Value type="list" genre="config" instance="1" index="5" label="Restore switch state after power cycle" size="1" value="1">
+            <Help>Defines if the switch should restore switch state to the last prior to device power off (power cycle).</Help>
+            <Item label="No, turn off" value="0" />
+            <Item label="Yes" value="1" />
+        </Value>
+
+        <Value type="list" genre="config" instance="1" index="21" label="LED Color on OFF state" size="1" value="0">
+            <Help>Defines the behavior of the LED when the load is switched off </Help>
+            <Item label="Off" value="0" />
+            <Item label="Red" value="1" />
+            <Item label="Green" value="2" />
+        </Value>
+
+        <Value type="list" genre="config" instance="1" index="22" label="LED Color on ON state" size="1" value="2">
+            <Help>Defines the behavior of the LED when the load is switched on </Help>
+            <Item label="Off" value="0" />
+            <Item label="Red" value="1" />
+            <Item label="Green" value="2" />
+        </Value>
+
+        <Value type="byte" genre="config" instance="1" index="23" label="Voltage Report Threshold" size="1" units="Volt" min="0" max="250" value="100">
+            <Help>
+                Report the voltage when the voltage has changed by more then X  * 1 V. 
+                When disabled the device will report every 10 minutes regardless of current voltage.
+                0 -> Disabled
+                100 -> Default
+                0 - 250 -> Volt
+            </Help>
+        </Value>
+
+        <Value type="byte" genre="config" instance="1" index="24" label="Current Reporting Threshold" size="1" units="* 0,01 A" min="0" max="255" value="10">
+            <Help>
+                Report the current when the current has changed by more then X *0,01 A.
+                When disabled the device will report every 10 minutes regardless of current change.
+                0 -> Disabled
+                10 -> default
+                0 - 255 -> * 0,01 A
+            </Help>
+        </Value>
+
+        <Value type="byte" genre="config" instance="1" index="25" label="Power Reporting Threshold" size="1" units="Watts" min="0" max="255" value="50">
+            <Help>
+                Report the power when the power  has changed by more then X Watt. 
+                When disabled the device will report every 10 minutes regardless of power consumption change.
+                0 -> Disabled
+                50 -> Default
+                1 - 255 -> Watts
+            </Help>
+        </Value>
+
+        <Value type="short" genre="config" instance="1" index="26" label="Soft Circuit Breaker Threshold" size="2" units="Watts" min="0" max="3600" value="3600">
+            <Help>
+                When the power draw exceeds the value set in this parameter for a time set in parameter 28 the soft circuit breaker will disconnect the load.
+                0 -> Disabled
+                3600 -> Default
+                1 - 3600 -> Watts
+            </Help>
+        </Value>
+
+        <Value type="byte" genre="config" instance="1" index="27" label="Soft Circuit Breaker Recovery Time" size="1" units="Seconds" min="0" max="255" value="0">
+            <Help>Once the soft circuit breaker tipps and the load is disconnected the load will be automatically reconnected after X seconds.
+                When disabled the load must be repowered manually or with wireless command.
+                0 -> Disabled (default)
+                1 - 255 -> Seconds
+            </Help>
+        </Value>
+
+        <Value type="byte" genre="config" instance="1" index="28" label="Soft Circuit Breaker Recovery Time" size="1" units="* 0,1 sec" min="0" max="255" value="10">
+            <Help>This delay time defines how fast the soft circuit breaker wil react when the threshold power is exceeded. 
+                The power is cut off only if the power draw remains over the threshold level for the defines time.
+                0 -> Disabled
+                10 -> Default
+                1 - 255 -> * 0,1 sec
+            </Help>
+        </Value>
+    </CommandClass>
+
+    <!-- Association Groups -->
+    <CommandClass id="133">
+        <Associations num_groups="2">
+            <Group index="1" max_associations="5" label="Lifeline"/>
+            <Group index="2" max_associations="5" label="Controlled by buttons" />
+        </Associations>
+    </CommandClass>
+
+</Product>
diff --git a/Config/popp/700793.xml b/Config/popp/700793.xml
new file mode 100644
index 0000000000..3f3e82c738
--- /dev/null
+++ b/Config/popp/700793.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+    <!--
+    Popp 700793 Power Plug
+    https://products.z-wavealliance.org/products/2955
+    -->
+    <!-- Configuration  -->
+    <CommandClass id="112">
+        <Value type="list" genre="config" instance="1" index="1" label="Condition after power failure" size="1" value="0">
+            <Help>Defines if the switch should restore switch state to the last prior to device power off (power cycle).</Help>
+            <Item label="Always Off" value="0" />
+            <Item label="Always On" value="1" />
+            <Item label="Last status" value="2" />
+        </Value>
+    </CommandClass>
+    <!-- Association Groups -->
+    <CommandClass id="133">
+        <Associations num_groups="1">
+            <Group index="1" max_associations="1" label="Lifeline"/>
+        </Associations>
+    </CommandClass>
+</Product>
diff --git a/Config/popp/smoke-detector.xml b/Config/popp/smoke-detector.xml
index 52713431ee..301bc813fd 100644
--- a/Config/popp/smoke-detector.xml
+++ b/Config/popp/smoke-detector.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
 <!-- Popp: Smoke Detector and Siren -->
 
diff --git a/Config/popp/solar-siren.xml b/Config/popp/solar-siren.xml
index cc83315716..3fa349730a 100644
--- a/Config/popp/solar-siren.xml
+++ b/Config/popp/solar-siren.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
 <!-- Popp: Solar Powered Outdoor Siren -->
 
diff --git a/Config/popp/zweather.xml b/Config/popp/zweather.xml
index 14dd30239e..da9de5b482 100644
--- a/Config/popp/zweather.xml
+++ b/Config/popp/zweather.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Popp: Z-Weather Wind and Weather Sensor -->
 	<!-- Configuration  -->
 	<CommandClass id="112">
diff --git a/Config/prowell/zw-702.xml b/Config/prowell/zw-702.xml
new file mode 100644
index 0000000000..2dea6878de
--- /dev/null
+++ b/Config/prowell/zw-702.xml
@@ -0,0 +1,18 @@
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0163:0301:3001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/prowell/zw-702.png</MetaDataItem>
+    <MetaDataItem id="0301" name="ZWProductPage" type="3001">https://products.z-wavealliance.org/products/995/</MetaDataItem>
+    <MetaDataItem id="0301" name="FrequencyName" type="3001">CEPT (Europe) / U.S. / Canada / Mexico / CEPT (Europe) / CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Queenlock Z-Wave Mortise Lock</MetaDataItem>
+    <MetaDataItem name="Description">Use AES encryption to Lock/Unlock Door,have User Code management?Logging and schedule setting</MetaDataItem>
+    <MetaDataItem id="0301" name="Identifier" type="3001">ZW-708</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/942/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/943/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/985/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/986/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/995/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/qees/reto-dimmer-plus.xml b/Config/qees/reto-dimmer-plus.xml
index db24d6fe2f..ad80df90ed 100644
--- a/Config/qees/reto-dimmer-plus.xml
+++ b/Config/qees/reto-dimmer-plus.xml
@@ -1,12 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- QEES RETO Dimmer Plus 2013 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>	
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="232" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
+<!-- QEES RETO Dimmer Plus 2013 --><Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0095:0001:3101</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/qees/reto-dimmer-plus.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="3101">https://products.z-wavealliance.org/products/612/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="3101">311-BQ(WB)-A1</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.qees.eu/support/support-center</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="3101">U.S. / Canada / Mexico / CEPT (Europe) / CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">QEES P311B dimmer with power meter</MetaDataItem>
+    <MetaDataItem name="Description">QEES RETO Shell Dimmer Plus is a highly aesthetic Z-Wave-controlled (EU frequency) 400W universal dimmer for any kind of dimmable load: Energy saving, halogen, LED and incandescent light bulbs.
+ 
+QEES RETO Shell Dimmer Plus is a wirelessly controlled universal dimmer for retrofit installation. It can be operated locally by pushing the top cover; this action will dim the local load. The device also monitors the power consumption of the load.
+
+QEES RETO Shell Dimmer Plus’s software can be upgraded “over the air”, allowing the device to receive additional features and bug fixes through firmware updates and software apps. This is a unique feature of all QEES products and it facilitates a future-proof, contemporary and flexible infrastructure solution for the building.
+
+QEES RETO Shell Dimmer Plus is compatible with all Z-Wave certified devices from other manufacturers. It also acts as a repeater inside your Z-Wave network increasing the range for your remote control.
+
+Like all QEES products, QEES RETO Shell Dimmer Plus has a self-calibrating built-in power meter and can switch off devices that otherwise would consume power when not needed.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.qees.eu/products/z-wave/plus-retofit-series/turtle-shells/turtle-shell-dimmer-eu/product/76/98/Plus-Retofit-Series/Plus-RETO-Shell/qees-reto-shell-dimmer-plus-eu</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/594/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/595/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/611/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/612/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
+  <CommandClass action="remove" id="38"/>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="232"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/qees/reto-plugin-switch.xml b/Config/qees/reto-plugin-switch.xml
index 242b9f2758..21affc313e 100644
--- a/Config/qees/reto-plugin-switch.xml
+++ b/Config/qees/reto-plugin-switch.xml
@@ -1,12 +1,39 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
-	<CommandClass id="48" action="remove" />
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="232" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
-</Product>
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0095:0001:3103</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/qees/reto-plugin-switch.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="3103">https://products.z-wavealliance.org/products/614/</MetaDataItem>
+    <MetaDataItem name="Description">QEES RETO Plug-in Dimmer Plus brings along comfort and elegance with an extremely easy setup and a unique design. With its help you can now wirelessly control all the dimmable loads you have inside your home.
+
+
+QEES RETO Plug-in Dimmer Plus is a Z-Wave-controlled 400W universal dimmer (US frequency) with schuko plug-in socket outlet, built-in power meter, multi-color LED feedback and one programmable group for retrofit installation.
+
+
+QEES RETO Plug-in Dimmer Plus’s software can be upgraded “over the air”, allowing the device to receive additional features or bug fixes through firmware updates and software apps.This is a unique feature of all QEES products and it facilitates a future-proof, contemporary and flexible infrastructure solution for the building.
 
+
+QEES RETO Plug-in Dimmer Plus is compatible with all Z-Wave certified devices from other manufacturers. It also acts as a repeater inside your Z-Wave network increasing the range for your remote control.
+
+
+Like all QEES products, QEES RETO Plug-in Dimmer Plus has a self-calibrating built-in power meter and can switch off the device that otherwise would consume power when not needed.</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.qees.eu/support</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="3103">U.S. / Canada / Mexico / CEPT (Europe) / CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">QEES P313B Plug-in dimmer</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.qees.eu/products/plus-retrofit-series/plugin-in-socket-outlets/plugin-in-socket-dimmer-us/product/72/106/Plus-Retrofit-Series/Plus-RETO-Plug-in/qees-reto-plug-in-dimmer-plus-us</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="3103">313-B(KFBGLE)(WB)-A1</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/596/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/597/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/613/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/614/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
+  <CommandClass action="remove" id="48"/>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="232"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/qubino/ZMNHAA2.xml b/Config/qubino/ZMNHAA2.xml
index 1decac45a2..fb975ad86d 100644
--- a/Config/qubino/ZMNHAA2.xml
+++ b/Config/qubino/ZMNHAA2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
 <!-- Qubino: ZMNHAA2 Flush 1 Relay -->
 
diff --git a/Config/qubino/ZMNHADx.xml b/Config/qubino/ZMNHADx.xml
index 6ad44e3b1e..50bae1c47e 100644
--- a/Config/qubino/ZMNHADx.xml
+++ b/Config/qubino/ZMNHADx.xml
@@ -1,6 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!--
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
 	Qubino: ZMNHADx Flush 1 Relay
 
 	ZMNHAD1 868,4 MHz
@@ -11,132 +10,125 @@
 -->
 
 	<!-- Configuration  -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable switch type (push button)" value="0" />
-			<Item label="Bi-stable switch type" value="1" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="3" label="Input 3 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="255">
-			<Help>Flush 1 relay module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
-			<Item label="ALL ON active, ALL OFF active" value="255" />
-			<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-			<Item label="ALL ON is not active ALL OFF active" value="1" />
-			<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="11" label="Automatic turning off relay after set time" min="0" max="32535" value="0">
-			<Help>0 => Auto OFF disabled. 1 - 32535  => 1 second (0,01s) - 32535 seconds (325,35s). Auto OFF enabled with define time, step is 1s or 10ms according to parameter 15. Default value 0</Help>
-		</Value>
-
-        <Value type="short" genre="config" instance="1" index="12" label="Automatic turning on relay after set time" min="0" max="32535" value="0">
-            <Help>0 - Auto OFF disabled. 1 - 32535  => 1 second (0,01s) - 32535 seconds (325,35s). Auto ON enabled with define time, step is 1s or 10ms according to parameter 15. Default value 0</Help>
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="15" label="Automatic turning on/off seconds or milliseconds selection" min="0" max="1" size="1" value="0">
-	        <Help/>
-	        <Item label="seconds" value="0" />
-	        <Item label="milliseconds" value="1" />
-        </Value>
-
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the relay after a power failure" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Flush 1 relay module saves its state before power failure (it returns to the last position saved before a power failure)" value="0" />
-			<Item label="Flush 1 relay module does not save the state after a power failure, it returns to off position." value="1" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="10">
-			<Help>Set value from 0 - 100 (0%- 100%). 0 = Reporting Disabled. 1 - 100 = 1% - 100% and reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 10%</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" min="0" max="32535" value="300">
-			<Help>Set value means time interval (0 - 32535) in seconds, when power report is send. 0 = Reporting Disabled. 1 - 32535 = 1 second - 32535 seconds and reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
-		</Value>
-
-        <Value type="list" genre="config" instance="1" index="63" label="Output switch selection" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="When system is turned off the output is 0V (NC)" value="0" />
-            <Item label="When system is turned off the output is 230V or 24V (NO)" value="1" />
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="100" label="Enable / Disable Endpoints I2 or select notification type and event" size="1" min="0" max="9" value="0">
-            <Help/>
-            <Item label="Endpoint, I2 disabled" value="0" />
-			<Item label="Home Security; Motion Detection, unknown location" value="1" />
-			<Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location" value="2" />
-			<Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location" value="3" />
-			<Item label="Water Alarm; Water Leak detected, unknown location" value="4" />
-			<Item label="Heat Alarm; Overheat detected, unknown location" value="5" />
-			<Item label="Smoke Alarm; Smoke detected, unknown location" value="6" />
-			<Item label="Sensor binary" value="9" />
-        </Value>
-
-        <Value type="list" genre="config" instance="1" index="101" label="Enable / Disable Endpoints I3 or select notification type and event" size="1" min="0" max="9" value="0">
-	        <Help/>
-	        <Item label="Endpoint, I3 disabled" value="0" />
-	        <Item label="Home Security; Motion Detection, unknown location" value="1" />
-	        <Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location" value="2" />
-	        <Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location" value="3" />
-	        <Item label="Water Alarm; Water Leak detected, unknown location" value="4" />
-	        <Item label="Heat Alarm; Overheat detected, unknown location" value="5" />
-	        <Item label="Smoke Alarm; Smoke detected, unknown location" value="6" />
-	        <Item label="Sensor binary" value="9" />
-        </Value>
-
-        <Value type="short" genre="config" instance="1" index="110" label="Temperature sensor offset settings" min="0" max="32535" value="32535">
-        	<Help>Set value is added or subtracted to actual measured value by sensor. Available configuration parameters : default value 32536. 32536  offset is 0.0C. From 1 to 100 = value from 0.1C to 10.0C is added to actual measured temperature. From 1001 to 1100 = value from -0.1 C to -10.0 C is subtracted to actual measured temperature.</Help>
-        </Value>
-
-        <Value type="byte" genre="config" instance="1" index="120" label="Digital temperature sensor reporting" min="0" max="127" value="5">
-        	<Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter. Available configuration parameters : 0 = reporting disabled. 1 to 127 = 0,1C to 12,7C, step is 0,1C. Default value is 5 = 0,5C</Help>
-        </Value>
-
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="9">
-			<Group index="1" max_associations="1"  label="Lifeline"/>
-			<Group index="2" max_associations="16" label="basic on/off (Output Q)" auto="true"/>
-			<Group index="3" max_associations="16" label="Input I2 basic report" />
-			<Group index="4" max_associations="16" label="Input I2 notification report" />
-			<Group index="5" max_associations="16" label="Input I2 binary sensor report" />
-			<Group index="6" max_associations="16" label="Input I3 basic report" />
-			<Group index="7" max_associations="16" label="Input I3 notification report" />
-			<Group index="8" max_associations="16" label="Input I3 binary sensor report" />
-			<Group index="9" max_associations="16" label="Multilevel sensor report" auto="true"/>
-		</Associations>
-	</CommandClass>
-
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
-    <!-- COMMAND_CLASS_ALARM.  This class is supported but is missing from the list reported by the ZMNHADx -->
-	<CommandClass id="113" action="add" getsupported="false" />
-
-    <CommandClass id="48" create_vars="false">
-        <Instance index="2" />
-        <Value type="bool" genre="user" instance="1" index="0" label="Int2" read_only="true" write_only="false" value="false" />
-        <Value type="bool" genre="user" instance="2" index="0" label="Int3" read_only="true" write_only="false" value="false" />
-        <SensorMap index="0" type="8" />
-	</CommandClass>
-
-   <CommandClass id="37" create_vars="false">
-       <Instance index="1" />
-       <Value type="bool" genre="user" instance="1" index="0" label="Switch" read_only="false" />
-   </CommandClass>
-
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable switch type (push button)" value="0"/>
+      <Item label="Bi-stable switch type" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input 3 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="255">
+      <Help>Flush 1 relay module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Automatic turning off relay after set time" max="32535" min="0" type="short" value="0">
+      <Help>0 => Auto OFF disabled. 1 - 32535  => 1 second (0,01s) - 32535 seconds (325,35s). Auto OFF enabled with define time, step is 1s or 10ms according to parameter 15. Default value 0</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Automatic turning on relay after set time" max="32535" min="0" type="short" value="0">
+      <Help>0 - Auto OFF disabled. 1 - 32535  => 1 second (0,01s) - 32535 seconds (325,35s). Auto ON enabled with define time, step is 1s or 10ms according to parameter 15. Default value 0</Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Automatic turning on/off seconds or milliseconds selection" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="seconds" value="0"/>
+      <Item label="milliseconds" value="1"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the relay after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Flush 1 relay module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Flush 1 relay module does not save the state after a power failure, it returns to off position." value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="10">
+      <Help>Set value from 0 - 100 (0%- 100%). 0 = Reporting Disabled. 1 - 100 = 1% - 100% and reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 10%</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="32535" min="0" type="short" value="300">
+      <Help>Set value means time interval (0 - 32535) in seconds, when power report is send. 0 = Reporting Disabled. 1 - 32535 = 1 second - 32535 seconds and reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Output switch selection" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="When system is turned off the output is 0V (NC)" value="0"/>
+      <Item label="When system is turned off the output is 230V or 24V (NO)" value="1"/>
+    </Value>
+    <Value genre="config" index="100" instance="1" label="Enable / Disable Endpoints I2 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Endpoint, I2 disabled" value="0"/>
+      <Item label="Home Security; Motion Detection, unknown location" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location" value="3"/>
+      <Item label="Water Alarm; Water Leak detected, unknown location" value="4"/>
+      <Item label="Heat Alarm; Overheat detected, unknown location" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected, unknown location" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="101" instance="1" label="Enable / Disable Endpoints I3 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Endpoint, I3 disabled" value="0"/>
+      <Item label="Home Security; Motion Detection, unknown location" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location" value="3"/>
+      <Item label="Water Alarm; Water Leak detected, unknown location" value="4"/>
+      <Item label="Heat Alarm; Overheat detected, unknown location" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected, unknown location" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature sensor offset settings" max="32535" min="0" type="short" value="32535">
+      <Help>Set value is added or subtracted to actual measured value by sensor. Available configuration parameters : default value 32536. 32536  offset is 0.0C. From 1 to 100 = value from 0.1C to 10.0C is added to actual measured temperature. From 1001 to 1100 = value from -0.1 C to -10.0 C is subtracted to actual measured temperature.</Help>
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Digital temperature sensor reporting" max="127" min="0" type="byte" value="5">
+      <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter. Available configuration parameters : 0 = reporting disabled. 1 to 127 = 0,1C to 12,7C, step is 0,1C. Default value is 5 = 0,5C</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="9">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group auto="true" index="2" label="basic on/off (Output Q)" max_associations="16"/>
+      <Group index="3" label="Input I2 basic report" max_associations="16"/>
+      <Group index="4" label="Input I2 notification report" max_associations="16"/>
+      <Group index="5" label="Input I2 binary sensor report" max_associations="16"/>
+      <Group index="6" label="Input I3 basic report" max_associations="16"/>
+      <Group index="7" label="Input I3 notification report" max_associations="16"/>
+      <Group index="8" label="Input I3 binary sensor report" max_associations="16"/>
+      <Group auto="true" index="9" label="Multilevel sensor report" max_associations="16"/>
+    </Associations>
+  </CommandClass>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM.  This class is supported but is missing from the list reported by the ZMNHADx -->
+  <CommandClass action="add" id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="48">
+    <Instance index="2"/>
+    <Value genre="user" index="0" instance="1" label="Int2" read_only="true" type="bool" value="false" write_only="false"/>
+    <Value genre="user" index="0" instance="2" label="Int3" read_only="true" type="bool" value="false" write_only="false"/>
+    <SensorMap index="0" type="8"/>
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="37">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Switch" read_only="false" type="bool"/>
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHBA2.xml b/Config/qubino/ZMNHBA2.xml
index 8f9e2ffbb7..34a5663606 100644
--- a/Config/qubino/ZMNHBA2.xml
+++ b/Config/qubino/ZMNHBA2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 
 <!-- Qubino: ZMNHBA2 Flush 2 Relay -->
 
diff --git a/Config/qubino/ZMNHBDx.xml b/Config/qubino/ZMNHBDx.xml
index 626bd77132..58381a9896 100644
--- a/Config/qubino/ZMNHBDx.xml
+++ b/Config/qubino/ZMNHBDx.xml
@@ -1,120 +1,102 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- Qubino: ZMNHBDx Flush 2 Relay -->
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Qubino: ZMNHBDx Flush 2 Relay -->
 <!-- http://www.vesternet.com/downloads/dl/file/id/636/z_wave_qubino_flush_relay_x_2_plus_manual.pdf -->
 
 	<!-- Configuration  -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable switch type (push button)" value="0" />
-			<Item label="Bi-stable switch type" value="1" />
-		  </Value>
-	
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable switch type (push button)" value="0" />
-			<Item label="Bi-stable switch type" value="1" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="255">
-			<Help>Flush 2 relays module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
-			<Item label="ALL ON active, ALL OFF active" value="255" />
-			<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-			<Item label="ALL ON is not active ALL OFF active" value="1" />
-			<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value> 
-
-		<Value type="short" genre="config" instance="1" index="11" label="Turn off Q1 after set time" min="0" max="32535" value="0">
-			<Help>When Q1 relay is ON it goes automatically OFF after set time. The timer is reset to zero every time the module receives an ON command from any source. Value is in 1s or 10ms depending on parameter 15</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="12" label="Turn on Q1 after set time" min="0" max="32535" value="0">
-			<Help>When Q1 relay is OFF it goes automatically ON after set time. The timer is reset to zero every time the module receives an OFF command from any source. Value is in 1s or 10ms depending on parameter 15</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="13" label="Turning off Q2 after set time" min="0" max="32535" value="0">
-			<Help>When Q2 relay is ON it goes automatically OFF after set time. The timer is reset to zero every time the module receives an ON command from any source. Value is in 1s or 10ms depending on parameter 15</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="14" label="Turning on Q2 after set time" min="0" max="32535" value="0">
-			<Help>When Q2 relay is OFF it goes automatically ON after set time. The timer is reset to zero every time the module receives an OFF command from any source. Value is in 1s or 10ms depending on parameter 15</Help>
-		</Value>
-
-		<Value type="list" size="1" genre="config" instance="1" index="15" label="Turning on/off s or ms selection" min="0" max="1" value="0">
-			<Help>Select the time units for auto on/off configuration. Applies tot he whole device</Help>
-			<Item label="1 Second" value="0" />
-			<Item label="10 Milliseconds" value="1" />
-		</Value>
-	
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the 2 relays after a power failure" size="1" min="0" max="1" value="0">
-			<Help/>
-	 		<Item label="Flush 2 relays module saves its state before power failure (it returns to the last position saved before a power failure)" value="0" />
-			<Item label="Flush 2 relays module does not save the state after a power failure, it returns to off position." value="1" />
-		</Value>
-	
-	 	<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change for Q1" size="1" min="0" max="100" value="1">
-			<Help>Set value from 0 - 100 (0%- 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 1</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="41" label="Power reporting in Watts on power change for Q2" size="1" min="0" max="100" value="1">
-		<Help>Set value from 0 - 100 (0%- 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 1</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval for Q1" min="0" max="65535" value="300">
-			<Help>Set value means time interval (0 1 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1 second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="43" label="Power reporting in Watts by time interval for Q2" min="0" max="65535" value="300">
-			<Help>Set value means time interval (0 1 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1 second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="63" label="Output Q1 switch selection" min="0" size="1"  max="1" value="0">
-			<Help>Type of device that is connected to the output (NC or NO)</Help>
-			<Item label="When the switch is turned off the output is 0V (NC)" value="0" />
-			<Item label="When the switch is turned off the output is 230V or 24V (NO)" value="1" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="64" label="Output Q2 switch selection" min="0" size="1"  max="1" value="0">
-			<Help>Type of device that is connected to the output (NC or NO)</Help>
-			<Item label="When the switch is turned off the output is 0V (NC)" value="0" />
-			<Item label="When the switch is turned off the output is 230V or 24V (NO)" value="1" />
-		</Value>
-		
-		<Value type="short" genre="config" instance="1" index="110" label="Temperature sensor offset settings" min="0" max="32535" value="32535">
-        		<Help>Set value is added or subtracted to actual measured value by sensor. Available configuration parameters : default value 32536. 32536  offset is 0.0C. From 1 to 100 = value from 0.1C to 10.0C is added to actual measured temperature. From 1001 to 1100 = value from -0.1 C to -10.0 C is subtracted to actual measured temperature.</Help>
-        	</Value>
-
-        	<Value type="byte" genre="config" instance="1" index="120" label="Digital temperature sensor reporting" min="0" max="127" value="5">
-        		<Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter. Available configuration parameters : 0 = reporting disabled. 1 to 127 = 0,1C to 12,7C, step is 0,1C. Default value is 5 = 0,5C</Help>
-        	</Value>
-
-	</CommandClass>
-
-	<CommandClass id="37">
-		<TriggerRefreshValue Genre="user" Index="0" Instance="1">
-			<RefreshClassValue CommandClass="37" RequestFlags="0" Index="0" Instance="2" />
-			<RefreshClassValue CommandClass="37" RequestFlags="0" Index="0" Instance="3" />
-		</TriggerRefreshValue>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="8">
-			<Group index="1" max_associations="1" label="Lifeline"/>
-			<Group index="2" max_associations="16" label="Basic on/off triggered at the change of output Q1 and reflecting its state" />
-			<Group index="3" max_associations="16" label="Switch binary report triggered at the changes of output Q1 and reflecting its state"/>
-			<Group index="4" max_associations="16" label="Power meter report triggered at the changes of output Q1 and reflecting its state" />
-			<Group index="5" max_associations="16" label="Basic on/off triggered at the change of output Q2 and reflecting its state" />
-			<Group index="6" max_associations="16" label="Switch binary report triggered at the changes of output Q2 and reflecting its state" />
-			<Group index="7" max_associations="16" label="Power meter report triggered at the changes of output Q2 and reflecting its state" />
-			<Group index="8" max_associations="16" label="Multilevel sensor report" />
-		</Associations>
-	</CommandClass>
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove"/>
-	<!-- Force multichannel -->
-	<CommandClass id="142" ForceInstances="true"/>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable switch type (push button)" value="0"/>
+      <Item label="Bi-stable switch type" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable switch type (push button)" value="0"/>
+      <Item label="Bi-stable switch type" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="255">
+      <Help>Flush 2 relays module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Turn off Q1 after set time" max="32535" min="0" type="short" value="0">
+      <Help>When Q1 relay is ON it goes automatically OFF after set time. The timer is reset to zero every time the module receives an ON command from any source. Value is in 1s or 10ms depending on parameter 15</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Turn on Q1 after set time" max="32535" min="0" type="short" value="0">
+      <Help>When Q1 relay is OFF it goes automatically ON after set time. The timer is reset to zero every time the module receives an OFF command from any source. Value is in 1s or 10ms depending on parameter 15</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Turning off Q2 after set time" max="32535" min="0" type="short" value="0">
+      <Help>When Q2 relay is ON it goes automatically OFF after set time. The timer is reset to zero every time the module receives an ON command from any source. Value is in 1s or 10ms depending on parameter 15</Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Turning on Q2 after set time" max="32535" min="0" type="short" value="0">
+      <Help>When Q2 relay is OFF it goes automatically ON after set time. The timer is reset to zero every time the module receives an OFF command from any source. Value is in 1s or 10ms depending on parameter 15</Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Turning on/off s or ms selection" max="1" min="0" size="1" type="list" value="0">
+      <Help>Select the time units for auto on/off configuration. Applies tot he whole device</Help>
+      <Item label="1 Second" value="0"/>
+      <Item label="10 Milliseconds" value="1"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the 2 relays after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Flush 2 relays module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Flush 2 relays module does not save the state after a power failure, it returns to off position." value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change for Q1" max="100" min="0" size="1" type="byte" value="1">
+      <Help>Set value from 0 - 100 (0%- 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 1</Help>
+    </Value>
+    <Value genre="config" index="41" instance="1" label="Power reporting in Watts on power change for Q2" max="100" min="0" size="1" type="byte" value="1">
+      <Help>Set value from 0 - 100 (0%- 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 1</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval for Q1" max="65535" min="0" type="short" value="300">
+      <Help>Set value means time interval (0 1 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1 second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
+    </Value>
+    <Value genre="config" index="43" instance="1" label="Power reporting in Watts by time interval for Q2" max="65535" min="0" type="short" value="300">
+      <Help>Set value means time interval (0 1 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1 second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Output Q1 switch selection" max="1" min="0" size="1" type="list" value="0">
+      <Help>Type of device that is connected to the output (NC or NO)</Help>
+      <Item label="When the switch is turned off the output is 0V (NC)" value="0"/>
+      <Item label="When the switch is turned off the output is 230V or 24V (NO)" value="1"/>
+    </Value>
+    <Value genre="config" index="64" instance="1" label="Output Q2 switch selection" max="1" min="0" size="1" type="list" value="0">
+      <Help>Type of device that is connected to the output (NC or NO)</Help>
+      <Item label="When the switch is turned off the output is 0V (NC)" value="0"/>
+      <Item label="When the switch is turned off the output is 230V or 24V (NO)" value="1"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature sensor offset settings" max="32535" min="0" type="short" value="32535">
+      <Help>Set value is added or subtracted to actual measured value by sensor. Available configuration parameters : default value 32536. 32536  offset is 0.0C. From 1 to 100 = value from 0.1C to 10.0C is added to actual measured temperature. From 1001 to 1100 = value from -0.1 C to -10.0 C is subtracted to actual measured temperature.</Help>
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Digital temperature sensor reporting" max="127" min="0" type="byte" value="5">
+      <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter. Available configuration parameters : 0 = reporting disabled. 1 to 127 = 0,1C to 12,7C, step is 0,1C. Default value is 5 = 0,5C</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="37">
+    <TriggerRefreshValue Genre="user" Index="0" Instance="1">
+      <RefreshClassValue CommandClass="37" Index="0" Instance="2" RequestFlags="0"/>
+      <RefreshClassValue CommandClass="37" Index="0" Instance="3" RequestFlags="0"/>
+    </TriggerRefreshValue>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="8">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic on/off triggered at the change of output Q1 and reflecting its state" max_associations="16"/>
+      <Group index="3" label="Switch binary report triggered at the changes of output Q1 and reflecting its state" max_associations="16"/>
+      <Group index="4" label="Power meter report triggered at the changes of output Q1 and reflecting its state" max_associations="16"/>
+      <Group index="5" label="Basic on/off triggered at the change of output Q2 and reflecting its state" max_associations="16"/>
+      <Group index="6" label="Switch binary report triggered at the changes of output Q2 and reflecting its state" max_associations="16"/>
+      <Group index="7" label="Power meter report triggered at the changes of output Q2 and reflecting its state" max_associations="16"/>
+      <Group index="8" label="Multilevel sensor report" max_associations="16"/>
+    </Associations>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Force multichannel -->
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHCA2.xml b/Config/qubino/ZMNHCA2.xml
index 07088cd17b..eaffe30105 100644
--- a/Config/qubino/ZMNHCA2.xml
+++ b/Config/qubino/ZMNHCA2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 
 <!-- Qubino: ZMNHCA2 Flush shutter Flush shutter with SW version S3 and above (SW version is part of P/N). Example: P/N: ZMNHCAx H1S3P1 for SW version 3 -->
 
diff --git a/Config/qubino/ZMNHCDx.xml b/Config/qubino/ZMNHCDx.xml
index 4ddcb50bdd..eb4f9fe1e7 100644
--- a/Config/qubino/ZMNHCDx.xml
+++ b/Config/qubino/ZMNHCDx.xml
@@ -1,7 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!--
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
 	Qubino: ZMNHCDx Flush shutter zwave+
 
 	ZMNHCD1 868,4 MHz
@@ -12,126 +10,113 @@
 -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-	<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="255">
-		<Help>Flush 1 relay module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
-		<Item label="ALL ON active, ALL OFF active" value="255" />
-		<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-		<Item label="ALL ON is not active ALL OFF active" value="1" />
-		<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change for Q1 or Q2" size="1" min="0" max="100" units="%" value="1">
-			<Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power (in Watts) in real time changes for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 1</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval for Q1 or Q2" min="0" max="65535" units="s" value="300">
-			<Help>Set value means time interval (0 - 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="71" label="Operating modes" size="1" min="0" max="1" value="0">
-			<Help>This parameter defines selection between two available operating modes</Help>
-			<Item label="Shutter mode" value="0" />
-			<Item label="Venetian mode (up/down and slate rotation)" value="1" />
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="72" label="Slats tilting full turn time" min="0" max="65535" units="s" value="150">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="255">
+      <Help>Flush 1 relay module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change for Q1 or Q2" max="100" min="0" size="1" type="byte" units="%" value="1">
+      <Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power (in Watts) in real time changes for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 1</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval for Q1 or Q2" max="65535" min="0" type="short" units="s" value="300">
+      <Help>Set value means time interval (0 - 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
+    </Value>
+    <Value genre="config" index="71" instance="1" label="Operating modes" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter defines selection between two available operating modes</Help>
+      <Item label="Shutter mode" value="0"/>
+      <Item label="Venetian mode (up/down and slate rotation)" value="1"/>
+    </Value>
+    <Value genre="config" index="72" instance="1" label="Slats tilting full turn time" max="65535" min="0" type="short" units="s" value="150">
+      <Help>
 				This parameter defines the time necessary for slats to make full turn (180 degrees)
 				default value 150 = 1,5 seconds
 				0 - Tilting time disabled
 				1 - 32767 = 0,01seconds - 327,67 seconds
 				</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="73" label="Slats position" min="0" max="1" size="1" value="1">
-			<Help>This parameter defines slats position after up/down movement through Z-wave or push-buttons
+    </Value>
+    <Value genre="config" index="73" instance="1" label="Slats position" max="1" min="0" size="1" type="list" value="1">
+      <Help>This parameter defines slats position after up/down movement through Z-wave or push-buttons
 				Slats return to previously set position only in case of
 				</Help>
-			<Item label="Z-wave control" value="0" />
-			<Item label="Z-wave control, push-button operation or when the lower limit switch is reached" value="1" />
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="74" label="Motor moving up/down time" min="0" max="65535" value="0">
-			<Help>This parameter defines shutter motor moving time of complete opening or complete closing.
+      <Item label="Z-wave control" value="0"/>
+      <Item label="Z-wave control, push-button operation or when the lower limit switch is reached" value="1"/>
+    </Value>
+    <Value genre="config" index="74" instance="1" label="Motor moving up/down time" max="65535" min="0" type="short" value="0">
+      <Help>This parameter defines shutter motor moving time of complete opening or complete closing.
 				Default value 0
 				0 - moving time disabled (working with limit switches).
 				1 - 65535 = 0,1seconds - 6553,5seconds
 				After that time motor is stopped (relay goes to off state)</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="76" label="Motor operation detection" min="0" max="127" units="w" value="10">
-			<Help>
+    </Value>
+    <Value genre="config" index="76" instance="1" label="Motor operation detection" max="127" min="0" type="byte" units="w" value="10">
+      <Help>
 				Power threshold to be interpreted when motor reach the limit switch.
 				default value 10 = 10W
 				0 - 127 = 1-127 W. The value 0 means reaching a limit switch will not be detected.
 			</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="78" label="Forced Shutter calibration" size="1" min="0" max="1" value="0">
-			<Help>By modifying the parameters setting from 0 to 1 a Shutter enters the calibration mode</Help>
-			<Item label="Default" value="0" />
-			<Item label="Start calibration process" value="1" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="85" label="Power consumption max delay time" min="0" max="50" units="" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="78" instance="1" label="Forced Shutter calibration" max="1" min="0" size="1" type="list" value="0">
+      <Help>By modifying the parameters setting from 0 to 1 a Shutter enters the calibration mode</Help>
+      <Item label="Default" value="0"/>
+      <Item label="Start calibration process" value="1"/>
+    </Value>
+    <Value genre="config" index="85" instance="1" label="Power consumption max delay time" max="50" min="0" type="byte" units="" value="0">
+      <Help>
 				This parameter defines the max time before motor power consumption is read after one of the relays is switched ON.
 				If there is no power consumption during this max time (motor not connected, damaged or requires higher time to start, motor in end position) the relay will switch OFF.
 				Time is defined by entering it manually.
 				default value 0 = time is set automatically
 				3 - 50 = 0,3seconds - 5seconds (100ms resolution)
 				</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="90" label="Time delay for next motor movement" min="1" max="30" units="" value="5">
-			<Help>
+    </Value>
+    <Value genre="config" index="90" instance="1" label="Time delay for next motor movement" max="30" min="1" type="byte" units="" value="5">
+      <Help>
 				This parameter defines the minimum time delay between next motor movement (minimum time between switching motor off and on again).
 				default value 5 = 500ms
 				1 - 30 = 0,1seconds - 3seconds (100ms resolution)
 				</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="110" label="Temperature sensor offset settings" min="1" max="65535" value="32536">
-			<Help>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature sensor offset settings" max="65535" min="1" type="short" value="32536">
+      <Help>
 				Set value is added or subtracted to actual measured value by sensor.
 				default value 32536
 				32536 - offset is 0.0C
 				From 1 to 100 - value from 0.1 C to 10.0 C is added to actual measured temperature.
 				From 1001 to 1100 - value from -0.1 C to -10.0 C is subtracted to actual measured temperature.
 			</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="120" label="Digital temperature sensor reporting" min="0" max="127" units="" value="5">
-			<Help>
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Digital temperature sensor reporting" max="127" min="0" type="byte" units="" value="5">
+      <Help>
 				If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter
 				default value 5 = 0,5C
 				0 - Reporting disabled
 				1-127 = 0,1C - 12,7C, step is 0,1C
 				</Help>
-		</Value>
-
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="9">
-			<Group index="1" max_associations="1"  label="Lifeline"/>
-			<Group index="2" max_associations="16" label="basic on/off (triggered at change of the input I1 state and reflecting its state)" />
-			<Group index="3" max_associations="16" label="basic on/off (triggered at change of the input I2 state and reflecting its state)" />
-			<Group index="4" max_associations="16" label="basic on/off (triggered at sensing moving direction of roller: up=FF, down=0)" />
-			<Group index="5" max_associations="16" label="basic on/off (triggered at reaching roller position: bottom=FF, top=0)" />
-			<Group index="6" max_associations="16" label="basic on/off (triggered at reaching roller position: bottom=FF, not bottom=0)" />
-			<Group index="7" max_associations="16" label="multilevel set (triggered at changes of value of the Flush shutter DC position)" />
-			<Group index="8" max_associations="16" label="multilevel set (triggered at changes of value of slats tilting position)" />
-			<Group index="9" max_associations="16" label="multilevel sensor report (triggered at change of temperature sensor)" />
-		</Associations>
-	</CommandClass>
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove" />
-
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="9">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="basic on/off (triggered at change of the input I1 state and reflecting its state)" max_associations="16"/>
+      <Group index="3" label="basic on/off (triggered at change of the input I2 state and reflecting its state)" max_associations="16"/>
+      <Group index="4" label="basic on/off (triggered at sensing moving direction of roller: up=FF, down=0)" max_associations="16"/>
+      <Group index="5" label="basic on/off (triggered at reaching roller position: bottom=FF, top=0)" max_associations="16"/>
+      <Group index="6" label="basic on/off (triggered at reaching roller position: bottom=FF, not bottom=0)" max_associations="16"/>
+      <Group index="7" label="multilevel set (triggered at changes of value of the Flush shutter DC position)" max_associations="16"/>
+      <Group index="8" label="multilevel set (triggered at changes of value of slats tilting position)" max_associations="16"/>
+      <Group index="9" label="multilevel sensor report (triggered at change of temperature sensor)" max_associations="16"/>
+    </Associations>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHDA2.xml b/Config/qubino/ZMNHDA2.xml
index 9f694ec1f0..2492f6e02c 100644
--- a/Config/qubino/ZMNHDA2.xml
+++ b/Config/qubino/ZMNHDA2.xml
@@ -1,82 +1,81 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- Qubino: ZMNHDA2 Flush Dimmer -->
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0159:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/qubino/ZMNHDA2.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1231/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">ZMNHDA2</MetaDataItem>
+    <MetaDataItem name="Name">GOAP Qubino Dimmer</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">flush zwave dimmer</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1231/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Qubino: ZMNHDA2 Flush Dimmer -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Mono-stable switch type (push button)" value="0" />
-			<Item label="Bi-stable switch type" value="1" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-			<Help>Default value 0.</Help>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly closed) input type" value="1"/>
-		</Value>
-	
-		<Value type="list" genre="config" instance="1" index="3" label="Input 3 contact type" size="1" min="0" max="1" value="0">
-			<Help>Default value 0.</Help>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value> 
-	
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="0">
-			<Help>Flush 1 relay module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system. Default value 0.</Help>
-			<Item label="ALL ON active, ALL OFF active" value="255" />
-			<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-			<Item label="ALL ON is not active ALL OFF active" value="1" />
-			<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value>
-	
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the relay after a power failure" size="1" min="0" max="1" value="0">
-			<Help>Default value 0.</Help>
-			<Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0" />
-			<Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1" />
-		</Value>
-	
- 		<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="5">
-			<Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 5.</Help>
-		</Value>
-	
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" min="0" max="65535" value="300">
-			<Help>Set value means time interval (0 - 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1 second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s).</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="60" label="Minimum dimming value" min="1" max="98" value="1">
-			<Help>1 - 98 = 1% - 98%, step is 1%. Minimum dimming values is set by entered value. Default value 1 (Minimum dimming value is 1%). NOTE: The minimum level may not be higher than the maximum level.</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="61" label="Maximum dimming value" min="2" max="99" value="99">
-			<Help>2 - 99 = 2% - 99%, step is 1%. Maximum dimming values is set by entered value. Default value 99 (Maximum dimming value is 99%). NOTE: The maximum level may not be lower than the minimum level.</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="65" label="Dimming time (soft on/off)" min="1" max="255" value="100">
-			<Help>Set value means time of moving the Dimmer between min. and max. dimming values by short press of push button I1 or controlled through. 1- 255 = 10mseconds - 2550mseconds (2,55s), step is 10mseconds. Default value 100 (Dimming time between min. and max. dimming values is 1s).</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="66" label="Dimming time when key pressed" min="1" max="255" value="3">
-			<Help>Time of moving the Dimmer between min. and max dimming values by continues hold of push button I1. 1- 255 = 1 second - 255 seconds. Default value 3 (Dimming time between min. and max. dimming values is 3s).</Help>
-		</Value>
-
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="4">
-			<Group index="1" max_associations="16" label="Multilevel Switch Set reflecting the state/value of the Flush Dimmer" />
-			<Group index="2" max_associations="16" label="Basic Set On/Off reflecting the input I2 state" />
-			<Group index="3" max_associations="16" label="Basic Set On/Off reflecting the input I3 state" />
-			<Group index="4" max_associations="1" label="Default controller reporting group" auto="true"/>
-		</Associations>
-	</CommandClass>
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove" />
-
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Mono-stable switch type (push button)" value="0"/>
+      <Item label="Bi-stable switch type" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help>Default value 0.</Help>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly closed) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input 3 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help>Default value 0.</Help>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="0">
+      <Help>Flush 1 relay module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system. Default value 0.</Help>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the relay after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help>Default value 0.</Help>
+      <Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="5">
+      <Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 5.</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="65535" min="0" type="short" value="300">
+      <Help>Set value means time interval (0 - 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1 second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s).</Help>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Minimum dimming value" max="98" min="1" type="byte" value="1">
+      <Help>1 - 98 = 1% - 98%, step is 1%. Minimum dimming values is set by entered value. Default value 1 (Minimum dimming value is 1%). NOTE: The minimum level may not be higher than the maximum level.</Help>
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Maximum dimming value" max="99" min="2" type="byte" value="99">
+      <Help>2 - 99 = 2% - 99%, step is 1%. Maximum dimming values is set by entered value. Default value 99 (Maximum dimming value is 99%). NOTE: The maximum level may not be lower than the minimum level.</Help>
+    </Value>
+    <Value genre="config" index="65" instance="1" label="Dimming time (soft on/off)" max="255" min="1" type="byte" value="100">
+      <Help>Set value means time of moving the Dimmer between min. and max. dimming values by short press of push button I1 or controlled through. 1- 255 = 10mseconds - 2550mseconds (2,55s), step is 10mseconds. Default value 100 (Dimming time between min. and max. dimming values is 1s).</Help>
+    </Value>
+    <Value genre="config" index="66" instance="1" label="Dimming time when key pressed" max="255" min="1" type="byte" value="3">
+      <Help>Time of moving the Dimmer between min. and max dimming values by continues hold of push button I1. 1- 255 = 1 second - 255 seconds. Default value 3 (Dimming time between min. and max. dimming values is 3s).</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Multilevel Switch Set reflecting the state/value of the Flush Dimmer" max_associations="16"/>
+      <Group index="2" label="Basic Set On/Off reflecting the input I2 state" max_associations="16"/>
+      <Group index="3" label="Basic Set On/Off reflecting the input I3 state" max_associations="16"/>
+      <Group auto="true" index="4" label="Default controller reporting group" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHDDx.xml b/Config/qubino/ZMNHDDx.xml
index 9fd4c2d272..f403db90c4 100644
--- a/Config/qubino/ZMNHDDx.xml
+++ b/Config/qubino/ZMNHDDx.xml
@@ -1,7 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- 
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- 
 Qubino: ZMNHDDx Flush Dimmer Z-Wave+
 ZMNHDD1 868,4 MHz
 ZMNHDD2 921,4 MHz
@@ -13,205 +11,183 @@ http://qubino.com/download/990/
 -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Mono-stable(push button)" value="0" />
-			<Item label="Bi-stable" value="1" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 switch type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Mono-stable (push button)" value="0" />
-			<Item label="Bi-stable" value="1" />
-		</Value>
-	
-		<Value type="list" genre="config" instance="1" index="3" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normally open)" value="0"/>
-			<Item label="NC (normally close)" value="1"/>
-		</Value> 
-	
-		<Value type="list" genre="config" instance="1" index="4" label="Input 3 contact type" size="1" min="0" max="1" value="0">
-			<Help>Default value 0</Help>
-			<Item label="NO (normally open)" value="0"/>
-			<Item label="NC (normally close)" value="1"/>
-		</Value> 
-	
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="255">
-			<Help>Flush dimmer module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Mono-stable(push button)" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 switch type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Mono-stable (push button)" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normally open)" value="0"/>
+      <Item label="NC (normally close)" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Input 3 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help>Default value 0</Help>
+      <Item label="NO (normally open)" value="0"/>
+      <Item label="NC (normally close)" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="255">
+      <Help>Flush dimmer module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.
 			Default value 255.</Help>
-			<Item label="ALL ON active, ALL OFF active" value="255" />
-			<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-			<Item label="ALL ON is not active ALL OFF active" value="1" />
-			<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value>
-	
-		<Value type="short" genre="config" instance="1" index="11" label="Automatic turning off output after set time" size="2" min="0" max="32536" value="0">
-			<Help>0 - Auto OFF disabled.
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Automatic turning off output after set time" max="32536" min="0" size="2" type="short" value="0">
+      <Help>0 - Auto OFF disabled.
 			1 second to 32536 seconds Auto OFF enabled with defined time, step is 1 second.
 			Default value 0.</Help>
-		</Value> 
-	
-		<Value type="short" genre="config" instance="1" index="12" label="Automatic turning on output after set time" size="2" min="0" max="32535" value="0">
-			<Help>0 - Auto ON disabled.
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Automatic turning on output after set time" max="32535" min="0" size="2" type="short" value="0">
+      <Help>0 - Auto ON disabled.
 			1 second to 32535 seconds Auto ON enabled with defined time, step is 1 second.
 			Default value 0.</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="20" label="Enable/Disable 3-way switch/additional switch" size="1" min="0" max="2" value="0">
-			<Help>Dimming is done by push button or switch connected to I1 (by default).
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Enable/Disable 3-way switch/additional switch" max="2" min="0" size="1" type="list" value="0">
+      <Help>Dimming is done by push button or switch connected to I1 (by default).
 				Enabling 3-way switch, dimming can be controlled by push button or switch connected to I1 and I2.
 				Default value 0.
 			</Help>
-			<Item label="single push button (connected to I1)" value="0"/>
-			<Item label="3-way switch (connected to I1 and I2)" value="1"/>
-			<Item label="Additional switch (connected to I2)" value="2"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="21" label="Enable/Disable Double click function" size="1" min="0" max="1" value="0">
-			<Help>If Double click function is enabled, a fast double click on the push button will set dimming power at maximum dimming value.
+      <Item label="single push button (connected to I1)" value="0"/>
+      <Item label="3-way switch (connected to I1 and I2)" value="1"/>
+      <Item label="Additional switch (connected to I2)" value="2"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Enable/Disable Double click function" max="1" min="0" size="1" type="list" value="0">
+      <Help>If Double click function is enabled, a fast double click on the push button will set dimming power at maximum dimming value.
 				Default value 0.</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Enabled" value="1"/>
-		</Value> 
-
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the relay after a power failure" size="1" min="0" max="1" value="0">
-			<Help>Default value 0.</Help>
-			<Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0" />
-			<Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1" />
-		</Value>
-	
- 		<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="5">
-			<Help>Set value from 0 - 100 (0% - 100%).
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the relay after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help>Default value 0.</Help>
+      <Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="5">
+      <Help>Set value from 0 - 100 (0% - 100%).
 			0 - Reporting Disabled.
 			1 - 100 = 1% - 100% Reporting enabled.
 			Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%.
 			Default value 5.</Help>
-			</Value>
-	
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" min="0" max="32767" value="300">
-			<Help>Set value means time interval (0 - 32767) in seconds, when power report is send.
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="32767" min="0" type="short" value="300">
+      <Help>Set value means time interval (0 - 32767) in seconds, when power report is send.
 			0 - Reporting Disabled.
 			1 second to 32767 seconds reporting enabled.
 			Power report is send with time interval set by entered value.
 			Default value 300 (power report in Watts is send each 300s).</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="60" label="Minimum dimming value" min="1" max="98" value="1">
-			<Help>1 - 98 = 1% - 98%, step is 1%. Minimum dimming values is set by entered value.
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Minimum dimming value" max="98" min="1" type="byte" value="1">
+      <Help>1 - 98 = 1% - 98%, step is 1%. Minimum dimming values is set by entered value.
 			Default value 1 (Minimum dimming value is 1%).</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="61" label="Maximum dimming value" min="2" max="99" value="99">
-			<Help>2 - 99 = 2% - 99%, step is 1%. Maximum dimming values is set by entered value.
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Maximum dimming value" max="99" min="2" type="byte" value="99">
+      <Help>2 - 99 = 2% - 99%, step is 1%. Maximum dimming values is set by entered value.
 			Default value 99 (Maximum dimming value is 99%).</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="65" label="Dimming time (soft on/off)" min="1" max="255" value="100">
-			<Help>Set value means time of moving the Dimmer between min. and max. dimming values by short press of push button I1 or controlled through.
+    </Value>
+    <Value genre="config" index="65" instance="1" label="Dimming time (soft on/off)" max="255" min="1" type="short" value="100">
+      <Help>Set value means time of moving the Dimmer between min. and max. dimming values by short press of push button I1 or controlled through.
 			1- 255 = 10mseconds - 2550mseconds (2,55s), step is 10mseconds.
 			Default value 100 (Dimming time between min. and max. dimming values is 1s).</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="66" label="Dimming time when key pressed" min="1" max="255" value="3">
-			<Help>Time of moving the Dimmer between min. and max dimming values by continues hold of push button I1.
+    </Value>
+    <Value genre="config" index="66" instance="1" label="Dimming time when key pressed" max="255" min="1" type="short" value="3">
+      <Help>Time of moving the Dimmer between min. and max dimming values by continues hold of push button I1.
 			1- 255 = 1 second - 255 seconds.
 			Default value 3 (Dimming time between min. and max. dimming values is 3s).</Help>
-		</Value>
-		
-		<Value type="list" genre="config" instance="1" index="67" label="Ignore start level" size="1" min="0" max="1" value="0">
-			<Help>This parameter is used with association group 4.
+    </Value>
+    <Value genre="config" index="67" instance="1" label="Ignore start level" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter is used with association group 4.
 				A receiving device SHOULD respect the start level if the Ignore Start Level bit is 0.
 				A receiving device MUST ignore the start level if the Ignore Start Level bit is 1.
 				Default value 0.</Help>
-			<Item label="respect start level" value="0"/>
-			<Item label="ignore start level" value="1"/>
-		</Value> 
-		
-		<Value type="list" genre="config" instance="1" index="68" label="Dimming duration" size="1" min="0" max="1" value="0">
-			<Help>This parameter is used with association group 3.
+      <Item label="respect start level" value="0"/>
+      <Item label="ignore start level" value="1"/>
+    </Value>
+    <Value genre="config" index="68" instance="1" label="Dimming duration" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter is used with association group 3.
 				The Duration field MUST specify the time that the transition should take from the current value to the new target value.
 				A supporting device SHOULD respect the specified Duration value.
 				Default value 0.</Help>
-			<Item label="Respect start level" value="0"/>
-			<Item label="Ignore start level" value="1"/>
-		</Value> 
-		
-		<Value type="list" genre="config" instance="1" index="100" label="Enable / Disable Endpoints I2 or select Notification Type and Event" size="1" min="0" max="9" value="1">
-			<Help>Enabling I2 means that Endpoint (I2) will be present on UI.
+      <Item label="Respect start level" value="0"/>
+      <Item label="Ignore start level" value="1"/>
+    </Value>
+    <Value genre="config" index="100" instance="1" label="Enable / Disable Endpoints I2 or select Notification Type and Event" max="9" min="0" size="1" type="list" value="1">
+      <Help>Enabling I2 means that Endpoint (I2) will be present on UI.
 			Disabling it will result in hiding the endpoint according to the parameter set value.
 			Additionally, a Notification Type and Event can be selected for the endpoint.
 			Endpoint device type selection: notification sensor (1 - 6) sensor binary (9).
 			NOTE: After parameter change, module has to be re included into the network in order setting to take effect!
 			Default value 1.</Help>
-			<Item label="Home Security; Motion Detection, unknown location." value="1"/>
-			<Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location." value="2"/>
-			<Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location." value="3"/>
-			<Item label="Water Alarm; Water Leak detected, unknown location." value="4"/>
-			<Item label="Heat Alarm; Overheat detected, unknown location" value="5"/>
-			<Item label="Smoke Alarm; Smoke detected, unknown location" value="6"/>
-			<Item label="Endpoint, I2 disabled" value="0"/>
-			<Item label="Sensor binary" value="9"/>
-		</Value> 
-		
-		<Value type="list" genre="config" instance="1" index="101" label="Enable / Disable Endpoints I3 or select Notification Type and Event" size="1" min="0" max="9" value="1">
-			<Help>Enabling I3 means that Endpoint (I3) will be present on UI.
+      <Item label="Home Security; Motion Detection, unknown location." value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location." value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location." value="3"/>
+      <Item label="Water Alarm; Water Leak detected, unknown location." value="4"/>
+      <Item label="Heat Alarm; Overheat detected, unknown location" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected, unknown location" value="6"/>
+      <Item label="Endpoint, I2 disabled" value="0"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="101" instance="1" label="Enable / Disable Endpoints I3 or select Notification Type and Event" max="9" min="0" size="1" type="list" value="1">
+      <Help>Enabling I3 means that Endpoint (I3) will be present on UI.
 			Disabling it will result in hiding the endpoint according to the parameter set value.
 			Additionally, a Notification Type and Event can be selected for the endpoint.
 			Endpoint device type selection: notification sensor (1 - 6) sensor binary (9).
 			NOTE: After parameter change, module has to be re included into the network in order setting to take effect!
 			Default value 1.</Help>
-			<Item label="Home Security; Motion Detection, unknown location." value="1"/>
-			<Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location." value="2"/>
-			<Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location." value="3"/>
-			<Item label="Water Alarm; Water Leak detected, unknown location." value="4"/>
-			<Item label="Heat Alarm; Overheat detected, unknown location" value="5"/>
-			<Item label="Smoke Alarm; Smoke detected, unknown location" value="6"/>
-			<Item label="Endpoint, I3 disabled" value="0"/>
-			<Item label="Sensor binary" value="9"/>
-		</Value> 
-
-		<Value type="short" genre="config" instance="1" index="110" label="Temperature sensor offset settings" min="1" max="32536" value="32536">
-			<Help>Set value is added or subtracted to actual measured value by sensor.
+      <Item label="Home Security; Motion Detection, unknown location." value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location." value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location." value="3"/>
+      <Item label="Water Alarm; Water Leak detected, unknown location." value="4"/>
+      <Item label="Heat Alarm; Overheat detected, unknown location" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected, unknown location" value="6"/>
+      <Item label="Endpoint, I3 disabled" value="0"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature sensor offset settings" max="32536" min="1" type="short" value="32536">
+      <Help>Set value is added or subtracted to actual measured value by sensor.
 			32536 : offset is 0.0C.
 			From 1 to 100 : value from 0.1 C to 10.0 C is added to actual measured temperature.
 			From 1001 to 1100 : value from -0.1 C to -10.0 C is subtracted to actual measured temperature.
 			Default value 32536.
 			</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="120" label="Digital temperature sensor reporting" min="0" max="127" value="5">
-			<Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Digital temperature sensor reporting" max="127" min="0" type="byte" value="5">
+      <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
 			0 : Reporting disabled.
 			1- 127 = 0,1C - 12,7C, step is 0,1C.
 			Default value 5 = 0,5C change.
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="11">
-			<Group index="1" max_associations="1" label="Lifeline"/>
-			<Group index="2" max_associations="16" label="Basic on/off input I1"/>
-			<Group index="3" max_associations="16" label="Multilevel set Flush dimmer"/>
-			<Group index="4" max_associations="16" label="Start level change/stop level change input I1"/>
-			<Group index="5" max_associations="16" label="Basic on/off input I2"/>
-			<Group index="6" max_associations="16" label="Notification report input I2"/>
-			<Group index="7" max_associations="16" label="Binary sensor input I2"/>
-			<Group index="8" max_associations="16" label="Basic on/off input I3"/>
-			<Group index="9" max_associations="16" label="Notification report input I3"/>
-			<Group index="10" max_associations="16" label="Binary sensor input I3"/>
-			<Group index="11" max_associations="16" label="Multilevel sensor report temp sensor"/>
-		</Associations>
-	</CommandClass>
-
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove" />
-
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="11">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic on/off input I1" max_associations="16"/>
+      <Group index="3" label="Multilevel set Flush dimmer" max_associations="16"/>
+      <Group index="4" label="Start level change/stop level change input I1" max_associations="16"/>
+      <Group index="5" label="Basic on/off input I2" max_associations="16"/>
+      <Group index="6" label="Notification report input I2" max_associations="16"/>
+      <Group index="7" label="Binary sensor input I2" max_associations="16"/>
+      <Group index="8" label="Basic on/off input I3" max_associations="16"/>
+      <Group index="9" label="Notification report input I3" max_associations="16"/>
+      <Group index="10" label="Binary sensor input I3" max_associations="16"/>
+      <Group index="11" label="Multilevel sensor report temp sensor" max_associations="16"/>
+    </Associations>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHIA2.xml b/Config/qubino/ZMNHIA2.xml
index 0ce9d63193..4d2f497b7e 100644
--- a/Config/qubino/ZMNHIA2.xml
+++ b/Config/qubino/ZMNHIA2.xml
@@ -1,119 +1,103 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- Qubino: ZMNHIA2 Flush On Off thermostat -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Qubino: ZMNHIA2 Flush On Off thermostat -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="3" label="Input 3 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="1" min="0" max="255" value="255">
-			<Help>Flush on off thermostat module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
-			<Item label="ALL ON active, ALL OFF active" value="255" />
-			<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-			<Item label="ALL ON is not active ALL OFF active" value="1" />
-			<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="11" label="Set point set by I2" size="2" min="0" max="65535" value="65535">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input 3 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="1" type="list" value="255">
+      <Help>Flush on off thermostat module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Set point set by I2" max="65535" min="0" size="2" type="short" value="65535">
+      <Help>
 				When I2 is pressed set point will be set according to the value of this parameter.
 				default value 65535
 				65535 - input I2 does not influence on the set point
 				From 0 to 990 - set point from 0.0 C to 99.0 C
 				From 1001 to 1150 - set point from -0.1 C to -15.0 C
 				</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="12" label="Set point set by I3" size="2" min="0" max="65535" value="65535">
-			<Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Set point set by I3" max="65535" min="0" size="2" type="short" value="65535">
+      <Help>
 				When I3 is pressed set point will be set according to the value of this parameter.
 				default value 65535
 				65535 - input I2 does not influence on the set point
 				From 0 to 990 - set point from 0.0 C to 99.0 C
 				From 1001 to 1150 - set point from -0.1 C to -15.0 C
 				</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the relay after a power failure" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Module saves its state before power failure (it returns to the last position saved before a power failure)" value="0" />
-			<Item label="Module does not save the state after a power failure, it returns to off position" value="1" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="5">
-			<Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 5</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" min="0" max="65535" value="300">
-			<Help>Set value means time interval (0 - 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1 second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
-		</Value>
-
-		 <Value type="byte" genre="config" instance="1" index="43" label="Hysteresis On" size="1" min="0" max="255" value="132">
-             <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating on. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
-         </Value>
-
-		<Value type="byte" genre="config" instance="1" index="44" label="Hysteresis Off" size="1" min="0" max="255" value="132">
-			<Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating off. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
-		</Value>
-
-        <Value type="byte" genre="config" instance="1" index="45" label="Antifreeze" size="1" min="0" max="255" value="50">
-			<Help>Set value means at which temperature the heating will be turned on even if the thermostat was manually set to off. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="60" label="Minimum Temperature alarm" size="2" min="1" max="1000" value="50">
-			<Help>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the relay after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Module does not save the state after a power failure, it returns to off position" value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="5">
+      <Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 5</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="65535" min="0" type="short" value="300">
+      <Help>Set value means time interval (0 - 65535) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 65535 = 1 second - 65535 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
+    </Value>
+    <Value genre="config" index="43" instance="1" label="Hysteresis On" max="255" min="0" size="1" type="byte" value="132">
+      <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating on. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
+    </Value>
+    <Value genre="config" index="44" instance="1" label="Hysteresis Off" max="255" min="0" size="1" type="byte" value="132">
+      <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating off. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
+    </Value>
+    <Value genre="config" index="45" instance="1" label="Antifreeze" max="255" min="0" size="1" type="byte" value="50">
+      <Help>Set value means at which temperature the heating will be turned on even if the thermostat was manually set to off. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Minimum Temperature alarm" max="1000" min="1" size="2" type="short" value="50">
+      <Help>
 				Default value 50 (Minimum Temperature alarm is 5.0C)
 				1 - 1000 = 0.1C - 100.0C, step is 0.1C.
 				Minimum temperature alarm is set by entered value. In case is set value out of this range, module is changing set value automatically to default value
 				</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="61" label="Maximum Temperature alarm" size="2" min="1" max="1000" value="700">
-			<Help>
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Maximum Temperature alarm" max="1000" min="1" size="2" type="short" value="700">
+      <Help>
 				Default value 700 (Minimum Temperature alarm is 70.0C)
 				1 - 1000 = 0.1C - 100.0C, step is 0.1C.
 				Maximum temperature alarm is set by entered value. In case is set value out of this range, module is changing set value automatically to default value
 				</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="63" label="Switch selection" size="1" min="0" max="1" value="1">
-			<Help>Set value means the type of the heating device that is connected to the relay output. The heating device type can be normally open (NO) or normally close (NC).</Help>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="6">
-			<Group index="1" max_associations="16" label="basic on/off (triggered at change of the output Q state and reflecting its state)" auto="false"/>
-			<Group index="2" max_associations="16" label="basic on/off (triggered at change of the input I2 state and reflecting its state)" />
-			<Group index="3" max_associations="16" label="basic on/off (triggered at change of the input I3 state and reflecting its state)" />
-			<Group index="4" max_associations="16" label="basic on/off (triggered at change of the Alarm too high temperature state and reflecting its state)" />
-			<Group index="5" max_associations="16" label="basic on/off (triggered at change of the Alarm too low temperature state and reflecting its state)" />
-			<Group index="6" max_associations="1" label="Lifeline" auto="true"/>
-		</Associations>
-	</CommandClass>
-
-	<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0" />
-
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Switch selection" max="1" min="0" size="1" type="list" value="1">
+      <Help>Set value means the type of the heating device that is connected to the relay output. The heating device type can be normally open (NO) or normally close (NC).</Help>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="6">
+      <Group auto="false" index="1" label="basic on/off (triggered at change of the output Q state and reflecting its state)" max_associations="16"/>
+      <Group index="2" label="basic on/off (triggered at change of the input I2 state and reflecting its state)" max_associations="16"/>
+      <Group index="3" label="basic on/off (triggered at change of the input I3 state and reflecting its state)" max_associations="16"/>
+      <Group index="4" label="basic on/off (triggered at change of the Alarm too high temperature state and reflecting its state)" max_associations="16"/>
+      <Group index="5" label="basic on/off (triggered at change of the Alarm too low temperature state and reflecting its state)" max_associations="16"/>
+      <Group auto="true" index="6" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHIDxS1.xml b/Config/qubino/ZMNHIDxS1.xml
index 85a365bd9c..d9d689c3f0 100644
--- a/Config/qubino/ZMNHIDxS1.xml
+++ b/Config/qubino/ZMNHIDxS1.xml
@@ -9,9 +9,13 @@ ZMNHID5 916,0 MHz
 
 ref: http://qubino.com/download/1506/
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 
-    <CommandClass id="67" override_precision="2"  />
+    <CommandClass id="67">
+    	<Compatibility>
+    	 	<OverridePrecision>2</OverridePrecision>
+    	</Compatibility>
+    </CommandClass>
     <!-- Configuration -->
     <CommandClass id="112">
         <Value type="list" genre="config" instance="1" index="1" label="Input I1 switch type" size="1" min="0" max="1" value="1">
diff --git a/Config/qubino/ZMNHIDxS2.xml b/Config/qubino/ZMNHIDxS2.xml
index a19779cde4..6d5baa9c1e 100644
--- a/Config/qubino/ZMNHIDxS2.xml
+++ b/Config/qubino/ZMNHIDxS2.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Qubino: ZMNHIDx Flush On Off thermostat Z-Wave+ H1S2P1
 ZMNHID1 868,4 MHz
@@ -8,288 +7,289 @@ ZMNHID4 869,0 MHz
 ZMNHID5 916,0 MHz
 
 ref: http://qubino.com/download/1061/
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-     <!-- The thermostat does not properly report its operating modes -->
-	<CommandClass id="64">
-		<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0" value="0">
-            <Item label="Off" value="0" />
-            <Item label="Heat" value="1" />
-        </Value>
-   		<SupportedModes>
-     		<Mode index="0" label="Off" />
-     		<Mode index="1" label="Heat" />
-   		</SupportedModes>
-	</CommandClass>
-
-    <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-    <CommandClass id="67"  base="0" override_precision="2"  />
-    
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Input I1 switch type" size="1" min="0" max="1" value="1">
-            <Help/>
-            <Item label="Mono-stable" value="0"/>
-            <Item label="Bi-stable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="2" label="Input I2 switch type" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="Mono-stable" value="0"/>
-            <Item label="Bi-stable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="3" label="Input I3 switch type" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="Mono-stable" value="0"/>
-            <Item label="Bi-stable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="4" label="Input 1 contact type" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="NO (normally open) input type" value="0"/>
-            <Item label="NC (normally close) input type" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="5" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="NO (normally open) input type" value="0"/>
-            <Item label="NC (normally close) input type" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="6" label="Input 3 contact type" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="NO (normally open) input type" value="0"/>
-            <Item label="NC (normally close) input type" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="255">
-            <Help>Flush on off thermostat module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
-            <Item label="ALL ON active, ALL OFF active" value="255" />
-            <Item label="ALL ON is not active ALL OFF is not active" value="0" />
-            <Item label="ALL ON is not active ALL OFF active" value="1" />
-            <Item label="ALL ON active ALL OFF is not active" value="2" />
-        </Value>
-        <Value type="short" genre="config" instance="1" index="11" label="Set point set by I1" size="2" min="0" max="65535" value="1">
-            <Help>
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- The thermostat does not properly report its operating modes -->
+  <CommandClass id="64">
+    <Value genre="user" index="0" instance="1" label="Mode" max="0" min="0" read_only="false" type="list" units="" value="0" write_only="false">
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+    </SupportedModes>
+  </CommandClass>
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input I1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input I2 switch type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input I3 switch type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Input 1 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normally open) input type" value="0"/>
+      <Item label="NC (normally close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normally open) input type" value="0"/>
+      <Item label="NC (normally close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Input 3 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normally open) input type" value="0"/>
+      <Item label="NC (normally close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="255">
+      <Help>Flush on off thermostat module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Set point set by I1" max="65535" min="0" size="2" type="short" value="1">
+      <Help>
                 When I1 is pressed set point will be set according to the value of this parameter.
                 Default value 1.
                 32767 - input I1 does not influence on the set point
                 From 0 to 990 - set point from 0.0 C to 99.0 C
                 From 1001 to 1150 - set point from -0.1 C to -15.0 C
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="12" label="Set point set by I2" size="2" min="0" max="65535" value="32767">
-            <Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Set point set by I2" max="65535" min="0" size="2" type="short" value="32767">
+      <Help>
                 When I3 is pressed set point will be set according to the value of this parameter.
                 Default value 32767.
                 32767 - input I2 does not influence on the set point
                 From 0 to 990 - set point from 0.0 C to 99.0 C
                 From 1001 to 1150 - set point from -0.1 C to -15.0 C
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="13" label="Set point set by I3" size="2" min="0" max="65535" value="32767">
-            <Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Set point set by I3" max="65535" min="0" size="2" type="short" value="32767">
+      <Help>
                 When I3 is pressed set point will be set according to the value of this parameter.
                 Default value 32767.
                 32767 - input I3 does not influence on the set point
                 From 0 to 990 - set point from 0.0 C to 99.0 C
                 From 1001 to 1150 - set point from -0.1 C to -15.0 C
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="0">
-            <Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 0</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" min="0" max="65535" value="0">
-            <Help>Set value means time interval (0 - 65535) in seconds, when power report is send. 0 - Reporting Disabled.
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="0">
+      <Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 0</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="65535" min="0" type="short" value="0">
+      <Help>Set value means time interval (0 - 65535) in seconds, when power report is send. 0 - Reporting Disabled.
                 1 - 65535 = 1 second - 65535 seconds.
                 Reporting enabled.
                 Power report is send with time interval set by entered value.
                 Default value 0</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="43" label="Hysteresis On" size="2" min="0" max="1127" value="1005">
-            <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating on.
+    </Value>
+    <Value genre="config" index="43" instance="1" label="Hysteresis On" max="1127" min="0" size="2" type="short" value="1005">
+      <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating on.
                 The parameter can be set from 0 to 1127 where 0 to 127 means from 0.0 C to 12.7 C and from 1001 to 1127 means from - 0.1 C to -12.7 C.
                 Default value 132 (-0.5 C)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="44" label="Hysteresis Off" size="2" min="0" max="1127" value="5">
-            <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating off.
+    </Value>
+    <Value genre="config" index="44" instance="1" label="Hysteresis Off" max="1127" min="0" size="2" type="short" value="5">
+      <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating off.
                 The parameter can be set from 0 to 1127 where 0 to 127 means from 0.0 C to 12.7 C and from 1001 to 1127 means from - 0.1 C to -12.7 C.
                 Default value 5 (+0.5 C)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="45" label="Antifreeze" size="2" min="0" max="1127" value="50">
-            <Help>Set value means at which temperature the device will be turned on even if the thermostat was manually set to off.
+    </Value>
+    <Value genre="config" index="45" instance="1" label="Antifreeze" max="1127" min="0" size="2" type="short" value="50">
+      <Help>Set value means at which temperature the device will be turned on even if the thermostat was manually set to off.
                 0 - 127 = 0.0C - 12.7 C.
                 1001 - 1127 = -0.1C - 12.6 C.
                 255 - Antifreeze functionality disabled.
                 Default value 50 (5.0 C).
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="60" label="Too low temperature limit" size="2" min="1" max="1150" value="50">
-            <Help>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Too low temperature limit" max="1150" min="1" size="2" type="short" value="50">
+      <Help>
                 Default value 50 (Minimum Temperature alarm is 5.0C)
                 1 - 1000 = 0.1C - 100.0C, step is 0.1C.
                 1001 - 1150 = -0.1 C - 15 C
                 Too low temperature limit is set by entered value. In case is set value out of this range, module is changing set value automatically to default value.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="61" label="Too high temperature limit" size="2" min="1" max="1000" value="700">
-            <Help>
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Too high temperature limit" max="1000" min="1" size="2" type="short" value="700">
+      <Help>
                 Default value 700 (Minimum Temperature alarm is 70.0C)
                 1 - 1000 = 0.1C - 100.0C, step is 0.1C.
                 Too high temperature limit is set by entered value. In case is set value out of this range, module is changing automatically set value to default value.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="63" label="Switch selection" size="1" min="0" max="1" value="0">
-            <Help>Set value means the type of the device that is connected to the relay output. The device type can be normally open (NO) or normally close (NC).
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Switch selection" max="1" min="0" size="1" type="list" value="0">
+      <Help>Set value means the type of the device that is connected to the relay output. The device type can be normally open (NO) or normally close (NC).
                 Available config. parameters (data type is 1 Byte DEC):
                 default value 0
                 0 - When system is turned off the output is 0 V.
                 1 - When system is turned off the output is 230 V.</Help>
-            <Item label="0V" value="0"/>
-            <Item label="230V" value="1"/>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="70" label="Input 1 status on delay" size="2" min="0" max="32000" value="0">
-            <Help>
+      <Item label="0V" value="0"/>
+      <Item label="230V" value="1"/>
+    </Value>
+    <Value genre="config" index="70" instance="1" label="Input 1 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the window sensor functionality is selected by the parameter no. 11.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="71" label="Input 1 status off delay" size="2" min="0" max="32000" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="71" instance="1" label="Input 1 status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the window sensor functionality is selected by the parameter no. 11.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="72" label="Input 2 status on delay" size="2" min="0" max="32000" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="72" instance="1" label="Input 2 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the condense sensor functionality is selected by the parameter no. 12.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="73" label="Input 2 status off delay" size="2" min="0" max="32000" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="73" instance="1" label="Input 2 status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the condense sensor functionality is selected by the parameter no. 12.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="74" label="Input 3 status on delay" size="2" min="0" max="32000" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="74" instance="1" label="Input 3 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the flood sensor functionality is selected by the parameter no. 13.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="75" label="Input 3 status off delay" size="2" min="0" max="32000" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="75" instance="1" label="Input 3 status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the flood sensor functionality is selected by the parameter no. 13.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="100" label="Enable / Disable Endpoints I1 or select notification type and event" size="1" min="0" max="9" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="100" instance="1" label="Enable / Disable Endpoints I1 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help>
                 Enabling I1 means that Endpoint (I1) will be present on UI.
                 Disabling it will result in hiding the endpoint according to the parameter set value.
                 Additionally, a Notification Type and Event can be selected for the endpoint.
                 NOTE 1: After parameter change, first exclude module (without setting parameters to default value) and then re include the module!
                 NOTE 2: When the parameter is set to value 9 the notifications are send for Home Security.
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Home Security; Motion Detection" value="1" />
-            <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2" />
-            <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3" />
-            <Item label="Water Alarm; Water Leak detected" value="4" />
-            <Item label="Heat Alarm; Overheat detected" value="5" />
-            <Item label="Smoke Alarm; Smoke detected" value="6" />
-            <Item label="Sensor binary" value="9" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="101" label="Enable / Disable Endpoints I2 or select notification type and event" size="1" min="0" max="9" value="0">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Home Security; Motion Detection" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3"/>
+      <Item label="Water Alarm; Water Leak detected" value="4"/>
+      <Item label="Heat Alarm; Overheat detected" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="101" instance="1" label="Enable / Disable Endpoints I2 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help>
                 Enabling I2 means that Endpoint (I2) will be present on UI.
                 Disabling it will result in hiding the endpoint according to the parameter set value.
                 Additionally, a Notification Type and Event can be selected for the endpoint.
                 NOTE 1: After parameter change, first exclude module (without setting parameters to default value) and then re include the module!
                 NOTE 2: When the parameter is set to value 9 the notifications are send for Home Security.
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Home Security; Motion Detection" value="1" />
-            <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2" />
-            <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3" />
-            <Item label="Water Alarm; Water Leak detected" value="4" />
-            <Item label="Heat Alarm; Overheat detected" value="5" />
-            <Item label="Smoke Alarm; Smoke detected" value="6" />
-            <Item label="Sensor binary" value="9" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="102" label="Enable / Disable Endpoints I3 or select notification type and event" size="1" min="0" max="9" value="0">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Home Security; Motion Detection" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3"/>
+      <Item label="Water Alarm; Water Leak detected" value="4"/>
+      <Item label="Heat Alarm; Overheat detected" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="102" instance="1" label="Enable / Disable Endpoints I3 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help>
                 Enabling I3 means that Endpoint (I3) will be present on UI.
                 Disabling it will result in hiding the endpoint according to the parameter set value.
                 Additionally, a Notification Type and Event can be selected for the endpoint.
                 NOTE 1: After parameter change, first exclude module (without setting parameters to default value) and then re include the module!
                 NOTE 2: When the parameter is set to value 9 the notifications are send for Home Security.
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Home Security; Motion Detection" value="1" />
-            <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2" />
-            <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3" />
-            <Item label="Water Alarm; Water Leak detected" value="4" />
-            <Item label="Heat Alarm; Overheat detected" value="5" />
-            <Item label="Smoke Alarm; Smoke detected" value="6" />
-            <Item label="Sensor binary" value="9" />
-        </Value>
-        <Value type="short" genre="config" instance="1" index="110" label="Temperature sensor offset settings" size="2" min="0" max="32536" value="32536">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Home Security; Motion Detection" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3"/>
+      <Item label="Water Alarm; Water Leak detected" value="4"/>
+      <Item label="Heat Alarm; Overheat detected" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature sensor offset settings" max="32536" min="0" size="2" type="short" value="32536">
+      <Help>
                 Set value is added or subtracted to actual measured value by sensor.
                 From 1 to 100 = value from 0.1C to 10.0C is added to actual measured temperature.
                 From 1001 to 1100 = value from -0.1 C to -10.0 C is subtracted to actual measured temperature.
                 Default value 32536. 32536  offset is 0.0C.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="120" label="Digital temperature sensor reporting" min="0" max="127" value="5">
-            <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Digital temperature sensor reporting" max="127" min="0" type="byte" value="5">
+      <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
                 0 = reporting disabled.
                 1 to 127 = 0,1C to 12,7C, step is 0,1C.
                 Default value is 5 = 0,5C</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="121" label="Digital temperature sensor / setpoint selector" size="1" min="0" max="10" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="121" instance="1" label="Digital temperature sensor / setpoint selector" max="10" min="0" size="1" type="list" value="0">
+      <Help>
                 If digital temperature sensor is not connected, module can grab measured temperature from external secondary module.
                 Default value is 0.
             </Help>
-            <Item label="internal digital temperature sensor is mounted, setpoint is set by controller" value="0" />
-            <Item label="(bit 0) temperature is grabbed from external always on sensor with sensor_multilevel_get sent by association 3" value="1" />
-            <Item label="(bit 1) temperature is grabbed from external battery powered room sensor declared in parameter 122" value="2" />
-            <Item label="(bit 2) setpoint is grabbed from external always on module with thermostat_setpoint_get by association 5" value="4" />
-            <Item label="(bit 3) setpoint is grabbed from external battery powered room sensor declared in parameter 122" value="8" />
-            <Item label="(bit 1 and bit 3) temperature AND setpoint are grabbed from external battery powered sensor declared in parameter 122" value="10" />
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="122" label="Node ID of external battery powered room sensor" min="0" max="254" value="0">
-            <Help>If digital temperature sensor is not connected, module can grab measured temperature from external battery powered room sensor defined by this paramater.
+      <Item label="internal digital temperature sensor is mounted, setpoint is set by controller" value="0"/>
+      <Item label="(bit 0) temperature is grabbed from external always on sensor with sensor_multilevel_get sent by association 3" value="1"/>
+      <Item label="(bit 1) temperature is grabbed from external battery powered room sensor declared in parameter 122" value="2"/>
+      <Item label="(bit 2) setpoint is grabbed from external always on module with thermostat_setpoint_get by association 5" value="4"/>
+      <Item label="(bit 3) setpoint is grabbed from external battery powered room sensor declared in parameter 122" value="8"/>
+      <Item label="(bit 1 and bit 3) temperature AND setpoint are grabbed from external battery powered sensor declared in parameter 122" value="10"/>
+    </Value>
+    <Value genre="config" index="122" instance="1" label="Node ID of external battery powered room sensor" max="254" min="0" type="byte" value="0">
+      <Help>If digital temperature sensor is not connected, module can grab measured temperature from external battery powered room sensor defined by this paramater.
                 0 = external battery powered room sensor not in function.
                 1 to 254 = Node ID of external battery powered room sensor.
                 Default value is 0</Help>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="9">
-            <Group index="1" max_associations="1" label="Lifeline" />
-            <Group index="2" max_associations="16" label="Basic on/off (triggered at change of the output Q state and reflecting its state) up to 16 nodes" />
-            <Group index="3" max_associations="16" label="SENSOR_MULTILEVEL_GET (triggered once per minute if Parameter 121 is not 0) up to 16 nodes" />
-            <Group index="4" max_associations="16" label="Basic on/off (triggered by Too high temperature limit, it send FF) up to 16 nodes" />
-            <Group index="5" max_associations="16" label="THERMOSTAT_SETPOINT_GET (triggered once per minute if Parameter 121 is not 0) up to 16 nodes" />
-            <Group index="6" max_associations="16" label="Basic on/off (trigged by change of I1) up to 16 nodes" />
-            <Group index="7" max_associations="16" label="Basic on/off (trigged by change of I2) up to 16 nodes" />
-            <Group index="8" max_associations="16" label="Basic on/off (trigged by change of I3) up to 16 nodes" />
-            <Group index="9" max_associations="16" label="Sensor multilevel (trigged by change of temperature)" />
-        </Associations>
-    </CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="9">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic on/off (triggered at change of the output Q state and reflecting its state) up to 16 nodes" max_associations="16"/>
+      <Group index="3" label="SENSOR_MULTILEVEL_GET (triggered once per minute if Parameter 121 is not 0) up to 16 nodes" max_associations="16"/>
+      <Group index="4" label="Basic on/off (triggered by Too high temperature limit, it send FF) up to 16 nodes" max_associations="16"/>
+      <Group index="5" label="THERMOSTAT_SETPOINT_GET (triggered once per minute if Parameter 121 is not 0) up to 16 nodes" max_associations="16"/>
+      <Group index="6" label="Basic on/off (trigged by change of I1) up to 16 nodes" max_associations="16"/>
+      <Group index="7" label="Basic on/off (trigged by change of I2) up to 16 nodes" max_associations="16"/>
+      <Group index="8" label="Basic on/off (trigged by change of I3) up to 16 nodes" max_associations="16"/>
+      <Group index="9" label="Sensor multilevel (trigged by change of temperature)" max_associations="16"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHJA2.xml b/Config/qubino/ZMNHJA2.xml
index 92abeccfeb..f61d580169 100644
--- a/Config/qubino/ZMNHJA2.xml
+++ b/Config/qubino/ZMNHJA2.xml
@@ -1,102 +1,90 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- Qubino: ZMNHJA2 Flush Dimmer Fils Pilotes -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Qubino: ZMNHJA2 Flush Dimmer Fils Pilotes -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="3" label="Input 3 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="4" label="Input 1 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open)" value="0"/>
-			<Item label="NC (normaly close)" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="5" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open)" value="0"/>
-			<Item label="NC (normaly close)" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="6" label="Input 3 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open)" value="0"/>
-			<Item label="NC (normaly close)" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="11" label="Input 1 Functionality selection" size="1" min="0" max="6" value="1">
-			<Help/>
-			<Item label="No modification with Input 1" value="0"/>
-			<Item label="Confort" value="1"/>
-			<Item label="Confort -1" value="2"/>
-			<Item label="Confort -2" value="3"/>
-			<Item label="Eco" value="4"/>
-			<Item label="Hors-Gel" value="5"/>
-			<Item label="STOP" value="6"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="12" label="Input 2 Functionality selection" size="1" min="0" max="6" value="4">
-			<Help/>
-			<Item label="No modification with Input 2" value="0"/>
-			<Item label="Confort" value="1"/>
-			<Item label="Confort -1" value="2"/>
-			<Item label="Confort -2" value="3"/>
-			<Item label="Eco" value="4"/>
-			<Item label="Hors-Gel" value="5"/>
-			<Item label="STOP" value="6"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="13" label="Input 3 Functionality selection" size="1" min="0" max="6" value="5">
-			<Help/>
-			<Item label="No modification with Input 3" value="0"/>
-			<Item label="Confort" value="1"/>
-			<Item label="Confort -1" value="2"/>
-			<Item label="Confort -2" value="3"/>
-			<Item label="Eco" value="4"/>
-			<Item label="Hors-Gel" value="5"/>
-			<Item label="STOP" value="6"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the relay after a power failure" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0" />
-			<Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1" />
-		</Value>
-
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="5">
-			<Group index="1" max_associations="5" label="Multilevel" auto="false"/>
-			<Group index="2" max_associations="5" label="Input I1 state" />
-			<Group index="3" max_associations="5" label="Input I2 state" />
-			<Group index="4" max_associations="5" label="Input I3 state" />
-			<Group index="5" max_associations="1" label="Lifeline" auto="true"/>
-		</Associations>
-	</CommandClass>
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove" />
-
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input 3 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Input 1 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open)" value="0"/>
+      <Item label="NC (normaly close)" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open)" value="0"/>
+      <Item label="NC (normaly close)" value="1"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Input 3 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open)" value="0"/>
+      <Item label="NC (normaly close)" value="1"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Input 1 Functionality selection" max="6" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="No modification with Input 1" value="0"/>
+      <Item label="Confort" value="1"/>
+      <Item label="Confort -1" value="2"/>
+      <Item label="Confort -2" value="3"/>
+      <Item label="Eco" value="4"/>
+      <Item label="Hors-Gel" value="5"/>
+      <Item label="STOP" value="6"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Input 2 Functionality selection" max="6" min="0" size="1" type="list" value="4">
+      <Help/>
+      <Item label="No modification with Input 2" value="0"/>
+      <Item label="Confort" value="1"/>
+      <Item label="Confort -1" value="2"/>
+      <Item label="Confort -2" value="3"/>
+      <Item label="Eco" value="4"/>
+      <Item label="Hors-Gel" value="5"/>
+      <Item label="STOP" value="6"/>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Input 3 Functionality selection" max="6" min="0" size="1" type="list" value="5">
+      <Help/>
+      <Item label="No modification with Input 3" value="0"/>
+      <Item label="Confort" value="1"/>
+      <Item label="Confort -1" value="2"/>
+      <Item label="Confort -2" value="3"/>
+      <Item label="Eco" value="4"/>
+      <Item label="Hors-Gel" value="5"/>
+      <Item label="STOP" value="6"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the relay after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group auto="false" index="1" label="Multilevel" max_associations="5"/>
+      <Group index="2" label="Input I1 state" max_associations="5"/>
+      <Group index="3" label="Input I2 state" max_associations="5"/>
+      <Group index="4" label="Input I3 state" max_associations="5"/>
+      <Group auto="true" index="5" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHJD1.xml b/Config/qubino/ZMNHJD1.xml
index 3cfc675a2c..b82974cf73 100644
--- a/Config/qubino/ZMNHJD1.xml
+++ b/Config/qubino/ZMNHJD1.xml
@@ -1,102 +1,90 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- Qubino: ZMNHJD1 Flush Dimmer Fils Pilotes -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Qubino: ZMNHJD1 Flush Pilot Wire Dimmer -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable switch type (push button)" value="0"/>
-			<Item label="Bi-stable switch type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable switch type (push button)" value="0"/>
-			<Item label="Bi-stable switch type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="3" label="Input 3 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable switch type (push button)" value="0"/>
-			<Item label="Bi-stable switch type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="4" label="Input 1 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normally open) input type" value="0"/>
-			<Item label="NC (normally close) input type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="5" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normally open) input type" value="0"/>
-			<Item label="NC (normally close) input type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="6" label="Input 3 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normally open) input type" value="0"/>
-			<Item label="NC (normally close) input type" value="1"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="11" label="Input 1 Functionality selection" size="1" min="0" max="6" value="1">
-			<Help/>
-			<Item label="Nothing" value="0"/>
-			<Item label="Confort" value="1"/>
-			<Item label="Confort -1" value="2"/>
-			<Item label="Confort -2" value="3"/>
-			<Item label="Eco" value="4"/>
-			<Item label="Hors-Gel" value="5"/>
-			<Item label="STOP" value="6"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="12" label="Input 2 Functionality selection" size="1" min="0" max="6" value="4">
-			<Help/>
-			<Item label="Nothing" value="0"/>
-			<Item label="Confort" value="1"/>
-			<Item label="Confort -1" value="2"/>
-			<Item label="Confort -2" value="3"/>
-			<Item label="Eco" value="4"/>
-			<Item label="Hors-Gel" value="5"/>
-			<Item label="STOP" value="6"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="13" label="Input 3 Functionality selection" size="1" min="0" max="6" value="5">
-			<Help/>
-			<Item label="Nothing" value="0"/>
-			<Item label="Confort" value="1"/>
-			<Item label="Confort -1" value="2"/>
-			<Item label="Confort -2" value="3"/>
-			<Item label="Eco" value="4"/>
-			<Item label="Hors-Gel" value="5"/>
-			<Item label="STOP" value="6"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the relay after a power failure" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0" />
-			<Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1" />
-		</Value>
-
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="5">
-			<Group index="1" max_associations="1" label="Lifeline" />
-			<Group index="2" max_associations="5" label="Multilevel" />
-			<Group index="3" max_associations="5" label="Input I1 state" />
-			<Group index="4" max_associations="5" label="Input I2 state" />
-			<Group index="5" max_associations="5" label="Input I3 state" />		
-		</Associations>
-	</CommandClass>
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove" />
-
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable switch type (push button)" value="0"/>
+      <Item label="Bi-stable switch type" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable switch type (push button)" value="0"/>
+      <Item label="Bi-stable switch type" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input 3 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable switch type (push button)" value="0"/>
+      <Item label="Bi-stable switch type" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Input 1 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normally open) input type" value="0"/>
+      <Item label="NC (normally close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normally open) input type" value="0"/>
+      <Item label="NC (normally close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Input 3 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normally open) input type" value="0"/>
+      <Item label="NC (normally close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Input 1 Functionality selection" max="6" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Nothing" value="0"/>
+      <Item label="Confort" value="1"/>
+      <Item label="Confort -1" value="2"/>
+      <Item label="Confort -2" value="3"/>
+      <Item label="Eco" value="4"/>
+      <Item label="Hors-Gel" value="5"/>
+      <Item label="STOP" value="6"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Input 2 Functionality selection" max="6" min="0" size="1" type="list" value="4">
+      <Help/>
+      <Item label="Nothing" value="0"/>
+      <Item label="Confort" value="1"/>
+      <Item label="Confort -1" value="2"/>
+      <Item label="Confort -2" value="3"/>
+      <Item label="Eco" value="4"/>
+      <Item label="Hors-Gel" value="5"/>
+      <Item label="STOP" value="6"/>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Input 3 Functionality selection" max="6" min="0" size="1" type="list" value="5">
+      <Help/>
+      <Item label="Nothing" value="0"/>
+      <Item label="Confort" value="1"/>
+      <Item label="Confort -1" value="2"/>
+      <Item label="Confort -2" value="3"/>
+      <Item label="Eco" value="4"/>
+      <Item label="Hors-Gel" value="5"/>
+      <Item label="STOP" value="6"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the relay after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Multilevel" max_associations="5"/>
+      <Group index="3" label="Input I1 state" max_associations="5"/>
+      <Group index="4" label="Input I2 state" max_associations="5"/>
+      <Group index="5" label="Input I3 state" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHKDx.xml b/Config/qubino/ZMNHKDx.xml
index eb21eeca95..65deeb3c26 100644
--- a/Config/qubino/ZMNHKDx.xml
+++ b/Config/qubino/ZMNHKDx.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Qubino: ZMNHKDx Flush Heat Cool thermostat Z-Wave+
 ZMNHKD1 868,4 MHz
@@ -8,243 +7,245 @@ ZMNHKD4 869,0 MHz
 ZMNHKD5 916,0 MHz
 
 ref: http://qubino.com/products/flush-heat-cool-thermostat/
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-    <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-    <CommandClass id="67"  base="0" override_precision="2"  />
-    
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Input I1 switch type" size="1" min="0" max="1" value="1">
-            <Help/>
-            <Item label="Mono-stable" value="0"/>
-            <Item label="Bi-stable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="2" label="Input I2 switch type" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="Mono-stable" value="0"/>
-            <Item label="Bi-stable" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="4" label="Input 1 contact type" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="NO (normally open) input type" value="0"/>
-            <Item label="NC (normally close) input type" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="5" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="NO (normally open) input type" value="0"/>
-            <Item label="NC (normally close) input type" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="255">
-            <Help>Flush on off thermostat module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
-            <Item label="ALL ON active, ALL OFF active" value="255" />
-            <Item label="ALL ON is not active ALL OFF is not active" value="0" />
-            <Item label="ALL ON is not active ALL OFF active" value="1" />
-            <Item label="ALL ON active ALL OFF is not active" value="2" />
-        </Value>
-        <Value type="short" genre="config" instance="1" index="11" label="I1 Functionality selection" size="2" min="0" max="65535" value="1">
-            <Help>
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input I1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input I2 switch type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Input 1 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normally open) input type" value="0"/>
+      <Item label="NC (normally close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normally open) input type" value="0"/>
+      <Item label="NC (normally close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="255">
+      <Help>Flush on off thermostat module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.</Help>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="I1 Functionality selection" max="65535" min="0" size="2" type="short" value="1">
+      <Help>
                 Default value 1.
                 32767 - input I1 does not influence on the Heat and Cool process
                 1 - Input I1 changes the mode of the thermostat between Off and Auto. In this case, function on window sensor is disabled.
                 2 - Input I1 influences on cooling and heating valves according to status of window sensor. In this case, function of Off and Auto selection bi I1 us disabled.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="12" label="I2 Functionality selection" size="2" min="0" max="65535" value="32767">
-            <Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="I2 Functionality selection" max="65535" min="0" size="2" type="short" value="32767">
+      <Help>
                 Default value 32767.
                 32767 - input I2 does not influence on the Heat and Cool process
                 From 0 to 990 - set point from 0.0 C to 99.0 C
                 From 1001 to 1150 - set point from -0.1 C to -15.0 C
                 2000 - Input I2 influences on the cooling valve according to status of condense sensor
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="0">
-            <Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 0</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" min="0" max="32767" value="0">
-            <Help>Set value means time interval (0 - 32767) in seconds, when power report is send. 0 - Reporting Disabled.
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="0">
+      <Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 0</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="32767" min="0" type="short" value="0">
+      <Help>Set value means time interval (0 - 32767) in seconds, when power report is send. 0 - Reporting Disabled.
                 1 - 32767 = 1 second - 32767 seconds.
                 Reporting enabled.
                 Power report is send with time interval set by entered value.
                 Default value 0</Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="43" label="Hysteresis Heating On" size="2" min="0" max="1127" value="1010">
-            <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating on.
+    </Value>
+    <Value genre="config" index="43" instance="1" label="Hysteresis Heating On" max="1127" min="0" size="2" type="short" value="1010">
+      <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating on.
                 The parameter can be set from 0 to 1127 where 0 to 127 means from 0.0 C to 12.7 C and from 1001 to 1127 means from - 0.1 C to -12.7 C.
                 Default value 1010 (-1.0 C)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="44" label="Hysteresis Heating Off" size="2" min="0" max="1127" value="2">
-            <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating off.
+    </Value>
+    <Value genre="config" index="44" instance="1" label="Hysteresis Heating Off" max="1127" min="0" size="2" type="short" value="2">
+      <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn heating off.
                 The parameter can be set from 0 to 1127 where 0 to 127 means from 0.0 C to 12.7 C and from 1001 to 1127 means from - 0.1 C to -12.7 C.
                 Default value 2 (+0.2 C)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="45" label="Hysteresis Cooling On" size="2" min="0" max="1127" value="5">
-            <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn cooling on.
+    </Value>
+    <Value genre="config" index="45" instance="1" label="Hysteresis Cooling On" max="1127" min="0" size="2" type="short" value="5">
+      <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn cooling on.
                 The parameter can be set from 0 to 1127 where 0 to 127 means from 0.0 C to 12.7 C and from 1001 to 1127 means from - 0.1 C to -12.7 C.
                 Default value 5 (0.5 C)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="46" label="Hysteresis Cooling Off" size="2" min="0" max="1127" value="1002">
-            <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn cooling off.
+    </Value>
+    <Value genre="config" index="46" instance="1" label="Hysteresis Cooling Off" max="1127" min="0" size="2" type="short" value="1002">
+      <Help>This parameter defines temperature min difference between real measured temperature and set-point temperature to turn cooling off.
                 The parameter can be set from 0 to 1127 where 0 to 127 means from 0.0 C to 12.7 C and from 1001 to 1127 means from - 0.1 C to -12.7 C.
                 Default value 1002 (-0.2 C)
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="47" label="Antifreeze" size="2" min="0" max="1127" value="50">
-            <Help>Set value means at which temperature the device will be turned on even if the thermostat was manually set to off.
+    </Value>
+    <Value genre="config" index="47" instance="1" label="Antifreeze" max="1127" min="0" size="2" type="short" value="50">
+      <Help>Set value means at which temperature the device will be turned on even if the thermostat was manually set to off.
                 0 - 127 = 0.0C - 12.7 C.
                 1001 - 1127 = -0.1C - 12.6 C.
                 255 - Antifreeze functionality disabled.
                 Default value 50 (5.0 C).
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="60" label="Too low temperature limit" size="2" min="1" max="1150" value="50">
-            <Help>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Too low temperature limit" max="1150" min="1" size="2" type="short" value="50">
+      <Help>
                 Default value 50 (Minimum Temperature alarm is 5.0C)
                 1 - 1000 = 0.1C - 100.0C, step is 0.1C.
                 1001 - 1150 = -0.1 C - 15 C
                 Too low temperature limit is set by entered value. In case is set value out of this range, module is changing set value automatically to default value.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="61" label="Too high temperature limit" size="2" min="1" max="1000" value="700">
-            <Help>
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Too high temperature limit" max="1000" min="1" size="2" type="short" value="700">
+      <Help>
                 Default value 700 (Minimum Temperature alarm is 70.0C)
                 1 - 1000 = 0.1C - 100.0C, step is 0.1C.
                 Too high temperature limit is set by entered value. In case is set value out of this range, module is changing automatically set value to default value.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="64" label="Output Switch Selection Q1" size="1" min="0" max="1" value="0">
-            <Help>Set value means the type of the device that is connected to the Q1 output. The device type can be normally open (NO) or normally close (NC).
+    </Value>
+    <Value genre="config" index="64" instance="1" label="Output Switch Selection Q1" max="1" min="0" size="1" type="list" value="0">
+      <Help>Set value means the type of the device that is connected to the Q1 output. The device type can be normally open (NO) or normally close (NC).
                 Available config. parameters (data type is 1 Byte DEC):
                 default value 0
                 0 - When system is turned off the output is 0 V.
                 1 - When system is turned off the output is 230 V.</Help>
-            <Item label="0V" value="0"/>
-            <Item label="230V" value="1"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="65" label="Output Switch Selection Q2" size="1" min="0" max="1" value="0">
-            <Help>Set value means the type of the device that is connected to the Q2 output. The device type can be normally open (NO) or normally close (NC).
+      <Item label="0V" value="0"/>
+      <Item label="230V" value="1"/>
+    </Value>
+    <Value genre="config" index="65" instance="1" label="Output Switch Selection Q2" max="1" min="0" size="1" type="list" value="0">
+      <Help>Set value means the type of the device that is connected to the Q2 output. The device type can be normally open (NO) or normally close (NC).
                 Available config. parameters (data type is 1 Byte DEC):
                 default value 0
                 0 - When system is turned off the output is 0 V.
                 1 - When system is turned off the output is 230 V.</Help>
-            <Item label="0V" value="0"/>
-            <Item label="230V" value="1"/>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="70" label="Input 1 status on delay" size="2" min="0" max="32000" value="0">
-            <Help>
+      <Item label="0V" value="0"/>
+      <Item label="230V" value="1"/>
+    </Value>
+    <Value genre="config" index="70" instance="1" label="Input 1 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the window sensor functionality is selected by the parameter no. 11.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="71" label="Input 1 status off delay" size="2" min="0" max="32000" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="71" instance="1" label="Input 1 status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the window sensor functionality is selected by the parameter no. 11.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="72" label="Input 2 status on delay" size="2" min="0" max="32000" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="72" instance="1" label="Input 2 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the condense sensor functionality is selected by the parameter no. 12.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="73" label="Input 2 status off delay" size="2" min="0" max="32000" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="73" instance="1" label="Input 2 status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>
                 Default value 0
                 1 - 32000 seconds
                 If the value of the parameter is different to 0, means that the influence of this input to heating or cooling will react after inserted time.
                 This parameter has influence only when the condense sensor functionality is selected by the parameter no. 12.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="100" label="Enable / Disable Endpoints I1 or select notification type and event" size="1" min="0" max="9" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="100" instance="1" label="Enable / Disable Endpoints I1 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help>
                 Enabling I1 means that Endpoint (I1) will be present on UI.
                 Disabling it will result in hiding the endpoint according to the parameter set value.
                 Additionally, a Notification Type and Event can be selected for the endpoint.
                 NOTE 1: After parameter change, first exclude module (without setting parameters to default value) and then re include the module!
                 NOTE 2: When the parameter is set to value 9 the notifications are send for Home Security.
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Home Security; Motion Detection" value="1" />
-            <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2" />
-            <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3" />
-            <Item label="Water Alarm; Water Leak detected" value="4" />
-            <Item label="Heat Alarm; Overheat detected" value="5" />
-            <Item label="Smoke Alarm; Smoke detected" value="6" />
-            <Item label="Sensor binary" value="9" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="101" label="Enable / Disable Endpoints I2 or select notification type and event" size="1" min="0" max="9" value="0">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Home Security; Motion Detection" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3"/>
+      <Item label="Water Alarm; Water Leak detected" value="4"/>
+      <Item label="Heat Alarm; Overheat detected" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="101" instance="1" label="Enable / Disable Endpoints I2 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help>
                 Enabling I2 means that Endpoint (I2) will be present on UI.
                 Disabling it will result in hiding the endpoint according to the parameter set value.
                 Additionally, a Notification Type and Event can be selected for the endpoint.
                 NOTE 1: After parameter change, first exclude module (without setting parameters to default value) and then re include the module!
                 NOTE 2: When the parameter is set to value 9 the notifications are send for Home Security.
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Home Security; Motion Detection" value="1" />
-            <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2" />
-            <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3" />
-            <Item label="Water Alarm; Water Leak detected" value="4" />
-            <Item label="Heat Alarm; Overheat detected" value="5" />
-            <Item label="Smoke Alarm; Smoke detected" value="6" />
-            <Item label="Sensor binary" value="9" />
-        </Value>
-        <Value type="short" genre="config" instance="1" index="110" label="Temperature sensor offset settings" size="2" min="0" max="32536" value="32536">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Home Security; Motion Detection" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3"/>
+      <Item label="Water Alarm; Water Leak detected" value="4"/>
+      <Item label="Heat Alarm; Overheat detected" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature sensor offset settings" max="32536" min="0" size="2" type="short" value="32536">
+      <Help>
                 Set value is added or subtracted to actual measured value by sensor.
                 From 1 to 100 = value from 0.1C to 10.0C is added to actual measured temperature.
                 From 1001 to 1100 = value from -0.1 C to -10.0 C is subtracted to actual measured temperature.
                 Default value 32536. 32536  offset is 0.0C.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="120" label="Digital temperature sensor reporting" min="0" max="127" value="5">
-            <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Digital temperature sensor reporting" max="127" min="0" type="byte" value="5">
+      <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
                 0 = reporting disabled.
                 1 to 127 = 0,1C to 12,7C, step is 0,1C.
                 Default value is 5 = 0,5C</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="121" label="Digital temperature sensor / setpoint selector" size="1" min="0" max="10" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="121" instance="1" label="Digital temperature sensor / setpoint selector" max="10" min="0" size="1" type="list" value="0">
+      <Help>
                 If digital temperature sensor is not connected, module can grab measured temperature from external secondary module.
                 Default value is 0.
             </Help>
-            <Item label="internal digital temperature sensor is mounted, setpoint is set by controller" value="0" />
-            <Item label="(bit 0) temperature is grabbed from external always on sensor with sensor_multilevel_get sent by association 3" value="1" />
-            <Item label="(bit 1) temperature is grabbed from external battery powered room sensor declared in parameter 122" value="2" />
-            <Item label="(bit 2) setpoint is grabbed from external always on module with thermostat_setpoint_get by association 5" value="4" />
-            <Item label="(bit 3) setpoint is grabbed from external battery powered room sensor declared in parameter 122" value="8" />
-            <Item label="(bit 1 and bit 3) temperature AND setpoint are grabbed from external battery powered sensor declared in parameter 122" value="10" />
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="122" label="Node ID of external battery powered room sensor" min="0" max="254" value="0">
-            <Help>If digital temperature sensor is not connected, module can grab measured temperature from external battery powered room sensor defined by this paramater.
+      <Item label="internal digital temperature sensor is mounted, setpoint is set by controller" value="0"/>
+      <Item label="(bit 0) temperature is grabbed from external always on sensor with sensor_multilevel_get sent by association 3" value="1"/>
+      <Item label="(bit 1) temperature is grabbed from external battery powered room sensor declared in parameter 122" value="2"/>
+      <Item label="(bit 2) setpoint is grabbed from external always on module with thermostat_setpoint_get by association 5" value="4"/>
+      <Item label="(bit 3) setpoint is grabbed from external battery powered room sensor declared in parameter 122" value="8"/>
+      <Item label="(bit 1 and bit 3) temperature AND setpoint are grabbed from external battery powered sensor declared in parameter 122" value="10"/>
+    </Value>
+    <Value genre="config" index="122" instance="1" label="Node ID of external battery powered room sensor" max="254" min="0" type="byte" value="0">
+      <Help>If digital temperature sensor is not connected, module can grab measured temperature from external battery powered room sensor defined by this paramater.
                 0 = external battery powered room sensor not in function.
                 1 to 254 = Node ID of external battery powered room sensor.
                 Default value is 0</Help>
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="8">
-            <Group index="1" max_associations="1" label="Lifeline" />
-            <Group index="2" max_associations="16" label="Basic on/off (triggered at change of the output Q1 or Q2 state and reflecting its state) up to 16 nodes" />
-            <Group index="3" max_associations="16" label="SENSOR_MULTILEVEL_GET (triggered once per minute if Parameter 121 is not 0) up to 16 nodes" />
-            <Group index="4" max_associations="16" label="Basic on/off (triggered by Too high temperature limit, it send FF) up to 16 nodes" />
-            <Group index="5" max_associations="16" label="THERMOSTAT_SETPOINT_GET (triggered once per minute if Parameter 121 is not 0) up to 16 nodes" />
-            <Group index="6" max_associations="16" label="Basic on/off (trigged by change of I1) up to 16 nodes" />
-            <Group index="7" max_associations="16" label="Basic on/off (trigged by change of I2) up to 16 nodes" />
-            <Group index="9" max_associations="16" label="Sensor multilevel (trigged by change of temperature)" />
-        </Associations>
-    </CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="8">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic on/off (triggered at change of the output Q1 or Q2 state and reflecting its state) up to 16 nodes" max_associations="16"/>
+      <Group index="3" label="SENSOR_MULTILEVEL_GET (triggered once per minute if Parameter 121 is not 0) up to 16 nodes" max_associations="16"/>
+      <Group index="4" label="Basic on/off (triggered by Too high temperature limit, it send FF) up to 16 nodes" max_associations="16"/>
+      <Group index="5" label="THERMOSTAT_SETPOINT_GET (triggered once per minute if Parameter 121 is not 0) up to 16 nodes" max_associations="16"/>
+      <Group index="6" label="Basic on/off (trigged by change of I1) up to 16 nodes" max_associations="16"/>
+      <Group index="7" label="Basic on/off (trigged by change of I2) up to 16 nodes" max_associations="16"/>
+      <Group index="9" label="Sensor multilevel (trigged by change of temperature)" max_associations="16"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHLAx.xml b/Config/qubino/ZMNHLAx.xml
index b751b27a84..f4207fc59b 100644
--- a/Config/qubino/ZMNHLAx.xml
+++ b/Config/qubino/ZMNHLAx.xml
@@ -1,6 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
 	Qubino: ZMNHLAx Flush PWM thermostat
 	ZMNHLA2 868,4 MHz
 	ZMNHLA3 921,4 MHz
@@ -10,149 +9,150 @@
 	 -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Input 3 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="4" label="Input 1 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="5" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="6" label="Input 3 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="1" min="0" max="255" value="255">
-			<Help>When I2 is pressed set point will be set according to the value of this parameter.</Help>
-			<Item label="ALL ON active, ALL OFF active" value="255" />
-			<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-			<Item label="ALL ON is not active ALL OFF active" value="1" />
-			<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="11" label="I1 Functionality selection" size="2" min="1" max="65535" value="1">
-			<Help>Default value 1
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input 3 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Input 1 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Input 3 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="1" type="list" value="255">
+      <Help>When I2 is pressed set point will be set according to the value of this parameter.</Help>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="I1 Functionality selection" max="65535" min="1" size="2" type="list" value="1">
+      <Help>Default value 1
 				65535 - input I1 does not influence on the heat/ cool process
 				1 - input I1 changes the mode of the thermostat between Off and Auto. In this case function on flood sensor (if connected) is disabled.
 				2 - input I1 influences on cooling and heating valves according to status of flood sensor. In this case function of Off and Auto selection by I1 is disabled</Help>
-			<Item label="Mode Off and Auto" value="1" />
-			<Item label="Disabled Mode Off and Auto" value="2" />
-			<Item label="No influence on the heat process" value="65535" />
-		</Value>
-		<Value type="short" genre="config" instance="1" index="12" label="I2 Functionality selection" size="2" min="0" max="65535" value="65535">
-			<Help>default value 65535 | 65535 - input I2 does not influence on the heat/ cool process | From 0 to 990 - Temperature set point from 0.0 C to 99.0 C. When I2 is pressed, temperature set point is automatically set to value defined here. In this case function of condense sensor is disabled. | From 1001 to 1150 - Temperature set point from -0.1 C to -15.0
+      <Item label="Mode Off and Auto" value="1"/>
+      <Item label="Disabled Mode Off and Auto" value="2"/>
+      <Item label="No influence on the heat process" value="65535"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="I2 Functionality selection" max="65535" min="0" size="2" type="short" value="65535">
+      <Help>default value 65535 | 65535 - input I2 does not influence on the heat/ cool process | From 0 to 990 - Temperature set point from 0.0 C to 99.0 C. When I2 is pressed, temperature set point is automatically set to value defined here. In this case function of condense sensor is disabled. | From 1001 to 1150 - Temperature set point from -0.1 C to -15.0
 			C. When I2 is pressed, temperature setpoint is automatically set to value defined here. In this case function of condense sensor is disabled. | 2000 - Input I2 influences on the cooling valve according to status of condense sensor, In this case function of setpoint selection with I2 is disabled.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="13" label="I3 Functionality selection" size="2" min="0" max="65535" value="65535">
-			<Help>default value 65535 | 65535 - input I3 does not influence on the heat/ cool process | 1 - input I3 changes the mode of the thermostat between Heat and Cool. In this case function on window sensor is disabled. | 2 - input I3 influences on cooling and heating valves according to status of window sensor. In this case function of Heat and Cool selection by I3 is disabled</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="0">
-			<Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 0</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" min="0" max="32767" value="300">
-			<Help>Set value means time interval (0 - 32767) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 32767 = 1 second - 32767 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="45" label="Antifreeze" size="1" min="0" max="255" value="50">
-			<Help>Set value means at which temperature the heating will be turned on even if the thermostat was manually set to off. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="50" label="PWM maximum value" size="1" min="0" max="100" value="100">
-			<Help>default value 100 (Maximum PWM value) | 2-100 = 2%-100%, step is 1%. Max. PWM set by entered value. NOTE: The maximum level may not be lower than the minimum level! </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="51" label="PWM minimum value" size="1" min="0" max="100" value="0">
-			<Help>default value 0 (Minimum PWM value is 0%) | 1-99 = 1%-99%, step is 1%. Max. PWM set by entered value. NOTE: The Minimim level may not exceed Maximum level! </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="52" label="PWM cycle duration" size="1" min="0" max="127" value="10">
-			<Help>Default value 10 (Cycle duration set to 10s) | 1-127 = 1-127s, step is 1s. PWM cycle duration set by entered value. NOTE: PWM cycle duration define the summary of all ON plus OFF time periods. For example if Output is set to 70% with PWM cycle duration of 20s, output will be ON for 14s then OFF 6s, again 14s ON, etc
+    </Value>
+    <Value genre="config" index="13" instance="1" label="I3 Functionality selection" max="65535" min="0" size="2" type="short" value="65535">
+      <Help>default value 65535 | 65535 - input I3 does not influence on the heat/ cool process | 1 - input I3 changes the mode of the thermostat between Heat and Cool. In this case function on window sensor is disabled. | 2 - input I3 influences on cooling and heating valves according to status of window sensor. In this case function of Heat and Cool selection by I3 is disabled</Help>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="0">
+      <Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 0</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="32767" min="0" type="short" value="300">
+      <Help>Set value means time interval (0 - 32767) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 32767 = 1 second - 32767 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 300 (power report in Watts is send each 300s)</Help>
+    </Value>
+    <Value genre="config" index="45" instance="1" label="Antifreeze" max="255" min="0" size="1" type="byte" value="50">
+      <Help>Set value means at which temperature the heating will be turned on even if the thermostat was manually set to off. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
+    </Value>
+    <Value genre="config" index="50" instance="1" label="PWM maximum value" max="100" min="0" size="1" type="byte" value="100">
+      <Help>default value 100 (Maximum PWM value) | 2-100 = 2%-100%, step is 1%. Max. PWM set by entered value. NOTE: The maximum level may not be lower than the minimum level! </Help>
+    </Value>
+    <Value genre="config" index="51" instance="1" label="PWM minimum value" max="100" min="0" size="1" type="byte" value="0">
+      <Help>default value 0 (Minimum PWM value is 0%) | 1-99 = 1%-99%, step is 1%. Max. PWM set by entered value. NOTE: The Minimim level may not exceed Maximum level! </Help>
+    </Value>
+    <Value genre="config" index="52" instance="1" label="PWM cycle duration" max="127" min="0" size="1" type="byte" value="10">
+      <Help>Default value 10 (Cycle duration set to 10s) | 1-127 = 1-127s, step is 1s. PWM cycle duration set by entered value. NOTE: PWM cycle duration define the summary of all ON plus OFF time periods. For example if Output is set to 70% with PWM cycle duration of 20s, output will be ON for 14s then OFF 6s, again 14s ON, etc
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="53" label="PID value inside deadband" size="1" min="0" max="1" value="0">
-			<Help>When value is set to ZERO PID inside deadband is forced to zero. LASTVALUE means that PID remains on same level as was before entering into deadband</Help>
-			<Item label="PID value equal ZERO" value="0"/>
-			<Item label="PID value set to LAST VALUE" value="1"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="54" label="PID deadband" size="1" min="0" max="127" value="5">
-			<Help>default value 5 (0,5 C) | 0-127 - 0.0 C to 12.7 C, step is 0,1C. NOTE: This parameter defines the zone where PID is not active. If the temperature difference between actual and setpoint is bigger than PID deadband, then the PID will start to regulate the system, otherwise the PID is zero or fixed</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="55" label="Integral sampling time" size="1" min="0" max="127" value="5">
-			<Help>default value 5 (0,5 C) | 0-127 - 0.0 C to 12.7 C, step is 0,1C. NOTE: Parameter defines the time between samples. On each sample the
+    </Value>
+    <Value genre="config" index="53" instance="1" label="PID value inside deadband" max="1" min="0" size="1" type="list" value="0">
+      <Help>When value is set to ZERO PID inside deadband is forced to zero. LASTVALUE means that PID remains on same level as was before entering into deadband</Help>
+      <Item label="PID value equal ZERO" value="0"/>
+      <Item label="PID value set to LAST VALUE" value="1"/>
+    </Value>
+    <Value genre="config" index="54" instance="1" label="PID deadband" max="127" min="0" size="1" type="byte" value="5">
+      <Help>default value 5 (0,5 C) | 0-127 - 0.0 C to 12.7 C, step is 0,1C. NOTE: This parameter defines the zone where PID is not active. If the temperature difference between actual and setpoint is bigger than PID deadband, then the PID will start to regulate the system, otherwise the PID is zero or fixed</Help>
+    </Value>
+    <Value genre="config" index="55" instance="1" label="Integral sampling time" max="127" min="0" size="1" type="byte" value="5">
+      <Help>default value 5 (0,5 C) | 0-127 - 0.0 C to 12.7 C, step is 0,1C. NOTE: Parameter defines the time between samples. On each sample the
 			controller capture difference between SP-act</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="56" label="P parameter" size="2" min="0" max="1000" value="100">
-			<Help>default value 100 | 0 -1000 - P value, step is 1</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="57" label="I parameter" size="2" min="0" max="1000" value="1">
-			<Help>default value 1 | 0 -1000 - I value, step is 1</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="58" label="D parameter" size="2" min="0" max="1000" value="1">
-			<Help>default value 1 | 0 -1000 - D value, step is 1</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="59" label="Thermostat mode" size="1" min="0" max="1" value="0">
-			<Help>default : Heat mode | Heat mode | Cool mode</Help>
-			<Item label="Heat mode (0)" value="0"/>
-			<Item label="Cool mode (1)" value="1"/>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="60" label="Too low temperature limit" size="2" min="0" max="1000" value="50">
-			<Help>Default value 50 (Too low temperature limit is 5.0C) | 1 - 1000 = 0.1C - 100.0C, step is 0.1C. Too low temperature limit is set by entered value. In case measured temperature is below set value, module sends BasicSet value.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="61" label="Too high temperature limit" size="2" min="0" max="1000" value="700">
-			<Help>Default value 700 (too high temperature limit is 70.0C) | 1 - 1000 = 0.1C - 100.0C, step is 0.1C. Too high temperature limit is set by entered value. In case measured temperature is higher than set value, module sends BasicSet value.</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="63" label="Output Switch selection" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="(NC) - When system is turned off the output is 0V" value="0"/>
-			<Item label="(NO) - When system is turned off the output is 230V" value="1"/>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="70" label="Input 1 status on delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 11 must be set to 2! NOTE: Device status on UI change immediately </Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="71" label="Input I status off delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 11 must be set to 2! NOTE: Device status on UI change immediately</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="72" label="Input 2 status on delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 12 must be set to 2000!</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="73" label="Input 2 status off delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 12 must be set to 2000!</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="74" label="Input 3 status on delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 13 must be set to 2! NOTE: Device status on UI change immediately</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="75" label="Input 3 status off delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 13 must be set to 2! NOTE: Device status on UI change immediately</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-    <CommandClass id="67" base="0" />
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="6">
-			<Group index="1" max_associations="16" label="basic on/off (triggered at change of the output Q state and reflecting its state)" auto="false"/>
-			<Group index="2" max_associations="16" label="basic on/off (triggered at change of the input I2 state and reflecting its state)" />
-			<Group index="3" max_associations="16" label="basic on/off (triggered at change of the input I3 state and reflecting its state)" />
-			<Group index="4" max_associations="16" label="basic on/off (triggered by Too high temperature limit, it send FF)" />
-			<Group index="5" max_associations="16" label="basic on/off (triggered by Too low temperature limit, it send FF)" />
-			<Group index="6" max_associations="1"  label="Lifeline" auto="true"/>
-		</Associations>
-	</CommandClass>
-
+    </Value>
+    <Value genre="config" index="56" instance="1" label="P parameter" max="1000" min="0" size="2" type="short" value="100">
+      <Help>default value 100 | 0 -1000 - P value, step is 1</Help>
+    </Value>
+    <Value genre="config" index="57" instance="1" label="I parameter" max="1000" min="0" size="2" type="short" value="1">
+      <Help>default value 1 | 0 -1000 - I value, step is 1</Help>
+    </Value>
+    <Value genre="config" index="58" instance="1" label="D parameter" max="1000" min="0" size="2" type="short" value="1">
+      <Help>default value 1 | 0 -1000 - D value, step is 1</Help>
+    </Value>
+    <Value genre="config" index="59" instance="1" label="Thermostat mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>default : Heat mode | Heat mode | Cool mode</Help>
+      <Item label="Heat mode (0)" value="0"/>
+      <Item label="Cool mode (1)" value="1"/>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Too low temperature limit" max="1000" min="0" size="2" type="short" value="50">
+      <Help>Default value 50 (Too low temperature limit is 5.0C) | 1 - 1000 = 0.1C - 100.0C, step is 0.1C. Too low temperature limit is set by entered value. In case measured temperature is below set value, module sends BasicSet value.</Help>
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Too high temperature limit" max="1000" min="0" size="2" type="short" value="700">
+      <Help>Default value 700 (too high temperature limit is 70.0C) | 1 - 1000 = 0.1C - 100.0C, step is 0.1C. Too high temperature limit is set by entered value. In case measured temperature is higher than set value, module sends BasicSet value.</Help>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Output Switch selection" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="(NC) - When system is turned off the output is 0V" value="0"/>
+      <Item label="(NO) - When system is turned off the output is 230V" value="1"/>
+    </Value>
+    <Value genre="config" index="70" instance="1" label="Input 1 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 11 must be set to 2! NOTE: Device status on UI change immediately </Help>
+    </Value>
+    <Value genre="config" index="71" instance="1" label="Input I status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 11 must be set to 2! NOTE: Device status on UI change immediately</Help>
+    </Value>
+    <Value genre="config" index="72" instance="1" label="Input 2 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 12 must be set to 2000!</Help>
+    </Value>
+    <Value genre="config" index="73" instance="1" label="Input 2 status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 12 must be set to 2000!</Help>
+    </Value>
+    <Value genre="config" index="74" instance="1" label="Input 3 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 13 must be set to 2! NOTE: Device status on UI change immediately</Help>
+    </Value>
+    <Value genre="config" index="75" instance="1" label="Input 3 status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 13 must be set to 2! NOTE: Device status on UI change immediately</Help>
+    </Value>
+  </CommandClass>
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="6">
+      <Group auto="false" index="1" label="basic on/off (triggered at change of the output Q state and reflecting its state)" max_associations="16"/>
+      <Group index="2" label="basic on/off (triggered at change of the input I2 state and reflecting its state)" max_associations="16"/>
+      <Group index="3" label="basic on/off (triggered at change of the input I3 state and reflecting its state)" max_associations="16"/>
+      <Group index="4" label="basic on/off (triggered by Too high temperature limit, it send FF)" max_associations="16"/>
+      <Group index="5" label="basic on/off (triggered by Too low temperature limit, it send FF)" max_associations="16"/>
+      <Group auto="true" index="6" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHLDx.xml b/Config/qubino/ZMNHLDx.xml
index 2219195244..a2cab2d063 100644
--- a/Config/qubino/ZMNHLDx.xml
+++ b/Config/qubino/ZMNHLDx.xml
@@ -1,6 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!--
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
 	Qubino: ZMNHLDx Flush PWM thermostat Z-Wave+
 	ZMNHLD1 868,4 MHz
 	ZMNHLD2 921,4 MHz
@@ -10,224 +9,225 @@
 	 -->
 	 
 	<!-- The thermostat does not properly report its operating modes -->
-	<CommandClass id="64">
-   		<SupportedModes>
-     		<Mode index="0" label="Off" />
-     		<Mode index="1" label="Heat" />
-   		</SupportedModes>
-	</CommandClass>
-
-    <CommandClass id="67" override_precision="2" base="0" />
-    
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Input 3 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="4" label="Input 1 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="5" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="6" label="Input 3 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="1" min="0" max="255" value="255">
-			<Help/>
-			<Item label="ALL ON active, ALL OFF active" value="255" />
-			<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-			<Item label="ALL ON is not active ALL OFF active" value="1" />
-			<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="11" label="I1 Functionality selection" size="2" min="1" max="32767" value="1">
-			<Help>Default value 1
+  <CommandClass id="64">
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+    </SupportedModes>
+  </CommandClass>
+  <CommandClass id="67">
+    <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input 3 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Input 1 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Input 3 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="1" type="list" value="255">
+      <Help/>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="I1 Functionality selection" max="32767" min="1" size="2" type="list" value="1">
+      <Help>Default value 1
 				32767 - input I1 does not influence on the heat/ cool process
 				1 - input I1 changes the mode of the thermostat between Off and Auto. In this case function on flood sensor (if connected) is disabled.
 				2 - input I1 influences on cooling and heating valves according to status of flood sensor. In this case function of Off and Auto selection by I1 is disabled</Help>
-			<Item label="Mode Off and Auto" value="1" />
-			<Item label="Disabled Mode Off and Auto" value="2" />
-			<Item label="No influence on the heat process" value="32767" />
-		</Value>
-		<Value type="short" genre="config" instance="1" index="12" label="I2 Functionality selection" size="2" min="0" max="32767" value="32767">
-			<Help>default value 32767 | 32767 - input I2 does not influence on the heat/ cool process | From 0 to 990 - Temperature set point from 0.0 C to 99.0 C. When I2 is pressed, temperature set point is automatically set to value defined here. In this case function of condense sensor is disabled. | From 1001 to 1150 - Temperature set point from -0.1 C to -15.0
+      <Item label="Mode Off and Auto" value="1"/>
+      <Item label="Disabled Mode Off and Auto" value="2"/>
+      <Item label="No influence on the heat process" value="32767"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="I2 Functionality selection" max="32767" min="0" size="2" type="short" value="32767">
+      <Help>default value 32767 | 32767 - input I2 does not influence on the heat/ cool process | From 0 to 990 - Temperature set point from 0.0 C to 99.0 C. When I2 is pressed, temperature set point is automatically set to value defined here. In this case function of condense sensor is disabled. | From 1001 to 1150 - Temperature set point from -0.1 C to -15.0
 			C. When I2 is pressed, temperature setpoint is automatically set to value defined here. In this case function of condense sensor is disabled. | 2000 - Input I2 influences on the cooling valve according to status of condense sensor, In this case function of setpoint selection with I2 is disabled.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="13" label="I3 Functionality selection" size="2" min="0" max="32767" value="32767">
-			<Help>default value 32767 | 32767 - input I3 does not influence on the heat/ cool process | 1 - input I3 changes the mode of the thermostat between Heat and Cool. In this case function on window sensor is disabled. | 2 - input I3 influences on cooling and heating valves according to status of window sensor. In this case function of Heat and Cool selection by I3 is disabled</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="0">
-			<Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 0</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" min="0" max="32767" value="0">
-			<Help>Set value means time interval (0 - 32767) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 32767 = 1 second - 32767 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 0</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="45" label="Antifreeze" size="1" min="0" max="255" value="50">
-			<Help>Set value means at which temperature the heating will be turned on even if the thermostat was manually set to off. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="50" label="PWM maximum value" size="1" min="0" max="100" value="100">
-			<Help>default value 100 (Maximum PWM value) | 2-100 = 2%-100%, step is 1%. Max. PWM set by entered value. NOTE: The maximum level may not be lower than the minimum level! </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="51" label="PWM minimum value" size="1" min="0" max="99" value="0">
-			<Help>default value 0 (Minimum PWM value is 0%) | 1-99 = 1%-99%, step is 1%. Max. PWM set by entered value. NOTE: The Minimim level may not exceed Maximum level! </Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="52" label="PWM cycle duration" size="1" min="0" max="127" value="10">
-			<Help>Default value 10 (Cycle duration set to 10s) | 5-127 = 5-127s, step is 1s. PWM cycle duration set by entered value. NOTE: PWM cycle duration define the summary of all ON plus OFF time periods. For example if Output is set to 70% with PWM cycle duration of 20s, output will be ON for 14s then OFF 6s, again 14s ON, etc
+    </Value>
+    <Value genre="config" index="13" instance="1" label="I3 Functionality selection" max="32767" min="0" size="2" type="short" value="32767">
+      <Help>default value 32767 | 32767 - input I3 does not influence on the heat/ cool process | 1 - input I3 changes the mode of the thermostat between Heat and Cool. In this case function on window sensor is disabled. | 2 - input I3 influences on cooling and heating valves according to status of window sensor. In this case function of Heat and Cool selection by I3 is disabled</Help>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="0">
+      <Help>Set value from 0 - 100 (0% - 100%). 0 - Reporting Disabled. 1 - 100 = 1% - 100% Reporting enabled. Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%. Default value 0</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="32767" min="0" type="short" value="0">
+      <Help>Set value means time interval (0 - 32767) in seconds, when power report is send. 0 - Reporting Disabled. 1 - 32767 = 1 second - 32767 seconds. Reporting enabled. Power report is send with time interval set by entered value. Default value 0</Help>
+    </Value>
+    <Value genre="config" index="45" instance="1" label="Antifreeze" max="255" min="0" size="1" type="byte" value="50">
+      <Help>Set value means at which temperature the heating will be turned on even if the thermostat was manually set to off. The parameter can be set from 0 to 255 where 0 to 128 means from 0.0 C to 12.8 C and from 129 to 255 means from - 0.0 C to -12.8 C.</Help>
+    </Value>
+    <Value genre="config" index="50" instance="1" label="PWM maximum value" max="100" min="0" size="1" type="byte" value="100">
+      <Help>default value 100 (Maximum PWM value) | 2-100 = 2%-100%, step is 1%. Max. PWM set by entered value. NOTE: The maximum level may not be lower than the minimum level! </Help>
+    </Value>
+    <Value genre="config" index="51" instance="1" label="PWM minimum value" max="99" min="0" size="1" type="byte" value="0">
+      <Help>default value 0 (Minimum PWM value is 0%) | 1-99 = 1%-99%, step is 1%. Max. PWM set by entered value. NOTE: The Minimim level may not exceed Maximum level! </Help>
+    </Value>
+    <Value genre="config" index="52" instance="1" label="PWM cycle duration" max="127" min="0" size="1" type="byte" value="10">
+      <Help>Default value 10 (Cycle duration set to 10s) | 5-127 = 5-127s, step is 1s. PWM cycle duration set by entered value. NOTE: PWM cycle duration define the summary of all ON plus OFF time periods. For example if Output is set to 70% with PWM cycle duration of 20s, output will be ON for 14s then OFF 6s, again 14s ON, etc
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="53" label="PID value inside deadband" size="1" min="0" max="1" value="0">
-			<Help>When value is set to ZERO PID inside deadband is forced to zero. LASTVALUE means that PID remains on same level as was before entering into deadband</Help>
-			<Item label="PID value equal ZERO" value="0"/>
-			<Item label="PID value set to LAST VALUE" value="1"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="54" label="PID deadband" size="1" min="0" max="127" value="5">
-			<Help>default value 5 (0,5 C) | 0-127 - 0.0 C to 12.7 C, step is 0,1C. NOTE: This parameter defines the zone where PID is not active. If the temperature difference between actual and setpoint is bigger than PID deadband, then the PID will start to regulate the system, otherwise the PID is zero or fixed</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="55" label="Integral sampling time" size="1" min="0" max="127" value="5">
-			<Help>default value 5 (0,5 C) | 0-127 - 0.0 C to 12.7 C, step is 0,1C. NOTE: Parameter defines the time between samples. On each sample the
+    </Value>
+    <Value genre="config" index="53" instance="1" label="PID value inside deadband" max="1" min="0" size="1" type="list" value="0">
+      <Help>When value is set to ZERO PID inside deadband is forced to zero. LASTVALUE means that PID remains on same level as was before entering into deadband</Help>
+      <Item label="PID value equal ZERO" value="0"/>
+      <Item label="PID value set to LAST VALUE" value="1"/>
+    </Value>
+    <Value genre="config" index="54" instance="1" label="PID deadband" max="127" min="0" size="1" type="byte" value="5">
+      <Help>default value 5 (0,5 C) | 0-127 - 0.0 C to 12.7 C, step is 0,1C. NOTE: This parameter defines the zone where PID is not active. If the temperature difference between actual and setpoint is bigger than PID deadband, then the PID will start to regulate the system, otherwise the PID is zero or fixed</Help>
+    </Value>
+    <Value genre="config" index="55" instance="1" label="Integral sampling time" max="127" min="0" size="1" type="byte" value="5">
+      <Help>default value 5 (0,5 C) | 0-127 - 0.0 C to 12.7 C, step is 0,1C. NOTE: Parameter defines the time between samples. On each sample the
 			controller capture difference between SP-act</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="56" label="P parameter" size="2" min="0" max="1000" value="100">
-			<Help>default value 100 | 0 -1000 - P value, step is 1</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="57" label="I parameter" size="2" min="0" max="1000" value="1">
-			<Help>default value 1 | 0 -1000 - I value, step is 1</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="58" label="D parameter" size="2" min="0" max="1000" value="1">
-			<Help>default value 1 | 0 -1000 - D value, step is 1</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="59" label="Thermostat mode" size="1" min="0" max="1" value="0">
-			<Help>default : Heat mode | Heat mode | Cool mode</Help>
-			<Item label="Heat mode (0)" value="0"/>
-			<Item label="Cool mode (1)" value="1"/>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="60" label="Too low temperature limit" size="2" min="0" max="1000" value="50">
-			<Help>Default value 50 (Too low temperature limit is 5.0C) | 1 - 1000 = 0.1C - 100.0C, step is 0.1C. Too low temperature limit is set by entered value. In case measured temperature is below set value, module sends BasicSet value.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="61" label="Too high temperature limit" size="2" min="0" max="1000" value="700">
-			<Help>Default value 700 (too high temperature limit is 70.0C) | 1 - 1000 = 0.1C - 100.0C, step is 0.1C. Too high temperature limit is set by entered value. In case measured temperature is higher than set value, module sends BasicSet value.</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="63" label="Output Switch selection" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="(NC) - When system is turned off the output is 0V" value="0"/>
-			<Item label="(NO) - When system is turned off the output is 230V" value="1"/>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="70" label="Input 1 status on delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 11 must be set to 2! NOTE: Device status on UI change immediately </Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="71" label="Input I status off delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 11 must be set to 2! NOTE: Device status on UI change immediately</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="72" label="Input 2 status on delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 12 must be set to 2000!</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="73" label="Input 2 status off delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 12 must be set to 2000!</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="74" label="Input 3 status on delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 13 must be set to 2! NOTE: Device status on UI change immediately</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="75" label="Input 3 status off delay" size="2" min="0" max="32000" value="0">
-			<Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 13 must be set to 2! NOTE: Device status on UI change immediately</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="100" label="Enable / Disable Endpoints I1 or select notification type and event" size="1" min="0" max="9" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="56" instance="1" label="P parameter" max="1000" min="0" size="2" type="short" value="100">
+      <Help>default value 100 | 0 -1000 - P value, step is 1</Help>
+    </Value>
+    <Value genre="config" index="57" instance="1" label="I parameter" max="1000" min="0" size="2" type="short" value="1">
+      <Help>default value 1 | 0 -1000 - I value, step is 1</Help>
+    </Value>
+    <Value genre="config" index="58" instance="1" label="D parameter" max="1000" min="0" size="2" type="short" value="1">
+      <Help>default value 1 | 0 -1000 - D value, step is 1</Help>
+    </Value>
+    <Value genre="config" index="59" instance="1" label="Thermostat mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>default : Heat mode | Heat mode | Cool mode</Help>
+      <Item label="Heat mode (0)" value="0"/>
+      <Item label="Cool mode (1)" value="1"/>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Too low temperature limit" max="1000" min="0" size="2" type="short" value="50">
+      <Help>Default value 50 (Too low temperature limit is 5.0C) | 1 - 1000 = 0.1C - 100.0C, step is 0.1C. Too low temperature limit is set by entered value. In case measured temperature is below set value, module sends BasicSet value.</Help>
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Too high temperature limit" max="1000" min="0" size="2" type="short" value="700">
+      <Help>Default value 700 (too high temperature limit is 70.0C) | 1 - 1000 = 0.1C - 100.0C, step is 0.1C. Too high temperature limit is set by entered value. In case measured temperature is higher than set value, module sends BasicSet value.</Help>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Output Switch selection" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="(NC) - When system is turned off the output is 0V" value="0"/>
+      <Item label="(NO) - When system is turned off the output is 230V" value="1"/>
+    </Value>
+    <Value genre="config" index="70" instance="1" label="Input 1 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 11 must be set to 2! NOTE: Device status on UI change immediately </Help>
+    </Value>
+    <Value genre="config" index="71" instance="1" label="Input I status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 11 must be set to 2! NOTE: Device status on UI change immediately</Help>
+    </Value>
+    <Value genre="config" index="72" instance="1" label="Input 2 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 12 must be set to 2000!</Help>
+    </Value>
+    <Value genre="config" index="73" instance="1" label="Input 2 status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 12 must be set to 2000!</Help>
+    </Value>
+    <Value genre="config" index="74" instance="1" label="Input 3 status on delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 13 must be set to 2! NOTE: Device status on UI change immediately</Help>
+    </Value>
+    <Value genre="config" index="75" instance="1" label="Input 3 status off delay" max="32000" min="0" size="2" type="short" value="0">
+      <Help>default value 0 | 1 - 32000 seconds. If the value of parameter is different to 0, means that the Influence of this input to heating or cooling will react after inserted time. Parameter 13 must be set to 2! NOTE: Device status on UI change immediately</Help>
+    </Value>
+    <Value genre="config" index="100" instance="1" label="Enable / Disable Endpoints I1 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help>
                 Enabling I1 means that Endpoint (I1) will be present on UI.
                 Disabling it will result in hiding the endpoint according to the parameter set value.
                 Additionally, a Notification Type and Event can be selected for the endpoint.
                 NOTE 1: After parameter change, first exclude module (without setting parameters to default value) and then re include the module!
                 NOTE 2: When the parameter is set to value 9 the notifications are send for Home Security.
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Home Security; Motion Detection" value="1" />
-            <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2" />
-            <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3" />
-            <Item label="Water Alarm; Water Leak detected" value="4" />
-            <Item label="Heat Alarm; Overheat detected" value="5" />
-            <Item label="Smoke Alarm; Smoke detected" value="6" />
-            <Item label="Sensor binary" value="9" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="101" label="Enable / Disable Endpoints I2 or select notification type and event" size="1" min="0" max="9" value="0">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Home Security; Motion Detection" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3"/>
+      <Item label="Water Alarm; Water Leak detected" value="4"/>
+      <Item label="Heat Alarm; Overheat detected" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="101" instance="1" label="Enable / Disable Endpoints I2 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help>
                 Enabling I2 means that Endpoint (I2) will be present on UI.
                 Disabling it will result in hiding the endpoint according to the parameter set value.
                 Additionally, a Notification Type and Event can be selected for the endpoint.
                 NOTE 1: After parameter change, first exclude module (without setting parameters to default value) and then re include the module!
                 NOTE 2: When the parameter is set to value 9 the notifications are send for Home Security.
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Home Security; Motion Detection" value="1" />
-            <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2" />
-            <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3" />
-            <Item label="Water Alarm; Water Leak detected" value="4" />
-            <Item label="Heat Alarm; Overheat detected" value="5" />
-            <Item label="Smoke Alarm; Smoke detected" value="6" />
-            <Item label="Sensor binary" value="9" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="102" label="Enable / Disable Endpoints I3 or select notification type and event" size="1" min="0" max="9" value="0">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Home Security; Motion Detection" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3"/>
+      <Item label="Water Alarm; Water Leak detected" value="4"/>
+      <Item label="Heat Alarm; Overheat detected" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="102" instance="1" label="Enable / Disable Endpoints I3 or select notification type and event" max="9" min="0" size="1" type="list" value="0">
+      <Help>
                 Enabling I3 means that Endpoint (I3) will be present on UI.
                 Disabling it will result in hiding the endpoint according to the parameter set value.
                 Additionally, a Notification Type and Event can be selected for the endpoint.
                 NOTE 1: After parameter change, first exclude module (without setting parameters to default value) and then re include the module!
                 NOTE 2: When the parameter is set to value 9 the notifications are send for Home Security.
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Home Security; Motion Detection" value="1" />
-            <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2" />
-            <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3" />
-            <Item label="Water Alarm; Water Leak detected" value="4" />
-            <Item label="Heat Alarm; Overheat detected" value="5" />
-            <Item label="Smoke Alarm; Smoke detected" value="6" />
-            <Item label="Sensor binary" value="9" />
-        </Value>
-        <Value type="short" genre="config" instance="1" index="110" label="Temperature sensor offset settings" size="2" min="0" max="32536" value="32536">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Home Security; Motion Detection" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected" value="3"/>
+      <Item label="Water Alarm; Water Leak detected" value="4"/>
+      <Item label="Heat Alarm; Overheat detected" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature sensor offset settings" max="32536" min="0" size="2" type="short" value="32536">
+      <Help>
                 Set value is added or subtracted to actual measured value by sensor.
                 From 1 to 100 = value from 0.1C to 10.0C is added to actual measured temperature.
                 From 1001 to 1100 = value from -0.1 C to -10.0 C is subtracted to actual measured temperature.
                 Default value 32536. 32536  offset is 0.0C.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="120" label="Digital temperature sensor reporting" min="0" max="127" value="5">
-            <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Digital temperature sensor reporting" max="127" min="0" type="byte" value="5">
+      <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
                 0 = reporting disabled.
                 1 to 127 = 0,1C to 12,7C, step is 0,1C.
                 Default value is 5 = 0,5C</Help>
-        </Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="9">
-            <Group index="1" max_associations="1" label="Lifeline" />
-            <Group index="2" max_associations="16" label="Basic on/off (triggered at change of the output Q state and reflecting its state) up to 16 nodes" />
-            <Group index="3" max_associations="16" label="Basic on/off (triggered at change of thermostat mode) up to 16 nodes" />
-            <Group index="4" max_associations="16" label="Basic on/off (triggered by Too high temperature limit, it send FF) up to 16 nodes" />
-            <Group index="5" max_associations="16" label="Basic on/off (triggered by Too low temperature limit, it send FF) up to 16 nodes" />
-            <Group index="6" max_associations="16" label="Basic on/off (trigged by change of I1) up to 16 nodes" />
-            <Group index="7" max_associations="16" label="Basic on/off (trigged by change of I2) up to 16 nodes" />
-            <Group index="8" max_associations="16" label="Basic on/off (trigged by change of I3) up to 16 nodes" />
-            <Group index="9" max_associations="16" label="Sensor multilevel (trigged by change of temperature)" />
-        </Associations>
-	</CommandClass>
-
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="9">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic on/off (triggered at change of the output Q state and reflecting its state) up to 16 nodes" max_associations="16"/>
+      <Group index="3" label="Basic on/off (triggered at change of thermostat mode) up to 16 nodes" max_associations="16"/>
+      <Group index="4" label="Basic on/off (triggered by Too high temperature limit, it send FF) up to 16 nodes" max_associations="16"/>
+      <Group index="5" label="Basic on/off (triggered by Too low temperature limit, it send FF) up to 16 nodes" max_associations="16"/>
+      <Group index="6" label="Basic on/off (trigged by change of I1) up to 16 nodes" max_associations="16"/>
+      <Group index="7" label="Basic on/off (trigged by change of I2) up to 16 nodes" max_associations="16"/>
+      <Group index="8" label="Basic on/off (trigged by change of I3) up to 16 nodes" max_associations="16"/>
+      <Group index="9" label="Sensor multilevel (trigged by change of temperature)" max_associations="16"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHNDx.xml b/Config/qubino/ZMNHNDx.xml
index be388ec568..ffe3adce5c 100644
--- a/Config/qubino/ZMNHNDx.xml
+++ b/Config/qubino/ZMNHNDx.xml
@@ -1,6 +1,50 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- 
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0159:0053:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/qubino/ZMNHNDx.png</MetaDataItem>
+    <MetaDataItem id="0053" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1336/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Module Exclusion/Reset (Removing from Z-Wave network)
+•	Connect module to power supply 
+•	bring module within maximum 1 meter (3 feet) of the main controller,
+•	enable add/remove mode on main controller
+•	press service button S for more than 6 second or
+•	press push button I1 five times within 3s (5 times change switch state within 3 seconds) in the first 60 seconds after the module is connected to the power supply.
+
+By this function all parameters of the module are set to default values and own ID is deleted
+If service button S is pressed more than 2 and less than 6 second module is excluded, but configuration parameters are not set to default values. 
+</MetaDataItem>
+    <MetaDataItem id="0053" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Qubino Flush 1D relay with voltage free (dry contact) output contact.
+This Z-Wave module is used for switching on or off the electrical device (e.g. light, fan, etc ...). The module can be controlled either through Z-wave network or through the wall switch.
+The module is designed to be mounted inside a “flush mounting box”, hidden behind a traditional wall switch.
+Module supports connection of digital temperature sensor. It is designed to act as repeater in order to improve range and stability of Z-wave network.                  
+
+Output contact is voltage free (dry contact), so also loads with different power supply can be connected to the module.
+
+FEATURES:
+- The module has the option to connect a digital temperature sensor
+- small dimensions (WxHxD) 41,8x36,8x15,4mm
+- power supply is 110 - 230 VAC ±10% 50/60Hz, 24-30VDC
+- Electrical consumption 0,4W</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Module Inclusion (Adding to Z-wave network)
+•	Connect module to power supply (with 
+temperature sensor connected - if purchased),
+•	auto-inclusion (works for about 5 seconds after connected to power supply) or
+•	press service button S for more than 2 second or
+•	press push button I1 three times within 3s (3 times change switch state within 3 seconds).
+NOTE: When connecting temperature sensor to module that has already been included, you have to exclude module first. Connect the sensor and re-include the module.
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please use this procedure only in the event that your network primary controller is missing or otherwise inoperable.
+
+If the service button S is pressed for more than 6 seconds the module will be reset to the factory defoult state.</MetaDataItem>
+    <MetaDataItem name="Name">Qubino Flush 1D relay</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1336/Qubino_Flush 1D Relay PLUS extended manual_eng_2.2.pdf</MetaDataItem>
+    <MetaDataItem id="0053" name="Identifier" type="0002">ZMNHN</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1336/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- 
 	Qubino ZMNHNDx Flush 1D Relay 
 	ZMNHND1 868,4 MHz
 	ZMNHND2 921,4 MHz
@@ -10,95 +54,92 @@
 	-->
 	
 	<!-- Configuration  -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable switch type (push button)" value="0" />
-			<Item label="Bi-stable switch type" value="1" />
-		</Value>		
-		<Value type="list" genre="config" instance="1" index="2" label="Input 2 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="NO (normaly open) input type" value="0"/>
-			<Item label="NC (normaly close) input type" value="1"/>
-		</Value> 
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="255">
-			<Help>Flush 1 relay module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system</Help>
-			<Item label="ALL ON active, ALL OFF active" value="255" />
-			<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-			<Item label="ALL ON is not active ALL OFF active" value="1" />
-			<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value> 		
-		<Value type="short" genre="config" instance="1" index="11" label="Automatic turning off relay after set time" size="2" min="0" max="32535" value="0">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable switch type (push button)" value="0"/>
+      <Item label="Bi-stable switch type" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 2 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="NO (normaly open) input type" value="0"/>
+      <Item label="NC (normaly close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="255">
+      <Help>Flush 1 relay module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system</Help>
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Automatic turning off relay after set time" max="32535" min="0" size="2" type="short" value="0">
+      <Help>
 			0 => Auto OFF disabled. 
 			1 - 32535  => 1 second (0,01s) - 32535 seconds (325,35s). 
 			Auto OFF enabled with define time, step is 1s or 10ms according to parameter 15. Default value 0</Help>
-		</Value>		
-        <Value type="short" genre="config" instance="1" index="12" label="Automatic turning on relay after set time" size="2" min="0" max="32535" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Automatic turning on relay after set time" max="32535" min="0" size="2" type="short" value="0">
+      <Help>
 			0 - Auto OFF disabled. 
 			1 - 32535  => 1 second (0,01s) - 32535 seconds (325,35s).
 			Auto ON enabled with define time, step is 1s or 10ms according to parameter 15. Default value 0</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="15" label="Automatic turning on/off seconds or milliseconds selection" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="seconds" value="0" />
-            <Item label="milliseconds" value="1" />
-        </Value>
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the relay after a power failure" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Flush 1 relay module saves its state before power failure (it returns to the last position saved before a power failure)" value="0" />
-			<Item label="Flush 1 relay module does not save the state after a power failure, it returns to off position." value="1" />
-		</Value>		
-        <Value type="list" genre="config" instance="1" index="63" label="Output switch selection" size="1" min="0" max="1" value="0">
-            <Help/>
-            <Item label="When system is turned off the output is 0V (NC)" value="0" />
-            <Item label="When system is turned off the output is 230V or 24V (NO)" value="1" />
-        </Value>
-		<Value type="list" genre="config" instance="1" index="80" label="Reporting to controller" size="1" min="0" max="1" value="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Automatic turning on/off seconds or milliseconds selection" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="seconds" value="0"/>
+      <Item label="milliseconds" value="1"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the relay after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Flush 1 relay module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Flush 1 relay module does not save the state after a power failure, it returns to off position." value="1"/>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Output switch selection" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="When system is turned off the output is 0V (NC)" value="0"/>
+      <Item label="When system is turned off the output is 230V or 24V (NO)" value="1"/>
+    </Value>
+    <Value genre="config" index="80" instance="1" label="Reporting to controller" max="1" min="0" size="1" type="list" value="1">
+      <Help>
 			Available from SW version S1 Only 
 			This parameter defines if reporting regarding power level, multilevel, etc, are reported to controller or not. 
 			NOTE: Disabling reporting is recommended in case Z-wave modules communicate in association groups without using main controller.
 			</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-		<Value type="list" genre="config" instance="1" index="100" label="Enable / Disable Endpoints I2 or select notification type and event" size="1" min="0" max="9" value="1">
-            <Help/>
-            <Item label="Endpoint, I2 disabled" value="0" />
-			<Item label="Home Security; Motion Detection, unknown location" value="1" />
-			<Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location" value="2" />
-			<Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location" value="3" />
-			<Item label="Water Alarm; Water Leak detected, unknown location" value="4" />
-			<Item label="Heat Alarm; Overheat detected, unknown location" value="5" />
-			<Item label="Smoke Alarm; Smoke detected, unknown location" value="6" />
-			<Item label="Sensor binary" value="9" />
-        </Value>
-		<Value type="short" genre="config" instance="1" index="110" label="Temperature sensor offset settings" size="2" min="0" max="32535" value="32535">
-            <Help>Set value is added or subtracted to actual measured value by sensor. 
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="100" instance="1" label="Enable / Disable Endpoints I2 or select notification type and event" max="9" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Endpoint, I2 disabled" value="0"/>
+      <Item label="Home Security; Motion Detection, unknown location" value="1"/>
+      <Item label="Carbon Monoxide; Carbon Monoxide detected, unknown location" value="2"/>
+      <Item label="Carbon Dioxide; Carbon Dioxide detected, unknown location" value="3"/>
+      <Item label="Water Alarm; Water Leak detected, unknown location" value="4"/>
+      <Item label="Heat Alarm; Overheat detected, unknown location" value="5"/>
+      <Item label="Smoke Alarm; Smoke detected, unknown location" value="6"/>
+      <Item label="Sensor binary" value="9"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature sensor offset settings" max="32535" min="0" size="2" type="short" value="32535">
+      <Help>Set value is added or subtracted to actual measured value by sensor. 
 			Available configuration parameters : default value 32536. 32536  offset is 0.0C. 
 			From 1 to 100 = value from 0.1C to 10.0C is added to actual measured temperature.
 			From 1001 to 1100 = value from -0.1 C to -10.0 C is subtracted to actual measured temperature.</Help>
-        </Value>
-		<Value type="byte" genre="config" instance="1" index="120" label="Digital temperature sensor reporting" min="0" max="127" value="5">
-            <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter. 
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Digital temperature sensor reporting" max="127" min="0" type="byte" value="5">
+      <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter. 
 			Available configuration parameters : 0 = reporting disabled. 1 to 127 = 0,1C to 12,7C, step is 0,1C. Default value is 5 = 0,5C</Help>
-        </Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="5">
-			<Group index="1" max_associations="1" label="Lifeline"/>
-			<Group index="2" max_associations="16" label="Basic on/off of the output state"/>
-			<Group index="3" max_associations="16" label="Basic on/off of the input I2 state"/>		  
-			<Group index="4" max_associations="16" label="Binary Sensor Report of the input I2 state"/>
-			<Group index="5" max_associations="16" label="Notification Report of the input I2 state"/>
-		</Associations>
-	</CommandClass>
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove" />
-
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic on/off of the output state" max_associations="16"/>
+      <Group index="3" label="Basic on/off of the input I2 state" max_associations="16"/>
+      <Group index="4" label="Binary Sensor Report of the input I2 state" max_associations="16"/>
+      <Group index="5" label="Notification Report of the input I2 state" max_associations="16"/>
+    </Associations>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
 </Product>
diff --git a/Config/qubino/ZMNHODx.xml b/Config/qubino/ZMNHODx.xml
index 503c99eb71..e16c46d3b7 100644
--- a/Config/qubino/ZMNHODx.xml
+++ b/Config/qubino/ZMNHODx.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     Qubino: ZMNHODx Flush shutter DC
 
diff --git a/Config/qubino/ZMNHSDx.xml b/Config/qubino/ZMNHSDx.xml
index a77bef959c..fa0b88bdd4 100644
--- a/Config/qubino/ZMNHSDx.xml
+++ b/Config/qubino/ZMNHSDx.xml
@@ -1,7 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- 
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- 
 Qubino: ZMNHSDx Din Dimmer Z-Wave+
 ZMNHSD1 868,4 MHz
 ZMNHSD2 921,4 MHz
@@ -11,143 +9,126 @@ ZMNHSD5 916,0 MHz
 -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Mono-stable(push button)" value="0" />
-			<Item label="Bi-stable" value="1" />
-		</Value>
-	
-		<Value type="list" genre="config" instance="1" index="5" label="Working mode" size="1" min="0" max="1" value="0">
-			<Help>Default value 0</Help>
-			<Item label="Dimmer" value="0"/>
-			<Item label="Switch" value="1"/>
-		</Value> 
-	
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="255">
-			<Help>Flush dimmer module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Mono-stable(push button)" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Working mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>Default value 0</Help>
+      <Item label="Dimmer" value="0"/>
+      <Item label="Switch" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="255">
+      <Help>Flush dimmer module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.
 			Default value 255.</Help>
-			<Item label="ALL ON active, ALL OFF active" value="255" />
-			<Item label="ALL ON is not active ALL OFF is not active" value="0" />
-			<Item label="ALL ON is not active ALL OFF active" value="1" />
-			<Item label="ALL ON active ALL OFF is not active" value="2" />
-		</Value>
-	
-		<Value type="short" genre="config" instance="1" index="11" label="Automatic turning off output after set time" size="2" min="0" max="32536" value="0">
-			<Help>0 - Auto OFF disabled.
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active ALL OFF active" value="1"/>
+      <Item label="ALL ON active ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Automatic turning off output after set time" max="32536" min="0" size="2" type="short" value="0">
+      <Help>0 - Auto OFF disabled.
 			1 second to 32536 seconds Auto OFF enabled with defined time, step is 1 second.
 			Default value 0.</Help>
-		</Value> 
-	
-		<Value type="short" genre="config" instance="1" index="12" label="Automatic turning on output after set time" size="2" min="0" max="32535" value="0">
-			<Help>0 - Auto ON disabled.
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Automatic turning on output after set time" max="32535" min="0" size="2" type="short" value="0">
+      <Help>0 - Auto ON disabled.
 			1 second to 32535 seconds Auto ON enabled with defined time, step is 1 second.
 			Default value 0.</Help>
-		</Value> 
-
-		<Value type="list" genre="config" instance="1" index="21" label="Enable/Disable Double click function" size="1" min="0" max="1" value="0">
-			<Help>If Double click function is enabled, a fast double click on the push button will set dimming power at maximum dimming value.
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Enable/Disable Double click function" max="1" min="0" size="1" type="list" value="0">
+      <Help>If Double click function is enabled, a fast double click on the push button will set dimming power at maximum dimming value.
 				Default value 0.</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Enabled" value="1"/>
-		</Value> 
-
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the relay after a power failure" size="1" min="0" max="1" value="0">
-			<Help>Default value 0.</Help>
-			<Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0" />
-			<Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1" />
-		</Value>
-	
- 		<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="5">
-			<Help>Set value from 0 - 100 (0% - 100%).
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the relay after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help>Default value 0.</Help>
+      <Item label="Flush dimmer module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Flush dimmer module does not save the state after a power failure, it returns to off position" value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="5">
+      <Help>Set value from 0 - 100 (0% - 100%).
 			0 - Reporting Disabled.
 			1 - 100 = 1% - 100% Reporting enabled.
 			Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%.
 			Default value 5.</Help>
-			</Value>
-	
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" min="0" max="32767" value="300">
-			<Help>Set value means time interval (0 - 32767) in seconds, when power report is send.
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="32767" min="0" type="short" value="300">
+      <Help>Set value means time interval (0 - 32767) in seconds, when power report is send.
 			0 - Reporting Disabled.
 			1 second to 32767 seconds reporting enabled.
 			Power report is send with time interval set by entered value.
 			Default value 300 (power report in Watts is send each 300s).</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="60" label="Minimum dimming value" min="1" max="98" value="1">
-			<Help>1 - 98 = 1% - 98%, step is 1%. Minimum dimming values is set by entered value.
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Minimum dimming value" max="98" min="1" type="byte" value="1">
+      <Help>1 - 98 = 1% - 98%, step is 1%. Minimum dimming values is set by entered value.
 			Default value 1 (Minimum dimming value is 1%).</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="61" label="Maximum dimming value" min="2" max="99" value="99">
-			<Help>2 - 99 = 2% - 99%, step is 1%. Maximum dimming values is set by entered value.
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Maximum dimming value" max="99" min="2" type="byte" value="99">
+      <Help>2 - 99 = 2% - 99%, step is 1%. Maximum dimming values is set by entered value.
 			Default value 99 (Maximum dimming value is 99%).</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="65" label="Dimming time (soft on/off)" min="1" max="255" value="100">
-			<Help>Set value means time of moving the Dimmer between min. and max. dimming values by short press of push button I1 or controlled through.
+    </Value>
+    <Value genre="config" index="65" instance="1" label="Dimming time (soft on/off)" max="255" min="1" type="short" value="100">
+      <Help>Set value means time of moving the Dimmer between min. and max. dimming values by short press of push button I1 or controlled through.
 			1- 255 = 10mseconds - 2550mseconds (2,55s), step is 10mseconds.
 			Default value 100 (Dimming time between min. and max. dimming values is 1s).</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="66" label="Dimming time when key pressed" min="1" max="255" value="3">
-			<Help>Time of moving the Dimmer between min. and max dimming values by continues hold of push button I1.
+    </Value>
+    <Value genre="config" index="66" instance="1" label="Dimming time when key pressed" max="255" min="1" type="short" value="3">
+      <Help>Time of moving the Dimmer between min. and max dimming values by continues hold of push button I1.
 			1- 255 = 1 second - 255 seconds.
 			Default value 3 (Dimming time between min. and max. dimming values is 3s).</Help>
-		</Value>
-		
-		<Value type="list" genre="config" instance="1" index="67" label="Ignore start level" size="1" min="0" max="1" value="0">
-			<Help>This parameter is used with association group 4.
+    </Value>
+    <Value genre="config" index="67" instance="1" label="Ignore start level" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter is used with association group 4.
 				A receiving device SHOULD respect the start level if the Ignore Start Level bit is 0.
 				A receiving device MUST ignore the start level if the Ignore Start Level bit is 1.
 				Default value 0.</Help>
-			<Item label="respect start level" value="0"/>
-			<Item label="ignore start level" value="1"/>
-		</Value> 
-		
-		<Value type="list" genre="config" instance="1" index="68" label="Dimming duration" size="1" min="0" max="1" value="0">
-			<Help>This parameter is used with association group 3.
+      <Item label="respect start level" value="0"/>
+      <Item label="ignore start level" value="1"/>
+    </Value>
+    <Value genre="config" index="68" instance="1" label="Dimming duration" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter is used with association group 3.
 				The Duration field MUST specify the time that the transition should take from the current value to the new target value.
 				A supporting device SHOULD respect the specified Duration value.
 				Default value 0.</Help>
-			<Item label="Respect start level" value="0"/>
-			<Item label="Ignore start level" value="1"/>
-		</Value> 
-
-		<Value type="short" genre="config" instance="1" index="110" label="Temperature sensor offset settings" min="1" max="32536" value="32536">
-			<Help>Set value is added or subtracted to actual measured value by sensor.
+      <Item label="Respect start level" value="0"/>
+      <Item label="Ignore start level" value="1"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature sensor offset settings" max="32536" min="1" type="short" value="32536">
+      <Help>Set value is added or subtracted to actual measured value by sensor.
 			32536 : offset is 0.0C.
 			From 1 to 100 : value from 0.1 C to 10.0 C is added to actual measured temperature.
 			From 1001 to 1100 : value from -0.1 C to -10.0 C is subtracted to actual measured temperature.
 			Default value 32536.
 			</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="120" label="Digital temperature sensor reporting" min="0" max="127" value="5">
-			<Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Digital temperature sensor reporting" max="127" min="0" type="byte" value="5">
+      <Help>If digital temperature sensor is connected, module reports measured temperature on temperature change defined by this parameter.
 			0 : Reporting disabled.
 			1- 127 = 0,1C - 12,7C, step is 0,1C.
 			Default value 5 = 0,5C change.
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="5">
-			<Group index="1" max_associations="1" label="Lifeline"/>
-			<Group index="2" max_associations="16" label="Basic on/off"/>
-			<Group index="3" max_associations="16" label="Start level change/stop level change"/>
-			<Group index="4" max_associations="16" label="Multilevel set Flush dimmer"/>
-			<Group index="5" max_associations="16" label="Multilevel sensor report temp sensor"/>
-		</Associations>
-	</CommandClass>
-
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove" />
-
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic on/off" max_associations="16"/>
+      <Group index="3" label="Start level change/stop level change" max_associations="16"/>
+      <Group index="4" label="Multilevel set Flush dimmer" max_associations="16"/>
+      <Group index="5" label="Multilevel sensor report temp sensor" max_associations="16"/>
+    </Associations>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHTDx.xml b/Config/qubino/ZMNHTDx.xml
index 6c0b067812..3be14e1ce6 100644
--- a/Config/qubino/ZMNHTDx.xml
+++ b/Config/qubino/ZMNHTDx.xml
@@ -1,7 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- 
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- 
 Qubino:  ZMNHTDx Smart meter Z-Wave+
 SW version S4,S5 & S6
 ZMNHTD1 868,4 MHz
@@ -12,174 +10,150 @@ ZMNHTD5 916,0 MHz
 -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="7" label="Input 1 switch function selection" size="1" min="0" max="5" value="4">
-			<Help>Default value 4</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="IR external relay control - mono stable push button" value="2"/>
-			<Item label="IR external relay control - bi stable switch" value="3"/>
-			<Item label="External relay control - mono stable push button" value="4"/>
-			<Item label="External relay control - bi stable switch" value="5"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="10" label="Activate / deactivate functions ALL ON/ALL OFF" size="2" min="0" max="255" value="255">
-			<Help>Smart meter module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.
+  <CommandClass id="112">
+    <Value genre="config" index="7" instance="1" label="Input 1 switch function selection" max="5" min="0" size="1" type="list" value="4">
+      <Help>Default value 4</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="IR external relay control - mono stable push button" value="2"/>
+      <Item label="IR external relay control - bi stable switch" value="3"/>
+      <Item label="External relay control - mono stable push button" value="4"/>
+      <Item label="External relay control - bi stable switch" value="5"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Activate / deactivate functions ALL ON/ALL OFF" max="255" min="0" size="2" type="list" value="255">
+      <Help>Smart meter module responds to commands ALL ON / ALL OFF that may be sent by the main controller or by other controller belonging to the system.
 				Default value 255.
 			</Help>
-			<Item label="ALL ON active, ALL OFF active" value="255"/>
-			<Item label="ALL ON is not active, ALL OFF is not active" value="0"/>
-			<Item label="ALL ON is not active, ALL OFF active" value="1"/>
-			<Item label="ALL ON active, ALL OFF is not active" value="2"/>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="11" label="Automatic turning off IR external relay output after set time" size="2" min="0" max="32536" value="0">
-			<Help>0 - Auto OFF disabled.
+      <Item label="ALL ON active, ALL OFF active" value="255"/>
+      <Item label="ALL ON is not active, ALL OFF is not active" value="0"/>
+      <Item label="ALL ON is not active, ALL OFF active" value="1"/>
+      <Item label="ALL ON active, ALL OFF is not active" value="2"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Automatic turning off IR external relay output after set time" max="32536" min="0" size="2" type="short" value="0">
+      <Help>0 - Auto OFF disabled.
 				1 second to 32536 seconds Auto OFF enabled with defined time, step is 1 second.
 				Default value 0.
 			</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="12" label="Automatic turning on IR external relay output after set time" size="2" min="0" max="32535" value="0">
-			<Help>0 - Auto ON disabled.
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Automatic turning on IR external relay output after set time" max="32535" min="0" size="2" type="short" value="0">
+      <Help>0 - Auto ON disabled.
 				1 second to 32535 seconds Auto ON enabled with defined time, step is 1 second.
 				Default value 0.
 			</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="13" label="Automatic turning off External relay output after set time" size="2" min="0" max="32536" value="0">
-			<Help>0 - Auto OFF disabled.
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Automatic turning off External relay output after set time" max="32536" min="0" size="2" type="short" value="0">
+      <Help>0 - Auto OFF disabled.
 				1 second to 32536 seconds Auto OFF enabled with defined time, step is 1 second.
 				Default value 0.
 			</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="14" label="Automatic turning on External relay output after set time" size="2" min="0" max="32535" value="0">
-			<Help>0 - Auto ON disabled.
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Automatic turning on External relay output after set time" max="32535" min="0" size="2" type="short" value="0">
+      <Help>0 - Auto ON disabled.
 				1 second to 32535 seconds Auto ON enabled with defined time, step is 1 second.
 				Default value 0.
 			</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="40" label="Power reporting in Watts on power change" size="1" min="0" max="100" value="10">
-			<Help>Set value from 0 - 100 (0% - 100%).
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Power reporting in Watts on power change" max="100" min="0" size="1" type="byte" value="10">
+      <Help>Set value from 0 - 100 (0% - 100%).
 				0 - Reporting Disabled.
 				1 - 100 = 1% - 100% Reporting enabled.
 				Power report is send (push) only when actual power in Watts in real time change for more than set percentage comparing to previous actual power in Watts, step is 1%.
 				Default value 10.
 			</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="42" label="Power reporting in Watts by time interval" size="2" min="0" max="32767" value="0">
-			<Help>Set value means time interval (0 - 32767) in seconds, when power report is send.
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Power reporting in Watts by time interval" max="32767" min="0" size="2" type="short" value="0">
+      <Help>Set value means time interval (0 - 32767) in seconds, when power report is send.
 				0 - Reporting Disabled.
 				1 second to 32767 seconds reporting enabled.
 				Power report is send with time interval set by entered value.
 				Default value 0.
 			</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="45" label="Reset Power counters" size="1" min="0" max="15" value="0">
-			<Help>Default value 0</Help>
-			<Item label="No function" value="0"/>
-			<Item label="Reset counter 1 - KWh" value="1"/>
-			<Item label="Reset counter 2 - KVARh" value="2"/>
-			<Item label="Reset counter 3 - KVAh" value="4"/>
-			<Item label="Reset ALL counters" value="15"/>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="100" label="Enable /Disable endpoints IR external relay and External relay" size="1" min="0" max="3" value="0">
-			<Help>Enabling IR external relay and External relay or both of them, means that endpoint (IR external relay) and endpoint (External relay) or both will be prensent on UI.
+    </Value>
+    <Value genre="config" index="45" instance="1" label="Reset Power counters" max="15" min="0" size="1" type="list" value="0">
+      <Help>Default value 0</Help>
+      <Item label="No function" value="0"/>
+      <Item label="Reset counter 1 - KWh" value="1"/>
+      <Item label="Reset counter 2 - KVARh" value="2"/>
+      <Item label="Reset counter 3 - KVAh" value="4"/>
+      <Item label="Reset ALL counters" value="15"/>
+    </Value>
+    <Value genre="config" index="100" instance="1" label="Enable /Disable endpoints IR external relay and External relay" max="3" min="0" size="1" type="list" value="0">
+      <Help>Enabling IR external relay and External relay or both of them, means that endpoint (IR external relay) and endpoint (External relay) or both will be prensent on UI.
 				Disabling them will result in hiding endpoints according to parameter set value.Note that hiding endpoint has no impact on its functionality.
 				Default value 0
 			</Help>
-			<Item label="Endpoints IR external relay and External relay disabled" value="0"/>
-			<Item label="Endpoints IR external relay disabled, External relay enabled" value="1"/>
-			<Item label="Endpoints IR external relay enabled, External relay disabled" value="2"/>
-			<Item label="Endpoints IR external relay and External relay enabled" value="3"/>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="110" label="Power auto-triggering relay(s) off" size="2" min="0" max="15000" value="0">
-			<Help>0 - Pmax auto OFF disabled.
+      <Item label="Endpoints IR external relay and External relay disabled" value="0"/>
+      <Item label="Endpoints IR external relay disabled, External relay enabled" value="1"/>
+      <Item label="Endpoints IR external relay enabled, External relay disabled" value="2"/>
+      <Item label="Endpoints IR external relay and External relay enabled" value="3"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Power auto-triggering relay(s) off" max="15000" min="0" size="2" type="short" value="0">
+      <Help>0 - Pmax auto OFF disabled.
 				1W to 15000W Auto OFF enabled, step is 1 Watt. Linked with param 111/112.
 				Default value 0 (disabled).
 			</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="111" label="Power auto-triggering off-time" size="2" min="30" max="32535" value="30">
-			<Help>30s to 32535s Auto OFF time, step is 1 sec, if param 110 pMax is reached.
+    </Value>
+    <Value genre="config" index="111" instance="1" label="Power auto-triggering off-time" max="32535" min="30" size="2" type="short" value="30">
+      <Help>30s to 32535s Auto OFF time, step is 1 sec, if param 110 pMax is reached.
 				Default value 30.
 			</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="112" label="Power auto-triggered OFF relay choice" size="1" min="0" max="3" value="0">
-			<Help>Switch OFF IR external relay and/or External relay or both of them, if param 110 pMax is reached.
+    </Value>
+    <Value genre="config" index="112" instance="1" label="Power auto-triggered OFF relay choice" max="3" min="0" size="1" type="list" value="0">
+      <Help>Switch OFF IR external relay and/or External relay or both of them, if param 110 pMax is reached.
 				Default value 0.
 			</Help>
-			<Item label="Switch OFF IR/Wired external relays" value="0"/>
-			<Item label="Switch OFF IR       external relay" value="1"/>
-			<Item label="Switch OFF Wired    external relay" value="2"/>
-			<Item label="Switch OFF Both     relays" value="3"/>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="130" label="Serial NB" size="4" read_only="true" value="0">
-			<Help>Returns device S/N.</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="131" label="Firmware Version" size="2" read_only="true" value="0">
-			<Help>Returns device FW version.</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="132" label="Hardware Version" size="2" read_only="true" value="0">
-			<Help>Returns device HW version.</Help>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="140" label="Voltage U1" units="deci-V" size="3" read_only="true" value="0">
-			<Help>Returns U1 in deci-Volts.</Help>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="141" label="Intensity I1" units="milli-A" size="3" read_only="true" value="0">
-			<Help>Returns I1 in milli-Amp.</Help>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="142" label="Active power Pt" units="deci-W" size="3" read_only="true" value="0">
-			<Help>Returns Pt in deci-Watt.</Help>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="143" label="Reactive power Qt" units="deci-kVAR" size="3" read_only="true" value="0">
-			<Help>Returns Qt in deci-kVAR.</Help>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="144" label="Power factor PFt" units="milli" size="4" read_only="true" value="0">
-			<Help>Returns PFt(x1000).</Help>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="145" label="Energy counter 1, active power total (input)" units="deci-kWh" size="4" read_only="true" value="0">
-			<Help>Return Pin in deci-kWh.</Help>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="146" label="Energy counter 2, reactive power total (input)" units="deci-kVARh" size="4" read_only="true" value="0">
-			<Help>Returns Qin in deci-kVARh.</Help>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="147" label="Energy counter 3, active power total " units="deci-kVAh" size="4" read_only="true" value="0">
-			<Help>Returns Pt in deci-kVAh.</Help>
-		</Value>
-
-		<Value type="int" genre="config" instance="1" index="148" label="Energy counter 4, active power total (output)" units="deci-kWh" size="4" read_only="true" value="0">
-			<Help>Return Pout in deci-kWh.</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
-
-	<CommandClass id="142" ForceInstances="true"/>
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove"/>
-
+      <Item label="Switch OFF IR/Wired external relays" value="0"/>
+      <Item label="Switch OFF IR       external relay" value="1"/>
+      <Item label="Switch OFF Wired    external relay" value="2"/>
+      <Item label="Switch OFF Both     relays" value="3"/>
+    </Value>
+    <Value genre="config" index="130" instance="1" label="Serial NB" read_only="true" size="4" type="int" value="0">
+      <Help>Returns device S/N.</Help>
+    </Value>
+    <Value genre="config" index="131" instance="1" label="Firmware Version" read_only="true" size="2" type="short" value="0">
+      <Help>Returns device FW version.</Help>
+    </Value>
+    <Value genre="config" index="132" instance="1" label="Hardware Version" read_only="true" size="2" type="short" value="0">
+      <Help>Returns device HW version.</Help>
+    </Value>
+    <Value genre="config" index="140" instance="1" label="Voltage U1" read_only="true" size="3" type="int" units="deci-V" value="0">
+      <Help>Returns U1 in deci-Volts.</Help>
+    </Value>
+    <Value genre="config" index="141" instance="1" label="Intensity I1" read_only="true" size="3" type="int" units="milli-A" value="0">
+      <Help>Returns I1 in milli-Amp.</Help>
+    </Value>
+    <Value genre="config" index="142" instance="1" label="Active power Pt" read_only="true" size="3" type="int" units="deci-W" value="0">
+      <Help>Returns Pt in deci-Watt.</Help>
+    </Value>
+    <Value genre="config" index="143" instance="1" label="Reactive power Qt" read_only="true" size="3" type="int" units="deci-kVAR" value="0">
+      <Help>Returns Qt in deci-kVAR.</Help>
+    </Value>
+    <Value genre="config" index="144" instance="1" label="Power factor PFt" read_only="true" size="4" type="int" units="milli" value="0">
+      <Help>Returns PFt(x1000).</Help>
+    </Value>
+    <Value genre="config" index="145" instance="1" label="Energy counter 1, active power total (input)" read_only="true" size="4" type="int" units="deci-kWh" value="0">
+      <Help>Return Pin in deci-kWh.</Help>
+    </Value>
+    <Value genre="config" index="146" instance="1" label="Energy counter 2, reactive power total (input)" read_only="true" size="4" type="int" units="deci-kVARh" value="0">
+      <Help>Returns Qin in deci-kVARh.</Help>
+    </Value>
+    <Value genre="config" index="147" instance="1" label="Energy counter 3, active power total " read_only="true" size="4" type="int" units="deci-kVAh" value="0">
+      <Help>Returns Pt in deci-kVAh.</Help>
+    </Value>
+    <Value genre="config" index="148" instance="1" label="Energy counter 4, active power total (output)" read_only="true" size="4" type="int" units="deci-kWh" value="0">
+      <Help>Return Pout in deci-kWh.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
 </Product>
diff --git a/Config/qubino/ZMNHTDxS3.xml b/Config/qubino/ZMNHTDxS3.xml
index 21ff6321fc..df984e5b80 100644
--- a/Config/qubino/ZMNHTDxS3.xml
+++ b/Config/qubino/ZMNHTDxS3.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 
 <!-- 
 Qubino:  ZMNHTDx Smart meter Z-Wave+
@@ -102,12 +102,18 @@ ZMNHTD5 916,0 MHz
 		</Associations>
 	</CommandClass>
 
-	<CommandClass id="142" ForceInstances="true" />
-
+	<CommandClass id="142">
+		<Compatibility>
+			<ForceInstances>true</ForceInstances>
+		</Compatibility>
+	</CommandClass>
 	<!-- Remove COMMAND_CLASS_BASIC -->
 	<CommandClass id="32" action="remove" />
 
 	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
-</Product>
\ No newline at end of file
+	<CommandClass id="96">
+		<Compatibility>
+			<MapRootToEndpoint>true</MapRootToEndpoint>
+		</Compatibility>
+	</CommandClass>
+</Product>
diff --git a/Config/qubino/ZMNHUD1.xml b/Config/qubino/ZMNHUD1.xml
index 656c2edb4d..dd0fd6dca6 100644
--- a/Config/qubino/ZMNHUD1.xml
+++ b/Config/qubino/ZMNHUD1.xml
@@ -1,55 +1,57 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Qubino: ZMNHUD1 DIN Pilot Wire Z-Wave Plus-->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Qubino: ZMNHUD1 DIN Pilot Wire Z-Wave Plus-->
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input 1 switch type" size="1" min="0" max="1" value="1">
-			<Help/>
-			<Item label="Mono-stable" value="0"/>
-			<Item label="Bi-stable" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Input 1 contact type" size="1" min="0" max="1" value="0">
-			<Help/>
-			<Item label="Normally Open" value="0"/>
-			<Item label="Normally Close" value="1"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="11" label=" Input 1 operation mode 1" size="1" min="0" max="6" value="1">
-			<Help/>
-			<Item label="No modification with Input 1" value="0"/>
-			<Item label="Confort" value="1"/>
-			<Item label="Confort -1C" value="2"/>
-			<Item label="Confort -2C" value="3"/>
-			<Item label="Eco Mode" value="4"/>
-			<Item label="Frost Protection" value="5"/>
-			<Item label="Stop" value="6"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="12" label=" Input 1 operation mode 2" size="1" min="0" max="6" value="4">
-			<Help/>
-			<Item label="No modification with Input 1" value="0"/>
-			<Item label="Confort" value="1"/>
-			<Item label="Confort -1C" value="2"/>
-			<Item label="Confort -2C" value="3"/>
-			<Item label="Eco Mode" value="4"/>
-			<Item label="Frost Protection" value="5"/>
-			<Item label="Stop" value="6"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="30" label="Saving the state of the device after a power failure" size="1" min="0" max="1" value="0">
-			<Help></Help>
-			<Item label="Returns to the last position saved before a power failure" value="0" />
-			<Item label="Returns to off position" value="1" />
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="1" label="Lifeline" />
-			<Group index="2" max_associations="16" label="Multilevel"/>
-			<Group index="3" max_associations="16" label="Basic on/off "/>
-		</Associations>
-	</CommandClass>
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove" />
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input 1 switch type" max="1" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="Mono-stable" value="0"/>
+      <Item label="Bi-stable" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input 1 contact type" max="1" min="0" size="1" type="list" value="0">
+      <Help/>
+      <Item label="Normally Open" value="0"/>
+      <Item label="Normally Close" value="1"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label=" Input 1 operation mode 1" max="6" min="0" size="1" type="list" value="1">
+      <Help/>
+      <Item label="No modification with Input 1" value="0"/>
+      <Item label="Confort" value="1"/>
+      <Item label="Confort -1C" value="2"/>
+      <Item label="Confort -2C" value="3"/>
+      <Item label="Eco Mode" value="4"/>
+      <Item label="Frost Protection" value="5"/>
+      <Item label="Stop" value="6"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label=" Input 1 operation mode 2" max="6" min="0" size="1" type="list" value="4">
+      <Help/>
+      <Item label="No modification with Input 1" value="0"/>
+      <Item label="Confort" value="1"/>
+      <Item label="Confort -1C" value="2"/>
+      <Item label="Confort -2C" value="3"/>
+      <Item label="Eco Mode" value="4"/>
+      <Item label="Frost Protection" value="5"/>
+      <Item label="Stop" value="6"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Saving the state of the device after a power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Returns to the last position saved before a power failure" value="0"/>
+      <Item label="Returns to off position" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Multilevel" max_associations="16"/>
+      <Group index="3" label="Basic on/off " max_associations="16"/>
+    </Associations>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHVDx.xml b/Config/qubino/ZMNHVDx.xml
index ed4810fb53..a1888dff08 100644
--- a/Config/qubino/ZMNHVDx.xml
+++ b/Config/qubino/ZMNHVDx.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!--
     Qubino: ZMNHVDx Flush Dimmer 0-10V 
      ZMNHVD1 868,4 MHz
diff --git a/Config/qubino/ZMNHWD1.xml b/Config/qubino/ZMNHWD1.xml
index 5c016c8bb8..98c953ad1f 100644
--- a/Config/qubino/ZMNHWD1.xml
+++ b/Config/qubino/ZMNHWD1.xml
@@ -1,39 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Qubino: ZMNHWD1 Flush RGBW Dimmer Z-Wave Plus-->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Qubino: ZMNHWD1 Flush RGBW Dimmer Z-Wave Plus-->
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Input switch type" size="1" min="1" max="2" value="1">
-			<Help>Please power cycle the device when parameter is changed</Help>
-			<Item label="Bi-stable" value="1"/>
-			<Item label="Mono-stable" value="2"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Switch mode" size="1" min="0" max="1" value="3">
-			<Help> Using this parameter, it is possible to select various modes of RGBW Dimmer operation</Help>
-			<Item label="Normal Mode" value="1"/>
-			<Item label="Brightness Mode" value="2"/>
-			<Item label="Rainbow Mode" value="3"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Auto scene mode set" size="1" min="0" max="5" value="1">
-			<Help>Activation of the programmed scene changing color shades</Help>
-			<Item label="None" value="0"/>
-			<Item label="Ocean" value="1"/>
-			<Item label="Lightning" value="2"/>
-			<Item label="Rainbow" value="3"/>
-			<Item label="Snow" value="4"/>
-			<Item label="Sun" value="5"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="Auto scene duration" size="1" min="-128" max="127" value="3">
-			<Help>Using this parameter, it is possible to change Auto scene mode duration. 1 - 127 delay duration is from 1s to 127s, -128 ~ -1 delay duration is from 1min. to
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input switch type" max="2" min="1" size="1" type="list" value="1">
+      <Help>Please power cycle the device when parameter is changed</Help>
+      <Item label="Bi-stable" value="1"/>
+      <Item label="Mono-stable" value="2"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Switch mode" max="1" min="0" size="1" type="list" value="3">
+      <Help> Using this parameter, it is possible to select various modes of RGBW Dimmer operation</Help>
+      <Item label="Normal Mode" value="1"/>
+      <Item label="Brightness Mode" value="2"/>
+      <Item label="Rainbow Mode" value="3"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Auto scene mode set" max="5" min="0" size="1" type="list" value="1">
+      <Help>Activation of the programmed scene changing color shades</Help>
+      <Item label="None" value="0"/>
+      <Item label="Ocean" value="1"/>
+      <Item label="Lightning" value="2"/>
+      <Item label="Rainbow" value="3"/>
+      <Item label="Snow" value="4"/>
+      <Item label="Sun" value="5"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Auto scene duration" max="127" min="-128" size="1" type="byte" value="3">
+      <Help>Using this parameter, it is possible to change Auto scene mode duration. 1 - 127 delay duration is from 1s to 127s, -128 ~ -1 delay duration is from 1min. to
 127min</Help>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHXDx.xml b/Config/qubino/ZMNHXDx.xml
index a32c4a9e90..ff1ce6d6a5 100644
--- a/Config/qubino/ZMNHXDx.xml
+++ b/Config/qubino/ZMNHXDx.xml
@@ -1,72 +1,65 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
 Qubino: ZMNHXDx 3-phase Smart Meter
 -->
 
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="7" label="Input switch function selection" size="1" min="0" max="5" value="0">
-			<Help></Help>
-			<Item label="disabled" value="0" />
-			<Item label="IR external relay control - mono stable push button" value="2" />
-			<Item label="IR external relay control - bi-stable switch" value="3" />
-			<Item label="External relay control - mono stable push button" value="4" />
-			<Item label="External relay control - bi-stable switch" value="5" />
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="40" label="Reporting on power change" size="1" min="0" max="100" value="50">
-			<Help>This parameter is valid for Active Power Total, Active Power Phase1, Active Power Phase2 and Active Power Phase3. Set value means percentage from 0-100 = 0% - 100%</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="42" label="Reporting on time interval" size="2" min="0" max="65536" value="600">
-			<Help>This parameter is currently valid only for Active Energy Total Import/Export (kWh), Reactive Energy Total (kvarh), Total Energy (kVAh)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="43" label="Other Values - Reporting on time interval" size="2" min="0" max="65536" value="600">
-			<Help>This parameter is valid only for Voltage (V of ph1, ph2, ph3), Current (A of ph1, ph2, ph3), Total Power Factor, Total Reactive Power (var)</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="100" label="Enable / Disable External IR relay (BICOM)" size="1" min="0" max="2" value="0">
-			<Help></Help>
-			<Item label="External IR relay disabled" value="0" />
-			<Item label="External IR relay enabled and connected to all 3 Phases" value="1" />
-			<Item label="External IR relay enabled and connected to a Phase 1" value="2" />
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="101" label="Enable / Disable External relay (IKA)" size="1" min="0" max="1" value="0">
-			<Help></Help>
-			<Item label="External relay disabled" value="0" />
-			<Item label="External relay enabled and connected to Phase 2" value="1" />
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="106" label="External IR relay (BICOM) power threshold settings - maximum power of all phases together" size="2" min="0" max="60000" value="0">
-			<Help>This parameter defines a threshold when External IR relay is being turned off. (If Parameter no. 100 is set to the value 1 or 2)</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="107" label="External relay (IKA) power threshold settings - maximum power on phase L2" size="2" min="0" max="20000" value="0">
-			<Help>This parameter defines a threshold when External relay is being turned off (if the parameter no. 100 is set to the value 1 or 2).</Help>
-		</Value>
-
-		<Value type="short" genre="config" instance="1" index="112" label="Power threshold - Delay before power on" size="2" min="0" max="32535" value="0">
-			<Help>External IR relay/ External relay is turned off due to detected overload (as set by parameter 106 and 107) and remains off for a time, defined in this parameter. After that time, the output turns on to check, if the overload is still present.</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-
-	<CommandClass id="142" ForceInstances="true" />
-
-	<!-- Remove COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" action="remove" />
-
-	<!-- Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
+  <CommandClass id="112">
+    <Value genre="config" index="7" instance="1" label="Input switch function selection" max="5" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="disabled" value="0"/>
+      <Item label="IR external relay control - mono stable push button" value="2"/>
+      <Item label="IR external relay control - bi-stable switch" value="3"/>
+      <Item label="External relay control - mono stable push button" value="4"/>
+      <Item label="External relay control - bi-stable switch" value="5"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Reporting on power change" max="100" min="0" size="1" type="byte" value="50">
+      <Help>This parameter is valid for Active Power Total, Active Power Phase1, Active Power Phase2 and Active Power Phase3. Set value means percentage from 0-100 = 0% - 100%</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Reporting on time interval" max="65536" min="0" size="2" type="short" value="600">
+      <Help>This parameter is currently valid only for Active Energy Total Import/Export (kWh), Reactive Energy Total (kvarh), Total Energy (kVAh)</Help>
+    </Value>
+    <Value genre="config" index="43" instance="1" label="Other Values - Reporting on time interval" max="65536" min="0" size="2" type="short" value="600">
+      <Help>This parameter is valid only for Voltage (V of ph1, ph2, ph3), Current (A of ph1, ph2, ph3), Total Power Factor, Total Reactive Power (var)</Help>
+    </Value>
+    <Value genre="config" index="100" instance="1" label="Enable / Disable External IR relay (BICOM)" max="2" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="External IR relay disabled" value="0"/>
+      <Item label="External IR relay enabled and connected to all 3 Phases" value="1"/>
+      <Item label="External IR relay enabled and connected to a Phase 1" value="2"/>
+    </Value>
+    <Value genre="config" index="101" instance="1" label="Enable / Disable External relay (IKA)" max="1" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="External relay disabled" value="0"/>
+      <Item label="External relay enabled and connected to Phase 2" value="1"/>
+    </Value>
+    <Value genre="config" index="106" instance="1" label="External IR relay (BICOM) power threshold settings - maximum power of all phases together" max="60000" min="0" size="2" type="short" value="0">
+      <Help>This parameter defines a threshold when External IR relay is being turned off. (If Parameter no. 100 is set to the value 1 or 2)</Help>
+    </Value>
+    <Value genre="config" index="107" instance="1" label="External relay (IKA) power threshold settings - maximum power on phase L2" max="20000" min="0" size="2" type="short" value="0">
+      <Help>This parameter defines a threshold when External relay is being turned off (if the parameter no. 100 is set to the value 1 or 2).</Help>
+    </Value>
+    <Value genre="config" index="112" instance="1" label="Power threshold - Delay before power on" max="32535" min="0" size="2" type="short" value="0">
+      <Help>External IR relay/ External relay is turned off due to detected overload (as set by parameter 106 and 107) and remains off for a time, defined in this parameter. After that time, the output turns on to check, if the overload is still present.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+  <!-- Remove COMMAND_CLASS_BASIC -->
+  <CommandClass action="remove" id="32"/>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNHYDx.xml b/Config/qubino/ZMNHYDx.xml
index 02ba857925..e0d7ac0773 100644
--- a/Config/qubino/ZMNHYDx.xml
+++ b/Config/qubino/ZMNHYDx.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     Qubino ZMNHYDx Smart Plug
     ZMNHYD1 868,4 MHz
@@ -126,4 +126,4 @@
     <!-- Remove COMMAND_CLASS_BASIC -->
     <CommandClass id="32" action="remove" />
 
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/qubino/ZMNHZDx.xml b/Config/qubino/ZMNHZDx.xml
index ab51e2ec27..9540c04f7c 100644
--- a/Config/qubino/ZMNHZDx.xml
+++ b/Config/qubino/ZMNHZDx.xml
@@ -1,6 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     Qubino:  ZMNHZDx Weather Station Z-Wave+
     ZMNHZD1 868,4 MHz
     ZMNHZD2 921,4 MHz
@@ -8,100 +7,106 @@
     ZMNHZD4 869,0 MHz
     ZMNHZD5 916,0 MHz
     -->
-
-    <CommandClass id="49" getsupported="false" />
-    <!-- Map endpoints to instances -->
-    <CommandClass id="96" mapping="endpoints" />
-    <!-- Configuration -->
-    <CommandClass id="112">
-
-        <Value type="short" genre="config" instance="1" index="1" label="Wind Gust Top Value" size="2" min="0" max="8800" value="1000">
-            <Help>
+  <CommandClass id="49">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Wind Gust Top Value" max="8800" min="0" size="2" type="short" value="1000">
+      <Help>
                 If the Wind Gust is Higher than the Parameter Value, a device triggers an Association.
                 0 to 8800 = value from 0.00 m/s to 88.00 m/s.
                 Default value 1000 (10,00 m/s).
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="2" label="Rain Rate Top Value" size="2" min="0" max="30000" value="200">
-            <Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Rain Rate Top Value" max="30000" min="0" size="2" type="short" value="200">
+      <Help>
                 If the Sensor Rain Rate is Higher than the Parameter Value, a device triggers an Association.
                 0 to 30000 = value from 0.00 mm/h to 300.00 mm/h.
                 Default value 200 (2,00 mm/h).
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="3" label="Wind Gauge, Wind Gust" size="1" min="0" max="1" value="1">
-            <Help>If the Wind Gust is Higher than the Parameter No. 1 Value, then a Device sends Basic Set</Help>
-            <Item label="0x00" value="0" />
-            <Item label="0xFF" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="4" label="Rain Gauge, Rain Rate" size="1" min="0" max="1" value="1">
-            <Help>If the Rain amount is Higher than the Parameter No. 2 Value, then a Device sends Basic Set</Help>
-            <Item label="0x00" value="0" />
-            <Item label="0xFF" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="5" label="End point 1 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="6" label="End point 2 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="7" label="End point 3 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="8" label="End point 4 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="9" label="End point 5 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="10" label="End point 6 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="11" label="End point 7 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="12" label="End point 8 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="13" label="End point 9 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="14" label="End point 10 - Unsolicited Report" size="1" min="0" max="1" value="1">
-            <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="15" label="Random ID Enable" size="1" min="0" max="1" value="0">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Wind Gauge, Wind Gust" max="1" min="0" size="1" type="list" value="1">
+      <Help>If the Wind Gust is Higher than the Parameter No. 1 Value, then a Device sends Basic Set</Help>
+      <Item label="0x00" value="0"/>
+      <Item label="0xFF" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Rain Gauge, Rain Rate" max="1" min="0" size="1" type="list" value="1">
+      <Help>If the Rain amount is Higher than the Parameter No. 2 Value, then a Device sends Basic Set</Help>
+      <Item label="0x00" value="0"/>
+      <Item label="0xFF" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="End point 1 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="End point 2 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="End point 3 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="End point 4 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="End point 5 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="End point 6 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="End point 7 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="End point 8 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="End point 9 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="End point 10 - Unsolicited Report" max="1" min="0" size="1" type="list" value="1">
+      <Help>If you enable Unsolicited Reports on the End Points, the USB Key will send data to the controller every time it receives data from the 433MHz sensors, which are different from the precious data.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Random ID Enable" max="1" min="0" size="1" type="list" value="0">
+      <Help>
                 If Random ID is disabled, the Weather Station USB Key can receive data from multiple 433 MHz Sensors on the same Channel.
                 If the Random ID is enabled, the USB Key can receive data from only one sensor on the same channel.
                 If the USB Key does not receive a data from a sensor on a specific channel for more than 2.5 hours, it clears the Random ID of the device and waits for a new ID.
                 If you replace the batteries in the modules, the Random ID will change.
                 If you want that the USB Key accept a module immediately, set the Parameter No. 15 to 0 and in the next step again to 1.
             </Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Enabled" value="1" />
-        </Value>
-        <Value type="list" genre="config" instance="1" index="250" label="Insecure / Secure Inclusion" size="1" min="0" max="1" value="0">
-            <Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="250" instance="1" label="Insecure / Secure Inclusion" max="1" min="0" size="1" type="list" value="0">
+      <Help>
                 The Weather Station Key supports both, the secure and unsecure inclusion.
                 Even if the controller does not support security command classes, the Key could be included as unsecure and keep all the functionality.
                 By default, the Key includes as insecure. To include the Key as secure follow the procedure:
@@ -116,17 +121,21 @@
                 9. Now the module should be included as secure.
                 The same procedure is to include the module as unsecure.
             </Help>
-            <Item label="Insecure Inclusion" value="0" />
-            <Item label="Secure Inclusion" value="1" />
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="3">
-            <Group index="1" max_associations="1" label="Lifeline"/>
-            <Group index="2" max_associations="16" label="Wind Gauge alert"/>
-            <Group index="3" max_associations="16" label="Rain rate alert"/>
-        </Associations>
-    </CommandClass>
-    <CommandClass id="142" ForceInstances="true" />
+      <Item label="Insecure Inclusion" value="0"/>
+      <Item label="Secure Inclusion" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Wind Gauge alert" max_associations="16"/>
+      <Group index="3" label="Rain rate alert" max_associations="16"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/qubino/ZMNKIDx.xml b/Config/qubino/ZMNKIDx.xml
new file mode 100644
index 0000000000..069940a1d5
--- /dev/null
+++ b/Config/qubino/ZMNKIDx.xml
@@ -0,0 +1,170 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
+    Qubino ZMNKIDx Smart Plug
+    ZMNKID1 868,4 MHz
+    ZMNKID2 921,4 MHz
+    ZMNKID3 908,4 MHz
+    ZMNKID4 869,0 MHz
+    ZMNKID5 916,0 MHz
+    -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration  -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input I1 switch type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
+				With this parameter, you can select between push-button (momentary) and on/off toggle switch types.
+				Default value: 1.
+			</Help>
+      <Item label="push-button (momentary)" value="0"/>
+      <Item label="on/off toggle switch" value="1"/>
+    </Value>
+    <Value genre="config" index="1" instance="1" label="Input 1 contact type" max="255" min="0" size="1" type="list" value="1">
+      <Help>
+				This parameter determines how the switch or push-button is connected.
+				Default value: 0.
+			</Help>
+      <Item label="NO (normally open) input type" value="0"/>
+      <Item label="NC (normally close) input type" value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Watt Power Consumption Reporting Threshold for Q Load " max="100" min="0" size="1" type="byte" units="%" value="10">
+      <Help>
+                Choose by how much power consumption needs to increase or decrease to be reported. Values correspond to percentages so if 10 is set, for example, the device will report any power consumption changes of 10% or more compared to the last reading. 
+				Values (size is 1 byte dec):
+					default value 10 
+					0 - Power consumption reporting disabled 
+					1 - 100 = 1% - 100% Power consumption reporting enabled. New value is reported only when Wattage in real time changes by more than the percentage value set in this parameter compared to the previous Wattage reading, starting at 1% (the lowest value possible).
+				NOTE: Power consumption needs to increase or decrease by at least 1 Watt to be reported, REGARDLESS of percentage set in this parameter.  
+			</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Watt Power Consumption Reporting Time Threshold for Q" max="32767" min="0" size="2" type="short" units="seconds" value="0">
+      <Help>
+                Set value refers to the time interval with which power consumption in Watts is reported (30 - 32767 seconds). If for example 300 is entered, energy consumption reports will be sent to the gateway (hub) every 300 seconds (or 5 minutes).
+				Values (size is 2 byte dec):
+					default value 0 (power report is disabled)
+					0 - Power consumption reporting disabled
+					30 - 32767 = 30 - 32767 seconds. Power consumption reporting enabled. Report is sent according to time interval (value) set here. 
+			</Help>
+    </Value>
+    <Value genre="config" index="43" instance="1" label="Hysteresis Upper temperature offset" max="450" min="0" size="2" type="short" value="5">
+      <Help>
+                This parameter defines minimum temperature difference between real measured temperature and set-point temperature to turn device on in heat mode or turn device off in cool mode.
+				Values (size is 2 byte dec):
+					default value 5 (0.5 C)
+					0 - 450
+				NOTE1: If configuration parameter 78 (Scale selection) is set to Celsius, then valid interval is 0 - 250 (0.0 C - 25.0 C, resolution 0.1 C)
+				NOTE2: If configuration parameter 78 (Scale selection) is set to Fahrenheit, then valid interval is 0 - 450 (0.0 F - 45.0 F, resolution 0.1 F)
+				NOTE3: If configuration parameter 78 (Scale selection) is set to Fahrenheit, note that Fahrenheit values will be converted to Celsius degrees. Due to conversion algorithm please be advised that configuration value could drift when converting values back and forth.
+			</Help>
+    </Value>
+    <Value genre="config" index="44" instance="1" label="Hysteresis Lower temperature offset" max="450" min="0" size="2" type="short" value="5">
+      <Help>
+                This parameter defines minimum temperature difference between real measured temperature and set-point temperature to turn device off in heat mode or turn device on in cool mode.
+				Values (size is 2 byte dec):
+					default value 5 (0.5 C)
+					0 - 450
+				NOTE1: If configuration parameter 78 (Scale selection) is set to Celsius, then valid interval is 0 - 250 (0.0 C - 25.0 C, resolution 0.1 C)
+				NOTE2: If configuration parameter 78 (Scale selection) is set to Fahrenheit, then valid interval is 0 - 450 (0.0 F - 45.0 F, resolution 0.1 F)
+				NOTE3: If configuration parameter 78 (Scale selection) is set to Fahrenheit, note that Fahrenheit values will be converted to Celsius degrees. Due to conversion algorithm please be advised that configuration value could drift when converting values back and forth.
+			</Help>
+    </Value>
+    <Value genre="config" index="45" instance="1" label="Antifreeze" max="1000" min="-125" size="2" type="short" value="50">
+      <Help>
+				Set value determines at which temperature the device will be turned on even (if the thermostat was manually set to off). 
+				Values (size is 2 byte dec):
+					default value 50 (5.0 C)
+					-125 - 545
+					1000 - Antifreeze functionality disabled
+				NOTE1: Antifreeze is activated only in heating mode and it uses hysteresis of +-0.5C. 
+				NOTE2: If configuration parameter 78 (Scale selection) is set to Celsius, then valid interval is -125 - 125 (-12.5 C - 12.5 C, resolution 0.1 C)
+				NOTE3: If configuration parameter 78 (Scale selection) is set to Fahrenheit, then valid interval is 95 - 545 (9.5 F - 54.5 F, resolution 0.1 F)
+				NOTE4: If configuration parameter 78 (Scale selection) is set to Fahrenheit, note that Fahrenheit values will be converted to Celsius degrees. Due to conversion algorithm please be advised that configuration value could drift when converting values back and forth.
+			</Help>
+    </Value>
+    <Value genre="config" index="59" instance="1" label="Thermostat mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>
+				This parameter determines how the switch or push-button is connected.
+				Default value: 0.
+			</Help>
+      <Item label="Heat mode" value="0"/>
+      <Item label="Cool mode" value="1"/>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Too low temperature limit" max="2120" min="-150" size="2" type="short" value="50">
+      <Help>
+				This parameter determines the temperature at which the device sends a command to the associated device - to turn ON device or to turn OFF device.
+				Values (size is 2 byte dec):
+					Default value 50 (Too low temperature limit is 5.0 C)
+					-150 - 2120
+				NOTE1: Too low temperature limit is used with Association Group 3.
+				NOTE2: If configuration parameter 78 (Scale selection) is set to Celsius, then valid interval is -150 - 1000 (-15.0 C - 100.0 C, resolution 0.1 C)
+				NOTE3: If configuration parameter 78 (Scale selection) is set to Fahrenheit, then valid interval is 50 - 2120 (5.0 F - 212.0 F, resolution 0.1 F)
+				NOTE4: If configuration parameter 78 (Scale selection) is set to Fahrenheit, note that Fahrenheit values will be converted to Celsius degrees. Due to conversion algorithm please be advised that configuration value could drift when converting values back and forth.
+			</Help>
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Too high temperature limit" max="2120" min="1" size="2" type="short" value="700">
+      <Help>
+				This parameter determines the temperature at which the device sends a command to the associated device, to turn ON device or to turn OFF device.
+				Values (size is 2 byte dec):
+					default value 700 (too high temperature limit is 70.0 C)
+					1 - 2120
+				NOTE1: Too high temperature limit is used with Association Group 3.
+				NOTE2: If configuration parameter 78 (Scale selection) is set to Celsius, then valid interval is 1 - 1000 (0.1 C - 100.0 C, resolution 0.1 C)
+				NOTE3: If configuration parameter 78 (Scale selection) is set to Fahrenheit, then valid interval is 322 - 2120 (32.2 F - 212.0 F, resolution 0.1 F)
+				NOTE4: If configuration parameter 78 (Scale selection) is set to Fahrenheit, note that Fahrenheit values will be converted to Celsius degrees. Due to conversion algorithm please be advised that configuration value could drift when converting values back and forth.
+			</Help>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Output switch selection" max="1" min="0" size="1" type="list" value="0">
+      <Help>
+				Set value determines the type of the device connected to the on/off output. The output type can be normally open (NO) or normally closed (NC). 
+				Default value: 0.				
+			</Help>
+      <Item label="When switch/device is off the output is 0V (NC)" value="0"/>
+      <Item label="When switch/device is off the output is 240V or 24V (NO)" value="1"/>
+    </Value>
+    <Value genre="config" index="78" instance="1" label="Scale Selection" max="1" min="0" size="1" type="list" value="0">
+      <Help>
+				This parameter determines in which measurement unit the device will report temperature (Fahrenheit or Celsius) and determines the scale the configuration parameters (43, 44, 44, 45, 60, 61, 110, 120) are interpreted as.
+				NOTE1: This scale has influence on Temperature reporting. The device is capable of receiving a Set point in all supported scales.
+				NOTE2: This configuration parameter has impact on configuration parameters 43, 44, 44, 45, 60, 61, 110, 120. If scale is set to degrees Fahrenheit configuration values at parameters 43, 44, 44, 45, 60, 61, 110, 120 will be converted to degrees Celsius. Please note that converted values could drift when converting values back and forth.
+				Default value: 0.
+			</Help>
+      <Item label="degrees Celsius " value="0"/>
+      <Item label="degrees Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="110" instance="1" label="Temperature Sensor Offset Settings" max="270" min="-270" size="2" type="short" value="0">
+      <Help>
+				Set value is added to or subtracted from the actually measured value to adjust the temperature report sent by an external sensor.
+				NOTE1: If configuration parameter 78 (Scale selection) is set to Celsius, then valid interval is -150 - 150 (-15.0 C - 15.0 C, resolution 0.1 C)
+				NOTE2: If configuration parameter 78 (Scale selection) is set to Fahrenheit, then valid interval is -270 - 270 (-27.0 F - 27.0 F, resolution 0.1 F)
+				NOTE3: If configuration parameter 78 (Scale selection) is set to Fahrenheit, note that Fahrenheit values will be converted to Celsius degrees. Due to conversion algorithm please be advised that configuration value could drift when converting values back and forth.
+				Default value: 0.
+			</Help>
+    </Value>
+    <Value genre="config" index="120" instance="1" label="Temperature Sensor Reporting Threshold" max="270" min="0" size="2" type="short" value="5">
+      <Help>
+				This configuration parameters sets reporting threshold between reported temperature and actual temperature for reporting temperature at association group 4.
+				NOTE1: If configuration parameter 78 (Scale selection) is set to Celsius, then valid interval is 0 - 150 (0 C - 15.0 C, resolution 0.1 C)
+				NOTE2: If configuration parameter 78 (Scale selection) is set to Fahrenheit, then valid interval is 0 - 270 (0 F - 27.0 F, resolution 0.1 F)
+				NOTE3: If configuration parameter 78 (Scale selection) is set to Fahrenheit, note that Fahrenheit values will be converted to Celsius degrees. Due to conversion algorithm please be advised that configuration value could drift when converting values back and forth.
+				Default value: 5.
+			</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Change of output Q" max_associations="5"/>
+      <Group index="3" label="Basic on/off too high too low T" max_associations="5"/>
+      <Group index="4" label="Sensor multilevel report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+
+
+    <!-- Remove COMMAND_CLASS_BASIC -->
+    <!--<CommandClass id="32" action="remove" />-->
+
+</Product>
diff --git a/Config/quby/qb2.xml b/Config/quby/qb2.xml
new file mode 100644
index 0000000000..3213895d87
--- /dev/null
+++ b/Config/quby/qb2.xml
@@ -0,0 +1,15 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0130:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/quby/qb2.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/683/</MetaDataItem>
+    <MetaDataItem name="Name">Quby QB2 Energy Display</MetaDataItem>
+    <MetaDataItem name="Description">QEDII </MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">QB2</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/683/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/rcs/em52-zw.xml b/Config/rcs/em52-zw.xml
index 9c113338cf..0d176bce89 100644
--- a/Config/rcs/em52-zw.xml
+++ b/Config/rcs/em52-zw.xml
@@ -1,6 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0010:3532:454D</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/rcs/em52-zw.png</MetaDataItem>
+    <MetaDataItem id="3532" name="ZWProductPage" type="454D">https://products.z-wavealliance.org/products/588/</MetaDataItem>
+    <MetaDataItem name="Description">Overview
+
+The RCS Energy Meter Series networked power meters are sub-metering devices designed to provide timely and accurate consumption data. These meters can capture kWh/kW energy and demand data as well as virtually all relevant energy parameters for diagnostics and monitoring single-phase circuit installations. Input for 2 CT s can be used to monitor whole house usage (L1 + L2) or 2 single-phase sub-loads.
+
+Technical Specifications
+
+- Residential Single-phase Configuration – Model EM52
+- 2 Single-phase CT inputs for Whole House consumption
+- Automatically adjusts for CT orientation
+- Greatly reduces setup time and installation errors
+- All-in-One design with flexible antenna for maximum RF range and ease of installation
+- Accuracy: +/- 1% of reading
+- Frequency: 50/60Hz
+- Current Transformer Input: (0-0.333v) (0 – 3.3V)
+- Selectable Current Transformer range (5A-150A)
+- Built-in burden resistor
+- Output Power : Isolated 12VDC 200mA
+- RF Interface: Z-Wave
+- LED indicators
+- Agency approval: FCC, ETL</MetaDataItem>
+    <MetaDataItem id="3532" name="FrequencyName" type="454D">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">EM52 Z-Wave Energy Meter</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.rcstechnology.com/pages/products/z-wave-w-h-meter.html</MetaDataItem>
+    <MetaDataItem id="3532" name="Identifier" type="454D">EM52</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/588/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- COMMAND_CLASS_NODE_NAMING.  This class is in the list reported by the PM12, but it does not respond to requests -->
-  <CommandClass id="119" action="remove" /> 
+  <CommandClass action="remove" id="119"/>
 </Product>
-
diff --git a/Config/rcs/pm12-zw.xml b/Config/rcs/pm12-zw.xml
index dc186b3369..86e76793a1 100644
--- a/Config/rcs/pm12-zw.xml
+++ b/Config/rcs/pm12-zw.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- COMMAND_CLASS_NODE_NAMING.  This class is in the list reported by the PM12, but it does not respond to requests -->
   <CommandClass id="119" action="remove" /> 
 
diff --git a/Config/rcs/therm0005.xml b/Config/rcs/therm0005.xml
index e0b2155ffc..ab653e08ad 100644
--- a/Config/rcs/therm0005.xml
+++ b/Config/rcs/therm0005.xml
@@ -1,22 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- COMMAND_CLASS_ASSOCIATION.  This class is in the list reported by the thermostat, but it does not respond to requests -->  
-	<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="4" create_vars="true">
-		<Instance index="1" />
-		<Associations num_groups="1">
-		  <Group index="1" max_associations="5" label="Group 1" >
-		    <Node id="1" />
-		  </Group>
-		</Associations>
-	</CommandClass>
-
-        <!-- This thermostat's setpoint descriptions are 1 based, not 0 -->
-        <CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" base="0" />
-
-	<CommandClass id="112">
-		<Value type="short" index="23" genre="config" label="Autosend enable" units="" min="" max=""></Value>
-	</CommandClass>
-
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_ASSOCIATION.  This class is in the list reported by the thermostat, but it does not respond to requests -->
+  <CommandClass id="133">
+    <Instance index="1"/>
+    <Associations num_groups="1">
+      <Group index="1" label="Group 1" max_associations="5">
+        <Node id="1"/>
+      </Group>
+    </Associations>
+    <Compatibility>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <!-- This thermostat's setpoint descriptions are 1 based, not 0 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="23" label="Autosend enable" max="" min="" type="short" units=""></Value>
+  </CommandClass>
 </Product>
-
diff --git a/Config/rcs/therm0007.xml b/Config/rcs/therm0007.xml
index 5be2ed75ac..515e671903 100644
--- a/Config/rcs/therm0007.xml
+++ b/Config/rcs/therm0007.xml
@@ -1,39 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- COMMAND_CLASS_ASSOCIATION.  This class is in the list reported by the thermostat, but it does not respond to requests -->  
-	<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="4" create_vars="true">
-		<Instance index="1" />
-		<Associations num_groups="1">
-		  <Group index="1" max_associations="5" label="Group 1" >
-		    <Node id="1" />
-		  </Group>
-		</Associations>
-	</CommandClass>
-
-	<!-- The thermostat does not properly report its operating modes -->
-	<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" version="1" request_flags="4" create_vars="true">
-		<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0" value="0">
-		  <Item label="Off" value="0" />
-		  <Item label="Heat" value="1" />
-		  <Item label="Cool" value="2" />
-		  <Item label="Auto" value="3" />
-		  <Item label="Aux Heat" value="4" />
-		</Value>
-		<SupportedModes>
-		  <Mode index="0" label="Off" />
-		  <Mode index="1" label="Heat" />
-		  <Mode index="2" label="Cool" />
-		  <Mode index="3" label="Auto" />
-		  <Mode index="4" label="Aux Heat" />
-		</SupportedModes>
-	</CommandClass>
-
-	<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
-		<Instance index="1" />
-		  <Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="F" read_only="false" write_only="false" min="0" max="0" value="65" />
-		  <Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="F" read_only="false" write_only="false" min="0" max="0" value="80" />
-	</CommandClass>
-
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_ASSOCIATION.  This class is in the list reported by the thermostat, but it does not respond to requests -->
+  <CommandClass id="133">
+    <Instance index="1"/>
+    <Associations num_groups="1">
+      <Group index="1" label="Group 1" max_associations="5">
+        <Node id="1"/>
+      </Group>
+    </Associations>
+    <Compatibility>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <!-- The thermostat does not properly report its operating modes -->
+  <CommandClass id="64">
+    <Value genre="user" index="0" instance="1" label="Mode" max="0" min="0" read_only="false" type="list" units="" value="0" write_only="false">
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+      <Item label="Cool" value="2"/>
+      <Item label="Auto" value="3"/>
+      <Item label="Aux Heat" value="4"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+      <Mode index="2" label="Cool"/>
+      <Mode index="3" label="Auto"/>
+      <Mode index="4" label="Aux Heat"/>
+    </SupportedModes>
+    <Compatibility>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heating 1" max="0" min="0" read_only="false" type="decimal" units="F" value="65" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Cooling 1" max="0" min="0" read_only="false" type="decimal" units="F" value="80" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
 </Product>
-
diff --git a/Config/rcs/therm0009.xml b/Config/rcs/therm0009.xml
index 50e1784161..0bdf5d71ed 100644
--- a/Config/rcs/therm0009.xml
+++ b/Config/rcs/therm0009.xml
@@ -1,6 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- This thermostat's setpoint descriptions are 1 based, not 0 -->
-	<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" base="0" />
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0010:0009:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/rcs/therm0009.png</MetaDataItem>
+    <MetaDataItem id="0009" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/82/</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave Thermostat.Separate Heat and Cool Setpoints
+	Up to 3 Stage Heat, 2 Stage Cool
+	Remote control of most functions via Zwave
+	Two part design or New 1 piece design
+	Backlit LCD Wall Display Unit
+	For standard gas/electric or heat pump HVAC systems
+	Replaces existing 4 or more wire thermostats without the need for additional wiring (TZ16/TZ40)
+	Optional Remote Temperature Sensor
+	Power: 24VAC supplied from HVAC system
+	Supports the ZWave thermostat device class
+ </MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.rcstechnology.com/pages/products/thermo-z-wave.html</MetaDataItem>
+    <MetaDataItem name="Name">TZ45 Z-Wave Thermostat</MetaDataItem>
+    <MetaDataItem id="0009" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.rcstechnology.com/oldsite/products/stats/zwave.htm</MetaDataItem>
+    <MetaDataItem id="0009" name="Identifier" type="0001">TZ45</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/82/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- This thermostat's setpoint descriptions are 1 based, not 0 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
-
diff --git a/Config/remotec/bw8120eu.xml b/Config/remotec/bw8120eu.xml
new file mode 100644
index 0000000000..cbeb7e3e25
--- /dev/null
+++ b/Config/remotec/bw8120eu.xml
@@ -0,0 +1,14 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/5254:8120:8201</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/remotec/bw8120eu.png</MetaDataItem>
+    <MetaDataItem id="8120" name="ZWProductPage" type="8201">https://products.z-wavealliance.org/products/801/</MetaDataItem>
+    <MetaDataItem id="8120" name="FrequencyName" type="8201">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Dual Mode Switch-Dimmer</MetaDataItem>
+    <MetaDataItem id="8120" name="Identifier" type="8201">BW8120EU</MetaDataItem>
+    <MetaDataItem name="Description">Dual Mode Switch-Dimmer</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/801/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/remotec/zfm-80.xml b/Config/remotec/zfm-80.xml
index 126ecab1af..6e3ba8207a 100644
--- a/Config/remotec/zfm-80.xml
+++ b/Config/remotec/zfm-80.xml
@@ -1,32 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="External switch action" size="1" value="3">
-			<Help>Set external switch type.</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Type A: tact switch (normally open)" value="1" />
-			<Item label="Type B: tact switch (normally closed)" value="2" />
-			<Item label="Type C: rocker switch (short = on)" value="3" />
-			<Item label="Type A: rocker switch (short = off)" value="4" />
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Fail-safe timeout" units="minutes" min="0" max="240" value="0">
-			<Help>Set timeout period.</Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Fail-safe command source node id" units="Node ID number" min="1" max="232" value="0">
-			<Help>Configure Node ID number for Z-Wave command source.</Help>
-		</Value>
-		<Value type="list" index="4" genre="config" label="Fail-safe timeout action" size="1" value="0">
-			<Help>Set relay output status if timeout period has been reached.</Help>
-			<Item label="Turn off relay" value="0" />
-			<Item label="Turn on relay" value="1" />
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Relay" />
-		</Associations>
-	</CommandClass>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/5254:0002:8000</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/remotec/zfm-80.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="8000">https://products.z-wavealliance.org/products/660/</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="8000">ZFM-80/ZDW-80/ZRW-80</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="8000">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.remotec.com.hk/zaspx/support.aspx</MetaDataItem>
+    <MetaDataItem name="Description">ZFM-80US .ZDW-80US Z-Wave Dimmer &amp; ZRW-80US Z-Wave Wall Switch</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.remotec.com.hk/zaspx/product_content.aspx?aboutno=37&amp;subaboutno=37&amp;main=t</MetaDataItem>
+    <MetaDataItem name="Name">ZFM-80, ZDW-80, ZRW-80 US Binary Switch</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/660/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="External switch action" size="1" type="list" value="3">
+      <Help>Set external switch type.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Type A: tact switch (normally open)" value="1"/>
+      <Item label="Type B: tact switch (normally closed)" value="2"/>
+      <Item label="Type C: rocker switch (short = on)" value="3"/>
+      <Item label="Type A: rocker switch (short = off)" value="4"/>
+    </Value>
+    <Value genre="config" index="2" label="Fail-safe timeout" max="240" min="0" type="byte" units="minutes" value="0">
+      <Help>Set timeout period.</Help>
+    </Value>
+    <Value genre="config" index="3" label="Fail-safe command source node id" max="232" min="1" type="byte" units="Node ID number" value="0">
+      <Help>Configure Node ID number for Z-Wave command source.</Help>
+    </Value>
+    <Value genre="config" index="4" label="Fail-safe timeout action" size="1" type="list" value="0">
+      <Help>Set relay output status if timeout period has been reached.</Help>
+      <Item label="Turn off relay" value="0"/>
+      <Item label="Turn on relay" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Relay" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/remotec/zrc-90.xml b/Config/remotec/zrc-90.xml
index 446f307e14..d39c29d5f4 100644
--- a/Config/remotec/zrc-90.xml
+++ b/Config/remotec/zrc-90.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Association Groups -->
 	<CommandClass id="133">
 		<Associations num_groups="1">
diff --git a/Config/remotec/zts-110.xml b/Config/remotec/zts-110.xml
index 091d42a4e6..9c24f948fd 100644
--- a/Config/remotec/zts-110.xml
+++ b/Config/remotec/zts-110.xml
@@ -1,36 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/5254:8031:0200</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/remotec/zts-110.png</MetaDataItem>
+    <MetaDataItem id="8031" name="ZWProductPage" type="0200">https://products.z-wavealliance.org/products/679/</MetaDataItem>
+    <MetaDataItem id="8031" name="Identifier" type="0200">BW8031US </MetaDataItem>
+    <MetaDataItem name="Name">ZTS-110US Thermostat</MetaDataItem>
+    <MetaDataItem id="8031" name="FrequencyName" type="0200">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.remotec.com.hk/photos/software/Z-wave/ZTS-100_User_Manual_V10_20120615.pdf</MetaDataItem>
+    <MetaDataItem name="Description">The ZTS-100 Z-Thermostat is a comfort control master that allows to control your room temperature with programmable time schedule WAKE, AWAY, HOME and SLEEP event which can maximize energy conservation and comfort while minimizing the effort required to maintain the appropriate temperature in your home whether you are at home or away. 
 
-	<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-	<CommandClass id="67" base="0" />
-
- 	<!-- Configuration Parameters --> 
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="Swing" min="0" max="4" value="2" size="1">
-			<Help>
+Also, it can be utilized to control / check your room temperature by the smart phone or PC while you are at office, home anywhere or around the world which can go through the Z-Wave gateway control. </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/679/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Swing" max="4" min="0" size="1" type="byte" value="2">
+      <Help>
 				Swing is the difference allowed from current temp to setpoint before the thermostat turns on.
 				EG: A swing of 2 and setpoint of 70 means the heat turns on at 68 and off at 72.
 			</Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Differential" min="0" max="4" value="2" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="Differential" max="4" min="0" size="1" type="byte" value="2">
+      <Help>
 				Differential is the difference needed from the swing before the 2nd stage kicks in.
 				EG: A swing of 2, differntial of 2, and setpoint of 70 means the heat turns on at 68 and off at 72. The second-stage heat would turn on at 67 and off at 68.
 			</Help>
-		</Value>
-		<Value type="short" index="3" genre="config" label="Set filter counter" min="500" max="4000" value="500">
-			<Help>How many hours before the filter change reminder is displayed.</Help>
-		</Value>
-		<Value type="short" index="4" genre="config" label="Report filter counter" read_only="true" value="0">
-			<Help>How many hours the system has run since the filter counter was last reset. Read only.</Help>
-		</Value>
-                <Value type="list" index="5" genre="config" label="Celsius/Fahrenheit" min="0" max="1" value="1" size="1">
-                        <Help>Celsius or Fahrenheit.</Help>
-                        <Item label="Celsius" value="0" />
-                        <Item label="Fahrenheit" value="1" />
-                </Value>
-		<Value type="byte" index="14" genre="config" label="Dead band" min="3" max="6" value="4" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="Set filter counter" max="4000" min="500" type="short" value="500">
+      <Help>How many hours before the filter change reminder is displayed.</Help>
+    </Value>
+    <Value genre="config" index="4" label="Report filter counter" read_only="true" type="short" value="0">
+      <Help>How many hours the system has run since the filter counter was last reset. Read only.</Help>
+    </Value>
+    <Value genre="config" index="5" label="Celsius/Fahrenheit" max="1" min="0" size="1" type="list" value="1">
+      <Help>Celsius or Fahrenheit.</Help>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="14" label="Dead band" max="6" min="3" size="1" type="byte" value="4">
+      <Help>
 				On thermostats that automatically control both heating and cooling systems,
 				a dead band is a temperature range in which neither system turns on. The dead
 				band prevents the thermostat from activating heat and cooling in rapid
@@ -42,9 +58,9 @@
 				5(0x05)= 5 F / 2.5 C
 				6(0x06)= 6 F / 3.0 C
 			</Help>
-		</Value>
-		<Value type="short" index="6" genre="config" label="Upper limit of heat set point" value="950">
-			<Help>
+    </Value>
+    <Value genre="config" index="6" label="Upper limit of heat set point" type="short" value="950">
+      <Help>
 				Unit in C:
 				Range from 5 to [(37 ) - (dead band)]
 				Range from 50 (0x0032) to 355 (0x0163)
@@ -56,9 +72,9 @@
 				Example 82 ; input = 820 (0x0334)
 				Default = (99 ) - (dead band)
 			</Help>
-		</Value>
-		<Value type="short" index="7" genre="config" label="Lower limit of cool set point" value="440">
-			<Help>
+    </Value>
+    <Value genre="config" index="7" label="Lower limit of cool set point" type="short" value="440">
+      <Help>
 				Unit in C:
 				Range from [(5 C) + (dead band)] to 37 C
 				Range from 65 (0x0041) to 370 (0x0172)
@@ -70,31 +86,28 @@
 				Example 68 F; input = 680 (0x02A8)
 				Default = (41 F) + (dead band)
 			</Help>
-		</Value>
-
-		<Value type="list" index="8" genre="config" label="Easy Mode" min="0" max="1" value="1" size="1">
-			<Help>Easy mode hides advanced features on the thermostat interface.</Help>
-                        <Item label="Off" value="0" />
-                        <Item label="On" value="1" />
-		</Value>
-
-		<Value type="list" index="9" genre="config" label="Time Format" min="0" max="1" value="1" size="1">
-			<Help>Use the 24 hour or 12 hour (am/pm) time format.</Help>
-                        <Item label="24 hour" value="0" />
-                        <Item label="12 hour (am/pm)" value="1" />
-		</Value>
-
-		<Value type="byte" index="10" genre="config" label="Repeat basic set counter" value="0" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="8" label="Easy Mode" max="1" min="0" size="1" type="list" value="1">
+      <Help>Easy mode hides advanced features on the thermostat interface.</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="1"/>
+    </Value>
+    <Value genre="config" index="9" label="Time Format" max="1" min="0" size="1" type="list" value="1">
+      <Help>Use the 24 hour or 12 hour (am/pm) time format.</Help>
+      <Item label="24 hour" value="0"/>
+      <Item label="12 hour (am/pm)" value="1"/>
+    </Value>
+    <Value genre="config" index="10" label="Repeat basic set counter" size="1" type="byte" value="0">
+      <Help>
 				Repeat basic set counter (Association Group A and B only)
 				Value(X): 0 (0x00), 3 (0x03) to 255 (0xFF)
 				0 (0X00) = Disable, default
 				3 (0x03) to 255 (0xFF) minutes
 				(Thermostat sends "Basic Set" command to its association node repeatedly in every X minutes)
 			</Help>
-		</Value>
-		<Value type="byte" index="11" genre="config" label="Auto report trigger threshold" value="4" min="0" max="8" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="11" label="Auto report trigger threshold" max="8" min="0" size="1" type="byte" value="4">
+      <Help>
 				Trigger AUTO report if room temperature is different from last
 				report.	(It will report room temperature only)
 				*User can use this function to enhance batteries service life
@@ -110,9 +123,9 @@
 				7 (0x07) = 7 F (3.5 C)
 				8 (0x08) = 8 F (4.0 C)
 			</Help>
-		</Value>
-		<Value type="byte" index="12" genre="config" label="Auto report time interval" value="2" min="0" max="16" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="12" label="Auto report time interval" max="16" min="0" size="1" type="byte" value="2">
+      <Help>
 				AUTO report by time interval. (It will report room temperature only)
 				*User can use this function to enhance batteries service life.
 				0 (0x00) = disable AUTO report function. (by time interval)
@@ -134,9 +147,9 @@
 				15 (0x0F) = 7.5 hrs
 				16 (0x10) = 8.0 hrs
 			</Help>
-		</Value>
-		<Value type="byte" index="13" genre="config" label="sensor temperature calibration" value="0" min="-10" max="10" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="13" label="sensor temperature calibration" max="10" min="-10" size="1" type="byte" value="0">
+      <Help>
 				This parameter is used to change the display temperature
 				to match with your previous thermostat, or to match another
 				thermostat already in your home
@@ -163,16 +176,14 @@
 				-9 (0xF7) = -9 F (-4.5 C)
 				-10 (0xF6) = -10 F (-5.0 C)
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="5" label="Heating Mode group. All associated nodes will recieve basic set command ON and OFF when heat is triggered/deactivated." auto="false"/>
-			<Group index="2" max_associations="5" label="Cooling Mode group. All associated nodes will recieve basic set command ON and OFF when cooling is triggered/deactivated." />
-			<Group index="3" max_associations="1" label="Auto-report Group. Your controller/gateway should be associated in this group. All status changes will be reported to this node" auto="true"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group auto="false" index="1" label="Heating Mode group. All associated nodes will recieve basic set command ON and OFF when heat is triggered/deactivated." max_associations="5"/>
+      <Group index="2" label="Cooling Mode group. All associated nodes will recieve basic set command ON and OFF when cooling is triggered/deactivated." max_associations="5"/>
+      <Group auto="true" index="3" label="Auto-report Group. Your controller/gateway should be associated in this group. All status changes will be reported to this node" max_associations="1"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/remotec/zts-500.xml b/Config/remotec/zts-500.xml
index 47bd25baed..bc9100bbfb 100644
--- a/Config/remotec/zts-500.xml
+++ b/Config/remotec/zts-500.xml
@@ -1,33 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!-- Remotec ZTS-500 Thermostat
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Remotec ZTS-500 Thermostat
      http://www.zwaveproducts.com/product-documentation/F-BW8170US%20(ZTS-500US)%20User_Manual_V1.01_Z-Wave%20validation_20160510.pdf
      http://products.z-wavealliance.org/products/1767/configs -->
 
     <!-- COMMAND_CLASS_THERMOSTAT_SETPOINT get is not supported -->
-    <CommandClass id="67" base="0" getsupported="false"/>
-
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Scale of temperature" min="0" max="1" value="1" size="1">
-                <Help>Celsius or Fahrenheit.</Help>
-                <Item label="Celsius" value="0" />
-                <Item label="Fahrenheit" value="1" />
-        </Value>
-		<Value type="byte" index="2" genre="config" label="Swing" min="0" max="4" value="2" size="1">
-			<Help>
+  <CommandClass id="67">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Scale of temperature" max="1" min="0" size="1" type="list" value="1">
+      <Help>Celsius or Fahrenheit.</Help>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="2" label="Swing" max="4" min="0" size="1" type="byte" value="2">
+      <Help>
 				Swing is the difference allowed from current temp to setpoint before the thermostat turns on.
 				EG: A swing of 2 and setpoint of 70 means the heat turns on at 68 and off at 72.
 			</Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Differential" min="0" max="4" value="2" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="Differential" max="4" min="0" size="1" type="byte" value="2">
+      <Help>
 				Differential is the difference needed from the swing before the 2nd stage kicks in.
 				EG: A swing of 2, differntial of 2, and setpoint of 70 means the heat turns on at 68 and off at 72. The second-stage heat would turn on at 67 and off at 68.
 			</Help>
-		</Value>
-		<Value type="list" index="4" genre="config" label="Dead band" min="3" max="6" value="4" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="4" label="Dead band" max="6" min="3" size="1" type="list" value="4">
+      <Help>
 				On thermostats that automatically control both heating and cooling systems,
 				a dead band is a temperature range in which neither system turns on. The dead
 				band prevents the thermostat from activating heat and cooling in rapid
@@ -39,13 +42,13 @@
 				5(0x05)= 5 F / 2.5 C
 				6(0x06)= 6 F / 3.0 C
 			</Help>
-            <Item label="3 F / 1.5 C" value="3" />
-            <Item label="4 F / 2.0 C" value="4" />
-            <Item label="5 F / 2.5 C" value="5" />
-            <Item label="6 F / 3.0 C" value="6" />
-		</Value>
-		<Value type="short" index="5" genre="config" label="Upper limit of heat set point" value="950">
-			<Help>
+      <Item label="3 F / 1.5 C" value="3"/>
+      <Item label="4 F / 2.0 C" value="4"/>
+      <Item label="5 F / 2.5 C" value="5"/>
+      <Item label="6 F / 3.0 C" value="6"/>
+    </Value>
+    <Value genre="config" index="5" label="Upper limit of heat set point" type="short" value="950">
+      <Help>
 				Unit in C:
 				Range from 5 to [(37 ) - (dead band)]
 				Range from 50 (0x0032) to 355 (0x0163)
@@ -57,9 +60,9 @@
 				Example 82 ; input = 820 (0x0334)
 				Default = (99 ) - (dead band)
 			</Help>
-		</Value>
-		<Value type="short" index="6" genre="config" label="Lower limit of cool set point" value="440">
-			<Help>
+    </Value>
+    <Value genre="config" index="6" label="Lower limit of cool set point" type="short" value="440">
+      <Help>
 				Unit in C:
 				Range from [(5 C) + (dead band)] to 37 C
 				Range from 65 (0x0041) to 370 (0x0172)
@@ -71,20 +74,20 @@
 				Example 68 F; input = 680 (0x02A8)
 				Default = (41 F) + (dead band)
 			</Help>
-		</Value>
-        <Value type="byte" index="7" genre="config" label="Reset filter counter" value="0" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="7" label="Reset filter counter" size="1" type="byte" value="0">
+      <Help>
                     0 (0x00) (default)
             </Help>
-        </Value>
-        <Value type="short" index="8" genre="config" label="Set filter counter" min="500" max="4000" value="500">
-            <Help>How many hours before the filter change reminder is displayed.</Help>
-        </Value>
-        <Value type="short" index="9" genre="config" label="Report filter counter" read_only="true" value="0">
-            <Help>How many hours the system has run since the filter counter was last reset. Read only.</Help>
-        </Value>
-        <Value type="list" index="10" genre="config" label="sensor temperature calibration" value="0" min="-10" max="10" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="8" label="Set filter counter" max="4000" min="500" type="short" value="500">
+      <Help>How many hours before the filter change reminder is displayed.</Help>
+    </Value>
+    <Value genre="config" index="9" label="Report filter counter" read_only="true" type="short" value="0">
+      <Help>How many hours the system has run since the filter counter was last reset. Read only.</Help>
+    </Value>
+    <Value genre="config" index="10" label="sensor temperature calibration" max="10" min="-10" size="1" type="list" value="0">
+      <Help>
                     This parameter is used to change the display temperature
                     to match with your previous thermostat, or to match another
                     thermostat already in your home
@@ -111,55 +114,55 @@
                     -9 (0xF7) = -9 F (-4.5 C)
                     -10 (0xF6) = -10 F (-5.0 C)
             </Help>
-            <Item label="-10 F / -5.0 C" value="-10" />
-            <Item label="-9 F / -4.5 C" value="-9" />
-            <Item label="-8 F / -4.0 C" value="-8" />
-            <Item label="-7 F / -3.5 C" value="-7" />
-            <Item label="-6 F / -3.0 C" value="-6" />
-            <Item label="-5 F / -2.5 C" value="-5" />
-            <Item label="-4 F / -2.0 C" value="-4" />
-            <Item label="-3 F / -1.5 C" value="-3" />
-            <Item label="-2 F / -1.0 C" value="-2" />
-            <Item label="-1 F / -0.5 C" value="-1" />
-            <Item label="0 F / 0 C" value="0" />
-            <Item label="1 F / 0.5 C" value="1" />
-            <Item label="2 F / 1.0 C" value="2" />
-            <Item label="3 F / 1.5 C" value="3" />
-            <Item label="4 F / 2.0 C" value="4" />
-            <Item label="5 F / 2.5 C" value="5" />
-            <Item label="6 F / 3.0 C" value="6" />
-            <Item label="7 F / 3.5 C" value="7" />
-            <Item label="8 F / 4.0 C" value="8" />
-            <Item label="9 F / 4.5 C" value="9" />
-            <Item label="10 F / 5.0 C" value="10" />
-        </Value>
-        <Value type="byte" index="11" genre="config" label="LED brightness level" value="2" size="1">
-            <Help>
+      <Item label="-10 F / -5.0 C" value="-10"/>
+      <Item label="-9 F / -4.5 C" value="-9"/>
+      <Item label="-8 F / -4.0 C" value="-8"/>
+      <Item label="-7 F / -3.5 C" value="-7"/>
+      <Item label="-6 F / -3.0 C" value="-6"/>
+      <Item label="-5 F / -2.5 C" value="-5"/>
+      <Item label="-4 F / -2.0 C" value="-4"/>
+      <Item label="-3 F / -1.5 C" value="-3"/>
+      <Item label="-2 F / -1.0 C" value="-2"/>
+      <Item label="-1 F / -0.5 C" value="-1"/>
+      <Item label="0 F / 0 C" value="0"/>
+      <Item label="1 F / 0.5 C" value="1"/>
+      <Item label="2 F / 1.0 C" value="2"/>
+      <Item label="3 F / 1.5 C" value="3"/>
+      <Item label="4 F / 2.0 C" value="4"/>
+      <Item label="5 F / 2.5 C" value="5"/>
+      <Item label="6 F / 3.0 C" value="6"/>
+      <Item label="7 F / 3.5 C" value="7"/>
+      <Item label="8 F / 4.0 C" value="8"/>
+      <Item label="9 F / 4.5 C" value="9"/>
+      <Item label="10 F / 5.0 C" value="10"/>
+    </Value>
+    <Value genre="config" index="11" label="LED brightness level" size="1" type="byte" value="2">
+      <Help>
                     1 (0x01) = Level-1 (dark)
                     2 (0x02) = Level-2 (middle) , default
                     3 (0x03) = Level-3 (bright)
             </Help>
-        </Value>
-        <Value type="byte" index="12" genre="config" label="Sleep timer" value="5" units="seconds" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="12" label="Sleep timer" size="1" type="byte" units="seconds" value="5">
+      <Help>
                     3 (0x03) to 60 (0x3C) seconds,
                     255 (0xFF) = Always On
                     Step size = 1s,
                     Batt = 5s, default
                     24Vac = 60s, default
             </Help>
-        </Value>
-		<Value type="byte" index="13" genre="config" label="Repeat basic set counter" value="0" units="minutes" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="13" label="Repeat basic set counter" size="1" type="byte" units="minutes" value="0">
+      <Help>
 				Repeat basic set counter (Association Group A and B only)
 				Value(X): 0 (0x00), 3 (0x03) to 255 (0xFF)
 				0 (0X00) = Disable, default
 				3 (0x03) to 255 (0xFF) minutes
 				(Thermostat sends "Basic Set" command to its association node repeatedly in every X minutes)
 			</Help>
-		</Value>
-		<Value type="list" index="14" genre="config" label="Auto report trigger threshold" value="4" min="0" max="8" size="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="14" label="Auto report trigger threshold" max="8" min="0" size="1" type="list" value="4">
+      <Help>
 				Trigger AUTO report if room temperature is different from last
 				report.	(It will report room temperature only)
 				*User can use this function to enhance batteries service life
@@ -175,17 +178,17 @@
 				7 (0x07) = 7 F (3.5 C)
 				8 (0x08) = 8 F (4.0 C)
 			</Help>
-            <Item label="1 F / 0.5 C" value="1" />
-            <Item label="2 F / 1.0 C" value="2" />
-            <Item label="3 F / 1.5 C" value="3" />
-            <Item label="4 F / 2.0 C" value="4" />
-            <Item label="5 F / 2.5 C" value="5" />
-            <Item label="6 F / 3.0 C" value="6" />
-            <Item label="7 F / 3.5 C" value="7" />
-            <Item label="8 F / 4.0 C" value="8" />
-		</Value>
-		<Value type="list" index="15" genre="config" label="Auto report time interval" value="2" min="0" max="16" size="1">
-			<Help>
+      <Item label="1 F / 0.5 C" value="1"/>
+      <Item label="2 F / 1.0 C" value="2"/>
+      <Item label="3 F / 1.5 C" value="3"/>
+      <Item label="4 F / 2.0 C" value="4"/>
+      <Item label="5 F / 2.5 C" value="5"/>
+      <Item label="6 F / 3.0 C" value="6"/>
+      <Item label="7 F / 3.5 C" value="7"/>
+      <Item label="8 F / 4.0 C" value="8"/>
+    </Value>
+    <Value genre="config" index="15" label="Auto report time interval" max="16" min="0" size="1" type="list" value="2">
+      <Help>
 				AUTO report by time interval. (It will report room temperature only)
 				*User can use this function to enhance batteries service life.
 				0 (0x00) = disable AUTO report function. (by time interval), (default)
@@ -207,33 +210,31 @@
 				15 (0x0F) = 7.5 hrs
 				16 (0x10) = 8.0 hrs
 			</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="30 minutes" value="1" />
-            <Item label="1 hour" value="2" />
-            <Item label="1 hour 30 minutes" value="3" />
-            <Item label="2 hours" value="4" />
-            <Item label="2 hours 30 minutes" value="5" />
-            <Item label="3 hours" value="6" />
-            <Item label="3 hours 30 minutes" value="7" />
-            <Item label="4 hours" value="8" />
-            <Item label="4 hours 30 minutes" value="9" />
-            <Item label="5 hours" value="10" />
-            <Item label="5 hours 30 minutes" value="11" />
-            <Item label="6 hours" value="12" />
-            <Item label="6 hours 30 minutes" value="13" />
-            <Item label="7 hours" value="14" />
-            <Item label="7 hours 30 minutes" value="15" />
-            <Item label="8 hours" value="16" />
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="1" label="Lifeline" />
-			<Group index="2" max_associations="5" label="Heating Mode group" />
-			<Group index="3" max_associations="5" label="Cooling Mode group" />
-		</Associations>
-	</CommandClass>
+      <Item label="Disabled" value="0"/>
+      <Item label="30 minutes" value="1"/>
+      <Item label="1 hour" value="2"/>
+      <Item label="1 hour 30 minutes" value="3"/>
+      <Item label="2 hours" value="4"/>
+      <Item label="2 hours 30 minutes" value="5"/>
+      <Item label="3 hours" value="6"/>
+      <Item label="3 hours 30 minutes" value="7"/>
+      <Item label="4 hours" value="8"/>
+      <Item label="4 hours 30 minutes" value="9"/>
+      <Item label="5 hours" value="10"/>
+      <Item label="5 hours 30 minutes" value="11"/>
+      <Item label="6 hours" value="12"/>
+      <Item label="6 hours 30 minutes" value="13"/>
+      <Item label="7 hours" value="14"/>
+      <Item label="7 hours 30 minutes" value="15"/>
+      <Item label="8 hours" value="16"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Heating Mode group" max_associations="5"/>
+      <Group index="3" label="Cooling Mode group" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/remotec/zurc.xml b/Config/remotec/zurc.xml
index 10007d4a1e..bdea9117b2 100644
--- a/Config/remotec/zurc.xml
+++ b/Config/remotec/zurc.xml
@@ -1,27 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/5254:531F:0000</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/remotec/zurc.png</MetaDataItem>
+    <MetaDataItem id="531F" name="ZWProductPage" type="0000">https://products.z-wavealliance.org/products/174/</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave enabled universal remote control</MetaDataItem>
+    <MetaDataItem id="531F" name="Identifier" type="0000">Z-URC500US</MetaDataItem>
+    <MetaDataItem name="Description">The Z-URC™ product line is Remotec’s answer to the increasing demand for RF solutions. By combining our traditional high-quality IR universal remote control expertise with Z-Wave® (RF) technology, we have succeeded in producing home automation remote controls that truly fulfill the role of “One Home, One Remote.” Z-URC’s dual IR/RF capabilities allow you to control virtually any electronic device in your household. Whether it is for simple home electronics, outdoor lighting or that high end home entertainment system, the Z-URC family of solutions can solve your needs. With the Z-URC, you can enjoy the culmination of 20+ years of universal remote control experience.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.remotec.com.hk/zaspx/product_content.aspx?aboutno=9&amp;subaboutno=22&amp;main=f</MetaDataItem>
+    <MetaDataItem id="531F" name="FrequencyName" type="0000">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/174/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="16">
-      <Group index="1" max_associations="232" label="Button1" auto="false"/>
-      <Group index="2" max_associations="232" label="Button2"/>
-      <Group index="3" max_associations="232" label="Button3"/>
-      <Group index="4" max_associations="232" label="Button4"/>
-      <Group index="5" max_associations="232" label="Button5"/>
-      <Group index="6" max_associations="232" label="Button6"/>
-      <Group index="7" max_associations="232" label="Button7"/>
-      <Group index="8" max_associations="232" label="Button8"/>
-      <Group index="9" max_associations="232" label="Button9"/>
-      <Group index="10" max_associations="232" label="Button10"/>
-      <Group index="11" max_associations="232" label="Button11"/>
-      <Group index="12" max_associations="232" label="Button12"/>
-      <Group index="13" max_associations="232" label="Button13"/>
-      <Group index="14" max_associations="232" label="Button14"/>
-      <Group index="15" max_associations="232" label="Button15"/>
-      <Group index="16" max_associations="232" label="Button16"/>
+      <Group auto="false" index="1" label="Button1" max_associations="232"/>
+      <Group index="2" label="Button2" max_associations="232"/>
+      <Group index="3" label="Button3" max_associations="232"/>
+      <Group index="4" label="Button4" max_associations="232"/>
+      <Group index="5" label="Button5" max_associations="232"/>
+      <Group index="6" label="Button6" max_associations="232"/>
+      <Group index="7" label="Button7" max_associations="232"/>
+      <Group index="8" label="Button8" max_associations="232"/>
+      <Group index="9" label="Button9" max_associations="232"/>
+      <Group index="10" label="Button10" max_associations="232"/>
+      <Group index="11" label="Button11" max_associations="232"/>
+      <Group index="12" label="Button12" max_associations="232"/>
+      <Group index="13" label="Button13" max_associations="232"/>
+      <Group index="14" label="Button14" max_associations="232"/>
+      <Group index="15" label="Button15" max_associations="232"/>
+      <Group index="16" label="Button16" max_associations="232"/>
     </Associations>
   </CommandClass>
   <!-- COMMAND_CLASS_WAKE_UP.  This class is in the list reported by the device, but it does not
   respond to requests.  It still needs to be supported so that wake up notifications are handled. -->
-  <CommandClass id="132" create_vars="false" />
+  <CommandClass id="132">
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/remotec/zxt-120.xml b/Config/remotec/zxt-120.xml
index 643383c363..ecdbf94263 100644
--- a/Config/remotec/zxt-120.xml
+++ b/Config/remotec/zxt-120.xml
@@ -1,118 +1,146 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/5254:8377:0101</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/remotec/zxt-120.png</MetaDataItem>
+    <MetaDataItem id="8377" name="ZWProductPage" type="0101">https://products.z-wavealliance.org/products/715/</MetaDataItem>
+    <MetaDataItem id="8377" name="Identifier" type="0101">BW8377EU</MetaDataItem>
+    <MetaDataItem name="Name">Remotec ZXT-120EU AC Extender</MetaDataItem>
+    <MetaDataItem name="Description">l   Fully complaint to Z-Wave command class.
+l   Built-in AC IR code library with Configuration Learning capability. 
+l   Able to feedback room temperature.
+l   Build-in 5 direction IR emitters(hemispherical coverage),
+l   3.5mm jack for external wired IR emitter (optional).
+l   Transmit IR control code with a wide range of carrier frequency (15 to 455kHz).
+l   Programmable power level (LOW or HIGH) for external IR emitter to avoid saturation of IR receivers.
+l   Dual mode (FLiRS mode when working on battery, Always Listening mode when work on AC power)
+l   Frequency: US: 908.4MHz,  EU:868.4MHz, AU:921.4MHz
+l   Power Source: USB mini-B,5V DC Jack, or 3xAAA batteries.
+l   Dismountable battery box.
+l   Dimension: Extender unit: 70mm (diameter) *18mm(thickness)  
+l   Battery Box: 70mm(diameter) *15.5mm(thickness)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.remotec.com.hk/zaspx/product_content.aspx?aboutno=36&amp;subaboutno=45&amp;main=f</MetaDataItem>
+    <MetaDataItem id="8377" name="FrequencyName" type="0101">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/715/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
 	<!-- COMMAND_CLASS_THERMOSTAT_SETPOINT get is not supported -->
-	<CommandClass id="67" base="0" getsupported="false"/>
-
-	<!-- The thermostat does not properly report its operating modes -->
-	<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" version="1" request_flags="4" create_vars="true">
-		<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0" value="0">
-			<Item label="Off" value="0" />
-			<Item label="Heat" value="1" />
-			<Item label="Cool" value="2" />
-			<Item label="Resume" value="5" />
-			<Item label="Fan Only" value="6" />
-			<Item label="Dry Air" value="8" />
-			<Item label="Auto Changeover" value="10" />
-		</Value>
-		<SupportedModes>
-			<Mode index="0" label="Off" />
-			<Mode index="1" label="Heat" />
-			<Mode index="2" label="Cool" />
-			<Mode index="5" label="Resume" />
-			<Mode index="6" label="Fan Only" />
-			<Mode index="8" label="Dry Air" />
-			<Mode index="10" label="Auto Changeover" />
-		</SupportedModes>
-	</CommandClass>
-  
-	<CommandClass id="112">
-		<Value type="list" index="25" genre="config" label="Indicate a location for IR code learning and start learning" size="1" min="0" max="22" value="0" write_only="true">
-			<Help>
+  <CommandClass id="67">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- The thermostat does not properly report its operating modes -->
+  <CommandClass id="64">
+    <Value genre="user" index="0" instance="1" label="Mode" max="0" min="0" read_only="false" type="list" units="" value="0" write_only="false">
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+      <Item label="Cool" value="2"/>
+      <Item label="Resume" value="5"/>
+      <Item label="Fan Only" value="6"/>
+      <Item label="Dry Air" value="8"/>
+      <Item label="Auto Changeover" value="10"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+      <Mode index="2" label="Cool"/>
+      <Mode index="5" label="Resume"/>
+      <Mode index="6" label="Fan Only"/>
+      <Mode index="8" label="Dry Air"/>
+      <Mode index="10" label="Auto Changeover"/>
+    </SupportedModes>
+    <Compatibility>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="25" label="Indicate a location for IR code learning and start learning" max="22" min="0" size="1" type="list" value="0" write_only="true">
+      <Help>
 				In case none of the code on the code list works for the targeted air conditioner, user can use IR code learning function.
-				See manual at section &quot;IR Code Learning&quot; for a description of the procedure. Value 0-22
+				See manual at section "IR Code Learning" for a description of the procedure. Value 0-22
 			</Help>
-			<Item label="OFF" value="0" />
-			<Item label="ON (resume)" value="1" />
-			<Item label="cool 19 C" value="2" />
-			<Item label="cool 20 C" value="3" />
-			<Item label="cool 21 C" value="4" />
-			<Item label="cool 22 C" value="5" />
-			<Item label="cool 23 C" value="6" />
-			<Item label="cool 24 C" value="7" />
-			<Item label="cool 25 C" value="8" />
-			<Item label="cool 26 C" value="9" />
-			<Item label="cool 27 C" value="10" />
-			<Item label="cool 28 C" value="11" />
-			<Item label="heat 19 C" value="12" />
-			<Item label="heat 20 C" value="13" />
-			<Item label="heat 21 C" value="14" />
-			<Item label="heat 22 C" value="15" />
-			<Item label="heat 23 C" value="16" />
-			<Item label="heat 24 C" value="17" />
-			<Item label="heat 25 C" value="18" />
-			<Item label="heat 26 C" value="19" />
-			<Item label="heat 27 C" value="20" />
-			<Item label="heat 28 C" value="21" />
-		</Value>
-		<Value type="list" index="26" genre="config" label="Learning status register" size="1" read_only="true">
-			<Help>Note: The status value 0x01 and 0x04 will be reset to 0 when the ZXT-120 receive a get command to this parameter.
+      <Item label="OFF" value="0"/>
+      <Item label="ON (resume)" value="1"/>
+      <Item label="cool 19 C" value="2"/>
+      <Item label="cool 20 C" value="3"/>
+      <Item label="cool 21 C" value="4"/>
+      <Item label="cool 22 C" value="5"/>
+      <Item label="cool 23 C" value="6"/>
+      <Item label="cool 24 C" value="7"/>
+      <Item label="cool 25 C" value="8"/>
+      <Item label="cool 26 C" value="9"/>
+      <Item label="cool 27 C" value="10"/>
+      <Item label="cool 28 C" value="11"/>
+      <Item label="heat 19 C" value="12"/>
+      <Item label="heat 20 C" value="13"/>
+      <Item label="heat 21 C" value="14"/>
+      <Item label="heat 22 C" value="15"/>
+      <Item label="heat 23 C" value="16"/>
+      <Item label="heat 24 C" value="17"/>
+      <Item label="heat 25 C" value="18"/>
+      <Item label="heat 26 C" value="19"/>
+      <Item label="heat 27 C" value="20"/>
+      <Item label="heat 28 C" value="21"/>
+    </Value>
+    <Value genre="config" index="26" label="Learning status register" read_only="true" size="1" type="list">
+      <Help>Note: The status value 0x01 and 0x04 will be reset to 0 when the ZXT-120 receive a get command to this parameter.
 				Idle - this IR channel is idle (default).
 				OK - the latest learning process successful and completed.
 				Learning - the ZXT- 120 is busy processing previous learning request.
 				Failed - the latest learning request failed.</Help>
-			<Item label="Idle" value="0" />
-			<Item label="OK" value="1" />
-			<Item label="Learning" value="2" />
-			<Item label="Failed" value="4" />
-		</Value>
-		<Value type="short" index="27" genre="config" label="IR code number for built-in code library" size="2" value="0">
-			<Help>Look up the code list of ZXT-120 according to your AC brand.</Help>
-		</Value>
-		<Value type="list" index="28" genre="config" label="External IR Emitter power level" size="1" value="255">
-			<Help></Help>
-			<Item label="Normal" value="0" />
-			<Item label="High" value="255" />
-		</Value>
-		<Value type="list" index="32" genre="config" label="Surround IR control" size="1" value="255">
-			<Help>
+      <Item label="Idle" value="0"/>
+      <Item label="OK" value="1"/>
+      <Item label="Learning" value="2"/>
+      <Item label="Failed" value="4"/>
+    </Value>
+    <Value genre="config" index="27" label="IR code number for built-in code library" size="2" type="short" value="0">
+      <Help>Look up the code list of ZXT-120 according to your AC brand.</Help>
+    </Value>
+    <Value genre="config" index="28" label="External IR Emitter power level" size="1" type="list" value="255">
+      <Help></Help>
+      <Item label="Normal" value="0"/>
+      <Item label="High" value="255"/>
+    </Value>
+    <Value genre="config" index="32" label="Surround IR control" size="1" type="list" value="255">
+      <Help>
 				To avoid the IR interference by disabling the surrounding IR emitter if 2 air-conditioners in a room are used.
 				Extend the battery life by disabling the Surround IR Emitters
 			</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="255" />
-		</Value>
-		<Value type="list" index="33" genre="config" label="AC function SWING control" size="1" value="1">
-			<Help></Help>
-			<Item label="Off" value="0" />
-			<Item label="Auto" value="1" />
-		</Value>
-		<Value type="byte" index="35" genre="config" label="Learn location status" size="1" read_only="true">
-			<Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="255"/>
+    </Value>
+    <Value genre="config" index="33" label="AC function SWING control" size="1" type="list" value="1">
+      <Help></Help>
+      <Item label="Off" value="0"/>
+      <Item label="Auto" value="1"/>
+    </Value>
+    <Value genre="config" index="35" label="Learn location status" read_only="true" size="1" type="byte">
+      <Help>
 				Bit mask = 1, learn location has learn data.
 				Otherwise, Bit mask 0 See figure Learn location
 			</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="37" label="Sensor temperature compensation" size="1" min="0" max="255" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="37" instance="1" label="Sensor temperature compensation" max="255" min="0" size="1" type="list" value="0">
+      <Help>
 				This parameter is used to compensate the temperature error at temperature sensor.
 				Formula: Display temperature = sensor reading value + offset value
 				(unit = degree C)
 				0x00 = 0C (Default)
 			</Help>
-			<Item label="0 C" value="0" />
-			<Item label="1 C" value="1" />
-			<Item label="2 C" value="2" />
-			<Item label="3 C" value="3" />
-			<Item label="4 C" value="4" />
-			<Item label="5 C" value="5" />
-			<Item label="-1 C" value="255" />
-			<Item label="-2 C" value="254" />
-			<Item label="-3 C" value="253" />
-			<Item label="-4 C" value="252" />
-			<Item label="-5 C" value="251" />
-		</Value>
-	</CommandClass>
-
+      <Item label="0 C" value="0"/>
+      <Item label="1 C" value="1"/>
+      <Item label="2 C" value="2"/>
+      <Item label="3 C" value="3"/>
+      <Item label="4 C" value="4"/>
+      <Item label="5 C" value="5"/>
+      <Item label="-1 C" value="255"/>
+      <Item label="-2 C" value="254"/>
+      <Item label="-3 C" value="253"/>
+      <Item label="-4 C" value="252"/>
+      <Item label="-5 C" value="251"/>
+    </Value>
+  </CommandClass>
 </Product>
diff --git a/Config/remotec/zxt-310.xml b/Config/remotec/zxt-310.xml
new file mode 100644
index 0000000000..1fcc980da5
--- /dev/null
+++ b/Config/remotec/zxt-310.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+  <CommandClass id="112">
+    <Value type="short" index="27" genre="config" label="IR code number from table" units="">
+      <Help>
+        IR code number for built-in code library. Refer "Code list" for details.
+      </Help>
+    </Value>
+    <Value type="byte" index="38" genre="config" label="End-point selection control" units="" min="1" max="6">
+      <Help>
+        * 1 (0x01) = EP1 
+        * 1 (0x02) = EP2 
+        * 1 (0x03) = EP3 
+        * 1 (0x04) = EP4 
+        * 1 (0x05) = EP5 
+        * 1 (0x06) = EP6 
+      </Help>
+    </Value>
+    <Value type="byte" index="29" genre="config" label="IR Port Mapping" units="" min="1" max="6">
+      <Help>
+        IR output port routing. 
+        Please make sure that the "End point selection control" has completed (if necessary) before process the following setup.
+      </Help>
+    </Value>
+    <Value type="byte" index="28" genre="config" label="IR Output Power" units="" min="0" max="255">
+      <Help>
+        Please  make  sure  that  the  "End  point  selection  control"  has completed (if necessary) before process the following setup. 
+        
+        Set IR output power level by entering: 
+        * 0 (0x00) Normal power mode; 
+        * 255 (0xFF) High power mode; 
+        (default is in high power mode). 
+      </Help>
+    </Value>
+    <Value type="short" index="25" genre="config" label="IR Code Learning" units="">
+      <Help>
+        Please make sure that the "End point selection control" has completed (if necessary) before process the following setup.
+
+        Place the ZXT-310 and your original remote on a flat surface, aimed at each other and 1-3 cm apart from the "L" learning mark.
+        Press and keep holding the key on your original equipment remote which you want to learn for a few seconds.
+
+        Value is the Simple AV command number or key going to be learned.
+        Any incoming operation may probably to wait up to 15s to release until the internal process of parameter has finished.
+
+        (Z-Wave Cmd#, e.g. if POWER key is going to be learnt, input the value: 39 (0x27))
+      </Help>
+    </Value>
+    <Value type="byte" index="26" genre="config" label="Learning status register" units="" read_only="true">
+      <Help>
+        * 0 (0x00): IR channel idle (default)
+        * 1 (0x01): OK
+        * 2 (0x02): Learning
+        * 3 (0x03): Command Full
+        * 4 (0x04): Learning Fail
+      </Help>
+    </Value>
+    <Value type="byte" index="31" genre="config" label="IR transmission mode" units="" min="0" max="255">
+      <Help>
+        Please make sure that the "End point selection control" has completed (if necessary) before process the following setup. 
+
+        * 0 (0x00): Continuous IR transmission mode (default); 
+        * 255 (0xFF): Single shot IR transmission mode; 
+      </Help>
+    </Value>
+  </CommandClass>
+</Product>
diff --git a/Config/remotec/zxt-600.xml b/Config/remotec/zxt-600.xml
index a60aac9d9d..8825eca934 100644
--- a/Config/remotec/zxt-600.xml
+++ b/Config/remotec/zxt-600.xml
@@ -1,156 +1,158 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
     Remotec ZXT-600 AC MASTER
     https://products.z-wavealliance.org/products/2445
     -->
 
 	<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
 	<!-- COMMAND_CLASS_THERMOSTAT_SETPOINT get is not supported -->
-	<CommandClass id="67" base="0" getsupported="false"/>
-
-	<!-- The thermostat does not properly report its operating modes -->
-	<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" version="1" request_flags="4" create_vars="true">
-		<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0" value="0">
-			<Item label="Off" value="0" />
-			<Item label="Heat" value="1" />
-			<Item label="Cool" value="2" />
-			<Item label="Resume" value="5" />
-			<Item label="Fan Only" value="6" />
-			<Item label="Dry Air" value="8" />
-			<Item label="Auto Changeover" value="10" />
-		</Value>
-		<SupportedModes>
-			<Mode index="0" label="Off" />
-			<Mode index="1" label="Heat" />
-			<Mode index="2" label="Cool" />
-			<Mode index="5" label="Resume" />
-			<Mode index="6" label="Fan Only" />
-			<Mode index="8" label="Dry Air" />
-			<Mode index="10" label="Auto Changeover" />
-		</SupportedModes>
-	</CommandClass>
-
-	<CommandClass id="112">
-		<Value type="list" index="25" genre="config" label="Learn IR code" size="2" min="0" max="32" value="0" write_only="true">
-			<Help>
+  <CommandClass id="67">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+  <!-- The thermostat does not properly report its operating modes -->
+  <CommandClass id="64">
+    <Value genre="user" index="0" instance="1" label="Mode" max="0" min="0" read_only="false" type="list" units="" value="0" write_only="false">
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+      <Item label="Cool" value="2"/>
+      <Item label="Resume" value="5"/>
+      <Item label="Fan Only" value="6"/>
+      <Item label="Dry Air" value="8"/>
+      <Item label="Auto Changeover" value="10"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+      <Mode index="2" label="Cool"/>
+      <Mode index="5" label="Resume"/>
+      <Mode index="6" label="Fan Only"/>
+      <Mode index="8" label="Dry Air"/>
+      <Mode index="10" label="Auto Changeover"/>
+    </SupportedModes>
+    <Compatibility>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="25" label="Learn IR code" max="32" min="0" size="2" type="list" value="0" write_only="true">
+      <Help>
 				In case none of the code on the code list works for the targeted air conditioner, user can use IR code learning function.
-				See manual at section &quot;IR Code Learning&quot; for a description of the procedure. Value 0-22
+				See manual at section "IR Code Learning" for a description of the procedure. Value 0-22
 			</Help>
-			<Item label="OFF" value="0" />
-			<Item label="ON (resume)" value="1" />
-			<Item label="Cool 17 C" value="2" />
-			<Item label="Cool 18 C" value="3" />
-			<Item label="Cool 19 C" value="4" />
-			<Item label="Cool 20 C" value="5" />
-			<Item label="Cool 21 C" value="6" />
-			<Item label="Cool 22 C" value="7" />
-			<Item label="Cool 23 C" value="8" />
-			<Item label="Cool 24 C" value="9" />
-			<Item label="Cool 25 C" value="10" />
-			<Item label="Cool 26 C" value="11" />
-			<Item label="Cool 27 C" value="12" />
-			<Item label="Cool 28 C" value="13" />
-			<Item label="Cool 29 C" value="14" />
-			<Item label="Cool 30 C" value="15" />
-			<Item label="Heat 17 C" value="16" />
-			<Item label="Heat 18 C" value="17" />
-			<Item label="Heat 19 C" value="18" />
-			<Item label="Heat 20 C" value="19" />
-			<Item label="Heat 21 C" value="20" />
-			<Item label="Heat 22 C" value="21" />
-            <Item label="Heat 23 C" value="22" />
-			<Item label="Heat 24 C" value="23" />
-            <Item label="Heat 25 C" value="24" />
-			<Item label="Heat 26 C" value="25" />
-            <Item label="Heat 27 C" value="26" />
-			<Item label="Heat 28 C" value="27" />
-            <Item label="Heat 29 C" value="28" />
-			<Item label="Heat 30 C" value="29" />
-            <Item label="Dry Mode" value="30" />
-			<Item label="Auto Mode" value="31" />
-            <Item label="Fan Mode" value="32" />
-
-		</Value>
-		<Value type="list" index="26" genre="config" label="Check IR Code Learning Status" size="1" read_only="true">
-			<Help>Note: The status value 0x01 and 0x04 will be reset to 0 when the ZXT-120 receive a get command to this parameter.
+      <Item label="OFF" value="0"/>
+      <Item label="ON (resume)" value="1"/>
+      <Item label="Cool 17 C" value="2"/>
+      <Item label="Cool 18 C" value="3"/>
+      <Item label="Cool 19 C" value="4"/>
+      <Item label="Cool 20 C" value="5"/>
+      <Item label="Cool 21 C" value="6"/>
+      <Item label="Cool 22 C" value="7"/>
+      <Item label="Cool 23 C" value="8"/>
+      <Item label="Cool 24 C" value="9"/>
+      <Item label="Cool 25 C" value="10"/>
+      <Item label="Cool 26 C" value="11"/>
+      <Item label="Cool 27 C" value="12"/>
+      <Item label="Cool 28 C" value="13"/>
+      <Item label="Cool 29 C" value="14"/>
+      <Item label="Cool 30 C" value="15"/>
+      <Item label="Heat 17 C" value="16"/>
+      <Item label="Heat 18 C" value="17"/>
+      <Item label="Heat 19 C" value="18"/>
+      <Item label="Heat 20 C" value="19"/>
+      <Item label="Heat 21 C" value="20"/>
+      <Item label="Heat 22 C" value="21"/>
+      <Item label="Heat 23 C" value="22"/>
+      <Item label="Heat 24 C" value="23"/>
+      <Item label="Heat 25 C" value="24"/>
+      <Item label="Heat 26 C" value="25"/>
+      <Item label="Heat 27 C" value="26"/>
+      <Item label="Heat 28 C" value="27"/>
+      <Item label="Heat 29 C" value="28"/>
+      <Item label="Heat 30 C" value="29"/>
+      <Item label="Dry Mode" value="30"/>
+      <Item label="Auto Mode" value="31"/>
+      <Item label="Fan Mode" value="32"/>
+    </Value>
+    <Value genre="config" index="26" label="Check IR Code Learning Status" read_only="true" size="1" type="list">
+      <Help>Note: The status value 0x01 and 0x04 will be reset to 0 when the ZXT-120 receive a get command to this parameter.
 				Idle - this IR channel is idle (default).
 				OK - the latest learning process successful and completed.
 				Learning - the ZXT- 120 is busy processing previous learning request.
 				Failed - the latest learning request failed.</Help>
-			<Item label="Idle" value="0" />
-			<Item label="OK" value="1" />
-			<Item label="Learning" value="2" />
-			<Item label="Failed" value="4" />
-		</Value>
-		<Value type="short" index="27" genre="config" label="Set IR Code number from built-in code library" size="2" value="0">
-			<Help>Refer to Code Finder Web page.</Help>
-		</Value>
-        <Value type="list" genre="config" instance="1" index="30" label="Set auto report condition trigger" size="1" min="0" max="8" value="0">
-			<Help>
+      <Item label="Idle" value="0"/>
+      <Item label="OK" value="1"/>
+      <Item label="Learning" value="2"/>
+      <Item label="Failed" value="4"/>
+    </Value>
+    <Value genre="config" index="27" label="Set IR Code number from built-in code library" size="2" type="short" value="0">
+      <Help>Refer to Code Finder Web page.</Help>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Set auto report condition trigger" max="8" min="0" size="1" type="list" value="0">
+      <Help>
 				Set Auto Report Condition Trigger By Room Temperature change.
                 Disable AUTO report function (Default) for saving battery life.
                 Auto report if room temperature is different from last report.
 			</Help>
-			<Item label="Disable AUTO report" value="0" />
-            <Item label="0.5 C" value="1" />
-			<Item label="1.0 C" value="2" />
-			<Item label="1.5 C" value="3" />
-			<Item label="2.0 C" value="4" />
-			<Item label="2.5 C" value="5" />
-			<Item label="3.0 C" value="6" />
-			<Item label="3.5 C" value="7" />
-			<Item label="4.0 C" value="8" />
-		</Value>
-		<Value type="list" index="32" genre="config" label="Set Built-in IR Emitter Control" size="1" value="255">
-			<Help>
+      <Item label="Disable AUTO report" value="0"/>
+      <Item label="0.5 C" value="1"/>
+      <Item label="1.0 C" value="2"/>
+      <Item label="1.5 C" value="3"/>
+      <Item label="2.0 C" value="4"/>
+      <Item label="2.5 C" value="5"/>
+      <Item label="3.0 C" value="6"/>
+      <Item label="3.5 C" value="7"/>
+      <Item label="4.0 C" value="8"/>
+    </Value>
+    <Value genre="config" index="32" label="Set Built-in IR Emitter Control" size="1" type="list" value="255">
+      <Help>
 				To avoid the IR interference by disabling the surrounding IR emitter if 2 air-conditioners in a room are used.
 				Extend the battery life by disabling the Surround IR Emitters
 			</Help>
-			<Item label="Disable" value="0" />
-			<Item label="Enable" value="255" />
-		</Value>
-		<Value type="list" index="33" genre="config" label="Control Air Conditioner SWING function" size="1" value="1">
-			<Help></Help>
-			<Item label="Swing Off" value="0" />
-			<Item label="Swing Auto" value="1" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="34" label="Set Auto report condition by Time interval" size="1" min="1" max="8" value="1">
-			<Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="255"/>
+    </Value>
+    <Value genre="config" index="33" label="Control Air Conditioner SWING function" size="1" type="list" value="1">
+      <Help></Help>
+      <Item label="Swing Off" value="0"/>
+      <Item label="Swing Auto" value="1"/>
+    </Value>
+    <Value genre="config" index="34" instance="1" label="Set Auto report condition by Time interval" max="8" min="1" size="1" type="list" value="1">
+      <Help>
 				Set Auto Report Condition Trigger By Time interval
 			</Help>
-			<Item label="1 Hr" value="1" />
-			<Item label="2 Hrs" value="2" />
-			<Item label="3 Hrs" value="3" />
-			<Item label="4 Hrs" value="4" />
-			<Item label="5 Hrs" value="5" />
-			<Item label="6 Hrs" value="6" />
-			<Item label="7 Hrs" value="7" />
-			<Item label="8 Hrs" value="8" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="37" label="Calibrate temperature reading" size="1" min="0" max="255" value="0">
-			<Help>
+      <Item label="1 Hr" value="1"/>
+      <Item label="2 Hrs" value="2"/>
+      <Item label="3 Hrs" value="3"/>
+      <Item label="4 Hrs" value="4"/>
+      <Item label="5 Hrs" value="5"/>
+      <Item label="6 Hrs" value="6"/>
+      <Item label="7 Hrs" value="7"/>
+      <Item label="8 Hrs" value="8"/>
+    </Value>
+    <Value genre="config" index="37" instance="1" label="Calibrate temperature reading" max="255" min="0" size="1" type="list" value="0">
+      <Help>
 				Temperature offset value.
 			</Help>
-			<Item label="0 C" value="0" />
-			<Item label="1 C" value="1" />
-			<Item label="2 C" value="2" />
-			<Item label="3 C" value="3" />
-			<Item label="4 C" value="4" />
-			<Item label="5 C" value="5" />
-			<Item label="-1 C" value="255" />
-			<Item label="-2 C" value="254" />
-			<Item label="-3 C" value="253" />
-			<Item label="-4 C" value="252" />
-			<Item label="-5 C" value="251" />
-		</Value>
-	</CommandClass>
-
-    <!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="1" label="Lifeline" />
-		</Associations>
-	</CommandClass>
-
-</Product>
\ No newline at end of file
+      <Item label="0 C" value="0"/>
+      <Item label="1 C" value="1"/>
+      <Item label="2 C" value="2"/>
+      <Item label="3 C" value="3"/>
+      <Item label="4 C" value="4"/>
+      <Item label="5 C" value="5"/>
+      <Item label="-1 C" value="255"/>
+      <Item label="-2 C" value="254"/>
+      <Item label="-3 C" value="253"/>
+      <Item label="-4 C" value="252"/>
+      <Item label="-5 C" value="251"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/schlage/BE468.xml b/Config/schlage/BE468.xml
index affa23bc52..de43e570d2 100644
--- a/Config/schlage/BE468.xml
+++ b/Config/schlage/BE468.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<CommandClass id="112">
 		<Value type="list" genre="config" index="3" label="Beeper" min="0" max="255" size="1" value="255">
 			<Help>
diff --git a/Config/schlage/BE469.xml b/Config/schlage/BE469.xml
index 1a9767e432..da847ea6e4 100644
--- a/Config/schlage/BE469.xml
+++ b/Config/schlage/BE469.xml
@@ -1,35 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<CommandClass id="112">
-		<Value type="list" genre="config" index="3" label="Beeper" min="0" max="255" size="1" value="255">
-			<Help>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/003B:5044:6341</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/schlage/BE469.png</MetaDataItem>
+    <MetaDataItem id="5044" name="ZWProductPage" type="6341">https://products.z-wavealliance.org/products/748/</MetaDataItem>
+    <MetaDataItem id="5044" name="Identifier" type="6341">BE469</MetaDataItem>
+    <MetaDataItem name="Description">At Schlage, we know security. After all, we’ve been innovating locks for more than 90 years. Now, with the Touch screen Deadbolt, we’ve created a door lock that combines all of our best security features into one keyless door lock, redefining what it means to be secure. Our innovative touch screen feature provides the convenience of going keyless. No more keys to lose, hide, carry or forget. The fingerprint-resistant touch screen ensures numbers won’t be detectable to intruders after repeated use, safeguarding your home even more. Schrage’s Touch screen Deadbolt with Alarm combines our best security features into one door lock: Grade 1 certification, an Anti-pick shield, Built-in Alarm technology. The Touch screen Deadbolt is also enabled to work with Nexia Home Intelligence, a home automation system that allows you to control locks, thermostats, lights, cameras and more from wherever you and the Internet happen to be.</MetaDataItem>
+    <MetaDataItem name="Name">Schlage Touchscreen Deadbolt</MetaDataItem>
+    <MetaDataItem id="5044" name="FrequencyName" type="6341">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/748/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="Beeper" max="255" min="0" size="1" type="list" value="255">
+      <Help>
 				Enable or disable the beeper.
 			</Help>
-			<Item label="Disable Beeper" value="0" />
-			<Item label="Enable Beeper" value="255" />
-
-		</Value>
-		<Value type="list" genre="config" index="4" label="Vacation Mode" min="0" max="255" size="1" value="0">
-			<Help>
+      <Item label="Disable Beeper" value="0"/>
+      <Item label="Enable Beeper" value="255"/>
+    </Value>
+    <Value genre="config" index="4" label="Vacation Mode" max="255" min="0" size="1" type="list" value="0">
+      <Help>
 				Prevents all user codes from unlocking the deadbolt.
 				Enable for extra security while you are away for
 				an extended period of time.
 			</Help>
-			<Item label="Disable Vacation Mode" value="0" />
-			<Item label="Enable Vacation Mode" value="255" />
-		</Value>
-		<Value type="list" genre="config" index="5" label="Lock &amp; Leave" units="" min="0" max="255" size="1" value="255">
-			<Help>
+      <Item label="Disable Vacation Mode" value="0"/>
+      <Item label="Enable Vacation Mode" value="255"/>
+    </Value>
+    <Value genre="config" index="5" label="Lock &amp; Leave" max="255" min="0" size="1" type="list" units="" value="255">
+      <Help>
 				When enabled: Press the Outside Schlage Button to lock the
 				deadbolt. (Default setting).
 				When disabled: Press the Outside Schlage Button and then enter
 				a user code to lock the deadbolt.
 			</Help>
-			<Item label="Disable Lock &amp; Leave" value="0" />
-			<Item label="Enable Lock &amp; Leave" value="255" />
-		</Value>
-		<Value type="list" genre="config" index="7" label="Lock Alarm Mode" size="1" value="0">
-			<Help>
+      <Item label="Disable Lock &amp; Leave" value="0"/>
+      <Item label="Enable Lock &amp; Leave" value="255"/>
+    </Value>
+    <Value genre="config" index="7" label="Lock Alarm Mode" size="1" type="list" value="0">
+      <Help>
 				The alarm is turned off by default. After installation,
 				you will need to turn on your alarm.
 
@@ -52,99 +62,98 @@
 				   Least sensitive mode
 				 Sounds three-minute shrill, steady alarm (90 dB)
 			</Help>
-			<Item label="Alarm Off" value="0" />
-			<Item label="Activity" value="1" />
-			<Item label="Tamper" value="2" />
-			<Item label="Forced Entry" value="3" />
-		</Value>
-		<Value type="list" genre="config" index="8" label="Activity Alarm Sensitivity" size="1" value="3">
-			<Help>
+      <Item label="Alarm Off" value="0"/>
+      <Item label="Activity" value="1"/>
+      <Item label="Tamper" value="2"/>
+      <Item label="Forced Entry" value="3"/>
+    </Value>
+    <Value genre="config" index="8" label="Activity Alarm Sensitivity" size="1" type="list" value="3">
+      <Help>
 				Each alarm mode is preset to a sensitivity level of three.
 				If your alarm is sounding too frequently, or not frequently enough,
 				try changing this setting.
 				If you change the alarm mode, the sensitivity will revert
 				back to the default setting.
 			</Help>
-			<Item label="Most Sensitive" value="1" />
-			<Item label="Medium/high Sensitivity" value="2" />
-			<Item label="Medium Sensitivity" value="3" />
-			<Item label="Medium/low Sensitivity" value="4" />
-			<Item label="Least Sensitivity" value="5" />
-		</Value>
-		<Value type="list" genre="config" index="9" label="Tamper Alarm Sensitivity" size="1" value="3">
-			<Help>
+      <Item label="Most Sensitive" value="1"/>
+      <Item label="Medium/high Sensitivity" value="2"/>
+      <Item label="Medium Sensitivity" value="3"/>
+      <Item label="Medium/low Sensitivity" value="4"/>
+      <Item label="Least Sensitivity" value="5"/>
+    </Value>
+    <Value genre="config" index="9" label="Tamper Alarm Sensitivity" size="1" type="list" value="3">
+      <Help>
 				Each alarm mode is preset to a sensitivity level of three.
 				If your alarm is sounding too frequently, or not frequently enough,
 				try changing this setting.
 				If you change the alarm mode, the sensitivity will revert
 				back to the default setting.
 			</Help>
-			<Item label="Most Sensitive" value="1" />
-			<Item label="Medium/high Sensitivity" value="2" />
-			<Item label="Medium Sensitivity" value="3" />
-			<Item label="Medium/low Sensitivity" value="4" />
-			<Item label="Least Sensitivity" value="5" />
-		</Value>
-		<Value type="list" genre="config" index="10" label="Forced Entry Alarm Sensitivity" size="1" value="3">
-			<Help>
+      <Item label="Most Sensitive" value="1"/>
+      <Item label="Medium/high Sensitivity" value="2"/>
+      <Item label="Medium Sensitivity" value="3"/>
+      <Item label="Medium/low Sensitivity" value="4"/>
+      <Item label="Least Sensitivity" value="5"/>
+    </Value>
+    <Value genre="config" index="10" label="Forced Entry Alarm Sensitivity" size="1" type="list" value="3">
+      <Help>
 				Each alarm mode is preset to a sensitivity level of three.
 				If your alarm is sounding too frequently, or not frequently enough,
 				try changing this setting.
 				If you change the alarm mode, the sensitivity will revert
 				back to the default setting.
 			</Help>
-			<Item label="Most Sensitive" value="1" />
-			<Item label="Medium/high Sensitivity" value="2" />
-			<Item label="Medium Sensitivity" value="3" />
-			<Item label="Medium/low Sensitivity" value="4" />
-			<Item label="Least Sensitivity" value="5" />
-		</Value>
-		<Value type="list" genre="config" index="11" label="Disable Local Alarm Controls" size="1" value="255">
-			<Help>
+      <Item label="Most Sensitive" value="1"/>
+      <Item label="Medium/high Sensitivity" value="2"/>
+      <Item label="Medium Sensitivity" value="3"/>
+      <Item label="Medium/low Sensitivity" value="4"/>
+      <Item label="Least Sensitivity" value="5"/>
+    </Value>
+    <Value genre="config" index="11" label="Disable Local Alarm Controls" size="1" type="list" value="255">
+      <Help>
 				Enables/Disables local alarm on/off, mode change, sensitivity changes
 			</Help>
-			<Item label="Disable local alarm controls" value="0" />
-			<Item label="Enable local alarm controls" value="255" />
-		</Value>
-		<Value type="int" genre="config" index="12" read_only="true" label="Electronic transition count" />
-		<Value type="int" genre="config" index="13" read_only="true" label="Mechanical transition count" />
-		<Value type="int" genre="config" index="14" read_only="true" label="Electronic failed count">
-			<Help>
+      <Item label="Disable local alarm controls" value="0"/>
+      <Item label="Enable local alarm controls" value="255"/>
+    </Value>
+    <Value genre="config" index="12" label="Electronic transition count" read_only="true" type="int"/>
+    <Value genre="config" index="13" label="Mechanical transition count" read_only="true" type="int"/>
+    <Value genre="config" index="14" label="Electronic failed count" read_only="true" type="int">
+      <Help>
 				Each failed electronic attempt increments this count by one.
 			</Help>
-		</Value>
-		<Value type="list" genre="config" index="15" label="Auto lock" size="1" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="15" label="Auto lock" size="1" type="list" value="0">
+      <Help>
 				When enabled, the lock will automatically relock 30 seconds
 				after unlocking. (Disabled by default.)
 			</Help>
-			<Item label="Disable auto lock" value="0" />
-			<Item label="Enable auto lock" value="255" />
-		</Value>
-		<Value type="byte" genre="config" index="16" label="User code pin length" min="4" max="8" value="4">
-			<Help>
+      <Item label="Disable auto lock" value="0"/>
+      <Item label="Enable auto lock" value="255"/>
+    </Value>
+    <Value genre="config" index="16" label="User code pin length" max="8" min="4" type="byte" value="4">
+      <Help>
 				User Code PIN length, a value between 4 and 8. 
 				IMPORTANT: All user codes must be the same length.
 			</Help>
-		</Value>
-		<Value type="int" genre="config" index="17" label="Electrical High Preload Transition Count" read_only="true">
-			<Help>
+    </Value>
+    <Value genre="config" index="17" label="Electrical High Preload Transition Count" read_only="true" type="int">
+      <Help>
 				A subset of Electronic transition count, the number of transitions
 				with high preload.
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" index="18" label="Bootloader Version" read_only="true">
-			<Help>The version of the bootloader</Help>
-		</Value>
-	</CommandClass>
-
-	<CommandClass id="113">
-		<!-- These Door Locks don't send a DoorLockReport when the
+    </Value>
+    <Value genre="config" index="18" label="Bootloader Version" read_only="true" type="byte">
+      <Help>The version of the bootloader</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="113">
+    <!-- These Door Locks don't send a DoorLockReport when the
 		Lock Status is Changed, but instead send a Alarm Message -
 		So we trigger a Refresh of the DoorLock Command Class when
 		we recieve a Alarm Message Instead -->
-		<TriggerRefreshValue Genre="user" Index="0" Instance="1">
-			<RefreshClassValue CommandClass="98" RequestFlags="0" Index="1" Instance="1" />
-		</TriggerRefreshValue>
-	</CommandClass>
+    <TriggerRefreshValue Genre="user" Index="0" Instance="1">
+      <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
+    </TriggerRefreshValue>
+  </CommandClass>
 </Product>
diff --git a/Config/schlage/BE469ZP.xml b/Config/schlage/BE469ZP.xml
index 2ec3259849..89c84b4872 100644
--- a/Config/schlage/BE469ZP.xml
+++ b/Config/schlage/BE469ZP.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<CommandClass id="112">
 		<Value type="list" index="3" genre="config" label="Beeper" units="" min="1" max="255" value="255" size="1">
 			<Help>
diff --git a/Config/schlage/fe599.xml b/Config/schlage/fe599.xml
new file mode 100644
index 0000000000..69ff406dcc
--- /dev/null
+++ b/Config/schlage/fe599.xml
@@ -0,0 +1,17 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/003B:504C:634B</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/schlage/fe599.png</MetaDataItem>
+    <MetaDataItem id="504C" name="ZWProductPage" type="634B">https://products.z-wavealliance.org/products/311/</MetaDataItem>
+    <MetaDataItem id="504C" name="FrequencyName" type="634B">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">cKPD FE599 z-wave Lock. Z-Wave enabled lock. We make it simple to get started with remote home security with the Schlage Home Security Kit. Everything you need to make sure your home and family are safe and secure when you’re not there is available in one box . Getting notified any time your loved ones come home or leave the house. Assigning codes to let in chosen guests. Turning on a light at night in an empty house – making it look full of life. Nexia security features come together in a system you can manage and monitor any time, whether from your office computer or on the go from your tablet or smart phone.</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://link.schlage.com/Products/Pages/DeadboltStarterKit.aspx</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://link.schlage.com/Products/Pages/DeadboltStarterKit.aspx</MetaDataItem>
+    <MetaDataItem id="504C" name="Identifier" type="634B">cKPD FE599</MetaDataItem>
+    <MetaDataItem name="Name">cKPD FE599 Z-Wave Lock</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/311/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/schlagelink/41.xml b/Config/schlagelink/41.xml
new file mode 100644
index 0000000000..04ffa780e1
--- /dev/null
+++ b/Config/schlagelink/41.xml
@@ -0,0 +1,15 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0097:5501:6941</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/schlagelink/41.png</MetaDataItem>
+    <MetaDataItem id="5501" name="ZWProductPage" type="6941">https://products.z-wavealliance.org/products/729/</MetaDataItem>
+    <MetaDataItem name="Description">Product number 41, A plugin module for a power socket which can switch on/off</MetaDataItem>
+    <MetaDataItem name="Name">Wintop iPlug, Brazil</MetaDataItem>
+    <MetaDataItem id="5501" name="FrequencyName" type="6941">Brazil</MetaDataItem>
+    <MetaDataItem id="5501" name="Identifier" type="6941">41</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/729/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/schlagelink/itemp.xml b/Config/schlagelink/itemp.xml
index a11a99de1c..3137e179f0 100644
--- a/Config/schlagelink/itemp.xml
+++ b/Config/schlagelink/itemp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
   <!-- Configuration -->
   <CommandClass id="112">
diff --git a/Config/schlagelink/minikeypad.xml b/Config/schlagelink/minikeypad.xml
index 8a02e7026e..2b64771d8d 100644
--- a/Config/schlagelink/minikeypad.xml
+++ b/Config/schlagelink/minikeypad.xml
@@ -1,41 +1,35 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- Zipato mini keypad RFID -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Configuration -->
-	<CommandClass id="112">
-
-		<Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="0">
-			<Help>Set all configuration values to default values (factory settings) if set to 0xff.</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="2" label="Feedback Time" value="16" >
-			<Help>To configure the time the beep is automatically turned off in seconds. 0 means disabled. 255 is endless</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="3" label="Feedback Timeout" value="0">
-			<Help>To configure the timeout to wait for a WAKEUP_NO_MORE_INFORMATION before the error beep is automatically sound. The error beeps are fixed 8 beeps shortly after each other. 0 means disabled</Help>
-		</Value>
-
-		<Value type="byte" genre="config" instance="1" index="4" label="Feedback Beeps per Second" value="2">
-			<Help>To configure the number of beeps per second. Every beep is fixed about 10ms.</Help>
-		</Value>
-
-		<Value type="list" genre="config" instance="1" index="5" label="The Mode" value="1" size="1">
-			<Help>To configure the operating mode. If any mode other then 3, that value will be reported after a get but will be handled in SW as mode 1.</Help>
-			<Item label="Mode 1: Normal operating mode." value="1"/>
-			<Item label="Mode 3: Z-Wave chip is always on to request e.g. version or manufacturer id." value="3"/>
-		</Value>
-	</CommandClass>
-	
-	<!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
-	<CommandClass id="113" getsupported="false" />
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Report" />
-		</Associations>
-	</CommandClass>
-
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Set to Default" type="byte" value="0">
+      <Help>Set all configuration values to default values (factory settings) if set to 0xff.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Feedback Time" type="byte" value="16">
+      <Help>To configure the time the beep is automatically turned off in seconds. 0 means disabled. 255 is endless</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Feedback Timeout" type="byte" value="0">
+      <Help>To configure the timeout to wait for a WAKEUP_NO_MORE_INFORMATION before the error beep is automatically sound. The error beeps are fixed 8 beeps shortly after each other. 0 means disabled</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Feedback Beeps per Second" type="byte" value="2">
+      <Help>To configure the number of beeps per second. Every beep is fixed about 10ms.</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="The Mode" size="1" type="list" value="1">
+      <Help>To configure the operating mode. If any mode other then 3, that value will be reported after a get but will be handled in SW as mode 1.</Help>
+      <Item label="Mode 1: Normal operating mode." value="1"/>
+      <Item label="Mode 3: Z-Wave chip is always on to request e.g. version or manufacturer id." value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/sensative/strips.xml b/Config/sensative/strips.xml
index a703f3224b..049c558e3f 100644
--- a/Config/sensative/strips.xml
+++ b/Config/sensative/strips.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- Configuration Parameters -->
 	<CommandClass id="112">
 		<Value type="list" index="1" genre="config" label="Notification type" size="1" value="1">
diff --git a/Config/sensative/stripscomfort.xml b/Config/sensative/stripscomfort.xml
index 02c1b1d594..8ea81e17f5 100644
--- a/Config/sensative/stripscomfort.xml
+++ b/Config/sensative/stripscomfort.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     Sensative Strips Comfort
     https://products.z-wavealliance.org/products/2737
diff --git a/Config/sercomm/sw-clp01-eu.xml b/Config/sercomm/sw-clp01-eu.xml
new file mode 100644
index 0000000000..823bf12ea7
--- /dev/null
+++ b/Config/sercomm/sw-clp01-eu.xml
@@ -0,0 +1,14 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0151:0001:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/sercomm/sw-clp01-eu.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/927/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0002">SW-CLP01-EU</MetaDataItem>
+    <MetaDataItem name="Name">Clamp Power Meter</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave Clamp Power Meter</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/927/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/shenzen_neo/ls01ch.xml b/Config/shenzen_neo/ls01ch.xml
index e9b6d242c1..f3b18b37ec 100644
--- a/Config/shenzen_neo/ls01ch.xml
+++ b/Config/shenzen_neo/ls01ch.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- Configuration Parameters -->
 <CommandClass id="112">
   <Value type="list" genre="config" instance="1" index="1" label="Save On/Off status" value="0" size="1">
diff --git a/Config/shenzen_neo/ls02ch.xml b/Config/shenzen_neo/ls02ch.xml
index e425de2c23..03eb1ab13f 100644
--- a/Config/shenzen_neo/ls02ch.xml
+++ b/Config/shenzen_neo/ls02ch.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Shenzhen NEO Electronics (Neo-CoolCam) Light Switch (2 channel)
   -->
diff --git a/Config/shenzen_neo/nas-ab01z.xml b/Config/shenzen_neo/nas-ab01z.xml
index 884bc87c97..2bee9103bf 100644
--- a/Config/shenzen_neo/nas-ab01z.xml
+++ b/Config/shenzen_neo/nas-ab01z.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Coolcam Siren Alarm NAS-AB01Z
     http://products.z-wavealliance.org/products/1962
     -->
diff --git a/Config/shenzen_neo/nas-ds01z.xml b/Config/shenzen_neo/nas-ds01z.xml
index 71fce4ae81..fe26464963 100644
--- a/Config/shenzen_neo/nas-ds01z.xml
+++ b/Config/shenzen_neo/nas-ds01z.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!--
   Shenzhen NEO Electronics (NEO-CoolCam) Door Sensor
   http://products.z-wavealliance.org/products/1782
diff --git a/Config/shenzen_neo/nas-pd01z.xml b/Config/shenzen_neo/nas-pd01z.xml
index 8e40d83e01..48fa75c281 100644
--- a/Config/shenzen_neo/nas-pd01z.xml
+++ b/Config/shenzen_neo/nas-pd01z.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
   <!--
   Coolcam NAS-PD01ZE Motion Sensor (PIR)
   http://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1920/Motion%20Detector%20User%20Guide%20EU%20V3.3.pdf
diff --git a/Config/shenzen_neo/nas-pd02z.xml b/Config/shenzen_neo/nas-pd02z.xml
index 436b9fd978..beaada7765 100644
--- a/Config/shenzen_neo/nas-pd02z.xml
+++ b/Config/shenzen_neo/nas-pd02z.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Coolcam NAS-PD02ZE Motion Sensor (PIR) Version 2
   -->
diff --git a/Config/shenzen_neo/nas-rc01z.xml b/Config/shenzen_neo/nas-rc01z.xml
index 6f36faed90..d1b987d472 100644
--- a/Config/shenzen_neo/nas-rc01z.xml
+++ b/Config/shenzen_neo/nas-rc01z.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Coolcam SOS Remote Key-Fob RC01Z
     http://products.z-wavealliance.org/products/xxxx
     -->
diff --git a/Config/shenzen_neo/nas-wr01z.xml b/Config/shenzen_neo/nas-wr01z.xml
index 3022fb3d7f..cf7cf9d863 100644
--- a/Config/shenzen_neo/nas-wr01z.xml
+++ b/Config/shenzen_neo/nas-wr01z.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
   <!--
   Shenzhen NEO Electronics (Neo-CoolCam) Smart Power Plug
   http://products.z-wavealliance.org/products/1783
diff --git a/Config/shenzen_neo/nas-wr01ze.xml b/Config/shenzen_neo/nas-wr01ze.xml
index d4a8e361ec..bf8afd0c90 100644
--- a/Config/shenzen_neo/nas-wr01ze.xml
+++ b/Config/shenzen_neo/nas-wr01ze.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!--
   Shenzhen NEO Electronics (Neo-CoolCam) Smart Power Plug EU
   -->
diff --git a/Config/shenzen_neo/nas-ws02z.xml b/Config/shenzen_neo/nas-ws02z.xml
index a02dc29635..2f650f3617 100644
--- a/Config/shenzen_neo/nas-ws02z.xml
+++ b/Config/shenzen_neo/nas-ws02z.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="byte" genre="config" instance="1" index="1" label="Alarm Duration Time" units="minute" value="120" min="0" max="255" size="1">
diff --git a/Config/simon/10002034-13X.xml b/Config/simon/10002034-13X.xml
index a8d1eb9d9e..4f88c69bd4 100644
--- a/Config/simon/10002034-13X.xml
+++ b/Config/simon/10002034-13X.xml
@@ -1,65 +1,72 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Simon S100 Socket iO
 https://products.z-wavealliance.org/products/1869
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
-    <CommandClass id="38" getsupported="false"/>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="9" label="Association LED" size="1" value="1" min="255" max="1">
-            <Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
+  <CommandClass id="38">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="9" instance="1" label="Association LED" max="1" min="255" size="1" type="list" value="1">
+      <Help>
 				Used during Association process by Simon Shortcut Switch IO to turn ON the main LED of all devices already associated to this shortcut.
 			</Help>
-            <Item label="Turns the main LED OFF" value="0"/>
-            <Item label="Turns the main LED ON" value="255"/>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="10" label="Delay ON" value="0" min="0" max="254">
-            <Help>
+      <Item label="Turns the main LED OFF" value="0"/>
+      <Item label="Turns the main LED ON" value="255"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Delay ON" max="254" min="0" type="byte" value="0">
+      <Help>
 				This parameter allows to choose delay from activation request until load activation.
 				Value 0 - Instantly (default).
 				Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
 				Values from 128 to 254 - 1 minute to 127 minutes in 1 minute resolution.
 			</Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="11" label="Activation Time" value="0" min="0" max="254">
-            <Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Activation Time" max="254" min="0" type="byte" value="0">
+      <Help>
 				This parameter allows to chose the time that load performs activated after complete an activation process.
 				Value 0 - Instantly (default).
 				Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
 				Values from 128 to 254 - 1 minute to 127 minutes in 1 minute resolution.
 			</Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="12" label="Behavior of LED in Repose" value="0" min="0" max="255" size="1">
-            <Help>This parameter allows to choose operating for Main LED as identification at 20%..</Help>
-            <Item label="LED OFF" value="0"/>
-            <Item label="LED ON at 20% of maximum level" value="255"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="13" label="Lock Input" value="0" min="0" max="255" size="1">
-            <Help>This parameter locks the pushbutton and wired input actions.</Help>
-            <Item label="Unlock the direct control of load" value="0"/>
-            <Item label="Lock the direct control of load" value="255"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="15" label="Reset Default" value="0" min="39015" max="39015" size="2" write_only="true">
-            <Help>Parameters, Groups, and Z-Wave status are restored to default (Only writable).</Help>
-            <Item label="Device performs a factory default Reset" value="39015"/>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="11" label="Activation Time" value="0" min="0" max="254">
-            <Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Behavior of LED in Repose" max="255" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose operating for Main LED as identification at 20%..</Help>
+      <Item label="LED OFF" value="0"/>
+      <Item label="LED ON at 20% of maximum level" value="255"/>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Lock Input" max="255" min="0" size="1" type="list" value="0">
+      <Help>This parameter locks the pushbutton and wired input actions.</Help>
+      <Item label="Unlock the direct control of load" value="0"/>
+      <Item label="Lock the direct control of load" value="255"/>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Reset Default" max="39015" min="39015" size="2" type="list" value="0" write_only="true">
+      <Help>Parameters, Groups, and Z-Wave status are restored to default (Only writable).</Help>
+      <Item label="Device performs a factory default Reset" value="39015"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Activation Time" max="254" min="0" type="byte" value="0">
+      <Help>
 				This parameter allows to chose the time that load performs activated after complete an activation process.
 				Value 0 - Instantly (default).
 				Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
 				Values from 128 to 254 - 1 minute to 127 minutes in 1 minute resolution.
 			</Help>
-        </Value>
-    </CommandClass>
-    <!-- -->
-    <CommandClass id="96" mapping="endpoints"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="3" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="3"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/simon/10002041-13X.xml b/Config/simon/10002041-13X.xml
index 0d23f3c649..92ae5c5d3d 100644
--- a/Config/simon/10002041-13X.xml
+++ b/Config/simon/10002041-13X.xml
@@ -1,95 +1,98 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Simon S100 Socket iO
 https://products.z-wavealliance.org/products/2674
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_SWITCH_MULTILEVEL. This class is in the list reported by the device, but it does not respond to requests -->
     <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Association LED" value="1" min="255" max="1" size="1">
-            <Help>Activates the Central LED.</Help>
-            <Item label="Turns the center LED OFF" value="0"/>
-            <Item label="Turns the center LED ON" value="255"/>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="2" label="Custom consumption limit" value="0" min="0" max="65535">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Association LED" max="1" min="255" size="1" type="list" value="1">
+      <Help>Activates the Central LED.</Help>
+      <Item label="Turns the center LED OFF" value="0"/>
+      <Item label="Turns the center LED ON" value="255"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Custom consumption limit" max="65535" min="0" type="short" value="0">
+      <Help>
                 Sets a delay from activation request until the activation is performed.
                 0 Disables custom consumption limit (Default).
                 1 to 65535 Sets the power in Watts that is supported (Once the load is over, it is disconnected).
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="3" label="Beacon" value="0" min="0" max="99">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Beacon" max="99" min="0" type="byte" value="0">
+      <Help>
                 Sets the beacon intensity, turning ON all Device LEDs al percentage set in this configuration.
                 0 Disables the beacon function (Defect).
                 1 to 99 (1-100%) sets the intensity of the beacon LEDs.
             </Help>
-        </Value>
-		<Value type="byte" genre="config" instance="1" index="10" label="Delay ON" value="0" min="0" max="254">
-	    <Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Delay ON" max="254" min="0" type="byte" value="0">
+      <Help>
             This parameter allows to choose delay from activation request until load activation.
             Value 0 Instantly (default).
             Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
             Values from 128 to 254 - 1 minute to 127 minutes in 1 minute resolution.
         </Help>
-		</Value>
-        <Value type="byte" genre="config" instance="1" index="11" label="Activation Time" value="0" min="0" max="254">
-        <Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Activation Time" max="254" min="0" type="byte" value="0">
+      <Help>
             This parameter allows to chose the time that load performs activated after complete an activation process.
             Value 0 - Instantly (default).
             Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
             Values from 128 to 254 - 1 minute to 127 minutes in 1 minute resolution.
         </Help>
-		</Value>
-        <Value type="list" genre="config" instance="1" index="13" label="Lock Input" value="0" min="0" max="255" size="1">
-            <Help>This parameter allows to choose operating for Main LED as identification at 20%.</Help>
-            <Item label="Enables the pushbutton to control the load" value="0"/>
-            <Item label="Disables the action of the pushbutton on the load" value="255"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="15" label="Reset default (Write Only)" value="0" min="0" max="39015" size="2">
-            <Help>Write only parameter used to restore configurations or perform a completely restore default.</Help>
-            <Item label="Configuration values are restored" value="17170"/>
-            <Item label="Factory reset" value="39015"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="17" label="PostReset State" value="0" min="0" max="255" size="1">
-            <Help>Sets the device state after a reset.</Help>
-            <Item label="After a reset the load starts Off" value="0"/>
-            <Item label="After a reset the load recovers the last value" value="255"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="19" label="Press Action" value="0" min="0" max="2" size="1">
-            <Help>Defines the function performed by the device when keypad is pressed.</Help>
-            <Item label="Short press toggles the load" value="0"/>
-            <Item label="Short press activates the load" value="1"/>
-			<Item label="Short press deactivates the load" value="2"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="20" label="Identify (Write Only)" value="0" min="255" max="255" size="1">
-            <Help>Write only value that performs a fast blink on Central LED during 5 seconds in order to identify the device when it is installed in a multiple frame.</Help>
-            <Item label="The central LED flashes for 5 seconds at a frequency of 0,1s." value="255"/>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="21" label="Load State (Read Only)" value="0" min="0" max="65535">
-			<Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Lock Input" max="255" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose operating for Main LED as identification at 20%.</Help>
+      <Item label="Enables the pushbutton to control the load" value="0"/>
+      <Item label="Disables the action of the pushbutton on the load" value="255"/>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Reset default (Write Only)" max="39015" min="0" size="2" type="list" value="0">
+      <Help>Write only parameter used to restore configurations or perform a completely restore default.</Help>
+      <Item label="Configuration values are restored" value="17170"/>
+      <Item label="Factory reset" value="39015"/>
+    </Value>
+    <Value genre="config" index="17" instance="1" label="PostReset State" max="255" min="0" size="1" type="list" value="0">
+      <Help>Sets the device state after a reset.</Help>
+      <Item label="After a reset the load starts Off" value="0"/>
+      <Item label="After a reset the load recovers the last value" value="255"/>
+    </Value>
+    <Value genre="config" index="19" instance="1" label="Press Action" max="2" min="0" size="1" type="list" value="0">
+      <Help>Defines the function performed by the device when keypad is pressed.</Help>
+      <Item label="Short press toggles the load" value="0"/>
+      <Item label="Short press activates the load" value="1"/>
+      <Item label="Short press deactivates the load" value="2"/>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Identify (Write Only)" max="255" min="255" size="1" type="list" value="0">
+      <Help>Write only value that performs a fast blink on Central LED during 5 seconds in order to identify the device when it is installed in a multiple frame.</Help>
+      <Item label="The central LED flashes for 5 seconds at a frequency of 0,1s." value="255"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Load State (Read Only)" max="65535" min="0" type="short" value="0">
+      <Help>
                 Read only Configuration used to report the device state and last value. This value is represented in Hexadecimal.
                 Byte 0 informs about Load State (0 load is OFF and 1 load is ON).
                 Byte 1 informs about Load value (0x00 or 0xFF)
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="27" label="Lock Hold Press" value="0" min="0" max="255" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="27" instance="1" label="Lock Hold Press" max="255" min="0" size="1" type="list" value="0">
+      <Help>
                 Locks the major part of Hold press effects in order to avoid undesired Z-Wave changes, or restores Default.
                 0xFF Hold Press from 2sec to 30 sec does not performs a Node info.
                 Hold press of 30sec restores configuration except Lock Hold Press, and sends a Node info in order to add or remove from Z-Wave Network.
             </Help>
-            <Item label="Hold Press is available" value="0"/>
-            <Item label="Hold Press is Locked" value="255"/>
-        </Value>
-    </CommandClass>
-    <!-- -->
-    <CommandClass id="96" mapping="endpoints"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="3" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+      <Item label="Hold Press is available" value="0"/>
+      <Item label="Hold Press is Locked" value="255"/>
+    </Value>
+  </CommandClass>
+  <!-- -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="3"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/smartthings/pgc401m.xml b/Config/smartthings/pgc401m.xml
new file mode 100644
index 0000000000..5a02e2b34d
--- /dev/null
+++ b/Config/smartthings/pgc401m.xml
@@ -0,0 +1,15 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0150:0191:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/smartthings/pgc401m.png</MetaDataItem>
+    <MetaDataItem id="0191" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/878/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.smartthings.com/</MetaDataItem>
+    <MetaDataItem name="Name">SmartThings Hub</MetaDataItem>
+    <MetaDataItem name="Description">Hub to connect SmartThings and Z-Wave devices to the SmartThings cloud.</MetaDataItem>
+    <MetaDataItem id="0191" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0191" name="Identifier" type="0001">PGC401M</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/878/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/smartthings/sth-eth200.xml b/Config/smartthings/sth-eth200.xml
new file mode 100644
index 0000000000..3e9d7ece1d
--- /dev/null
+++ b/Config/smartthings/sth-eth200.xml
@@ -0,0 +1,38 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0150:0006:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/smartthings/sth-eth200.png</MetaDataItem>
+    <MetaDataItem id="0006" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1446/</MetaDataItem>
+    <MetaDataItem name="Name">Samsung SmartThings Hub</MetaDataItem>
+    <MetaDataItem id="0006" name="Identifier" type="0002">STH-ETH200</MetaDataItem>
+    <MetaDataItem name="Description">Whether you have two smart devices or 200, all you need is one Hub to create a smart home. Like a live-in translator, the Hub communicates with all of your different connected products–regardless of their wireless protocol– so that you can easily monitor and control them from the SmartThings app. 
+
+
+• Compatible with hundreds of smart home products
+
+• Contains ZigBee and Z-Wave radios, and is also compatible with IP-accessible devices
+
+• Enables live video recording and event-based video clip recording
+
+• Contains replacement backup batteries that allow it to continue operating in the event of a power outage
+
+• Local app processing enables faster operating time  
+
+• No hard wiring or tricky installation needed
+
+• Simply attach the power supply to the back of the Hub and plug the Ethernet cable in to your Internet router. Easy peasy.
+</MetaDataItem>
+    <MetaDataItem id="0006" name="FrequencyName" type="0002">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1446/ST_HUB_QSG_Grayscale.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">In the SmartThings mobile app, open the menu in the upper right corner and tap "My Locations." Tap the gear icon at the top right of your Hub's location to access the location settings. Scroll down and check that your Hub is listed as "Active" in the Hubs section. Also check that the LED indicator on the front of the Hub is a solid green and not blinking.
+
+At the bottom of the location settings, tap the red "Remove Location" button and confirm the removal. This will delete your location, including all devices, settings, and SmartApps. Your Hub will be reset back to a factory default state and you will need the claim code that came with your Hub to re-connect it to SmartThings.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">In the SmartThings mobile app, open the menu in the upper right corner and tap "Connect New Device." Then, tap "Connect Now."</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">In the SmartThings mobile app's "Things" tab, tap the name of the device to show the device details. Then, open the menu in the upper right and tap "Remove."
+
+Alternatively, open the menu in the upper right corner and tap "My Locations." Tap the gear icon at the top right of your Hub's location to access the location settings. Scroll down to the "Hubs" section and tap on your Hub's name, then tap "Z-Wave Utilities." Tap "General Device Exclusion" and then the "Remove" button to confirm. The hub will enter exclude mode.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1446/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/somfy/1811265_ZRTSI.xml b/Config/somfy/1811265_ZRTSI.xml
new file mode 100644
index 0000000000..3df6575f9a
--- /dev/null
+++ b/Config/somfy/1811265_ZRTSI.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+    <!--
+      Somfy 1811265 Z-Wave to RTS Interface
+      https://products.z-wavealliance.org/products/874
+    -->
+
+    <!-- Configuration Parameters -->
+    <CommandClass id="112">
+    </CommandClass>
+    <!-- Association Groups -->
+    <CommandClass id="133">
+        <Associations num_groups="1">
+            <Group index="1" max_associations="5" label="Lifeline"/>
+        </Associations>
+    </CommandClass>
+</Product>
diff --git a/Config/steinel/is140-2.xml b/Config/steinel/is140-2.xml
index cca3be3c7e..a869c87675 100644
--- a/Config/steinel/is140-2.xml
+++ b/Config/steinel/is140-2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- https://products.z-wavealliance.org/products/2310/ -->
     <!-- Configuration Parameters -->
     <CommandClass id="112">
diff --git a/Config/steinel/l810-led-ihf.xml b/Config/steinel/l810-led-ihf.xml
index caf7aae928..0aec485d45 100644
--- a/Config/steinel/l810-led-ihf.xml
+++ b/Config/steinel/l810-led-ihf.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
-    <!-- https://products.z-wavealliance.org/products/2309 -->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value genre="config" instance="1" index="BASIC" type="byte" label="Default light level" units="" size="1" min="1" max="99" value="99">
diff --git a/Config/steinel/rs-led-d2.xml b/Config/steinel/rs-led-d2.xml
index 60573f904e..4e825be1bb 100644
--- a/Config/steinel/rs-led-d2.xml
+++ b/Config/steinel/rs-led-d2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!-- https://products.z-wavealliance.org/products/2243/ -->
 	<!-- Configuration Parameters -->
     <CommandClass id="112">
diff --git a/Config/steinel/xled-home-2.xml b/Config/steinel/xled-home-2.xml
index 186082cd11..8683fa8242 100644
--- a/Config/steinel/xled-home-2.xml
+++ b/Config/steinel/xled-home-2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- https://products.z-wavealliance.org/products/2290/ -->
     <!-- Configuration Parameters -->
     <CommandClass id="112">
diff --git a/Config/stelpro/stzw402.xml b/Config/stelpro/stzw402.xml
index c0107b4284..6048d8d8ca 100644
--- a/Config/stelpro/stzw402.xml
+++ b/Config/stelpro/stzw402.xml
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
-
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="1" label="Lifeline"/>
+      <Group index="1" label="Lifeline" max_associations="1"/>
     </Associations>
   </CommandClass>
-
   <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-  <CommandClass id="67" base="0" />
-
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/tronika/zsc01d.xml b/Config/sunricher/srzv9001t4dimeu.xml
similarity index 70%
rename from Config/tronika/zsc01d.xml
rename to Config/sunricher/srzv9001t4dimeu.xml
index ea3da9fadc..4405708fb2 100644
--- a/Config/tronika/zsc01d.xml
+++ b/Config/sunricher/srzv9001t4dimeu.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
-    Z-Wave Touch Panel Wall Controller - ZSC-01D
-    https://www.tronika.no/en/index.php?controller=attachment&id_attachment=544
+    Z-Wave Wall Controller SR-ZV9001T4-DIM-EU
+    Manual: http://www.sunricher.com/media/resources/manual/Z-Wave%20Wall%20Controller%20SR-ZV9001T4-DIM-EU.pdf
     -->
 
     <!-- Association Groups -->
diff --git a/Config/sunricher/srzv9101sachpeu.xml b/Config/sunricher/srzv9101sachpeu.xml
new file mode 100644
index 0000000000..a53c2f3dc1
--- /dev/null
+++ b/Config/sunricher/srzv9101sachpeu.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+    <!--
+    In-wall Dimmer SR-ZV9101SAC-HP-EU
+    Manual: http://www.sunricher.com/media/resources/manual/SR-ZV9101SAC-HP-EU%20Instruction%20V1.pdf
+    -->
+
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" instance="1" index="2" label="Saving state before power failure" size="1" value="1">
+        <Help>
+              Saving state before power failure.
+            Default Not saved.
+        </Help>
+      <Item label="State NOT saved at power failure, all outputs are set to OFF upon power restore" value="0"/>
+      <Item label="State NOT saved at power failure, all outputs are set to ON upon power restore" value="1"/>
+      <Item label="State saved at power failure, all outputs are set to previous state upon power restore" value="2"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="3" label="Send the basic report" size="1" value="1">
+        <Help>Enable/disable to send the basic report to the Lifeline when the load state changed.
+              When value set as 1, re-power on the dimmer, it will send Basic report automatically. 
+		Default Enabled.
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="4" label="Fade time" min="0" max="255" value="1">
+        <Help>Fade time (units between 1-127 represent 1-127 seconds.
+		Units Betwen 128-244 represent minutes, 128 = 1 minute, 129 = 2 minutes.
+              This value has the same function as Duration of Multilevel). 
+		Default 1.
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="5" label="Setting minimum brightness value" min="0" max="50" value="0">
+        <Help>Setting minimum brightness value.
+              Valid value: 0 - 50, the bigger the value is, the higher the loads minimum brightness is.
+              Note: when configure this value, the value of Multilevel will be configured as 1 automatically so that users can preview the corresponding effect of minimum brightness value
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="6" label="Setting maximum brightness value" min="0" max="100" value="100">
+        <Help>Setting maximum brightness value.
+              Valid value: 0 - 100, the bigger the value is, the higher the load maximum brightness is.
+        </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="7" label="Choose MOSFET driving type" size="1" value="1">
+        <Help>
+          Choose MOSFET driving type". 
+		Default trailing edge.
+        </Help>
+      <Item label="Trailing edge" value="0"/>
+      <Item label="Leading edge" value="1"/>
+   </Value>
+   <Value type="list" genre="config" instance="1" index="8" label="External switch type" size="1" value="1">
+        <Help>
+	   Choose external switch type. 
+		Default normal on/off switch. 
+        </Help>
+      <Item label="Push button switch" value="0"/>
+      <Item label="normal on/off switch" value="1"/>
+      <Item label="3-way switch" value="2"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="9" label="External switch to be added to and removed from a network" size="1" value="1">
+        <Help>Enable/disable external switch to be added to and removed from a network.
+              When enables this function, triple press the external switch within 1.5 seconds to be added to or removed from a net-work.
+            Default Enabled.
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="10" label="Detect load after re-power on" size="1" value="0">
+        <Help>
+           Enable/disable to detect load after re-power on (detect load type, minimum brightness, maximum brightness)
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable to detect every time after re-power on" value="1"/>
+      <Item label="Enable to detect only after first re-power on" value="2"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="11" label="Wiring type" size="1" read_only="true" value="0">
+        <Help>
+           Wiring type
+        </Help>
+      <Item label="Unknown" value="0"/>
+      <Item label="2 Wire With No Neutral" value="1"/>
+      <Item label="3 Wire With Neutral" value="2"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="12" label="Load type" size="1" read_only="true" value="0">
+        <Help>
+           Load type
+        </Help>
+      <Item label="Unknown" value="0"/>
+      <Item label="Resistive" value="1"/>
+      <Item label="Inductive" value="2"/>
+      <Item label="Capacitive" value="3"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="13" label="Over current protection" size="1" value="1">
+        <Help>
+           Enable/disable over current protection (over 1.5A for 20 seconds continuously)
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="short" genre="config" instance="1" index="14" label="Power automatic report absolute threshold" size="2" units="W" value="10">
+        <Help>
+           Power automatic report absolute threshold, unit is W. 
+	   When power changes above the absolute threshold, immediately report current power value
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="15" label="Power automatic report percentage threshold" size="1" units="%"  value="20">
+        <Help>
+           Power automatic report percentage threshold, unit is %.
+           When power changes above the percentage threshold, immediately report current power value
+        </Help>
+   </Value>
+   <Value type="int" genre="config" instance="1" index="21" label="Power metering automatich report time cycle" size="4" units="second" value="600">
+        <Help>
+           Power metering automatic report time cycle, unit is second.
+	   Valid time cycle value: 5-2678400, when set as 0 report function is disabled
+        </Help>
+   </Value>
+   <Value type="int" genre="config" instance="1" index="22" label="Energy metering automatich report time cycle" size="4" value="1800">
+        <Help>
+           Energy metering automatic report time cycle, unit is second.
+           Valid time cycle value: 5-2678400, when set as 0 report function is disabled
+        </Help>
+   </Value>
+   <Value type="int" genre="config" instance="1" index="23" label="Energy metering automatich report time cycle" size="4" value="0">
+        <Help>
+           Voltage metering automatic report time cycle, unit is second.
+           Valid time cycle value: 5-2678400, when set as 0 report function is disabled
+        </Help>
+   </Value>
+   <Value type="int" genre="config" instance="1" index="24" label="Current metering automatich report time cycle" size="4" value="0">
+        <Help>
+           Current metering automatic report time cycle, unit is second.
+           Valid time cycle value: 5-2678400, when set as 0 report function is disabled
+        </Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" max_associations="1" label="Lifeline"/>
+      <Group index="2" max_associations="8" label="On/Off"/>
+      <Group index="3" max_associations="8" label="Dimmer"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/sunricher/zv9101.xml b/Config/sunricher/zv9101.xml
new file mode 100644
index 0000000000..d4ef6ebe63
--- /dev/null
+++ b/Config/sunricher/zv9101.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+    <!--
+    Nexa/Tronika ZV-9101
+    https://www.nexa.se/wp-content/uploads/2019/02/ZV-9101_manual.pdf
+    -->
+
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" instance="1" index="2" label="Saving state before power failure" size="1" value="1">
+        <Help>
+              Saving state before power failure. Default Not saved.
+        </Help>
+      <Item label="State NOT saved at power failure, all outputs are set to OFF upon power restore" value="0"/>
+      <Item label="State NOT saved at power failure, all outputs are set to ON upon power restore" value="1"/>
+      <Item label="State saved at power failure, all outputs are set to previous state upon power restore" value="2"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="3" label="Send the basic report" size="1" value="1">
+        <Help>Enable/disable to send the basic report to the Lifeline when the load state changed.
+              When value set as 1, re-power on the dimmer, it will send Basic report automatically.
+            Default Enabled.
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="4" label="Fade time" min="0" max="255" value="1">
+        <Help>Fade time (units between 1-127 represent 1-127 seconds.
+            Units Between 128-244 represent minutes, 128 = 1 minute, 129 = 2 minutes.
+              This value has the same function as Duration of Multilevel).
+            Default 1.
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="5" label="Setting minimum brightness value" min="0" max="50" value="0">
+        <Help>Setting minimum brightness value.
+              Valid value: 0 - 50, the bigger the value is, the higher the loads minimum brightness is.
+              Note: when configure this value, the value of Multilevel will be configured as 1 automatically so that users can preview the corresponding effect of minimum brightness value
+        </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="6" label="Choose MOSFET driving type" size="1" value="1">
+        <Help>
+          Choose MOSFET driving type". Default trailing edge.
+        </Help>
+      <Item label="Trailing edge" value="0"/>
+      <Item label="Leading edge" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="7" label="Enable/disable external switch to be added to and removed from a network" size="1" value="1">
+        <Help>Enable/disable external switch to be added to and removed from a network.
+              When enables this function, triple press the external switch within 1.5 seconds to be added to or removed from a net-work.
+            Default Enabled.
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" max_associations="1" label="Lifeline"/>
+      <Group index="2" max_associations="8" label="On/Off"/>
+      <Group index="3" max_associations="8" label="Dimmer"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/swiid/swiidinter.xml b/Config/swiid/swiidinter.xml
index f7d1569be9..9a9fa281db 100644
--- a/Config/swiid/swiidinter.xml
+++ b/Config/swiid/swiidinter.xml
@@ -1,22 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!-- Swiidinter (Z-Wave Cord Switch) -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0166:0100:0100</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/swiid/swiidinter.png</MetaDataItem>
+    <MetaDataItem id="0100" name="ZWProductPage" type="0100">https://products.z-wavealliance.org/products/1082/</MetaDataItem>
+    <MetaDataItem name="Name">CBCC SwiidInter - Z-Wave Cord Switch</MetaDataItem>
+    <MetaDataItem id="0100" name="Identifier" type="0100">SW-ZCS-1</MetaDataItem>
+    <MetaDataItem id="0100" name="FrequencyName" type="0100">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave cord switch</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1082/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Swiidinter (Z-Wave Cord Switch) -->
     <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Switch All" min="0" max="255" value="255" size="1">
-            <Help>Enable/Disable ALL ON/OFF</Help>
-            <Item label="Disabled" value="0" />
-            <Item label="Switch off only" value="1" />
-            <Item label="Switch on only" value="2" />
-            <Item label="Fully enabled (Default)" value="255" />
-        </Value>
-    </CommandClass>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="5" label="Long press" />
-            <Group index="2" max_associations="5" label="Short press" auto="true" />
-        </Associations>
-    </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Switch All" max="255" min="0" size="1" type="list" value="255">
+      <Help>Enable/Disable ALL ON/OFF</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch off only" value="1"/>
+      <Item label="Switch on only" value="2"/>
+      <Item label="Fully enabled (Default)" value="255"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Long press" max_associations="5"/>
+      <Group auto="true" index="2" label="Short press" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/swiid/swiidplug.xml b/Config/swiid/swiidplug.xml
index 4bac833f56..1990461e43 100644
--- a/Config/swiid/swiidplug.xml
+++ b/Config/swiid/swiidplug.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 <!-- SWIIDPLUG ADAPTER PLUG  -->
     <!-- Configuration -->
     <CommandClass id="112">
diff --git a/Config/telldus/TZWP102.xml b/Config/telldus/TZWP102.xml
index 135598a6b5..0a42f06d50 100644
--- a/Config/telldus/TZWP102.xml
+++ b/Config/telldus/TZWP102.xml
@@ -1,4 +1,4 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Telldus TZWP-102 On/Off -->
     <!-- Configuration Parameters -->
     <CommandClass id="112">
diff --git a/Config/telldus/tzdw100.xml b/Config/telldus/tzdw100.xml
index 6b793b5de5..5e1e59ab75 100644
--- a/Config/telldus/tzdw100.xml
+++ b/Config/telldus/tzdw100.xml
@@ -1,56 +1,78 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Telldus: TZDW-100 Door Opening Sensor -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="Type of command no. 2" value="0" size="1">
-			<Help>Type of input no. 2, what the input 1 will report if no contact is made</Help>
-			<Item label="Basic" value="0" />
-			<Item label="Switch Binary" value="1" />
-			<Item label="Switch All" value="2" />
-			<Item label="Switch Multilevel" value="3" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="2" label="Forced Level of Dimming group 2" min="1" max="255" value="255">
-			<Help>Possible parameter settings: (1 - 63) and 255. When setting 255 will automatically be set dimmer to the previous condition i.e 30% or what the last state was.</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Type of commands no. 2" min="0" max="1" value="0" size="1">
-			<Help>Type of commands to association group 2</Help>
-			<Item label="Normal" value="0" />
-			<Item label="Inverted" value="1" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="4" label="Type of command no. 3" value="0" size="1">
-			<Help>Type of input no. 3, what the input 3 will report if no contact is made</Help>
-			<Item label="Basic" value="0" />
-			<Item label="Switch Binary" value="1" />
-			<Item label="Switch All" value="2" />
-			<Item label="Switch Multilevel" value="3" />
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="5" label="Forced Level of Dimming group 3" min="1" max="255" value="255">
-			<Help>Possible parameter settings: (1 - 63) and 255. When setting 255 will automatically be set dimmer to the previous condition i.e 30% or what the last state was.</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="6" label="Type of commands no. 3" min="0" max="1" value="0" size="1">
-			<Help>Type of commands to association group 3</Help>
-			<Item label="Normal" value="0" />
-			<Item label="Inverted" value="1" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="7" label="Status change signalled by LED" min="0" max="1" value="1" size="1">
-			<Help>Status change signalled by LED. Default setting: LED turned On</Help>
-			<Item label="LED turned Off" value="0" />
-			<Item label="LED turned On" value="1" />
-		</Value>
-		<Value type="list" genre="config" instance="1" index="8" label="Sent in the Lifeline" min="0" max="1" value="0" size="1">
-			<Help>Select the type of command to be sent in the Lifeline</Help>
-			<Item label="Notification" value="0" />
-			<Item label="Sensor binary" value="1" />
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="1" label="Lifeline"/>
-			<Group index="2" max_associations="10" label="Sensor changes"/>
-			<Group index="3" max_associations="10" label="Opened only"/>
-		</Associations>
-	</CommandClass>
-</Product>
+<!-- Telldus: TZDW-100 Door Opening Sensor --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0176:0001:0005</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/telldus/tzdw100.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0005">https://products.z-wavealliance.org/products/1455/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Start the exclusion mode on the Z-Wave controller. Press the button on the device three times fast. The device will now be removed from the Z-Wave-network.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1455/Quickguide_Sensor_Switch_107x153mm_PMS.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Automatically add device to network
+When a battery is inserted, the device is in automatical add mode for one minute (Network Wide Inclusion, NWI). This means that the device is added automatically when the Z-Wave controller enters add mode. 
+
+Manual add device to network
+Start the add mode on the Z-Wave controller. Press the button on the device three times fast. The device will now be added into the Z-Wave-network.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press the button on the sensor one time short to wake up the device. </MetaDataItem>
+    <MetaDataItem name="Name">Door/window sensor</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the button until the LED starts flashing (approx. 6 seconds).
+Press the button once more, short. 
+The device will now reset to factory defaults. The LED will now flash, indicating that it’s no longer added in any Z-Wave network.
 
+Please note! Only use the reset procedure when the primary controller is missing or inoperable.</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0005">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0005">TZDW-100</MetaDataItem>
+    <MetaDataItem name="Description">This magnet sensor contains the latest Z-Wave technology with the ability to remotely control other Z-Wave units available in your network. The fact that it is battery operated and so small you can virtually place it anywhere you want – on doors, windows or drawers, without the need of wiring. Screw or tape up the holder and then click the sensor in place. Done! The sensor is designed to be seen as little as possible and we have made it significantly smaller than other sensors. It consists of two parts that will merge into a stylish unit when the sensor is closed.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1455/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Type of command no. 2" size="1" type="list" value="0">
+      <Help>Type of input no. 2, what the input 1 will report if no contact is made</Help>
+      <Item label="Basic" value="0"/>
+      <Item label="Switch Binary" value="1"/>
+      <Item label="Switch All" value="2"/>
+      <Item label="Switch Multilevel" value="3"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Forced Level of Dimming group 2" max="255" min="1" type="byte" value="255">
+      <Help>Possible parameter settings: (1 - 63) and 255. When setting 255 will automatically be set dimmer to the previous condition i.e 30% or what the last state was.</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Type of commands no. 2" max="1" min="0" size="1" type="list" value="0">
+      <Help>Type of commands to association group 2</Help>
+      <Item label="Normal" value="0"/>
+      <Item label="Inverted" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Type of command no. 3" size="1" type="list" value="0">
+      <Help>Type of input no. 3, what the input 3 will report if no contact is made</Help>
+      <Item label="Basic" value="0"/>
+      <Item label="Switch Binary" value="1"/>
+      <Item label="Switch All" value="2"/>
+      <Item label="Switch Multilevel" value="3"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Forced Level of Dimming group 3" max="255" min="1" type="byte" value="255">
+      <Help>Possible parameter settings: (1 - 63) and 255. When setting 255 will automatically be set dimmer to the previous condition i.e 30% or what the last state was.</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Type of commands no. 3" max="1" min="0" size="1" type="list" value="0">
+      <Help>Type of commands to association group 3</Help>
+      <Item label="Normal" value="0"/>
+      <Item label="Inverted" value="1"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Status change signalled by LED" max="1" min="0" size="1" type="list" value="1">
+      <Help>Status change signalled by LED. Default setting: LED turned On</Help>
+      <Item label="LED turned Off" value="0"/>
+      <Item label="LED turned On" value="1"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Sent in the Lifeline" max="1" min="0" size="1" type="list" value="0">
+      <Help>Select the type of command to be sent in the Lifeline</Help>
+      <Item label="Notification" value="0"/>
+      <Item label="Sensor binary" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Sensor changes" max_associations="10"/>
+      <Group index="3" label="Opened only" max_associations="10"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/telldus/tzwp100.xml b/Config/telldus/tzwp100.xml
index b4da124899..1b27bb3e09 100644
--- a/Config/telldus/tzwp100.xml
+++ b/Config/telldus/tzwp100.xml
@@ -1,4 +1,5 @@
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Telldus TZWP-100 On/Off -->
     <!-- Configuration Parameters -->
     <CommandClass id="112">
@@ -28,4 +29,4 @@
             <Group index="2" max_associations="10" label="Control other devices"/>
         </Associations>
     </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/there/800z.xml b/Config/there/800z.xml
new file mode 100644
index 0000000000..ed609913a7
--- /dev/null
+++ b/Config/there/800z.xml
@@ -0,0 +1,22 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010c:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/there/800z.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/758/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://therecorporation.com/en/platform</MetaDataItem>
+    <MetaDataItem name="Name">ThereGate Gateway Controller</MetaDataItem>
+    <MetaDataItem name="Description">ThereGate integrates different systems and equipment used in buildings and homes for remote data acquisition, control and automation. It is a hub that allows for cost efficient connection of many systems and devices to each other, to the network, to back-end systems and to the users with easy, ubiquitous interfaces. ThereGate is a development of the Nokia Home Control Center (HCC). It is a Linux based platform with open interfaces and a software engine (ThereCore™) that enables easy creation of applications and the integration of different devices, technologies and protocols. The base services (ThereWare™), once implemented for one device, are then equally available to any solution built on ThereGate – either by There Corporation or by any party developing applications that run on the gateway.
+
+Depending on the solution, connectivity may be realized in different ways. Some applications are mainly used locally, but most involve remote connections. The ThereGate concept is designed to work equally well with regular existing internet connections and the optional built in 3G modem, regardless if the user is a service provider’s system or a person browsing with a cellular phone.
+ 
+In addition to the power of limitless connectivity and local processing options ThereGate also has a full fledged Web server inside, like any powerful Linux server. This web server is connected to all the services and resources inside the gate allowing for development of local applications and displays.
+ 
+The possibility for local applications and displays &amp; user interfaces is important for a number of reasons, one of them being the interactivity and speed. To gather and display real-time information from a number of sources just doesn’t make sense any other way than locally. The amount of data in this kind of applications makes use of back-end systems or web portals too impractical and expensive. The amount and granularity of real-time or near real-time measurement data also brings along the issues of privacy – because it can reveal very much information of the property and the inhabitants. So this kind of information is best safe at home, only in the fingers of the person(s) who own it. Relevant pieces of it can then be made available for external services.</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">800Z</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/758/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/thermofloor/heatit021.xml b/Config/thermofloor/heatit021.xml
index 45623160ac..8828667ada 100644
--- a/Config/thermofloor/heatit021.xml
+++ b/Config/thermofloor/heatit021.xml
@@ -1,92 +1,162 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!-- Heatit Z-Wave thermostat TF 021 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/019B:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/thermofloor/heatit021.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1234/</MetaDataItem>
+    <MetaDataItem name="Description">Heatit Z-Wave is an electronic thermostat for mounting in a standard wall box. The thermostat has a built-in Z-Wave chip that 
+can be connected to Home Automation systems like Fibaro, Sensio, Vera, Zipato and others.
+The display will show the actual room temperature. By pressing the buttons, the display will show the set value.
+Heatit Z-Wave is equipped with a single-pole switch.
+The thermostat can handle loads up to 16A/3600Wat 230V. If the load is greater than this, the thermostat needs to be connected to a contactor. It can be used with two external temperature sensors.
 
-	<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE">
-		<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0" value="0">
-			<Item label="Off" value="0"/>
-			<Item label="Heat (Default)" value="1"/>
-			<Item label="Cool" value="2"/>
-			<Item label="Energy Heat" value="11"/>
-		</Value>
-		<SupportedModes>
-			<Mode index="0" label="Off"/>
-			<Mode index="1" label="Heat"/>
-			<Mode index="2" label="Cool"/>
-			<Mode index="11" label="Energy Heat"/>
-		</SupportedModes>
-	</CommandClass>
-
-	<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
-		<Instance index="1"/>
-		<Value type="decimal" genre="user" instance="1" index="1" label="Heating" units="C" read_only="false" write_only="false" min="5" max="40" value="20"/>
-		<Value type="decimal" genre="user" instance="1" index="2" label="Cooling" units="C" read_only="false" write_only="false" min="5" max="40" value="21"/>
-		<Value type="decimal" genre="user" instance="1" index="11" label="Energy Heat" units="C" read_only="false" write_only="false" min="5" max="40" value="16"/>
-	</CommandClass>
-
-	<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION">
-		<Value type="list" genre="config" index="1" label="Operation mode" value="1">
-			<Item label="Off" value="0"/>
-			<Item label="Heat" value="1"/>
-			<Item label="Cool" value="2"/>
-			<Item label="Energy save heat" value="11"/>
-		</Value>
-		<Value type="list" genre="config" index="2" label="Temperature sensor" value="1">
-			<Item label="F  - Floor mode" value="0"/>
-			<Item label="A  - Room temperature mode" value="1"/>
-			<Item label="AF - Room mode w/floor limitations" value="2"/>
-			<Item label="A2 - Room temperature mode" value="3"/>
-			<Item label="P  - Power regulator" value="4"/>
-			<Item label="FP - Floor mode with minimum power limitation" value="5"/>
-		</Value>
-		<Value type="list" genre="config" index="3" label="Floor sensor type" value="0">
-			<Item label="10k ntc" value="0"/>
-			<Item label="12k ntc" value="1"/>
-			<Item label="15k ntc" value="2"/>
-			<Item label="22k ntc" value="3"/>
-			<Item label="33k ntc" value="4"/>
-			<Item label="47k ntc" value="5"/>
-		</Value>
-		<Value type="short" index="4" genre="config" label="DIFF l. Temperature control Hysteresis" min="3" max="30" size="1" value="5">
-			<Help>3-30 (0.3C - 3.0C)</Help>
-		</Value>
-		<Value type="short" index="5" genre="config" label="FLo: Floor min limit" min="50" max="400" size="1" value="50">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="short" index="6" genre="config" label="FHi: Floor max limit" min="50" max="400" size="1" value="400">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="short" index="7" genre="config" label="ALo: Air min limit" min="50" max="400" size="1" value="50">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="short" index="8" genre="config" label="AHi: Air max limit" min="50" max="400" size="1" value="400">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="PLo: Min temperature in Power Reg Mode" min="0" max="9" size="1" value="0">
-			<Help>0-9. Min temperature in Power Regulator Mode (setting 2. Temperature sensor - P)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="10" label="CO mode setpoint" size="1" min="50" max="400" value="210">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="11" label="ECO mode setpoint" size="1" min="50" max="400" value="180">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="short" index="12" genre="config" label="P setting" min="0" max="10" size="1" value="2">
-			<Help>0-10</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="13" label="COOL setpoint" size="1" min="50" max="400" value="180">
-			<Help>
+FUNCTIONS
+• Room sensor
+• Floor sensor
+• Temperature limiter
+• Power regulator
+• Z-Wave chip 500 series
+• Week program/setback temperature via gateway
+• Setback mode
+• 7-segment LCD-screen
+• Can be used in connection with diff erent NTC-sensors
+• Lock mode/child lock
+• Backlight
+• Calibration
+• 8 scenarios
+CONNECTION CLAMPS
+Use 1,5 mm² or 2,5 mm² cables according to power need.
+TECHNICAL DATA
+Rated voltage: 230V 50/60Hz
+Max. load: 3600W
+Max. current: 16A
+Power consumption: 1,5W
+Protection class: IP21
+Min/Max installation temp: -20°C to 40°C
+Min/Max operating temp: 5°C to 40°C
+Temperature intervals: Floor sensor 5°C to 40°C
+Room sensor 5°C to 40°C
+Hysteresis: 0,5°C
+Sensor values: 0°C 29,1 kOhm
+10°C 18,6 kOhm
+15°C 15,1 kOhm
+20°C 12,2 kOhm
+25°C 10,0 kOhm
+Switch: Single-pole</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">INCLUSION/EXCLUSION
+To include the thermostat to your home automation gateway, press Center (confirm) for 10 seconds.
+The display will show OFF. Press Right (down) 4 times till you see Con in the display.
+Now start add device in your home automation software. Start inclusion mode by pressing Center (confirm) for approximately
+2 seconds. The inclusion/exclusion icon will appear in the display. Confirmation will show Inc/EcL in the display. If inclusion
+fails, Err (error) will appear.
+Leave programming mode by choosing ESC in menu. Your thermostat is ready for use with default settings.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1234/Manual_Multireg Z-Wave_Ver2015-A.pdf</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Heatit Z-Wave</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">TF021</MetaDataItem>
+    <MetaDataItem name="ResetDescription">FACTORY RESET - RES
+By pressing buttons Left and Center (up and confirm) for 20 seconds, the thermostat will perform a complete factory reset.
+NB! Please use this procedure only when the primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">INCLUSION/EXCLUSION
+To include the thermostat to your home automation gateway, press Center (confirm) for 10 seconds.
+The display will show OFF. Press Right (down) 4 times till you see Con in the display.
+Now start add device in your home automation software. Start inclusion mode by pressing Center (confirm) for approximately
+2 seconds. The inclusion/exclusion icon will appear in the display. Confirmation will show Inc/EcL in the display. If inclusion
+fails, Err (error) will appear.
+Leave programming mode by choosing ESC in menu. Your thermostat is ready for use with default settings.</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">If Er2 appears in the display, touch any button to restart the display.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="7">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1182/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1234/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="64">
+    <Value genre="user" index="0" instance="1" label="Mode" max="0" min="0" read_only="false" size="1" type="list" units="" value="0" write_only="false">
+      <Item label="Off" value="0"/>
+      <Item label="Heat (Default)" value="1"/>
+      <Item label="Cool" value="2"/>
+      <Item label="Energy Heat" value="11"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+      <Mode index="2" label="Cool"/>
+      <Mode index="11" label="Energy Heat"/>
+    </SupportedModes>
+    <Compatibility/>
+  </CommandClass>
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heating" max="40" min="5" read_only="false" type="decimal" units="C" value="20" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Cooling" max="40" min="5" read_only="false" type="decimal" units="C" value="21" write_only="false"/>
+    <Value genre="user" index="11" instance="1" label="Energy Heat" max="40" min="5" read_only="false" type="decimal" units="C" value="16" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Operation mode" size="1" type="list" value="1">
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+      <Item label="Cool" value="2"/>
+      <Item label="Energy save heat" value="11"/>
+    </Value>
+    <Value genre="config" index="2" label="Temperature sensor" size="1" type="list" value="1">
+      <Item label="F  - Floor mode" value="0"/>
+      <Item label="A  - Room temperature mode" value="1"/>
+      <Item label="AF - Room mode w/floor limitations" value="2"/>
+      <Item label="A2 - Room temperature mode" value="3"/>
+      <Item label="P  - Power regulator" value="4"/>
+      <Item label="FP - Floor mode with minimum power limitation" value="5"/>
+    </Value>
+    <Value genre="config" index="3" label="Floor sensor type" size="1" type="list" value="0">
+      <Item label="10k ntc" value="0"/>
+      <Item label="12k ntc" value="1"/>
+      <Item label="15k ntc" value="2"/>
+      <Item label="22k ntc" value="3"/>
+      <Item label="33k ntc" value="4"/>
+      <Item label="47k ntc" value="5"/>
+    </Value>
+    <Value genre="config" index="4" label="DIFF l. Temperature control Hysteresis" max="30" min="3" size="2" type="short" value="5">
+      <Help>3-30 (0.3C - 3.0C)</Help>
+    </Value>
+    <Value genre="config" index="5" label="FLo: Floor min limit" max="400" min="50" size="2" type="short" value="50">
+      <Help>50-400 (5.0C - 40.0C)</Help>
+    </Value>
+    <Value genre="config" index="6" label="FHi: Floor max limit" max="400" min="50" size="2" type="short" value="400">
+      <Help>50-400 (5.0C - 40.0C)</Help>
+    </Value>
+    <Value genre="config" index="7" label="ALo: Air min limit" max="400" min="50" size="2" type="short" value="50">
+      <Help>50-400 (5.0C - 40.0C)</Help>
+    </Value>
+    <Value genre="config" index="8" label="AHi: Air max limit" max="400" min="50" size="2" type="short" value="400">
+      <Help>50-400 (5.0C - 40.0C)</Help>
+    </Value>
+    <Value genre="config" index="9" label="PLo: Min temperature in Power Reg Mode" max="9" min="0" size="1" type="byte" value="0">
+      <Help>0-9. Min temperature in Power Regulator Mode (setting 2. Temperature sensor - P)</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="CO mode setpoint" max="400" min="50" size="2" type="short" value="210">
+      <Help>50-400 (5.0C - 40.0C)</Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="ECO mode setpoint" max="400" min="50" size="2" type="short" value="180">
+      <Help>50-400 (5.0C - 40.0C)</Help>
+    </Value>
+    <Value genre="config" index="12" label="P setting" max="10" min="0" size="2" type="short" value="2">
+      <Help>0-10</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="COOL setpoint" max="400" min="50" size="2" type="short" value="180">
+      <Help>
 				Only if cooling is enabled.
 				50-400 (5.0C - 40.0C)
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="1" label="Lifeline"/>
-			<Group index="2" max_associations="8" label="On/Off control"/>
-		</Associations>
-	</CommandClass>
-
+    </Value>
+    <Compatibility/>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off control" max_associations="8"/>
+    </Associations>
+    <Compatibility/>
+  </CommandClass>
 </Product>
diff --git a/Config/thermofloor/heatit033.xml b/Config/thermofloor/heatit033.xml
deleted file mode 100644
index adcd53bca9..0000000000
--- a/Config/thermofloor/heatit033.xml
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!-- Heatit Z-Wave thermostat Z-TRM2 TF 033 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE">
-		<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0" value="0">
-			<Item label="Off" value="0"/>
-			<Item label="Heat" value="1"/>
-			<Item label="Cool" value="2"/>
-			<Item label="Energy Heat" value="11"/>
-		</Value>
-		<SupportedModes>
-			<Mode index="0" label="Off"/>
-			<Mode index="1" label="Heat"/>
-			<Mode index="2" label="Cool"/>
-			<Mode index="11" label="Energy Heat"/>
-		</SupportedModes>
-	</CommandClass>
-
-	<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="1" request_flags="4" create_vars="true" base="0">
-      <Value type="decimal" genre="user" instance="1" index="1" label="Internal sensor" units="C" read_only="true" write_only="false" min="0" max="0"/>
-      <Value type="decimal" genre="user" instance="2" index="1" label="External sensor" units="C" read_only="true" write_only="false" min="0" max="0" />
-      <Value type="decimal" genre="user" instance="3" index="1" label="Floor sensor" units="C" read_only="true" write_only="false" min="0" max="0" />
-  </CommandClass>
-
-	<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
-		<Instance index="1"/>
-		<Value type="decimal" genre="user" instance="1" index="1" label="Heating" units="C" read_only="false" write_only="false" min="0" max="0" value="21"/>
-		<Value type="decimal" genre="user" instance="1" index="2" label="Cooling" units="C" read_only="false" write_only="false" min="0" max="0" value="21"/>
-		<Value type="decimal" genre="user" instance="1" index="11" label="Energy Heat" units="C" read_only="false" write_only="false" min="0" max="0" value="18"/>
-	</CommandClass>
-
-	<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION">
-		<Value type="list" genre="config" index="1" label="Operation mode" value="1">
-			<Help>Set operation mode</Help>
-			<Item label="Off" value="0"/>
-			<Item label="Heat" value="1"/>
-			<Item label="Cool" value="2"/>
-			<Item label="Energy save heat" value="11"/>
-		</Value>
-		<Value type="list" genre="config" index="2" label="Sensor mode" value="1">
-			<Help>Set sensor mode</Help>
-			<Item label="F - Floor sensor" value="0"/>
-			<Item label="A - Internal room sensor" value="1"/>
-			<Item label="AF - Internal room sensor and floor sensor" value="2"/>
-			<Item label="A2 - External room sensor" value="3"/>
-			<Item label="P - Power regulator" value="4"/>
-			<Item label="FP - Floor sensor and power regulator" value="5"/>
-		</Value>
-		<Value type="list" genre="config" index="3" label="Floor sensor type" value="0">
-			<Help>Floor sensor type (10K NTC Default)</Help>
-			<Item label="10k ntc" value="0"/>
-			<Item label="12k ntc" value="1"/>
-			<Item label="15k ntc" value="2"/>
-			<Item label="22k ntc" value="3"/>
-			<Item label="33k ntc" value="4"/>
-			<Item label="47k ntc" value="5"/>
-		</Value>
-		<Value type="byte" index="4" genre="config" label="DIFF l. Temperature control Hysteresis" min="0" max="30" size="1" value="5">
-			<Help>0-30 (0,3C - 3.0C)</Help>
-		</Value>
-		<Value type="short" index="5" genre="config" label="FLo: Floor min limit" min="50" max="400" size="2" value="50">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="short" index="6" genre="config" label="FHi: Floor max limit" min="50" max="400" size="2" value="400">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="short" index="7" genre="config" label="ALo: Air min limit" min="50" max="400" size="2" value="50">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="short" index="8" genre="config" label="AHi: Air max limit" min="50" max="400" size="2" value="400">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="PLo: Min power in FP-mode" min="0" max="9" size="1" value="0">
-			<Help>Min power 0-9 in FP-mode (Floor sensor and power regulator mode)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="10" label="CO mode setpoint" size="2" min="50" max="400" value="210">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="11" label="ECO mode setpoint" size="2" min="50" max="400" value="180">
-			<Help>50-400 (5.0C - 40.0C)</Help>
-		</Value>
-		<Value type="byte" index="12" genre="config" label="P setting" min="0" max="10" size="1" value="2">
-			<Help>Power 0-10 in P-mode (Power regulator mode)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="13" label="COOL setpoint" size="2" min="50" max="400" value="210">
-			<Help>
-				Only if cooling is enabled.
-				50-400 (5.0C - 40.0C)
-			</Help>
-		</Value>
-		<Value type="byte" index="14" genre="config" label="Room sensor calibration" min="0" max="40" size="1" value="0">
-			<Help>Temperature correction 0 - 4.0C (Default: 0). For positive value 40 = 4.0C. Negative value is not working (Adjust negativ calibration on thermostat)</Help>
-		</Value>
-		<Value type="byte" index="15" genre="config" label="Floor sensor calibration" min="0" max="40" size="1" value="0">
-			<Help>Temperature correction 0 - 4.0C (Default: 0). For positive value 40 = 4.0C. Negative value is not working (Adjust negativ calibration on thermostat)</Help>
-		</Value>
-		<Value type="byte" index="16" genre="config" label="External sensor calibration" min="0" max="40" size="1" value="0">
-			<Help>Temperature correction 0 - 4.0C (Default: 0). For positive value 40 = 4.0C. Negative value is not working (Adjust negativ calibration on thermostat)</Help>
-		</Value>
-		<Value type="list" genre="config" index="17" size="1" label="Temperature display" value="0">
-			<Help>Show setpoint or calculated temperature on display(</Help>
-			<Item label="Display setpoint temperature" value="0"/>
-			<Item label="Display calculated temperature" value="1"/>
-		</Value>
-		<Value type="byte" index="18" genre="config" label="Button brightness - Dimmed state" min="0" max="100" size="1" value="50">
-			<Help>0-100 (0 - 100%)</Help>
-		</Value>
-		<Value type="byte" index="19" genre="config" label="Button brightness - Active state" min="0" max="100" size="1" value="100">
-			<Help>0-100 (0 - 100%)</Help>
-		</Value>
-		<Value type="byte" index="20" genre="config" label="Display brightness - Dimmed state" min="0" max="100" size="1" value="50">
-			<Help>0-100 (0 - 100%)</Help>
-		</Value>
-		<Value type="byte" index="21" genre="config" label="Display brightness - Active state" min="0" max="100" size="1" value="100">
-			<Help>0-100 (0 - 100%)</Help>
-		</Value>
-		<Value type="short" index="22" genre="config" label="Temperature report interval" min="0" max="32767" size="2" value="60">
-			<Help>
-				0 (Report disabled)
-				1-32767 (1 - 32767 seconds)
-			</Help>
-		</Value>
-		<Value type="byte" index="23" genre="config" label="Temperature report hysteresis" min="1" max="100" size="1" value="10">
-			<Help>0-100 (0.1C - 10C)</Help>
-		</Value>
-		<Value type="short" index="24" genre="config" label="Meter report interval" min="0" max="32767" size="2" value="60">
-			<Help>
-				0 (Report disabled)
-				1-32767 (1 - 32767 seconds)
-			</Help>
-		</Value>
-		<Value type="byte" index="25" genre="config" label="Meter report delta" min="0" max="255" size="1" value="10">
-			<Help>0-255 (0-25.5 kWh)</Help>
-		</Value>
-	</CommandClass>
-
-	<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION">
-		<Associations num_groups="5">
-			<Group index="1" max_associations="7" label="Lifeline"/>
-			<Group index="2" max_associations="7" label="Multilevel sensor reports - Internal sensor"/>
-			<Group index="3" max_associations="7" label="Multilevel sensor reports - External sensor"/>
-			<Group index="4" max_associations="7" label="Multilevel sensor reports - Floor sensor"/>
-			<Group index="5" max_associations="7" label="On/Off switch of internal relay"/>
-		</Associations>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION_V2-->
-	<CommandClass id="142" ForceInstances="true" />
-
-	<!--COMMAND_CLASS_MULTI_CHANNEL_V2 Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
-</Product>
diff --git a/Config/thermofloor/heatit056.xml b/Config/thermofloor/heatit056.xml
index e96a99f477..191430e998 100644
--- a/Config/thermofloor/heatit056.xml
+++ b/Config/thermofloor/heatit056.xml
@@ -1,139 +1,149 @@
-<?xml version="1.0" encoding="utf-8" ?>
 <!-- 
 Heatit Z-Wave Thermostat Z-TRM2fx TF 056 
 https://products.z-wavealliance.org/products/3065
--->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE">
-		<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" min="0" max="0" value="0">
-			<Item label="Off" value="0"/>
-			<Item label="Heat" value="1"/>
-			<Item label="Cool" value="2"/>
-			<Item label="Energy Heat" value="11"/>
-		</Value>
-		<SupportedModes>
-			<Mode index="0" label="Off"/>
-			<Mode index="1" label="Heat"/>
-			<Mode index="2" label="Cool"/>
-			<Mode index="11" label="Energy Heat"/>
-		</SupportedModes>
-	</CommandClass>
-
-	<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="1" request_flags="4" create_vars="true" base="0">
-      <Value type="decimal" genre="user" instance="1" index="0" label="External sensor" units="C" read_only="true" write_only="false" min="0" max="0" />
-      <Value type="decimal" genre="user" instance="2" index="1" label="Floor sensor" units="C" read_only="true" write_only="false" min="0" max="0" />
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="64">
+    <Value genre="user" index="0" instance="1" label="Mode" max="0" min="0" read_only="false" type="list" units="" value="0" write_only="false">
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+      <Item label="Cool" value="2"/>
+      <Item label="Energy Heat" value="11"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="Off"/>
+      <Mode index="1" label="Heat"/>
+      <Mode index="2" label="Cool"/>
+      <Mode index="11" label="Energy Heat"/>
+    </SupportedModes>
+    <Compatibility/>
   </CommandClass>
-
-	<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" create_vars="true" base="0">
-		<Instance index="1"/>
-		<Value type="decimal" genre="user" instance="1" index="1" label="Heating" units="C" read_only="false" write_only="false" min="0" max="0" value="21"/>
-		<Value type="decimal" genre="user" instance="1" index="2" label="Cooling" units="C" read_only="false" write_only="false" min="0" max="0" value="21"/>
-		<Value type="decimal" genre="user" instance="1" index="11" label="Energy Heat" units="C" read_only="false" write_only="false" min="0" max="0" value="18"/>
-	</CommandClass>
-
-	<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION">
-		<Value type="list" genre="config" index="1" label="Operation mode" value="1">
-			<Help>Set operation mode</Help>
-			<Item label="Off" value="0"/>
-			<Item label="Heat" value="1"/>
-            		<Item label="Cooling Mode" value="2"/>
-			<Item label="Heat Energy Saving" value="11"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="2" label="Sensor mode" value="1">
-			<Help>Set sensor mode</Help>
-			<Item label="F - Floor sensor" value="0"/>
-			<Item label="A2 - External room sensor" value="3"/>
-            <Item label="A2F - External sensor with floor limitation" value="4"/>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="3" label="Floor sensor type" value="0">
-			<Help>Floor sensor type (10K NTC Default)</Help>
-			<Item label="10k ntc" value="0"/>
-			<Item label="12k ntc" value="1"/>
-			<Item label="15k ntc" value="2"/>
-			<Item label="22k ntc" value="3"/>
-			<Item label="33k ntc" value="4"/>
-			<Item label="47k ntc" value="5"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="Temperature control Hysteresis" min="3" max="30" size="1" value="5">
-			<Help>3-30 (0.3C - 3.0C) Default is 5 (0.5C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="5" label="Floor minimum temperature limit" min="50" max="400" size="2" value="50">
-			<Help>50-400 (5.0C - 40.0C) Default is 50 (5.0C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="6" label="Floor maximum temperature limit" min="50" max="400" size="2" value="400">
-			<Help>50-400 (5.0C - 40.0C) Default is 400 (40.0C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="7" label="Air (A2) minimum temperature limit" min="50" max="400" size="2" value="50">
-			<Help>50-400 (5.0C - 40.0C) Default is 50 (5.0C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="8" label="Air (A2) maximum temperature limit" min="50" max="400" size="2" value="400">
-			<Help>50-400 (5.0C - 40.0C) Default is 400 (40.0C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="9" label="Heating mode setpoint (CO)" min="50" max="400" size="2" value="210">
-			<Help>50 - 400 (5.0C - 40.0C) Default is 210 (21.0C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="10" label="Energy saving mode setpoint (ECO)" size="2" min="50" max="400" value="180">
-			<Help>50-400 (5.0C - 40.0C) Default is 180 (18.0C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="11" label="Cooling setpoint (COOL)" size="2" min="50" max="400" value="210">
-			<Help>50-400 (5.0C - 40.0C) Default is 210 (21.0C)</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="12" label="Floor sensor calibration" size="1" min="0" max="255" value="0">
-			<Help>-40 - 40 (-4.0C - 4.0C) Default is 0 (0.0C) To set a negative value, use 255 and subtract the desired value.</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="13" label="External sensor calibration" size="1" min="0" max="255" value="0">
-			<Help>-40 - 40 (-4.0C - 4.0C) Default is 0 (0.0C) To set a negative value, use 255 and subtract the desired value.</Help>
-		</Value>
-		<Value type="list" genre="config" instance="1" index="14" size="1" label="Temperature display" value="0">
-			<Help>Show setpoint or calculated temperature on display(</Help>
-			<Item label="Display setpoint temperature (Default)" value="0"/>
-			<Item label="Display measured temperature" value="1"/>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="15" label="Button brightness - Dimmed state" min="0" max="100" size="1" value="50">
-			<Help>0-100 (0 - 100%)</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="16" label="Button brightness - Active state" min="0" max="100" size="1" value="100">
-			<Help>0-100 (0 - 100%)</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="17" label="Display brightness - Dimmed state" min="0" max="100" size="1" value="50">
-			<Help>0-100 (0 - 100%)</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="18" label="Display brightness - Active state" min="0" max="100" size="1" value="100">
-			<Help>0-100 (0 - 100%)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="19" label="Temperature report interval" min="0" max="32767" size="2" value="60">
-			<Help>
+  <CommandClass id="49">
+    <Value genre="user" index="0" instance="1" label="External sensor" max="0" min="0" read_only="true" type="decimal" units="C" write_only="false"/>
+    <Value genre="user" index="1" instance="2" label="Floor sensor" max="0" min="0" read_only="true" type="decimal" units="C" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="21" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Cooling" max="0" min="0" read_only="false" type="decimal" units="C" value="21" write_only="false"/>
+    <Value genre="user" index="11" instance="1" label="Energy Heat" max="0" min="0" read_only="false" type="decimal" units="C" value="18" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Operation mode" type="list" value="1" size="1">
+      <Help>Set operation mode</Help>
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+      <Item label="Cooling Mode" value="2"/>
+      <Item label="Heat Energy Saving" value="11"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Sensor mode" type="list" value="1" size="1">
+      <Help>Set sensor mode</Help>
+      <Item label="F - Floor sensor" value="0"/>
+      <Item label="A2 - External room sensor" value="3"/>
+      <Item label="A2F - External sensor with floor limitation" value="4"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Floor sensor type" type="list" value="0" size="1">
+      <Help>Floor sensor type (10K NTC Default)</Help>
+      <Item label="10k ntc" value="0"/>
+      <Item label="12k ntc" value="1"/>
+      <Item label="15k ntc" value="2"/>
+      <Item label="22k ntc" value="3"/>
+      <Item label="33k ntc" value="4"/>
+      <Item label="47k ntc" value="5"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Temperature control Hysteresis" max="30" min="3" size="1" type="byte" value="5">
+      <Help>3-30 (0.3C - 3.0C) Default is 5 (0.5C)</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Floor minimum temperature limit" max="400" min="50" size="2" type="short" value="50">
+      <Help>50-400 (5.0C - 40.0C) Default is 50 (5.0C)</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Floor maximum temperature limit" max="400" min="50" size="2" type="short" value="400">
+      <Help>50-400 (5.0C - 40.0C) Default is 400 (40.0C)</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Air (A2) minimum temperature limit" max="400" min="50" size="2" type="short" value="50">
+      <Help>50-400 (5.0C - 40.0C) Default is 50 (5.0C)</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Air (A2) maximum temperature limit" max="400" min="50" size="2" type="short" value="400">
+      <Help>50-400 (5.0C - 40.0C) Default is 400 (40.0C)</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Heating mode setpoint (CO)" max="400" min="50" size="2" type="short" value="210">
+      <Help>50 - 400 (5.0C - 40.0C) Default is 210 (21.0C)</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Energy saving mode setpoint (ECO)" max="400" min="50" size="2" type="short" value="180">
+      <Help>50-400 (5.0C - 40.0C) Default is 180 (18.0C)</Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Cooling setpoint (COOL)" max="400" min="50" size="2" type="short" value="210">
+      <Help>50-400 (5.0C - 40.0C) Default is 210 (21.0C)</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Floor sensor calibration" max="255" min="0" size="1" type="byte" value="0">
+      <Help>-40 - 40 (-4.0C - 4.0C) Default is 0 (0.0C) To set a negative value, use 255 and subtract the desired value.</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="External sensor calibration" max="255" min="0" size="1" type="byte" value="0">
+      <Help>-40 - 40 (-4.0C - 4.0C) Default is 0 (0.0C) To set a negative value, use 255 and subtract the desired value.</Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Temperature display" size="1" type="list" value="0">
+      <Help>Show setpoint or calculated temperature on display(</Help>
+      <Item label="Display setpoint temperature (Default)" value="0"/>
+      <Item label="Display measured temperature" value="1"/>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Button brightness - Dimmed state" max="100" min="0" size="1" type="byte" value="50">
+      <Help>0-100 (0 - 100%)</Help>
+    </Value>
+    <Value genre="config" index="16" instance="1" label="Button brightness - Active state" max="100" min="0" size="1" type="byte" value="100">
+      <Help>0-100 (0 - 100%)</Help>
+    </Value>
+    <Value genre="config" index="17" instance="1" label="Display brightness - Dimmed state" max="100" min="0" size="1" type="byte" value="50">
+      <Help>0-100 (0 - 100%)</Help>
+    </Value>
+    <Value genre="config" index="18" instance="1" label="Display brightness - Active state" max="100" min="0" size="1" type="byte" value="100">
+      <Help>0-100 (0 - 100%)</Help>
+    </Value>
+    <Value genre="config" index="19" instance="1" label="Temperature report interval" max="32767" min="0" size="2" type="short" value="60">
+      <Help>
 				0 (Report disabled)
 				30-32767 (30-32767 seconds)
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="20" label="Temperature report hysteresis" min="1" max="100" size="1" value="10">
-			<Help>0-100 (0.1C - 10.0C) Default is 10 (1.0C)</Help>
-		</Value>
-		<Value type="short" genre="config" instance="1" index="21" label="Meter report interval" min="0" max="32767" size="2" value="60">
-			<Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Temperature report hysteresis" max="100" min="1" size="1" type="byte" value="10">
+      <Help>0-100 (0.1C - 10.0C) Default is 10 (1.0C)</Help>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Meter report interval" max="32767" min="0" size="2" type="short" value="60">
+      <Help>
 				0 (Report disabled)
 				30-32767 (30-32767 seconds)
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="22" label="Meter report delta value" min="0" max="255" size="1" value="10">
-			<Help>0-127 A delta value of 0 - 12.7 kWh will result in a metering report. Default is 10 (1.0 kWh)</Help>
-		</Value>
-	</CommandClass>
-
-	<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION">
-		<Associations num_groups="4">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-			<Group index="2" max_associations="5" label="Multilevel sensor reports - External sensor"/>
-			<Group index="3" max_associations="5" label="Multilevel sensor reports - Floor sensor"/>
-			<Group index="4" max_associations="5" label="On/Off switch of internal relay"/>
-		</Associations>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION_V2-->
-	<CommandClass id="142" ForceInstances="true" />
-
-	<!--COMMAND_CLASS_MULTI_CHANNEL_V2 Map endpoints to instances -->
-	<CommandClass id="96" mapping="endpoints" />
-
+    </Value>
+    <Value genre="config" index="22" instance="1" label="Meter report delta value" max="255" min="0" size="1" type="byte" value="10">
+      <Help>0-127 A delta value of 0 - 12.7 kWh will result in a metering report. Default is 10 (1.0 kWh)</Help>
+    </Value>
+    <Compatibility/>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Multilevel sensor reports - External sensor" max_associations="5"/>
+      <Group index="3" label="Multilevel sensor reports - Floor sensor" max_associations="5"/>
+      <Group index="4" label="On/Off switch of internal relay" max_associations="5"/>
+    </Associations>
+    <Compatibility/>
+  </CommandClass>
+  <!-- COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION_V2-->
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+  <!--COMMAND_CLASS_MULTI_CHANNEL_V2 Map endpoints to instances -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/trane/TZEMT400AB32MAA.xml b/Config/trane/TZEMT400AB32MAA.xml
index 97f84e2af3..14d8f172c4 100644
--- a/Config/trane/TZEMT400AB32MAA.xml
+++ b/Config/trane/TZEMT400AB32MAA.xml
@@ -1,248 +1,243 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/008B:5431:5452</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/trane/TZEMT400AB32MAA.png</MetaDataItem>
+    <MetaDataItem id="5431" name="ZWProductPage" type="5452">https://products.z-wavealliance.org/products/109/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://nexiahome.com/SupportCenter/Pages/supportcenter.aspx?page=support</MetaDataItem>
+    <MetaDataItem name="Description">Create the perfect climate in your home, at the perfect time, which is anytime now that there are Nexia™ Home Intelligence and Trane® ComfortLink™ thermostats. Away on vacation or business, you can check your home’s temperature settings and adjust to save energy. Heading home from the beach? Turn up the a/c so it’s nice and cool when you arrive. As the weather changes, so can your pre-set heating and cooling schedules, with a touch or a click. Now you have remote capability to control your home’s comfort and efficiency quite easily via most web-accessible computers, tablets or smart phones.
 
-	<!-- Trane Thermostat Model TZEMT400AB32MAA -->
+This product is only available through a participating Trane Dealer.
+This product is only available in the U.S. and Canada
+</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://nexiahome.com/Products/ProductDetail.aspx?model=ComfortLink</MetaDataItem>
+    <MetaDataItem name="Name">Trane T400A</MetaDataItem>
+    <MetaDataItem id="5431" name="FrequencyName" type="5452">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="5431" name="Identifier" type="5452">T400A</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/109/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Trane Thermostat Model TZEMT400AB32MAA -->
 
 	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-	  <Value type="byte" index="1" genre="config" label="System Type" units="" min="0" max="1" value="0">
-	    <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="System Type" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = Gas/Elec, 1 = HeatPump
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="2" genre="config" label="Fan Type" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="2" label="Fan Type" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = Gas, 1 = Elec
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="3" genre="config" label="Change Over Type" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="3" label="Change Over Type" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = w/Cool, 1 = w/Heat
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="4" genre="config" label="F/C Units" units="" min="0" max="1" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="4" label="F/C Units" max="1" min="0" type="byte" units="" value="1">
+      <Help>
 	      0 = C, 1 = F
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="5" genre="config" label="Unknown-5" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="9" genre="config" label="Display Lock" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="5" label="Unknown-5" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="9" label="Display Lock" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = Unlocked, 1 = Locked
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="10" genre="config" label="Minimum Off Time" units="minutes" min="5" max="9" value="5">
-	    <Help>
+    </Value>
+    <Value genre="config" index="10" label="Minimum Off Time" max="9" min="5" type="byte" units="minutes" value="5">
+      <Help>
 	      Sets the minimum off time before another heating/cooling cycle can begin to provide compressor short cycle protection.  The thermostat screen will display WAIT when minimum off time is being enforced.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="11" genre="config" label="Minimum Run Time" units="minutes" min="1" max="9" value="6">
-	    <Help>
+    </Value>
+    <Value genre="config" index="11" label="Minimum Run Time" max="9" min="1" type="byte" units="minutes" value="6">
+      <Help>
 	      Sets the minimum run time before a heating/cooling cycle can turn off to prevent rapid cycling.  Thermostat screen will display "Cool ON" or "Heat ON" while the minimum run time is being enforced.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="12" genre="config" label="Heating Delta Stage 1 ON" units="degrees" min="1" max="8" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="12" label="Heating Delta Stage 1 ON" max="8" min="1" type="byte" units="degrees" value="1">
+      <Help>
 	      Sets the delta from setpoint that stage 1 heating starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="13" genre="config" label="Heating Delta Stage 1 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="13" label="Heating Delta Stage 1 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 1 heating stops. Stage 1 turns off at setpoint minus (-) Delta Stage 1.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="14" genre="config" label="Heating Delta Stage 2 ON" units="degrees" min="1" max="8" value="2">
-	    <Help>
+    </Value>
+    <Value genre="config" index="14" label="Heating Delta Stage 2 ON" max="8" min="1" type="byte" units="degrees" value="2">
+      <Help>
 	      Sets the delta from setpoint that stage 2 heating starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="15" genre="config" label="Heating Delta Stage 2 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="15" label="Heating Delta Stage 2 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 2 heating stops. Stage 1 turns off at setpoint minus (-) Delta Stage 2.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="16" genre="config" label="Heating Delta Stage 3 ON" units="degrees" min="1" max="8" value="3">
-	    <Help>
+    </Value>
+    <Value genre="config" index="16" label="Heating Delta Stage 3 ON" max="8" min="1" type="byte" units="degrees" value="3">
+      <Help>
 	      Sets the delta from setpoint that stage 3 heating starts.
 			</Help>
-	  </Value>
-	  <Value type="byte" index="17" genre="config" label="Heating Delta Stage 3 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="17" label="Heating Delta Stage 3 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 3 heating stops. Stage 1 turns off at setpoint minus (-) Delta Stage 3.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="18" genre="config" label="Cooling Delta Stage 1 ON" units="degrees" min="1" max="8" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="18" label="Cooling Delta Stage 1 ON" max="8" min="1" type="byte" units="degrees" value="1">
+      <Help>
 	      Sets the delta from setpoint that stage 1 cooling starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="19" genre="config" label="Cooling Delta Stage 1 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="19" label="Cooling Delta Stage 1 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 1 cooling stops. Stage 1 turns off at setpoint minus (-) Delta Stage 1.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="20" genre="config" label="Cooling Delta Stage 2 ON" units="degrees" min="1" max="8" value="2">
-	    <Help>
+    </Value>
+    <Value genre="config" index="20" label="Cooling Delta Stage 2 ON" max="8" min="1" type="byte" units="degrees" value="2">
+      <Help>
 	      Sets the delta from setpoint that stage 2 cooling starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="21" genre="config" label="Cooling Delta Stage 2 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="21" label="Cooling Delta Stage 2 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 2 cooling stops. Stage 1 turns off at setpoint minus (-) Delta Stage 2.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="22" genre="config" label="Unknown-22" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="23" genre="config" label="Unknown-23" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="24" genre="config" label="H/C Delta" units="degrees" min="3" max="15" value="3">
-	    <Help>
+    </Value>
+    <Value genre="config" index="22" label="Unknown-22" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="23" label="Unknown-23" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="24" label="H/C Delta" max="15" min="3" type="byte" units="degrees" value="3">
+      <Help>
 	      Sets the minimum separation between the heating and cooling setpoints.  Attempts to lower the cooling below the heating setpoint by this amount will PUSH the heating setpoint down to maintain this separation. Same for setting the heating setpoint above the cooling setpoint, it will PUSH the cooling setpoint up to maintain this separation. Settings in F.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="25" genre="config" label="SetBack Mode" units="" min="0" max="2" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="25" label="SetBack Mode" max="2" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = No Setback, 1 = Setback, 2 if ESM
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="26" genre="config" label="Unknown-26" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="27" genre="config" label="Unknown-27" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="28" genre="config" label="Unknown-28" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="29" genre="config" label="ESM Setpoint--Heating" units="degrees" min="" max="" value="65">
-	    <Help>
+    </Value>
+    <Value genre="config" index="26" label="Unknown-26" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="27" label="Unknown-27" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="28" label="Unknown-28" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="29" label="ESM Setpoint--Heating" max="" min="" type="byte" units="degrees" value="65">
+      <Help>
 	      Energy Saving Mode (ESM) Setpoints are the setpoints used when the Energy Saving Mode schedule is selected in the Schedule Mode screen (or via Z-Wave control). Setting in F.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="30" genre="config" label="ESM Setpoint--Cooling" units="degrees" min="" max="" value="80">
-	    <Help>
+    </Value>
+    <Value genre="config" index="30" label="ESM Setpoint--Cooling" max="" min="" type="byte" units="degrees" value="80">
+      <Help>
 	      Energy Saving Mode (ESM) Setpoints are the setpoints used when the Energy Saving Mode schedule is selected in the Schedule Mode screen (or via Z-Wave control).
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="31" genre="config" label="Unknown-31" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="32" genre="config" label="Unknown-32" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="33" genre="config" label="Unknown-33" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="34" genre="config" label="Unknown-34" units="" min="" max="" value="3">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="35" genre="config" label="Unknown-35" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="36" genre="config" label="Unknown-36" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="37" genre="config" label="Unknown-37" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="69" genre="config" label="Unknown-69" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="74" genre="config" label="Unknown-74" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="75" genre="config" label="Fan ON Time" units="minutes" min="0" max="120" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="31" label="Unknown-31" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="32" label="Unknown-32" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="33" label="Unknown-33" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="34" label="Unknown-34" max="" min="" type="byte" units="" value="3">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="35" label="Unknown-35" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="36" label="Unknown-36" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="37" label="Unknown-37" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="69" label="Unknown-69" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="74" label="Unknown-74" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="75" label="Fan ON Time" max="120" min="0" type="byte" units="minutes" value="0">
+      <Help>
 	      The fan cycler function cycles the HVAC system fan for an ON period followed by an OFF period continuously. Used to provide minimum air ventilation requirements. When the Fan ON time is set to a value greater than 0, an additional Cycler Fan mode is present when pressing the FAN button on the thermostat.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="76" genre="config" label="Fan OFF Time" units="minutes" min="10" max="120" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="76" label="Fan OFF Time" max="120" min="10" type="byte" units="minutes" value="0">
+      <Help>
 	      The fan cycler function cycles the HVAC system fan for an ON period followed by an OFF period continuously. Used to provide minimum air ventilation requirements. When the Fan ON time is set to a value greater than 0, an additional Cycler Fan mode is present when pressing the FAN button on the thermostat.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="77" genre="config" label="2nd Stage Heat Enable" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="77" label="2nd Stage Heat Enable" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = no 2nd stage heat, 1 = 2nd stage heat.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="78" genre="config" label="Aux Heat Enable" units="" min="0" max="1" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="78" label="Aux Heat Enable" max="1" min="0" type="byte" units="" value="1">
+      <Help>
 	      0 = no aux heat, 1 = aux heat enabled.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="79" genre="config" label="2nd Stage Cool Enable" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="79" label="2nd Stage Cool Enable" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = no 2nd stage cool, 1 = 2nd stage cool
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="128" genre="config" label="Unknown-128" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="129" genre="config" label="Unknown-129" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="130" genre="config" label="Unknown-130" units="" min="" max="" value="90">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="131" genre="config" label="Unknown-131" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="132" genre="config" label="Run Schedule" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="128" label="Unknown-128" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="129" label="Unknown-129" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="130" label="Unknown-130" max="" min="" type="byte" units="" value="90">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="131" label="Unknown-131" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="132" label="Run Schedule" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      Set to 1 if running schedule (RUN is displayed on the thermostat screen).
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="133" genre="config" label="Unknown-133" units="" min="" max="" value="13">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="134" genre="config" label="Cooling 1 Setpoint" units="degrees" min="" max="" value="80">
-	    <Help>
+    </Value>
+    <Value genre="config" index="133" label="Unknown-133" max="" min="" type="byte" units="" value="13">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="134" label="Cooling 1 Setpoint" max="" min="" type="byte" units="degrees" value="80">
+      <Help>
 	      Default:  
 	      HOLD   80F / 26C
 	      RUN    84F / xxC
 	      ESM
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="135" genre="config" label="Unknown-135" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="136" genre="config" label="Heating 1 Setpoint" units="degrees" min="" max="" value="60">
-	    <Help>
+    </Value>
+    <Value genre="config" index="135" label="Unknown-135" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="136" label="Heating 1 Setpoint" max="" min="" type="byte" units="degrees" value="60">
+      <Help>
 	      Heating 1 Setpoint (does this vary with ESM, etc. or is this for the "Hold" setting?
 	      Default:
 	      HOLD   55F / 13C
 	      RUN    60F / xxC
 	      ESM    64F / xxC (unless parameter xx has been changed)
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="137" genre="config" label="Backlight Timeout" units="seconds" min="0" max="120" value="30">
-	    <Help>
+    </Value>
+    <Value genre="config" index="137" label="Backlight Timeout" max="120" min="0" type="byte" units="seconds" value="30">
+      <Help>
 	      Backlight Timeout is the time (in seconds) from the last 
 	      button press to the backlight going out.  The time-out
 	      can be set between 0 and 120
@@ -250,326 +245,276 @@
 	      always on.
 	      Default:  30
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="138" genre="config" label="Max Heat Setpoint" units="degrees" min="55" max="90" value="90">
-	    <Help>
+    </Value>
+    <Value genre="config" index="138" label="Max Heat Setpoint" max="90" min="55" type="byte" units="degrees" value="90">
+      <Help>
 	      Sets the maximum heating setpoint value.  Will not ramp
 	      or accept setpoints higher than this maximum.
 	      Minimum:  55F / xxC
 	      Maximum:  90F / xxC
 	      Default:  90F / 32C
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="139" genre="config" label="Min Cool Setpoint" units="degrees" min="60" max="99" value="60">
-	    <Help>
+    </Value>
+    <Value genre="config" index="139" label="Min Cool Setpoint" max="99" min="60" type="byte" units="degrees" value="60">
+      <Help>
 	      Sets the minimum cooling setpoint value.  Will not ramp
 	      or accept setpoints lower than this minimum.
 	      Minimum:  60F / xxC
 	      Maximum:  99F / xxC
 	      Default:  60F / 15C
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="140" genre="config" label="Unknown-140" units="" min="" max="" value="10">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="141" genre="config" label="Screen Timeout" units="seconds" min="0" max="120" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="140" label="Unknown-140" max="" min="" type="byte" units="" value="10">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="141" label="Screen Timeout" max="120" min="0" type="byte" units="seconds" value="0">
+      <Help>
 	      This is the time before any screen reverts to the Minimized
 	      Screen (temperature display only), after you stop pushing
 	      buttons.  Minimized Screen feature is disabled by setting this
 	      time to 0. 
 	      Default:  0 
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="142" genre="config" label="Unknown-142" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="143" genre="config" label="Sensor (Internal) Offset" units="degrees" min="-7" max="+7" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="142" label="Unknown-142" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="143" label="Sensor (Internal) Offset" max="+7" min="-7" type="byte" units="degrees" value="0">
+      <Help>
 	      The internal temperature sensor can be calibrated to report
 	      values different from its actual reading.  The offset can
 	      range from -7 degrees to +7 degrees.
 	      Default:  0
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="144" genre="config" label="Unknown-144" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="145" genre="config" label="Unknown-145" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="146" genre="config" label="Unknown-146" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="147" genre="config" label="Unknown-147" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="148" genre="config" label="Screen Contrast" units="" min="0" max="20" value="10">
-	    <Help>
+    </Value>
+    <Value genre="config" index="144" label="Unknown-144" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="145" label="Unknown-145" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="146" label="Unknown-146" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="147" label="Unknown-147" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="148" label="Screen Contrast" max="20" min="0" type="byte" units="" value="10">
+      <Help>
 	      The Screen Contrast sets the contrast level of the LCD display.
 	      The contrast can be set between 0 and 20.  If the display 
 	      is too light, use a higher number.  If dark lines appear on 
 	      the screen, use a lower number.
 	      Default:  10
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="161" genre="config" label="Unknown-161" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="162" genre="config" label="Unknown-162" units="" min="" max="" value="30">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="163" genre="config" label="Unknown-163" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="166" genre="config" label="Unknown-166" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="167" genre="config" label="Unknown-167" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="162" genre="config" label="Unknown-162" units="" min="" max="" value="30">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="169" genre="config" label="Unknown-169" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="170" genre="config" label="Unknown-170" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="171" genre="config" label="Unknown-171" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="161" label="Unknown-161" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="162" label="Unknown-162" max="" min="" type="byte" units="" value="30">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="163" label="Unknown-163" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="166" label="Unknown-166" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="167" label="Unknown-167" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="162" label="Unknown-162" max="" min="" type="byte" units="" value="30">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="169" label="Unknown-169" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="170" label="Unknown-170" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="171" label="Unknown-171" max="" min="" type="byte" units="">
+      <Help>
 	      0x2c after reset
 	      0xf4 after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="172" genre="config" label="Unknown-172" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="172" label="Unknown-172" max="" min="" type="byte" units="">
+      <Help>
 	      0x2c after reset
 	      0xf4 after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="173" genre="config" label="Unknown-173" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="174" genre="config" label="Unknown-174" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="175" genre="config" label="Unknown-175" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="176" genre="config" label="Unknown-176" units="" min="" max="" value="44">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="177" genre="config" label="Unknown-177" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="178" genre="config" label="Unknown-178" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="179" genre="config" label="Unknown-179" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="180" genre="config" label="Unknown-180" units="" min="" max="" value="44">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="181" genre="config" label="Unknown-181" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="182" genre="config" label="Unknown-182" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="183" genre="config" label="Unknown-183" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="173" label="Unknown-173" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="174" label="Unknown-174" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="175" label="Unknown-175" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="176" label="Unknown-176" max="" min="" type="byte" units="" value="44">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="177" label="Unknown-177" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="178" label="Unknown-178" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="179" label="Unknown-179" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="180" label="Unknown-180" max="" min="" type="byte" units="" value="44">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="181" label="Unknown-181" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="182" label="Unknown-182" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="183" label="Unknown-183" max="" min="" type="byte" units="">
+      <Help>
 	      0xb8 after reset
 	      0xe4 after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="184" genre="config" label="Unknown-184" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="184" label="Unknown-184" max="" min="" type="byte" units="">
+      <Help>
 	      0xb8 after reset
 	      0xe4 after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="185" genre="config" label="Schedule Enable" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="185" label="Schedule Enable" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      When enabled (set to 1), the local thermostat's scheduler 
 	      function is enabled.
 	      Default:  0
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="186" genre="config" label="Unknown-186" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="187" genre="config" label="Unknown-187" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="190" genre="config" label="Unknown-190" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="191" genre="config" label="Unknown-191" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="192" genre="config" label="Unknown-192" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="186" label="Unknown-186" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="187" label="Unknown-187" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="190" label="Unknown-190" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="191" label="Unknown-191" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="192" label="Unknown-192" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="193" genre="config" label="Unknown-193" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="194" genre="config" label="Unknown-194" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="195" genre="config" label="Unknown-195" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="193" label="Unknown-193" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="194" label="Unknown-194" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="195" label="Unknown-195" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="196" genre="config" label="Unknown-196" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="197" genre="config" label="Unknown-197" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="198" genre="config" label="Unknown-198" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="196" label="Unknown-196" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="197" label="Unknown-197" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="198" label="Unknown-198" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="199" genre="config" label="Unknown-199" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="200" genre="config" label="Unknown-200" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="201" genre="config" label="Unknown-201" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="199" label="Unknown-199" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="200" label="Unknown-200" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="201" label="Unknown-201" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="202" genre="config" label="Unknown-202" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="203" genre="config" label="Unknown-203" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="204" genre="config" label="Unknown-204" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="202" label="Unknown-202" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="203" label="Unknown-203" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="204" label="Unknown-204" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="205" genre="config" label="Unknown-205" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="206" genre="config" label="Unknown-206" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="207" genre="config" label="Unknown-207" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="205" label="Unknown-205" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="206" label="Unknown-206" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="207" label="Unknown-207" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="208" genre="config" label="Unknown-208" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="209" genre="config" label="Unknown-209" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="210" genre="config" label="Unknown-210" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="208" label="Unknown-208" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="209" label="Unknown-209" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="210" label="Unknown-210" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="211" genre="config" label="Unknown-211" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="212" genre="config" label="Unknown-212" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="213" genre="config" label="Unknown-213" units="" min="" max="" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="211" label="Unknown-211" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="212" label="Unknown-212" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="213" label="Unknown-213" max="" min="" type="byte" units="" value="1">
+      <Help>
 	      Recovery enable?
 	      Default:  1
 	      0x00
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="214" genre="config" label="Unknown-214" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="215" genre="config" label="Unknown-215" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="216" genre="config" label="Unknown-216" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="217" genre="config" label="Unknown-217" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="218" genre="config" label="Unknown-218" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="219" genre="config" label="Unknown-219" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="220" genre="config" label="Unknown-220" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="221" genre="config" label="Unknown-221" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="int" index="228" genre="config" label="Schedule Sun-1" units="" min="" max="" value="100681283">
-	    <Help>
+    </Value>
+    <Value genre="config" index="214" label="Unknown-214" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="215" label="Unknown-215" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="216" label="Unknown-216" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="217" label="Unknown-217" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="218" label="Unknown-218" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="219" label="Unknown-219" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="220" label="Unknown-220" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="221" label="Unknown-221" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="228" label="Schedule Sun-1" max="" min="" type="int" units="" value="100681283">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Sundays.
 	      
@@ -581,9 +526,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="229" genre="config" label="Schedule Sun-2" units="" min="" max="" value="134233685">
-	    <Help>
+    </Value>
+    <Value genre="config" index="229" label="Schedule Sun-2" max="" min="" type="int" units="" value="134233685">
+      <Help>
 	      This value holds information about the second schedule
 	      setpoints for Sundays.
 	      
@@ -595,9 +540,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="230" genre="config" label="Schedule Sun-3" units="" min="" max="" value="302007886">
-	    <Help>
+    </Value>
+    <Value genre="config" index="230" label="Schedule Sun-3" max="" min="" type="int" units="" value="302007886">
+      <Help>
 	      This value holds information about the third schedule
 	      setpoints for Sundays.
 	      
@@ -609,9 +554,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="231" genre="config" label="Schedule Sun-4" units="" min="" max="" value="369114706">
-	    <Help>
+    </Value>
+    <Value genre="config" index="231" label="Schedule Sun-4" max="" min="" type="int" units="" value="369114706">
+      <Help>
 	      This value holds information about the fourth schedule
 	      setpoints for Sundays.
 	      
@@ -623,9 +568,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="232" genre="config" label="Schedule Mon-1" units="" min="" max="" value="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="232" label="Schedule Mon-1" max="" min="" type="int" units="" value="">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Mondays.
 	      
@@ -637,9 +582,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="233" genre="config" label="Schedule Mon-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="233" label="Schedule Mon-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule
 	      setpoints for Mondays.
 	      
@@ -651,9 +596,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="234" genre="config" label="Schedule Mon-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="234" label="Schedule Mon-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule
 	      setpoints for Mondays.
 	      
@@ -665,9 +610,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="235" genre="config" label="Schedule Mon-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="235" label="Schedule Mon-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule
 	      setpoints for Mondays.
 	      
@@ -679,9 +624,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="236" genre="config" label="Schedule Tue-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="236" label="Schedule Tue-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Tuesdays.
 	      
@@ -693,9 +638,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="237" genre="config" label="Schedule Tue-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="237" label="Schedule Tue-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule
 	      setpoints for Tuesdays.
 	      
@@ -707,9 +652,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="238" genre="config" label="Schedule Tue-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="238" label="Schedule Tue-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule
 	      setpoints for Tuesdays.
 	      
@@ -721,9 +666,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="239" genre="config" label="Schedule Tue-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="239" label="Schedule Tue-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule
 	      setpoints for Tuesdays.
 	      
@@ -735,9 +680,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="240" genre="config" label="Schedule Wed-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="240" label="Schedule Wed-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Wednesdays.
 	      
@@ -749,9 +694,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="241" genre="config" label="Schedule Wed-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="241" label="Schedule Wed-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Wednesdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -762,9 +707,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="242" genre="config" label="Schedule Wed-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="242" label="Schedule Wed-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Wednesdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -775,9 +720,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="243" genre="config" label="Schedule Wed-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="243" label="Schedule Wed-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Wednesdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -788,9 +733,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="244" genre="config" label="Schedule Thu-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="244" label="Schedule Thu-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule setpoints for Thursdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -801,9 +746,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="245" genre="config" label="Schedule Thu-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="245" label="Schedule Thu-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Thursdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -814,9 +759,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="246" genre="config" label="Schedule Thu-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="246" label="Schedule Thu-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Thursdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -827,9 +772,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="247" genre="config" label="Schedule Thu-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="247" label="Schedule Thu-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Thursdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -840,9 +785,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="248" genre="config" label="Schedule Fri-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="248" label="Schedule Fri-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule setpoints for Fridays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -853,9 +798,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="249" genre="config" label="Schedule Fri-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="249" label="Schedule Fri-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Fridays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -866,9 +811,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="250" genre="config" label="Schedule Fri-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="250" label="Schedule Fri-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Fridays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -879,9 +824,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="251" genre="config" label="Schedule Fri-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="251" label="Schedule Fri-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Fridays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -892,9 +837,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="252" genre="config" label="Schedule Sat-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="252" label="Schedule Sat-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule setpoints for Saturdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -905,9 +850,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="253" genre="config" label="Schedule Sat-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="253" label="Schedule Sat-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Saturdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -918,9 +863,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="254" genre="config" label="Schedule Sat-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="254" label="Schedule Sat-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Saturdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -931,9 +876,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="255" genre="config" label="Schedule Sat-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="255" label="Schedule Sat-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Saturdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -944,12 +889,14 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	</CommandClass>
-	
-	<!-- Association Groups -->
-	<CommandClass id="133">
-	</CommandClass>
-	<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-	<CommandClass id="67" base="0" />
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133"></CommandClass>
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/trane/TZEMT400BB32MAA.xml b/Config/trane/TZEMT400BB32MAA.xml
index f8903f3881..dbc8f55298 100644
--- a/Config/trane/TZEMT400BB32MAA.xml
+++ b/Config/trane/TZEMT400BB32MAA.xml
@@ -1,248 +1,237 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Trane Thermostat Model TZEMT400BB32MAA -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/008B:5433:5452</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/trane/TZEMT400BB32MAA.png</MetaDataItem>
+    <MetaDataItem id="5433" name="ZWProductPage" type="5452">https://products.z-wavealliance.org/products/107/</MetaDataItem>
+    <MetaDataItem id="5433" name="FrequencyName" type="5452">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Trane T500A - Thermostat</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave enabled programmable communicating thermostat.</MetaDataItem>
+    <MetaDataItem id="5433" name="Identifier" type="5452">Trane T500A</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/107/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Trane Thermostat Model TZEMT400BB32MAA -->
 
 	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-	  <Value type="byte" index="1" genre="config" label="System Type" units="" min="0" max="1" value="0">
-	    <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="System Type" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = Gas/Elec, 1 = HeatPump
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="2" genre="config" label="Fan Type" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="2" label="Fan Type" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = Gas, 1 = Elec
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="3" genre="config" label="Change Over Type" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="3" label="Change Over Type" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = w/Cool, 1 = w/Heat
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="4" genre="config" label="F/C Units" units="" min="0" max="1" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="4" label="F/C Units" max="1" min="0" type="byte" units="" value="1">
+      <Help>
 	      0 = C, 1 = F
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="5" genre="config" label="Unknown-5" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="9" genre="config" label="Display Lock" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="5" label="Unknown-5" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="9" label="Display Lock" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = Unlocked, 1 = Locked
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="10" genre="config" label="Minimum Off Time" units="minutes" min="5" max="9" value="5">
-	    <Help>
+    </Value>
+    <Value genre="config" index="10" label="Minimum Off Time" max="9" min="5" type="byte" units="minutes" value="5">
+      <Help>
 	      Sets the minimum off time before another heating/cooling cycle can begin to provide compressor short cycle protection.  The thermostat screen will display WAIT when minimum off time is being enforced.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="11" genre="config" label="Minimum Run Time" units="minutes" min="1" max="9" value="6">
-	    <Help>
+    </Value>
+    <Value genre="config" index="11" label="Minimum Run Time" max="9" min="1" type="byte" units="minutes" value="6">
+      <Help>
 	      Sets the minimum run time before a heating/cooling cycle can turn off to prevent rapid cycling.  Thermostat screen will display "Cool ON" or "Heat ON" while the minimum run time is being enforced.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="12" genre="config" label="Heating Delta Stage 1 ON" units="degrees" min="1" max="8" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="12" label="Heating Delta Stage 1 ON" max="8" min="1" type="byte" units="degrees" value="1">
+      <Help>
 	      Sets the delta from setpoint that stage 1 heating starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="13" genre="config" label="Heating Delta Stage 1 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="13" label="Heating Delta Stage 1 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 1 heating stops. Stage 1 turns off at setpoint minus (-) Delta Stage 1.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="14" genre="config" label="Heating Delta Stage 2 ON" units="degrees" min="1" max="8" value="2">
-	    <Help>
+    </Value>
+    <Value genre="config" index="14" label="Heating Delta Stage 2 ON" max="8" min="1" type="byte" units="degrees" value="2">
+      <Help>
 	      Sets the delta from setpoint that stage 2 heating starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="15" genre="config" label="Heating Delta Stage 2 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="15" label="Heating Delta Stage 2 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 2 heating stops. Stage 1 turns off at setpoint minus (-) Delta Stage 2.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="16" genre="config" label="Heating Delta Stage 3 ON" units="degrees" min="1" max="8" value="3">
-	    <Help>
+    </Value>
+    <Value genre="config" index="16" label="Heating Delta Stage 3 ON" max="8" min="1" type="byte" units="degrees" value="3">
+      <Help>
 	      Sets the delta from setpoint that stage 3 heating starts.
 			</Help>
-	  </Value>
-	  <Value type="byte" index="17" genre="config" label="Heating Delta Stage 3 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="17" label="Heating Delta Stage 3 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 3 heating stops. Stage 1 turns off at setpoint minus (-) Delta Stage 3.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="18" genre="config" label="Cooling Delta Stage 1 ON" units="degrees" min="1" max="8" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="18" label="Cooling Delta Stage 1 ON" max="8" min="1" type="byte" units="degrees" value="1">
+      <Help>
 	      Sets the delta from setpoint that stage 1 cooling starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="19" genre="config" label="Cooling Delta Stage 1 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="19" label="Cooling Delta Stage 1 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 1 cooling stops. Stage 1 turns off at setpoint minus (-) Delta Stage 1.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="20" genre="config" label="Cooling Delta Stage 2 ON" units="degrees" min="1" max="8" value="2">
-	    <Help>
+    </Value>
+    <Value genre="config" index="20" label="Cooling Delta Stage 2 ON" max="8" min="1" type="byte" units="degrees" value="2">
+      <Help>
 	      Sets the delta from setpoint that stage 2 cooling starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="21" genre="config" label="Cooling Delta Stage 2 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="21" label="Cooling Delta Stage 2 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 2 cooling stops. Stage 1 turns off at setpoint minus (-) Delta Stage 2.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="22" genre="config" label="Unknown-22" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="23" genre="config" label="Unknown-23" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="24" genre="config" label="H/C Delta" units="degrees" min="3" max="15" value="3">
-	    <Help>
+    </Value>
+    <Value genre="config" index="22" label="Unknown-22" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="23" label="Unknown-23" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="24" label="H/C Delta" max="15" min="3" type="byte" units="degrees" value="3">
+      <Help>
 	      Sets the minimum separation between the heating and cooling setpoints.  Attempts to lower the cooling below the heating setpoint by this amount will PUSH the heating setpoint down to maintain this separation. Same for setting the heating setpoint above the cooling setpoint, it will PUSH the cooling setpoint up to maintain this separation. Settings in F.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="25" genre="config" label="SetBack Mode" units="" min="0" max="2" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="25" label="SetBack Mode" max="2" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = No Setback, 1 = Setback, 2 if ESM
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="26" genre="config" label="Unknown-26" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="27" genre="config" label="Unknown-27" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="28" genre="config" label="Unknown-28" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="29" genre="config" label="ESM Setpoint--Heating" units="degrees" min="" max="" value="65">
-	    <Help>
+    </Value>
+    <Value genre="config" index="26" label="Unknown-26" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="27" label="Unknown-27" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="28" label="Unknown-28" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="29" label="ESM Setpoint--Heating" max="" min="" type="byte" units="degrees" value="65">
+      <Help>
 	      Energy Saving Mode (ESM) Setpoints are the setpoints used when the Energy Saving Mode schedule is selected in the Schedule Mode screen (or via Z-Wave control). Setting in F.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="30" genre="config" label="ESM Setpoint--Cooling" units="degrees" min="" max="" value="80">
-	    <Help>
+    </Value>
+    <Value genre="config" index="30" label="ESM Setpoint--Cooling" max="" min="" type="byte" units="degrees" value="80">
+      <Help>
 	      Energy Saving Mode (ESM) Setpoints are the setpoints used when the Energy Saving Mode schedule is selected in the Schedule Mode screen (or via Z-Wave control).
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="31" genre="config" label="Unknown-31" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="32" genre="config" label="Unknown-32" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="33" genre="config" label="Unknown-33" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="34" genre="config" label="Unknown-34" units="" min="" max="" value="3">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="35" genre="config" label="Unknown-35" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="36" genre="config" label="Unknown-36" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="37" genre="config" label="Unknown-37" units="" min="" max="" value="5">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="69" genre="config" label="Unknown-69" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="74" genre="config" label="Unknown-74" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="75" genre="config" label="Fan ON Time" units="minutes" min="0" max="120" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="31" label="Unknown-31" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="32" label="Unknown-32" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="33" label="Unknown-33" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="34" label="Unknown-34" max="" min="" type="byte" units="" value="3">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="35" label="Unknown-35" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="36" label="Unknown-36" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="37" label="Unknown-37" max="" min="" type="byte" units="" value="5">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="69" label="Unknown-69" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="74" label="Unknown-74" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="75" label="Fan ON Time" max="120" min="0" type="byte" units="minutes" value="0">
+      <Help>
 	      The fan cycler function cycles the HVAC system fan for an ON period followed by an OFF period continuously. Used to provide minimum air ventilation requirements. When the Fan ON time is set to a value greater than 0, an additional Cycler Fan mode is present when pressing the FAN button on the thermostat.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="76" genre="config" label="Fan OFF Time" units="minutes" min="10" max="120" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="76" label="Fan OFF Time" max="120" min="10" type="byte" units="minutes" value="0">
+      <Help>
 	      The fan cycler function cycles the HVAC system fan for an ON period followed by an OFF period continuously. Used to provide minimum air ventilation requirements. When the Fan ON time is set to a value greater than 0, an additional Cycler Fan mode is present when pressing the FAN button on the thermostat.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="77" genre="config" label="2nd Stage Heat Enable" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="77" label="2nd Stage Heat Enable" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = no 2nd stage heat, 1 = 2nd stage heat.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="78" genre="config" label="Aux Heat Enable" units="" min="0" max="1" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="78" label="Aux Heat Enable" max="1" min="0" type="byte" units="" value="1">
+      <Help>
 	      0 = no aux heat, 1 = aux heat enabled.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="79" genre="config" label="2nd Stage Cool Enable" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="79" label="2nd Stage Cool Enable" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      0 = no 2nd stage cool, 1 = 2nd stage cool
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="128" genre="config" label="Unknown-128" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="129" genre="config" label="Unknown-129" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="130" genre="config" label="Unknown-130" units="" min="" max="" value="90">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="131" genre="config" label="Unknown-131" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="132" genre="config" label="Run Schedule" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="128" label="Unknown-128" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="129" label="Unknown-129" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="130" label="Unknown-130" max="" min="" type="byte" units="" value="90">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="131" label="Unknown-131" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="132" label="Run Schedule" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      Set to 1 if running schedule (RUN is displayed on the thermostat screen).
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="133" genre="config" label="Unknown-133" units="" min="" max="" value="13">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="134" genre="config" label="Cooling 1 Setpoint" units="degrees" min="" max="" value="80">
-	    <Help>
+    </Value>
+    <Value genre="config" index="133" label="Unknown-133" max="" min="" type="byte" units="" value="13">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="134" label="Cooling 1 Setpoint" max="" min="" type="byte" units="degrees" value="80">
+      <Help>
 	      Default:  
 	      HOLD   80F / 26C
 	      RUN    84F / xxC
 	      ESM
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="135" genre="config" label="Unknown-135" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="136" genre="config" label="Heating 1 Setpoint" units="degrees" min="" max="" value="60">
-	    <Help>
+    </Value>
+    <Value genre="config" index="135" label="Unknown-135" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="136" label="Heating 1 Setpoint" max="" min="" type="byte" units="degrees" value="60">
+      <Help>
 	      Heating 1 Setpoint (does this vary with ESM, etc. or is this for the "Hold" setting?
 	      Default:
 	      HOLD   55F / 13C
 	      RUN    60F / xxC
 	      ESM    64F / xxC (unless parameter xx has been changed)
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="137" genre="config" label="Backlight Timeout" units="seconds" min="0" max="120" value="30">
-	    <Help>
+    </Value>
+    <Value genre="config" index="137" label="Backlight Timeout" max="120" min="0" type="byte" units="seconds" value="30">
+      <Help>
 	      Backlight Timeout is the time (in seconds) from the last 
 	      button press to the backlight going out.  The time-out
 	      can be set between 0 and 120
@@ -250,326 +239,276 @@
 	      always on.
 	      Default:  30
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="138" genre="config" label="Max Heat Setpoint" units="degrees" min="55" max="90" value="90">
-	    <Help>
+    </Value>
+    <Value genre="config" index="138" label="Max Heat Setpoint" max="90" min="55" type="byte" units="degrees" value="90">
+      <Help>
 	      Sets the maximum heating setpoint value.  Will not ramp
 	      or accept setpoints higher than this maximum.
 	      Minimum:  55F / xxC
 	      Maximum:  90F / xxC
 	      Default:  90F / 32C
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="139" genre="config" label="Min Cool Setpoint" units="degrees" min="60" max="99" value="60">
-	    <Help>
+    </Value>
+    <Value genre="config" index="139" label="Min Cool Setpoint" max="99" min="60" type="byte" units="degrees" value="60">
+      <Help>
 	      Sets the minimum cooling setpoint value.  Will not ramp
 	      or accept setpoints lower than this minimum.
 	      Minimum:  60F / xxC
 	      Maximum:  99F / xxC
 	      Default:  60F / 15C
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="140" genre="config" label="Unknown-140" units="" min="" max="" value="10">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="141" genre="config" label="Screen Timeout" units="seconds" min="0" max="120" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="140" label="Unknown-140" max="" min="" type="byte" units="" value="10">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="141" label="Screen Timeout" max="120" min="0" type="byte" units="seconds" value="0">
+      <Help>
 	      This is the time before any screen reverts to the Minimized
 	      Screen (temperature display only), after you stop pushing
 	      buttons.  Minimized Screen feature is disabled by setting this
 	      time to 0. 
 	      Default:  0 
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="142" genre="config" label="Unknown-142" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="143" genre="config" label="Sensor (Internal) Offset" units="degrees" min="-7" max="+7" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="142" label="Unknown-142" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="143" label="Sensor (Internal) Offset" max="+7" min="-7" type="byte" units="degrees" value="0">
+      <Help>
 	      The internal temperature sensor can be calibrated to report
 	      values different from its actual reading.  The offset can
 	      range from -7 degrees to +7 degrees.
 	      Default:  0
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="144" genre="config" label="Unknown-144" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="145" genre="config" label="Unknown-145" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="146" genre="config" label="Unknown-146" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="147" genre="config" label="Unknown-147" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="148" genre="config" label="Screen Contrast" units="" min="0" max="20" value="10">
-	    <Help>
+    </Value>
+    <Value genre="config" index="144" label="Unknown-144" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="145" label="Unknown-145" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="146" label="Unknown-146" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="147" label="Unknown-147" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="148" label="Screen Contrast" max="20" min="0" type="byte" units="" value="10">
+      <Help>
 	      The Screen Contrast sets the contrast level of the LCD display.
 	      The contrast can be set between 0 and 20.  If the display 
 	      is too light, use a higher number.  If dark lines appear on 
 	      the screen, use a lower number.
 	      Default:  10
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="161" genre="config" label="Unknown-161" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="162" genre="config" label="Unknown-162" units="" min="" max="" value="30">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="163" genre="config" label="Unknown-163" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="166" genre="config" label="Unknown-166" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="167" genre="config" label="Unknown-167" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="162" genre="config" label="Unknown-162" units="" min="" max="" value="30">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="169" genre="config" label="Unknown-169" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="170" genre="config" label="Unknown-170" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="171" genre="config" label="Unknown-171" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="161" label="Unknown-161" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="162" label="Unknown-162" max="" min="" type="byte" units="" value="30">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="163" label="Unknown-163" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="166" label="Unknown-166" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="167" label="Unknown-167" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="162" label="Unknown-162" max="" min="" type="byte" units="" value="30">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="169" label="Unknown-169" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="170" label="Unknown-170" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="171" label="Unknown-171" max="" min="" type="byte" units="">
+      <Help>
 	      0x2c after reset
 	      0xf4 after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="172" genre="config" label="Unknown-172" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="172" label="Unknown-172" max="" min="" type="byte" units="">
+      <Help>
 	      0x2c after reset
 	      0xf4 after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="173" genre="config" label="Unknown-173" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="174" genre="config" label="Unknown-174" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="175" genre="config" label="Unknown-175" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="176" genre="config" label="Unknown-176" units="" min="" max="" value="44">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="177" genre="config" label="Unknown-177" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="178" genre="config" label="Unknown-178" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="179" genre="config" label="Unknown-179" units="" min="" max="" value="1">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="180" genre="config" label="Unknown-180" units="" min="" max="" value="44">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="181" genre="config" label="Unknown-181" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="182" genre="config" label="Unknown-182" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="183" genre="config" label="Unknown-183" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="173" label="Unknown-173" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="174" label="Unknown-174" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="175" label="Unknown-175" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="176" label="Unknown-176" max="" min="" type="byte" units="" value="44">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="177" label="Unknown-177" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="178" label="Unknown-178" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="179" label="Unknown-179" max="" min="" type="byte" units="" value="1">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="180" label="Unknown-180" max="" min="" type="byte" units="" value="44">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="181" label="Unknown-181" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="182" label="Unknown-182" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="183" label="Unknown-183" max="" min="" type="byte" units="">
+      <Help>
 	      0xb8 after reset
 	      0xe4 after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="184" genre="config" label="Unknown-184" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="184" label="Unknown-184" max="" min="" type="byte" units="">
+      <Help>
 	      0xb8 after reset
 	      0xe4 after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="185" genre="config" label="Schedule Enable" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="185" label="Schedule Enable" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      When enabled (set to 1), the local thermostat's scheduler 
 	      function is enabled.
 	      Default:  0
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="186" genre="config" label="Unknown-186" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="187" genre="config" label="Unknown-187" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="190" genre="config" label="Unknown-190" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="191" genre="config" label="Unknown-191" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="192" genre="config" label="Unknown-192" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="186" label="Unknown-186" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="187" label="Unknown-187" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="190" label="Unknown-190" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="191" label="Unknown-191" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="192" label="Unknown-192" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="193" genre="config" label="Unknown-193" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="194" genre="config" label="Unknown-194" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="195" genre="config" label="Unknown-195" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="193" label="Unknown-193" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="194" label="Unknown-194" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="195" label="Unknown-195" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="196" genre="config" label="Unknown-196" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="197" genre="config" label="Unknown-197" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="198" genre="config" label="Unknown-198" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="196" label="Unknown-196" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="197" label="Unknown-197" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="198" label="Unknown-198" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="199" genre="config" label="Unknown-199" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="200" genre="config" label="Unknown-200" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="201" genre="config" label="Unknown-201" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="199" label="Unknown-199" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="200" label="Unknown-200" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="201" label="Unknown-201" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="202" genre="config" label="Unknown-202" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="203" genre="config" label="Unknown-203" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="204" genre="config" label="Unknown-204" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="202" label="Unknown-202" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="203" label="Unknown-203" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="204" label="Unknown-204" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="205" genre="config" label="Unknown-205" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="206" genre="config" label="Unknown-206" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="207" genre="config" label="Unknown-207" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="205" label="Unknown-205" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="206" label="Unknown-206" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="207" label="Unknown-207" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="208" genre="config" label="Unknown-208" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="209" genre="config" label="Unknown-209" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="210" genre="config" label="Unknown-210" units="" min="" max="" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="208" label="Unknown-208" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="209" label="Unknown-209" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="210" label="Unknown-210" max="" min="" type="byte" units="" value="0">
+      <Help>
 	      0xff after reset
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="211" genre="config" label="Unknown-211" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="212" genre="config" label="Unknown-212" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="213" genre="config" label="Unknown-213" units="" min="" max="" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="211" label="Unknown-211" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="212" label="Unknown-212" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="213" label="Unknown-213" max="" min="" type="byte" units="" value="1">
+      <Help>
 	      Recovery enable?
 	      Default:  1
 	      0x00
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="214" genre="config" label="Unknown-214" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="215" genre="config" label="Unknown-215" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="216" genre="config" label="Unknown-216" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="217" genre="config" label="Unknown-217" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="218" genre="config" label="Unknown-218" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="219" genre="config" label="Unknown-219" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="220" genre="config" label="Unknown-220" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="byte" index="221" genre="config" label="Unknown-221" units="" min="" max="" value="0">
-	    <Help>
-	    </Help>
-	  </Value>
-	  <Value type="int" index="228" genre="config" label="Schedule Sun-1" units="" min="" max="" value="100681283">
-	    <Help>
+    </Value>
+    <Value genre="config" index="214" label="Unknown-214" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="215" label="Unknown-215" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="216" label="Unknown-216" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="217" label="Unknown-217" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="218" label="Unknown-218" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="219" label="Unknown-219" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="220" label="Unknown-220" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="221" label="Unknown-221" max="" min="" type="byte" units="" value="0">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="228" label="Schedule Sun-1" max="" min="" type="int" units="" value="100681283">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Sundays.
 	      
@@ -581,9 +520,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="229" genre="config" label="Schedule Sun-2" units="" min="" max="" value="134233685">
-	    <Help>
+    </Value>
+    <Value genre="config" index="229" label="Schedule Sun-2" max="" min="" type="int" units="" value="134233685">
+      <Help>
 	      This value holds information about the second schedule
 	      setpoints for Sundays.
 	      
@@ -595,9 +534,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="230" genre="config" label="Schedule Sun-3" units="" min="" max="" value="302007886">
-	    <Help>
+    </Value>
+    <Value genre="config" index="230" label="Schedule Sun-3" max="" min="" type="int" units="" value="302007886">
+      <Help>
 	      This value holds information about the third schedule
 	      setpoints for Sundays.
 	      
@@ -609,9 +548,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="231" genre="config" label="Schedule Sun-4" units="" min="" max="" value="369114706">
-	    <Help>
+    </Value>
+    <Value genre="config" index="231" label="Schedule Sun-4" max="" min="" type="int" units="" value="369114706">
+      <Help>
 	      This value holds information about the fourth schedule
 	      setpoints for Sundays.
 	      
@@ -623,9 +562,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="232" genre="config" label="Schedule Mon-1" units="" min="" max="" value="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="232" label="Schedule Mon-1" max="" min="" type="int" units="" value="">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Mondays.
 	      
@@ -637,9 +576,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="233" genre="config" label="Schedule Mon-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="233" label="Schedule Mon-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule
 	      setpoints for Mondays.
 	      
@@ -651,9 +590,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="234" genre="config" label="Schedule Mon-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="234" label="Schedule Mon-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule
 	      setpoints for Mondays.
 	      
@@ -665,9 +604,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="235" genre="config" label="Schedule Mon-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="235" label="Schedule Mon-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule
 	      setpoints for Mondays.
 	      
@@ -679,9 +618,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="236" genre="config" label="Schedule Tue-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="236" label="Schedule Tue-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Tuesdays.
 	      
@@ -693,9 +632,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="237" genre="config" label="Schedule Tue-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="237" label="Schedule Tue-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule
 	      setpoints for Tuesdays.
 	      
@@ -707,9 +646,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="238" genre="config" label="Schedule Tue-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="238" label="Schedule Tue-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule
 	      setpoints for Tuesdays.
 	      
@@ -721,9 +660,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="239" genre="config" label="Schedule Tue-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="239" label="Schedule Tue-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule
 	      setpoints for Tuesdays.
 	      
@@ -735,9 +674,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="240" genre="config" label="Schedule Wed-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="240" label="Schedule Wed-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Wednesdays.
 	      
@@ -749,9 +688,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="241" genre="config" label="Schedule Wed-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="241" label="Schedule Wed-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Wednesdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -762,9 +701,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="242" genre="config" label="Schedule Wed-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="242" label="Schedule Wed-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Wednesdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -775,9 +714,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="243" genre="config" label="Schedule Wed-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="243" label="Schedule Wed-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Wednesdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -788,9 +727,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="244" genre="config" label="Schedule Thu-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="244" label="Schedule Thu-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule setpoints for Thursdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -801,9 +740,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="245" genre="config" label="Schedule Thu-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="245" label="Schedule Thu-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Thursdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -814,9 +753,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="246" genre="config" label="Schedule Thu-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="246" label="Schedule Thu-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Thursdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -827,9 +766,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="247" genre="config" label="Schedule Thu-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="247" label="Schedule Thu-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Thursdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -840,9 +779,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="248" genre="config" label="Schedule Fri-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="248" label="Schedule Fri-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule setpoints for Fridays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -853,9 +792,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="249" genre="config" label="Schedule Fri-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="249" label="Schedule Fri-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Fridays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -866,9 +805,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="250" genre="config" label="Schedule Fri-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="250" label="Schedule Fri-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Fridays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -879,9 +818,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="251" genre="config" label="Schedule Fri-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="251" label="Schedule Fri-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Fridays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -892,9 +831,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="252" genre="config" label="Schedule Sat-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="252" label="Schedule Sat-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule setpoints for Saturdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -905,9 +844,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="253" genre="config" label="Schedule Sat-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="253" label="Schedule Sat-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Saturdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -918,9 +857,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="254" genre="config" label="Schedule Sat-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="254" label="Schedule Sat-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Saturdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -931,9 +870,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="255" genre="config" label="Schedule Sat-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="255" label="Schedule Sat-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Saturdays.
 	      
 	      Byte 1: Hour   (0-23)
@@ -944,12 +883,14 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	</CommandClass>
-	
-	<!-- Association Groups -->
-	<CommandClass id="133">
-	</CommandClass>
-	<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-	<CommandClass id="67" base="0" />
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133"></CommandClass>
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/trane/TZEMT524AA21MA.xml b/Config/trane/TZEMT524AA21MA.xml
index 694590ac5b..b976eee7c3 100644
--- a/Config/trane/TZEMT524AA21MA.xml
+++ b/Config/trane/TZEMT524AA21MA.xml
@@ -1,177 +1,187 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Trane Thermostat Model TZEMT524AA21MA -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/008B:5439:5452</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/trane/TZEMT524AA21MA.png</MetaDataItem>
+    <MetaDataItem id="5439" name="ZWProductPage" type="5452">https://products.z-wavealliance.org/products/837/</MetaDataItem>
+    <MetaDataItem name="Name">XL624/XR624 Thermostat</MetaDataItem>
+    <MetaDataItem id="5439" name="Identifier" type="5452">XL624/XR624</MetaDataItem>
+    <MetaDataItem id="5439" name="FrequencyName" type="5452">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave Thermostat</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/837/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Trane Thermostat Model TZEMT524AA21MA -->
 
 	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-	  <Value type="list" index="1" genre="config" label="System Type" units="" min="0" max="1" size="1" value="0">
-	    <Help></Help>
-	    <Item label="Gas/Electric" value="0" />
-	    <Item label="HeatPump" value="1" />
-	  </Value>
-	  <Value type="list" index="2" genre="config" label="Fan Type" units="" min="0" max="1" size="1" value="0">
-	    <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="System Type" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help></Help>
+      <Item label="Gas/Electric" value="0"/>
+      <Item label="HeatPump" value="1"/>
+    </Value>
+    <Value genre="config" index="2" label="Fan Type" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
 	      0 = Gas, 1 = Elec
 	    </Help>
-	    <Item label="Gas" value="0" />
-	    <Item label="Electric" value="1" />
-	  </Value>
-	  <Value type="list" index="3" genre="config" label="Change Over Type" units="" min="0" max="1" size="1" value="0">
-	    <Help></Help>
-	    <Item label="w/Cool" value="0" />
-	    <Item label="w/Heat" value="1" />
-	  </Value>
-	  <Value type="list" index="4" genre="config" label="Units" units="" min="0" max="1" size="1" value="1">
-	    <Help></Help>
-	    <Item label="Celsius" value="0" />
-	    <Item label="Fahrenheit" value="1" />
-	  </Value>
-	  <Value type="list" index="9" genre="config" label="Display Lock" units="" min="0" max="1" size="1" value="0">
-	    <Help></Help>
-	    <Item label="Unlocked" value="0" />
-	    <Item label="Locked" value="1" />
-	  </Value>
-	  <Value type="byte" index="10" genre="config" label="Minimum Off Time" units="minutes" min="5" max="9" value="5">
-	    <Help>
+      <Item label="Gas" value="0"/>
+      <Item label="Electric" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="Change Over Type" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help></Help>
+      <Item label="w/Cool" value="0"/>
+      <Item label="w/Heat" value="1"/>
+    </Value>
+    <Value genre="config" index="4" label="Units" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help></Help>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="9" label="Display Lock" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help></Help>
+      <Item label="Unlocked" value="0"/>
+      <Item label="Locked" value="1"/>
+    </Value>
+    <Value genre="config" index="10" label="Minimum Off Time" max="9" min="5" type="byte" units="minutes" value="5">
+      <Help>
 	      Sets the minimum off time before another heating/cooling cycle can begin to provide compressor short cycle protection.  The thermostat screen will display WAIT when minimum off time is being enforced.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="11" genre="config" label="Minimum Run Time" units="minutes" min="1" max="9" value="6">
-	    <Help>
+    </Value>
+    <Value genre="config" index="11" label="Minimum Run Time" max="9" min="1" type="byte" units="minutes" value="6">
+      <Help>
 	      Sets the minimum run time before a heating/cooling cycle can turn off to prevent rapid cycling.  Thermostat screen will display "Cool ON" or "Heat ON" while the minimum run time is being enforced.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="12" genre="config" label="Heating Delta Stage 1 ON" units="degrees" min="1" max="8" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="12" label="Heating Delta Stage 1 ON" max="8" min="1" type="byte" units="degrees" value="1">
+      <Help>
 	      Sets the delta from setpoint that stage 1 heating starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="13" genre="config" label="Heating Delta Stage 1 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="13" label="Heating Delta Stage 1 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 1 heating stops. Stage 1 turns off at setpoint minus (-) Delta Stage 1.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="14" genre="config" label="Heating Delta Stage 2 ON" units="degrees" min="1" max="8" value="2">
-	    <Help>
+    </Value>
+    <Value genre="config" index="14" label="Heating Delta Stage 2 ON" max="8" min="1" type="byte" units="degrees" value="2">
+      <Help>
 	      Sets the delta from setpoint that stage 2 heating starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="15" genre="config" label="Heating Delta Stage 2 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="15" label="Heating Delta Stage 2 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 2 heating stops. Stage 1 turns off at setpoint minus (-) Delta Stage 2.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="16" genre="config" label="Heating Delta Stage 3 ON" units="degrees" min="1" max="8" value="3">
-	    <Help>
+    </Value>
+    <Value genre="config" index="16" label="Heating Delta Stage 3 ON" max="8" min="1" type="byte" units="degrees" value="3">
+      <Help>
 	      Sets the delta from setpoint that stage 3 heating starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="17" genre="config" label="Heating Delta Stage 3 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="17" label="Heating Delta Stage 3 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 3 heating stops. Stage 1 turns off at setpoint minus (-) Delta Stage 3.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="18" genre="config" label="Cooling Delta Stage 1 ON" units="degrees" min="1" max="8" value="1">
-	    <Help>
+    </Value>
+    <Value genre="config" index="18" label="Cooling Delta Stage 1 ON" max="8" min="1" type="byte" units="degrees" value="1">
+      <Help>
 	      Sets the delta from setpoint that stage 1 cooling starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="19" genre="config" label="Cooling Delta Stage 1 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="19" label="Cooling Delta Stage 1 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 1 cooling stops. Stage 1 turns off at setpoint minus (-) Delta Stage 1.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="20" genre="config" label="Cooling Delta Stage 2 ON" units="degrees" min="1" max="8" value="2">
-	    <Help>
+    </Value>
+    <Value genre="config" index="20" label="Cooling Delta Stage 2 ON" max="8" min="1" type="byte" units="degrees" value="2">
+      <Help>
 	      Sets the delta from setpoint that stage 2 cooling starts.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="21" genre="config" label="Cooling Delta Stage 2 OFF" units="degrees" min="0" max="8" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="21" label="Cooling Delta Stage 2 OFF" max="8" min="0" type="byte" units="degrees" value="0">
+      <Help>
 	      Sets the delta from setpoint that stage 2 cooling stops. Stage 1 turns off at setpoint minus (-) Delta Stage 2.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="24" genre="config" label="H/C Delta" units="degrees" min="3" max="15" value="3">
-	    <Help>
+    </Value>
+    <Value genre="config" index="24" label="H/C Delta" max="15" min="3" type="byte" units="degrees" value="3">
+      <Help>
 	      Sets the minimum separation between the heating and cooling setpoints.  Attempts to lower the cooling below the heating setpoint by this amount will PUSH the heating setpoint down to maintain this separation. Same for setting the heating setpoint above the cooling setpoint, it will PUSH the cooling setpoint up to maintain this separation. Settings in F.
 	    </Help>
-	  </Value>
-	  <Value type="list" index="25" genre="config" label="SetBack Mode" units="" min="0" max="2" size="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="25" label="SetBack Mode" max="2" min="0" size="1" type="list" units="" value="0">
+      <Help>
 	      0 = No Setback, 1 = Setback, 2 if ESM
 	    </Help>
-	    <Item label="No Setback" value="0" />
-	    <Item label="Setback" value="1" />
-	    <Item label="ESM" value="2" />
-	  </Value>
-	  <Value type="byte" index="29" genre="config" label="ESM Setpoint--Heating" units="degrees" min="" max="" value="65">
-	    <Help>
+      <Item label="No Setback" value="0"/>
+      <Item label="Setback" value="1"/>
+      <Item label="ESM" value="2"/>
+    </Value>
+    <Value genre="config" index="29" label="ESM Setpoint--Heating" max="" min="" type="byte" units="degrees" value="65">
+      <Help>
 	      Energy Saving Mode (ESM) Setpoints are the setpoints used when the Energy Saving Mode schedule is selected in the Schedule Mode screen (or via Z-Wave control). Setting in F.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="30" genre="config" label="ESM Setpoint--Cooling" units="degrees" min="" max="" value="80">
-	    <Help>
+    </Value>
+    <Value genre="config" index="30" label="ESM Setpoint--Cooling" max="" min="" type="byte" units="degrees" value="80">
+      <Help>
 	      Energy Saving Mode (ESM) Setpoints are the setpoints used when the Energy Saving Mode schedule is selected in the Schedule Mode screen (or via Z-Wave control).
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="75" genre="config" label="Fan ON Time" units="minutes" min="0" max="120" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="75" label="Fan ON Time" max="120" min="0" type="byte" units="minutes" value="0">
+      <Help>
 	      The fan cycler function cycles the HVAC system fan for an ON period followed by an OFF period continuously. Used to provide minimum air ventilation requirements. When the Fan ON time is set to a value greater than 0, an additional Cycler Fan mode is present when pressing the FAN button on the thermostat.
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="76" genre="config" label="Fan OFF Time" units="minutes" min="10" max="120" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="76" label="Fan OFF Time" max="120" min="10" type="byte" units="minutes" value="0">
+      <Help>
 	      The fan cycler function cycles the HVAC system fan for an ON period followed by an OFF period continuously. Used to provide minimum air ventilation requirements. When the Fan ON time is set to a value greater than 0, an additional Cycler Fan mode is present when pressing the FAN button on the thermostat.
 	    </Help>
-	  </Value>
-	  <Value type="list" index="77" genre="config" label="2nd Stage Heat Enable" units="" min="0" max="1" size="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="77" label="2nd Stage Heat Enable" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
 	      0 = no 2nd stage heat, 1 = 2nd stage heat.
 	    </Help>
-	    <Item label="no 2nd stage heat" value="0" />
-	    <Item label="2nd stage heat" value="1" />
-	  </Value>
-	  <Value type="list" index="78" genre="config" label="Aux Heat Enable" units="" min="0" max="1" size="1" value="1">
-	    <Help>
+      <Item label="no 2nd stage heat" value="0"/>
+      <Item label="2nd stage heat" value="1"/>
+    </Value>
+    <Value genre="config" index="78" label="Aux Heat Enable" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
 	      0 = no aux heat, 1 = aux heat enabled.
 	    </Help>
-	    <Item label="no aux heat" value="0" />
-	    <Item label="aux heat enabled" value="1" />
-	  </Value>
-	  <Value type="list" index="79" genre="config" label="2nd Stage Cool Enable" units="" min="0" max="1" size="1" value="0">
-	    <Help>
+      <Item label="no aux heat" value="0"/>
+      <Item label="aux heat enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="79" label="2nd Stage Cool Enable" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
 	      0 = no 2nd stage cool, 1 = 2nd stage cool
 	    </Help>
-	    <Item label="no 2nd stage cool" value="0" />
-	    <Item label="2nd stage cool" value="1" />
-	  </Value>
-	  <Value type="list" index="132" genre="config" label="Run Schedule" units="" min="" max="" size="1" value="0">
-	    <Help>
+      <Item label="no 2nd stage cool" value="0"/>
+      <Item label="2nd stage cool" value="1"/>
+    </Value>
+    <Value genre="config" index="132" label="Run Schedule" max="" min="" size="1" type="list" units="" value="0">
+      <Help>
 	      Set to 1 if running schedule (RUN is displayed on the thermostat screen).
 	    </Help>
-	    <Item label="not running schedule" value="0" />
-	    <Item label="running schedule" value="1" />
-	  </Value>
-	  <Value type="byte" index="134" genre="config" label="Cooling 1 Setpoint" units="degrees" min="" max="" value="80">
-	    <Help>
+      <Item label="not running schedule" value="0"/>
+      <Item label="running schedule" value="1"/>
+    </Value>
+    <Value genre="config" index="134" label="Cooling 1 Setpoint" max="" min="" type="byte" units="degrees" value="80">
+      <Help>
 	      Default:
 	      HOLD   80F / 26C
 	      RUN    84F / xxC
 	      ESM
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="136" genre="config" label="Heating 1 Setpoint" units="degrees" min="" max="" value="60">
-	    <Help>
+    </Value>
+    <Value genre="config" index="136" label="Heating 1 Setpoint" max="" min="" type="byte" units="degrees" value="60">
+      <Help>
 	      Heating 1 Setpoint (does this vary with ESM, etc. or is this for the "Hold" setting?
 	      Default:
 	      HOLD   55F / 13C
 	      RUN    60F / xxC
 	      ESM    64F / xxC (unless parameter xx has been changed)
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="137" genre="config" label="Backlight Timeout" units="seconds" min="0" max="120" value="30">
-	    <Help>
+    </Value>
+    <Value genre="config" index="137" label="Backlight Timeout" max="120" min="0" type="byte" units="seconds" value="30">
+      <Help>
 	      Backlight Timeout is the time (in seconds) from the last
 	      button press to the backlight going out.  The time-out
 	      can be set between 0 and 120
@@ -179,60 +189,60 @@
 	      always on.
 	      Default:  30
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="138" genre="config" label="Max Heat Setpoint" units="degrees" min="55" max="90" value="90">
-	    <Help>
+    </Value>
+    <Value genre="config" index="138" label="Max Heat Setpoint" max="90" min="55" type="byte" units="degrees" value="90">
+      <Help>
 	      Sets the maximum heating setpoint value.  Will not ramp
 	      or accept setpoints higher than this maximum.
 	      Minimum:  55F / xxC
 	      Maximum:  90F / xxC
 	      Default:  90F / 32C
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="139" genre="config" label="Min Cool Setpoint" units="degrees" min="60" max="99" value="60">
-	    <Help>
+    </Value>
+    <Value genre="config" index="139" label="Min Cool Setpoint" max="99" min="60" type="byte" units="degrees" value="60">
+      <Help>
 	      Sets the minimum cooling setpoint value.  Will not ramp
 	      or accept setpoints lower than this minimum.
 	      Minimum:  60F / xxC
 	      Maximum:  99F / xxC
 	      Default:  60F / 15C
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="141" genre="config" label="Screen Timeout" units="seconds" min="0" max="120" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="141" label="Screen Timeout" max="120" min="0" type="byte" units="seconds" value="0">
+      <Help>
 	      This is the time before any screen reverts to the Minimized
 	      Screen (temperature display only), after you stop pushing
 	      buttons.  Minimized Screen feature is disabled by setting this
 	      time to 0.
 	      Default:  0
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="143" genre="config" label="Sensor (Internal) Offset" units="degrees" min="-7" max="+7" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="143" label="Sensor (Internal) Offset" max="+7" min="-7" type="byte" units="degrees" value="0">
+      <Help>
 	      The internal temperature sensor can be calibrated to report
 	      values different from its actual reading.  The offset can
 	      range from -7 degrees to +7 degrees.
 	      Default:  0
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="148" genre="config" label="Screen Contrast" units="" min="0" max="20" value="10">
-	    <Help>
+    </Value>
+    <Value genre="config" index="148" label="Screen Contrast" max="20" min="0" type="byte" units="" value="10">
+      <Help>
 	      The Screen Contrast sets the contrast level of the LCD display.
 	      The contrast can be set between 0 and 20.  If the display
 	      is too light, use a higher number.  If dark lines appear on
 	      the screen, use a lower number.
 	      Default:  10
 	    </Help>
-	  </Value>
-	  <Value type="byte" index="185" genre="config" label="Schedule Enable" units="" min="0" max="1" value="0">
-	    <Help>
+    </Value>
+    <Value genre="config" index="185" label="Schedule Enable" max="1" min="0" type="byte" units="" value="0">
+      <Help>
 	      When enabled (set to 1), the local thermostat's scheduler
 	      function is enabled.
 	      Default:  0
 	    </Help>
-	  </Value>
-	  <Value type="int" index="228" genre="config" label="Schedule Sun-1" units="" min="" max="" value="100681283">
-	    <Help>
+    </Value>
+    <Value genre="config" index="228" label="Schedule Sun-1" max="" min="" type="int" units="" value="100681283">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Sundays.
 
@@ -244,9 +254,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="229" genre="config" label="Schedule Sun-2" units="" min="" max="" value="134233685">
-	    <Help>
+    </Value>
+    <Value genre="config" index="229" label="Schedule Sun-2" max="" min="" type="int" units="" value="134233685">
+      <Help>
 	      This value holds information about the second schedule
 	      setpoints for Sundays.
 
@@ -258,9 +268,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="230" genre="config" label="Schedule Sun-3" units="" min="" max="" value="302007886">
-	    <Help>
+    </Value>
+    <Value genre="config" index="230" label="Schedule Sun-3" max="" min="" type="int" units="" value="302007886">
+      <Help>
 	      This value holds information about the third schedule
 	      setpoints for Sundays.
 
@@ -272,9 +282,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="231" genre="config" label="Schedule Sun-4" units="" min="" max="" value="369114706">
-	    <Help>
+    </Value>
+    <Value genre="config" index="231" label="Schedule Sun-4" max="" min="" type="int" units="" value="369114706">
+      <Help>
 	      This value holds information about the fourth schedule
 	      setpoints for Sundays.
 
@@ -286,9 +296,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="232" genre="config" label="Schedule Mon-1" units="" min="" max="" value="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="232" label="Schedule Mon-1" max="" min="" type="int" units="" value="">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Mondays.
 
@@ -300,9 +310,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="233" genre="config" label="Schedule Mon-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="233" label="Schedule Mon-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule
 	      setpoints for Mondays.
 
@@ -314,9 +324,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="234" genre="config" label="Schedule Mon-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="234" label="Schedule Mon-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule
 	      setpoints for Mondays.
 
@@ -328,9 +338,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="235" genre="config" label="Schedule Mon-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="235" label="Schedule Mon-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule
 	      setpoints for Mondays.
 
@@ -342,9 +352,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="236" genre="config" label="Schedule Tue-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="236" label="Schedule Tue-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Tuesdays.
 
@@ -356,9 +366,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="237" genre="config" label="Schedule Tue-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="237" label="Schedule Tue-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule
 	      setpoints for Tuesdays.
 
@@ -370,9 +380,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="238" genre="config" label="Schedule Tue-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="238" label="Schedule Tue-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule
 	      setpoints for Tuesdays.
 
@@ -384,9 +394,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="239" genre="config" label="Schedule Tue-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="239" label="Schedule Tue-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule
 	      setpoints for Tuesdays.
 
@@ -398,9 +408,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="240" genre="config" label="Schedule Wed-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="240" label="Schedule Wed-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule
 	      setpoints for Wednesdays.
 
@@ -412,9 +422,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="241" genre="config" label="Schedule Wed-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="241" label="Schedule Wed-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Wednesdays.
 
 	      Byte 1: Hour   (0-23)
@@ -425,9 +435,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="242" genre="config" label="Schedule Wed-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="242" label="Schedule Wed-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Wednesdays.
 
 	      Byte 1: Hour   (0-23)
@@ -438,9 +448,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="243" genre="config" label="Schedule Wed-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="243" label="Schedule Wed-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Wednesdays.
 
 	      Byte 1: Hour   (0-23)
@@ -451,9 +461,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="244" genre="config" label="Schedule Thu-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="244" label="Schedule Thu-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule setpoints for Thursdays.
 
 	      Byte 1: Hour   (0-23)
@@ -464,9 +474,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="245" genre="config" label="Schedule Thu-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="245" label="Schedule Thu-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Thursdays.
 
 	      Byte 1: Hour   (0-23)
@@ -477,9 +487,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="246" genre="config" label="Schedule Thu-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="246" label="Schedule Thu-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Thursdays.
 
 	      Byte 1: Hour   (0-23)
@@ -490,9 +500,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="247" genre="config" label="Schedule Thu-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="247" label="Schedule Thu-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Thursdays.
 
 	      Byte 1: Hour   (0-23)
@@ -503,9 +513,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="248" genre="config" label="Schedule Fri-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="248" label="Schedule Fri-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule setpoints for Fridays.
 
 	      Byte 1: Hour   (0-23)
@@ -516,9 +526,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="249" genre="config" label="Schedule Fri-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="249" label="Schedule Fri-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Fridays.
 
 	      Byte 1: Hour   (0-23)
@@ -529,9 +539,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="250" genre="config" label="Schedule Fri-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="250" label="Schedule Fri-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Fridays.
 
 	      Byte 1: Hour   (0-23)
@@ -542,9 +552,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="251" genre="config" label="Schedule Fri-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="251" label="Schedule Fri-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Fridays.
 
 	      Byte 1: Hour   (0-23)
@@ -555,9 +565,9 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="252" genre="config" label="Schedule Sat-1" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="252" label="Schedule Sat-1" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the first schedule setpoints for Saturdays.
 
 	      Byte 1: Hour   (0-23)
@@ -568,9 +578,9 @@
 	      Default:  0x06004643 06:00AM 70F / 67F
 	      0x06001519 06:00AM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="253" genre="config" label="Schedule Sat-2" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="253" label="Schedule Sat-2" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the second schedule setpoints for Saturdays.
 
 	      Byte 1: Hour   (0-23)
@@ -581,9 +591,9 @@
 	      Default:  0x08003e55 08:00AM 62F / 85F
 	      0x0800101d 08:00AM 16C / 29C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="254" genre="config" label="Schedule Sat-3" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="254" label="Schedule Sat-3" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the third schedule setpoints for Saturdays.
 
 	      Byte 1: Hour   (0-23)
@@ -594,9 +604,9 @@
 	      Default:  0x1200464e 06:00PM 70F / 78F
 	      0x12001519 06:00PM 21C / 25C
 	    </Help>
-	  </Value>
-	  <Value type="int" index="255" genre="config" label="Schedule Sat-4" units="" min="" max="">
-	    <Help>
+    </Value>
+    <Value genre="config" index="255" label="Schedule Sat-4" max="" min="" type="int" units="">
+      <Help>
 	      This value holds information about the fourth schedule setpoints for Saturdays.
 
 	      Byte 1: Hour   (0-23)
@@ -607,12 +617,14 @@
 	      Default:  0x16003e52 10:00PM 62F / 82F
 	      0x1600101b 10:00PM 16C / 27C
 	    </Help>
-	  </Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-	</CommandClass>
-	<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-	<CommandClass id="67" base="0" />
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133"></CommandClass>
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/vera/vera2.xml b/Config/vera/vera2.xml
new file mode 100644
index 0000000000..5e319a9abd
--- /dev/null
+++ b/Config/vera/vera2.xml
@@ -0,0 +1,23 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/008C:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vera/vera2.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/961/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">U.S. / Canada / Mexico / CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">SG200</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.actiontec.com/246.html</MetaDataItem>
+    <MetaDataItem name="Description">You're on a beach in Tahiti. You turn on your phone and check in on a live feed from your security camera - or turn on porch lights. Maybe you're watching TV and flip on your pool heater and lights to get ready for a swim. Maybe from your office computer you schedule your thermostat to the right temperatures for day and night. These aren't applications of the future. They're here today, with the SG200 service gateway. 
+
+The SG200 Service Gateway is engineered to be a lifeline to the connected home. It's loaded with all the latest connectivity standards to tie together devices and services in the home: WiFi (802.11n), Z-Wave home control standards, and Ethernet. 
+
+And if you are a carrier, your customers will appreciate the ability to pick and choose the home automation applications they want, instead of being saddled with a static set of capabilities. The Device comes loaded with Java and OSGi, allowing you to deliver applications at your customer's purchase request (and bill monthly, if desired), providing you with additional revenue streams. </MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.micasaverde.com/setting-up.php</MetaDataItem>
+    <MetaDataItem name="Name">Actiontec SG-200</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/118/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/119/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/961/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/vision/1701.xml b/Config/vision/1701.xml
new file mode 100644
index 0000000000..3a97b24d9b
--- /dev/null
+++ b/Config/vision/1701.xml
@@ -0,0 +1,36 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:0620:2006</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/1701.png</MetaDataItem>
+    <MetaDataItem id="0620" name="ZWProductPage" type="2006">https://products.z-wavealliance.org/products/632/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.visionsecurity.com.tw/ha_products_page2_154_192.html</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave Certification - Vision Security Door Lock - EU</MetaDataItem>
+    <MetaDataItem id="0620" name="FrequencyName" type="2006">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Use AES encryption to Lock/Unlock Door,have User Code management. Logging and schedule setting.HM 1701-SSX03 (Polished Brass)
+
+This is a radio frequency remote control electronic deadbolt with water proof design, easy to install and operate. Fit most standard door preps, no need to drill additional holes. 
+
+User friendly for elder and young children, remote with simple icon lock and unlock, or choose manual locking, and remote can be used from indoor. The keypad buttons glow in the dark for night time visibility. 
+
+Easily and quickly add and delete user codes right at the keypad, so it is convenient to provide a user code for temporary access.
+ 
+	Features:
+*13 sets of user codes/Code numbers can be any combination from 4~10 digits 
+*Schedule Setting/Logging
+*AES encryption for Z-wave Door Lock
+*Keypad shuts down after 4 incorrect code attempts. It will return to standard mode after 15 sec.
+*Z-Wave 4.51 SDK
+100ft line of sight
+*LED visual and audible (warning sounds) feedback message definitions
+*Operating temp: -10oC~50oC
+*Working Voltage: 6V
+*Dimensions: 150*70*57mm
+ </MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.visionsecurity.com.tw/ha_products_page2_154_192.html</MetaDataItem>
+    <MetaDataItem id="0620" name="Identifier" type="2006">1701</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/632/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/vision/brg1-433.xml b/Config/vision/brg1-433.xml
new file mode 100644
index 0000000000..754508941c
--- /dev/null
+++ b/Config/vision/brg1-433.xml
@@ -0,0 +1,15 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:1401:2014</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/brg1-433.png</MetaDataItem>
+    <MetaDataItem id="1401" name="ZWProductPage" type="2014">https://products.z-wavealliance.org/products/762/</MetaDataItem>
+    <MetaDataItem name="Description">Plug-in Dimmer &amp; CT-Clamp Module(Power Meter)</MetaDataItem>
+    <MetaDataItem id="1401" name="FrequencyName" type="2014">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="1401" name="Identifier" type="2014">BRG1-433</MetaDataItem>
+    <MetaDataItem name="Name">Vision Security Dimmer BRG1-433</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/762/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112"/>
+</Product>
diff --git a/Config/vision/zd2102.xml b/Config/vision/zd2102.xml
index 0dc13a7078..59fd637e5c 100644
--- a/Config/vision/zd2102.xml
+++ b/Config/vision/zd2102.xml
@@ -1,24 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Vision ZD2102 Door/Window Sensor -->
-	<CommandClass id="112">
-		<Value type="list" genre="config"  index="1" label="External Switch" size="1" min="0" max="255" value="0">
-			<Help>External Switch Status</Help>
-			<Item label="On" value="255" />
-			<Item label="Off" value="0" />
-		</Value>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
-	<CommandClass id="113" getsupported="false" />
-
-	<!-- COMMAND_CLASS_ASSOCIATION -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="All Reports" />
-		</Associations>
-	</CommandClass>
+<Product Revision="9" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:0101:2001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zd2102.png</MetaDataItem>
+    <MetaDataItem id="0101" name="ZWProductPage" type="2001">https://products.z-wavealliance.org/products/111/</MetaDataItem>
+    <MetaDataItem name="Name">Door Contact</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.visionsecurity.com.tw/ha_contact_us.html</MetaDataItem>
+    <MetaDataItem id="0101" name="Identifier" type="2001">ZD 2102</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.visionsecurity.com.tw/ha_products_page2_154_159.html</MetaDataItem>
+    <MetaDataItem id="0101" name="FrequencyName" type="2001">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">The ZD2102-5 Door and Window sensor is used in any Z-Wave network to detect the opening or closing of a door or window.  Special Design can fit most of door/window frame.  The primary sensing element is a magnetic reed switch, the ZD2102-5 is supplied with the sensor, sensor mounting bracket and the trigger magnet.  An additional set of sensor inputs are provided through a 2 position screw terminal and can be used to expand the sensor capability to multiple inputs.  The ZD2102-5 is powered by a single CR123A Lithium Battery (supplied with unit, battery life is more than 5 years) and is intended for indoor use only.   The ZD2102-5 features tamper proof switch, low battery warning and can be firmware updated over the air.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/90/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/111/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/702/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/779/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/848/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="9">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/988/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0102" name="ZWProductPage" type="2001">https://products.z-wavealliance.org/products/779/</MetaDataItem>
+    <MetaDataItem id="0102" name="Identifier" type="2001">ZD2102IN</MetaDataItem>
+    <MetaDataItem id="0102" name="FrequencyName" type="2001">CEPT (Europe) / India</MetaDataItem>
+    <MetaDataItem id="0104" name="ZWProductPage" type="2001">https://products.z-wavealliance.org/products/848/</MetaDataItem>
+    <MetaDataItem id="0104" name="FrequencyName" type="2001">Japan</MetaDataItem>
+    <MetaDataItem id="0104" name="Identifier" type="2001">ZD2102JP</MetaDataItem>
+    <MetaDataItem id="0105" name="ZWProductPage" type="2001">https://products.z-wavealliance.org/products/988/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription"> The ZD2102-5 is forced awake by opening the rear cover, the red LED will stay on and the 2102-5 will stay awake for 10 seconds.  The  ZD2102-5 will send “Wake Up Notification”.  If ZD2102-5 receives a “Wake Up No More Information” command then the red LED will go off and it will go to sleep.
+Auto Wake Up:  The wakeup interval is user settable from 10 minutes to 1 week using COMMAND_CLASS_WAKE_UP, Interval increment is 3 minutes.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">For “Exclusion” (removing from) a network: Put the Z-Wave™ network controller into “exclusion” mode, following its instructions. To delete the ZD2102-5 from your controller press the program switch of ZD2102-5 for at least 1 second to be excluded.  Note: All user and network settings will be cleared and the device reset to factory setting defaults when the device is excluded.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">For “Inclusion” (adding to) a network: Put the Z-Wave™ network controller into “inclusion” mode following its instructions.  To add the ZD2102-5 to your controller press the program switch of ZD2102-5 to send the Node Information Frame (NIF). After sending NIF, the network controller will send the auto inclusion request; otherwise, ZD2102-5 will go to sleep after 15 seconds.</MetaDataItem>
+    <MetaDataItem id="0105" name="FrequencyName" type="2001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/988/ZD 2102_04162014 - 500系列.pdf</MetaDataItem>
+    <MetaDataItem id="0105" name="Identifier" type="2001">ZD2102EU-5</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Factory Default Reset: Trigger the rear cover switch to send the Alarm Report and trigger the reed switch (close &amp; open) 5 times in 10 seconds, ZD2102-5 will send the “Device Reset Locally Notification” command and reset to the factory default condition.</MetaDataItem>
+  </MetaData>
+  <!-- Vision ZD2102 Door/Window Sensor -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="External Switch" max="255" min="0" size="1" type="list" value="0">
+      <Help>External Switch Status</Help>
+      <Item label="On" value="255"/>
+      <Item label="Off" value="0"/>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="All Reports" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zd2105us5.xml b/Config/vision/zd2105us5.xml
index 8e2731572b..5a62456a16 100644
--- a/Config/vision/zd2105us5.xml
+++ b/Config/vision/zd2105us5.xml
@@ -1,20 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!--
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--
 Vision ZD2105US-5 Recessed Door/Window Sensor
 https://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1727/ZD%202105-5_V1-20160329.pdf
 -->
 
     <!-- COMMAND_CLASS_BASIC -->
-    <CommandClass id="32" setasreport="true" />
-
-    <!-- COMMAND_CLASS_SENSOR_BINARY. This class is in the list reported by the device, but it does not respond to requests -->
-    <CommandClass id="48" action="remove" />
-
-    <!-- COMMAND_CLASS_ASSOCIATION -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="5" label="Lifeline" />
-        </Associations>
-    </CommandClass>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SENSOR_BINARY. This class is in the list reported by the device, but it does not respond to requests -->
+  <CommandClass action="remove" id="48"/>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zd2201.xml b/Config/vision/zd2201.xml
index a13caac5aa..7da4b41ba2 100644
--- a/Config/vision/zd2201.xml
+++ b/Config/vision/zd2201.xml
@@ -1,45 +1,51 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Vision ZD2201 Multisensor 4in1 -->
-	<CommandClass id="112">
-		<Value type="list" genre="config"  index="1" label="Temperature unity" size="1" min="0" max="1" value="0">
-			<Help></Help>
-			<Item label="Celsius" value="0" />
-			<Item label="Fahrenheit" value="1" />
-		</Value>
-        <Value type="byte" genre="config" instance="1" index="2" label="Temperature Reporting Threshold" min="1" max="50" value="1">
-            <Help>Threshold change in temperature to induce an automatic report.
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Vision ZD2201 Multisensor 4in1 -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Temperature unity" max="1" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Temperature Reporting Threshold" max="50" min="1" type="byte" value="1">
+      <Help>Threshold change in temperature to induce an automatic report.
             1 to 50 ( Set up from 0.1C to 5C)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="3" label="Humidity Reporting Threshold" units="%" min="1" max="50" value="10">
-            <Help>Threshold change in humidity to induce an automatic report.
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Humidity Reporting Threshold" max="50" min="1" type="byte" units="%" value="10">
+      <Help>Threshold change in humidity to induce an automatic report.
             1 to 50 ( Set up from 1%-50%)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="4" label="Luminance Reporting Threshold" units="%" min="0" max="50" value="10">
-            <Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Luminance Reporting Threshold" max="50" min="0" type="byte" units="%" value="10">
+      <Help>
                 Threshold change in luminance to induce an automatic report.
                 0 is disabled.
                 5 to 50 ( Set up from 5%-50%)
             </Help>
-        </Value>
-
-    </CommandClass>
-
-	<!-- COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" setasreport="true"/>
-
-    <!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
-    <CommandClass id="113" getsupported="false" />
-
-    <!-- COMMAND_CLASS_SENSOR_BINARY Get responds with an undocumented value -->
-    <CommandClass id="30" getsupported="false" />
-
-	<!-- COMMAND_CLASS_ASSOCIATION -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SENSOR_BINARY Get responds with an undocumented value -->
+  <CommandClass id="30">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zd2301.xml b/Config/vision/zd2301.xml
index f7a80aba23..074c3c4cac 100644
--- a/Config/vision/zd2301.xml
+++ b/Config/vision/zd2301.xml
@@ -1,45 +1,75 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Vision ZD2301 Multisensor 4in1 -->
-	<CommandClass id="112">
-		<Value type="list" genre="config"  index="1" label="Temperature unity" size="1" min="0" max="1" value="0">
-			<Help></Help>
-			<Item label="Celsius" value="0" />
-			<Item label="Fahrenheit" value="1" />
-		</Value>
-        <Value type="byte" genre="config" instance="1" index="2" label="Temperature Reporting Threshold" min="1" max="50" value="1">
-            <Help>Threshold change in temperature to induce an automatic report.
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:1F20:201F</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zd2301.png</MetaDataItem>
+    <MetaDataItem id="1F20" name="ZWProductPage" type="201F">https://products.z-wavealliance.org/products/1334/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Awake Mode:
+Press the Program SW, the LED will flash one time and ZD2301 will send “Wake Up Notification” after 5 seconds. If ZD2301 received “Wake Up No More Information” command then the ZD2301 will go to sleep or it will wait 10 seconds then go to sleep. It will precede all the commands after sending the “Wake Up Notification”
+</MetaDataItem>
+    <MetaDataItem id="1F20" name="FrequencyName" type="201F">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Factory Default Reset: 
+*Open the rear cover to send the Alarm Report and then press the program switch 10 times in 10 seconds, ZD2301 will send the “Device Reset Locally” command and reset to the factory default. 
+*Please use this procedure only in the event that the network primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Name">4 in 1 Door Sensor</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">5.	For “Exclusion” from (removing from) a network: Put the Z-Wave™ Interface Controller into “exclusion” mode, and following its instruction to delete the ZD2301 from your controller.  Press the program switch of ZD2301 for 1 second at least to be excluded.
+Note: All user and network settings will be cleared and the device reset to factory defaults when the device is excluded. 
+</MetaDataItem>
+    <MetaDataItem name="Description">Vision’s wireless 4 in 1 Multi-Sensor (door window contact sensor, humidity sensor, temperature sensor, and light sensor) of the home security device. This sensor is a Z-Wave™ enabled device two-way (interoperable, RF mesh networking technology) and is fully compatible with any Z-Wave™ enabled network and its security framework. Every main powered Z-Wave enabled device acts as a signal repeater and multiple devices result in more possible transmission routes which helps eliminate “RF dead-spots”
+This door sensor sends Z-Wave™ signal when door or window is opened and closed or humidity, temperature, luminous change.  When the device is secure included into Z-Wave network, above communication will be encrypted. Security enabled_ Z-Wave controller must be used to fully utilize the product.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1334/ZD 2301-5_20150603.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">4.	For “Inclusion” in (adding to) a network: Put the Z-Wave™ Interface Controller into “inclusion” mode, and following its instruction to add the ZD2301 to your controller. To get in the “inclusion” mode, the distance between sensor and controller is suggested to be in one meter. Press the program switch of ZD2301 for sending the NIF.  After sending NIF, Z-Wave will send the auto inclusion; otherwise, ZD2301 will go to sleep after 20 seconds.</MetaDataItem>
+    <MetaDataItem id="1F20" name="Identifier" type="201F">ZD2301EU-5</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1334/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Vision ZD2301 Multisensor 4in1 -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Temperature unity" max="1" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Temperature Reporting Threshold" max="50" min="1" type="byte" value="1">
+      <Help>Threshold change in temperature to induce an automatic report.
             1 to 50 ( Set up from 0.1C to 5C)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="3" label="Humidity Reporting Threshold" units="%" min="1" max="50" value="10">
-            <Help>Threshold change in humidity to induce an automatic report.
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Humidity Reporting Threshold" max="50" min="1" type="byte" units="%" value="10">
+      <Help>Threshold change in humidity to induce an automatic report.
             1 to 50 ( Set up from 1%-50%)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="4" label="Luminance Reporting Threshold" units="%" min="0" max="50" value="10">
-            <Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Luminance Reporting Threshold" max="50" min="0" type="byte" units="%" value="10">
+      <Help>
                 Threshold change in luminance to induce an automatic report.
                 0 is disabled.
                 5 to 50 ( Set up from 5%-50%)
             </Help>
-        </Value>
-
-    </CommandClass>
-
-	<!-- COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" setasreport="true"/>
-
-    <!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
-    <CommandClass id="113" getsupported="false" />
-
-    <!-- COMMAND_CLASS_SENSOR_BINARY Get responds with an undocumented value -->
-    <CommandClass id="30" getsupported="false" />
-
-	<!-- COMMAND_CLASS_ASSOCIATION -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SENSOR_BINARY Get responds with an undocumented value -->
+  <CommandClass id="30">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zf5201.xml b/Config/vision/zf5201.xml
index be5fe2c14d..f3b618b81b 100644
--- a/Config/vision/zf5201.xml
+++ b/Config/vision/zf5201.xml
@@ -1,11 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!-- Vision Security ZF5201 Flood-Sensor -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Vision Security ZF5201 Flood-Sensor -->
 <!-- COMMAND_CLASS_BASIC -->
-        <CommandClass id="32" setasreport="true"/>
-        <CommandClass id="133">
-                <Associations num_groups="1">
-                        <Group index="1" max_associations="5" label="Flood detected"  />
-                </Associations>
-        </CommandClass>
-</Product>
\ No newline at end of file
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Flood detected" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/vision/zg8101.xml b/Config/vision/zg8101.xml
index 000f6cf560..412dec567b 100644
--- a/Config/vision/zg8101.xml
+++ b/Config/vision/zg8101.xml
@@ -1,20 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- Vision ZG8101 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-        <!-- COMMAND_CLASS_CONFIGURATION -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_CONFIGURATION -->
         <!--    IMPORTANT: Controllers may only allow to configure signed values.
                 In order to set values in the range 128...255 the value sent in the application shall be the desired value minus 256.
                 For example: to set a parameter to 200? it may be needed to set a value of 200 minus 256 = minus 56.
                 In case of two byte value the same logic applies: Values greater than 32768 may needed to be given as negative values too.-->
 
         <!-- COMMAND_CLASS_BASIC -->
-        <CommandClass id="32" setasreport="true"/>
-
-        <!-- COMMAND_CLASS_ASSOCIATION -->
-        <CommandClass id="133">
-                <Associations num_groups="1">
-                        <Group index="1" max_associations="5" label="Control Command when trip"/>
-                </Associations>
-        </CommandClass>
-
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Control Command when trip" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zl7101us.xml b/Config/vision/zl7101us.xml
new file mode 100644
index 0000000000..d4126cfab9
--- /dev/null
+++ b/Config/vision/zl7101us.xml
@@ -0,0 +1,25 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:0803:2008</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zl7101us.png</MetaDataItem>
+    <MetaDataItem id="0803" name="ZWProductPage" type="2008">https://products.z-wavealliance.org/products/877/</MetaDataItem>
+    <MetaDataItem name="Description">ZL 7101 Z-Wave Plug-in Dimmer Module
+
+Features:
+*Plug-In Module
+*Z-wave control &amp; AC power output
+*Suitable for most bulb type appliance
+*Adjusting the light via the middle button
+*Protection function via the middle button 
+*Max load output: 300W, 60Hz
+*Input: 120VAC
+*Dimensions: 100*60*37mm
+</MetaDataItem>
+    <MetaDataItem name="Name">Dimmer Module ZL7101US</MetaDataItem>
+    <MetaDataItem id="0803" name="FrequencyName" type="2008">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0803" name="Identifier" type="2008">ZL7101US</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/877/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/vision/zl7201us.xml b/Config/vision/zl7201us.xml
new file mode 100644
index 0000000000..73708f6079
--- /dev/null
+++ b/Config/vision/zl7201us.xml
@@ -0,0 +1,23 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:0703:2007</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zl7201us.png</MetaDataItem>
+    <MetaDataItem id="0703" name="ZWProductPage" type="2007">https://products.z-wavealliance.org/products/876/</MetaDataItem>
+    <MetaDataItem id="0703" name="Identifier" type="2007">ZL7201US</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.visionsecurity.com.tw/ha_products_page2_154_196.html</MetaDataItem>
+    <MetaDataItem id="0703" name="FrequencyName" type="2007">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">ZL7201 Z-Wave Plug-in ON/OFF
+
+Features:
+*Basic functions are similar to ZL7101
+*Suitable for most of Appliance
+*Max Load output: 600W, 60Hz
+*Input: 120VAC
+*Motor load: 1/2 HP
+*Resistive load: 15A</MetaDataItem>
+    <MetaDataItem name="Name">Appliance Module ZL7201US</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/876/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/vision/zl7261.xml b/Config/vision/zl7261.xml
index eb926d0505..2c2d40aa62 100644
--- a/Config/vision/zl7261.xml
+++ b/Config/vision/zl7261.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Vision ZL7261 Plug-in Power Monitor -->
 
     <!-- Configuration Parameters -->
diff --git a/Config/vision/zl7431.xml b/Config/vision/zl7431.xml
index e7bf2c1050..29b70bb95f 100644
--- a/Config/vision/zl7431.xml
+++ b/Config/vision/zl7431.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Vision ZL7431 In-Wall Switch, Single Relay -->
     <!-- Configuration Parameters -->
     <CommandClass id="112">
diff --git a/Config/vision/zm1601eu.xml b/Config/vision/zm1601eu.xml
index 0cdcda2ee1..64bee92af0 100644
--- a/Config/vision/zm1601eu.xml
+++ b/Config/vision/zm1601eu.xml
@@ -1,27 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Vision Security Battery Siren -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" index="0" genre="config" label="Siren Strobe Mode" min="0" max="2" value="0" size="1">
-            <Help>Defines the reaction of the siren: turn either Siren sound, Strobe light, or both when triggered</Help>
-            <Item label="Strobe and Siren" value="0" />
-            <Item label="Siren Only" value="1" />
-            <Item label="Strobe Only" value="2" />
-        </Value>
-
-        <Value type="list" index="1" genre="config" label="Alarm Auto Stop" min="0" max="3" value="0" size="1">
-            <Help>Defines the auto time out of the alarm indication</Help>
-            <Item label="30 seconds" value="0" />
-            <Item label="60 seconds" value="1" />
-            <Item label="120 seconds" value="2" />
-            <Item label="Will Not Automatically Stop" value="3" />
-        </Value>
-    </CommandClass>
-    <!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-    <!--  Binary report value when the Magnet switch is opened/closed -->
-	<CommandClass id="37" setasreport="true"/>
-    <!--  Battery set as report -->
-	<CommandClass id="128" setasreport="true"/>
+<!-- Vision Security Battery Siren --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:0505:2005</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zm1601eu.png</MetaDataItem>
+    <MetaDataItem id="0505" name="ZWProductPage" type="2005">https://products.z-wavealliance.org/products/1009/</MetaDataItem>
+    <MetaDataItem name="Name">Siren with LED strobe light</MetaDataItem>
+    <MetaDataItem id="0505" name="Identifier" type="2005">ZM1601EU-5</MetaDataItem>
+    <MetaDataItem name="ResetDescription">All user and network settings will be cleared and the device reset to factory defaults when the device is excluded.</MetaDataItem>
+    <MetaDataItem id="0505" name="FrequencyName" type="2005">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">It is FLiRS device</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">For “Inclusion” (adding to) a network, put the Z-Wave™ network controller into “inclusion” mode, and following its instruction to add the ZM 1601 to your controller.  To get the ZM 1601 in the “inclusion” mode, open the bracket and press the program switch of ZM 1601 for 1 second at least &amp; release to be included.  After waiting a few seconds the LED Setting Lighting should go off, if not, please try again. (After sending the Z-Wave NIF one time if the ZM1601 is not included it will send 4 times Network Wide Inclusion request every 4 ~ 6 seconds for auto inclusion. The orange LED will flash again if the siren has not been included or the orange LED will go off after inclusion.) </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">For “Exclusion” from (removing from) a network: Set up the Z-Wave™ network controller into “exclusion” mode, and following its instruction to delete the ZM 1601 from your controller. Press the program switch of ZM 1601 for 1 second at least &amp; release to be excluded. Note: a. LED setting light will flash (orange color) continuously in Exclusion condition for 25 seconds. b. All user and network settings will be cleared and the device reset to factory defaults when the device is excluded.</MetaDataItem>
+    <MetaDataItem name="Description">This product will sound a loud siren and flash a strobe light when an alarm message or alert is received on any Z-Wave™ enabled network.  This siren is a Z-Wave™ enabled device (interoperable, two-way RF mesh networking technology) and is fully compatible with any Z-Wave™ enabled network. Configuration modes are provided to select; Strobe, Siren or Both and to set Alarm Auto Stop time.  Features also include Self-Protection (tamper proof) alert and Battery Life Alert.  105dB siren at 1 meter.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1009/ZM 1601 Siren_20140407-500 series.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1009/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="0" label="Siren Strobe Mode" max="2" min="0" size="1" type="list" value="0">
+      <Help>Defines the reaction of the siren: turn either Siren sound, Strobe light, or both when triggered</Help>
+      <Item label="Strobe and Siren" value="0"/>
+      <Item label="Siren Only" value="1"/>
+      <Item label="Strobe Only" value="2"/>
+    </Value>
+    <Value genre="config" index="1" label="Alarm Auto Stop" max="3" min="0" size="1" type="list" value="0">
+      <Help>Defines the auto time out of the alarm indication</Help>
+      <Item label="30 seconds" value="0"/>
+      <Item label="60 seconds" value="1"/>
+      <Item label="120 seconds" value="2"/>
+      <Item label="Will Not Automatically Stop" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Binary report value when the Magnet switch is opened/closed -->
+  <CommandClass id="37">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Battery set as report -->
+  <CommandClass id="128">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zm1601eu5.xml b/Config/vision/zm1601eu5.xml
index 1f20250521..6fada10f19 100644
--- a/Config/vision/zm1601eu5.xml
+++ b/Config/vision/zm1601eu5.xml
@@ -1,27 +1,64 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Vision Security Battery Siren -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Siren Strobe Mode" min="0" max="2" value="0" size="1">
-            <Help>Defines the reaction of the siren: turn either Siren sound, Strobe light, or both when triggered</Help>
-            <Item label="Strobe and Siren" value="0" />
-            <Item label="Siren Only" value="1" />
-            <Item label="Strobe Only" value="2" />
-        </Value>
-
-        <Value type="list" index="2" genre="config" label="Alarm Auto Stop" min="0" max="3" value="0" size="1">
-            <Help>Defines the auto time out of the alarm indication</Help>
-            <Item label="30 seconds" value="0" />
-            <Item label="60 seconds" value="1" />
-            <Item label="120 seconds" value="2" />
-            <Item label="Will Not Automatically Stop" value="3" />
-        </Value>
-    </CommandClass>
-    <!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-    <!--  Binary report value when the Magnet switch is opened/closed -->
-	<CommandClass id="37" setasreport="true"/>
-    <!--  Battery set as report -->
-	<CommandClass id="128" setasreport="true"/>
+<!-- Vision Security Battery Siren --><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:0508:2005</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zm1601eu5.png</MetaDataItem>
+    <MetaDataItem id="0508" name="ZWProductPage" type="2005">https://products.z-wavealliance.org/products/1278/</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1278/ZM 1601-5 Siren_20150602.pdf</MetaDataItem>
+    <MetaDataItem id="0508" name="Identifier" type="2005">ZM1601US-5</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">removing the back cover of the ZM1601 to get into “Awake” mode</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Put the Z-Wave™ Interface Controller into “inclusion” mode, and following its instruction to add the ZM 1601 to your controller. To get in the “inclusion” mode, the distance between siren and controller is suggested to be in one meter. Open the bracket and press the program switch of ZM 1601 for 1 second at least &amp; release to be included. After setting, the LED Setting Light should go off,</MetaDataItem>
+    <MetaDataItem name="Name">Wireless Siren &amp; Strobe Alarm, Battery Type</MetaDataItem>
+    <MetaDataItem id="0508" name="FrequencyName" type="2005">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description"> Features: 
+ 
+*Loud audible alarm>105dB@1 meter
+*LED strobe lighting
+*Low battery detection
+*Siren for Battery Back-Up 
+*100ft line of sight
+*LED Status Indicator
+*Operating temp: -15oC~60oC
+*Working Voltage: 6V
+*Dimensions: 116*77*40mm
+ 
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Set up the Z-Wave™ Interface Controller into “exclusion” mode, and following its instruction to delete the ZM 1601 from your controller. Press the program switch of ZM 1601 for 1 second at least &amp; release to be excluded. After setting The LED setting light will flash again</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1278/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Siren Strobe Mode" max="2" min="0" size="1" type="list" value="0">
+      <Help>Defines the reaction of the siren: turn either Siren sound, Strobe light, or both when triggered</Help>
+      <Item label="Strobe and Siren" value="0"/>
+      <Item label="Siren Only" value="1"/>
+      <Item label="Strobe Only" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Alarm Auto Stop" max="3" min="0" size="1" type="list" value="0">
+      <Help>Defines the auto time out of the alarm indication</Help>
+      <Item label="30 seconds" value="0"/>
+      <Item label="60 seconds" value="1"/>
+      <Item label="120 seconds" value="2"/>
+      <Item label="Will Not Automatically Stop" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Binary report value when the Magnet switch is opened/closed -->
+  <CommandClass id="37">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Battery set as report -->
+  <CommandClass id="128">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zm1602eu.xml b/Config/vision/zm1602eu.xml
index 1e9bb44e4e..33b64b56ef 100644
--- a/Config/vision/zm1602eu.xml
+++ b/Config/vision/zm1602eu.xml
@@ -1,19 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- Vision Security Battery Siren -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="byte" genre="config" index="0" label="Siren Strobe Mode" min="0" max="255" value="0">
-            <Help>Defines the reaction of the siren: [0] Strobe and Siren, [1] Siren, [2] Strobe (Default setting: 0)</Help>
-        </Value>
-        <Value type="byte" genre="config" index="1" label="Alarm auto stop" min="0" max="255" value="0">
-            <Help>Defines the auto time out of the alarm indication: [0] 30 seconds, [1] 60 seconds, [2] 120 seconds, [3] Continuous (Default setting: 0)</Help>
-        </Value>
-    </CommandClass>
-    <!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-    <!--  Binary report value when the Magnet switch is opened/closed -->
-	<CommandClass id="37" setasreport="true"/>
-    <!--  Battery set as report -->
-	<CommandClass id="128" setasreport="true"/>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="0" label="Siren Strobe Mode" max="255" min="0" type="byte" value="0">
+      <Help>Defines the reaction of the siren: [0] Strobe and Siren, [1] Siren, [2] Strobe (Default setting: 0)</Help>
+    </Value>
+    <Value genre="config" index="1" label="Alarm auto stop" max="255" min="0" type="byte" value="0">
+      <Help>Defines the auto time out of the alarm indication: [0] 30 seconds, [1] 60 seconds, [2] 120 seconds, [3] Continuous (Default setting: 0)</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Binary report value when the Magnet switch is opened/closed -->
+  <CommandClass id="37">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Battery set as report -->
+  <CommandClass id="128">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zm1602eu5.xml b/Config/vision/zm1602eu5.xml
index 40a38f4e68..1140fcf3e0 100644
--- a/Config/vision/zm1602eu5.xml
+++ b/Config/vision/zm1602eu5.xml
@@ -1,33 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- Vision Security ZM 1602+ DC/AC Power Siren -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Siren Strobe Mode" min="0" max="2" value="0" size="1">
-			<Help>Defines the reaction of the siren: turn either Siren sound, Strobe light, or both when triggered</Help>
-			<Item label="All Enable" value="0" />
-			<Item label="Siren Only" value="1" />
-            <Item label="Strobe Only" value="2" />
-		</Value>
-
-        <Value type="list" index="2" genre="config" label="Alarm Auto Stop Time" min="0" max="3" value="0" size="1">
-			<Help>Defines the duration of siren time when triggered</Help>
-			<Item label="30s" value="0" />
-			<Item label="60s" value="1" />
-            <Item label="120s" value="2" />
-            <Item label="Will Not Automatically Stop" value="3" />
-		</Value>
-    </CommandClass>
-    <!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-    <!--  Binary report value when the Magnet switch is opened/closed -->
-	<CommandClass id="37" setasreport="true"/>
-    <!--  Battery set as report -->
-	<CommandClass id="128" setasreport="true"/>
-    <!-- COMMAND_CLASS_ASSOCIATION -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Siren Strobe Mode" max="2" min="0" size="1" type="list" value="0">
+      <Help>Defines the reaction of the siren: turn either Siren sound, Strobe light, or both when triggered</Help>
+      <Item label="All Enable" value="0"/>
+      <Item label="Siren Only" value="1"/>
+      <Item label="Strobe Only" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Alarm Auto Stop Time" max="3" min="0" size="1" type="list" value="0">
+      <Help>Defines the duration of siren time when triggered</Help>
+      <Item label="30s" value="0"/>
+      <Item label="60s" value="1"/>
+      <Item label="120s" value="2"/>
+      <Item label="Will Not Automatically Stop" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Binary report value when the Magnet switch is opened/closed -->
+  <CommandClass id="37">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!--  Battery set as report -->
+  <CommandClass id="128">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zp3102.xml b/Config/vision/zp3102.xml
index 3c413ba657..98a98cdcf2 100644
--- a/Config/vision/zp3102.xml
+++ b/Config/vision/zp3102.xml
@@ -1,36 +1,73 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Vision ZP3102 PIR Motion Sensor -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-        <!-- COMMAND_CLASS_CONFIGURATION -->
+<!-- Vision ZP3102 PIR Motion Sensor --><Product Revision="9" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:0201:2002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zp3102.png</MetaDataItem>
+    <MetaDataItem id="0201" name="ZWProductPage" type="2002">https://products.z-wavealliance.org/products/84/</MetaDataItem>
+    <MetaDataItem name="Description">The ZP3102 is a Z-Wave enabled motion detector and temperature sensor.  The motion detector has 120 degrees of horizontal visibility and 60 degrees of vertical visibility.  The temperature sensor that is built in to the ZP3102 is capable of reporting in both Celsius and Fahrenheit scales, and may be queried for the temperature and it will report it automatically when it detects changes.  The sensor is battery operated and includes the ability to report the battery level and will transmit an alert signal if the battery assumes a critically low level.  The ZP3102 is future-proofed by also supporting the ability to have its firmware updated over the Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.visionsecurity.com.tw/ha_products_page2_154_161.html</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.visionsecurity.com.tw/ha_products_page2_154_161.html</MetaDataItem>
+    <MetaDataItem id="0201" name="FrequencyName" type="2002">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Motion Detector (with Temperature Sensor)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/72/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/84/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/703/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/728/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/804/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/847/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="9">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1070/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0201" name="Identifier" type="2002">ZP 3102</MetaDataItem>
+    <MetaDataItem id="0202" name="ZWProductPage" type="2002">https://products.z-wavealliance.org/products/728/</MetaDataItem>
+    <MetaDataItem id="0202" name="Identifier" type="2002">2</MetaDataItem>
+    <MetaDataItem id="0202" name="FrequencyName" type="2002">CEPT (Europe) / Brazil</MetaDataItem>
+    <MetaDataItem id="0203" name="ZWProductPage" type="2002">https://products.z-wavealliance.org/products/804/</MetaDataItem>
+    <MetaDataItem id="0203" name="Identifier" type="2002">ZP3102IN</MetaDataItem>
+    <MetaDataItem id="0203" name="FrequencyName" type="2002">India</MetaDataItem>
+    <MetaDataItem id="0204" name="ZWProductPage" type="2002">https://products.z-wavealliance.org/products/847/</MetaDataItem>
+    <MetaDataItem id="0204" name="FrequencyName" type="2002">Japan</MetaDataItem>
+    <MetaDataItem id="0204" name="Identifier" type="2002">ZP3102JP</MetaDataItem>
+    <MetaDataItem id="0205" name="ZWProductPage" type="2002">https://products.z-wavealliance.org/products/1070/</MetaDataItem>
+    <MetaDataItem id="0205" name="Identifier" type="2002">ZP3102EU-5</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Remove the rear cover to wake up the device, or set the wake up interval time from 10 minutes to 1 week.  The battery will be drained quickly if you fail to replace the cover after using that method to wake up the device.
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Removing the rear cover to wake up the device.  Press Program Switch 10 times within 10 seconds, ZP3102 will go back to factory default. (This is to be used only in the case of the primary controller being inoperable or otherwise unavailable.)</MetaDataItem>
+    <MetaDataItem id="0205" name="FrequencyName" type="2002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Put the Z-Wave Interface Controller into 'inclusion' mode, and follow its instructions to add the ZP3102 to your Z-Wave network. For a successful inclusion, it is suggested to have the sensor and your Z-Wave controller about one meter apart.  Press the Program Switch of the ZP3102 (refer to the manual for the location of the program switch) ready the ZP3102 for inclusion into the Z-Wave network.  If inclusion does not take place or is unsuccessful within 20 seconds, the ZP3102 will go to sleep; if this happens, simply repeat pressing the program switch to try again.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Put the Z-Wave Interface Controller into “exclusion” mode, and following its instruction to delete the ZP3102 to your Z-Wave network.  Press the Program Switch of ZP3102 once to be excluded. The LED on the ZP3102 should start to flash.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1070/20140725 - (Z-WAVE CERTIFICATION) ZP 3102-5 PIR_20140722_500 Series.pdf</MetaDataItem>
+  </MetaData>
+  <!-- COMMAND_CLASS_CONFIGURATION -->
         <!--    IMPORTANT: Controllers may only allow to configure signed values.
                 In order to set values in the range 128...255 the value sent in the application shall be the desired value minus 256.
                 For example: to set a parameter to 200? it may be needed to set a value of 200 minus 256 = minus 56.
                 In case of two byte value the same logic applies: Values greater than 32768 may needed to be given as negative values too.-->
-        <CommandClass id="112">
-                <Value type="byte" genre="config" index="1" label="Re-Trigger Waiting Time" units="minutes" min="1" max="255" value="3">
-                    <Help>Time until an associated device will turn off if no new movement is detected</Help>
-                </Value>
-                <Value type="list" genre="config" index="2" label="Celcius/Fahrenheit" size="1" min="0" max="1" value="0">
-                    <Help>Report temperature in Celcius or Fahrenheit</Help>
-                    <Item label="Celcius" value="0" />
-                    <Item label="Fahrenheit" value="1" />
-                </Value>
-                <Value type="byte" genre="config" index="3" label="Sensitivity" units="" min="1" max="7" value="4">
-                    <Help>Sensitivity 1-7 (1 = most sensitive, 7 = most insensitive. 4 is default)</Help>
-                </Value>
-                <Value type="byte" genre="config" index="4" label="Temperature adjustment" units="Degrees Celsius" min="0" max="255" value="0">
-                    <Help>-10 to -1, 0 to 10 (Signed decimal: 246 to 255, 0 to 10)</Help>
-                </Value>
-        </CommandClass>
-
-        <!-- COMMAND_CLASS_BASIC -->
-        <CommandClass id="32" setasreport="true"/>
-
-        <!-- COMMAND_CLASS_ASSOCIATION -->
-        <CommandClass id="133">
-                <Associations num_groups="1">
-                        <Group index="1" max_associations="5" label="Basic on/off group for detecting movements" />
-                </Associations>
-        </CommandClass>
-
-</Product>
\ No newline at end of file
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Re-Trigger Waiting Time" max="255" min="1" type="byte" units="minutes" value="3">
+      <Help>Time until an associated device will turn off if no new movement is detected</Help>
+    </Value>
+    <Value genre="config" index="2" label="Celcius/Fahrenheit" max="1" min="0" size="1" type="list" value="0">
+      <Help>Report temperature in Celcius or Fahrenheit</Help>
+      <Item label="Celcius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="Sensitivity" max="7" min="1" type="byte" units="" value="4">
+      <Help>Sensitivity 1-7 (1 = most sensitive, 7 = most insensitive. 4 is default)</Help>
+    </Value>
+    <Value genre="config" index="4" label="Temperature adjustment" max="255" min="0" type="byte" units="Degrees Celsius" value="0">
+      <Help>-10 to -1, 0 to 10 (Signed decimal: 246 to 255, 0 to 10)</Help>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Basic on/off group for detecting movements" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/vision/zp3111.xml b/Config/vision/zp3111.xml
index d36e4e5c7a..6e61a6b1ae 100644
--- a/Config/vision/zp3111.xml
+++ b/Config/vision/zp3111.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Vision ZP3111 Multisensor 4in1 -->
 <!-- 
 Vision ZP3111-5 4 in 1 Multi-Sensor
 http://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1572/ZP3111-5_R0_20151113%20-%20VISION.pdf
@@ -7,57 +7,58 @@ http://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1
 Zooz ZSE40 4-in-1 Multi-Sensor
 http://www.getzooz.com/downloads/zooz-zse40-4-in-1-sensor-manual.pdf
 -->
-	<CommandClass id="112">
-		<Value type="list" genre="config"  index="1" label="Temperature Unit" size="1" min="0" max="1" value="0">
-			<Help></Help>
-			<Item label="Celsius" value="0" />
-			<Item label="Fahrenheit" value="1" />
-		</Value>
-        <Value type="byte" genre="config" instance="1" index="2" label="Temperature Reporting Threshold" min="1" max="50" value="1">
-            <Help>Threshold change in temperature to induce an automatic report.
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Temperature Unit" max="1" min="0" size="1" type="list" value="0">
+      <Help></Help>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Temperature Reporting Threshold" max="50" min="1" type="byte" value="1">
+      <Help>Threshold change in temperature to induce an automatic report.
             1 to 50 ( Set up from 0.1C to 5C)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="3" label="Humidity Reporting Threshold" units="%" min="1" max="50" value="10">
-            <Help>Threshold change in humidity to induce an automatic report.
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Humidity Reporting Threshold" max="50" min="1" type="byte" units="%" value="10">
+      <Help>Threshold change in humidity to induce an automatic report.
             1 to 50 ( Set up from 1%-50%)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="4" label="Luminance Reporting Threshold" units="%" min="0" max="50" value="10">
-            <Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Luminance Reporting Threshold" max="50" min="0" type="byte" units="%" value="10">
+      <Help>
                 Threshold change in luminance to induce an automatic report.
                 0 is disabled.
                 5 to 50 ( Set up from 5%-50%)
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="5" label="Motion Sensor Re-trigger Duration" units="min" min="1" max="255" value="3">
-            <Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Motion Sensor Re-trigger Duration" max="255" min="1" type="byte" units="min" value="3">
+      <Help>
                 Value from 1 to 255 minutes to setup the re-trigger time when there is no movement detected in the period of time.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="6" label="Motion Sensor Sensitivity Adjustment" units="" min="1" max="7" value="4">
-            <Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Motion Sensor Sensitivity Adjustment" max="7" min="1" type="byte" units="" value="4">
+      <Help>
                 Sensitivity of the integrated PIR sensor.
                 1 to 7 ( 1 = Most Sensitive )
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="7" label="LED Mode" units="" min="1" max="3" value="3">
-            <Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="LED Mode" max="3" min="1" type="byte" units="" value="3">
+      <Help>
 		1 - Turn Off LED
 		2 - Breathing Light Mode (High Battery Consumption)
 		3 - Quick Flash on Sensor Reporting or Motion Trigger
             </Help>
-        </Value>
-
-    </CommandClass>
-
-	<!-- COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- COMMAND_CLASS_ASSOCIATION -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/vision/zr1202us.xml b/Config/vision/zr1202us.xml
new file mode 100644
index 0000000000..bd1d46995d
--- /dev/null
+++ b/Config/vision/zr1202us.xml
@@ -0,0 +1,14 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:1203:2012</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zr1202us.png</MetaDataItem>
+    <MetaDataItem id="1203" name="ZWProductPage" type="2012">https://products.z-wavealliance.org/products/990/</MetaDataItem>
+    <MetaDataItem id="1203" name="FrequencyName" type="2012">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Vision Security Repeater ZR1202US</MetaDataItem>
+    <MetaDataItem name="Description">Repeater</MetaDataItem>
+    <MetaDataItem id="1203" name="Identifier" type="2012">ZR1202US</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/990/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/vision/zs5101eu.xml b/Config/vision/zs5101eu.xml
index 55b7ea4af8..873bcd6675 100644
--- a/Config/vision/zs5101eu.xml
+++ b/Config/vision/zs5101eu.xml
@@ -1,9 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-        <CommandClass id="32" setasreport="true"/>
-        <CommandClass id="133">
-                <Associations num_groups="1">
-                        <Group index="1" max_associations="5" label="Send Command when shock is detected"  />
-                </Associations>
-        </CommandClass>
-</Product>
\ No newline at end of file
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Send Command when shock is detected" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/vision/zs610eu.xml b/Config/vision/zs610eu.xml
new file mode 100644
index 0000000000..0015934afb
--- /dev/null
+++ b/Config/vision/zs610eu.xml
@@ -0,0 +1,27 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:0403:2004</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zs610eu.png</MetaDataItem>
+    <MetaDataItem id="0403" name="ZWProductPage" type="2004">https://products.z-wavealliance.org/products/860/</MetaDataItem>
+    <MetaDataItem name="Name">Smoke Detector</MetaDataItem>
+    <MetaDataItem id="0403" name="Identifier" type="2004">ZS610EU</MetaDataItem>
+    <MetaDataItem name="Description">ZS 6101 Smoke Detector
+ 
+Features:
+*Photoelectron Smoke Detect
+*Smoke sensitivity: 0.5%/ft~4.0%/ft
+*Low battery detection
+*LED Status Indicator
+*100ft Line of Sight
+*Z-Wave 5.02 SDK
+*100ft line of sight
+*Operating temp: -10oC~60oC
+*Working Voltage: 3V
+*Dimensions: 120*120*48.2mm</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.visionsecurity.com.tw/ha_products_page2_154_191.html</MetaDataItem>
+    <MetaDataItem id="0403" name="FrequencyName" type="2004">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/860/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/vision/zu1401jp.xml b/Config/vision/zu1401jp.xml
new file mode 100644
index 0000000000..50488f3187
--- /dev/null
+++ b/Config/vision/zu1401jp.xml
@@ -0,0 +1,14 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0109:0101:1001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vision/zu1401jp.png</MetaDataItem>
+    <MetaDataItem id="0101" name="ZWProductPage" type="1001">https://products.z-wavealliance.org/products/849/</MetaDataItem>
+    <MetaDataItem id="0101" name="FrequencyName" type="1001">Japan</MetaDataItem>
+    <MetaDataItem id="0101" name="Identifier" type="1001">ZU1401JP</MetaDataItem>
+    <MetaDataItem name="Description">Z-wave USB dongle</MetaDataItem>
+    <MetaDataItem name="Name">USB Dongle</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/849/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/vitrum/vitrumBS.xml b/Config/vitrum/vitrumBS.xml
deleted file mode 100644
index 49ffbf2dda..0000000000
--- a/Config/vitrum/vitrumBS.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Multi-Instance configuration -->
- 	<CommandClass id="96" mapping="endpoints" ignoreUnsolicitedMultiChnCapReport="true" />
-</Product>
\ No newline at end of file
diff --git a/Config/vitrum/vitrumI-Dimmer.xml b/Config/vitrum/vitrumI-Dimmer.xml
new file mode 100644
index 0000000000..12525fa414
--- /dev/null
+++ b/Config/vitrum/vitrumI-Dimmer.xml
@@ -0,0 +1,34 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010A:4900:1100</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vitrum/vitrumI-Dimmer.png</MetaDataItem>
+    <MetaDataItem id="4900" name="ZWProductPage" type="1100">https://products.z-wavealliance.org/products/121/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.ivitrum.com/index.php?file=contact</MetaDataItem>
+    <MetaDataItem name="Name">Vitrum I EU dimmer wireless</MetaDataItem>
+    <MetaDataItem name="Description">1 channel Dimmer - 503 BOX - Wireless. ne button Smart Glass Switch 
+Switch Device for Modbus System
+with one switche for lighting control 
+or alternatively, sequential 
+pre-programmed settings
+Configurable aural feedback 
+
+
+Available in British Standard &amp; European Standard;
+Dimensions:BS 95x95mm; EU 125x95mm; 
+Dimming is by the "iPod ®-like" touch control
+Capacitive technology to adjust lighting level</MetaDataItem>
+    <MetaDataItem id="4900" name="FrequencyName" type="1100">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ivitrum.com/index.php?file=prodotti&amp;form_id_products=12&amp;qt=1</MetaDataItem>
+    <MetaDataItem id="4900" name="Identifier" type="1100">Vitrum I EU</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/121/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Multi-Instance configuration -->
+  <CommandClass id="96">
+    <Compatibility>
+      <IgnoreMCCapReports>true</IgnoreMCCapReports>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/vitrum/vitrumI-Switch.xml b/Config/vitrum/vitrumI-Switch.xml
new file mode 100644
index 0000000000..17e787a31e
--- /dev/null
+++ b/Config/vitrum/vitrumI-Switch.xml
@@ -0,0 +1,33 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010A:5100:1200</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vitrum/vitrumI-Switch.png</MetaDataItem>
+    <MetaDataItem id="5100" name="ZWProductPage" type="1200">https://products.z-wavealliance.org/products/8/</MetaDataItem>
+    <MetaDataItem id="5100" name="FrequencyName" type="1200">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.ivitrum.com/index.php?file=contact</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.vitrum.com/eng/content/vitrum-i</MetaDataItem>
+    <MetaDataItem name="Name">Vitrum I EU on-off wireless</MetaDataItem>
+    <MetaDataItem name="Description">1 channel Switch - 503 BOX - ZWavene button Smart Glass Switch 
+Switch Device for Modbus System
+with one switche for lighting control 
+or alternatively, sequential 
+pre-programmed settings
+Configurable aural feedback
+
+Available in British Standard &amp; European Standard;
+Dimensions:BS 95x95mm; EU 125x95mm; 
+Dimming is by the "iPod ®-like" touch control
+Capacitive technology to adjust lighting level. </MetaDataItem>
+    <MetaDataItem id="5100" name="Identifier" type="1200">01E010020</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/8/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Multi-Instance configuration -->
+  <CommandClass id="96">
+    <Compatibility>
+      <IgnoreMCCapReports>true</IgnoreMCCapReports>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/vitrum/vitrumII-Blind.xml b/Config/vitrum/vitrumII-Blind.xml
new file mode 100644
index 0000000000..49c84c275c
--- /dev/null
+++ b/Config/vitrum/vitrumII-Blind.xml
@@ -0,0 +1,26 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010A:5A00:1300</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vitrum/vitrumII-Blind.png</MetaDataItem>
+    <MetaDataItem id="5A00" name="ZWProductPage" type="1300">https://products.z-wavealliance.org/products/7/</MetaDataItem>
+    <MetaDataItem name="Description">Switch with two touch keys for control of curtains and roller blinds
+Two-button roll-down shutters and curtains control
+Touch control with capacitive technology and concave surface for tactile identification of the switch itself
+Acoustic feedback signal
+Crown backlit by low-consumption LEDs</MetaDataItem>
+    <MetaDataItem name="Name">VITRUM II Control of Roller Blinds - EU BOX</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.vitrum.com/eng/content/vitrum-ii-roll-down-shutter-and-curtain-control</MetaDataItem>
+    <MetaDataItem id="5A00" name="FrequencyName" type="1300">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.vitrum.com/eng/content/vitrum-ii-roll-down-shutter-and-curtain-control</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/7/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Multi-Instance configuration -->
+  <CommandClass id="96">
+    <Compatibility>
+      <IgnoreMCCapReports>true</IgnoreMCCapReports>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/vitrum/vitrumII-Dimmer.xml b/Config/vitrum/vitrumII-Dimmer.xml
new file mode 100644
index 0000000000..327edb1666
--- /dev/null
+++ b/Config/vitrum/vitrumII-Dimmer.xml
@@ -0,0 +1,41 @@
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010A:8A00:2100</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vitrum/vitrumII-Dimmer.png</MetaDataItem>
+    <MetaDataItem id="8A00" name="ZWProductPage" type="2100">https://products.z-wavealliance.org/products/94/</MetaDataItem>
+    <MetaDataItem name="Description">2 channel Dimmer - 503 BOX - ZWave. Smart Switch II
+
+Two buttons Smart Glass Switch 
+Switch Device for Modbus System
+with two switches for lighting control 
+or alternatively, sequential 
+pre-programmed settings
+Configurable aural feedback 
+
+
+Available in British Standard &amp; European Standard;
+Dimensions:BS 95x95mm; EU 125x95mm; 
+On/Off by "One Touch"
+Dimming is by the "iPod ®-like" touch control
+Capacitive technology to adjust lighting level</MetaDataItem>
+    <MetaDataItem id="8A00" name="Identifier" type="2100">Vitrum II BS</MetaDataItem>
+    <MetaDataItem name="Name">Vitrum II EU dimmer wireless</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ivitrum.com/index.php?file=prodotti&amp;form_id_products=13&amp;qt=1</MetaDataItem>
+    <MetaDataItem id="8A00" name="FrequencyName" type="2100">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.ivitrum.com/index.php?file=contact</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/94/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/120/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="4A00" name="ZWProductPage" type="1100">https://products.z-wavealliance.org/products/120/</MetaDataItem>
+    <MetaDataItem id="4A00" name="Identifier" type="1100">Vitrum II EU</MetaDataItem>
+    <MetaDataItem id="4A00" name="FrequencyName" type="1100">CEPT (Europe)</MetaDataItem>
+  </MetaData>
+  <!-- Multi-Instance configuration -->
+  <CommandClass id="96">
+    <Compatibility>
+      <IgnoreMCCapReports>true</IgnoreMCCapReports>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/vitrum/vitrumII-Switch.xml b/Config/vitrum/vitrumII-Switch.xml
new file mode 100644
index 0000000000..afcc061c4d
--- /dev/null
+++ b/Config/vitrum/vitrumII-Switch.xml
@@ -0,0 +1,37 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010A:5200:1200</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/vitrum/vitrumII-Switch.png</MetaDataItem>
+    <MetaDataItem id="5200" name="ZWProductPage" type="1200">https://products.z-wavealliance.org/products/87/</MetaDataItem>
+    <MetaDataItem id="5200" name="Identifier" type="1200">Vitrum II EU on-off</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.ivitrum.com/index.php?file=contact</MetaDataItem>
+    <MetaDataItem id="5200" name="FrequencyName" type="1200">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Vitrum II EU on-off wireless</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.ivitrum.com/index.php?file=prodotti&amp;form_id_products=13&amp;qt=1</MetaDataItem>
+    <MetaDataItem name="Description">2 channel Switch - 503 BOX - ZWave. Smart Switch II
+
+Two buttons Smart Glass Switch 
+Switch Device for Modbus System
+with two switches for lighting control 
+or alternatively, sequential 
+pre-programmed settings
+Configurable aural feedback 
+
+
+Available in British Standard &amp; European Standard;
+Dimensions:BS 95x95mm; EU 125x95mm; 
+On/Off by "One Touch"
+Dimming is by the "iPod ®-like" touch control
+Capacitive technology to adjust lighting level</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/87/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Multi-Instance configuration -->
+  <CommandClass id="96">
+    <Compatibility>
+      <IgnoreMCCapReports>true</IgnoreMCCapReports>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/vitrum/vitrumIII-Dimmer.xml b/Config/vitrum/vitrumIII-Dimmer.xml
new file mode 100644
index 0000000000..32ec163a72
--- /dev/null
+++ b/Config/vitrum/vitrumIII-Dimmer.xml
@@ -0,0 +1,9 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Multi-Instance configuration -->
+  <CommandClass id="96">
+    <Compatibility>
+      <IgnoreMCCapReports>true</IgnoreMCCapReports>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/vitrum/vitrumIII-Switch.xml b/Config/vitrum/vitrumIII-Switch.xml
new file mode 100644
index 0000000000..32ec163a72
--- /dev/null
+++ b/Config/vitrum/vitrumIII-Switch.xml
@@ -0,0 +1,9 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Multi-Instance configuration -->
+  <CommandClass id="96">
+    <Compatibility>
+      <IgnoreMCCapReports>true</IgnoreMCCapReports>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/vitrum/vitrumIV-Switch.xml b/Config/vitrum/vitrumIV-Switch.xml
new file mode 100644
index 0000000000..32ec163a72
--- /dev/null
+++ b/Config/vitrum/vitrumIV-Switch.xml
@@ -0,0 +1,9 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Multi-Instance configuration -->
+  <CommandClass id="96">
+    <Compatibility>
+      <IgnoreMCCapReports>true</IgnoreMCCapReports>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/vitrum/vitrumVI-Switch.xml b/Config/vitrum/vitrumVI-Switch.xml
new file mode 100644
index 0000000000..32ec163a72
--- /dev/null
+++ b/Config/vitrum/vitrumVI-Switch.xml
@@ -0,0 +1,9 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Multi-Instance configuration -->
+  <CommandClass id="96">
+    <Compatibility>
+      <IgnoreMCCapReports>true</IgnoreMCCapReports>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+</Product>
diff --git a/Config/waynedalton/WDTC-20.xml b/Config/waynedalton/WDTC-20.xml
index 720d10503e..b9887aa8be 100644
--- a/Config/waynedalton/WDTC-20.xml
+++ b/Config/waynedalton/WDTC-20.xml
@@ -1,8 +1,10 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-	<!-- Wayne Dalton Thermostat Model WDTC-20 -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Wayne Dalton Thermostat Model WDTC-20 -->
 
 	<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
-	<CommandClass id="67" base="0" />
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/Config/wenzhou/sm103.xml b/Config/wenzhou/sm103.xml
index 7b56ce0556..cc354b5b63 100644
--- a/Config/wenzhou/sm103.xml
+++ b/Config/wenzhou/sm103.xml
@@ -1,35 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="1" genre="config" label="On Level" units="" min="0" max="127" value="99">
-			<Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="On Level" max="127" min="0" type="byte" units="" value="99">
+      <Help>
 				Defines the level in the event sent when the sensor is triggered.  Default is 99 (full brightness for a Z-Wave dimmer). 100-127 will set device on to the last value it was when turned off.
 			</Help>
-		</Value>
-		<Value type="byte" index="2" genre="config" label="Off Time" units="seconds" min="0" max="127" value="1">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" label="Off Time" max="127" min="0" type="byte" units="seconds" value="1">
+      <Help>
 				On Time sets the number of seconds the sensor stays alerted before the off event is sent.
 			</Help>
-		</Value>
-		<Value type="byte" index="3" genre="config" label="Power Saving" units="" min="0" max="127" value="0">
-			<Help>
+    </Value>
+    <Value genre="config" index="3" label="Power Saving" max="127" min="0" type="byte" units="" value="0">
+      <Help>
 			  	Enable/Disable power saving mode. 0 enables.
 			</Help>
-		</Value>
-	</CommandClass>
-
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-	<!-- COMMAND_CLASS_ALARM.  This class is supported but is missing from the list reported by the SM103 -->
-	<CommandClass id="113" action="add" getsupported="false" />
-
-	<!-- COMMAND_CLASS_ASSOCIATION. Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Reports"  />
-		</Associations>
-	</CommandClass>
-
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM.  This class is supported but is missing from the list reported by the SM103 -->
+  <CommandClass action="add" id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION. Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Reports" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
-
diff --git a/Config/wenzhou/tsp01.xml b/Config/wenzhou/tsp01.xml
index 6076f0df99..65ae22b13d 100644
--- a/Config/wenzhou/tsp01.xml
+++ b/Config/wenzhou/tsp01.xml
@@ -1,48 +1,68 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
- 
-<!-- Wenzhou TKB Control System: TSP01 Z-Wave 3 in 1 PIR Motion sensor -->
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0118:0002:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wenzhou/tsp01.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/839/</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0002">TSM02U</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0002">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">PIR, door/window, temperature and illumination, 4 sensors function in one.
 
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
+ - (1)Door/window (2)PIR (3)illumination and (4)temperature functions in one sensor
+ - Adopt newest Z-wave 400 series chip, support multichannel operation and higher data rate (9.6/40/100kbps)
+ - Higher output power (+2.5dBm output power as compared to -2.5dBm 300 series Z-wave module) to enhance the communication range
+ - 1500mA CR123A lithium battery to guarantee 2 year battery life
+ - Built in light sensor while applied to light control
+ - Adopt Z-Wave protocol to secure the success of wireless two way communication
+ - With Tamper proof protection
+ - Easy install
+ - Low battery indication
+ - Auto report the open/close status and battery status
+ - FCC part15.249 / EN300 220-1/ certification
+ - NCC</MetaDataItem>
+    <MetaDataItem name="Name">TSM02U Multi-Sensor</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.tkbhome.com/?cn-p-d-257.html</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/838/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/839/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Wenzhou TKB Control System: TSP01 Z-Wave 3 in 1 PIR Motion sensor -->
 
-		<Value type="byte" instance="1" index="2" genre="config" label="Basic Set Level" min="1" max="255" value="255">
-			<Help>
+	<!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" instance="1" label="Basic Set Level" max="255" min="1" type="byte" value="255">
+      <Help>
 				Setting the BASIC command value to turn on the light. The 0xFF (255) means turn on the light. 
 				For dimmer equipment 1 to 100 means the light strength.
 			</Help>
-		</Value>
-
-		<Value type="byte" instance="1" index="3" genre="config" label="PIR Sensitivity" min="0" max="99" value="70">
-			 <Help>PIR sensitivity settings. 
+    </Value>
+    <Value genre="config" index="3" instance="1" label="PIR Sensitivity" max="99" min="0" type="byte" value="70">
+      <Help>PIR sensitivity settings. 
 				0 means disable the PIR motion.
 				1 means the lowest sensitivity.
 				99 means the highest sensitivity.
 				High sensitivity means can detect long distance, but if there is more noise signal in the environment, it will re-trigger too frequently.</Help>
-		</Value>
-	
-		<Value type="byte" instance="1" index="4" genre="config" label="Light threshold" min="0" max="100" value="99">
-			<Help>Setting the illumination threshold to turn on the light. When the event triggered and the environment illumination lower than 
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Light threshold" max="100" min="0" type="byte" value="99">
+      <Help>Setting the illumination threshold to turn on the light. When the event triggered and the environment illumination lower than 
 				the threshold, the device will turn on the light.
 				0 means turn off illumination detected function and never turn on the light.
 				1 means darkest.
 				99 means brightest.
 				100 means turn off illumination detected function. And always turn on the light.
 				* Notice * in none test mode, only the value in 1 to 99 will enable the illumination detected function and update the illumination value.</Help>
-		</Value>
-	
-		<Value type="byte" instance="1" index="5" genre="config" label="Operation Mode" min="0" max="127" value="0">
-			 <Help>Bit 0: 1 means security mode; 0 means home automation mode.
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Operation Mode" max="127" min="0" type="byte" value="0">
+      <Help>Bit 0: 1 means security mode; 0 means home automation mode.
 				Bit 1: 1 means enable test mode; 0 means disable test mode.
 				* Notice * Bit 0 and bit 1 will effect when the DIP Switch setting to program mode. If bit1 is enabled, the bit0 is useless.
 				Bit 2: Reserved, always 1.
 				Bit 3: Setting the temperature scale; 0: Fahrenheit, 1:Celsius
 				Bit 4: Disable illumination report after event triggered.
 				Bit 5: Disable temperature report after event triggered.</Help>
-		</Value>
-
-		<Value type="byte" instance="1" index="6" genre="config" label="Multi-Sensor Function Switch" min="0" max="127" value="4">
-			 <Help>Multi-Sensor Function switch. Using bit to control.
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Multi-Sensor Function Switch" max="127" min="0" type="byte" value="4">
+      <Help>Multi-Sensor Function switch. Using bit to control.
 				Bit 0: Reserved, always 1.
 				Bit 1: Disable PIR integrate Illumination.
 				Bit 2: Reserved, always 1.
@@ -51,50 +71,43 @@
 				Bit 5: Reserved.
 				Bit 6: Enable temperature monitoring. When this bit enabled, the temperature changed 3 degree Fahrenheit, it will report. 
 				And also the temperature over 140 degree Fahrenheit, it will report every 64 seconds.</Help>
-		</Value>
-
-		<Value type="byte" instance="1" index="8" genre="config" label="PIR re-detect interval time" units="8 sec" min="3" max="27" value="3">
-			 <Help>In the security mode, after the PIR report motion detected, setting the re-detect time. 8 seconds per tick, and minimum time is 24 seconds, default tick is 3 (24 seconds). Setting the suitable value to prevent received the trigger signal too frequency. Also can save the battery energy. * Notice * If this value bigger than the configuration setting NO. 9. There is a period after the light turned off and the PIR not detecting.</Help>
-		</Value>
-	
-		<Value type="byte" instance="1" index="9" genre="config" label="Turn Off Light Time" units="8 sec" min="4" max="127" value="4">
-			 <Help>After turn on the light, setting the delay time to turn off the light when the PIR motion is not detected. 8 seconds per tick, and minimum time is 32 seconds, default tick is 4 (32 seconds).</Help>
-		</Value>
- 
-		<Value type="byte" instance="1" index="10" genre="config" label="Auto Report Battery Time" units="30 min" min="1" max="127" value="12">
-			<Help>The interval time for auto report the battery level. 30 minutes per tick and minimum time is 30 minutes, default tick is 12 (6 hours)</Help>
-		</Value>
- 
-		<Value type="byte" instance="1" index="12" genre="config" label="Auto Report Illumination Time" units="30 min" min="1" max="127" value="12">
-			<Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="PIR re-detect interval time" max="27" min="3" type="byte" units="8 sec" value="3">
+      <Help>In the security mode, after the PIR report motion detected, setting the re-detect time. 8 seconds per tick, and minimum time is 24 seconds, default tick is 3 (24 seconds). Setting the suitable value to prevent received the trigger signal too frequency. Also can save the battery energy. * Notice * If this value bigger than the configuration setting NO. 9. There is a period after the light turned off and the PIR not detecting.</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Turn Off Light Time" max="127" min="4" type="byte" units="8 sec" value="4">
+      <Help>After turn on the light, setting the delay time to turn off the light when the PIR motion is not detected. 8 seconds per tick, and minimum time is 32 seconds, default tick is 4 (32 seconds).</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Auto Report Battery Time" max="127" min="1" type="byte" units="30 min" value="12">
+      <Help>The interval time for auto report the battery level. 30 minutes per tick and minimum time is 30 minutes, default tick is 12 (6 hours)</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Auto Report Illumination Time" max="127" min="1" type="byte" units="30 min" value="12">
+      <Help>
 				 The interval time for auto report the illumination.
 				 30 minutes per tick and minimum time is 30 minutes, default tick is 12 (6 hours)
 			</Help>
-		</Value>
- 
-		<Value type="byte" instance="1" index="13" genre="config" label="Auto Report Temperature time" units="30 min" min="1" max="127" value="12">
-			<Help>The interval time for auto report the temperature. 30 minutes per tick and minimum time is 30 minutes, default tick is 12 (6 hours)</Help>
-		</Value>
- 
-	</CommandClass>
-
-	<!-- Basic set as report -->
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Auto Report Temperature time" max="127" min="1" type="byte" units="30 min" value="12">
+      <Help>The interval time for auto report the temperature. 30 minutes per tick and minimum time is 30 minutes, default tick is 12 (6 hours)</Help>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
 	<!-- <CommandClass id="32" setasreport="true" ignoremapping="true"/> -->
- 
-	<CommandClass id="48" create_vars="false">
-			<Instance index="1" />
-			<Value type="bool" genre="user" instance="1" index="0" label="Motion Sensor" read_only="true" write_only="false" min="0" max="0" value="false" />
-			<Value type="bool" genre="user" instance="1" index="1" label="Tamper Sensor" read_only="true" write_only="false" min="0" max="0" value="false" />
-			<SensorMap index="0" type="12" />
-			<SensorMap index="1" type="8" />
-	</CommandClass>
- 
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="7" label="Report message" />
-			<Group index="2" max_associations="7" label="Light control" auto="true"/>
-		</Associations>
-	</CommandClass>
-
+  <CommandClass id="48">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Motion Sensor" max="0" min="0" read_only="true" type="bool" value="false" write_only="false"/>
+    <Value genre="user" index="1" instance="1" label="Tamper Sensor" max="0" min="0" read_only="true" type="bool" value="false" write_only="false"/>
+    <SensorMap index="0" type="12"/>
+    <SensorMap index="1" type="8"/>
+    <Compatibility>
+      <CreateVars>false</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Report message" max_associations="7"/>
+      <Group auto="true" index="2" label="Light control" max_associations="7"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/wenzhou/tz55.xml b/Config/wenzhou/tz55.xml
index 915d5a8288..bb40c99eca 100644
--- a/Config/wenzhou/tz55.xml
+++ b/Config/wenzhou/tz55.xml
@@ -1,22 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0118:0004:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wenzhou/tz55.png</MetaDataItem>
+    <MetaDataItem id="0004" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1444/</MetaDataItem>
+    <MetaDataItem name="Name">Smart Plug in Switch</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Have Z-Wave controller with exclusion mode
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+2. Press the socket on/off button three times within 1.5 seconds to be excluded from the controller</MetaDataItem>
+    <MetaDataItem id="0004" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">1. This plug-in ON/OFF switch in a transceiver which is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. 
+2. Each socket is designed to act as a repeater. Repeaters will re-transmit the RF signal to ensure the signal to ensure that the signal is received by its intended destination.
+3. You can use the button in the socket to include/exclude, manually on/off or act as a indicator. You can use it to turn on/off appliance remotely via smart phone or computer.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Press the socket on/off button three times within 1.5 seconds
+2.  then within 1 second to press and hold on for 5 seconds until the socket button LED is off, reset to factory default successfully
+3. Use this procedure only in the event that the network primary controller is missing or otherwise inoperable 
+</MetaDataItem>
+    <MetaDataItem id="0004" name="Identifier" type="0003">TZ68E</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1444/TZ68G User Manual.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Have Z-Wave controller with inclusion mode
+
+2. Press the socket on/off button three times within 1.5 seconds to be included to the controller</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1444/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="1" label="Night light" min="0" max="1" value="1">
-		  <Help>The LED on the TZ55D will by default, turn ON when the load attached is turned OFF. To make the LED turn ON when the load attached is turned ON instead, set parameter to a value of 1.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="2" label="Memory Function" min="0" max="1" value="1">
-		  <Help>Stated in the above form,switch by default value is 1,when the value is 0,switch memory function not open; when the value is 1,open switch memory function</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="Invert switch" min="0" max="1" value="0">
-		  <Help>To change the top of the switch to OFF and the bottom of the switch ON , set parameter 4 to 1.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="LED Transmission indication" min="0" max="2" value="1">
-		  <Help>The TZ56-D will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all (set to 0), to flicker the entire time it is transmitting (set to 1), or to flicker for only 1 second when it begins transmitting (set to 2). By default, the TZ55D is set to flicker for only 1 second.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="5" label="Suspend Group 4" min="0" max="1" value="0">
-		  <Help>Setting this parameter to the value of 1 will stop the TZ55D from transmitting to devices that are associated into Group 4.</Help>
-		</Value>
-	</CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Night light" max="1" min="0" type="byte" value="1">
+      <Help>The LED on the TZ55D will by default, turn ON when the load attached is turned OFF. To make the LED turn ON when the load attached is turned ON instead, set parameter to a value of 1.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Memory Function" max="1" min="0" type="byte" value="1">
+      <Help>Stated in the above form,switch by default value is 1,when the value is 0,switch memory function not open; when the value is 1,open switch memory function</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Invert switch" max="1" min="0" type="byte" value="0">
+      <Help>To change the top of the switch to OFF and the bottom of the switch ON , set parameter 4 to 1.</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="LED Transmission indication" max="2" min="0" type="byte" value="1">
+      <Help>The TZ56-D will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all (set to 0), to flicker the entire time it is transmitting (set to 1), or to flicker for only 1 second when it begins transmitting (set to 2). By default, the TZ55D is set to flicker for only 1 second.</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Suspend Group 4" max="1" min="0" type="byte" value="0">
+      <Help>Setting this parameter to the value of 1 will stop the TZ55D from transmitting to devices that are associated into Group 4.</Help>
+    </Value>
+  </CommandClass>
 </Product>
diff --git a/Config/wenzhou/tz56.xml b/Config/wenzhou/tz56.xml
index 0f8635f313..4f89f371fc 100644
--- a/Config/wenzhou/tz56.xml
+++ b/Config/wenzhou/tz56.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Configuration -->
 	<CommandClass id="112">
 		<Value type="byte" genre="config" instance="1" index="1" label="Night light" min="0" max="1" value="1">
diff --git a/Config/wenzhou/tz56s.xml b/Config/wenzhou/tz56s.xml
index 394e1055c8..4a05d5b4c9 100644
--- a/Config/wenzhou/tz56s.xml
+++ b/Config/wenzhou/tz56s.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 	<!--
 	Wenzhou TKB Control System TZ56S Wall mounted switch
 	https://products.z-wavealliance.org/products/1412
diff --git a/Config/wenzhou/tz57.xml b/Config/wenzhou/tz57.xml
index 3080229b54..604077b76a 100644
--- a/Config/wenzhou/tz57.xml
+++ b/Config/wenzhou/tz57.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     Wenzhou TKB Control System TZ57 Two channel switch
     -->
@@ -46,4 +46,4 @@
         </Associations>
     </CommandClass>
 
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/wenzhou/tz65d.xml b/Config/wenzhou/tz65d.xml
index ed69f960c7..787846d315 100644
--- a/Config/wenzhou/tz65d.xml
+++ b/Config/wenzhou/tz65d.xml
@@ -1,42 +1,56 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0118:0808:0808</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wenzhou/tz65d.png</MetaDataItem>
+    <MetaDataItem id="0808" name="ZWProductPage" type="0808">https://products.z-wavealliance.org/products/1362/</MetaDataItem>
+    <MetaDataItem id="0808" name="Identifier" type="0808">TZ35D</MetaDataItem>
+    <MetaDataItem name="Name">TKB TZ35D Dimmer</MetaDataItem>
+    <MetaDataItem id="0808" name="FrequencyName" type="0808">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">Z-Wave dimmer switch</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1359/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1360/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1361/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1362/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
-        <CommandClass id="112">
-                <Value type="byte" genre="config" instance="1" index="1" label="Set Ignore start level bit when transmitting dim commands" min="0" max="1" value="1">
-                  <Help>If the bit is set to 1, the dimmer will ignore the start level and instead start dimming from its current level. If this bit is set to 0, the dimmer will not ignore the start level.</Help>
-                </Value>
-                <Value type="byte" genre="config" instance="1" index="2" label="Disable transmitting to group 4" min="0" max="1" value="0">
-                  <Help>Setting this parameter to the value of 1 will stop the TZ66D from transmitting to devices that are associated into Group 4.</Help>
-                </Value>
-                <Value type="byte" genre="config" instance="1" index="3" label="Night light" min="0" max="1" value="0">
-                  <Help>The LED on the TZ65D will by default, turn ON when the load attached is turned OFF. To make the LED turn ON when the load attached is turned ON instead, set parameter to a value of 1.</Help>
-                </Value>
-                <Value type="byte" genre="config" instance="1" index="4" label="Invert switch" min="0" max="1" value="0">
-                  <Help>To change the top of the switch to OFF and the bottom of the switch ON , set parameter 4 to 1.</Help>
-                </Value>
-                <Value type="byte" genre="config" instance="1" index="14" label="Enable shade control Group 2" min="0" max="1" value="0">
-                  <Help>The TZ66D can operate shade control devices via its Group 2 if this configuration parameter is set to 1.</Help>
-                </Value>
-                <Value type="byte" genre="config" instance="1" index="15" label="Enable shade control Group 3" min="0" max="1" value="0">
-                  <Help>The TZ66D can operate shade control devices via its Group 3 if this configuration parameter is set to 1.</Help>
-                </Value>
-                <Value type="byte" genre="config" instance="1" index="19" label="LED Transmission indication" min="0" max="2" value="2">
-                  <Help>The TZ66-D will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all (set to 0), to flicker the entire time it is transmitting (set to 1), or to flicker for only 1 second when it begins transmitting (set to 2). By default, the TZ66D is set to flicker for only 1 second.</Help>
-                </Value>
-                <Value type="byte" genre="config" instance="1" index="20" label="Poll Group 2 Interval (minutes)" min="1" max="255" value="2">
-                  <Help>The TZ66D can operate shade control devices via its Group 3 if this configuration parameter is set to 1.</Help>
-                </Value>
-                <Value type="byte" genre="config" instance="1" index="22" label="Poll Group 2" min="0" max="1" value="1">
-                  <Help>If value is 0, the TZ66D will not poll Group 2. If value is 1, the TZ66D will poll Group 2 at the interval set in Configuration Parameter 20.</Help>
-                </Value>
-        </CommandClass>
-      <!-- Association Groups -->
-        <CommandClass id="133">
-                <Associations num_groups="4">
-                        <Group index="1" max_associations="5" label="Group 1 Tap left paddle once" auto="false"/>
-                        <Group index="2" max_associations="5" label="Group 2 Tap right paddle once"  />
-                        <Group index="3" max_associations="5" label="Group 3 Tap right paddle twice"  />
-                        <Group index="4" max_associations="5" label="Send updates every command" auto="true"/>
-                </Associations>
-        </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Set Ignore start level bit when transmitting dim commands" max="1" min="0" type="byte" value="1">
+      <Help>If the bit is set to 1, the dimmer will ignore the start level and instead start dimming from its current level. If this bit is set to 0, the dimmer will not ignore the start level.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Disable transmitting to group 4" max="1" min="0" type="byte" value="0">
+      <Help>Setting this parameter to the value of 1 will stop the TZ66D from transmitting to devices that are associated into Group 4.</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Night light" max="1" min="0" type="byte" value="0">
+      <Help>The LED on the TZ65D will by default, turn ON when the load attached is turned OFF. To make the LED turn ON when the load attached is turned ON instead, set parameter to a value of 1.</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Invert switch" max="1" min="0" type="byte" value="0">
+      <Help>To change the top of the switch to OFF and the bottom of the switch ON , set parameter 4 to 1.</Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Enable shade control Group 2" max="1" min="0" type="byte" value="0">
+      <Help>The TZ66D can operate shade control devices via its Group 2 if this configuration parameter is set to 1.</Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Enable shade control Group 3" max="1" min="0" type="byte" value="0">
+      <Help>The TZ66D can operate shade control devices via its Group 3 if this configuration parameter is set to 1.</Help>
+    </Value>
+    <Value genre="config" index="19" instance="1" label="LED Transmission indication" max="2" min="0" type="byte" value="2">
+      <Help>The TZ66-D will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all (set to 0), to flicker the entire time it is transmitting (set to 1), or to flicker for only 1 second when it begins transmitting (set to 2). By default, the TZ66D is set to flicker for only 1 second.</Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Poll Group 2 Interval (minutes)" max="255" min="1" type="byte" value="2">
+      <Help>The TZ66D can operate shade control devices via its Group 3 if this configuration parameter is set to 1.</Help>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="Poll Group 2" max="1" min="0" type="byte" value="1">
+      <Help>If value is 0, the TZ66D will not poll Group 2. If value is 1, the TZ66D will poll Group 2 at the interval set in Configuration Parameter 20.</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group auto="false" index="1" label="Group 1 Tap left paddle once" max_associations="5"/>
+      <Group index="2" label="Group 2 Tap right paddle once" max_associations="5"/>
+      <Group index="3" label="Group 3 Tap right paddle twice" max_associations="5"/>
+      <Group auto="true" index="4" label="Send updates every command" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/wenzhou/tz66d.xml b/Config/wenzhou/tz66d.xml
index 3cda74a2b9..a6243168b0 100644
--- a/Config/wenzhou/tz66d.xml
+++ b/Config/wenzhou/tz66d.xml
@@ -1,35 +1,48 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- http://products.z-wavealliance.org/products/45 -->
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0118:1020:0102</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wenzhou/tz66d.png</MetaDataItem>
+    <MetaDataItem id="1020" name="ZWProductPage" type="0102">https://products.z-wavealliance.org/products/45/</MetaDataItem>
+    <MetaDataItem name="Description">The TKB Z-Wave dual wall switch is switching attached loads and is controlled either by the local switching paddle or remotely via the Z-Wave wireless protocol
+It is included and controlled in a Z-Wave network by a remote control, a wireless control centre or any other kind of Z-Wave controller including a PC-software.
+Beside the local switch the unit can control other Z-Wave units remotely in up to three additional Z-Wave groups, which are associated with this device. Tipping one time or two times the switching paddle performs the control. The left paddle controls the local load while the right paddle remotely controls Z-Wave associated devices only. The association of further Z-Wave devices needs to be done by a Z-Wave controller. The unit is powered by 230V power and needs a pattress box with 230 V power wires for installation. The unit is shipped completely with electronics, switching paddle and mounting frame in white style. It is designed for use within a 3-wire system, which means that a neutral wire is needed for operations.</MetaDataItem>
+    <MetaDataItem id="1020" name="FrequencyName" type="0102">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.tkbhome.com/guestbook.php</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.tkbhome.com/?cn-p-d-170.html</MetaDataItem>
+    <MetaDataItem id="1020" name="Identifier" type="0102">TZ66D</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave Dual Wall Switch</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/45/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="1" label="Set Ignore start level bit when transmitting dim commands" min="0" max="1" value="1">
-		  <Help>If the bit is set to 1, the dimmer will ignore the start level and instead start dimming from its current level. If this bit is set to 0, the dimmer will not ignore the start level.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="2" label="Disable transmitting to group 4" min="0" max="1" value="0">
-		  <Help>Setting this parameter to the value of 1 will stop the TZ66D from transmitting to devices that are associated into Group 4.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="3" label="Night light" min="0" max="1" value="0">
-		  <Help>The LED on the TZ66D will by default, turn ON when the load attached is turned OFF. To make the LED turn ON when the load attached is turned ON instead, set parameter to a value of 1.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="4" label="Invert switch" min="0" max="1" value="0">
-		  <Help>To change the top of the switch to OFF and the bottom of the switch ON , set parameter 4 to 1.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="14" label="Enable shade control Group 2" min="0" max="1" value="0">
-		  <Help>The TZ66D can operate shade control devices via its Group 2 if this configuration parameter is set to 1.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="15" label="Enable shade control Group 3" min="0" max="1" value="0">
-		  <Help>The TZ66D can operate shade control devices via its Group 3 if this configuration parameter is set to 1.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="19" label="LED Transmission indication" min="0" max="2" value="2">
-		  <Help>The TZ66-D will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all (set to 0), to flicker the entire time it is transmitting (set to 1), or to flicker for only 1 second when it begins transmitting (set to 2). By default, the TZ66D is set to flicker for only 1 second.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="20" label="Poll Group 2 Interval (minutes)" min="1" max="255" value="2">
-		  <Help>Defines the poll interval in minutes for group 2 if polling is activated.</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="22" label="Poll Group 2" min="0" max="1" value="1">
-		  <Help>If value is 0, the TZ66D will not poll Group 2. If value is 1, the TZ66D will poll Group 2 at the interval set in Configuration Parameter 20.</Help>
-		</Value>
-	</CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Set Ignore start level bit when transmitting dim commands" max="1" min="0" type="byte" value="1">
+      <Help>If the bit is set to 1, the dimmer will ignore the start level and instead start dimming from its current level. If this bit is set to 0, the dimmer will not ignore the start level.</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Disable transmitting to group 4" max="1" min="0" type="byte" value="0">
+      <Help>Setting this parameter to the value of 1 will stop the TZ66D from transmitting to devices that are associated into Group 4.</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Night light" max="1" min="0" type="byte" value="0">
+      <Help>The LED on the TZ66D will by default, turn ON when the load attached is turned OFF. To make the LED turn ON when the load attached is turned ON instead, set parameter to a value of 1.</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Invert switch" max="1" min="0" type="byte" value="0">
+      <Help>To change the top of the switch to OFF and the bottom of the switch ON , set parameter 4 to 1.</Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Enable shade control Group 2" max="1" min="0" type="byte" value="0">
+      <Help>The TZ66D can operate shade control devices via its Group 2 if this configuration parameter is set to 1.</Help>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Enable shade control Group 3" max="1" min="0" type="byte" value="0">
+      <Help>The TZ66D can operate shade control devices via its Group 3 if this configuration parameter is set to 1.</Help>
+    </Value>
+    <Value genre="config" index="19" instance="1" label="LED Transmission indication" max="2" min="0" type="byte" value="2">
+      <Help>The TZ66-D will flicker its LED when it is transmitting to any of its 4 groups. This flickering can be set to not flicker at all (set to 0), to flicker the entire time it is transmitting (set to 1), or to flicker for only 1 second when it begins transmitting (set to 2). By default, the TZ66D is set to flicker for only 1 second.</Help>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Poll Group 2 Interval (minutes)" max="255" min="1" type="byte" value="2">
+      <Help>Defines the poll interval in minutes for group 2 if polling is activated.</Help>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="Poll Group 2" max="1" min="0" type="byte" value="1">
+      <Help>If value is 0, the TZ66D will not poll Group 2. If value is 1, the TZ66D will poll Group 2 at the interval set in Configuration Parameter 20.</Help>
+    </Value>
+  </CommandClass>
 </Product>
diff --git a/Config/wenzhou/tz67.xml b/Config/wenzhou/tz67.xml
index e38b1496a3..dc36372a53 100644
--- a/Config/wenzhou/tz67.xml
+++ b/Config/wenzhou/tz67.xml
@@ -1,20 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- http://products.z-wavealliance.org/products/1880 -->
-
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0118:0611:0202</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wenzhou/tz67.png</MetaDataItem>
+    <MetaDataItem id="0611" name="ZWProductPage" type="0202">https://products.z-wavealliance.org/products/887/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.tkbhome.com/guestbook.php</MetaDataItem>
+    <MetaDataItem id="0611" name="Identifier" type="0202">TZ67C</MetaDataItem>
+    <MetaDataItem id="0611" name="FrequencyName" type="0202">CEPT (Europe) / China</MetaDataItem>
+    <MetaDataItem name="Name">Dimmer Module</MetaDataItem>
+    <MetaDataItem name="Description">FEATURES:
+• Provides wireless dimming of lights, and ON/OFF control of lights connected to the Plug-In Lamp Module.
+• Plugs directly into wall outlet and provides a switched 230 VAC source. The programming button on the module is also a manual on and off switch.
+• Each Plug-In Lamp Module functions as an automatic repeater to other Z-WAVE Modules to ensure full home coverage.</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.tkbhome.com/?cn-p-d-149.html</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/36/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/885/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/886/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/887/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- http://products.z-wavealliance.org/products/1880 -->
 	<!-- Configuration -->
-	<CommandClass id="112">
-		<Value type="list" genre="config" instance="1" index="1" label="LED-Behaviour" value="0" size="1">
-     			<Help>Defines the behavior of the blue LED. Default: 0</Help>
-			<Item label="Blue Indicator Off" value="0" />
-			<Item label="Blue Indicator On" value="1" />
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline"/>
-		</Associations>
-	</CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="LED-Behaviour" size="1" type="list" value="0">
+      <Help>Defines the behavior of the blue LED. Default: 0</Help>
+      <Item label="Blue Indicator Off" value="0"/>
+      <Item label="Blue Indicator On" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/wenzhou/tz68.xml b/Config/wenzhou/tz68.xml
index 3ca45d8d2e..6c20345ce6 100644
--- a/Config/wenzhou/tz68.xml
+++ b/Config/wenzhou/tz68.xml
@@ -1,20 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- http://products.z-wavealliance.org/products/1885 -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0118:0002:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wenzhou/tz68.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1423/</MetaDataItem>
+    <MetaDataItem name="Name">Smart Plug in Switch</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Have Z-Wave controller with exclusion mode
 
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="LED behavior" value="0" size="1">
-            <Help>Defines the behavior of the blue LED.</Help>
-            <Item label="Night light" value="0"/>
-            <Item label="On indicator" value="1"/>
-        </Value>
-    </CommandClass>
+2. Press the socket on/off button three times within 1.5 seconds to be excluded from the controller</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Have Z-Wave controller with inclusion mode
 
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
-</Product>
\ No newline at end of file
+2. Press the socket on/off button three times within 1.5 seconds to be included to the controller</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0003">TZ68G</MetaDataItem>
+    <MetaDataItem name="Description">1. This plug-in ON/OFF switch in a transceiver which is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. 
+2. Each socket is designed to act as a repeater. Repeaters will re-transmit the RF signal to ensure the signal to ensure that the signal is received by its intended destination.
+3. You can use the button in the socket to include/exclude, manually on/off or act as a indicator. You can use it to turn on/off appliance remotely via smart home or computer.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Press the socket on/off button three times within 1.5 seconds
+2.  then within 1 second to press and hold on for 5 seconds until the socket button LED is off, reset to factory default successfully
+3. Use this procedure only in the event that the network primary controller is missing or otherwise inoperable 
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1423/TZ68G User Manual.pdf</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1423/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- http://products.z-wavealliance.org/products/1885 -->
+    <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="LED behavior" size="1" type="list" value="0">
+      <Help>Defines the behavior of the blue LED.</Help>
+      <Item label="Night light" value="0"/>
+      <Item label="On indicator" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/wenzhou/tz69.xml b/Config/wenzhou/tz69.xml
index a239b2cc94..2f3c090aa8 100644
--- a/Config/wenzhou/tz69.xml
+++ b/Config/wenzhou/tz69.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     Wenzhou TKB Control System TZ69 Smart energy plug in switch
     http://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1665/TZ69%20english%20manual.pdf
@@ -38,4 +38,4 @@
         </Associations>
     </CommandClass>
 
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/wenzhou/tz74.xml b/Config/wenzhou/tz74.xml
index 14e5d305cd..4a047bba5d 100644
--- a/Config/wenzhou/tz74.xml
+++ b/Config/wenzhou/tz74.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Configuration -->
     <CommandClass id="112">
       <Value type="list" genre="config" instance="1" index="1" label="Night light" min="0" max="1" value="1" size="1">
diff --git a/Config/wenzhou/tz79.xml b/Config/wenzhou/tz79.xml
index 76d838f617..0df0bf35d4 100644
--- a/Config/wenzhou/tz79.xml
+++ b/Config/wenzhou/tz79.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!--
     Wenzhou TKB Control System TZ79 Power meter Relay Switch 
     -->
diff --git a/Config/wenzhou/tz88.xml b/Config/wenzhou/tz88.xml
index d987138bff..38059539b0 100644
--- a/Config/wenzhou/tz88.xml
+++ b/Config/wenzhou/tz88.xml
@@ -1,13 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0118:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wenzhou/tz88.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/883/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.tkbhome.com/?cn-p-d-259.html</MetaDataItem>
+    <MetaDataItem name="Description">This  plug-in  ON/OFF  switch  TZ88  is  a  security  enabled  wireless  switch,  based  on Z-Wave  Plus  technology.  Z-Wave  Plus™  enabled  devices  displaying  the  Z-Wave Plus™ logo can also be used with it regardless of the manufacturer, and can also be used in other manufacturer’s Z-Wave™ enabled networks. Remote On/Off control of the  connected  load  is  possible  with  other  manufacturer’s  wireless  Controller.  Each switch is designed to act as a repeater. Repeaters will re-transmit the RF signal to ensure  that  the  signal  is  received  by  its  intended  destination  by  routing  the  signal around obstacles and radio dead spots. Because TZ88 supports Security Command Class, it can learn with Secured controller. Its functionality and supported command classes is identical when included as a secure and non-secure device. 
+This  plug-in  ON/OFF  switch  is  able  to  detect  instance  wattage  (3000W/CE/CN, 1500W/UL/TW/JP)  and  overload  current  (14.5A)  of  connected  lights  or  appliances. When detecting overload state, the Switch will be disabled and its On/Off button will be  lockout  of  which  LED  will  flash  quickly.    However,  unplug  and  re-connect  the switch will reset its overload condition to normal status. 
+</MetaDataItem>
+    <MetaDataItem name="Name">Smart Energy Plug In Switch</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">TZ88U</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/785/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/786/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/787/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/883/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1324/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0011" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1324/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Use this procedure only in the event that the primary controller is lost or otherwise inoperable.
+1. Pressing On/Off button three times within 2 seconds will enter inclusion mode. 
+2. Within 1 second, press On/Off button again for 5 seconds until LED is off.
+3. IDs are excluded.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Put your Z-Wave controller into inclusion mode by following the instructions provided by the controller manufacturer. 
+2.  Pressing On/Off button three times within 2 seconds will enter inclusion mode. </MetaDataItem>
+    <MetaDataItem id="0011" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Put your Z-Wave controller into exclusion mode by following the instructions provided by the controller manufacturer. 
+2.Pressing On/Off button three times within 2 seconds will enter exclusion mode. 
+3. Node ID has been excluded. </MetaDataItem>
+    <MetaDataItem id="0011" name="Identifier" type="0001">TZ88</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1324/TKB TZ88 manual-20150527.pdf</MetaDataItem>
+  </MetaData>
   <!-- http://products.z-wavealliance.org/products/786 -->
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value type="byte" genre="config" instance="1" index="1" label="Watt meter report period" min="1" max="32767" units="5 sec" value="1">
+    <Value genre="config" index="1" instance="1" label="Watt meter report period" max="32767" min="1" type="byte" units="5 sec" value="1">
       <Help>If the setting is configured for 1 hour (value=720), the TZ88 will report its instant power consumption every 1 hour.</Help>
     </Value>
-    <Value type="byte" genre="config" instance="1" index="2" label="kWh meter report period" min="1" max="32767" units="10 min" value="6">
+    <Value genre="config" index="2" instance="1" label="kWh meter report period" max="32767" min="1" type="byte" units="10 min" value="6">
       <Help>If the setting is configured for 1 hour (value=6), the TZ88 will report its accumulated power consumption (kWh) every 1 hour.</Help>
     </Value>
   </CommandClass>
diff --git a/Config/widom/UBS104.xml b/Config/widom/UBS104.xml
index 1a3bee433d..92b4e6b435 100644
--- a/Config/widom/UBS104.xml
+++ b/Config/widom/UBS104.xml
@@ -1,292 +1,260 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- wiDom: UBS104 Universal Relay Switch -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0149:0104:0012</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/widom/UBS104.png</MetaDataItem>
+    <MetaDataItem id="0104" name="ZWProductPage" type="0012">https://products.z-wavealliance.org/products/1016/</MetaDataItem>
+    <MetaDataItem id="0104" name="Identifier" type="0012">UBS104</MetaDataItem>
+    <MetaDataItem name="Name">WiDOM Universal Relay Switch UBS104</MetaDataItem>
+    <MetaDataItem name="Description">WiDOM Universal Relay Switch is an ON\\OFF device based on latching relay and can be used as both a local and remote switch.</MetaDataItem>
+    <MetaDataItem id="0104" name="FrequencyName" type="0012">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1016/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- wiDom: UBS104 Universal Relay Switch -->
 
 	<!-- Configuration  -->
-	<CommandClass id="112">
-		<Value type="list" genre="config"  index="1" label="Device status 1 click" size="1" min="1" max="4" value="1">
-			<Help>Device status when the external switch receives 1 click</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="On" value="2" />
-			<Item label="Off" value="3" />
-			<Item label="Ignore" value="4" />
-		</Value>
-	
-		<Value type="list" genre="config"  index="2" label="Device status 2 clicks" size="1" min="1" max="4" value="1">
-			<Help>Device status when the external switch receives 2 clicks</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="On" value="2" />
-			<Item label="Off" value="3" />
-			<Item label="Ignore" value="4" />
-		</Value>
-	
-		<Value type="list" genre="config"  index="3" label="Device status 3 clicks" size="1" min="1" max="4" value="1">
-			<Help>Device status when the external switch receives 3 clicks</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="On" value="2" />
-			<Item label="Off" value="3" />
-			<Item label="Ignore" value="4" />
-		</Value>
-
-		<Value type="list" genre="config"  index="4" label="Device status held down" size="1" min="1" max="4" value="1">
-			<Help>Device status when the external switch is held down</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="On" value="2" />
-			<Item label="Off" value="3" />
-			<Item label="Ignore" value="4" />
-		</Value>
-
-		<Value type="list" genre="config"  index="5" label="Action when 1 click" size="1" min="1" max="6" value="1">
-			<Help>Action on the associated devices when the external switch receives 1 click"</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="Ignore if On" value="2" />
-			<Item label="Ignore if Off" value="3" />
-			<Item label="Toggle associated" value="4" />
-			<Item label="Set as initial status value" value="5" />
-			<Item label="Ignore" value="6" />
-		</Value>
-
-		<Value type="list" genre="config"  index="6" label="Action when 2 clicks" size="1" min="1" max="6" value="1">
-			<Help>Action on the associated devices when the external switch receives 2 clicks</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="Ignore if On" value="2" />
-			<Item label="Ignore if Off" value="3" />
-			<Item label="Toggle associated" value="4" />
-			<Item label="Set as initial status value" value="5" />
-			<Item label="Ignore" value="6" />
-		</Value>
-
-		<Value type="list" genre="config"  index="7" label="Action when 3 clicks" size="1" min="1" max="6" value="6">
-			<Help>Action on the associated devices when the external switch receives 3 clicks</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="Ignore if On" value="2" />
-			<Item label="Ignore if Off" value="3" />
-			<Item label="Toggle associated" value="4" />
-			<Item label="Set as initial status value" value="5" />
-			<Item label="Ignore" value="6" />
-		</Value>
-
-		<Value type="list" genre="config"  index="8" label="Action when is held down" size="1" min="1" max="6" value="1">
-			<Help>Action on the associated devices when the external switch is held down</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="Ignore if On" value="2" />
-			<Item label="Ignore if Off" value="3" />
-			<Item label="Toggle associated" value="4" />
-			<Item label="Set as initial status value" value="5" />
-			<Item label="Ignore" value="6" />
-		</Value>
-
-		<Value type="list" genre="config"  index="9" label="Action on all devices when 1 click" size="1" min="1" max="5" value="5">
-			<Help>Action performed on all network devices when the external switch receives 1 click</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="Ignore if On" value="2" />
-			<Item label="Ignore if Off" value="3" />
-			<Item label="Set as initial status value" value="4" />
-			<Item label="Ignore" value="5" />
-		</Value>
-
-		<Value type="list" genre="config"  index="10" label="Action on all devices when 2 clicks" size="1" min="1" max="5" value="5">
-			<Help>Action performed on all network devices when the external switch receives 2 clicks</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="Ignore if On" value="2" />
-			<Item label="Ignore if Off" value="3" />
-			<Item label="Set as initial status value" value="4" />
-			<Item label="Ignore" value="5" />
-		</Value>
-
-		<Value type="list" genre="config"  index="11" label="Action on all devices when 3 clicks" size="1" min="1" max="5" value="5">
-			<Help>Action performed on all network devices when the external switch receives 3 clicks</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="Ignore if On" value="2" />
-			<Item label="Ignore if Off" value="3" />
-			<Item label="Set as initial status value" value="4" />
-			<Item label="Ignore" value="5" />
-		</Value>
-
-		<Value type="list" genre="config"  index="12" label="Action on all devices when held down" size="1" min="1" max="5" value="5">
-			<Help>Action performed on all network devices when the external switch is held down</Help>
-			<Item label="Toggle" value="1" />
-			<Item label="Ignore if On" value="2" />
-			<Item label="Ignore if Off" value="3" />
-			<Item label="Set as initial status value" value="4" />
-			<Item label="Ignore" value="5" />
-		</Value>
-
-		<Value type="list" genre="config"  index="20" label="Device status upon receipt of a Basic Set" size="1" min="1" max="4" value="1">
-			<Help>Device status upon receipt of a Basic Set</Help>
-			<Item label="How received" value="1" />
-			<Item label="Ignore if On" value="2" />
-			<Item label="Ignore if Off" value="3" />
-			<Item label="Ignore" value="4" />
-		</Value>
-
-		<Value type="byte" genre="config"  index="30" label="ON_LEVEL Group 2" size="1" min="0" max="255" value="255">
-			<Help>ON_LEVEL value used for devices belonging to Group 2 (1 Click association group). Set value from 0 to 255 (Default: 255)</Help>
-		</Value>
-
-		<Value type="byte" genre="config"  index="31" label="OFF_LEVEL Group 2" size="1" min="0" max="255" value="0">
-			<Help>OFF_LEVEL value used for devices belonging to Group 2 (1 Click association group). Set value from 0 to 255 (Default: 0)</Help>
-		</Value>
-
-		<Value type="byte" genre="config"  index="32" label="ON_LEVEL Group 3" size="1" min="0" max="255" value="255">
-			<Help>ON_LEVEL value used for devices belonging to Group 3 (2 Click association group). Set value from 0 to 255 (Default: 255)</Help>
-		</Value>
-
-		<Value type="byte" genre="config"  index="33" label="OFF_LEVEL Group 3 " size="1" min="0" max="255" value="0">
-			<Help>OFF_LEVEL value used for devices belonging to Group 3 (2 Click association group). Set value from 0 to 255 (Default: 0)</Help>
-		</Value>
-
-		<Value type="byte" genre="config"  index="34" label="ON_LEVEL Group 4" size="1" min="0" max="255" value="255">
-			<Help>ON_LEVEL value used for devices belonging to Group 4 (3 Click association group). Set value from 0 to 255 (Default: 255)</Help>
-		</Value>
-
-		<Value type="byte" genre="config"  index="35" label="OFF_LEVEL Group 4" size="1" min="0" max="255" value="0">
-			<Help>OFF_LEVEL value used for devices belonging to Group 4 (3 Click association group). Set value from 0 to 255 (Default: 0)</Help>
-		</Value>
-
-		<Value type="byte" genre="config"  index="36" label="ON_LEVEL Group 5" size="1" min="0" max="255" value="255">
-			<Help>ON_LEVEL value used for devices belonging to Group 5 (Hold association group). Set value from 0 to 255 (Default: 255)</Help>
-		</Value>
-
-		<Value type="byte" genre="config"  index="37" label="OFF_LEVEL Group 5" size="1" min="0" max="255" value="0">
-			<Help>OFF_LEVEL value used for devices belonging to Group 5 (Hold association group). Set value from 0 to 255 (Default: 0)</Help>
-		</Value>
-
-		<Value type="list" genre="config"  index="40" label="Timer associated with the 1 click" size="1" min="0" max="1" value="0">
-			<Help>Timer associated with the 1 click event on the external switch</Help>
-			<Item label="Timer disabled" value="0" />
-			<Item label="Timer enabled" value="1" />
-		</Value>
-
-		<Value type="list" genre="config"  index="41" label="Timer associated with the 2 click" size="1" min="0" max="1" value="0">
-			<Help>Timer associated with the 2 click event on the external switch</Help>
-			<Item label="Timer disabled" value="0" />
-			<Item label="Timer enabled" value="1" />
-		</Value>
-
-		<Value type="list" genre="config"  index="42" label="Timer associated with the 3 click" size="1" min="0" max="1" value="0">
-			<Help>Timer associated with the 3 click event on the external switch</Help>
-			<Item label="Timer disabled" value="0" />
-			<Item label="Timer enabled" value="1" />
-		</Value>
-
-		<Value type="list" genre="config"  index="43" label="Timer associated with the hold" size="1" min="0" max="1" value="0">
-			<Help>Timer associated with the hold event on the external switch</Help>
-			<Item label="Timer disabled" value="0" />
-			<Item label="Timer enabled" value="1" />
-		</Value>
-
-		<Value type="list" genre="config"  index="44" label="Timer associated with Basic Set command" size="1" min="0" max="1" value="0">
-			<Help>Timer associated with the reception of a Basic Set command</Help>
-			<Item label="Timer disabled" value="0" />
-			<Item label="Timer enabled" value="1" />
-		</Value>
-
-		<Value type="short" genre="config"  index="45" label="Switch-off timer" size="2" min="0" max="3600" value="600">
-			<Help>Time in seconds (1 3600). Default: 600 (10 minutes)</Help>
-		</Value>
-
-		<Value type="list" genre="config"  index="46" label="Switch-off timer validity" size="1" min="0" max="1" value="1">
-			<Help>Switch-off timer validity</Help>
-			<Item label="Cancel" value="0" />
-			<Item label="Mantain" value="1" />
-		</Value>
-
-		<Value type="list" genre="config"  index="50" label="Smoke Alarm, CO, CO2 Action" size="1" min="1" max="4" value="1">
-			<Help>Smoke Alarm, CO, CO2 Action</Help>
-			<Item label="On" value="1" />
-			<Item label="Off" value="2" />
-			<Item label="Flash" value="3" />
-			<Item label="Ignore" value="4" />
-		</Value>
-
-		<Value type="list" genre="config"  index="51" label="Heat Allarm" size="1" min="1" max="4" value="1">
-			<Help>Heat Allarm</Help>
-			<Item label="On" value="1" />
-			<Item label="Off" value="2" />
-			<Item label="Flash" value="3" />
-			<Item label="Ignore" value="4" />
-		</Value>
-
-		<Value type="list" genre="config"  index="52" label="Water Allarm" size="1" min="1" max="4" value="2">
-			<Help>Water Allarm</Help>
-			<Item label="On" value="1" />
-			<Item label="Off" value="2" />
-			<Item label="Flash" value="3" />
-			<Item label="Ignore" value="4" />
-		</Value>
-
-		<Value type="list" genre="config"  index="53" label="Home Security" size="1" min="1" max="4" value="3">
-			<Help>Home Security</Help>
-			<Item label="On" value="1" />
-			<Item label="Off" value="2" />
-			<Item label="Flash" value="3" />
-			<Item label="Ignore" value="4" />
-		</Value>
-
-		<Value type="byte" genre="config"  index="54" label="ON time during flashing" size="1" min="0" max="255" value="5">
-			<Help>ON time during flashing. Set value from 0 to 255 (Default: 5)</Help>
-		</Value>
-
-		<Value type="byte" genre="config"  index="55" label="OFF time during flashing" size="1" min="0" max="255" value="5">
-			<Help>OFF time during flashing. Set value from 0 to 255 (Default: 5)</Help>
-		</Value>
-
-		<Value type="byte" genre="config"  index="56" label="Duration of flashing phase" size="1" min="0" max="255" value="10">
-			<Help>Duration of flashing phase. Set value from 0 to 255 (Default: 10)</Help>
-		</Value>
-
-		<Value type="list" genre="config"  index="60" label="Startup Status" size="1" min="1" max="3" value="3">
-			<Help>Startup Status</Help>
-			<Item label="On" value="1" />
-			<Item label="Off" value="2" />
-			<Item label="Previous status" value="3" />
-		</Value>
-
-		<Value type="list" genre="config"  index="61" label="Configuration Reset" size="1" min="0" max="4" value="4">
-			<Help>Configuration Reset</Help>
-			<Item label="Factory reset" value="0" />
-			<Item label="Reset associations" value="1" />
-			<Item label="Reset configurations" value="2" />
-			<Item label="Ignore" value="4" />
-		</Value>
-
-		<Value type="list" genre="config"  index="62" label="Type of external switch" size="1" min="0" max="4" value="4">
-			<Help>Type of external switch</Help>
-			<Item label="Ignore" value="0" />
-			<Item label="Button" value="1" />
-			<Item label="Bistable switch" value="2" />
-			<Item label="AC sensing" value="3" />
-			<Item label="Automatic recognition" value="4" />
-		</Value>
-
-		<Value type="byte" genre="config"  index="63" label="Sensitivity" size="1" min="0" max="255" value="9">
-			<Help>Sensitivity. Set value from 0 to 255 (Default: 9)</Help>
-		</Value>
-
-		<Value type="short" genre="config"  index="64" label="Load protection" size="2" min="0" max="3600" value="0">
-			<Help>Load protection. Time in seconds (3600). Default: 0</Help>
-		</Value>
-
-		<Value type="list" genre="config" index="65" label="Learn Mode" size="1" min="0" max="3" value="0">
-			<Help>Learn Mode</Help>
-			<Item label="Ignore" value="0" />
-			<Item label="1 Click" value="1" />
-			<Item label="2 Clicks" value="2" />
-			<Item label="3 Clicks" value="3" />
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="5">
-			<Group index="1" max_associations="16" label="devices that will be notified of changes in its status" />
-			<Group index="2" max_associations="16" label="devices that will be controlled by a single click on the external switch"  />
-			<Group index="3" max_associations="16" label="devices that will be controlled by a double click on the external switch" />
-			<Group index="4" max_associations="16" label="devices that will be controlled by a triple click on the external switch" />
-			<Group index="5" max_associations="16" label="devices that will be controlled by hold on the external switch" />
-		</Associations>
-	</CommandClass>
-
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Device status 1 click" max="4" min="1" size="1" type="list" value="1">
+      <Help>Device status when the external switch receives 1 click</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="On" value="2"/>
+      <Item label="Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="2" label="Device status 2 clicks" max="4" min="1" size="1" type="list" value="1">
+      <Help>Device status when the external switch receives 2 clicks</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="On" value="2"/>
+      <Item label="Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="3" label="Device status 3 clicks" max="4" min="1" size="1" type="list" value="1">
+      <Help>Device status when the external switch receives 3 clicks</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="On" value="2"/>
+      <Item label="Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="4" label="Device status held down" max="4" min="1" size="1" type="list" value="1">
+      <Help>Device status when the external switch is held down</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="On" value="2"/>
+      <Item label="Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="5" label="Action when 1 click" max="6" min="1" size="1" type="list" value="1">
+      <Help>Action on the associated devices when the external switch receives 1 click"</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Toggle associated" value="4"/>
+      <Item label="Set as initial status value" value="5"/>
+      <Item label="Ignore" value="6"/>
+    </Value>
+    <Value genre="config" index="6" label="Action when 2 clicks" max="6" min="1" size="1" type="list" value="1">
+      <Help>Action on the associated devices when the external switch receives 2 clicks</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Toggle associated" value="4"/>
+      <Item label="Set as initial status value" value="5"/>
+      <Item label="Ignore" value="6"/>
+    </Value>
+    <Value genre="config" index="7" label="Action when 3 clicks" max="6" min="1" size="1" type="list" value="6">
+      <Help>Action on the associated devices when the external switch receives 3 clicks</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Toggle associated" value="4"/>
+      <Item label="Set as initial status value" value="5"/>
+      <Item label="Ignore" value="6"/>
+    </Value>
+    <Value genre="config" index="8" label="Action when is held down" max="6" min="1" size="1" type="list" value="1">
+      <Help>Action on the associated devices when the external switch is held down</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Toggle associated" value="4"/>
+      <Item label="Set as initial status value" value="5"/>
+      <Item label="Ignore" value="6"/>
+    </Value>
+    <Value genre="config" index="9" label="Action on all devices when 1 click" max="5" min="1" size="1" type="list" value="5">
+      <Help>Action performed on all network devices when the external switch receives 1 click</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Set as initial status value" value="4"/>
+      <Item label="Ignore" value="5"/>
+    </Value>
+    <Value genre="config" index="10" label="Action on all devices when 2 clicks" max="5" min="1" size="1" type="list" value="5">
+      <Help>Action performed on all network devices when the external switch receives 2 clicks</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Set as initial status value" value="4"/>
+      <Item label="Ignore" value="5"/>
+    </Value>
+    <Value genre="config" index="11" label="Action on all devices when 3 clicks" max="5" min="1" size="1" type="list" value="5">
+      <Help>Action performed on all network devices when the external switch receives 3 clicks</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Set as initial status value" value="4"/>
+      <Item label="Ignore" value="5"/>
+    </Value>
+    <Value genre="config" index="12" label="Action on all devices when held down" max="5" min="1" size="1" type="list" value="5">
+      <Help>Action performed on all network devices when the external switch is held down</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Set as initial status value" value="4"/>
+      <Item label="Ignore" value="5"/>
+    </Value>
+    <Value genre="config" index="20" label="Device status upon receipt of a Basic Set" max="4" min="1" size="1" type="list" value="1">
+      <Help>Device status upon receipt of a Basic Set</Help>
+      <Item label="How received" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="30" label="ON_LEVEL Group 2" max="255" min="0" size="1" type="byte" value="255">
+      <Help>ON_LEVEL value used for devices belonging to Group 2 (1 Click association group). Set value from 0 to 255 (Default: 255)</Help>
+    </Value>
+    <Value genre="config" index="31" label="OFF_LEVEL Group 2" max="255" min="0" size="1" type="byte" value="0">
+      <Help>OFF_LEVEL value used for devices belonging to Group 2 (1 Click association group). Set value from 0 to 255 (Default: 0)</Help>
+    </Value>
+    <Value genre="config" index="32" label="ON_LEVEL Group 3" max="255" min="0" size="1" type="byte" value="255">
+      <Help>ON_LEVEL value used for devices belonging to Group 3 (2 Click association group). Set value from 0 to 255 (Default: 255)</Help>
+    </Value>
+    <Value genre="config" index="33" label="OFF_LEVEL Group 3 " max="255" min="0" size="1" type="byte" value="0">
+      <Help>OFF_LEVEL value used for devices belonging to Group 3 (2 Click association group). Set value from 0 to 255 (Default: 0)</Help>
+    </Value>
+    <Value genre="config" index="34" label="ON_LEVEL Group 4" max="255" min="0" size="1" type="byte" value="255">
+      <Help>ON_LEVEL value used for devices belonging to Group 4 (3 Click association group). Set value from 0 to 255 (Default: 255)</Help>
+    </Value>
+    <Value genre="config" index="35" label="OFF_LEVEL Group 4" max="255" min="0" size="1" type="byte" value="0">
+      <Help>OFF_LEVEL value used for devices belonging to Group 4 (3 Click association group). Set value from 0 to 255 (Default: 0)</Help>
+    </Value>
+    <Value genre="config" index="36" label="ON_LEVEL Group 5" max="255" min="0" size="1" type="byte" value="255">
+      <Help>ON_LEVEL value used for devices belonging to Group 5 (Hold association group). Set value from 0 to 255 (Default: 255)</Help>
+    </Value>
+    <Value genre="config" index="37" label="OFF_LEVEL Group 5" max="255" min="0" size="1" type="byte" value="0">
+      <Help>OFF_LEVEL value used for devices belonging to Group 5 (Hold association group). Set value from 0 to 255 (Default: 0)</Help>
+    </Value>
+    <Value genre="config" index="40" label="Timer associated with the 1 click" max="1" min="0" size="1" type="list" value="0">
+      <Help>Timer associated with the 1 click event on the external switch</Help>
+      <Item label="Timer disabled" value="0"/>
+      <Item label="Timer enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="41" label="Timer associated with the 2 click" max="1" min="0" size="1" type="list" value="0">
+      <Help>Timer associated with the 2 click event on the external switch</Help>
+      <Item label="Timer disabled" value="0"/>
+      <Item label="Timer enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="42" label="Timer associated with the 3 click" max="1" min="0" size="1" type="list" value="0">
+      <Help>Timer associated with the 3 click event on the external switch</Help>
+      <Item label="Timer disabled" value="0"/>
+      <Item label="Timer enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="43" label="Timer associated with the hold" max="1" min="0" size="1" type="list" value="0">
+      <Help>Timer associated with the hold event on the external switch</Help>
+      <Item label="Timer disabled" value="0"/>
+      <Item label="Timer enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="44" label="Timer associated with Basic Set command" max="1" min="0" size="1" type="list" value="0">
+      <Help>Timer associated with the reception of a Basic Set command</Help>
+      <Item label="Timer disabled" value="0"/>
+      <Item label="Timer enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="45" label="Switch-off timer" max="3600" min="0" size="2" type="short" value="600">
+      <Help>Time in seconds (1 3600). Default: 600 (10 minutes)</Help>
+    </Value>
+    <Value genre="config" index="46" label="Switch-off timer validity" max="1" min="0" size="1" type="list" value="1">
+      <Help>Switch-off timer validity</Help>
+      <Item label="Cancel" value="0"/>
+      <Item label="Mantain" value="1"/>
+    </Value>
+    <Value genre="config" index="50" label="Smoke Alarm, CO, CO2 Action" max="4" min="1" size="1" type="list" value="1">
+      <Help>Smoke Alarm, CO, CO2 Action</Help>
+      <Item label="On" value="1"/>
+      <Item label="Off" value="2"/>
+      <Item label="Flash" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="51" label="Heat Allarm" max="4" min="1" size="1" type="list" value="1">
+      <Help>Heat Allarm</Help>
+      <Item label="On" value="1"/>
+      <Item label="Off" value="2"/>
+      <Item label="Flash" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="52" label="Water Allarm" max="4" min="1" size="1" type="list" value="2">
+      <Help>Water Allarm</Help>
+      <Item label="On" value="1"/>
+      <Item label="Off" value="2"/>
+      <Item label="Flash" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="53" label="Home Security" max="4" min="1" size="1" type="list" value="3">
+      <Help>Home Security</Help>
+      <Item label="On" value="1"/>
+      <Item label="Off" value="2"/>
+      <Item label="Flash" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="54" label="ON time during flashing" max="255" min="0" size="1" type="byte" value="5">
+      <Help>ON time during flashing. Set value from 0 to 255 (Default: 5)</Help>
+    </Value>
+    <Value genre="config" index="55" label="OFF time during flashing" max="255" min="0" size="1" type="byte" value="5">
+      <Help>OFF time during flashing. Set value from 0 to 255 (Default: 5)</Help>
+    </Value>
+    <Value genre="config" index="56" label="Duration of flashing phase" max="255" min="0" size="1" type="byte" value="10">
+      <Help>Duration of flashing phase. Set value from 0 to 255 (Default: 10)</Help>
+    </Value>
+    <Value genre="config" index="60" label="Startup Status" max="3" min="1" size="1" type="list" value="3">
+      <Help>Startup Status</Help>
+      <Item label="On" value="1"/>
+      <Item label="Off" value="2"/>
+      <Item label="Previous status" value="3"/>
+    </Value>
+    <Value genre="config" index="61" label="Configuration Reset" max="4" min="0" size="1" type="list" value="4">
+      <Help>Configuration Reset</Help>
+      <Item label="Factory reset" value="0"/>
+      <Item label="Reset associations" value="1"/>
+      <Item label="Reset configurations" value="2"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="62" label="Type of external switch" max="4" min="0" size="1" type="list" value="4">
+      <Help>Type of external switch</Help>
+      <Item label="Ignore" value="0"/>
+      <Item label="Button" value="1"/>
+      <Item label="Bistable switch" value="2"/>
+      <Item label="AC sensing" value="3"/>
+      <Item label="Automatic recognition" value="4"/>
+    </Value>
+    <Value genre="config" index="63" label="Sensitivity" max="255" min="0" size="1" type="byte" value="9">
+      <Help>Sensitivity. Set value from 0 to 255 (Default: 9)</Help>
+    </Value>
+    <Value genre="config" index="64" label="Load protection" max="3600" min="0" size="2" type="short" value="0">
+      <Help>Load protection. Time in seconds (3600). Default: 0</Help>
+    </Value>
+    <Value genre="config" index="65" label="Learn Mode" max="3" min="0" size="1" type="list" value="0">
+      <Help>Learn Mode</Help>
+      <Item label="Ignore" value="0"/>
+      <Item label="1 Click" value="1"/>
+      <Item label="2 Clicks" value="2"/>
+      <Item label="3 Clicks" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="devices that will be notified of changes in its status" max_associations="16"/>
+      <Group index="2" label="devices that will be controlled by a single click on the external switch" max_associations="16"/>
+      <Group index="3" label="devices that will be controlled by a double click on the external switch" max_associations="16"/>
+      <Group index="4" label="devices that will be controlled by a triple click on the external switch" max_associations="16"/>
+      <Group index="5" label="devices that will be controlled by hold on the external switch" max_associations="16"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/widom/UME304C_S.xml b/Config/widom/UME304C_S.xml
index 475b6cd711..5c59f02083 100644
--- a/Config/widom/UME304C_S.xml
+++ b/Config/widom/UME304C_S.xml
@@ -1,131 +1,139 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- wiDom: Energy Driven Switch  Version C and S 1.0-->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0149:0304:1214</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/widom/UME304C_S.png</MetaDataItem>
+    <MetaDataItem id="0304" name="ZWProductPage" type="1214">https://products.z-wavealliance.org/products/1283/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press the push button (B)  located on the top of the device six consecutive times within one minute from system start-up. Please use this procedure only in the event that the primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">The smallest device in its category worldwide, and the only device specifically intended for use both as a Relay Switch with integrated power meter, and as an Energy Meter either at the point of entry of your electrical system, or on a section of the latter. Available in two versions, version S featuring an internal shunt resistor, and version C featuring an external current transformer, it is capable of measuring loads exceeding 10 KW. In addition to Power measurements, the device also provides data for Energy, Voltage, Current and Power factor.
+The only device suited for use with all types of Z-Wave controller, and capable of implementing an active energy-saving management policy defined by the user according to his energy consumption, or to the amount of energy produced by his solar power system. It automatically connects and disconnects a specific load if the threshold limit is exceeded, or “supplies” the required power, momentarily excluding non-priority loads.
+Main Feature:
+•	Active Energy-saving Management
+•	Control and monitoring of usage
+•	Control and monitoring of production and net metering
+•	Monitoring of all network parameters (Power, Energy, Voltage, Current, Power Factor)
+•	Provides bidirectional measurements for Power and Energy (produced/consumed). 
+•	Management and prevention of electrical faults
+•	Intelligent Opening/Closing of the Relay
+•	Control of heavy loads
+•	Software Update
+•	Extremely low energy usage</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Put your system controller into inclusion mode by following the instructions provided by your controller manufacturer.
+2. Press the push button (B)  located on the top of the device once."
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Put your system controller into exclusion mode by following the instructions provided by your controller manufacturer.
+2. Press the push button (B)  located on the top of the device three time."</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1283/WiDom Energy Driven Switch - EN.pdf</MetaDataItem>
+    <MetaDataItem name="Name">Energy Driven Switch Version S</MetaDataItem>
+    <MetaDataItem id="0304" name="Identifier" type="1214">WPM1.04C</MetaDataItem>
+    <MetaDataItem id="0304" name="FrequencyName" type="1214">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1264/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1283/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- wiDom: Energy Driven Switch  Version C and S 1.0-->
 
         <!-- Configuration  -->
-        <CommandClass id="112">
-                <Value type="list" genre="config"  index="1" label="Device status 1 click" size="1" min="1" max="4" value="1">
-                        <Help>Device status when the external switch receives 1 click</Help>
-                        <Item label="Toggle (default)" value="1" />
-                        <Item label="On" value="2" />
-                        <Item label="Off" value="3" />
-                        <Item label="Ignore" value="4" />
-                </Value>
-
-                <Value type="list" genre="config"  index="20" label="Device status Basic Set" size="1" min="1" max="4" value="1">
-                        <Help>Device status when ZWave command Basic Set is received</Help>
-                        <Item label="As Received (default)" value="1" />
-                        <Item label="Ignore if On" value="2" />
-                        <Item label="Ignore if Off" value="3" />
-                        <Item label="Ignore" value="4" />
-                </Value>
-
-                <Value type="short" genre="config"  index="30" label="Overcurrent level" size="2" min="0" max="4500" value="4500" units="centiAmperes">
-                        <Help>C VERSION. Sets the current level above which the time spent above that level is measured. For S VERSION. Sets to 1250 the default and max current level above which the time spent above that level is measured  (Hundredths of Amperes)</Help>
-                </Value>
-
-                <Value type="short" genre="config"  index="31" label="Overcurrent time" size="2" min="0" max="10800" value="10" units="seconds">
-                        <Help>Sets the time beyond which, in the case of overcurrent at a level higher than that established in parameter 30, an OverCurrent event occurs (seconds)</Help>
-                </Value>
-
-                <Value type="list" genre="config"  index="32" label="Next state" size="1" min="0" max="3" value="1">
-                        <Help>Defines the next state of the device if an overcurrent event has occurred.</Help>
-                        <Item label="Ignore" value="1" />
-                        <Item label="On" value="2" />
-                        <Item label="Off" value="3" />
-                        <Item label="Toggle" value="4" />
-                </Value>
-
-                <Value type="int" genre="config"  index="33" label="Meter reset" size="4" min="0" max="4294967296" value="1">
-                        <Help>Provides total operating time from last meter reset. When set to 0 it resets the cumulated values of energy and total operating time.</Help>
-                </Value>
-
-                <Value type="list" genre="config"  index="34" label="Energy flow" size="1" min="1" max="2" value="1">
-                        <Help>Determines whether energy events are related to energy consumed or energy produced</Help>
-                        <Item label="Consumed" value="1" />
-                        <Item label="Produced" value="2" />
-                </Value>
-
-                <Value type="short" genre="config"  index="35" label="UP Power Level" size="2" min="0" max="11250" value="11250" units="Watts">
-                        <Help>C VERSION. Sets the level of instantaneous power in Watts beyond which time of permanence above this level is calculated. For S VERSION. Sets to 3000 the default and max level of instantaneous power in Watts beyond which time of permanence above this level is calculated.</Help>
-                </Value>
-
-                <Value type="short" genre="config"  index="36" label="UP Power Time" size="2" min="0" max="10800" value="10" units="seconds">
-                        <Help>Sets the time in seconds beyond which, if instantaneous power remains at levels exceeding threshold defined by parameter 35, a UP Power event occurs.</Help>
-                </Value>
-
-                <Value type="list" genre="config"  index="37" label="UP Power State" size="1" min="0" max="3" value="0">
-                        <Help>Defines the next state of the device if an overcurrent event has occurred.</Help>
-                        <Item label="Ignore" value="0" />
-                        <Item label="On" value="1" />
-                        <Item label="Off" value="2" />
-                        <Item label="Toggle" value="3" />
-                </Value>
-
-                <Value type="byte" genre="config"  index="38" label="UP Power Associated" size="1" min="-1" max="99" value="0">
-                        <Help>Defines the status of associated devices in the presence of a UP Power event. From: 1 to 99 for dimming purpose. .0 (OFF) and -1(ON) for switching ON/OFF</Help>
-                </Value>
-
-                <Value type="short" genre="config"  index="39" label="DOWN Power Level" size="2" min="0" max="11250" value="0" units="Watts">
-                        <Help>Sets the level of instantaneous power in Watts beyond which time of permanence below this level is calculated.</Help>
-                </Value>
-
-                <Value type="short" genre="config"  index="40" label="DOWN Power Time" size="2" min="0" max="10800" value="10" units="seconds">
-                        <Help>Sets the time in seconds beyond which, if instantaneous power remains at levels below threshold defined by parameter 39, a DOWN Power event occurs.</Help>
-                </Value>
-
-                <Value type="list" genre="config"  index="41" label="DOWN Power State" size="1" min="0" max="3" value="0">
-                        <Help>Defines the next state of the device in the case of a DOWN Power event occurring.</Help>
-                        <Item label="Ignore" value="0" />
-                        <Item label="On" value="1" />
-                        <Item label="Off" value="2" />
-                        <Item label="Toggle" value="3" />
-                </Value>
-
-                <Value type="byte" genre="config"  index="42" label="DOWN Power Associated" size="1" min="-1" max="99" value="0">
-                        <Help>Defines the status of associated devices in the presence of a DOWN Power event. From: 1 to 99 for dimming purpose.  0 (OFF) and -1(ON) for switching ON/OFF.</Help>
-                </Value>
-
-                <Value type="int" genre="config"  index="43" label="Energy Level" size="4" min="0" max="4294967296" value="2000000" units="kWh">
-                        <Help>the energy level that once exceeded an Energy Limit event occurs. From 0 to 2.000.000 KWh   Default value: 2.000.000 KWh</Help>
-                </Value>
-
-                <Value type="list" genre="config"  index="44" label="Energy Limit State" size="1" min="0" max="3" value="0">
-                        <Help>Defines the next state of the device in the case of an Energy Limit event occurs</Help>
-                        <Item label="Ignore" value="0" />
-                        <Item label="On" value="1" />
-                        <Item label="Off" value="2" />
-                        <Item label="Toggle" value="3" />
-                </Value>
-
-                <Value type="byte" genre="config"  index="45" label="Variation Instantaneous Power" size="1" min="1" max="100" value="10" units="%">
-                        <Help>Defines the percentage variation of instantaneous power determining the sending of the report.(Default: 10%)</Help>
-                </Value>
-
-                <Value type="byte" genre="config"  index="46" label="Report Time Frequency" size="1" min="1" max="100" value="10" units="minutes">
-                        <Help>Defines the maximum time in minutes since the previous report beyond which an Instantaneous Power Report will still be sent. (Default: 10 minutes)</Help>
-                </Value>
-
-                <Value type="list" genre="config"  index="47" label="Variation Total Energy" size="1" min="0" max="4" value="3">
-                        <Help>Defines the increase of total energy required to generate a report listing the level of total energy to the devices associated to the Energy Notification Group.</Help>
-                        <Item label="Ignore" value="0" />
-                        <Item label="thousandth of kWh" value="1" />
-                        <Item label="hundredth of kWh" value="2" />
-                        <Item label="tenth of kWh" value="3" />
-                        <Item label="kWh" value="4" />
-                </Value>
-
-                <Value type="short" genre="config"  index="48" label="Nominal Voltage" size="2" min="1100" max="2500" value="2300" units="deciVolts">
-                        <Help>Defines the nominal voltage value in tenths of volts. Together with parameter No. 49 this is used by the automatic notification system to send reports on variations of voltage.</Help>
-                </Value>
-
-                <Value type="byte" genre="config"  index="49" label="Fall in maximum voltage" size="1" min="1" max="100" value="10" units="%">
-                        <Help>Defines, as a percentage, the nominal value for permitted fall in maximum voltage.(default 10%)</Help>
-                </Value>
-
-                <Value type="byte" genre="config"  index="50" label="Electric parameters subjected to automatic notification" size="1" min="0" max="62" value="30">
-                        <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Device status 1 click" max="4" min="1" size="1" type="list" value="1">
+      <Help>Device status when the external switch receives 1 click</Help>
+      <Item label="Toggle (default)" value="1"/>
+      <Item label="On" value="2"/>
+      <Item label="Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="20" label="Device status Basic Set" max="4" min="1" size="1" type="list" value="1">
+      <Help>Device status when ZWave command Basic Set is received</Help>
+      <Item label="As Received (default)" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="30" label="Overcurrent level" max="4500" min="0" size="2" type="short" units="centiAmperes" value="4500">
+      <Help>C VERSION. Sets the current level above which the time spent above that level is measured. For S VERSION. Sets to 1250 the default and max current level above which the time spent above that level is measured  (Hundredths of Amperes)</Help>
+    </Value>
+    <Value genre="config" index="31" label="Overcurrent time" max="10800" min="0" size="2" type="short" units="seconds" value="10">
+      <Help>Sets the time beyond which, in the case of overcurrent at a level higher than that established in parameter 30, an OverCurrent event occurs (seconds)</Help>
+    </Value>
+    <Value genre="config" index="32" label="Next state" max="3" min="0" size="1" type="list" value="1">
+      <Help>Defines the next state of the device if an overcurrent event has occurred.</Help>
+      <Item label="Ignore" value="1"/>
+      <Item label="On" value="2"/>
+      <Item label="Off" value="3"/>
+      <Item label="Toggle" value="4"/>
+    </Value>
+    <Value genre="config" index="33" label="Meter reset" max="4294967296" min="0" size="4" type="int" value="1">
+      <Help>Provides total operating time from last meter reset. When set to 0 it resets the cumulated values of energy and total operating time.</Help>
+    </Value>
+    <Value genre="config" index="34" label="Energy flow" max="2" min="1" size="1" type="list" value="1">
+      <Help>Determines whether energy events are related to energy consumed or energy produced</Help>
+      <Item label="Consumed" value="1"/>
+      <Item label="Produced" value="2"/>
+    </Value>
+    <Value genre="config" index="35" label="UP Power Level" max="11250" min="0" size="2" type="short" units="Watts" value="11250">
+      <Help>C VERSION. Sets the level of instantaneous power in Watts beyond which time of permanence above this level is calculated. For S VERSION. Sets to 3000 the default and max level of instantaneous power in Watts beyond which time of permanence above this level is calculated.</Help>
+    </Value>
+    <Value genre="config" index="36" label="UP Power Time" max="10800" min="0" size="2" type="short" units="seconds" value="10">
+      <Help>Sets the time in seconds beyond which, if instantaneous power remains at levels exceeding threshold defined by parameter 35, a UP Power event occurs.</Help>
+    </Value>
+    <Value genre="config" index="37" label="UP Power State" max="3" min="0" size="1" type="list" value="0">
+      <Help>Defines the next state of the device if an overcurrent event has occurred.</Help>
+      <Item label="Ignore" value="0"/>
+      <Item label="On" value="1"/>
+      <Item label="Off" value="2"/>
+      <Item label="Toggle" value="3"/>
+    </Value>
+    <Value genre="config" index="38" label="UP Power Associated" max="99" min="-1" size="1" type="byte" value="0">
+      <Help>Defines the status of associated devices in the presence of a UP Power event. From: 1 to 99 for dimming purpose. .0 (OFF) and -1(ON) for switching ON/OFF</Help>
+    </Value>
+    <Value genre="config" index="39" label="DOWN Power Level" max="11250" min="0" size="2" type="short" units="Watts" value="0">
+      <Help>Sets the level of instantaneous power in Watts beyond which time of permanence below this level is calculated.</Help>
+    </Value>
+    <Value genre="config" index="40" label="DOWN Power Time" max="10800" min="0" size="2" type="short" units="seconds" value="10">
+      <Help>Sets the time in seconds beyond which, if instantaneous power remains at levels below threshold defined by parameter 39, a DOWN Power event occurs.</Help>
+    </Value>
+    <Value genre="config" index="41" label="DOWN Power State" max="3" min="0" size="1" type="list" value="0">
+      <Help>Defines the next state of the device in the case of a DOWN Power event occurring.</Help>
+      <Item label="Ignore" value="0"/>
+      <Item label="On" value="1"/>
+      <Item label="Off" value="2"/>
+      <Item label="Toggle" value="3"/>
+    </Value>
+    <Value genre="config" index="42" label="DOWN Power Associated" max="99" min="-1" size="1" type="byte" value="0">
+      <Help>Defines the status of associated devices in the presence of a DOWN Power event. From: 1 to 99 for dimming purpose.  0 (OFF) and -1(ON) for switching ON/OFF.</Help>
+    </Value>
+    <Value genre="config" index="43" label="Energy Level" max="4294967296" min="0" size="4" type="int" units="kWh" value="2000000">
+      <Help>the energy level that once exceeded an Energy Limit event occurs. From 0 to 2.000.000 KWh   Default value: 2.000.000 KWh</Help>
+    </Value>
+    <Value genre="config" index="44" label="Energy Limit State" max="3" min="0" size="1" type="list" value="0">
+      <Help>Defines the next state of the device in the case of an Energy Limit event occurs</Help>
+      <Item label="Ignore" value="0"/>
+      <Item label="On" value="1"/>
+      <Item label="Off" value="2"/>
+      <Item label="Toggle" value="3"/>
+    </Value>
+    <Value genre="config" index="45" label="Variation Instantaneous Power" max="100" min="1" size="1" type="byte" units="%" value="10">
+      <Help>Defines the percentage variation of instantaneous power determining the sending of the report.(Default: 10%)</Help>
+    </Value>
+    <Value genre="config" index="46" label="Report Time Frequency" max="100" min="1" size="1" type="byte" units="minutes" value="10">
+      <Help>Defines the maximum time in minutes since the previous report beyond which an Instantaneous Power Report will still be sent. (Default: 10 minutes)</Help>
+    </Value>
+    <Value genre="config" index="47" label="Variation Total Energy" max="4" min="0" size="1" type="list" value="3">
+      <Help>Defines the increase of total energy required to generate a report listing the level of total energy to the devices associated to the Energy Notification Group.</Help>
+      <Item label="Ignore" value="0"/>
+      <Item label="thousandth of kWh" value="1"/>
+      <Item label="hundredth of kWh" value="2"/>
+      <Item label="tenth of kWh" value="3"/>
+      <Item label="kWh" value="4"/>
+    </Value>
+    <Value genre="config" index="48" label="Nominal Voltage" max="2500" min="1100" size="2" type="short" units="deciVolts" value="2300">
+      <Help>Defines the nominal voltage value in tenths of volts. Together with parameter No. 49 this is used by the automatic notification system to send reports on variations of voltage.</Help>
+    </Value>
+    <Value genre="config" index="49" label="Fall in maximum voltage" max="100" min="1" size="1" type="byte" units="%" value="10">
+      <Help>Defines, as a percentage, the nominal value for permitted fall in maximum voltage.(default 10%)</Help>
+    </Value>
+    <Value genre="config" index="50" label="Electric parameters subjected to automatic notification" max="62" min="0" size="1" type="byte" value="30">
+      <Help>
                           Defines which electric parameters, other than power, will be subjected to automatic notification. The value to be set for this parameter must be calculated as the sum of values associated to the individual electric parameter indicated in the table.(default 30)
                           Byte 1 : Bit 7: reserved;
                                           Bit 6:reserved;
@@ -136,65 +144,56 @@
                                           Bit 1: Energy;
                                           Bit 0: Power;
                         </Help>
-                </Value>
-                
-               <Value type="short" genre="config"  index="51" label="Voltage RMS value" size="2" read_only="true" units="deciVolts" >
-                        <Help>Returns the value of voltage RMS at the time of the reading expressed in tenths of Volts..</Help>
-               </Value>
-               <Value type="short" genre="config"  index="52" label="Current RMS value" size="2" read_only="true" units="centiAmperes" >
-                        <Help>Returns the value of current RMS expressed in hundredths of Amperes.</Help>
-               </Value>
-               <Value type="byte" genre="config"  index="53" label="Power Factor" size="1" read_only="true" units="%" >
-                        <Help>Returns the value of power factor as a percentage.</Help>
-               </Value>
-               <Value type="int" genre="config"  index="54" label="Total energy consumed" size="4" read_only="true" units="Wh" >
-                        <Help>Returns the value of total energy consumed expressed in Wh (thousandths of KWh).</Help>
-               </Value>
-                <Value type="int" genre="config"  index="55" label="Total energy produced" size="4" read_only="true" units="Wh" >
-                        <Help>Returns the value of total energy produced expressed in Wh (thousandths of KWh).</Help>
-               </Value>
-               
-
-                <Value type="list" genre="config"  index="60" label="Start-up status" size="1" min="1" max="3" value="3">
-                        <Help>Defines the status of the device following a restart(default 3)</Help>
-                        <Item label="ON" value="1" />
-                        <Item label="OFF" value="2" />
-                        <Item label="Previous status" value="3" />
-                      
-                </Value>
-
-                <Value type="list" genre="config"  index="61" label="Configuration reset" size="1" min="0" max="4" value="4">
-                        <Help>Defines which parameters should be reset to default values.(default 4)</Help>
-                        <Item label="Factory reset" value="0" />
-                        <Item label="Association reset" value="1" />
-                        <Item label="Configuration reset" value="2" />
-                        <Item label="ignore" value="4" />
-                </Value>
-
-                <Value type="list" genre="config"  index="62" label="Type of external switch" size="1" min="0" max="4" value="4">
-                        <Help>Defines the type of external switch connected to the device.(default 4)</Help>
-                        <Item label="Ignore" value="0" />
-                        <Item label="button" value="1" />
-                        <Item label="switch" value="2" />
-                        <Item label="Automatic recognition" value="4" />
-                </Value>
-
-                <Value type="list" genre="config"  index="63" label="Load control" size="1" min="1" max="4" value="1">
-                        <Help>Defines the load control mode.(default 1)</Help>
-                        <Item label="Direct control" value="1" />
-                        <Item label="Contactor (normally open)" value="2" />
-                        <Item label="Contactor (normally closed)" value="3" />
-                        <Item label="As external indicator" value="4" />
-                </Value>
-        </CommandClass>
-
-        <!-- Association Groups -->
-        <CommandClass id="133">
-         <Associations num_groups="3">
-                        <Group index="1" max_associations="8" label="Devices to receive notifications on: status changes; energy and power levels; device local reset" />
-                        <Group index="2" max_associations="8" label="Devices controlled by the Up Power event"  />
-                        <Group index="3" max_associations="8" label="Devices controlled by the Down Power event" />
-         </Associations>
-        </CommandClass>
-
+    </Value>
+    <Value genre="config" index="51" label="Voltage RMS value" read_only="true" size="2" type="short" units="deciVolts">
+      <Help>Returns the value of voltage RMS at the time of the reading expressed in tenths of Volts..</Help>
+    </Value>
+    <Value genre="config" index="52" label="Current RMS value" read_only="true" size="2" type="short" units="centiAmperes">
+      <Help>Returns the value of current RMS expressed in hundredths of Amperes.</Help>
+    </Value>
+    <Value genre="config" index="53" label="Power Factor" read_only="true" size="1" type="byte" units="%">
+      <Help>Returns the value of power factor as a percentage.</Help>
+    </Value>
+    <Value genre="config" index="54" label="Total energy consumed" read_only="true" size="4" type="int" units="Wh">
+      <Help>Returns the value of total energy consumed expressed in Wh (thousandths of KWh).</Help>
+    </Value>
+    <Value genre="config" index="55" label="Total energy produced" read_only="true" size="4" type="int" units="Wh">
+      <Help>Returns the value of total energy produced expressed in Wh (thousandths of KWh).</Help>
+    </Value>
+    <Value genre="config" index="60" label="Start-up status" max="3" min="1" size="1" type="list" value="3">
+      <Help>Defines the status of the device following a restart(default 3)</Help>
+      <Item label="ON" value="1"/>
+      <Item label="OFF" value="2"/>
+      <Item label="Previous status" value="3"/>
+    </Value>
+    <Value genre="config" index="61" label="Configuration reset" max="4" min="0" size="1" type="list" value="4">
+      <Help>Defines which parameters should be reset to default values.(default 4)</Help>
+      <Item label="Factory reset" value="0"/>
+      <Item label="Association reset" value="1"/>
+      <Item label="Configuration reset" value="2"/>
+      <Item label="ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="62" label="Type of external switch" max="4" min="0" size="1" type="list" value="4">
+      <Help>Defines the type of external switch connected to the device.(default 4)</Help>
+      <Item label="Ignore" value="0"/>
+      <Item label="button" value="1"/>
+      <Item label="switch" value="2"/>
+      <Item label="Automatic recognition" value="4"/>
+    </Value>
+    <Value genre="config" index="63" label="Load control" max="4" min="1" size="1" type="list" value="1">
+      <Help>Defines the load control mode.(default 1)</Help>
+      <Item label="Direct control" value="1"/>
+      <Item label="Contactor (normally open)" value="2"/>
+      <Item label="Contactor (normally closed)" value="3"/>
+      <Item label="As external indicator" value="4"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Devices to receive notifications on: status changes; energy and power levels; device local reset" max_associations="8"/>
+      <Group index="2" label="Devices controlled by the Up Power event" max_associations="8"/>
+      <Group index="3" label="Devices controlled by the Down Power event" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/widom/WDS.xml b/Config/widom/WDS.xml
index baa2641bc4..af205cb151 100644
--- a/Config/widom/WDS.xml
+++ b/Config/widom/WDS.xml
@@ -1,38 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Configuration -->
-    <CommandClass id="112">
-        <Value type="list" genre="config" instance="1" index="1" label="Outputs status upon receipt of 1 click on its command" value="1" size="1">
-            <Help>Defines the status of the output O1/O2 when the switch connected to I1/I2 receives 1 Click</Help>
-            <Item label="In Out" value="0"/>
-            <Item label="Toggle" value="1"/>
-            <Item label="On" value="2"/>
-            <Item label="Off" value="3"/>
-            <Item label="Ignore" value="4"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="2" label="Outputs status upon receipt of 2 click on its command" value="1" size="1">
-            <Help>Defines the status of the output O1/O2 when the switch connected to I1/I2 receives 2 Click</Help>
-            <Item label="Toggle" value="1"/>
-            <Item label="On" value="2"/>
-            <Item label="Off" value="3"/>
-            <Item label="Ignore" value="4"/>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="3" label="Type of outputs" value="0" size="1">
-            <Help>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Outputs status upon receipt of 1 click on its command" size="1" type="list" value="1">
+      <Help>Defines the status of the output O1/O2 when the switch connected to I1/I2 receives 1 Click</Help>
+      <Item label="In Out" value="0"/>
+      <Item label="Toggle" value="1"/>
+      <Item label="On" value="2"/>
+      <Item label="Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Outputs status upon receipt of 2 click on its command" size="1" type="list" value="1">
+      <Help>Defines the status of the output O1/O2 when the switch connected to I1/I2 receives 2 Click</Help>
+      <Item label="Toggle" value="1"/>
+      <Item label="On" value="2"/>
+      <Item label="Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Type of outputs" size="1" type="byte" value="0">
+      <Help>
                 Defines if the outputs are controlled individually, as a traditional device with two channels, or if its behaviour simulates a single pole double throw relay.
                 0 - SINGLE CHANNELS (Default Value) => Channel 1 and Channel 2 are controlled individually.
                 From 1 to 9 - SINGLE POLE DOUBLE THROW RELAY => The two channels are in opposite status. If the Channel 1 is close the Channel 2 is open, if the Channel 1 is open the Channel 2 is close. The value of the parameter defines the closing delay of the relay in tenth of seconds
                 From 10 to 19 - SEQUENCING RELAY => Channels are toggled in this way: both channels ON, only channel 1 ON, only channel 2 ON, both channels OFF. The value of the parameter, deducted of 9, defines the closing delay of the relay in tenth of seconds.
                 From 20 to 39 - SELECTOR => Both channels can be OFF but they can never be ON simultaneously. It can be used for fan coil control, roller shutters, and in general for two-speed systems. The value of the parameter, deducted of 19, defines the closing delay of the relay in tenth of seconds.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="4" label="Number of clicks that activate the control of the associated devices" value="2" size="1">
-            <Help>This parameter allows to choose operating for the 1st channel controlled by the S1 switch.</Help>
-            <Item label="1 Click" value="1"/>
-            <Item label="2 Clicks" value="2"/>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="5" label="Level used to control the devices associated to group 2 and 3" value="100" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Number of clicks that activate the control of the associated devices" size="1" type="list" value="2">
+      <Help>This parameter allows to choose operating for the 1st channel controlled by the S1 switch.</Help>
+      <Item label="1 Click" value="1"/>
+      <Item label="2 Clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Level used to control the devices associated to group 2 and 3" size="1" type="byte" value="100">
+      <Help>
                 0 - SWITCH_OFF The associated devices are switched OFF.
                 -1 - SWITCH_ON The associated devices are switched ON.
                 From 1 to 99 The associated devices (dimmer, roller shutters) are set to the indicated level (only for devices associated to group 3).
@@ -44,9 +43,9 @@
                 105 - RELAY_OPPOSITE If the Relay 1 is ON/OFF, the associated devices are OFF/ON.
                 106 - IGNORE No action is taken on the associated devices.
             </Help>
-        </Value>
-        <Value type="byte" genre="config" instance="1" index="6" label="Level used to control the devices associated to group 4 and 5" value="100" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Level used to control the devices associated to group 4 and 5" size="1" type="byte" value="100">
+      <Help>
                 0 - SWITCH_OFF The associated devices are switched OFF.
                 -1 - SWITCH_ON The associated devices are switched ON.
                 From 1 to 99 The associated devices (dimmer, roller shutters) are set to the indicated level (only for devices associated to group 5).
@@ -58,84 +57,88 @@
                 105 - RELAY_OPPOSITE If the Relay 2 is ON/OFF, the associated devices are OFF/ON.
                 106 - IGNORE No action is taken on the associated devices.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="10" label="Timer to switch OFF the Channel 1" units="seconds" value="0" min="0" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Timer to switch OFF the Channel 1" max="32000" min="0" size="2" type="short" units="seconds" value="0">
+      <Help>
                 Defines the time after which the Channel 1 is switched OFF.
                 0 (Default Value) Timer disabled.
                 From 1 to 32000 (seconds) After this time the relay of the Channel 1 is OFF.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="11" label="Timer to switch OFF the Channel 2" units="seconds" value="0" min="0" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Timer to switch OFF the Channel 2" max="32000" min="0" size="2" type="short" units="seconds" value="0">
+      <Help>
                 Defines the time after which the Channel 2 is switched OFF.
                 0 (Default Value) Timer disabled.
                 From 1 to 32000 (seconds) After this time the relay of the Channel 1 is OFF.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="12" label="Timer to switch ON the Channel 1" units="seconds" value="0" min="0" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Timer to switch ON the Channel 1" max="32000" min="0" size="2" type="short" units="seconds" value="0">
+      <Help>
                 Defines the time after which the Channel 1 is switched ON.
                 0 (Default Value) Timer disabled.
                 From 1 to 32000 (seconds) After this time the relay of the Channel 1 is ON.
             </Help>
-        </Value>
-        <Value type="short" genre="config" instance="1" index="13" label="Timer to switch ON the Channel 2" units="seconds" value="0" min="0" max="32000" size="2">
-            <Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Timer to switch ON the Channel 2" max="32000" min="0" size="2" type="short" units="seconds" value="0">
+      <Help>
                 Defines the time after which the Channel 2 is switched ON.
                 0 (Default Value) Timer disabled.
                 From 1 to 32000 (seconds) After this time the relay of the Channel 1 is ON.
             </Help>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="20" label="Outputs status upon receipt of a Multi-Channel Basic Set command" value="1" size="1">
-            <Help>The two channels can be controlled individually by Z-Wave network.
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Outputs status upon receipt of a Multi-Channel Basic Set command" size="1" type="list" value="1">
+      <Help>The two channels can be controlled individually by Z-Wave network.
                 The status of the channels upon receipt of a Multi-Channel Basic Set command is defined by the value set on the parameter.
             </Help>
-            <Item label="As Received" value="1"/>
-            <Item label="Ignore if On" value="2"/>
-            <Item label="Ignore if Off" value="3"/>
-            <Item label="Ignore" value="4"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="21" label="Outputs status upon receipt of a Basic Set command" value="3" size="1">
-            <Help>The channels of the device can be controlled individually from all other Z-Wave devices that support the multichannel feature.
+      <Item label="As Received" value="1"/>
+      <Item label="Ignore if On" value="2"/>
+      <Item label="Ignore if Off" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Outputs status upon receipt of a Basic Set command" size="1" type="list" value="3">
+      <Help>The channels of the device can be controlled individually from all other Z-Wave devices that support the multichannel feature.
                 In order to support also the integration with no-multichannel systems, this parameter allows to define if the receipt of a no-multichannel command controls only the Channel 1 or both.
             </Help>
-            <Item label="Channel 1" value="1"/>
-            <Item label="Both Channels" value="3"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="60" label="Start-up status" value="4" size="1">
-            <Help>Defines the status of the device following a restart.</Help>
-            <Item label="Off Off" value="0"/>
-            <Item label="On Off" value="1"/>
-            <Item label="Off On" value="2"/>
-            <Item label="On On" value="3"/>
-            <Item label="Previous status" value="4"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="61" label="Configuration reset" value="4" size="1">
-            <Help>Defines which parameters should be reset to default values.</Help>
-            <Item label="Factory Reset" value="0"/>
-            <Item label="Association Reset" value="1"/>
-            <Item label="Configuration Reset" value="2"/>
-            <Item label="Restart Device" value="3"/>
-            <Item label="Ignore" value="4"/>
-        </Value>
-        <Value type="list" genre="config" instance="1" index="62" label="Type of external switch" value="1" size="1">
-            <Help>Defines the type of external switch connected to the device.</Help>
-            <Item label="Ignore" value="0"/>
-            <Item label="Momentary switch" value="1"/>
-            <Item label="Toggle switch" value="2"/>
-        </Value>
-    </CommandClass>
-    <!-- -->
-    <CommandClass id="96" mapping="endpoints"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="5">
-            <Group index="1" max_associations="8" label="Lifeline"/>
-            <Group index="2" max_associations="8" label="On/Off S1"/>
-            <Group index="3" max_associations="8" label="Dimmer S1"/>
-            <Group index="4" max_associations="8" label="On/Off S2"/>
-            <Group index="5" max_associations="8" label="Dimmer S2"/>
-        </Associations>
-    </CommandClass>
+      <Item label="Channel 1" value="1"/>
+      <Item label="Both Channels" value="3"/>
+    </Value>
+    <Value genre="config" index="60" instance="1" label="Start-up status" size="1" type="list" value="4">
+      <Help>Defines the status of the device following a restart.</Help>
+      <Item label="Off Off" value="0"/>
+      <Item label="On Off" value="1"/>
+      <Item label="Off On" value="2"/>
+      <Item label="On On" value="3"/>
+      <Item label="Previous status" value="4"/>
+    </Value>
+    <Value genre="config" index="61" instance="1" label="Configuration reset" size="1" type="list" value="4">
+      <Help>Defines which parameters should be reset to default values.</Help>
+      <Item label="Factory Reset" value="0"/>
+      <Item label="Association Reset" value="1"/>
+      <Item label="Configuration Reset" value="2"/>
+      <Item label="Restart Device" value="3"/>
+      <Item label="Ignore" value="4"/>
+    </Value>
+    <Value genre="config" index="62" instance="1" label="Type of external switch" size="1" type="list" value="1">
+      <Help>Defines the type of external switch connected to the device.</Help>
+      <Item label="Ignore" value="0"/>
+      <Item label="Momentary switch" value="1"/>
+      <Item label="Toggle switch" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="On/Off S1" max_associations="8"/>
+      <Group index="3" label="Dimmer S1" max_associations="8"/>
+      <Group index="4" label="On/Off S2" max_associations="8"/>
+      <Group index="5" label="Dimmer S2" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zipato/MiniKeypad.xml b/Config/zipato/MiniKeypad.xml
index 688d57680e..b0300782f4 100644
--- a/Config/zipato/MiniKeypad.xml
+++ b/Config/zipato/MiniKeypad.xml
@@ -1,44 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--http://www.pepper1.net/zwavedb/device/302-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Configuration -->
   <CommandClass id="112">
-
-    <Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="-1">
+    <Value genre="config" index="1" instance="1" label="Set to Default" type="byte" value="-1">
       <Help>Set all configuration values to default values (factory settings).</Help>
     </Value>
-
-    <Value type="list" genre="config" instance="1" index="2"
-	   label="Feedback Time" value="0" size="1">
+    <Value genre="config" index="2" instance="1" label="Feedback Time" size="1" type="list" value="0">
       <Help>To configure the time the beep is automatically turned off in seconds.</Help>
       <Item label="Disabled" value="0"/>
       <Item label="Endless" value="-1"/>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="3" label="Feedback Timeout" value="0">
+    <Value genre="config" index="3" instance="1" label="Feedback Timeout" type="byte" value="0">
       <Help>To configure the timeout to wait for a WAKEUP_NO_MORE_INFORMATION before the error beep is automatically sound. The error beeps are fixed 8 beeps shortly after each other.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="4" label="Feedback Beeps per Second" value="2">
+    <Value genre="config" index="4" instance="1" label="Feedback Beeps per Second" type="byte" value="2">
       <Help>To configure the number of beeps per second. Every beep is fixed about 10ms.</Help>
     </Value>
-
-    <Value type="byte" genre="config" instance="1" index="5" label="The Mode" value="1">
+    <Value genre="config" index="5" instance="1" label="The Mode" type="byte" value="1">
       <Help>To configure the operating mode. If any mode other then 3, that value will be reported after a get but will be handled in SW as mode 1.</Help>
       <Item label="Mode 1: Normal operating mode." value="1"/>
       <Item label="Mode 3: Z-Wave chip is always on to request e.g. version or manufacturer id." value="3"/>
     </Value>
   </CommandClass>
-  
   <!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
-  <CommandClass id="113" getsupported="false" />
-
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Group 1" />
+      <Group index="1" label="Group 1" max_associations="5"/>
     </Associations>
   </CommandClass>
-
 </Product>
diff --git a/Config/zipato/RGBBulb.xml b/Config/zipato/RGBBulb.xml
index 5951d0ffc3..18138dcfc2 100644
--- a/Config/zipato/RGBBulb.xml
+++ b/Config/zipato/RGBBulb.xml
@@ -1,28 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0131:0002:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zipato/RGBBulb.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/1132/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Place your Z-Wave primary controller into inclusion mode by following the controller manufacturer's instructions.
+
+Place the light bulb into inclusion mode by gently tapping the
+light bulb. The light bulb will shine green to indicate a successful
+activation of inclusion mode.</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0002">rgbwe27zw</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">A factory default reset is performed when the bulb is excluded
+from a Z-wave network.</MetaDataItem>
+    <MetaDataItem name="Description">Zipato RGBW BULB has 5 color channels available for you to adjust:
+RED, GREEN, BLUE, WARM WHITE and COLD WHITE. Zipato RGBW
+BULB can be used to add color to your home or just to lighten it up in
+any white color tone you desire.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Place your Z-Wave primary controller into exclusion mode by following the controller manufacturer's instructions.
+
+Place the light bulb into exclusion mode by gently tapping the
+light bulb. The light bulb will shine green to indicate a successful
+activation of exclusion mode.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1132/Zipato RGBW Bulb Manual (EN) (1) (1).pdf</MetaDataItem>
+    <MetaDataItem name="Name">Zipato RGBW light bulb</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1132/xml</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="byte" index="1" genre="config" label="RGB Color" units="" min="0" max="100" value="50">
+    <Value genre="config" index="1" label="RGB Color" max="100" min="0" type="byte" units="" value="50">
       <Help>
 	Color Temperature
       </Help>
     </Value>
-    <Value type="byte" index="2" genre="config" label="Shock Sensor" units="" min="0" max="32" value="10">
+    <Value genre="config" index="2" label="Shock Sensor" max="32" min="0" type="byte" units="" value="10">
       <Help>
         Shock sensor : 0=Maximum sensitivity ; 32=minimum sensitivity 
       </Help>
     </Value>
   </CommandClass>
-
   <!-- SwitchAll Command Class doesn't seem to respond at least on version 1.05 -->
-  <CommandClass id="39" action="remove" />
+  <CommandClass action="remove" id="39"/>
   <!-- Remove COMMAND_CLASS_BASIC -->
-  <CommandClass id="32" action="remove" />
+  <CommandClass action="remove" id="32"/>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
-      <Group index="1" max_associations="5" label="Report"  />
+      <Group index="1" label="Report" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
-
diff --git a/Config/zipato/RGBBulb2.xml b/Config/zipato/RGBBulb2.xml
index 3fe8af16de..a6b491b78b 100644
--- a/Config/zipato/RGBBulb2.xml
+++ b/Config/zipato/RGBBulb2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
   <!-- Zipato Bulb 2 -->
   <!-- Configuration Parameters -->
   <CommandClass id="112">
diff --git a/Config/zipato/pan04.xml b/Config/zipato/pan04.xml
index 0c470e098a..0027c1ee02 100644
--- a/Config/zipato/pan04.xml
+++ b/Config/zipato/pan04.xml
@@ -1,68 +1,71 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Zipato: PAN04 Micro Module Switch Double w.meter
 https://products.z-wavealliance.org/products/2421
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <CommandClass id="96" mapping="endpoints" />
-	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="short" instance="1" index="1" genre="config" label="Watt Meter Report Period" units="5 seconds" min="1" max="32000" value="720">
-			<Help>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Watt Meter Report Period" max="32000" min="1" type="short" units="5 seconds" value="720">
+      <Help>
                 If the setting is configured for 1hour (set value =720), Micromodule will report its instant power consumption every 1 hour to the node of correspond Group.
                 The maximum interval to report its instant power consumption is 45 hours (5s*32767/3600=45hr).</Help>
-		</Value>
-		<Value type="short" instance="1" index="2" genre="config" label="KWh Meter Report Period" units="10 minutes" min="1" max="32000" value="6">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="KWh Meter Report Period" max="32000" min="1" type="short" units="10 minutes" value="6">
+      <Help>
                 If the setting is configured for 1hour (set value =6), Micromodule will report its Accumulated Power Consumption (KW/h) every 1 hour to the node of correspond Group.
                 The maximum interval to report its Accumulated Power Consumption (KW/h) is 227.55 days (10min*32767/1440=227.55 days).</Help>
-		</Value>
-		<Value type="list" instance="1" index="3" genre="config" label="Selected end point" size="1" min="1" max="3" value="1">
-			 <Help>If Micromodule is not using Multi_Channel command class to access the relay of Switch, you may configure the select value to react the Basic Command Class, Binary Switch Command Class or Meter Command Class V3.</Help>
-            <Item label="Relay 1 and Relay 2" value="1" />
-			<Item label="Relay 1" value="2" />
-			<Item label="Relay 2" value="3" />
-		</Value>
-		<Value type="list" instance="1" index="4" genre="config" label="External switch operating mode" size="1" min="1" max="3" value="1">
-			<Help>Manual switch S1 and S2 can set to Edge mode or Pulse mode or Edge-Toggle mode, default value is Edge mode.
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Selected end point" max="3" min="1" size="1" type="list" value="1">
+      <Help>If Micromodule is not using Multi_Channel command class to access the relay of Switch, you may configure the select value to react the Basic Command Class, Binary Switch Command Class or Meter Command Class V3.</Help>
+      <Item label="Relay 1 and Relay 2" value="1"/>
+      <Item label="Relay 1" value="2"/>
+      <Item label="Relay 2" value="3"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="External switch operating mode" max="3" min="1" size="1" type="list" value="1">
+      <Help>Manual switch S1 and S2 can set to Edge mode or Pulse mode or Edge-Toggle mode, default value is Edge mode.
             1) Edge : This mode is suitable for the bi stable wall switch that has indicator point on the Micromodule, and the same position correspond to same state of relay1 and relay2. if the Switchs relay changes the state because of receiving Z-Wave RF command, it may need two switchings (switch on to off or switch off to on) to let relay back to the corresponding state.
             2) Pulse : this mode is suitable for the toggle type wall switch to swap the state of Relay1 or Relay2.
             3) Edge-Toggle : This mode is suitable for the normal bi-stable switch, every state change of the wall switch will also swap the state of Relay1 or Relay2.</Help>
-			<Item label="Edge" value="1" />
-			<Item label="Pulse" value="2" />
-			<Item label="Edge/Toggle" value="3" />
-		</Value>
-		<Value type="short" instance="1" index="5" genre="config" label="Threshold of Watt for Load Caution" units="0.01A" min="10" max="750" value="750">
-			 <Help>This is a warning when the wattage of load over the preset threshold value, If the setting value is 750, when the load wattage of Relay1 or Relay2 over this value, Micromodule will send Watt Meter Report command to the node of correspond Group, the Range of the setting value is from 10 to 750, and the default value is 750.</Help>
-		</Value>
-		<Value type="short" instance="1" index="6" genre="config" label="Threshold of kWh for Load Caution" units="1KWh" min="10" max="1000" value="750">
-			 <Help>This is a warning when the KWh of load exceeds preset threshold value, If the setting value is 1000, when the Accumulated Power Consumption of Relay1 or Relay2 exceeds this value, Micromodule will send KWh Meter Report command to the node of corresponding Group, the Range of the setting value is from 10 to 1000, and the default value is 750.</Help>
-		</Value>
-        <Value type="list" instance="1" index="7" genre="config" label="Restore switch state mode" size="1" min="1" max="3" value="1">
-			 <Help>Whenever the AC power return from lost, Micromodule will restore the switch state which could be</Help>
-            <Item label="Switch off" value="1" />
-			<Item label="Last switch state" value="2" />
-			<Item label="Switch on" value="3" />
-		</Value>
-        <Value type="short" instance="1" index="8" genre="config" label="Auto off timer" units="second" min="0" max="32767" value="0">
-			<Help>
+      <Item label="Edge" value="1"/>
+      <Item label="Pulse" value="2"/>
+      <Item label="Edge/Toggle" value="3"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Threshold of Watt for Load Caution" max="750" min="10" type="short" units="0.01A" value="750">
+      <Help>This is a warning when the wattage of load over the preset threshold value, If the setting value is 750, when the load wattage of Relay1 or Relay2 over this value, Micromodule will send Watt Meter Report command to the node of correspond Group, the Range of the setting value is from 10 to 750, and the default value is 750.</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Threshold of kWh for Load Caution" max="1000" min="10" type="short" units="1KWh" value="750">
+      <Help>This is a warning when the KWh of load exceeds preset threshold value, If the setting value is 1000, when the Accumulated Power Consumption of Relay1 or Relay2 exceeds this value, Micromodule will send KWh Meter Report command to the node of corresponding Group, the Range of the setting value is from 10 to 1000, and the default value is 750.</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Restore switch state mode" max="3" min="1" size="1" type="list" value="1">
+      <Help>Whenever the AC power return from lost, Micromodule will restore the switch state which could be</Help>
+      <Item label="Switch off" value="1"/>
+      <Item label="Last switch state" value="2"/>
+      <Item label="Switch on" value="3"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Auto off timer" max="32767" min="0" type="short" units="second" value="0">
+      <Help>
                 Whenever Micromodule switches to on, the auto off timer begin to count down.
                 After the timer decrease to zero, it will switch off automatically.
                 However if Auto off timer is set as 0, the auto off function will be disabled.
                 The default setting is 0.
             </Help>
-		</Value>
-        <Value type="list" instance="1" index="9" genre="config" label="RF off command mode" size="1" min="0" max="3" value="1">
-			 <Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="RF off command mode" max="3" min="0" size="1" type="list" value="1">
+      <Help>
                  Whenever a switch off command, BASIC_SET, BINARY_SWITCH_SET, SWITCH_ALL_OFF, is received, it could be interpreted as 4 kinds of commands.
              </Help>
-            <Item label="Switch off" value="0" />
-            <Item label="Ignore" value="1" />
-			<Item label="Switch toogle" value="2" />
-			<Item label="Switch on" value="3" />
-		</Value>
-        <Value type="list" instance="1" index="10" genre="config" label="Existence of Endpoint3" size="1" min="1" max="2" value="1">
-			 <Help>
+      <Item label="Switch off" value="0"/>
+      <Item label="Ignore" value="1"/>
+      <Item label="Switch toogle" value="2"/>
+      <Item label="Switch on" value="3"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Existence of Endpoint3" max="2" min="1" size="1" type="list" value="1">
+      <Help>
                  Multi-Channel Command is a good way to control relay1 and relay2 of Switch individually.
                  The endpoint3 of Micromodule is related to both relay1 and relay2.
                  In some condition it becomes redundant in Multi-Channel Command Class.
@@ -70,19 +73,18 @@ https://products.z-wavealliance.org/products/2421
                  The default value is 1.
                  Endpoint1 and Endpoint2 are fixed, only Endpoint3 is dynamic.
              </Help>
-            <Item label="Endpoint 3 exist" value="1" />
-			<Item label="No Endpoint 3" value="2" />
-		</Value>
-	</CommandClass>
-	<!-- COMMAND_CLASS_ALARM does not respond to requests -->
-	<CommandClass id="113" action="remove" />
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="1" label="Relay 1 and 2 together" />
-			<Group index="2" max_associations="1" label="Relay 1"/>
-			<Group index="3" max_associations="1" label="Relay 2"/>
-		</Associations>
-	</CommandClass>
-
-</Product>
\ No newline at end of file
+      <Item label="Endpoint 3 exist" value="1"/>
+      <Item label="No Endpoint 3" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM does not respond to requests -->
+  <CommandClass action="remove" id="113"/>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Relay 1 and 2 together" max_associations="1"/>
+      <Group index="2" label="Relay 1" max_associations="1"/>
+      <Group index="3" label="Relay 2" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/zipato/vszd2102.xml b/Config/zipato/vszd2102.xml
index 498d42585f..ff11fe1e3e 100644
--- a/Config/zipato/vszd2102.xml
+++ b/Config/zipato/vszd2102.xml
@@ -1,20 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!--  
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--  
 	Zipato VS-ZD2102 Door/Window Sensor 
 	https://www.zipato.com/wp-content/uploads/2015/09/vs-zd2102-Zipato-Door-Window-Sensor-User-Manual-v1.4.pdf
 	-->
 	
 	<!-- COMMAND_CLASS_BASIC -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
-	<CommandClass id="113" getsupported="false" />
-
-	<!-- COMMAND_CLASS_ASSOCIATION -->
-	<CommandClass id="133">
-		<Associations num_groups="1">
-			<Group index="1" max_associations="5" label="Lifeline" />
-		</Associations>
-	</CommandClass>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ALARM AlarmCmd_Get responds with an undocumented value -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zipato/zp3102.xml b/Config/zipato/zp3102.xml
index 7c3b1801a6..9f088a392e 100644
--- a/Config/zipato/zp3102.xml
+++ b/Config/zipato/zp3102.xml
@@ -1,35 +1,35 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 Zipato Multisensor Duo
 https://www.zipato.com/wp-content/uploads/2015/09/vs-zp3102-Zipato-Multi-Sensor-Dual-User-Manual-v1.4.pdf
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-        <!-- COMMAND_CLASS_CONFIGURATION -->
-        <CommandClass id="112">
-                <Value type="byte" genre="config" index="1" label="Re-Trigger Waiting Time" units="minutes" min="1" max="255" value="3">
-                    <Help>Time until an associated device will turn off if no new movement is detected</Help>
-                </Value>
-                <Value type="list" genre="config" index="2" label="Celcius/Fahrenheit" size="1" min="0" max="1" value="0">
-                    <Help>Report temperature in Celcius or Fahrenheit</Help>
-                    <Item label="Celcius" value="0" />
-                    <Item label="Fahrenheit" value="1" />
-                </Value>
-                <Value type="byte" genre="config" index="3" label="Sensitivity" units="" min="1" max="7" value="4">
-                    <Help>Sensitivity 1-7 (1 = most sensitive, 7 = most insensitive. 4 is default)</Help>
-                </Value>
-                <Value type="byte" genre="config" index="4" label="Temperature adjustment" units="Degrees Celsius" min="0" max="255" value="0">
-                    <Help>-10 to -1, 0 to 10 (Signed decimal: 246 to 255, 0 to 10)</Help>
-                </Value>
-        </CommandClass>
-
-        <!-- COMMAND_CLASS_BASIC -->
-        <CommandClass id="32" setasreport="true"/>
-
-        <!-- COMMAND_CLASS_ASSOCIATION -->
-        <CommandClass id="133">
-                <Associations num_groups="1">
-                        <Group index="1" max_associations="5" label="Basic on/off group for detecting movements" />
-                </Associations>
-        </CommandClass>
-
-</Product>
\ No newline at end of file
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- COMMAND_CLASS_CONFIGURATION -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Re-Trigger Waiting Time" max="255" min="1" type="byte" units="minutes" value="3">
+      <Help>Time until an associated device will turn off if no new movement is detected</Help>
+    </Value>
+    <Value genre="config" index="2" label="Celcius/Fahrenheit" max="1" min="0" size="1" type="list" value="0">
+      <Help>Report temperature in Celcius or Fahrenheit</Help>
+      <Item label="Celcius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="Sensitivity" max="7" min="1" type="byte" units="" value="4">
+      <Help>Sensitivity 1-7 (1 = most sensitive, 7 = most insensitive. 4 is default)</Help>
+    </Value>
+    <Value genre="config" index="4" label="Temperature adjustment" max="255" min="0" type="byte" units="Degrees Celsius" value="0">
+      <Help>-10 to -1, 0 to 10 (Signed decimal: 246 to 255, 0 to 10)</Help>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Basic on/off group for detecting movements" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/zooz/zen06.xml b/Config/zooz/zen06.xml
index d79e049d3f..0fee9a7b3e 100644
--- a/Config/zooz/zen06.xml
+++ b/Config/zooz/zen06.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- https://products.z-wavealliance.org/products/1901 -->
 
   <!-- Configuration Parameters -->
diff --git a/Config/zooz/zen07.xml b/Config/zooz/zen07.xml
index da41311eb0..618e790a70 100644
--- a/Config/zooz/zen07.xml
+++ b/Config/zooz/zen07.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Zooz ZEN07 Mini Plug -->
 
     <!-- Configuration Parameters -->
@@ -63,4 +63,4 @@
             <Group index="3" max_associations="5" label="Notifications"/>
         </Associations>
     </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/zooz/zen15.xml b/Config/zooz/zen15.xml
index 2f7a01554a..5df4ecafd9 100644
--- a/Config/zooz/zen15.xml
+++ b/Config/zooz/zen15.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Zooz ZEN15 Power Switch 
          Configuration Parameters -->
   <Protocol refreshonnodeinfoframe="true"/>
diff --git a/Config/zooz/zen20.xml b/Config/zooz/zen20.xml
index 6a9f0f3f3d..2ef1a5b9bd 100644
--- a/Config/zooz/zen20.xml
+++ b/Config/zooz/zen20.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
     </CommandClass>
diff --git a/Config/zooz/zen20v2.xml b/Config/zooz/zen20v2.xml
index 135e151bfb..523e8eba3e 100644
--- a/Config/zooz/zen20v2.xml
+++ b/Config/zooz/zen20v2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- https://products.z-wavealliance.org/products/3158 -->
 
   <!-- Configuration Parameters -->
diff --git a/Config/zooz/zen21.xml b/Config/zooz/zen21.xml
index 93f50c432e..47a0b12be9 100644
--- a/Config/zooz/zen21.xml
+++ b/Config/zooz/zen21.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- https://products.z-wavealliance.org/products/1945 -->
   <!-- Configuration Parameters -->
   <CommandClass id="112">
diff --git a/Config/zooz/zen21v2.xml b/Config/zooz/zen21v2.xml
new file mode 100644
index 0000000000..ee5ecd388c
--- /dev/null
+++ b/Config/zooz/zen21v2.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" value="0" label="Paddle Control" units="" size="1" min="0" max="2" type="list">
+      <Help>Controls the on/off orientation of the rocker switch</Help>
+      <Item value="0" label="Upper paddle turns on"/>
+      <Item value="1" label="Upper paddle turns off"/>
+      <Item value="2" label="Both paddles toggle"/>
+    </Value>
+    <Value genre="config" index="2" value="0" label="LED Indicator Control" units="" size="1" min="0" max="3" type="list">
+      <Help>Control the LED indicator on switch</Help>
+      <Item value="0" label="LED on when switch is off"/>
+      <Item value="1" label="LED on when switch is on"/>
+      <Item value="2" label="LED is always off"/>
+      <Item value="3" label="LED is always on"/>
+    </Value>
+    <Value genre="config" index="3" value="0" label="Auto Turn-off Timer" units="" size="1" min="0" max="1 " type="list">
+      <Help>Use this parameter to enable or disable the auto turn-off timer function </Help>
+      <Item value="0" label="Disabled"/>
+      <Item value="1" label="Enabled"/>
+    </Value>
+    <Value genre="config" index="4" value="60" label="Timer-off Time" units="minutes" size="4" min="1" max="65535" type="int">
+      <Help>Use this parameter to set the time after which you want the switch to automatically turn off once it has been turned on. The number entered as value corresponds to the number of minutes</Help>
+    </Value>
+    <Value genre="config" index="5" value="0" label="Auto Turn-On Timer" units="" size="1" min="0" max="1 " type="list">
+      <Help>Use this parameter to enable or disable the auto turn-off timer function </Help>
+      <Item value="0" label="Disabled"/>
+      <Item value="1" label="Enabled"/>
+    </Value>
+    <Value genre="config" index="6" value="60" label="Timer-On Time" units="minutes" size="4" min="1" max="65535" type="int">
+      <Help>Use this parameter to set the time after which you want the switch to automatically turn on once it has been turned off. The number entered as value corresponds to the number of minutes</Help>
+    </Value>
+    <Value genre="config" index="8" value="2" label="On Off Status after Power Failure" units="" size="1" min="0" max="2" type="list">
+      <Help>Set the on off status for switch after power failure</Help>
+      <Item value="0" label="forced to OFF (regardless of state prior to power outage)"/>
+      <Item value="1" label="forced to ON (regardless of state prior to power outage)"/>
+      <Item value="2" label="remembers and restores on/off status after power failure"/>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5" />
+      <Group index="2" label="Group 2" max_associations="5" />
+    </Associations>
+  </CommandClass>
+
+</Product>
diff --git a/Config/zooz/zen22.xml b/Config/zooz/zen22.xml
index 5c05d82f08..abb4681f6a 100644
--- a/Config/zooz/zen22.xml
+++ b/Config/zooz/zen22.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- https://products.z-wavealliance.org/products/1946 -->
   <!-- Association Groups -->
   <CommandClass id="133">
diff --git a/Config/zooz/zen22v2.xml b/Config/zooz/zen22v2.xml
index 3fc640e98c..70170f17ac 100644
--- a/Config/zooz/zen22v2.xml
+++ b/Config/zooz/zen22v2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value genre="config" index="1" value="0" label="Orientation" units="" size="1" min="0" max="255" type="list">
diff --git a/Config/zooz/zen23.xml b/Config/zooz/zen23.xml
index 9da6562952..8f35a0465f 100644
--- a/Config/zooz/zen23.xml
+++ b/Config/zooz/zen23.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- https://products.z-wavealliance.org/products/2058 -->
     <!-- Configuration Parameters -->
     <CommandClass id="112">
diff --git a/Config/zooz/zen24.xml b/Config/zooz/zen24.xml
index 2fcfcc29f6..36730ca77a 100644
--- a/Config/zooz/zen24.xml
+++ b/Config/zooz/zen24.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" index="1" genre="config" label="Invert Switch" units="" min="0" max="1" value="0" size="1">
diff --git a/Config/zooz/zen25.xml b/Config/zooz/zen25.xml
new file mode 100644
index 0000000000..1e80dccc5d
--- /dev/null
+++ b/Config/zooz/zen25.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Zooz ZEN25 S2 Double Plug with USB Port
+https://products.z-wavealliance.org/products/3192
+-->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" index="1" label="On/Off Status Recovery After Power Failure" units="" size="1" min="0" max="2" value="0">
+      <Help>Recovery state for the Double Plug's outlets if power outage occurs</Help>
+      <Item value="0" label="Previous state"/>
+      <Item value="1" label="ON"/>
+      <Item value="2" label="OFF"/>
+    </Value>
+    <Value type="int" genre="config" index="2" label="Power Wattage Report Value Threshold" units="Watts" size="4" min="0" max="65535" value="5">
+      <Help>Minimum change in watts to report</Help>
+    </Value>
+    <Value type="int" genre="config" index="3" label="Power Wattage Report Frequency" units="seconds" size="4" min="30" max="2678400" value="30">
+      <Help>How often to report power consumption (W) in seconds</Help>
+    </Value>
+    <Value type="int" genre="config" index="4" label="Energy (kWh) Report Frequency " units="seconds" size="4" min="5" max="2678400" value="300">
+      <Help>How often to report energy usage (kWh)in seconds</Help>
+    </Value>
+    <Value type="int" genre="config" index="5" label="Voltage Report Frequency " units="seconds" size="4" min="5" max="2678400" value="300">
+      <Help>How often to report voltage (V) in seconds</Help>
+    </Value>
+    <Value type="int" genre="config" index="6" label="Electrical Current Report Frequency" units="seconds" size="4" min="5" max="2678400" value="300">
+      <Help>How often to report electrical current (A) in seconds</Help>
+    </Value>
+    <Value type="byte" genre="config" index="7" label="Overload Protection" units="Amps" size="1" min="1" max="10" value="10">
+      <Help>Turns off once amperage exceeds specified amount (both outlets combined)</Help>
+    </Value>
+
+    <Value type="list" genre="config" index="8" label="Auto Turn-Off Timer - Left (CH1) outlet" units="" size="1" min="0" max="1" value="0">
+      <Help>Enable (or disable) the auto turn-off timer for the left (CH1) outlet.  See parameter 9 to set the amount of time.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value type="int" genre="config" index="9" label="Auto Turn-Off Timer Interval - Left (CH1) outlet" units="minutes" size="4" min="1" max="65535" value="60">
+      <Help>Set the time (in minutes) to turn off the left (CH1) outlet if the Auto Turn-Off Timer - Left is enabled (see parameter 8).</Help>
+    </Value>
+    <Value type="list" genre="config" index="10" label="Auto Turn-On Timer - Left (CH1) outlet" units="" size="1" min="0" max="1" value="0">
+      <Help>Enable (or disable) the auto turn-on timer for the left (CH1) outlet.  See parameter 11 to set the amount of time since the device was turned off before it turns back on.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value type="int" genre="config" index="11" label="Auto Turn-On Timer Interval - Left (CH1) outlet" units="minutes" size="4" min="1" max="65535" value="60">
+      <Help>Set the time (in minutes) to turn on the left (CH1) outlet after it is turned off.  Requires the "Auto Turn-On Timer - Left" parameter (10) to be enabled.</Help>
+    </Value>
+    <Value type="list" genre="config" index="12" label="Auto Turn-Off Timer - Right (CH2) outlet" units="" size="1" min="0" max="1" value="0">
+      <Help>Enable (or disable) the auto turn-off timer for the right (CH2) outlet.  See parameter 13 to set the amount of time.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value type="int" genre="config" index="13" label="Auto Turn-Off Timer Interval - Right (CH2) outlet" units="minutes" size="4" min="1" max="65535" value="60">
+      <Help>Set the time (in minutes) to turn off the right (CH2) outlet if the Auto Turn-Off Timer - Right is enabled (see parameter 12).</Help>
+    </Value>
+    <Value type="list" genre="config" index="14" label="Auto Turn-On Timer - Right (CH2) outlet" units="" size="1" min="0" max="1" value="0">
+      <Help>Enable (or disable) the auto turn-on timer for the right (CH2) outlet.  See parameter 15 to set the amount of time since the device was turned off before it turns back on.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value type="int" genre="config" index="15" label="Auto Turn-On Timer Interval - Right (CH2) outlet" units="minutes" size="4" min="1" max="65535" value="60">
+      <Help>Set the time (in minutes) to turn on the right (CH2) outlet after it is turned off.  Requires the "Auto Turn-On Timer - Right" parameter (14) to be enabled.</Help>
+    </Value>
+    <Value type="list" genre="config" index="16" label="Manual Control" units="" size="1" min="0" max="1" value="1">
+      <Help>Enable (or disable) manual control of the outlets using the Z-Wave button on the double plug</Help>
+      <Item label="Disabled for both outlets" value="0"/>
+      <Item label="Enabled for both outlets" value="1"/>
+    </Value>
+    <Value type="list" genre="config" index="17" label="LED Indicator Mode" units="" size="1" min="0" max="3" value="0">
+      <Help>Enable (or disable) LED indicators next to each outlet</Help>
+      <Item value="0" label="LED displays power consumption whenever device is plugged in (LED stays on at all times even if plug is off)"/>
+      <Item value="1" label="LED displays power consumption whenever device is plugged in (LED is only on if outlet is ON)"/>
+      <Item value="2" label="LED displays power consumption for 5 seconds when device is turned on or off"/>
+      <Item value="3" label="LED is OFF at all times except for inclusion, exclusion and Z-Wave range test"/>
+    </Value>
+    <Value type="list" genre="config" index="18" label="Enable/Disable Power Reports" units="" size="1" min="0" max="4" value="0">
+      <Help>Enable (or disable) power reports sent to the hub (requires firmware version 2 or higher)</Help>
+      <Item value="0" label="Enable power monitoring and reports from USB port"/>
+      <Item value="1" label="Disable power monitoring on both outlets and reports from USB port"/>
+      <Item value="2" label="Disable power monitoring of left outlet"/>
+      <Item value="3" label="Disable power monitoring of right outlet"/>
+      <Item value="4" label="Disable reports from USB port only"/>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1" />
+      <Group index="2" label="Notifications" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+
+</Product>
diff --git a/Config/zooz/zen26.xml b/Config/zooz/zen26.xml
index e50a0cd260..5aebd70ecd 100644
--- a/Config/zooz/zen26.xml
+++ b/Config/zooz/zen26.xml
@@ -3,7 +3,7 @@
 Zooz ZEN26 S2 On Off Wall Switch 
 https://products.z-wavealliance.org/products/3147
 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" genre="config" index="1" label="Paddle Control" size="1" min="0" max="1" value="0">
diff --git a/Config/zooz/zen27.xml b/Config/zooz/zen27.xml
index 2b37561a26..cd2fa8f117 100644
--- a/Config/zooz/zen27.xml
+++ b/Config/zooz/zen27.xml
@@ -3,7 +3,7 @@
 Zooz ZEN27 S2 Dimmer Wall Switch
 https://products.z-wavealliance.org/products/3148
  -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Configuration Parameters -->
     <CommandClass id="112">
         <Value type="list" genre="config" index="1" label="Paddle Control" size="1" min="0" max="1" value="0">
diff --git a/Config/zooz/zse08.xml b/Config/zooz/zse08.xml
index aab565fd75..18c404bcb9 100644
--- a/Config/zooz/zse08.xml
+++ b/Config/zooz/zse08.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Zooz ZSE08 Contact Sensor -->
 
     <!-- Configuration Parameters -->
diff --git a/Config/zooz/zse09.xml b/Config/zooz/zse09.xml
index 9cec7c8393..ae2b681cfe 100644
--- a/Config/zooz/zse09.xml
+++ b/Config/zooz/zse09.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
     <!-- Zooz ZSE09 Mini Sensor -->
 
     <!-- Configuration Parameters -->
diff --git a/Config/zooz/zse18.xml b/Config/zooz/zse18.xml
index 03664bad8b..eb2ef0b416 100644
--- a/Config/zooz/zse18.xml
+++ b/Config/zooz/zse18.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Zooz ZSE18 Motion Sensor -->
 
     <!-- Configuration Parameters -->
diff --git a/Config/zooz/zse19.xml b/Config/zooz/zse19.xml
index 1f7f0d0c68..90394590d6 100644
--- a/Config/zooz/zse19.xml
+++ b/Config/zooz/zse19.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 <!-- https://products.z-wavealliance.org/products/3116 -->
 
   <!-- Configuration Parameters -->
diff --git a/Config/zooz/zse30.xml b/Config/zooz/zse30.xml
index 6e8f41b605..dda4364f5e 100644
--- a/Config/zooz/zse30.xml
+++ b/Config/zooz/zse30.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
   <!-- Zooz ZSE30 Water Sensor -->
   <!-- http://products.z-wavealliance.org/products/2204 -->
 
diff --git a/Config/zooz/zse33.xml b/Config/zooz/zse33.xml
index 4c65ef0ec7..49a33afc30 100644
--- a/Config/zooz/zse33.xml
+++ b/Config/zooz/zse33.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- 
     Zooz ZSE33 Smart Chime
     http://products.z-wavealliance.org/products/2175
diff --git a/Config/zooz/zse40.xml b/Config/zooz/zse40.xml
index 2c621eb205..51a05c2d3f 100644
--- a/Config/zooz/zse40.xml
+++ b/Config/zooz/zse40.xml
@@ -1,63 +1,63 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Zooz ZSE40 4-in-1 sensor -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Zooz ZSE40 4-in-1 sensor -->
 
     <!-- Configuration Parameters -->
-    <CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION">
-        <Value type="list" index="1" genre="config" label="Temperature Scale" units="" min="0" max="1" value="1" size="1">
-            <Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Temperature Scale" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
                 Temperature scale (Celsius or Fahrenheit (default)).
             </Help>
-            <Item label="Celsius" value="0" />
-            <Item label="Fahrenheit" value="1" />
-        </Value>
-        <Value type="byte" index="2" genre="config" label="Temperature Change Notif" units="0.1 degree" min="1" max="50" value="10">
-            <Help>
+      <Item label="Celsius" value="0"/>
+      <Item label="Fahrenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="2" label="Temperature Change Notif" max="50" min="1" type="byte" units="0.1 degree" value="10">
+      <Help>
                 Minimum temperature change that will trigger a report to the controller, in 0.1 degrees. 10 = 1.0 degrees (default).
             </Help>
-        </Value>
-        <Value type="byte" index="3" genre="config" label="Humidity Change Notif" units="%" min="1" max="50" value="10">
-            <Help>
+    </Value>
+    <Value genre="config" index="3" label="Humidity Change Notif" max="50" min="1" type="byte" units="%" value="10">
+      <Help>
                 Minimum humidity change (%) that will trigger a report to the controller. 10 = 10% (default).
             </Help>
-        </Value>
-        <Value type="byte" index="4" genre="config" label="Light Change Notif" units="%" min="5" max="50" value="10">
-            <Help>
+    </Value>
+    <Value genre="config" index="4" label="Light Change Notif" max="50" min="5" type="byte" units="%" value="10">
+      <Help>
                 Minimum light sensor change (%) that will trigger a report to the controller. 10 = 10% (default).
             </Help>
-        </Value>
-        <Value type="byte" index="5" genre="config" label="Motion Sensor Trigger Interval" units="second" min="15" max="60" value="15">
-            <Help>
+    </Value>
+    <Value genre="config" index="5" label="Motion Sensor Trigger Interval" max="60" min="15" type="byte" units="second" value="15">
+      <Help>
                 After initial motion, sensor will wait this long before reporting again. 15 = 15 seconds (default); 60 = 60 seconds.
             </Help>
-        </Value>
-        <Value type="list" index="6" genre="config" label="Motion Sensor Sensitivity" units="" min="1" max="7" value="4" size="1">
-            <Help>
+    </Value>
+    <Value genre="config" index="6" label="Motion Sensor Sensitivity" max="7" min="1" size="1" type="list" units="" value="4">
+      <Help>
                 Motion sensor sensitivity.
             </Help>
-            <Item label="Very High" value="1" />
-            <Item label="High" value="2" />
-            <Item label="Somewhat High" value="3" />
-            <Item label="Normal" value="4" />
-            <Item label="Somewhat Low" value="5" />
-            <Item label="Low" value="6" />
-            <Item label="Very Low" value="7" />
-        </Value>
-        <Value type="list" index="7" genre="config" label="LED indicator mode" units="" min="1" max="4" value="4" size="1">
-            <Help>
+      <Item label="Very High" value="1"/>
+      <Item label="High" value="2"/>
+      <Item label="Somewhat High" value="3"/>
+      <Item label="Normal" value="4"/>
+      <Item label="Somewhat Low" value="5"/>
+      <Item label="Low" value="6"/>
+      <Item label="Very Low" value="7"/>
+    </Value>
+    <Value genre="config" index="7" label="LED indicator mode" max="4" min="1" size="1" type="list" units="" value="4">
+      <Help>
                 Color LED behavior. 1 = LED off; 2 = pulsing light for temperature, flashing light for motion (high battery drain); 3 = flashing light for temperature and motion (default); 4 = flashing light for motion.
             </Help>
-            <Item label="Off" value="1" />
-            <Item label="Pulse Temp/Flash Motion" value="2" />
-            <Item label="Flash Temp &amp; Motion" value="3" />
-            <Item label="Flash Motion" value="4" />
-        </Value>
-    </CommandClass>
-
-    <!-- Association Groups -->
-    <CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION">
-        <Associations num_groups="1">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-        </Associations>
-    </CommandClass>
+      <Item label="Off" value="1"/>
+      <Item label="Pulse Temp/Flash Motion" value="2"/>
+      <Item label="Flash Temp &amp; Motion" value="3"/>
+      <Item label="Flash Motion" value="4"/>
+    </Value>
+    <Compatibility/>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+    </Associations>
+    <Compatibility/>
+  </CommandClass>
 </Product>
diff --git a/Config/zwave.me/004001.xml b/Config/zwave.me/004001.xml
new file mode 100644
index 0000000000..d28f901e1e
--- /dev/null
+++ b/Config/zwave.me/004001.xml
@@ -0,0 +1,30 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0115:0201:0100</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zwave.me/004001.png</MetaDataItem>
+    <MetaDataItem id="0201" name="ZWProductPage" type="0100">https://products.z-wavealliance.org/products/1405/</MetaDataItem>
+    <MetaDataItem name="Description">This products consists of a standard photo electric Smoke detector with a pluggable Z-Wave wireless interface module.
+The Smoke detector will also work as a stand alone product and is certified by VDS according to EN 14604. The
+smoke chamber of the detector has a stainless steel reel with antistatic plastic chamber.
+A button allows on-device test of smoke chamber, electronics and battery. The device also offers a built-in self test and
+an electronic smoke chamber test to avoid the use of test aerosol. A low battery warning will last for 30 days but full
+function of the detector is guaranteed during this time.
+The Z-Wave module allows to report the smoke and low battery alarm wirelessly to a central controller. The detector can
+also be used as a wireless siren for alarm system or other applications. The wireless module is operated by the 9V battery
+of the smoke detector. An optional external power supply allows external powering the unit.
+According to VdS 3515 (Smoke Detectors with Wireless Communication) this device will send alarm signals to all other
+smoke detectors registered in association group 2 to turn on their siren. This function ensures that all smoke detectors
+will issue noise if one of them detected a smoke.</MetaDataItem>
+    <MetaDataItem id="0201" name="Identifier" type="0100">004001</MetaDataItem>
+    <MetaDataItem name="ResetDescription">To reset the device keep the button pushed for 10 seconds. After 5 seconds the led starts flashing and after another 5
+seconds there is a short beep signaling the successful reset back to factory defaults. Use this procedure only when the network primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Hit the little button on the wireless module for 1 second</MetaDataItem>
+    <MetaDataItem name="Name">Smoke Detector and Siren</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Hit the little button on the wireless module for 1 second</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1405/004001_fixedmanual.docx</MetaDataItem>
+    <MetaDataItem id="0201" name="FrequencyName" type="0100">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1405/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/zwave.me/ZME_05431.xml b/Config/zwave.me/ZME_05431.xml
index e4e788f95f..43e764529a 100644
--- a/Config/zwave.me/ZME_05431.xml
+++ b/Config/zwave.me/ZME_05431.xml
@@ -1,7 +1,31 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Taken from http://manuals.zwaveeurope.com/make.php?lang=en&type=&sku=ZME_05431-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
+<!--Taken from http://manuals.zwaveeurope.com/make.php?lang=en&type=&sku=ZME_05431--><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0115:0001:1000</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zwave.me/ZME_05431.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="1000">https://products.z-wavealliance.org/products/20/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="1000">ZME_06431</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.pepper1.net/zwavedb/device/117</MetaDataItem>
+    <MetaDataItem name="Description">This Z-Wave.Me switching Flush-Mountable is intended to control all kinds of electrical loads. A 230V powered pattress box is needed for installation. The Flush-Mountable has two buttons. In order to use them for local control the Flush-Mountable needs to be completed with a switching paddle and a mounting frame of one of the DUWI switching series “Everlux” or “Arcada”. 
+
+Technical data of the hardware:
+•	Power rating: 230V, 50 Hz
+•	Wiring: 3-wire-system
+•	Maximum loads: 2300W
+•	Installation: in pattress box
+•	Distance:  up to 30 m in buildings
+•	Display: Multicolour-LED
+•	Interaction: two buttons to be completed with switching paddle for local operation
+•	Power supply: via 230 V power
+•	Dimensions: 48mmx48mmx23mm
+</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave.Me Flush-Mountable Switch</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://en.z-wave.me/content/z-wave-hardware</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="1000">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/20/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
 	<!--IMPORTANT: Controllers may only allow to configure signed values. 
 	    In order to set values in the range  128?255 for parameters 4,  5 and 6 the
 	    value sent in the application shall be the desired value minus 256. 
@@ -11,85 +35,82 @@
 	    use value equal to desired value minus 65536. For example, to set auto
 	    switch off period to 10 hours =36000s it may be needed to set a value
 	    36000?65536=?29536.-->
-
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Set LED indication mode" units="" min="1" max="99" value="3" size="1">
-			<Item label="Disabled" value="0" />
-			<Item label="Show switch/dimmer state / when in motion or inactive (for blinds)" value="1" />
-			<Item label="Night mode (inverted switch state)" value="2" />
-			<Item label="Operated by Indicator Command Class (default)" value="3" />
-			<Item label="Show if not closed (for blinds only)" value="4" />
-		</Value>
-		<Value type="int" index="2" genre="config" label="Automatically switch off after" units="seconds" min="0" max="65535" value="0">
-			<Help>If not zero, automatically switch off/close blind after a user defined time</Help>
-		</Value>
-		<Value type="list" index="3" genre="config" label="What to do on RF off command" value="0" size="1">
-			<Help>If not zero, automatically switch off/close blind after a user defined time</Help>
-			<Item label="Switch off (default)" value="0" />
-			<Item label="Ignore" value="1" />
-			<Item label="Switch on" value="2" />
- 	                <Item label="Switch on if load is off else switch off" value="3" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Ignore Start Level" value="1" size="1">
-			<Help>Defines if the dimmer shall ignore start level in StartLevelChange command despite it is specified or not.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes (default)" value="1" />
-		</Value>
-		<Value type="list" index="5" genre="config" label="Restore switch state after power cycle" size="1" value="1">
-			<Help>Defines if the switch should restore switch state to the last state prior to device power off (power cycle).</Help>
-                        <Item label="No, turn OFF" value="0" />
-                        <Item label="Yes (default)" value="1" />
-		</Value>
-		<Value type="byte" index="10" genre="config" label="Typical click timeout" units="x 10 milliseconds" min="1" max="100" value="50">
-			<Help>Typical time used to differentiate click, hold, double and triple clicks.</Help>
-		</Value>
-		<Value type="list" index="11" genre="config" label="Invert buttons" value="0" size="1">
-		  <Item label="No default)" value="0" />
-		  <Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="12" genre="config" label="Switch by buttons" value="1" size="1">
-			<Help>If disabled, the local operations by buttons will not switch the load, but only send commands to On/Off association group. In  this mode buttons are not linked with the switch anymore. They can be used separately: buttons to control remote device, switch will operate by RF commands only. </Help>
-			<Item label="No" value="0" />
-			<Item label="By single press and hold (default)" value="1" />
-			<Item label="By double press and hold" value="2" />
-		</Value>
-		<Value type="list" index="13" genre="config" label="Action on button single press or hold" value="4" size="1">
-			<Help>Defines which command should be sent on button single press or hold. Basic commands are sent to Association group. Switch All commands are sent broadcast. </Help>
-			<Item label="Disabled" value="0" />
-                        <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (Default)" value="4" />
-			<Item label="Switch On, Off and dim using Basic Set" value="1" />
-			<Item label="Switch All On/Off" value="2" />
-                        <Item label="Send Scenes" value="3" />
-                        <Item label="Send Predefined Scenes" value="5" />
-		</Value>
-		<Value type="list" index="14" genre="config" label="Action on button double press or hold" value="0" size="1">
-			<Help>Defines which command should be sent on button double press or press-hold. Basic commands are sent to Association group.   Switch   All commands are sent broadcast. If not disabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands.</Help>
-			<Item label="Disabled (don't wait for double click,default)" value="0" />
-                        <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="4" />
-                        <Item label="Switch On, Off and dim using Basic Set" value="1" />
-                        <Item label="Switch All On/Off" value="2" />
-                        <Item label="Send Scenes" value="3" />
-                        <Item label="Send Predefined Scenes" value="5" />
-		</Value>
-		<Value type="list" index="15" genre="config" label="Send the following Switch All commands" value="1" size="1">
-			<Item label="Switch All Off only (default)" value="1" />
-			<Item label="Switch All On only" value="2" />
-			<Item label="Switch All On and Off" value="255" />
-		</Value>
-               <Value type="list" index="16" genre="config" label="What to do on button Down press" value="0" size="1">
-                        <Item label="Switch off (Default)" value="0" />
-                        <Item label="Switch All On only" value="1" />
-                        <Item label="Switch on" value="2" />
-                </Value>
- 
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="8" label="Group 1 Single press and hold of up/down buttons" auto="false"/>
-			<Group index="2" max_associations="8" label="Group 2 Double press and press-hold of up/down buttons"  />
-			<Group index="3" max_associations="8" label="Lifeline" auto="true"/>
-		</Associations>
-	</CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Set LED indication mode" max="99" min="1" size="1" type="list" units="" value="3">
+      <Item label="Disabled" value="0"/>
+      <Item label="Show switch/dimmer state / when in motion or inactive (for blinds)" value="1"/>
+      <Item label="Night mode (inverted switch state)" value="2"/>
+      <Item label="Operated by Indicator Command Class (default)" value="3"/>
+      <Item label="Show if not closed (for blinds only)" value="4"/>
+    </Value>
+    <Value genre="config" index="2" label="Automatically switch off after" max="65535" min="0" type="int" units="seconds" value="0">
+      <Help>If not zero, automatically switch off/close blind after a user defined time</Help>
+    </Value>
+    <Value genre="config" index="3" label="What to do on RF off command" size="1" type="list" value="0">
+      <Help>If not zero, automatically switch off/close blind after a user defined time</Help>
+      <Item label="Switch off (default)" value="0"/>
+      <Item label="Ignore" value="1"/>
+      <Item label="Switch on" value="2"/>
+      <Item label="Switch on if load is off else switch off" value="3"/>
+    </Value>
+    <Value genre="config" index="4" label="Ignore Start Level" size="1" type="list" value="1">
+      <Help>Defines if the dimmer shall ignore start level in StartLevelChange command despite it is specified or not.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes (default)" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Restore switch state after power cycle" size="1" type="list" value="1">
+      <Help>Defines if the switch should restore switch state to the last state prior to device power off (power cycle).</Help>
+      <Item label="No, turn OFF" value="0"/>
+      <Item label="Yes (default)" value="1"/>
+    </Value>
+    <Value genre="config" index="10" label="Typical click timeout" max="100" min="1" type="byte" units="x 10 milliseconds" value="50">
+      <Help>Typical time used to differentiate click, hold, double and triple clicks.</Help>
+    </Value>
+    <Value genre="config" index="11" label="Invert buttons" size="1" type="list" value="0">
+      <Item label="No default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="12" label="Switch by buttons" size="1" type="list" value="1">
+      <Help>If disabled, the local operations by buttons will not switch the load, but only send commands to On/Off association group. In  this mode buttons are not linked with the switch anymore. They can be used separately: buttons to control remote device, switch will operate by RF commands only. </Help>
+      <Item label="No" value="0"/>
+      <Item label="By single press and hold (default)" value="1"/>
+      <Item label="By double press and hold" value="2"/>
+    </Value>
+    <Value genre="config" index="13" label="Action on button single press or hold" size="1" type="list" value="4">
+      <Help>Defines which command should be sent on button single press or hold. Basic commands are sent to Association group. Switch All commands are sent broadcast. </Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (Default)" value="4"/>
+      <Item label="Switch On, Off and dim using Basic Set" value="1"/>
+      <Item label="Switch All On/Off" value="2"/>
+      <Item label="Send Scenes" value="3"/>
+      <Item label="Send Predefined Scenes" value="5"/>
+    </Value>
+    <Value genre="config" index="14" label="Action on button double press or hold" size="1" type="list" value="0">
+      <Help>Defines which command should be sent on button double press or press-hold. Basic commands are sent to Association group.   Switch   All commands are sent broadcast. If not disabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands.</Help>
+      <Item label="Disabled (don't wait for double click,default)" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="4"/>
+      <Item label="Switch On, Off and dim using Basic Set" value="1"/>
+      <Item label="Switch All On/Off" value="2"/>
+      <Item label="Send Scenes" value="3"/>
+      <Item label="Send Predefined Scenes" value="5"/>
+    </Value>
+    <Value genre="config" index="15" label="Send the following Switch All commands" size="1" type="list" value="1">
+      <Item label="Switch All Off only (default)" value="1"/>
+      <Item label="Switch All On only" value="2"/>
+      <Item label="Switch All On and Off" value="255"/>
+    </Value>
+    <Value genre="config" index="16" label="What to do on button Down press" size="1" type="list" value="0">
+      <Item label="Switch off (Default)" value="0"/>
+      <Item label="Switch All On only" value="1"/>
+      <Item label="Switch on" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group auto="false" index="1" label="Group 1 Single press and hold of up/down buttons" max_associations="8"/>
+      <Group index="2" label="Group 2 Double press and press-hold of up/down buttons" max_associations="8"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zwave.me/ZME_05461.xml b/Config/zwave.me/ZME_05461.xml
index e4c9938b42..4ceb239ea8 100644
--- a/Config/zwave.me/ZME_05461.xml
+++ b/Config/zwave.me/ZME_05461.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--Taken from http://manuals.zwaveeurope.com/make.php?lang=en&type=&sku=ZME_05461 and http://www.pepper1.net/zwavedb/device/564/564-0115-1000-0100-03-03-43-01-00.xml-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<!--Taken from http://manuals.zwaveeurope.com/make.php?lang=en&type=&sku=ZME_05461-->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!-- Configuration Parameters -->
     <!--IMPORTANT: Controllers may only allow to configure signed values.
         In order to set values in the range  128?255 for parameters 4,  5 and 6 the
@@ -106,4 +106,4 @@
             <Group index="3" max_associations="5" label="Double press and press-hold of up/down buttons"/>
         </Associations>
     </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/zwave.me/ZME_06433.xml b/Config/zwave.me/ZME_06433.xml
index afb92d3b36..b5f22ecb84 100644
--- a/Config/zwave.me/ZME_06433.xml
+++ b/Config/zwave.me/ZME_06433.xml
@@ -1,7 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Taken from http://pepper1.net/zwavedb/device/273 and http://www.pepper1.net/zwavedb/device/145 -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0115:0002:1000</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zwave.me/ZME_06433.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="1000">https://products.z-wavealliance.org/products/19/</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="1000">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Description">This Z-Wave.Me dimming Flush-Mountable is intended to control lamps, both with resistive or inductive load.  
+A pattress box is needed for installation. The insert has two buttons. In order to use them for local control the Flush-Mountable needs to be completed with a switching paddle and a mounting frame of one of DUWIs switching series “Everlux” or “Arcada”.  The device is a conventional leading-edge phase control dimmer with support for inductive loads such as transformers. Additionally conventional resistive loads such as incandescent lamps or 230 V halogen lamps can be dimmed as well.
+
+
+Technical Data:
+•	Power rating: 230V, 50 Hz
+•	Wiring: 2-wire-system
+•	Maximum loads: 
+  -	  Incandescent lamps: 40...300W
+  -	  230V (HV) halogen: 40...300W
+  -	  Low voltage halogen with standard transformer (inductive load): 30...300VA
+  -	  Low voltage halogen with switched power supply (reactive load): no
+  -	  Fluorescent light: 30…300VA, only dimmable lamps
+•	Installation: in pattress box
+•	Distance: up to 30 m in buildings
+•	Display: Multicolour-LED
+•	Interaction: two buttons to be completed with switching paddle for local operation
+•	Power supply: via 230 V power
+•	Dimensions: 48mmx48mmx23mm</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.pepper1.net/zwavedb/device/122</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://en.z-wave.me/content/z-wave-hardware</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave.Me Flush-Mountable Dimmer</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="1000">ZME_06433</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/19/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
 	<!--IMPORTANT: Controllers may only allow to configure signed values. 
 	    In order to set values in the range  128?255 for parameters 4,  5 and 6 the
 	    value sent in the application shall be the desired value minus 256. 
@@ -11,113 +41,110 @@
 	    use value equal to desired value minus 65536. For example, to set auto
 	    switch off period to 10 hours =36000s it may be needed to set a value
 	    36000?65536=?29536.-->
-
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Set LED indication mode" value="3" size="1">
-			<Item label="Disabled" value="0" />
-			<Item label="Show switch/dimmer state" value="1" />
-			<Item label="Night mode (inverted switch state)" value="2" />
-			<Item label="Operated by Indicator Command Class (default)" value="3" />
-		</Value>
-		<Value type="int" index="2" genre="config" label="Automatically switch off after" units="seconds" min="0" max="65535" value="0">
-			<Help>If not zero, automatically switch off after a user defined time</Help>
-		</Value>
-		<Value type="list" index="3" genre="config" label="What to do on RF off command" value="0" size="1">
-			<Help>Defines how to interpret RF Off command. Can be used in conjunction with Auto Off function: Ignore - to switch on the light by motion detectors and switch it off after some amount of time: in case of multiple motion detectors each would try to switch the light off that would break logics; Switch on - to switch on the light on both On and Off paddle press on the remote and switch it off after some amount of time. Button off click will still work (if button operations are not disabled).</Help>
-			<Item label="Switch off (default)" value="0" />
-			<Item label="Ignore" value="1" />
-			<Item label="Switch on" value="2" />
-			<Item label="Switch on if load is off else switch off (v1.8)" value="3" />
-		</Value>
-		<Value type="list" index="4" genre="config" label="Ignore Start Level" value="1" size="1">
-			<Help>Defines if the dimmer shall ignore start level in StartLevelChange command despite it is specified or not.</Help>
-			<Item label="No" value="0" />
-			<Item label="Yes (default)" value="1" />
-		</Value>
-		<Value type="byte" index="5" genre="config" label="Dimmer speed" units="x 10 milliseconds" min="0" max="255" value="30">
-			<Help>Time to dim on button presses and Set command (if it has no duration specified). If not 0, dimming will be done smoothly to preserve bulb life.</Help>
-		</Value>
-		<Value type="byte" index="6" genre="config" label="Dimming long speed" units="Seconds" min="1" max="255" value="3">
-			<Help>Time to dim on button holds and StartLevel Change command (if it has no duration specified).</Help>
-		</Value>
-		<Value type="list" index="7" genre="config" label="Set Maximum Light on On click" value="0" size="1">
-			<Help>Defines if the dimmer shall set maximum light level on On command. By default on On command dimmer restores last level. This parameter allows to configure to set maximum level on second On command (if already On) or to always switch on to maximum level.</Help>
-			<Item label="No (default)" value="0" />
-			<Item label="If already in On state" value="1" />
-			<Item label="Always" value="2" />
-		</Value>
-		<Value type="byte" index="8" genre="config" label="Baby Dimming Time" units="minutes" min="0" max="255" value="0">
-			<Help>Time to dim on double click Off  button for Baby- Dim function. This function works only if the load is operated by single press and hold button action. If enabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands, unprotected.</Help>
-		</Value>
-		<Value type="byte" index="9" genre="config" label="Target Dimming Level for Baby Dimming" units="dimmer level %" min="0" max="99" value="0">
-			<Help>Target level on which to stop while executing Baby Dimming. Can be 0 to completely switch off the light. </Help>
-		</Value>
-		<Value type="byte" index="10" genre="config" label="Typical click timeout" units="x 10 milliseconds" min="1" max="100" value="50">
-			<Help>Typical time used to differentiate click, hold, double and triple clicks.</Help>
-		</Value>
-		<Value type="list" index="11" genre="config" label="Invert buttons" value="0" size="1">
-		  <Item label="No (default)" value="0" />
-		  <Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="12" genre="config" label="Switch by buttons" value="1" size="1">
-			<Help>If disabled, the local operations by buttons will not switch the load, but only send commands to On/Off association group. In  this mode buttons are not linked with the switch anymore. They can be used separately: buttons to control remote device, switch will operate by RF commands only. </Help>
-			<Item label="No" value="0" />
-			<Item label="By single press and hold (default)" value="1" />
-			<Item label="By double press and hold" value="2" />
-		</Value>
-		<Value type="list" index="13" genre="config" label="Action on button single press or hold" value="4" size="1">
-			<Help>Defines which command should be sent on button single press or hold. Basic and Scene Activation commands are sent to Association group. Use Scene Controller Conf to set up Scene ID for Scene Activation. Switch All commands are sent broadcast.</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Send Basic Set and Switch Multilevel (v1.8)" value="4" />
-			<Item label="Send Basic Set" value="1" />
-			<Item label="Send Switch All" value="2" />
-			<Item label="Send Scenes (v1.8)" value="3" />
-			<Item label="Send Preconfigured Scenes (v1.8)" value="5" />
-		</Value>
-		<Value type="list" index="14" genre="config" label="Action on button double press or hold" value="0" size="1">
-			<Help>Defines which command should be sent on button double press or press-hold. Basic and Scene Activation commands are sent to Association group. Use Scene Controller Conf to set up Scene ID for Scene Activation. Switch All commands are sent broadcast. If not disabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands.</Help>
-			<Item label="Disabled (don't wait for double click,default)" value="0" />
-			<Item label="Send Basic Set and Switch Multilevel (v1.8)" value="4" />
-			<Item label="Send Basic Set" value="1" />
-			<Item label="Send Switch All" value="2" />
-			<Item label="Send Scenes (v1.8)" value="3" />
-			<Item label="Send Preconfigured Scenes (v1.8)" value="5" />
-		</Value>
-		<Value type="list" index="15" genre="config" label="Send the following Switch All commands" value="1" size="1">
-			<Item label="Switch All Off only (default)" value="1" />
-			<Item label="Switch All On only" value="1" />
-			<Item label="Switch All On and Off" value="255" />
-		</Value>
-		<Value type="byte" index="17" genre="config" label="Limit minimal light level (v1.8)" units="dimmer level %" min="1" max="95" value="1">
-		</Value>
-		<Value type="byte" index="18" genre="config" label="Limit maximal light level (v1.8)" units="dimmer level %" min="0" max="99" value="99">
-			<Help>Maximum level should be greater than minimal level. Set to 0 to work as a switch (off or full on only), or set to 10 - 99</Help>
-		</Value>
-		<Value type="byte" index="19" genre="config" label="Switch On on a defined level (v1.8)" units="dimmer level %" min="0" max="99" value="0">
-			<Help>Set to 0 to use previous light level, or set to 1 - 99</Help>
-		</Value>
-		<Value type="byte" index="51" genre="config" label="Pause before pulse (v1.8)" units="x 10/156 milliseconds" min="1" max="60" value="28">
-			<Help>NB: Do not touch these settings if you are not sure what they mean! For dimmable LEDs and CFL with bypass use value 1. For other bulbs use default value.</Help>
-		</Value>
-		<Value type="byte" index="52" genre="config" label="Pause after pulse (v1.8)" units="x 10/156 milliseconds" min="5" max="60" value="28">
-			<Help>NB: Do not touch these settings if you are not sure what they mean! For dimmable LEDs and CFL with bypass use value 40. For other bulbs use default value.</Help>
-		</Value>
-		<Value type="byte" index="53" genre="config" label="Pulse width (v1.8)" units="x 10/156 milliseconds" min="3" max="20" value="10">
-			<Help>NB: Do not touch these settings if you are not sure what they mean! For dimmable LEDs and CFL with bypass use value 20. For other bulbs use default value.</Help>
-		</Value>
-		<Value type="list" index="54" genre="config" label="Pulse type (v1.8)" value="0" size="1">
-			<Help>NB: Do not touch these settings if you are not sure what they mean!</Help>
-			<Item label="Long pulse" value="0" />
-			<Item label="Short pulse" value="1" />
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="8" label="Group 1" auto="false"/>
-			<Group index="2" max_associations="8" label="Group 2"  />
-			<Group index="3" max_associations="8" label="Lifeline" auto="true"/>
-		</Associations>
-	</CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Set LED indication mode" size="1" type="list" value="3">
+      <Item label="Disabled" value="0"/>
+      <Item label="Show switch/dimmer state" value="1"/>
+      <Item label="Night mode (inverted switch state)" value="2"/>
+      <Item label="Operated by Indicator Command Class (default)" value="3"/>
+    </Value>
+    <Value genre="config" index="2" label="Automatically switch off after" max="65535" min="0" type="int" units="seconds" value="0">
+      <Help>If not zero, automatically switch off after a user defined time</Help>
+    </Value>
+    <Value genre="config" index="3" label="What to do on RF off command" size="1" type="list" value="0">
+      <Help>Defines how to interpret RF Off command. Can be used in conjunction with Auto Off function: Ignore - to switch on the light by motion detectors and switch it off after some amount of time: in case of multiple motion detectors each would try to switch the light off that would break logics; Switch on - to switch on the light on both On and Off paddle press on the remote and switch it off after some amount of time. Button off click will still work (if button operations are not disabled).</Help>
+      <Item label="Switch off (default)" value="0"/>
+      <Item label="Ignore" value="1"/>
+      <Item label="Switch on" value="2"/>
+      <Item label="Switch on if load is off else switch off (v1.8)" value="3"/>
+    </Value>
+    <Value genre="config" index="4" label="Ignore Start Level" size="1" type="list" value="1">
+      <Help>Defines if the dimmer shall ignore start level in StartLevelChange command despite it is specified or not.</Help>
+      <Item label="No" value="0"/>
+      <Item label="Yes (default)" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="Dimmer speed" max="255" min="0" type="byte" units="x 10 milliseconds" value="30">
+      <Help>Time to dim on button presses and Set command (if it has no duration specified). If not 0, dimming will be done smoothly to preserve bulb life.</Help>
+    </Value>
+    <Value genre="config" index="6" label="Dimming long speed" max="255" min="1" type="byte" units="Seconds" value="3">
+      <Help>Time to dim on button holds and StartLevel Change command (if it has no duration specified).</Help>
+    </Value>
+    <Value genre="config" index="7" label="Set Maximum Light on On click" size="1" type="list" value="0">
+      <Help>Defines if the dimmer shall set maximum light level on On command. By default on On command dimmer restores last level. This parameter allows to configure to set maximum level on second On command (if already On) or to always switch on to maximum level.</Help>
+      <Item label="No (default)" value="0"/>
+      <Item label="If already in On state" value="1"/>
+      <Item label="Always" value="2"/>
+    </Value>
+    <Value genre="config" index="8" label="Baby Dimming Time" max="255" min="0" type="byte" units="minutes" value="0">
+      <Help>Time to dim on double click Off  button for Baby- Dim function. This function works only if the load is operated by single press and hold button action. If enabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands, unprotected.</Help>
+    </Value>
+    <Value genre="config" index="9" label="Target Dimming Level for Baby Dimming" max="99" min="0" type="byte" units="dimmer level %" value="0">
+      <Help>Target level on which to stop while executing Baby Dimming. Can be 0 to completely switch off the light. </Help>
+    </Value>
+    <Value genre="config" index="10" label="Typical click timeout" max="100" min="1" type="byte" units="x 10 milliseconds" value="50">
+      <Help>Typical time used to differentiate click, hold, double and triple clicks.</Help>
+    </Value>
+    <Value genre="config" index="11" label="Invert buttons" size="1" type="list" value="0">
+      <Item label="No (default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="12" label="Switch by buttons" size="1" type="list" value="1">
+      <Help>If disabled, the local operations by buttons will not switch the load, but only send commands to On/Off association group. In  this mode buttons are not linked with the switch anymore. They can be used separately: buttons to control remote device, switch will operate by RF commands only. </Help>
+      <Item label="No" value="0"/>
+      <Item label="By single press and hold (default)" value="1"/>
+      <Item label="By double press and hold" value="2"/>
+    </Value>
+    <Value genre="config" index="13" label="Action on button single press or hold" size="1" type="list" value="4">
+      <Help>Defines which command should be sent on button single press or hold. Basic and Scene Activation commands are sent to Association group. Use Scene Controller Conf to set up Scene ID for Scene Activation. Switch All commands are sent broadcast.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Send Basic Set and Switch Multilevel (v1.8)" value="4"/>
+      <Item label="Send Basic Set" value="1"/>
+      <Item label="Send Switch All" value="2"/>
+      <Item label="Send Scenes (v1.8)" value="3"/>
+      <Item label="Send Preconfigured Scenes (v1.8)" value="5"/>
+    </Value>
+    <Value genre="config" index="14" label="Action on button double press or hold" size="1" type="list" value="0">
+      <Help>Defines which command should be sent on button double press or press-hold. Basic and Scene Activation commands are sent to Association group. Use Scene Controller Conf to set up Scene ID for Scene Activation. Switch All commands are sent broadcast. If not disabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands.</Help>
+      <Item label="Disabled (don't wait for double click,default)" value="0"/>
+      <Item label="Send Basic Set and Switch Multilevel (v1.8)" value="4"/>
+      <Item label="Send Basic Set" value="1"/>
+      <Item label="Send Switch All" value="2"/>
+      <Item label="Send Scenes (v1.8)" value="3"/>
+      <Item label="Send Preconfigured Scenes (v1.8)" value="5"/>
+    </Value>
+    <Value genre="config" index="15" label="Send the following Switch All commands" size="1" type="list" value="1">
+      <Item label="Switch All Off only (default)" value="1"/>
+      <Item label="Switch All On only" value="1"/>
+      <Item label="Switch All On and Off" value="255"/>
+    </Value>
+    <Value genre="config" index="17" label="Limit minimal light level (v1.8)" max="95" min="1" type="byte" units="dimmer level %" value="1"></Value>
+    <Value genre="config" index="18" label="Limit maximal light level (v1.8)" max="99" min="0" type="byte" units="dimmer level %" value="99">
+      <Help>Maximum level should be greater than minimal level. Set to 0 to work as a switch (off or full on only), or set to 10 - 99</Help>
+    </Value>
+    <Value genre="config" index="19" label="Switch On on a defined level (v1.8)" max="99" min="0" type="byte" units="dimmer level %" value="0">
+      <Help>Set to 0 to use previous light level, or set to 1 - 99</Help>
+    </Value>
+    <Value genre="config" index="51" label="Pause before pulse (v1.8)" max="60" min="1" type="byte" units="x 10/156 milliseconds" value="28">
+      <Help>NB: Do not touch these settings if you are not sure what they mean! For dimmable LEDs and CFL with bypass use value 1. For other bulbs use default value.</Help>
+    </Value>
+    <Value genre="config" index="52" label="Pause after pulse (v1.8)" max="60" min="5" type="byte" units="x 10/156 milliseconds" value="28">
+      <Help>NB: Do not touch these settings if you are not sure what they mean! For dimmable LEDs and CFL with bypass use value 40. For other bulbs use default value.</Help>
+    </Value>
+    <Value genre="config" index="53" label="Pulse width (v1.8)" max="20" min="3" type="byte" units="x 10/156 milliseconds" value="10">
+      <Help>NB: Do not touch these settings if you are not sure what they mean! For dimmable LEDs and CFL with bypass use value 20. For other bulbs use default value.</Help>
+    </Value>
+    <Value genre="config" index="54" label="Pulse type (v1.8)" size="1" type="list" value="0">
+      <Help>NB: Do not touch these settings if you are not sure what they mean!</Help>
+      <Item label="Long pulse" value="0"/>
+      <Item label="Short pulse" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group auto="false" index="1" label="Group 1" max_associations="8"/>
+      <Group index="2" label="Group 2" max_associations="8"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zwave.me/ZME_06436.xml b/Config/zwave.me/ZME_06436.xml
index ee7712df00..05091c1172 100644
--- a/Config/zwave.me/ZME_06436.xml
+++ b/Config/zwave.me/ZME_06436.xml
@@ -1,7 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Taken from http://en.z-wave.me/docs/ZME_0643x_UserManual.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
+<!--Taken from http://en.z-wave.me/docs/ZME_0643x_UserManual.pdf--><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0115:0003:1000</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zwave.me/ZME_06436.png</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="1000">https://products.z-wavealliance.org/products/583/</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="1000">ZME_05436</MetaDataItem>
+    <MetaDataItem name="Description">This Z-Wave.Me switching Flush-Mountable  is intended to control window or door blinds.  
+A 230V powered pattress box is needed for installation. The Flush-Mountable has two buttons. 
+In order to use them for local control the insert needs to be completed with a switching paddle and a mounting frame of one of the DUWI switching series “Everlux” or “Arcada”.  
+
+Technical Data:
+•	Power rating: 230V, 50 Hz
+•	Switched load: up to 1800W motor
+•	Outputs: 2 switches interlocked against each other
+•	Duration of switching signal: 2 min.
+•	Local interaction: 2 buttons for inclusion, exclusion and association
+•	Dimensions: 48mmx52mmx27mm
+•	Power supply:  via 230 V power
+•	Distance: up to 100 m outdoor, up to 30 m within buildings
+</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.pepper1.net/zwavedb/device/119</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://en.z-wave.me/content/z-wave-hardware</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="1000">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave.Me - Flush Mountable Blind Control</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/583/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
 	<!--IMPORTANT: Controllers may only allow to configure signed values. 
 	    In order to set values in the range  128?255 for parameters 4,  5 and 6 the
 	    value sent in the application shall be the desired value minus 256. 
@@ -11,87 +36,85 @@
 	    use value equal to desired value minus 65536. For example, to set auto
 	    switch off period to 10 hours =36000s it may be needed to set a value
 	    36000?65536=?29536.-->
-
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Set LED indication mode" units="" min="1" max="99" value="3" size="1">
-			<Item label="Disabled" value="0" />
-			<Item label="Show switch/dimmer state / when in motion or inactive (for blinds)" value="1" />
-			<Item label="Night mode (inverted switch state)" value="2" />
-			<Item label="Operated by Indicator Command Class (default)" value="3" />
-			<Item label="Show if not closed (for blinds only)" value="4" />
-		</Value>
-		<Value type="int" index="2" genre="config" label="Automatically open or close after" units="seconds" min="0" max="65535" value="0">
-			<Help>If not zero, automatically switch off/close blind after a user defined time</Help>
-		</Value>
-		<Value type="list" index="3" genre="config" label="What to do on RF off command" value="0" size="1">
-			<Help>If not zero, automatically switch off/close blind after a user defined time</Help>
-			<Item label="Switch off (default)" value="0" />
-			<Item label="Ignore" value="1" />
-			<Item label="Switch on" value="2" />
-		</Value>
-		<Value type="byte" index="4" genre="config" label="Full close time" units="Second" min="0" max="255" value="60" size="1">
-			<Help>Time to go from opened to closed state. Used to estimate the current level. Note that in Permanent motion mode the reported value would a be Closed or Opened, while all Basic and Multilevel Set values (1-99, 255) would Open except 0 value that would Close.</Help>
-		</Value>
-		<Value type="byte" index="5" genre="config" label="Full open time" units="Second" min="0" max="255" value="60" size="1">
-			<Help>Time to go from closed to open state. This value may differ from Full close time for some blinds due to gravity. Used to estimate the current level. Note that in Permanent motion mode the reported value would a be Closed or Opened, while all Basic and Multilevel Set values (1-99, 255) would Open except 0 value that would Close.</Help>
-		</Value>
-		<Value type="byte" index="6" genre="config" label="Node Id of the blocking device" min="0" max="232" value="0">
-			<Help>Id of the device which commands would be interpreted not as Open/Close, but as block/unblock. Usefull with door opening detector: if the door is open, block the blind not to break shades while they move.</Help>
-		</Value>
-		<Value type="list" index="7" genre="config" label="On which command from blocking node to enable the protection" min="0" max="1" value="0" size="1">
-			<Help>Defines which command from blocking device to interpret as closed door and hence, unprotected.</Help>
-			<Item label="on On (default)" value="0" />
-			<Item label="on Off" value="1" />
-		</Value>
-		<Value type="list" index="8" genre="config" label="Stop or Revert if opposite button is pressed" units="" min="0" max="2" size="1" value="0">
-			<Help>Defines behaviour on open press while closing and vice versa. To allow Stop behavior when switched by remote, use Stop by Basic</Help>
-			<Item label="Stop (by buttons and Binary) (Default)" value="0" />
-			<Item label="Stop (by buttons, Binary and Basic)" value="1" />
-			<Item label="Revert" value="2" />
-		</Value>
-		<Value type="list" index="9" genre="config" label="Invert open and close relays" units="" min="0" max="1" size="1" value="0">
-			<Help>Allow exchanging open and close relays if blind control is wired to the motor incorrectly</Help>
-			<Item label="No (default)" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="byte" index="10" genre="config" label="Typical click timeout" units="x 10 milliseconds" min="1" max="100" value="50">
-			<Help>Typical time used to differentiate click, hold, double and triple clicks.</Help>
-		</Value>
-		<Value type="list" index="11" genre="config" label="Invert buttons" value="0" size="1">
-		  <Item label="No default)" value="0" />
-		  <Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="12" genre="config" label="Switch by buttons" value="1" size="1">
-			<Help>If disabled, the local operations by buttons will not switch the load, but only send commands to On/Off association group. In  this mode buttons are not linked with the switch anymore. They can be used separately: buttons to control remote device, switch will operate by RF commands only. </Help>
-			<Item label="No" value="0" />
-			<Item label="By single press and hold (default)" value="1" />
-			<Item label="By double press and hold" value="1" />
-		</Value>
-		<Value type="list" index="13" genre="config" label="Action on button single press or hold" value="1" size="1">
-			<Help>Defines which command should be sent on button single press or hold. Basic commands are sent to Association group. Switch All commands are sent broadcast. </Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Switch On, Off and dim using Basic Set(default)" value="1" />
-			<Item label="Switch All On/Off" value="1" />
-		</Value>
-		<Value type="list" index="14" genre="config" label="Action on button double press or hold" value="0" size="1">
-			<Help>Defines which command should be sent on button double press or press-hold. Basic commands are sent to Association group.   Switch   All commands are sent broadcast. If not disabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands.</Help>
-			<Item label="Disabled (don't wait for double click,default)" value="0" />
-			<Item label="Switch On, Off and dim using Basic Set" value="1" />
-			<Item label="Switch All On/Off" value="1" />
-		</Value>
-		<Value type="list" index="15" genre="config" label="Send the following Switch All commands" value="1" size="1">
-			<Item label="Switch All Off only (default)" value="1" />
-			<Item label="Switch All On only" value="1" />
-			<Item label="Switch All On and Off" value="255" />
-		</Value>
-	</CommandClass>
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="3">
-			<Group index="1" max_associations="8" label="Group 1" auto="false"/>
-			<Group index="2" max_associations="8" label="Group 2" />
-			<Group index="3" max_associations="8" label="Lifeline" auto="true"/>
-		</Associations>
-	</CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Set LED indication mode" max="99" min="1" size="1" type="list" units="" value="3">
+      <Item label="Disabled" value="0"/>
+      <Item label="Show switch/dimmer state / when in motion or inactive (for blinds)" value="1"/>
+      <Item label="Night mode (inverted switch state)" value="2"/>
+      <Item label="Operated by Indicator Command Class (default)" value="3"/>
+      <Item label="Show if not closed (for blinds only)" value="4"/>
+    </Value>
+    <Value genre="config" index="2" label="Automatically open or close after" max="65535" min="0" type="int" units="seconds" value="0">
+      <Help>If not zero, automatically switch off/close blind after a user defined time</Help>
+    </Value>
+    <Value genre="config" index="3" label="What to do on RF off command" size="1" type="list" value="0">
+      <Help>If not zero, automatically switch off/close blind after a user defined time</Help>
+      <Item label="Switch off (default)" value="0"/>
+      <Item label="Ignore" value="1"/>
+      <Item label="Switch on" value="2"/>
+    </Value>
+    <Value genre="config" index="4" label="Full close time" max="255" min="0" size="1" type="byte" units="Second" value="60">
+      <Help>Time to go from opened to closed state. Used to estimate the current level. Note that in Permanent motion mode the reported value would a be Closed or Opened, while all Basic and Multilevel Set values (1-99, 255) would Open except 0 value that would Close.</Help>
+    </Value>
+    <Value genre="config" index="5" label="Full open time" max="255" min="0" size="1" type="byte" units="Second" value="60">
+      <Help>Time to go from closed to open state. This value may differ from Full close time for some blinds due to gravity. Used to estimate the current level. Note that in Permanent motion mode the reported value would a be Closed or Opened, while all Basic and Multilevel Set values (1-99, 255) would Open except 0 value that would Close.</Help>
+    </Value>
+    <Value genre="config" index="6" label="Node Id of the blocking device" max="232" min="0" type="byte" value="0">
+      <Help>Id of the device which commands would be interpreted not as Open/Close, but as block/unblock. Usefull with door opening detector: if the door is open, block the blind not to break shades while they move.</Help>
+    </Value>
+    <Value genre="config" index="7" label="On which command from blocking node to enable the protection" max="1" min="0" size="1" type="list" value="0">
+      <Help>Defines which command from blocking device to interpret as closed door and hence, unprotected.</Help>
+      <Item label="on On (default)" value="0"/>
+      <Item label="on Off" value="1"/>
+    </Value>
+    <Value genre="config" index="8" label="Stop or Revert if opposite button is pressed" max="2" min="0" size="1" type="list" units="" value="0">
+      <Help>Defines behaviour on open press while closing and vice versa. To allow Stop behavior when switched by remote, use Stop by Basic</Help>
+      <Item label="Stop (by buttons and Binary) (Default)" value="0"/>
+      <Item label="Stop (by buttons, Binary and Basic)" value="1"/>
+      <Item label="Revert" value="2"/>
+    </Value>
+    <Value genre="config" index="9" label="Invert open and close relays" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Allow exchanging open and close relays if blind control is wired to the motor incorrectly</Help>
+      <Item label="No (default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="10" label="Typical click timeout" max="100" min="1" type="byte" units="x 10 milliseconds" value="50">
+      <Help>Typical time used to differentiate click, hold, double and triple clicks.</Help>
+    </Value>
+    <Value genre="config" index="11" label="Invert buttons" size="1" type="list" value="0">
+      <Item label="No default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="12" label="Switch by buttons" size="1" type="list" value="1">
+      <Help>If disabled, the local operations by buttons will not switch the load, but only send commands to On/Off association group. In  this mode buttons are not linked with the switch anymore. They can be used separately: buttons to control remote device, switch will operate by RF commands only. </Help>
+      <Item label="No" value="0"/>
+      <Item label="By single press and hold (default)" value="1"/>
+      <Item label="By double press and hold" value="1"/>
+    </Value>
+    <Value genre="config" index="13" label="Action on button single press or hold" size="1" type="list" value="1">
+      <Help>Defines which command should be sent on button single press or hold. Basic commands are sent to Association group. Switch All commands are sent broadcast. </Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On, Off and dim using Basic Set(default)" value="1"/>
+      <Item label="Switch All On/Off" value="1"/>
+    </Value>
+    <Value genre="config" index="14" label="Action on button double press or hold" size="1" type="list" value="0">
+      <Help>Defines which command should be sent on button double press or press-hold. Basic commands are sent to Association group.   Switch   All commands are sent broadcast. If not disabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands.</Help>
+      <Item label="Disabled (don't wait for double click,default)" value="0"/>
+      <Item label="Switch On, Off and dim using Basic Set" value="1"/>
+      <Item label="Switch All On/Off" value="1"/>
+    </Value>
+    <Value genre="config" index="15" label="Send the following Switch All commands" size="1" type="list" value="1">
+      <Item label="Switch All Off only (default)" value="1"/>
+      <Item label="Switch All On only" value="1"/>
+      <Item label="Switch All On and Off" value="255"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group auto="false" index="1" label="Group 1" max_associations="8"/>
+      <Group index="2" label="Group 2" max_associations="8"/>
+      <Group auto="true" index="3" label="Lifeline" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zwave.me/ZME_064381.xml b/Config/zwave.me/ZME_064381.xml
index b75604a66a..cd0f3b12a6 100644
--- a/Config/zwave.me/ZME_064381.xml
+++ b/Config/zwave.me/ZME_064381.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
     <!-- Z-Wave.Me ZME_064281 Wall Plug switch Schuko (IP44) Gen 5 -->
     <!-- Configuration  -->
     <CommandClass id="112">
@@ -55,4 +55,4 @@
             <Group index="2" max_associations="5" label="Controlled by buttons" auto="true"/>
         </Associations>
     </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/Config/zwave.me/ZME_064435.xml b/Config/zwave.me/ZME_064435.xml
index be02bbb01e..393e1ece1f 100644
--- a/Config/zwave.me/ZME_064435.xml
+++ b/Config/zwave.me/ZME_064435.xml
@@ -1,58 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-
-<!-- Taken from http://www.zwave.eu/api/pdf.php?type=manual&id=ZME_054436_en_long.html -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Taken from http://www.zwave.eu/api/pdf.php?type=manual&id=ZME_054436_en_long.html -->
 <!-- Z-Wave.Me: 064435 Wall Controller -->
 
 	<!-- Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="byte" index="10" genre="config" label="Typical click timeout" units="x 10 milliseconds" min="1" max="100" value="50">
-			<Help>Typical time used to differentiate click, hold, double and triple clicks Values: 1 to 100 in 10 ms units (default is 50, that is equivalent to 500 ms)</Help>
-		</Value>
-		<Value type="list" index="11" genre="config" label="Invert buttons" units="" min="0" max="1" size="1">
-			<Item label="No (default)" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="13" genre="config" label="Action on button single press or hold" units="" min="0" max="3" size="1" value="1">
-			<Help>Defines which command should be sent on button single press or hold. Basic commands are sent to Association group. Switch All commands are sent broadcast.</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Switch On, Off and dim using Basic Set (default)" value="1" />
-			<Item label="Switch All On/Off" value="2" />
-			<Item label="Scene Activation" value="3" />
-		</Value>
-		<Value type="list" index="14" genre="config" label="Action on button double press or hold" units="" min="0" max="3" size="1" value="0">
-			<Help>Defines which command should be sent on button double press or press-hold. Basic commands are sent to Association group. Switch All commands are sent broadcast. If not disabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands.</Help>
-			<Item label="Disabled (don&apos;t wait for double click, default)" value="0" />
-			<Item label="Switch On, Off and dim using Basic Set" value="1" />
-			<Item label="Switch All On/Off" value="2" />
-			<Item label="Scene Activation" value="3" />
-		</Value>
-		<Value type="list" index="15" genre="config" label="Send the following Switch All commands" units="" min="0" max="255" size="1" value="1">
-			<Item label="Switch All Off only (default)" value="1" />
-			<Item label="Switch All On only" value="2" />
-			<Item label="Switch All On and Off" value="255" />
-		</Value>
-		<Value type="list" index="20" genre="config" label="Send battery report" units="" min="0" max="2" size="1" value="0">
-			<Help>Send unsolicited battery report on wakeup.</Help>
-			<Item label="No (default)" value="0" />
-			<Item label="To same node as wakeup notification" value="1" />
-			<Item label="Broadcast" value="2" />
-		</Value>
-	</CommandClass>
-
-	<!-- Basic set as report -->
-	<CommandClass id="32" setasreport="true"/>
-
-	<!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
-    <CommandClass id="43" action="add" getsupported="false"/>
-
-
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="2">
-			<Group index="1" max_associations="8" label="Single press" auto="false" />
-			<Group index="2" max_associations="8" label="Double press"  />
-		</Associations>
-	</CommandClass>
-
+  <CommandClass id="112">
+    <Value genre="config" index="10" label="Typical click timeout" max="100" min="1" type="byte" units="x 10 milliseconds" value="50">
+      <Help>Typical time used to differentiate click, hold, double and triple clicks Values: 1 to 100 in 10 ms units (default is 50, that is equivalent to 500 ms)</Help>
+    </Value>
+    <Value genre="config" index="11" label="Invert buttons" max="1" min="0" size="1" type="list" units="">
+      <Item label="No (default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="13" label="Action on button single press or hold" max="3" min="0" size="1" type="list" units="" value="1">
+      <Help>Defines which command should be sent on button single press or hold. Basic commands are sent to Association group. Switch All commands are sent broadcast.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On, Off and dim using Basic Set (default)" value="1"/>
+      <Item label="Switch All On/Off" value="2"/>
+      <Item label="Scene Activation" value="3"/>
+    </Value>
+    <Value genre="config" index="14" label="Action on button double press or hold" max="3" min="0" size="1" type="list" units="" value="0">
+      <Help>Defines which command should be sent on button double press or press-hold. Basic commands are sent to Association group. Switch All commands are sent broadcast. If not disabled, the device will wait for a click timeout to see if the second click would be pressed. This will introduce a small delay for single click commands.</Help>
+      <Item label="Disabled (don't wait for double click, default)" value="0"/>
+      <Item label="Switch On, Off and dim using Basic Set" value="1"/>
+      <Item label="Switch All On/Off" value="2"/>
+      <Item label="Scene Activation" value="3"/>
+    </Value>
+    <Value genre="config" index="15" label="Send the following Switch All commands" max="255" min="0" size="1" type="list" units="" value="1">
+      <Item label="Switch All Off only (default)" value="1"/>
+      <Item label="Switch All On only" value="2"/>
+      <Item label="Switch All On and Off" value="255"/>
+    </Value>
+    <Value genre="config" index="20" label="Send battery report" max="2" min="0" size="1" type="list" units="" value="0">
+      <Help>Send unsolicited battery report on wakeup.</Help>
+      <Item label="No (default)" value="0"/>
+      <Item label="To same node as wakeup notification" value="1"/>
+      <Item label="Broadcast" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Basic set as report -->
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
+  <CommandClass action="add" id="43">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group auto="false" index="1" label="Single press" max_associations="8"/>
+      <Group index="2" label="Double press" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zwave.me/ZME_KFOB-S.xml b/Config/zwave.me/ZME_KFOB-S.xml
index b030c55b77..13ac4b16b4 100644
--- a/Config/zwave.me/ZME_KFOB-S.xml
+++ b/Config/zwave.me/ZME_KFOB-S.xml
@@ -1,100 +1,101 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-<!--Zwave.me ZME_KFOB-S Secure 4 Button Key Chain Controller -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--Zwave.me ZME_KFOB-S Secure 4 Button Key Chain Controller -->
 	<!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Button 1 and 3 pair mode" units="" min="0" max="2" value="1" size="1">
-			<Help>In separate mode button 1 works with group A, button 3 with groups C. 
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Button 1 and 3 pair mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 1 works with group A, button 3 with groups C. 
 				Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. 
 				In pair button 1/3 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group A, double click with group C.</Help>
-			<Item label="Separately" value="0"/>
-			<Item label="In pair without double clicks (default)" value="1"/>
-			<Item label="In pair with double clicks" value="2"/>
-		</Value>
-		<Value type="list" index="2" genre="config" label="Button 2 and 4 pair mode" units="" min="0" max="2" value="1" size="1">
-			<Help>In separate mode button 2 works with group B, button 4 with groups D. 
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Button 2 and 4 pair mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 2 works with group B, button 4 with groups D. 
 				Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. 
 				In pair button 2/4 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group B, double click with group D.</Help>
-			<Item label="Separately" value="0"/>
-			<Item label="In pair without double clicks (default)" value="1"/>
-			<Item label="In pair with double clicks" value="2"/>
-		</Value>
-		<Value type="list" index="11" genre="config" label="Command to Control Group A" units="" min="0" max="8" value="8" size="1">
-			<Help>This parameter defines the command to be sent to devices of control group A when the related button is pressed</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-			<Item label="Switch On/Off only (send Basic Set)" value="2"/>
-			<Item label="Switch All" value="3"/>
-			<Item label="Send Scene" value="4"/>
-			<Item label="Send Preconfigured Scenes" value="5"/>
-			<Item label="Control devices in proximity" value="6"/>
-			<Item label="Control DoorLock" value="7"/>
-			<Item label="Central Scene to Gateway (Default)" value="8"/>
-		</Value>
-		<Value type="list" index="12" genre="config" label="Command to Control Group B" units="" min="0" max="8" value="8" size="1">
-			<Help>This parameter defines the command to be sent to devices of control group B when the related button is pressed</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-			<Item label="Switch On/Off only (send Basic Set)" value="2"/>
-			<Item label="Switch All" value="3"/>
-			<Item label="Send Scene" value="4"/>
-			<Item label="Send Preconfigured Scenes" value="5"/>
-			<Item label="Control devices in proximity" value="6"/>
-			<Item label="Control DoorLock" value="7"/>
-			<Item label="Central Scene to Gateway (Default)" value="8"/>
-		</Value>
-		<Value type="list" index="13" genre="config" label="Command to Control Group C" units="" min="0" max="8" value="8" size="1">
-			<Help>This parameter defines the command to be sent to devices of control group C when the related button is pressed</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-			<Item label="Switch On/Off only (send Basic Set)" value="2"/>
-			<Item label="Switch All" value="3"/>
-			<Item label="Send Scene" value="4"/>
-			<Item label="Send Preconfigured Scenes" value="5"/>
-			<Item label="Control devices in proximity" value="6"/>
-			<Item label="Control DoorLock" value="7"/>
-			<Item label="Central Scene to Gateway (Default)" value="8"/>
-		</Value>
-		<Value type="list" index="14" genre="config" label="Command to Control Group D" units="" min="0" max="8" value="8" size="1">
-			<Help>This parameter defines the command to be sent to devices of control group D when the related button is pressed</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-			<Item label="Switch On/Off only (send Basic Set)" value="2"/>
-			<Item label="Switch All" value="3"/>
-			<Item label="Send Scene" value="4"/>
-			<Item label="Send Preconfigured Scenes" value="5"/>
-			<Item label="Control devices in proximity" value="6"/>
-			<Item label="Control DoorLock" value="7"/>
-			<Item label="Central Scene to Gateway (Default)" value="8"/>
-		</Value>		
-		<Value type="list" index="21" genre="config" label="Send the following Switch All commands" units="" min="1" max="255" value="1" size="1">
-			<Help>Send the following Switch All ON/OFF commands</Help>
-			<Item label="Switch Off only (default)" value="1"/>
-			<Item label="Switch On only" value="2"/>
-			<Item label="Switch On and Off" value="255"/>
-		</Value>
-		<Value type="list" index="22" genre="config" label="Invert buttons" units="" min="0" max="1" value="0" size="1">
-			<Help>Invert meaning of On/Dim up and Off/Dim down in pairs of buttons. This applies only to pairs in grouped mode. Buttons 1 and 2 will become Off/Dim down, buttons 3 and 4 On/Dim up.</Help>
-			<Item label="No (default)" value="0"/>
-			<Item label="Yes" value="1"/>
-		</Value>		
-		<Value type="list" index="25" genre="config" label="Blocks wake up even when wake up interval is set" units="" min="0" max="1" value="0" size="1">
-			<Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
-			<Item label="Wakeup is blocked (default)" value="0"/>
-			<Item label="Wakeup is possible if configured accordingly" value="1"/>
-		</Value>
-		<Value type="list" index="30" genre="config" label="Send unsolicited Battery Report on Wake Up" units="" min="0" max="2" value="1" size="1">
-			<Help/>
-			<Item label="No" value="0"/>
-			<Item label="To same node as wake up notification (Default)" value="1"/>
-			<Item label="Broadcast to neighbors" value="2"/>
-		</Value>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
-	<CommandClass id="43" action="add" getsupported="false"/>
-
-	<!-- COMMAND_CLASS_MULTI_CHANNEL_V2
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="11" label="Command to Control Group A" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group A when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="12" label="Command to Control Group B" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group B when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="13" label="Command to Control Group C" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group C when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="14" label="Command to Control Group D" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group D when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="21" label="Send the following Switch All commands" max="255" min="1" size="1" type="list" units="" value="1">
+      <Help>Send the following Switch All ON/OFF commands</Help>
+      <Item label="Switch Off only (default)" value="1"/>
+      <Item label="Switch On only" value="2"/>
+      <Item label="Switch On and Off" value="255"/>
+    </Value>
+    <Value genre="config" index="22" label="Invert buttons" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Invert meaning of On/Dim up and Off/Dim down in pairs of buttons. This applies only to pairs in grouped mode. Buttons 1 and 2 will become Off/Dim down, buttons 3 and 4 On/Dim up.</Help>
+      <Item label="No (default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="25" label="Blocks wake up even when wake up interval is set" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
+      <Item label="Wakeup is blocked (default)" value="0"/>
+      <Item label="Wakeup is possible if configured accordingly" value="1"/>
+    </Value>
+    <Value genre="config" index="30" label="Send unsolicited Battery Report on Wake Up" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help/>
+      <Item label="No" value="0"/>
+      <Item label="To same node as wake up notification (Default)" value="1"/>
+      <Item label="Broadcast to neighbors" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
+  <CommandClass action="add" id="43">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_MULTI_CHANNEL_V2
 	<CommandClass id="96" version="2"/>
 		-->
 
@@ -103,14 +104,13 @@
 	-->
 
 	<!-- COMMAND_CLASS_ASSOCIATION -->
-	<CommandClass id="133">
-		<Associations num_groups="5">			
-			<Group index="1" max_associations="10" label="Lifeline" />
-			<Group index="2" max_associations="10" label="Control Group A, controlled by button 1 or single clicks of buttons 1 and 3" />
-			<Group index="3" max_associations="10" label="Control Group B, controlled by button 2 or single clicks of buttons 2 and 4" />
-			<Group index="4" max_associations="10" label="Control Group C, controlled by button 3 or single clicks of buttons 1 and 3" />
-			<Group index="5" max_associations="10" label="Control Group D, controlled by button 4 or single clicks of buttons 2 and 4" />
-		</Associations>
-	</CommandClass>
-
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="10"/>
+      <Group index="2" label="Control Group A, controlled by button 1 or single clicks of buttons 1 and 3" max_associations="10"/>
+      <Group index="3" label="Control Group B, controlled by button 2 or single clicks of buttons 2 and 4" max_associations="10"/>
+      <Group index="4" label="Control Group C, controlled by button 3 or single clicks of buttons 1 and 3" max_associations="10"/>
+      <Group index="5" label="Control Group D, controlled by button 4 or single clicks of buttons 2 and 4" max_associations="10"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zwave.me/ZME_RC2.xml b/Config/zwave.me/ZME_RC2.xml
index c26af298db..987c9f7f68 100644
--- a/Config/zwave.me/ZME_RC2.xml
+++ b/Config/zwave.me/ZME_RC2.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- ZME_RC2 Z-Wave Remote Control+ -->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 
 	<!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
 	<CommandClass id="112">
diff --git a/Config/zwave.me/ZME_WALLC-S.xml b/Config/zwave.me/ZME_WALLC-S.xml
index a7aeeac631..6103809157 100644
--- a/Config/zwave.me/ZME_WALLC-S.xml
+++ b/Config/zwave.me/ZME_WALLC-S.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 
 <!-- Z-Wave.Me: ZME_WALLC-S Secure Wall Controller -->
 
@@ -94,4 +94,4 @@
 	</CommandClass>
 
 </Product>
-		
\ No newline at end of file
+		
diff --git a/Config/zwave.me/ZME_WCD2.xml b/Config/zwave.me/ZME_WCD2.xml
index 30ceed9321..74ae66dd9c 100644
--- a/Config/zwave.me/ZME_WCD2.xml
+++ b/Config/zwave.me/ZME_WCD2.xml
@@ -1,7 +1,6 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--Taken from http://en.z-wave.me/docs/ZME_0643x_UserManual.pdf-->
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Configuration Parameters -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Configuration Parameters -->
 	<!--IMPORTANT: Controllers may only allow to configure signed values. 
 	    In order to set values in the range  128?255 for parameters 4,  5 and 6 the
 	    value sent in the application shall be the desired value minus 256. 
@@ -11,10 +10,9 @@
 	    use value equal to desired value minus 65536. For example, to set auto
 	    switch off period to 10 hours =36000s it may be needed to set a value
 	    36000?65536=?29536.-->
-
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Button 1 and 3 Pair Mode" units="" min="0" max="2" value="1" size="1">
-			<Help>Button 1 and 3 pair mode (Parameter Number 1,
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Button 1 and 3 Pair Mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>Button 1 and 3 pair mode (Parameter Number 1,
 			Parameter Size 1) In separate mode button 1 works
 			with group 1, button 3 with groups 3. Click is On, Hold
 			is dimming Up, Double click is Off, Click-Hold is
@@ -22,12 +20,12 @@
 			correspondingly. Click is On/Off, Hold is dimming
 			Up/Down. Single	clicks works with group 1, double click with group
 			3.</Help>
-			<Item label="Separately" value="0" />
-			<Item label="In Pair without Double Click (default)" value="1" />
-			<Item label="In Pair with Double Click" value="2" />
-		</Value>
-		<Value type="list" index="2" genre="config" label="Button 2 and 4 Pair Mode" units="" min="0" max="2" value="1" size="1">
-			<Help>Button 2 and 4 pair mode (Parameter Number 2,
+      <Item label="Separately" value="0"/>
+      <Item label="In Pair without Double Click (default)" value="1"/>
+      <Item label="In Pair with Double Click" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Button 2 and 4 Pair Mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>Button 2 and 4 pair mode (Parameter Number 2,
 			Parameter Size 1) In separate mode button 2 works
 			with group 2, button 4 with groups 4. Click is On, Hold
 			is dimming Up, Double click is Off, Click-Hold is
@@ -35,104 +33,106 @@
 			correspondingly. Click is On/Off, Hold is dimming
 			Up/Down. Single clicks works with group 2, double click with group 4.
 			</Help>
-			<Item label="Separately" value="0" />
-			<Item label="In Pair without Double Click (default)" value="1" />
-			<Item label="In Pair with Double Click" value="2" />
-		</Value>
-		<Value type="list" index="11" genre="config" label="Action on Group 1" value="1" min="0" max="5" size="1">
-			<Help>Action on group 1 (Parameter Number 11,
+      <Item label="Separately" value="0"/>
+      <Item label="In Pair without Double Click (default)" value="1"/>
+      <Item label="In Pair with Double Click" value="2"/>
+    </Value>
+    <Value genre="config" index="11" label="Action on Group 1" max="5" min="0" size="1" type="list" value="1">
+      <Help>Action on group 1 (Parameter Number 11,
 			Parameter Size 1) In Switch On/Off only mode On
 			command is sent on Dim Up, Off on Dim Down. In Scenes mode the
 			scene ID sent is (10 * group + ActionID), where
 			ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 =
 			Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop
 			</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Switch On/Off and Dimm (send Basic Set and Switch Multilevel) (Default)" value="1" />
-			<Item label="Switch On/Off only (send Basic Set)" value="2" />
-			<Item label="Switch All" value="3" />
-			<Item label="Send Scenes" value="4" />
-			<Item label="Send Preconfigured Scenes" value="5" />
-		</Value>
-		<Value type="list" index="12" genre="config" label="Action on Group 2" value="1" min="0" max="5" size="1">
-			<Help>Action on group 2 (Parameter Number 12,
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dimm (send Basic Set and Switch Multilevel) (Default)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scenes" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+    </Value>
+    <Value genre="config" index="12" label="Action on Group 2" max="5" min="0" size="1" type="list" value="1">
+      <Help>Action on group 2 (Parameter Number 12,
 			Parameter Size 1) In Switch On/Off only mode On
 			command is sent on Dim Up, Off on Dim Down. In Scenes mode the
 			scene ID sent is (10 * group + ActionID), where
 			ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 =
 			Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop
 			</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Switch On/Off and Dimm (send Basic Set and Switch Multilevel) (Default)" value="1" />
-			<Item label="Switch On/Off only (send Basic Set)" value="2" />
-			<Item label="Switch All" value="3" />
-			<Item label="Send Scenes" value="4" />
-			<Item label="Send Preconfigured Scenes" value="5" />
-		</Value>
-		<Value type="list" index="13" genre="config" label="Action on Group 3" value="1" min="0" max="5" size="1">
-			<Help>Action on group 3 (Parameter Number 13,
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dimm (send Basic Set and Switch Multilevel) (Default)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scenes" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+    </Value>
+    <Value genre="config" index="13" label="Action on Group 3" max="5" min="0" size="1" type="list" value="1">
+      <Help>Action on group 3 (Parameter Number 13,
 			Parameter Size 1) In Switch On/Off only mode On
 			command is sent on Dim Up, Off on Dim Down. In Scenes mode the
 			scene ID sent is (10 * group + ActionID), where
 			ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 =
 			Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop
 			</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Switch On/Off and Dimm (send Basic Set and Switch Multilevel) (Default)" value="1" />
-			<Item label="Switch On/Off only (send Basic Set)" value="2" />
-			<Item label="Switch All" value="3" />
-			<Item label="Send Scenes" value="4" />
-			<Item label="Send Preconfigured Scenes" value="5" />
-		</Value>
-		<Value type="list" index="14" genre="config" label="Action on Group 4" value="1" min="0" max="5" size="1">
-			<Help>Action on group 4 (Parameter Number 14,
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dimm (send Basic Set and Switch Multilevel) (Default)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scenes" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+    </Value>
+    <Value genre="config" index="14" label="Action on Group 4" max="5" min="0" size="1" type="list" value="1">
+      <Help>Action on group 4 (Parameter Number 14,
 			Parameter Size 1) In Switch On/Off only mode On
 			command is sent on Dim Up, Off on Dim Down. In Scenes mode the
 			scene ID sent is (10 * group + ActionID), where
 			ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 =
 			Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop
 			</Help>
-			<Item label="Disabled" value="0" />
-			<Item label="Switch On/Off and Dimm (send Basic Set and Switch Multilevel) (Default)" value="1" />
-			<Item label="Switch On/Off only (send Basic Set)" value="2" />
-			<Item label="Switch All" value="3" />
-			<Item label="Send Scenes" value="4" />
-			<Item label="Send Preconfigured Scenes" value="5" />
-		</Value>
-		<Value type="byte" index="20" genre="config" label="Typical Click Timeout" units="x 10 milliseconds" min="0" max="100" value="50">
-			<Help>Typical time used to differenciate click, hold and double clicks</Help>
-		</Value>
-		<Value type="list" index="21" genre="config" label="Switch All Command" value="1" min="1" max="255" size="1">		
-			<Item label="Switch Off Only (Default)"	value="1"/>
-			<Item label="Switch On Only" value="2" />
-			<Item label="Switch all on and off" value="255" />
-		</Value>
-		<Value type="list" index="22" genre="config" label="Invert Buttons" min="0" max="1" size="1" value="0">
-			<Item label="No (Default)" value="0" />
-			<Item label="Yes" value="1" />
-		</Value>
-		<Value type="list" index="24" genre="config" label="Led Confirmation Mode" min="0" max="2" size="1" value="2">
-			<Help>This allows to save battery</Help>
-			<Item label="No Confirmations" value="0" />
-			<Item label="Confirm Button Press" value="1" />
-			<Item label="Confirm Button Press and delivery (Default)" value="2" />
-		</Value>
-		<Value type="list" index="30" genre="config" label="Send Unsolicited Battery Report on Wakeup" min="0" max="2" size="1" value="0">
-			<Item label="No (default)" value="0" />
-			<Item label="To same node as wake up notification" value="1" />
-			<Item label="Broadcast to neighbours" value="2" />
-		</Value>	
-	</CommandClass>
-	
-	<CommandClass id="43" action="add" getsupported="false"/>
-	
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="4">
-			<Group index="1" max_associations="8" label="Group 1"  />
-			<Group index="2" max_associations="8" label="Group 2" auto="true" />
-			<Group index="3" max_associations="8" label="Group 3" auto="true" />
-			<Group index="4" max_associations="8" label="Group 4" auto="true" />
-		</Associations>
-	</CommandClass>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dimm (send Basic Set and Switch Multilevel) (Default)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scenes" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+    </Value>
+    <Value genre="config" index="20" label="Typical Click Timeout" max="100" min="0" type="byte" units="x 10 milliseconds" value="50">
+      <Help>Typical time used to differenciate click, hold and double clicks</Help>
+    </Value>
+    <Value genre="config" index="21" label="Switch All Command" max="255" min="1" size="1" type="list" value="1">
+      <Item label="Switch Off Only (Default)" value="1"/>
+      <Item label="Switch On Only" value="2"/>
+      <Item label="Switch all on and off" value="255"/>
+    </Value>
+    <Value genre="config" index="22" label="Invert Buttons" max="1" min="0" size="1" type="list" value="0">
+      <Item label="No (Default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="24" label="Led Confirmation Mode" max="2" min="0" size="1" type="list" value="2">
+      <Help>This allows to save battery</Help>
+      <Item label="No Confirmations" value="0"/>
+      <Item label="Confirm Button Press" value="1"/>
+      <Item label="Confirm Button Press and delivery (Default)" value="2"/>
+    </Value>
+    <Value genre="config" index="30" label="Send Unsolicited Battery Report on Wakeup" max="2" min="0" size="1" type="list" value="0">
+      <Item label="No (default)" value="0"/>
+      <Item label="To same node as wake up notification" value="1"/>
+      <Item label="Broadcast to neighbours" value="2"/>
+    </Value>
+  </CommandClass>
+  <CommandClass action="add" id="43">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Group 1" max_associations="8"/>
+      <Group auto="true" index="2" label="Group 2" max_associations="8"/>
+      <Group auto="true" index="3" label="Group 3" max_associations="8"/>
+      <Group auto="true" index="4" label="Group 4" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zwave.me/ZUno.xml b/Config/zwave.me/ZUno.xml
index 24e0f6670b..525a0e5f71 100644
--- a/Config/zwave.me/ZUno.xml
+++ b/Config/zwave.me/ZUno.xml
@@ -1,26 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Z-Uno -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Z-Uno -->
     <!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Debug mode" units="" min="0" max="1" value="0" size="1">
-            <Help>Debug mode to apply channels, associations and power mode changes on the fly without exclusion-inclusion sequence. Use for debugging only!</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Enabled" value="1"/>
-        </Value>
-        <Value type="list" index="2" genre="config" label="Blink Service LED" units="" min="0" max="1" value="1" size="1">
-            <Help>Blink with service LED during operation</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Enabled" value="1"/>
-        </Value>
-    </CommandClass>
-    <CommandClass id="96" mapping="endpoints"/>
-    <CommandClass id="142" ForceInstances="true"/>
-    <!-- Association Groups -->
-    <CommandClass id="133">
-        <Associations num_groups="2">
-            <Group index="1" max_associations="5" label="Lifeline"/>
-            <Group index="2" max_associations="5" label="Control Group"/>
-        </Associations>
-    </CommandClass>
-</Product>
\ No newline at end of file
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Debug mode" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Debug mode to apply channels, associations and power mode changes on the fly without exclusion-inclusion sequence. Use for debugging only!</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="2" label="Blink Service LED" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Blink with service LED during operation</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Control Group" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/zwave.me/iTemp.xml b/Config/zwave.me/iTemp.xml
index 001b771888..60663513bf 100644
--- a/Config/zwave.me/iTemp.xml
+++ b/Config/zwave.me/iTemp.xml
@@ -1,34 +1,35 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-  <CommandClass id="67" base="0"/>
-
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
   <!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" index="1" genre="config" label="Factory reset" units="" min="0" max="1" value="0" size="1">
+    <Value genre="config" index="1" label="Factory reset" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>Reset but keep on network</Help>
       <Item label="No" value="0"/>
       <Item label="Reset" value="1"/>
     </Value>
-    <Value type="list" index="2" genre="config" label="Dry contact report type" units="" min="0" max="1" value="1" size="1">
+    <Value genre="config" index="2" label="Dry contact report type" max="1" min="0" size="1" type="list" units="" value="1">
       <Help>Report type on group 1</Help>
       <Item label="Alarm" value="0"/>
       <Item label="Basic" value="1"/>
     </Value>
-    <Value type="list" index="5" genre="config" label="Operation Mode" units="" min="1" max="3" value="1" size="1">
+    <Value genre="config" index="5" label="Operation Mode" max="3" min="1" size="1" type="list" units="" value="1">
       <Help></Help>
       <Item label="Normal" value="1"/>
       <Item label="Always Awake" value="3"/>
     </Value>
-    <Value type="short" index="6" genre="config" label="Temperature offset" units="K" value="1" size="2">
+    <Value genre="config" index="6" label="Temperature offset" size="2" type="short" units="K" value="1">
       <Help></Help>
     </Value>
   </CommandClass>
-
   <!-- COMMAND_CLASS_ASSOCIATION -->
   <CommandClass id="133">
     <Associations num_groups="2">
-      <Group index="1" max_associations="5" label="Binary report" auto="false"/>
-      <Group index="2" max_associations="5" label="Tamper report"/>
+      <Group auto="false" index="1" label="Binary report" max_associations="5"/>
+      <Group index="2" label="Tamper report" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/Config/zwave.me/kfob.xml b/Config/zwave.me/kfob.xml
index c2a517bdba..f296df1003 100644
--- a/Config/zwave.me/kfob.xml
+++ b/Config/zwave.me/kfob.xml
@@ -1,98 +1,118 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0115:0001:0100</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zwave.me/kfob.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0100">https://products.z-wavealliance.org/products/688/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0100">KFOB</MetaDataItem>
+    <MetaDataItem name="Description">The Z-Wave.Me Key Fob is a mobile Z-Wave device that can both control other Z-Wave devices and activate predefined scenes in an IP gateway. 
 
-	<!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
-	<CommandClass id="112">
-		<Value type="list" index="1" genre="config" label="Button 1 and 3 pair mode" units="" min="0" max="2" value="1" size="1">
-			<Help>In separate mode button 1 works with group 1, button 3 with groups 3. Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. In pair button 1/3 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group 1, double click with group 3.</Help>
-			<Item label="Separately" value="0"/>
-			<Item label="In pair without double clicks (default)" value="1"/>
-			<Item label="In pair with double clicks" value="2"/>
-		</Value>
-		<Value type="list" index="2" genre="config" label="Modes for Button 2 and 4" units="" min="0" max="2" value="1" size="1">
-			<Help>In separate mode button 2 works with group 2, button 4 with groups 4. Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. In pair button 2/4 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group 2, double click with group 4.</Help>
-			<Item label="Separately" value="0"/>
-			<Item label="In pair without double clicks (default)" value="1"/>
-			<Item label="In pair with double clicks" value="2"/>
-		</Value>
-		<Value type="list" index="11" genre="config" label="Action on group 1" units="" min="0" max="6" value="1" size="1">
-			<Help>In Switch On/Off only mode On command is sent on Dim Up, Off on Dim Down. In Scenes mode the scene ID sent is (10 * group + ActionID), where ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 = Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (default)" value="1"/>
-			<Item label="Switch On/Off only (send Basic Set)" value="2"/>
-			<Item label="Switch All" value="3"/>
-			<Item label="Send Scene Activation" value="4"/>
-			<Item label="Send Preconfigured Scenes" value="5"/>
-			<Item label="Control devices in proximity" value="6"/>
-		</Value>
-		<Value type="list" index="12" genre="config" label="Action on group 2" units="" min="0" max="6" value="1" size="1">
-			<Help>In Switch On/Off only mode On command is sent on Dim Up, Off on Dim Down. In Scenes mode the scene ID sent is (10 * group + ActionID), where ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 = Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (default)" value="1"/>
-			<Item label="Switch On/Off only (send Basic Set)" value="2"/>
-			<Item label="Switch All" value="3"/>
-			<Item label="Send Scene Activation" value="4"/>
-			<Item label="Send Preconfigured Scenes" value="5"/>
-			<Item label="Control devices in proximity" value="6"/>
-		</Value>
-		<Value type="list" index="13" genre="config" label="Action on group 3" units="" min="0" max="6" value="1" size="1">
-			<Help>In Switch On/Off only mode On command is sent on Dim Up, Off on Dim Down. In Scenes mode the scene ID sent is (10 * group + ActionID), where ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 = Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (default)" value="1"/>
-			<Item label="Switch On/Off only (send Basic Set)" value="2"/>
-			<Item label="Switch All" value="3"/>
-			<Item label="Send Scene Activation" value="4"/>
-			<Item label="Send Preconfigured Scenes" value="5"/>
-			<Item label="Control devices in proximity" value="6"/>
-		</Value>
-		<Value type="list" index="14" genre="config" label="Action on group 4" units="" min="0" max="6" value="1" size="1">
-			<Help>In Switch On/Off only mode On command is sent on Dim Up, Off on Dim Down. In Scenes mode the scene ID sent is (10 * group + ActionID), where ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 = Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop</Help>
-			<Item label="Disabled" value="0"/>
-			<Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (default)" value="1"/>
-			<Item label="Switch On/Off only (send Basic Set)" value="2"/>
-			<Item label="Switch All" value="3"/>
-			<Item label="Send Scene Activation" value="4"/>
-			<Item label="Send Preconfigured Scenes" value="5"/>
-			<Item label="Control devices in proximity" value="6"/>
-		</Value>
-		<Value type="byte" index="20" genre="config" label="Typical click timeout" units="ms" min="1" max="100" value="50" size="1">
-			<Help> Typical time used to differentiate click, hold and double clicks 1-100 in 10 ms units (default is 50, that is equivalent to 500 ms)</Help>
-		</Value>
-		<Value type="list" index="21" genre="config" label="Send the following Switch All commands" units="" min="1" max="255" value="1" size="1">
-			<Help>Send the following Switch All ON/OFF commands</Help>
-			<Item label="Switch Off only (default)" value="1"/>
-			<Item label="Switch On only" value="2"/>
-			<Item label="Switch On and Off" value="255"/>
-		</Value>
-		<Value type="list" index="22" genre="config" label="Invert buttons" units="" min="0" max="1" value="0" size="1">
-			<Help>Invert meaning of On/Dim up and Off/Dim down in pairs of buttons. This applies only to pairs in grouped mode. Buttons 1 and 2 will become Off/Dim down, buttons 3 and 4 On/Dim up.</Help>
-			<Item label="No (default)" value="0"/>
-			<Item label="Yes" value="1"/>
-		</Value>
-		<Value type="list" index="24" genre="config" label="LED confirmation mode" units="" min="0" max="2" value="2" size="1">
-			<Help>To save batteries LED confirmation can be disabled.</Help>
-			<Item label="No confirmations" value="0"/>
-			<Item label="Confirm button press" value="1"/>
-			<Item label="Confirm button press and delivery (default)" value="2"/>
-		</Value>
-		<!--Only on KFOB2 --> 
-		<Value type="list" index="25" genre="config" label="Blocks wake up even when wake up interval is set" units="" min="0" max="1" value="0" size="1">
-			<Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
-			<Item label="Wakeup is blocked (default)" value="0"/>
-			<Item label="Wakeup is possible if configured accordingly." value="1"/>
-		</Value>
-		<Value type="list" index="30" genre="config" label="Send unsolicited Battery Report on Wake Up" units="" min="0" max="2" value="0" size="1">
-			<Help/>
-			<Item label="No (default)" value="0"/>
-			<Item label="To same node as wakeup notification" value="1"/>
-			<Item label="Broadcast" value="2"/>
-		</Value>
-	</CommandClass>
-
-	<!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
-	<CommandClass id="43" action="add" getsupported="false"/>
-
-	<!-- COMMAND_CLASS_MULTI_CHANNEL_V2
+The Key Fob can be used in five different modes:
+1)	Direct Control of associated Devices with single Buttons 
+2)	Direct Control of associated Devices with two Buttons 
+3)	Scene Activation in IP Gateway 
+4)	Direct Activation of preconfigured Scenes 
+5)	Direct Control of Devices in proximity  
+</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave.Me Key Fob</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0100">Russia</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/688/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Button 1 and 3 pair mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 1 works with group 1, button 3 with groups 3. Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. In pair button 1/3 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group 1, double click with group 3.</Help>
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Modes for Button 2 and 4" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 2 works with group 2, button 4 with groups 4. Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down. In pair button 2/4 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group 2, double click with group 4.</Help>
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="11" label="Action on group 1" max="6" min="0" size="1" type="list" units="" value="1">
+      <Help>In Switch On/Off only mode On command is sent on Dim Up, Off on Dim Down. In Scenes mode the scene ID sent is (10 * group + ActionID), where ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 = Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (default)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene Activation" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+    </Value>
+    <Value genre="config" index="12" label="Action on group 2" max="6" min="0" size="1" type="list" units="" value="1">
+      <Help>In Switch On/Off only mode On command is sent on Dim Up, Off on Dim Down. In Scenes mode the scene ID sent is (10 * group + ActionID), where ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 = Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (default)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene Activation" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+    </Value>
+    <Value genre="config" index="13" label="Action on group 3" max="6" min="0" size="1" type="list" units="" value="1">
+      <Help>In Switch On/Off only mode On command is sent on Dim Up, Off on Dim Down. In Scenes mode the scene ID sent is (10 * group + ActionID), where ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 = Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (default)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene Activation" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+    </Value>
+    <Value genre="config" index="14" label="Action on group 4" max="6" min="0" size="1" type="list" units="" value="1">
+      <Help>In Switch On/Off only mode On command is sent on Dim Up, Off on Dim Down. In Scenes mode the scene ID sent is (10 * group + ActionID), where ActionID is: 1 = On, 2 = Off, 3 = Dim Up Start, 4 = Dim Down Start, 5 = Dim Up Stop, 6 = Dim Down Stop</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel) (default)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene Activation" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+    </Value>
+    <Value genre="config" index="20" label="Typical click timeout" max="100" min="1" size="1" type="byte" units="ms" value="50">
+      <Help> Typical time used to differentiate click, hold and double clicks 1-100 in 10 ms units (default is 50, that is equivalent to 500 ms)</Help>
+    </Value>
+    <Value genre="config" index="21" label="Send the following Switch All commands" max="255" min="1" size="1" type="list" units="" value="1">
+      <Help>Send the following Switch All ON/OFF commands</Help>
+      <Item label="Switch Off only (default)" value="1"/>
+      <Item label="Switch On only" value="2"/>
+      <Item label="Switch On and Off" value="255"/>
+    </Value>
+    <Value genre="config" index="22" label="Invert buttons" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Invert meaning of On/Dim up and Off/Dim down in pairs of buttons. This applies only to pairs in grouped mode. Buttons 1 and 2 will become Off/Dim down, buttons 3 and 4 On/Dim up.</Help>
+      <Item label="No (default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="24" label="LED confirmation mode" max="2" min="0" size="1" type="list" units="" value="2">
+      <Help>To save batteries LED confirmation can be disabled.</Help>
+      <Item label="No confirmations" value="0"/>
+      <Item label="Confirm button press" value="1"/>
+      <Item label="Confirm button press and delivery (default)" value="2"/>
+    </Value>
+    <!--Only on KFOB2 -->
+    <Value genre="config" index="25" label="Blocks wake up even when wake up interval is set" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
+      <Item label="Wakeup is blocked (default)" value="0"/>
+      <Item label="Wakeup is possible if configured accordingly." value="1"/>
+    </Value>
+    <Value genre="config" index="30" label="Send unsolicited Battery Report on Wake Up" max="2" min="0" size="1" type="list" units="" value="0">
+      <Help/>
+      <Item label="No (default)" value="0"/>
+      <Item label="To same node as wakeup notification" value="1"/>
+      <Item label="Broadcast" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
+  <CommandClass action="add" id="43">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_MULTI_CHANNEL_V2
 	<CommandClass id="96" version="2"/>
 		-->
 
@@ -101,13 +121,12 @@
 	-->
 
 	<!-- COMMAND_CLASS_ASSOCIATION -->
-	<CommandClass id="133">
-		<Associations num_groups="4">
-			<Group index="1" max_associations="8" label="Controlled by button 1 or single clicks of buttons 1 and 3" auto="false"/>
-			<Group index="2" max_associations="8" label="Controlled by button 2 or single clicks of buttons 2 and 4"/>
-			<Group index="3" max_associations="8" label="Controlled by button 3 or double clicks of buttons 1 and 3"/>
-			<Group index="4" max_associations="8" label="Controlled by button 4 or double clicks of buttons 2 and 4"/>
-		</Associations>
-	</CommandClass>
-
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group auto="false" index="1" label="Controlled by button 1 or single clicks of buttons 1 and 3" max_associations="8"/>
+      <Group index="2" label="Controlled by button 2 or single clicks of buttons 2 and 4" max_associations="8"/>
+      <Group index="3" label="Controlled by button 3 or double clicks of buttons 1 and 3" max_associations="8"/>
+      <Group index="4" label="Controlled by button 4 or double clicks of buttons 2 and 4" max_associations="8"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zwave.me/popp_kfob-c.xml b/Config/zwave.me/popp_kfob-c.xml
index fe8551c550..cc035db779 100644
--- a/Config/zwave.me/popp_kfob-c.xml
+++ b/Config/zwave.me/popp_kfob-c.xml
@@ -1,100 +1,125 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-    <!-- Popp KFOB-C Remote Control -->
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0115:0103:0100</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zwave.me/popp_kfob-c.png</MetaDataItem>
+    <MetaDataItem id="0103" name="ZWProductPage" type="0100">https://products.z-wavealliance.org/products/1282/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">When in factory default push Button 3 (secure) or Button 4 (normal) for one second to enter inclusion mode. The inclusion mode is indicated by a blinking green LED. From second device on you need to enter management mode  push all four buttons together for one second - green led blinks slowly), hit button 3 ( enter primary controller functions - green led blinks faster) and then button 1 (secure) or button 2 (normal).</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Enter management mode  by push all four buttons together for one second - green led blinks slowly), hit button 3 ( enter primary controller functions - green led blinks faster) and then button 3 again.
+
+  </MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Enter management mode  by push all four buttons together for one second - green led blinks slowly), then hit button 2 .</MetaDataItem>
+    <MetaDataItem id="0103" name="FrequencyName" type="0100">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Secure Key Chain Controller</MetaDataItem>
+    <MetaDataItem id="0103" name="Identifier" type="0100">ZME_KFOBC</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Enter management mode by push all four buttons together for one second - green led blinks slowly), then hit button 3 followed by keeping button 4 pushed down for 10 seconds. The first five seconds the green LED still blinks followed by a long red, shot green sequence. Once LEDs go off, reset was executed. Please use this
+procedure only if the device is secondary controller and  the primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1282/ZMEEKFOBC_Manualfinal.pdf</MetaDataItem>
+    <MetaDataItem name="Description">The Secure Key Fob Controller is a 4 button Z-Wave device capable to act both as primary or secondary controller. The four buttons can control other Z-Wave devices such as switches, dimmer and even door locks directly. Various options - configurable by Z-Wave configuration commands - define the actions and the commands used for this control. It is possible to use two sets of buttons (one of on/open/up and one for off/closed/down) or 4 single buttons to control 4 different groups of devices.
+
+The controller also allows triggering scenes in a central controller. Again different modes can be configured to adapt to the various implementations of scenes in different central controllers in the market.
+
+Control options also include special modes like 'all on/off' or always controlling the Z-Wave device in proximity to the fob. The device supports secure communication when included with enhanced security option and when communicating to a device also supporting enhanced security option. Otherwise the device will automatically turn into normal communication. to maintain backward compatibility.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1282/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Popp KFOB-C Remote Control -->
     <!-- COMMAND_CLASS_CONFIGURATION. Configuration Parameters -->
-    <CommandClass id="112">
-        <Value type="list" index="1" genre="config" label="Button 1 and 3 pair mode" units="" min="0" max="2" value="1" size="1">
-            <Help>In separate mode button 1 works with group A, button 3 with groups C.
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Button 1 and 3 pair mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 1 works with group A, button 3 with groups C.
                 Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down.
                 In pair button 1/3 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group A, double click with group C.</Help>
-            <Item label="Separately" value="0"/>
-            <Item label="In pair without double clicks (default)" value="1"/>
-            <Item label="In pair with double clicks" value="2"/>
-        </Value>
-        <Value type="list" index="2" genre="config" label="Button 2 and 4 pair mode" units="" min="0" max="2" value="1" size="1">
-            <Help>In separate mode button 2 works with group B, button 4 with groups D.
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="2" label="Button 2 and 4 pair mode" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help>In separate mode button 2 works with group B, button 4 with groups D.
                 Click is On, Hold is dimming Up, Double click is Off, Click-Hold is dimming Down.
                 In pair button 2/4 are Up/Down correspondingly. Click is On/Off, Hold is dimming Up/Down. Single clicks works with group B, double click with group D.</Help>
-            <Item label="Separately" value="0"/>
-            <Item label="In pair without double clicks (default)" value="1"/>
-            <Item label="In pair with double clicks" value="2"/>
-        </Value>
-        <Value type="list" index="11" genre="config" label="Command to Control Group A" units="" min="0" max="8" value="8" size="1">
-            <Help>This parameter defines the command to be sent to devices of control group A when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scene" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control devices in proximity" value="6"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="12" genre="config" label="Command to Control Group B" units="" min="0" max="8" value="8" size="1">
-            <Help>This parameter defines the command to be sent to devices of control group B when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scene" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control devices in proximity" value="6"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="13" genre="config" label="Command to Control Group C" units="" min="0" max="8" value="8" size="1">
-            <Help>This parameter defines the command to be sent to devices of control group C when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scene" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control devices in proximity" value="6"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="14" genre="config" label="Command to Control Group D" units="" min="0" max="8" value="8" size="1">
-            <Help>This parameter defines the command to be sent to devices of control group D when the related button is pressed</Help>
-            <Item label="Disabled" value="0"/>
-            <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
-            <Item label="Switch On/Off only (send Basic Set)" value="2"/>
-            <Item label="Switch All" value="3"/>
-            <Item label="Send Scene" value="4"/>
-            <Item label="Send Preconfigured Scenes" value="5"/>
-            <Item label="Control devices in proximity" value="6"/>
-            <Item label="Control DoorLock" value="7"/>
-            <Item label="Central Scene to Gateway (Default)" value="8"/>
-        </Value>
-        <Value type="list" index="21" genre="config" label="Send the following Switch All commands" units="" min="1" max="255" value="1" size="1">
-            <Help>Send the following Switch All ON/OFF commands</Help>
-            <Item label="Switch Off only (default)" value="1"/>
-            <Item label="Switch On only" value="2"/>
-            <Item label="Switch On and Off" value="255"/>
-        </Value>
-        <Value type="list" index="22" genre="config" label="Invert buttons" units="" min="0" max="1" value="0" size="1">
-            <Help>Invert meaning of On/Dim up and Off/Dim down in pairs of buttons. This applies only to pairs in grouped mode. Buttons 1 and 2 will become Off/Dim down, buttons 3 and 4 On/Dim up.</Help>
-            <Item label="No (default)" value="0"/>
-            <Item label="Yes" value="1"/>
-        </Value>
-        <Value type="list" index="25" genre="config" label="Blocks wake up even when wake up interval is set" units="" min="0" max="1" value="0" size="1">
-            <Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
-            <Item label="Wakeup is blocked (default)" value="0"/>
-            <Item label="Wakeup is possible if configured accordingly" value="1"/>
-        </Value>
-        <Value type="list" index="30" genre="config" label="Send unsolicited Battery Report on Wake Up" units="" min="0" max="2" value="1" size="1">
-            <Help/>
-            <Item label="No" value="0"/>
-            <Item label="To same node as wake up notification (Default)" value="1"/>
-            <Item label="Broadcast to neighbors" value="2"/>
-        </Value>
-    </CommandClass>
-
-    <!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
-    <CommandClass id="43" action="add" getsupported="false"/>
-
-    <!-- COMMAND_CLASS_MULTI_CHANNEL_V2
+      <Item label="Separately" value="0"/>
+      <Item label="In pair without double clicks (default)" value="1"/>
+      <Item label="In pair with double clicks" value="2"/>
+    </Value>
+    <Value genre="config" index="11" label="Command to Control Group A" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group A when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="12" label="Command to Control Group B" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group B when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="13" label="Command to Control Group C" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group C when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="14" label="Command to Control Group D" max="8" min="0" size="1" type="list" units="" value="8">
+      <Help>This parameter defines the command to be sent to devices of control group D when the related button is pressed</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Switch On/Off and Dim (send Basic Set and Switch Multilevel)" value="1"/>
+      <Item label="Switch On/Off only (send Basic Set)" value="2"/>
+      <Item label="Switch All" value="3"/>
+      <Item label="Send Scene" value="4"/>
+      <Item label="Send Preconfigured Scenes" value="5"/>
+      <Item label="Control devices in proximity" value="6"/>
+      <Item label="Control DoorLock" value="7"/>
+      <Item label="Central Scene to Gateway (Default)" value="8"/>
+    </Value>
+    <Value genre="config" index="21" label="Send the following Switch All commands" max="255" min="1" size="1" type="list" units="" value="1">
+      <Help>Send the following Switch All ON/OFF commands</Help>
+      <Item label="Switch Off only (default)" value="1"/>
+      <Item label="Switch On only" value="2"/>
+      <Item label="Switch On and Off" value="255"/>
+    </Value>
+    <Value genre="config" index="22" label="Invert buttons" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Invert meaning of On/Dim up and Off/Dim down in pairs of buttons. This applies only to pairs in grouped mode. Buttons 1 and 2 will become Off/Dim down, buttons 3 and 4 On/Dim up.</Help>
+      <Item label="No (default)" value="0"/>
+      <Item label="Yes" value="1"/>
+    </Value>
+    <Value genre="config" index="25" label="Blocks wake up even when wake up interval is set" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>If the KFOB wakes up and there is no controller nearby, several unsuccessful communication attempts will drain battery</Help>
+      <Item label="Wakeup is blocked (default)" value="0"/>
+      <Item label="Wakeup is possible if configured accordingly" value="1"/>
+    </Value>
+    <Value genre="config" index="30" label="Send unsolicited Battery Report on Wake Up" max="2" min="0" size="1" type="list" units="" value="1">
+      <Help/>
+      <Item label="No" value="0"/>
+      <Item label="To same node as wake up notification (Default)" value="1"/>
+      <Item label="Broadcast to neighbors" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SCENE_ACTIVATION. KFob can be configured to send scene commands but does not advertise it -->
+  <CommandClass action="add" id="43">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- COMMAND_CLASS_MULTI_CHANNEL_V2
     <CommandClass id="96" version="2"/>
         -->
 
@@ -103,14 +128,13 @@
     -->
 
     <!-- COMMAND_CLASS_ASSOCIATION -->
-    <CommandClass id="133">
-        <Associations num_groups="5">
-            <Group index="1" max_associations="10" label="Lifeline"/>
-            <Group index="2" max_associations="10" label="Control Group A, controlled by button 1 or single clicks of buttons 1 and 3"/>
-            <Group index="3" max_associations="10" label="Control Group B, controlled by button 2 or single clicks of buttons 2 and 4"/>
-            <Group index="4" max_associations="10" label="Control Group C, controlled by button 3 or single clicks of buttons 1 and 3"/>
-            <Group index="5" max_associations="10" label="Control Group D, controlled by button 4 or single clicks of buttons 2 and 4"/>
-        </Associations>
-    </CommandClass>
-
-</Product>
\ No newline at end of file
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="10"/>
+      <Group index="2" label="Control Group A, controlled by button 1 or single clicks of buttons 1 and 3" max_associations="10"/>
+      <Group index="3" label="Control Group B, controlled by button 2 or single clicks of buttons 2 and 4" max_associations="10"/>
+      <Group index="4" label="Control Group C, controlled by button 3 or single clicks of buttons 1 and 3" max_associations="10"/>
+      <Group index="5" label="Control Group D, controlled by button 4 or single clicks of buttons 2 and 4" max_associations="10"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/Config/zwave.me/zme_raz5.xml b/Config/zwave.me/zme_raz5.xml
new file mode 100644
index 0000000000..b1e5afcd8b
--- /dev/null
+++ b/Config/zwave.me/zme_raz5.xml
@@ -0,0 +1,28 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0115:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zwave.me/zme_raz5.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1260/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">n/a</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1260/RaZberryEndUserManual.pdf</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Web Interface; Network Tab, "Exclude Device"</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">ZMEURAZ5</MetaDataItem>
+    <MetaDataItem name="Name">Razberry500</MetaDataItem>
+    <MetaDataItem name="Description">The RaZberry solution turns every Raspberry PI micro computer into an Z-Wave based Smart Home Gateway. The backend can support Z-Wave but other third party communication technologies. An embedded web server with an Z-Wave expert UI allows easy  configuration and use. The embedded Apple HomeKit server bridges Z-Wave devices  into the Apple smart home world. The real power of the solution is an very  user friendly API and Javascript based logic engine to enable users to write  their own customized solution und user experience.
+
+The RaZberry consists of various parts:
+
+(a) Z-Wave transceiver pluggable to the GPIO interface of the Raspberry PI,
+(b) A Z-Wave stack integrated into an open source Javascript based smart home
+automation engine
+(c) Various user interfaces including an AJAX based Web UI, Apple HomeKit server 
+and several IOS and Android Apps.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Web Interface; Network Tab, "Reset Controller"</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Web Interface; Network Tab, "Include Device"</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1150/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1260/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/Config/zwave.me/zweather.xml b/Config/zwave.me/zweather.xml
index f8306b8177..36079e9dff 100644
--- a/Config/zwave.me/zweather.xml
+++ b/Config/zwave.me/zweather.xml
@@ -1,31 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='http://code.google.com/p/open-zwave/'>
-	<!-- Popp: Z-Weather Wind and Weather Sensor (Manufacturer id is 0x0115 Z-Wave.Me) -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0115:0400:0100</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zwave.me/zweather.png</MetaDataItem>
+    <MetaDataItem id="0400" name="ZWProductPage" type="0100">https://products.z-wavealliance.org/products/1424/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Push the button 3 times within 1.5 seconds. If the LED is not blinking after releasing the button, Z-Weather has not enough energy and must be charged for several hours in bright sunlight.
+</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Push the button 3 times within 1.5 seconds. The LED blinks once indicating that Z-Weather is. Z-Weather sends a Z-Wave Wakeup-Notification if has been added to the network. If Z-Weather has not yet been added to the network, no action is performed.</MetaDataItem>
+    <MetaDataItem id="0400" name="Identifier" type="0100">ZWeather</MetaDataItem>
+    <MetaDataItem name="Name">Z-Weather</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Push the button 3 times within 1.5 seconds.</MetaDataItem>
+    <MetaDataItem name="Description">Z-Weather is a  multisensor device monitoring outside weather and environmental conditions. It continually measures the wind speed and can, for example, trigger closing of the awning and blinds if it is too windy. It also measures the amount of rotation, enabling calculation of the wind yield per day or per year. In addition, Z-Weather includes sensors for humidity, temperature, pressure and dew point, essentially providing the core sensors of a weather station.
+Z-Weather is powered by a solar cell and stores energy on an internal capacitor, enabling continuous operation, even with no wind for a couple of days. It does not use any batteries and is completely maintenance free. Using the built-in solar cell it also measures the ambient light and the solar yield. This information can be used to turn on the outdoor light at dusk time and turn the light off in the morning.
+Z-Weather‘s wind yield and solar yield metering can be used as a calculation base for planning a wind generator or a solar panel on the roof of a house.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1424/Z-Weather Manual_v1.3.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Hold the button longer than 1.5 seconds and then release.
+The LED blinks longer than when pressing the button once.
+Z-Weather performs a factory reset and all configuration parameters are reset to their default values. Use this procedure only when the network primary controller is missing or otherwise inoperable.
+</MetaDataItem>
+    <MetaDataItem id="0400" name="FrequencyName" type="0100">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="08 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1424/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Popp: Z-Weather Wind and Weather Sensor (Manufacturer id is 0x0115 Z-Wave.Me) -->
 	<!-- Configuration  -->
-	<CommandClass id="112">
-		<Value type="byte" genre="config" instance="1" index="1" label="Threshold for too much wind" size="1" min="0" max="30" units="ms" value="6">
-			<Help>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Threshold for too much wind" max="30" min="0" size="1" type="byte" units="ms" value="6">
+      <Help>
 			Crossing this parameter on the rising edge, Z-Weather sends a basic set to the associated groups, serves the lifeline and sends a wake up notification.
 			Valid values: 0-30 m/s, where 0 means no notification on too much wind.
 			Default: 6
 			</Help>
-		</Value>
-		<Value type="byte" genre="config" instance="1" index="2" label="Threshold for twilight" size="1" min="0" max="100" units="%" value="37">
-			<Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Threshold for twilight" max="100" min="0" size="1" type="byte" units="%" value="37">
+      <Help>
 			Crossing this parameter from night to day, association group 3 is informed.
 			Crossing this parameter from day to night, association group 4 is informed.
 			Valid values: 0-100 %, where 0 means off.
 			Default: 37 (street lightning)
 			</Help>
-		</Value>
-	</CommandClass>
-	<!-- Association Groups -->
-	<CommandClass id="133">
-		<Associations num_groups="4">
-			<Group index="1" max_associations="1" label="Lifeline"/>
-			<Group index="2" max_associations="5" label="Wind speed is higher than 6 m/s (22 Km/h)" />
-			<Group index="3" max_associations="5" label="At the end of the dawn if it becomes bright (luminance rising)" />
-			<Group index="4" max_associations="5" label="At the end of the dusk if it becomes bright (luminance decreasing)" />
-		</Associations>
-	</CommandClass>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Wind speed is higher than 6 m/s (22 Km/h)" max_associations="5"/>
+      <Group index="3" label="At the end of the dawn if it becomes bright (luminance rising)" max_associations="5"/>
+      <Group index="4" label="At the end of the dusk if it becomes bright (luminance decreasing)" max_associations="5"/>
+    </Associations>
+  </CommandClass>
 </Product>
diff --git a/Config/zwcfg.xsd b/Config/zwcfg.xsd
index ed9d20f81b..25546d49f0 100644
--- a/Config/zwcfg.xsd
+++ b/Config/zwcfg.xsd
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
 <xs:schema
   xmlns:xs='http://www.w3.org/2001/XMLSchema'
-  targetNamespace='http://code.google.com/p/open-zwave/'
-  xmlns:Driver='http://code.google.com/p/open-zwave/'
+  targetNamespace='https://github.com/OpenZWave/open-zwave'
+  xmlns:Driver='https://github.com/OpenZWave/open-zwave'
   elementFormDefault='qualified'>
 
  <xs:element name='Driver'>
diff --git a/Config/zwp/PA-100.xml b/Config/zwp/PA-100.xml
new file mode 100644
index 0000000000..ffd85a08d5
--- /dev/null
+++ b/Config/zwp/PA-100.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 
+ZLINK Products Plug-In Appliance Module, ZL-PA-100
+https://www.zwaveproducts.com/shop/z-wave-lighting/z-wave-plugin-modules/zlink-products-plug-in-appliance-module-zl-pa-100
+-->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="3" value="0" label="Nightlight" units="" size="1" min="0" max="2" type="list">
+      <Help>DEFAULT: the LED indicator will be OFF when the connected appliance is ON, and the LED indicator will be ON when the connected appliance is OFF.
+INVERTED: the LED indicator will be OFF when the connected appliance is OFF, and the LED indicator will be ON when the connected appliance is ON.
+OFF: the LED indicator will be always OFF regardless of the load status.</Help>
+      <Item value="0" label="Default"/>
+      <Item value="1" label="Inverted"/>
+      <Item value="2" label="Off"/>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1" />
+    </Associations>
+  </CommandClass>
+
+</Product>
diff --git a/Config/zwp/WD-100.xml b/Config/zwp/WD-100.xml
index ab61697b69..672cd7c7d7 100644
--- a/Config/zwp/WD-100.xml
+++ b/Config/zwp/WD-100.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns="http://code.google.com/p/open-zwave/">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
 
   <!-- Configuration Parameters -->
   <CommandClass id="112">
diff --git a/Config/zwscene.xsd b/Config/zwscene.xsd
index c2395a5c4e..0fe91b1467 100644
--- a/Config/zwscene.xsd
+++ b/Config/zwscene.xsd
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
 <xs:schema
   xmlns:xs='http://www.w3.org/2001/XMLSchema'
-  targetNamespace='http://code.google.com/p/open-zwave/'
-  xmlns:Scenes='http://code.google.com/p/open-zwave/'
+  targetNamespace='https://github.com/OpenZWave/open-zwave'
+  xmlns:Scenes='https://github.com/OpenZWave/open-zwave'
   elementFormDefault='qualified'>
 
  <xs:element name='Scenes'>
diff --git a/hardware/OpenZWave.cpp b/hardware/OpenZWave.cpp
index 147ed0564d..15d7100361 100644
--- a/hardware/OpenZWave.cpp
+++ b/hardware/OpenZWave.cpp
@@ -85,7 +85,7 @@ static const _tAlarmNameToIndexMapping AlarmToIndexMapping[] = {
 	{ "", 0 }
 };
 
-unsigned char GetIndexFromAlarm(const std::string &sLabel)
+unsigned char GetIndexFromAlarm(const std::string& sLabel)
 {
 	int ii = 0;
 	while (AlarmToIndexMapping[ii].iIndex != 0)
@@ -134,7 +134,7 @@ static const _tAlarmNameToIndexMapping AlarmTypeToIndexMapping[] = {
 	{ "", 0 }
 };
 
-unsigned char GetIndexFromAlarmType(const std::string &sLabel)
+unsigned char GetIndexFromAlarmType(const std::string& sLabel)
 {
 	int ii = 0;
 	while (!AlarmTypeToIndexMapping[ii].sLabel.empty())
@@ -157,7 +157,7 @@ extern std::string szUserDataFolder;
 #define DEBUG_ZWAVE_INT
 #endif
 
-const char *cclassStr(uint8 cc)
+const char* cclassStr(uint8 cc)
 {
 	switch (cc) {
 	default:
@@ -385,7 +385,7 @@ COpenZWave::NodeInfo* COpenZWave::GetNodeInfo(const unsigned int homeID, const i
 std::string COpenZWave::GetNodeStateString(const unsigned int homeID, const int nodeID)
 {
 	std::string strState = "Unknown";
-	COpenZWave::NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+	COpenZWave::NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 	if (!pNode)
 		return strState;
 
@@ -402,7 +402,7 @@ std::string COpenZWave::GetNodeStateString(const unsigned int homeID, const int
 	return strState;
 }
 
-uint8_t COpenZWave::GetInstanceFromValueID(const OpenZWave::ValueID &vID)
+uint8_t COpenZWave::GetInstanceFromValueID(const OpenZWave::ValueID& vID)
 {
 	uint8_t instance;
 
@@ -463,9 +463,9 @@ void COpenZWave::WriteControllerConfig()
 	m_LastControllerConfigWrite = mytime(NULL);
 }
 
-void OnDeviceStatusUpdate(OpenZWave::Driver::ControllerState cs, OpenZWave::Driver::ControllerError err, void *_context)
+void OnDeviceStatusUpdate(OpenZWave::Driver::ControllerState cs, OpenZWave::Driver::ControllerError err, void* _context)
 {
-	COpenZWave *pClass = static_cast<COpenZWave*>(_context);
+	COpenZWave* pClass = static_cast<COpenZWave*>(_context);
 	pClass->OnZWaveDeviceStatusUpdate(cs, err);
 }
 
@@ -475,7 +475,7 @@ void OnDeviceStatusUpdate(OpenZWave::Driver::ControllerState cs, OpenZWave::Driv
 //-----------------------------------------------------------------------------
 void OnNotification(OpenZWave::Notification const* _notification, void* _context)
 {
-	COpenZWave *pClass = static_cast<COpenZWave*>(_context);
+	COpenZWave* pClass = static_cast<COpenZWave*>(_context);
 	pClass->OnZWaveNotification(_notification);
 }
 
@@ -599,7 +599,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 			_log.Log(LOG_STATUS, "OpenZWave: Invalid NodeID received. HomeID: %u, NodeID: %d (0x%02x)", _homeID, _nodeID, _nodeID);
 			return;
 		}
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			// Add the new value to our list
 
@@ -622,7 +622,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 		}
 		break;
 	case OpenZWave::Notification::Type_SceneEvent:
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			nodeInfo->eState = NSTATE_AWAKE;
 
@@ -635,7 +635,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 	case OpenZWave::Notification::Type_ValueRemoved:
 		if ((_nodeID == 0) || (_nodeID == 255))
 			return;
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			// Remove the value from out list
 			for (std::list<OpenZWave::ValueID>::iterator it = nodeInfo->Instances[instance][commandClass].Values.begin(); it != nodeInfo->Instances[instance][commandClass].Values.end(); ++it)
@@ -657,7 +657,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 			return;
 		}
 		// One of the node values has changed
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			nodeInfo->eState = NSTATE_AWAKE;
 			nodeInfo->LastSeen = m_updateTime;
@@ -667,7 +667,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 		break;
 	case OpenZWave::Notification::Type_ValueRefreshed:
 		// One of the node values has changed
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			nodeInfo->eState = NSTATE_AWAKE;
 			//UpdateValue(vID);
@@ -680,7 +680,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 		switch (subType)
 		{
 		case OpenZWave::Notification::Code_MsgComplete:
-			if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+			if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 			{
 				bool bWasDead = (nodeInfo->eState == NSTATE_DEAD);
 				nodeInfo->eState = NSTATE_AWAKE;
@@ -690,7 +690,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 			}
 			break;
 		case OpenZWave::Notification::Code_Awake:
-			if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+			if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 			{
 				bool bWasDead = (nodeInfo->eState == NSTATE_DEAD);
 				nodeInfo->eState = NSTATE_AWAKE;
@@ -700,7 +700,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 			}
 			break;
 		case OpenZWave::Notification::Code_Sleep:
-			if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+			if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 			{
 				bool bWasDead = (nodeInfo->eState == NSTATE_DEAD);
 				nodeInfo->eState = NSTATE_SLEEP;
@@ -709,7 +709,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 			}
 			break;
 		case OpenZWave::Notification::Code_Dead:
-			if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+			if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 			{
 				bool bWasDead = (nodeInfo->eState == NSTATE_DEAD);
 				nodeInfo->eState = NSTATE_DEAD;
@@ -719,7 +719,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 			_log.Log(LOG_STATUS, "OpenZWave: Received Node Dead notification from HomeID: %u, NodeID: %d (0x%02x)", _homeID, _nodeID, _nodeID);
 			break;
 		case OpenZWave::Notification::Code_Alive:
-			if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+			if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 			{
 				bool bWasDead = (nodeInfo->eState == NSTATE_DEAD);
 				nodeInfo->eState = NSTATE_AWAKE;
@@ -737,7 +737,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 			break;
 		case OpenZWave::Notification::Code_NoOperation:
 			//Code_NoOperation send to node
-			if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+			if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 			{
 			}
 			break;
@@ -749,7 +749,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 	break;
 	case OpenZWave::Notification::Type_Group:
 		// One of the node's association groups has changed
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			nodeInfo->LastSeen = m_updateTime;
 		}
@@ -759,7 +759,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 			return;
 		// We have received an event from the node, caused by a
 		// basic_set or hail message.
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			nodeInfo->eState = NSTATE_AWAKE;
 			UpdateNodeEvent(vID, static_cast<int>(_notification->GetEvent()));
@@ -768,14 +768,14 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 		}
 		break;
 	case OpenZWave::Notification::Type_PollingDisabled:
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			nodeInfo->polled = false;
 			nodeInfo->LastSeen = m_updateTime;
 		}
 		break;
 	case OpenZWave::Notification::Type_PollingEnabled:
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			nodeInfo->polled = true;
 			nodeInfo->LastSeen = m_updateTime;
@@ -812,7 +812,7 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 		NodeQueried(_homeID, _nodeID);
 		break;
 	case OpenZWave::Notification::Type_NodeNaming:
-		if (NodeInfo* nodeInfo = GetNodeInfo(_homeID, _nodeID))
+		if (NodeInfo * nodeInfo = GetNodeInfo(_homeID, _nodeID))
 		{
 			std::string product_name = m_pManager->GetNodeProductName(_homeID, _nodeID);
 			if (nodeInfo->Product_name != product_name)
@@ -843,17 +843,17 @@ void COpenZWave::OnZWaveNotification(OpenZWave::Notification const* _notificatio
 		_log.Log(LOG_STATUS, "OpenZWave: %s", _notification->GetAsString().c_str());
 	}
 	break;
-/*
-	case OpenZWave::Notification::Type_UserAlerts:
-	{
-		OpenZWave::Notification::UserAlertNofification uacode = (OpenZWave::Notification::UserAlertNofification)_notification->GetUserAlertType();
-		_log.Log(LOG_STATUS, "OpenZWave: %s", _notification->GetAsString().c_str());
-	}
-	break;
+	/*
+		case OpenZWave::Notification::Type_UserAlerts:
+		{
+			OpenZWave::Notification::UserAlertNofification uacode = (OpenZWave::Notification::UserAlertNofification)_notification->GetUserAlertType();
+			_log.Log(LOG_STATUS, "OpenZWave: %s", _notification->GetAsString().c_str());
+		}
+		break;
+	*/
 	case OpenZWave::Notification::Type_ManufacturerSpecificDBReady:
 		_log.Log(LOG_STATUS, "OpenZWave: %s", _notification->GetAsString().c_str());
 		break;
-*/
 	default:
 		_log.Log(LOG_STATUS, "OpenZWave: Received unhandled notification type (%d) from HomeID: %u, NodeID: %d (0x%02x)", nType, _homeID, _nodeID, _nodeID);
 		_log.Log(LOG_STATUS, "OpenZWave: %s", _notification->GetAsString().c_str());
@@ -1088,9 +1088,9 @@ bool COpenZWave::GetFailedState()
 	return m_initFailed;
 }
 
-bool COpenZWave::GetValueByCommandClass(const int nodeID, const int instanceID, const int commandClass, OpenZWave::ValueID &nValue)
+bool COpenZWave::GetValueByCommandClass(const int nodeID, const int instanceID, const int commandClass, OpenZWave::ValueID& nValue)
 {
-	COpenZWave::NodeInfo *pNode = GetNodeInfo(m_controllerID, nodeID);
+	COpenZWave::NodeInfo* pNode = GetNodeInfo(m_controllerID, nodeID);
 	if (!pNode)
 		return false;
 
@@ -1106,9 +1106,9 @@ bool COpenZWave::GetValueByCommandClass(const int nodeID, const int instanceID,
 	return false;
 }
 
-bool COpenZWave::GetValueByCommandClassLabel(const int nodeID, const int instanceID, const int commandClass, const std::string &vLabel, OpenZWave::ValueID &nValue)
+bool COpenZWave::GetValueByCommandClassLabel(const int nodeID, const int instanceID, const int commandClass, const std::string& vLabel, OpenZWave::ValueID& nValue)
 {
-	COpenZWave::NodeInfo *pNode = GetNodeInfo(m_controllerID, nodeID);
+	COpenZWave::NodeInfo* pNode = GetNodeInfo(m_controllerID, nodeID);
 	if (!pNode)
 		return false;
 
@@ -1128,7 +1128,7 @@ bool COpenZWave::GetValueByCommandClassLabel(const int nodeID, const int instanc
 	return false;
 }
 
-bool COpenZWave::GetNodeConfigValueByIndex(const NodeInfo *pNode, const int index, OpenZWave::ValueID &nValue)
+bool COpenZWave::GetNodeConfigValueByIndex(const NodeInfo* pNode, const int index, OpenZWave::ValueID& nValue)
 {
 	for (std::map<int, std::map<int, NodeCommandClass> >::const_iterator ittInstance = pNode->Instances.begin(); ittInstance != pNode->Instances.end(); ++ittInstance)
 	{
@@ -1173,7 +1173,7 @@ bool COpenZWave::SwitchLight(const int nodeID, const int instanceID, const int c
 {
 	if (m_pManager == NULL)
 		return false;
-	NodeInfo *pNode = GetNodeInfo(m_controllerID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(m_controllerID, nodeID);
 	if (!pNode)
 	{
 		if (!m_awakeNodesQueried)
@@ -1191,7 +1191,7 @@ bool COpenZWave::SwitchLight(const int nodeID, const int instanceID, const int c
 		return false;
 	}
 
-	_tZWaveDevice *pDevice = FindDevice(nodeID, instanceID, 0, ZWaveBase::ZDTYPE_SWITCH_DIMMER);
+	_tZWaveDevice* pDevice = FindDevice(nodeID, instanceID, 0, ZWaveBase::ZDTYPE_SWITCH_DIMMER);
 	if (pDevice)
 	{
 		if (
@@ -1294,7 +1294,7 @@ bool COpenZWave::SwitchLight(const int nodeID, const int instanceID, const int c
 			{
 				//Device is switched off, lets see if there is a power sensor for this device,
 				//and set its value to 0 as well
-				_tZWaveDevice *pPowerDevice = FindDevice(pDevice->nodeID, pDevice->instanceID, pDevice->indexID, COMMAND_CLASS_METER, ZDTYPE_SENSOR_POWER);
+				_tZWaveDevice* pPowerDevice = FindDevice(pDevice->nodeID, pDevice->instanceID, pDevice->indexID, COMMAND_CLASS_METER, ZDTYPE_SENSOR_POWER);
 				if (pPowerDevice == NULL)
 				{
 					pPowerDevice = FindDevice(pDevice->nodeID, pDevice->instanceID, pDevice->indexID, ZDTYPE_SENSOR_POWER);
@@ -1329,7 +1329,7 @@ bool COpenZWave::SwitchLight(const int nodeID, const int instanceID, const int c
 			{
 				//Device is switched off, lets see if there is a power sensor for this device,
 				//and set its value to 0 as well
-				_tZWaveDevice *pPowerDevice = FindDevice(pDevice->nodeID, pDevice->instanceID, pDevice->indexID, COMMAND_CLASS_METER, ZDTYPE_SENSOR_POWER);
+				_tZWaveDevice* pPowerDevice = FindDevice(pDevice->nodeID, pDevice->instanceID, pDevice->indexID, COMMAND_CLASS_METER, ZDTYPE_SENSOR_POWER);
 				if (pPowerDevice == NULL)
 				{
 					pPowerDevice = FindDevice(pDevice->nodeID, pDevice->instanceID, pDevice->indexID, ZDTYPE_SENSOR_POWER);
@@ -1354,18 +1354,18 @@ bool COpenZWave::SwitchLight(const int nodeID, const int instanceID, const int c
 
 bool COpenZWave::HasNodeFailed(const int nodeID)
 {
-	NodeInfo *pNode = GetNodeInfo(m_controllerID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(m_controllerID, nodeID);
 	if (!pNode)
 		return true;
 	return m_pManager->IsNodeFailed(m_controllerID, nodeID);
 }
 
-bool COpenZWave::SwitchColor(const int nodeID, const int instanceID, const int commandClass, const std::string &ColorStr)
+bool COpenZWave::SwitchColor(const int nodeID, const int instanceID, const int commandClass, const std::string& ColorStr)
 {
 	if (m_pManager == NULL)
 		return false;
 
-	NodeInfo *pNode = GetNodeInfo(m_controllerID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(m_controllerID, nodeID);
 	if (!pNode)
 	{
 		if (!m_awakeNodesQueried)
@@ -1476,7 +1476,7 @@ void COpenZWave::SetThermostatSetPoint(const int nodeID, const int instanceID, c
 	m_updateTime = mytime(NULL);
 }
 
-void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeInfo)
+void COpenZWave::AddValue(const OpenZWave::ValueID& vID, const NodeInfo* pNodeInfo)
 {
 	if (m_pManager == NULL)
 		return;
@@ -1510,7 +1510,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 	{
 		if (vLabel == "Application Version")
 		{
-			COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+			COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 			if (pNode)
 			{
 				std::string strValue;
@@ -1753,7 +1753,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 					{
 						_device.devType = ZDTYPE_SENSOR_POWER;
 					}
-					_device.floatValue = fValue*_device.scaleMultiply;
+					_device.floatValue = fValue * _device.scaleMultiply;
 					InsertDevice(_device);
 				}
 			}
@@ -1839,7 +1839,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 				if (vUnits == "F")
 				{
 					//Convert to celcius
-					fValue = float((fValue - 32)*(5.0 / 9.0));
+					fValue = float((fValue - 32) * (5.0 / 9.0));
 				}
 				_device.floatValue = fValue;
 				_device.commandClassID = 49;
@@ -1854,7 +1854,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 				if (vUnits != "lux")
 				{
 					//convert from % to Lux (where max is 1000 Lux)
-					fValue = (1000.0f / 100.0f)*fValue;
+					fValue = (1000.0f / 100.0f) * fValue;
 					if (fValue > 1000.0f)
 						fValue = 1000.0f;
 				}
@@ -1899,7 +1899,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 		{
 			if (m_pManager->GetValueAsFloat(vID, &fValue) == true)
 			{
-				_device.floatValue = fValue*10.0f;
+				_device.floatValue = fValue * 10.0f;
 				_device.commandClassID = 49;
 				_device.devType = ZDTYPE_SENSOR_BAROMETER;
 				InsertDevice(_device);
@@ -1938,7 +1938,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 					{
 						_device.devType = ZDTYPE_SENSOR_POWER;
 					}
-					_device.floatValue = fValue*_device.scaleMultiply;
+					_device.floatValue = fValue * _device.scaleMultiply;
 					InsertDevice(_device);
 				}
 			}
@@ -2119,7 +2119,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 			if (vUnits == "F")
 			{
 				//Convert to celcius
-				fValue = float((fValue - 32)*(5.0 / 9.0));
+				fValue = float((fValue - 32) * (5.0 / 9.0));
 			}
 			_device.floatValue = fValue;
 			_device.commandClassID = COMMAND_CLASS_THERMOSTAT_SETPOINT;
@@ -2130,7 +2130,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 	}
 	else if (commandclass == COMMAND_CLASS_THERMOSTAT_MODE)
 	{
-		COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+		COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 		if (!pNode)
 			return;
 		if (vType == OpenZWave::ValueID::ValueType_List)
@@ -2167,7 +2167,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 	}
 	else if (commandclass == COMMAND_CLASS_THERMOSTAT_FAN_MODE)
 	{
-		COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+		COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 		if (!pNode)
 			return;
 		if (vType == OpenZWave::ValueID::ValueType_List)
@@ -2204,7 +2204,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 	}
 	else if (commandclass == COMMAND_CLASS_CLOCK)
 	{
-		COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+		COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 		if (!pNode)
 			return;
 
@@ -2244,7 +2244,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 					)
 				{
 					_log.Log(LOG_NORM, "OpenZWave: NodeID: %d (0x%02x), Thermostat Clock: %s %02d:%02d", NodeID, NodeID, ZWave_Clock_Days(pNode->tClockDay), pNode->tClockHour, pNode->tClockMinute);
-					_device.intvalue = (pNode->tClockDay*(24 * 60)) + (pNode->tClockHour * 60) + pNode->tClockMinute;
+					_device.intvalue = (pNode->tClockDay * (24 * 60)) + (pNode->tClockHour * 60) + pNode->tClockMinute;
 					_device.commandClassID = COMMAND_CLASS_CLOCK;
 					_device.devType = ZDTYPE_SENSOR_THERMOSTAT_CLOCK;
 					InsertDevice(_device);
@@ -2265,22 +2265,35 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 	}
 	else if (commandclass == COMMAND_CLASS_CENTRAL_SCENE)
 	{
-		if (vLabel == "Scene ID")
+		if (vLabel.find("Scene Count") == 0)
 		{
-			if (vType == OpenZWave::ValueID::ValueType_Byte)
+			if (vType == OpenZWave::ValueID::ValueType_Int)
 			{
-				if (m_pManager->GetValueAsByte(vID, &byteValue) == true)
+				if (m_pManager->GetValueAsInt(vID, &iValue) == true)
 				{
-					if (byteValue == 0)
-						return;
-					instance = byteValue;
-					_device.instanceID = instance;
-					_device.devType = ZDTYPE_CENTRAL_SCENE;
-					_device.intvalue = 0;
-					InsertDevice(_device);
+					while (1 == 0);
 				}
 			}
 		}
+		else if (vLabel.find("Scene ") == 0)
+		{
+			int32 lValue = 0;
+			if (vType == OpenZWave::ValueID::ValueType_List)
+			{
+				if (m_pManager->GetValueListSelection(vID, &lValue) == false)
+					return;
+			}
+			if ((lValue == 0)|| (lValue == 2)) // CentralSceneMask_KeyReleased
+				return;
+			if (lValue != 1)
+				return; //only accept CentralSceneMask_KeyPressed1time
+
+			instance = vIndex;
+			_device.instanceID = instance;
+			_device.devType = ZDTYPE_CENTRAL_SCENE;
+			_device.intvalue = 0;
+			InsertDevice(_device);
+		}
 	}
 	else if (commandclass == COMMAND_CLASS_DOOR_LOCK)
 	{
@@ -2314,7 +2327,7 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
 	}
 }
 
-void COpenZWave::UpdateNodeEvent(const OpenZWave::ValueID &vID, int EventID)
+void COpenZWave::UpdateNodeEvent(const OpenZWave::ValueID& vID, int EventID)
 {
 	if (m_pManager == NULL)
 		return;
@@ -2346,7 +2359,7 @@ void COpenZWave::UpdateNodeEvent(const OpenZWave::ValueID &vID, int EventID)
 			return;
 	}
 
-	_tZWaveDevice *pDevice = FindDevice(NodeID, instance, index, COMMAND_CLASS_SENSOR_BINARY, ZDTYPE_SWITCH_NORMAL);
+	_tZWaveDevice* pDevice = FindDevice(NodeID, instance, index, COMMAND_CLASS_SENSOR_BINARY, ZDTYPE_SWITCH_NORMAL);
 	if (pDevice == NULL)
 	{
 		//one more try
@@ -2390,7 +2403,7 @@ void COpenZWave::UpdateNodeEvent(const OpenZWave::ValueID &vID, int EventID)
 		SendDevice2Domoticz(pDevice);
 }
 
-void COpenZWave::UpdateNodeScene(const OpenZWave::ValueID &vID, int SceneID)
+void COpenZWave::UpdateNodeScene(const OpenZWave::ValueID& vID, int SceneID)
 {
 	if (m_pManager == NULL)
 		return;
@@ -2407,7 +2420,7 @@ void COpenZWave::UpdateNodeScene(const OpenZWave::ValueID &vID, int SceneID)
 	int instanceID = 0;
 	int indexID = 0;
 	int commandclass = COMMAND_CLASS_SCENE_ACTIVATION;
-	_tZWaveDevice *pDevice = FindDevice(devID, instanceID, indexID, commandclass, ZDTYPE_SWITCH_NORMAL);
+	_tZWaveDevice* pDevice = FindDevice(devID, instanceID, indexID, commandclass, ZDTYPE_SWITCH_NORMAL);
 	if (pDevice == NULL)
 	{
 		//Add new switch device
@@ -2449,7 +2462,7 @@ void COpenZWave::UpdateNodeScene(const OpenZWave::ValueID &vID, int SceneID)
 		SendDevice2Domoticz(pDevice);
 }
 
-void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
+void COpenZWave::UpdateValue(const OpenZWave::ValueID& vID)
 {
 	if (m_pManager == NULL)
 		return;
@@ -2465,7 +2478,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 	uint8_t instance = GetInstanceFromValueID(vID);
 
 	uint8_t vOrgInstance = vID.GetInstance();
-	uint8_t vOrgIndex = (uint8_t) vID.GetIndex();
+	uint8_t vOrgIndex = (uint8_t)vID.GetIndex();
 
 	OpenZWave::ValueID::ValueType vType = vID.GetType();
 	OpenZWave::ValueID::ValueGenre vGenre = vID.GetGenre();
@@ -2518,16 +2531,27 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 
 	if (commandclass == COMMAND_CLASS_CENTRAL_SCENE)
 	{
-		if (vLabel != "Scene ID")
+		if (vLabel.find("Scene ") != 0)
 		{
 			return;
 		}
-		instance = byteValue;
+		int32 lValue = 0;
+		if (vType == OpenZWave::ValueID::ValueType_List)
+		{
+			if (m_pManager->GetValueListSelection(vID, &lValue) == false)
+				return;
+		}
+		if ((lValue == 0) || (lValue == 2)) // CentralSceneMask_KeyReleased
+			return;
+		if (lValue != 1)
+			return; //only accept CentralSceneMask_KeyPressed1time
+
+		instance = vOrgIndex;
 	}
 
 	if (vGenre != OpenZWave::ValueID::ValueGenre_User)
 	{
-		NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+		NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 		if (pNode)
 		{
 			/*
@@ -2616,7 +2640,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 		if ((instance == 1) && (vGenre == OpenZWave::ValueID::ValueGenre_User) && (vID.GetIndex() == 0) && (vType == OpenZWave::ValueID::ValueType_Raw))
 		{
 			//Enrollment Code
-			COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+			COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 			if (!pNode)
 				return;
 			if (pNode->Instances.find(1) == pNode->Instances.end())
@@ -2684,7 +2708,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 	}
 	else if (commandclass == COMMAND_CLASS_CLOCK)
 	{
-		COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+		COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 		if (!pNode)
 			return;
 
@@ -2731,7 +2755,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 		}
 	}
 
-	_tZWaveDevice *pDevice = NULL;
+	_tZWaveDevice* pDevice = NULL;
 	std::map<std::string, _tZWaveDevice>::iterator itt;
 	std::string path_plus = path + ".";
 	for (itt = m_devices.begin(); itt != m_devices.end(); ++itt)
@@ -2761,7 +2785,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 		}
 
 		//New device, let's add it
-		COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+		COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 		if (!pNode)
 			return;
 
@@ -2796,7 +2820,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 		(pDevice->Product_type == 0)
 		)
 	{
-		COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+		COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 		if (pNode)
 		{
 			if (!pNode->Manufacturer_name.empty())
@@ -3038,7 +3062,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 			return;
 		if (vType != OpenZWave::ValueID::ValueType_Decimal)
 			return;
-		pDevice->floatValue = fValue*pDevice->scaleMultiply;
+		pDevice->floatValue = fValue * pDevice->scaleMultiply;
 		break;
 	case ZDTYPE_SENSOR_POWERENERGYMETER:
 		if (vType != OpenZWave::ValueID::ValueType_Decimal)
@@ -3048,7 +3072,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 			(vLabel != "Power")
 			)
 			return;
-		pDevice->floatValue = fValue*pDevice->scaleMultiply;
+		pDevice->floatValue = fValue * pDevice->scaleMultiply;
 		break;
 	case ZDTYPE_SENSOR_TEMPERATURE:
 		if (vType != OpenZWave::ValueID::ValueType_Decimal)
@@ -3058,7 +3082,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 		if (vUnits == "F")
 		{
 			//Convert to celcius
-			fValue = float((fValue - 32)*(5.0 / 9.0));
+			fValue = float((fValue - 32) * (5.0 / 9.0));
 		}
 		if ((fValue < -200) || (fValue > 380))
 			return;
@@ -3091,7 +3115,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 			return;
 		if ((vLabel == "Barometric Pressure") || (vLabel == "Atmospheric Pressure"))
 		{
-			pDevice->floatValue = fValue*10.0f;
+			pDevice->floatValue = fValue * 10.0f;
 		}
 		else
 			return;
@@ -3111,7 +3135,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 		if (vUnits != "lux")
 		{
 			//convert from % to Lux (where max is 1000 Lux)
-			fValue = (1000.0f / 100.0f)*fValue;
+			fValue = (1000.0f / 100.0f) * fValue;
 		}
 		pDevice->floatValue = fValue;
 		break;
@@ -3135,7 +3159,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 		if (vUnits == "F")
 		{
 			//Convert to celcius
-			fValue = float((fValue - 32)*(5.0 / 9.0));
+			fValue = float((fValue - 32) * (5.0 / 9.0));
 		}
 		pDevice->bValidValue = (std::abs(pDevice->floatValue - fValue) < 10);
 		pDevice->floatValue = fValue;
@@ -3210,10 +3234,10 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 	case ZDTYPE_SENSOR_THERMOSTAT_CLOCK:
 		if (vLabel == "Minute")
 		{
-			COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+			COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 			if (!pNode)
 				return;
-			pDevice->intvalue = (pNode->tClockDay*(24 * 60)) + (pNode->tClockHour * 60) + pNode->tClockMinute;
+			pDevice->intvalue = (pNode->tClockDay * (24 * 60)) + (pNode->tClockHour * 60) + pNode->tClockMinute;
 		}
 		break;
 	case ZDTYPE_SENSOR_THERMOSTAT_MODE:
@@ -3221,7 +3245,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 			return;
 		if (vLabel == "Mode")
 		{
-			COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+			COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 			if (!pNode)
 				return;
 			pNode->tModes.clear();
@@ -3244,7 +3268,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
 			return;
 		if (vLabel == "Fan Mode")
 		{
-			COpenZWave::NodeInfo *pNode = GetNodeInfo(HomeID, NodeID);
+			COpenZWave::NodeInfo* pNode = GetNodeInfo(HomeID, NodeID);
 			if (!pNode)
 				return;
 			pNode->tFanModes.clear();
@@ -3367,7 +3391,7 @@ bool COpenZWave::HealNode(const int nodeID)
 	return true;
 }
 
-bool COpenZWave::NetworkInfo(const int hwID, std::vector< std::vector< int > > &NodeArray)
+bool COpenZWave::NetworkInfo(const int hwID, std::vector< std::vector< int > >& NodeArray)
 {
 	if (m_pManager == NULL) {
 		return false;
@@ -3386,7 +3410,7 @@ bool COpenZWave::NetworkInfo(const int hwID, std::vector< std::vector< int > > &
 		std::vector<std::string> sd = *itt;
 		int nodeID = atoi(sd[1].c_str());
 		unsigned int homeID = static_cast<unsigned int>(std::stoul(sd[0]));
-		NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+		NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 		if (pNode == NULL)
 			continue;
 
@@ -3423,7 +3447,7 @@ std::string COpenZWave::GetGroupName(const int nodeID, const int groupID)
 	return m_pManager->GetGroupLabel(m_controllerID, nodeID, groupID);
 }
 
-int COpenZWave::ListAssociatedNodesinGroup(const int nodeID, const int groupID, std::vector<std::string> &nodesingroup)
+int COpenZWave::ListAssociatedNodesinGroup(const int nodeID, const int groupID, std::vector<std::string>& nodesingroup)
 {
 
 	if (m_pManager == NULL)
@@ -3530,7 +3554,7 @@ bool COpenZWave::CancelControllerCommand(const bool bForce)
 	return m_pManager->CancelControllerCommand(m_controllerID);
 }
 
-void COpenZWave::GetConfigFile(std::string & filePath, std::string & fileContent)
+void COpenZWave::GetConfigFile(std::string& filePath, std::string& fileContent)
 {
 	std::string retstring = "";
 	if (m_pManager == NULL)
@@ -3618,7 +3642,7 @@ void COpenZWave::OnZWaveDeviceStatusUpdate(int _cs, int _err)
 
 void COpenZWave::EnableNodePoll(const unsigned int homeID, const int nodeID, const int pollTime)
 {
-	NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 	if (pNode == NULL)
 		return; //Not found
 
@@ -3763,7 +3787,7 @@ void COpenZWave::EnableNodePoll(const unsigned int homeID, const int nodeID, con
 
 void COpenZWave::DisableNodePoll(const unsigned int homeID, const int nodeID)
 {
-	NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 	if (pNode == NULL)
 		return; //Not found
 
@@ -3786,7 +3810,7 @@ void COpenZWave::DeleteNode(const unsigned int homeID, const int nodeID)
 		m_HwdID, homeID, nodeID);
 }
 
-void COpenZWave::AddNode(const unsigned int homeID, const int nodeID, const NodeInfo *pNode)
+void COpenZWave::AddNode(const unsigned int homeID, const int nodeID, const NodeInfo* pNode)
 {
 	if (m_controllerID == 0)
 		return;
@@ -3836,7 +3860,7 @@ std::string COpenZWave::GetVersionLong()
 	return m_pManager->getVersionLongAsString();
 }
 
-void COpenZWave::SetNodeName(const unsigned int homeID, const int nodeID, const std::string &Name)
+void COpenZWave::SetNodeName(const unsigned int homeID, const int nodeID, const std::string& Name)
 {
 	std::string NodeName = Name;
 	if (NodeName.size() > 16)
@@ -3869,7 +3893,7 @@ void COpenZWave::SetClock(const int nodeID, const int instanceID, const int comm
 {
 	//We have to set 3 values here (Later check if we can use COMMAND_CLASS_MULTI_CMD for this to do it in one)
 
-	NodeInfo *pNode = GetNodeInfo(m_controllerID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(m_controllerID, nodeID);
 	if (!pNode)
 		return;
 
@@ -4000,7 +4024,7 @@ std::string COpenZWave::GetSupportedThermostatFanModes(const unsigned long ID)
 
 void COpenZWave::NodeQueried(const unsigned int homeID, const int nodeID)
 {
-	NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 	if (pNode == NULL)
 		return;
 	//All nodes have been queried, enable/disable node polling
@@ -4010,19 +4034,19 @@ void COpenZWave::NodeQueried(const unsigned int homeID, const int nodeID)
 
 bool COpenZWave::RequestNodeConfig(const unsigned int homeID, const int nodeID)
 {
-	NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 	if (pNode == NULL)
 		return false;
 	m_pManager->RequestAllConfigParams(homeID, nodeID);
 	return true;
 }
 
-void COpenZWave::GetNodeValuesJson(const unsigned int homeID, const int nodeID, Json::Value &root, const int index)
+void COpenZWave::GetNodeValuesJson(const unsigned int homeID, const int nodeID, Json::Value& root, const int index)
 {
 	if (!m_pManager)
 		return;
 
-	NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 	if (pNode == NULL)
 		return;
 
@@ -4325,9 +4349,9 @@ void COpenZWave::GetNodeValuesJson(const unsigned int homeID, const int nodeID,
 
 }
 
-bool COpenZWave::ApplyNodeConfig(const unsigned int homeID, const int nodeID, const std::string &svaluelist)
+bool COpenZWave::ApplyNodeConfig(const unsigned int homeID, const int nodeID, const std::string& svaluelist)
 {
-	NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+	NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 	if (pNode == NULL)
 		return false;
 
@@ -4521,10 +4545,10 @@ bool COpenZWave::SetUserCodeEnrollmentMode()
 	return false;
 }
 
-bool COpenZWave::GetNodeUserCodes(const unsigned int homeID, const int nodeID, Json::Value &root)
+bool COpenZWave::GetNodeUserCodes(const unsigned int homeID, const int nodeID, Json::Value& root)
 {
 	int ii = 0;
-	COpenZWave::NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+	COpenZWave::NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 	if (!pNode)
 		return false;
 	if (pNode->Instances.find(1) == pNode->Instances.end())
@@ -4556,7 +4580,7 @@ bool COpenZWave::GetNodeUserCodes(const unsigned int homeID, const int nodeID, J
 
 bool COpenZWave::RemoveUserCode(const unsigned int homeID, const int nodeID, const int codeIndex)
 {
-	COpenZWave::NodeInfo *pNode = GetNodeInfo(homeID, nodeID);
+	COpenZWave::NodeInfo* pNode = GetNodeInfo(homeID, nodeID);
 	if (!pNode)
 		return false;
 	if (pNode->Instances.find(1) == pNode->Instances.end())
@@ -4610,19 +4634,19 @@ void COpenZWave::NightlyNodeHeal()
 //Webserver helpers
 namespace http {
 	namespace server {
-		void CWebServer::RType_OpenZWaveNodes(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::RType_OpenZWaveNodes(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			std::string hwid = request::findValue(&req, "idx");
 			if (hwid == "")
 				return;
 			int iHardwareID = atoi(hwid.c_str());
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(iHardwareID);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(iHardwareID);
 			if (pHardware == NULL)
 				return;
 			if (pHardware->HwdType != HTYPE_OpenZWave)
 				return;
 			m_ZW_Hwidx = iHardwareID;
-			COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+			COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 
 			root["status"] = "OK";
 			root["title"] = "OpenZWaveNodes";
@@ -4645,7 +4669,7 @@ namespace http {
 					int nodeID = atoi(sd[2].c_str());
 					//if (nodeID>1) //Don't include the controller
 					{
-						COpenZWave::NodeInfo *pNode = pOZWHardware->GetNodeInfo(homeID, nodeID);
+						COpenZWave::NodeInfo* pNode = pOZWHardware->GetNodeInfo(homeID, nodeID);
 						if (pNode == NULL)
 							continue;
 						root["result"][ii]["idx"] = sd[0];
@@ -4679,7 +4703,7 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveUpdateNode(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveUpdateNode(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -4714,17 +4738,17 @@ namespace http {
 				int hwid = atoi(result[0][0].c_str());
 				unsigned int homeID = static_cast<unsigned int>(std::stoul(result[0][1]));
 				int nodeID = atoi(result[0][2].c_str());
-				CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(hwid);
+				CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(hwid);
 				if (pHardware != NULL)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					pOZWHardware->SetNodeName(homeID, nodeID, name);
 					pOZWHardware->EnableDisableNodePolling(nodeID);
 				}
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveDeleteNode(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveDeleteNode(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -4742,10 +4766,10 @@ namespace http {
 				int hwid = atoi(result[0][0].c_str());
 				unsigned int homeID = static_cast<unsigned int>(std::stoul(result[0][1]));
 				int nodeID = atoi(result[0][2].c_str());
-				CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(hwid);
+				CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(hwid);
 				if (pHardware != NULL)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					pOZWHardware->RemoveFailedDevice(nodeID);
 					root["status"] = "OK";
 					root["title"] = "DeleteZWaveNode";
@@ -4755,7 +4779,7 @@ namespace http {
 
 		}
 
-		void CWebServer::Cmd_ZWaveInclude(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveInclude(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -4768,10 +4792,10 @@ namespace http {
 				return;
 			std::string ssecure = request::findValue(&req, "secure");
 			bool bSecure = (ssecure == "true");
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				m_sql.AllowNewHardwareTimer(5);
 				pOZWHardware->IncludeDevice(bSecure);
 				root["status"] = "OK";
@@ -4779,7 +4803,7 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveExclude(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveExclude(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -4790,25 +4814,25 @@ namespace http {
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				pOZWHardware->ExcludeDevice(1);
 				root["status"] = "OK";
 				root["title"] = "ZWaveExclude";
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveIsNodeIncluded(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveIsNodeIncluded(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				root["status"] = "OK";
 				root["title"] = "ZWaveIsNodeIncluded";
 				bool bIsIncluded = pOZWHardware->IsNodeIncluded();
@@ -4818,7 +4842,7 @@ namespace http {
 					root["node_id"] = pOZWHardware->m_LastIncludedNode;
 					root["node_type"] = pOZWHardware->m_LastIncludedNodeType;
 					std::string productName("Unknown");
-					COpenZWave::NodeInfo *pNode = pOZWHardware->GetNodeInfo(pOZWHardware->GetControllerID(), pOZWHardware->m_LastIncludedNode);
+					COpenZWave::NodeInfo* pNode = pOZWHardware->GetNodeInfo(pOZWHardware->GetControllerID(), pOZWHardware->m_LastIncludedNode);
 					if (pNode)
 					{
 						productName = pNode->Product_name;
@@ -4828,15 +4852,15 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveIsNodeExcluded(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveIsNodeExcluded(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				root["status"] = "OK";
 				root["title"] = "ZWaveIsNodeExcluded";
 				root["result"] = pOZWHardware->IsNodeExcluded();
@@ -4844,7 +4868,7 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveSoftReset(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveSoftReset(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -4855,17 +4879,17 @@ namespace http {
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				pOZWHardware->SoftResetDevice();
 				root["status"] = "OK";
 				root["title"] = "ZWaveSoftReset";
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveHardReset(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveHardReset(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -4876,26 +4900,26 @@ namespace http {
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				pOZWHardware->HardResetDevice();
 				root["status"] = "OK";
 				root["title"] = "ZWaveHardReset";
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveStateCheck(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveStateCheck(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			root["title"] = "ZWaveStateCheck";
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				if (!pOZWHardware->GetFailedState()) {
 					root["status"] = "OK";
 				}
@@ -4903,7 +4927,7 @@ namespace http {
 			return;
 		}
 
-		void CWebServer::Cmd_ZWaveNetworkHeal(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveNetworkHeal(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -4914,17 +4938,17 @@ namespace http {
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				pOZWHardware->HealNetwork();
 				root["status"] = "OK";
 				root["title"] = "ZWaveHealNetwork";
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveNodeHeal(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveNodeHeal(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -4938,17 +4962,17 @@ namespace http {
 			std::string node = request::findValue(&req, "node");
 			if (node == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				pOZWHardware->HealNode(atoi(node.c_str()));
 				root["status"] = "OK";
 				root["title"] = "ZWaveHealNode";
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveNetworkInfo(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveNetworkInfo(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -4962,10 +4986,10 @@ namespace http {
 			if (idx == "")
 				return;
 			int hwID = atoi(idx.c_str());
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(hwID);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(hwID);
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				std::vector< std::vector< int > > nodevectors;
 
 				if (pOZWHardware->NetworkInfo(hwID, nodevectors)) {
@@ -5009,7 +5033,7 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveRemoveGroupNode(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveRemoveGroupNode(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -5029,10 +5053,10 @@ namespace http {
 			std::string removenode = request::findValue(&req, "removenode");
 			if (removenode == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				int nodeId = 0, instance = 0;
 				sscanf(removenode.c_str(), "%d.%d", &nodeId, &instance);
 				pOZWHardware->RemoveNodeFromGroup(atoi(node.c_str()), atoi(group.c_str()), nodeId, instance);
@@ -5041,7 +5065,7 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveAddGroupNode(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveAddGroupNode(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -5061,10 +5085,10 @@ namespace http {
 			std::string addnode = request::findValue(&req, "addnode");
 			if (addnode == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				int nodeId = 0, instance = 0;
 				sscanf(addnode.c_str(), "%d.%d", &nodeId, &instance);
 				pOZWHardware->AddNodeToGroup(atoi(node.c_str()), atoi(group.c_str()), nodeId, instance);
@@ -5073,17 +5097,17 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveGroupInfo(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveGroupInfo(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
 			int iHardwareID = atoi(idx.c_str());
 
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 
 				std::vector<std::vector<std::string> > result;
 				result = m_sql.safe_query("SELECT ID,HomeID,NodeID,Name FROM ZWaveNodes WHERE (HardwareID==%d)",
@@ -5099,7 +5123,7 @@ namespace http {
 						std::vector<std::string> sd = *itt;
 						unsigned int homeID = static_cast<unsigned int>(std::stoul(sd[1]));
 						int nodeID = atoi(sd[2].c_str());
-						COpenZWave::NodeInfo *pNode = pOZWHardware->GetNodeInfo(homeID, nodeID);
+						COpenZWave::NodeInfo* pNode = pOZWHardware->GetNodeInfo(homeID, nodeID);
 						if (pNode == NULL)
 							continue;
 						std::string nodeName = sd[3].c_str();
@@ -5143,22 +5167,22 @@ namespace http {
 			root["title"] = "ZWaveGroupInfo";
 		}
 
-		void CWebServer::Cmd_ZWaveCancel(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveCancel(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				pOZWHardware->CancelControllerCommand(true);
 				root["status"] = "OK";
 				root["title"] = "ZWaveCancel";
 			}
 		}
 
-		void CWebServer::Cmd_ApplyZWaveNodeConfig(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ApplyZWaveNodeConfig(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -5180,10 +5204,10 @@ namespace http {
 				int hwid = atoi(result[0][0].c_str());
 				unsigned int homeID = static_cast<unsigned int>(std::stoul(result[0][1]));
 				int nodeID = atoi(result[0][2].c_str());
-				CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(hwid);
+				CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(hwid);
 				if (pHardware != NULL)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					if (!pOZWHardware->ApplyNodeConfig(homeID, nodeID, svaluelist))
 						return;
 					root["status"] = "OK";
@@ -5192,7 +5216,7 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveRequestNodeConfig(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveRequestNodeConfig(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
@@ -5204,10 +5228,10 @@ namespace http {
 				int hwid = atoi(result[0][0].c_str());
 				unsigned int homeID = static_cast<unsigned int>(std::stoul(result[0][1]));
 				int nodeID = atoi(result[0][2].c_str());
-				CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(hwid);
+				CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(hwid);
 				if (pHardware != NULL)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					pOZWHardware->RequestNodeConfig(homeID, nodeID);
 					root["status"] = "OK";
 					root["title"] = "RequestZWaveNodeConfig";
@@ -5215,7 +5239,7 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveReceiveConfigurationFromOtherController(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveReceiveConfigurationFromOtherController(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -5226,17 +5250,17 @@ namespace http {
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				pOZWHardware->ReceiveConfigurationFromOtherController();
 				root["status"] = "OK";
 				root["title"] = "ZWaveReceiveConfigurationFromOtherController";
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveSendConfigurationToSecondaryController(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveSendConfigurationToSecondaryController(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -5247,17 +5271,17 @@ namespace http {
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				pOZWHardware->SendConfigurationToSecondaryController();
 				root["status"] = "OK";
 				root["title"] = "ZWaveSendConfigToSecond";
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveTransferPrimaryRole(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveTransferPrimaryRole(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -5268,27 +5292,27 @@ namespace http {
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				pOZWHardware->TransferPrimaryRole();
 				root["status"] = "OK";
 				root["title"] = "ZWaveTransferPrimaryRole";
 			}
 		}
-		void CWebServer::ZWaveGetConfigFile(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveGetConfigFile(WebEmSession& session, const request& req, reply& rep)
 		{
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
 
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::string configFilePath = "";
 					pOZWHardware->GetConfigFile(configFilePath, rep.content);
 					if (!configFilePath.empty() && !rep.content.empty()) {
@@ -5305,28 +5329,28 @@ namespace http {
 				}
 			}
 		}
-		void CWebServer::ZWaveCPIndex(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPIndex(WebEmSession& session, const request& req, reply& rep)
 		{
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					pOZWHardware->m_ozwcp.SetAllNodesChanged();
 					std::string wwwFile = szWWWFolder + "/ozwcp/cp.html";
 					reply::set_content_from_file(&rep, wwwFile);
 				}
 			}
 		}
-		void CWebServer::ZWaveCPPollXml(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPPollXml(WebEmSession& session, const request& req, reply& rep)
 		{
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.SendPollResponse());
@@ -5334,7 +5358,7 @@ namespace http {
 				}
 			}
 		}
-		void CWebServer::ZWaveCPNodeGetConf(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPNodeGetConf(WebEmSession& session, const request& req, reply& rep)
 		{
 			if (req.content.find("node") == std::string::npos)
 				return;
@@ -5344,18 +5368,18 @@ namespace http {
 			if (sNode == "")
 				return;
 			int iNode = atoi(sNode.c_str());
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.SendNodeConfResponse(iNode));
 				}
 			}
 		}
-		void CWebServer::ZWaveCPNodeGetValues(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPNodeGetValues(WebEmSession& session, const request& req, reply& rep)
 		{
 			if (req.content.find("node") == std::string::npos)
 				return;
@@ -5365,54 +5389,54 @@ namespace http {
 			if (sNode == "")
 				return;
 			int iNode = atoi(sNode.c_str());
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.SendNodeValuesResponse(iNode));
 				}
 			}
 		}
-		void CWebServer::ZWaveCPNodeSetValue(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPNodeSetValue(WebEmSession& session, const request& req, reply& rep)
 		{
 			std::vector<std::string> strarray;
 			StringSplit(req.content, "=", strarray);
 			if (strarray.size() != 2)
 				return;
 
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.SetNodeValue(strarray[0], strarray[1]));
 				}
 			}
 		}
-		void CWebServer::ZWaveCPNodeSetButton(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPNodeSetButton(WebEmSession& session, const request& req, reply& rep)
 		{
 			std::vector<std::string> strarray;
 			StringSplit(req.content, "=", strarray);
 			if (strarray.size() != 2)
 				return;
 
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.SetNodeButton(strarray[0], strarray[1]));
 				}
 			}
 		}
-		void CWebServer::ZWaveCPAdminCommand(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPAdminCommand(WebEmSession& session, const request& req, reply& rep)
 		{
 			if (req.content.find("fun") == std::string::npos)
 				return;
@@ -5427,18 +5451,18 @@ namespace http {
 				sNode = sNode.substr(4);
 			}
 
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.DoAdminCommand(sFun, atoi(sNode.c_str()), atoi(sButton.c_str())));
 				}
 			}
 		}
-		void CWebServer::ZWaveCPNodeChange(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPNodeChange(WebEmSession& session, const request& req, reply& rep)
 		{
 			if (req.content.find("fun") == std::string::npos)
 				return;
@@ -5451,18 +5475,18 @@ namespace http {
 			if (sNode.size() > 4)
 				sNode = sNode.substr(4);
 
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.DoNodeChange(sFun, atoi(sNode.c_str()), sValue));
 				}
 			}
 		}
-		void CWebServer::ZWaveCPSetGroup(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPSetGroup(WebEmSession& session, const request& req, reply& rep)
 		{
 			if (req.content.find("fun") == std::string::npos)
 				return;
@@ -5478,12 +5502,12 @@ namespace http {
 
 			if (!sNode.empty() && !sGroup.empty() && !glist.empty())
 			{
-				CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+				CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 				if (pHardware != NULL)
 				{
 					if (pHardware->HwdType == HTYPE_OpenZWave)
 					{
-						COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+						COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 						std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 						reply::set_content(&rep, pOZWHardware->m_ozwcp.UpdateGroup(sFun, atoi(sNode.c_str()), atoi(sGroup.c_str()), glist));
 					}
@@ -5491,48 +5515,48 @@ namespace http {
 			}
 		}
 
-		void CWebServer::ZWaveCPSaveConfig(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPSaveConfig(WebEmSession& session, const request& req, reply& rep)
 		{
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.SaveConfig());
 				}
 			}
 		}
-		void CWebServer::ZWaveCPGetTopo(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPGetTopo(WebEmSession& session, const request& req, reply& rep)
 		{
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.GetCPTopo());
 					reply::add_header_attachment(&rep, "topo.xml");
 				}
 			}
 		}
-		void CWebServer::ZWaveCPGetStats(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPGetStats(WebEmSession& session, const request& req, reply& rep)
 		{
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.GetCPStats());
 					reply::add_header_attachment(&rep, "stats.xml");
 				}
 			}
 		}
-		void CWebServer::ZWaveCPSceneCommand(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPSceneCommand(WebEmSession& session, const request& req, reply& rep)
 		{
 			if (req.content.find("fun") == std::string::npos)
 				return;
@@ -5544,19 +5568,19 @@ namespace http {
 			std::string sLabel = request::findValue(&values, "label");
 			std::string sArg3 = (!sVid.empty()) ? sVid : sLabel;
 			std::string sArg4 = request::findValue(&values, "value");
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware != NULL)
 			{
 				if (pHardware->HwdType == HTYPE_OpenZWave)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 					reply::set_content(&rep, pOZWHardware->m_ozwcp.DoSceneCommand(sArg1, sArg2, sArg3, sArg4));
 				}
 			}
 		}
 
-		void CWebServer::ZWaveCPTestHeal(WebEmSession & session, const request& req, reply & rep)
+		void CWebServer::ZWaveCPTestHeal(WebEmSession& session, const request& req, reply& rep)
 		{
 			if (session.rights != 2)
 			{
@@ -5570,14 +5594,14 @@ namespace http {
 			request::makeValuesFromPostContent(&req, values);
 			std::string sFun = request::findValue(&values, "fun");
 
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(m_ZW_Hwidx);
 			if (pHardware == NULL)
 				return;
-			COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+			COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 
 			if (pHardware->HwdType == HTYPE_OpenZWave)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				std::lock_guard<std::mutex> l(pOZWHardware->m_NotificationMutex);
 
 				if (sFun == "test")
@@ -5605,7 +5629,7 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveSetUserCodeEnrollmentMode(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveSetUserCodeEnrollmentMode(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -5616,17 +5640,17 @@ namespace http {
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
 				return;
-			CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
+			CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(atoi(idx.c_str()));
 			if (pHardware != NULL)
 			{
-				COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+				COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 				root["status"] = "OK";
 				root["title"] = "SetUserCodeEnrollmentMode";
 				pOZWHardware->SetUserCodeEnrollmentMode();
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveRemoveUserCode(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveRemoveUserCode(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			if (session.rights != 2)
 			{
@@ -5650,10 +5674,10 @@ namespace http {
 				int hwid = atoi(result[0][0].c_str());
 				unsigned int homeID = static_cast<unsigned int>(std::stoul(result[0][1]));
 				int nodeID = atoi(result[0][2].c_str());
-				CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(hwid);
+				CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(hwid);
 				if (pHardware != NULL)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					if (!pOZWHardware->RemoveUserCode(homeID, nodeID, iCodeIndex))
 						return;
 					root["status"] = "OK";
@@ -5662,7 +5686,7 @@ namespace http {
 			}
 		}
 
-		void CWebServer::Cmd_ZWaveGetNodeUserCodes(WebEmSession & session, const request& req, Json::Value &root)
+		void CWebServer::Cmd_ZWaveGetNodeUserCodes(WebEmSession& session, const request& req, Json::Value& root)
 		{
 			std::string idx = request::findValue(&req, "idx");
 			if (idx == "")
@@ -5675,10 +5699,10 @@ namespace http {
 				int hwid = atoi(result[0][0].c_str());
 				unsigned int homeID = static_cast<unsigned int>(std::stoul(result[0][1]));
 				int nodeID = atoi(result[0][2].c_str());
-				CDomoticzHardwareBase *pHardware = m_mainworker.GetHardware(hwid);
+				CDomoticzHardwareBase* pHardware = m_mainworker.GetHardware(hwid);
 				if (pHardware != NULL)
 				{
-					COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
+					COpenZWave* pOZWHardware = (COpenZWave*)pHardware;
 					if (!pOZWHardware->GetNodeUserCodes(homeID, nodeID, root))
 						return;
 					root["status"] = "OK";
diff --git a/hardware/openzwave/Bitfield.h b/hardware/openzwave/Bitfield.h
index 4c0797723c..4cb1ad123f 100644
--- a/hardware/openzwave/Bitfield.h
+++ b/hardware/openzwave/Bitfield.h
@@ -33,127 +33,51 @@
 
 namespace OpenZWave
 {
-	class OPENZWAVE_EXPORT Bitfield
+class OPENZWAVE_EXPORT Bitfield
+{
+	friend class Iterator;
+
+public:
+	Bitfield();
+	Bitfield(uint32 value);
+	~Bitfield();
+	bool Set( uint8 _idx );
+	bool Clear( uint8 _idx );
+	bool IsSet( uint8 _idx ) const;
+	uint32 GetNumSetBits() const;
+	uint32 GetValue() const;
+	bool SetValue(uint32 val);
+	uint32 GetSize() const;
+	class Iterator
 	{
-		friend class Iterator;
+		friend class Bitfield;
 
 	public:
-		Bitfield():m_numSetBits(0){}
-		~Bitfield(){}
-
-		void Set( uint32 _idx )
-		{
-			if( !IsSet(_idx) )
-			{
-				uint32 newSize = (_idx>>5)+1;
-				if( newSize > m_bits.size() )
-				{
-					m_bits.resize( newSize, 0 );
-				}
-				m_bits[_idx>>5] |= (1<<(_idx&0x1f));
-				++m_numSetBits;
-			}
-		}
-
-		void Clear( uint32 _idx )
-		{
-			if( IsSet(_idx) )
-			{
-				m_bits[_idx>>5] &= ~(1<<(_idx&0x1f));
-				--m_numSetBits;
-			}
-		}
-
-		bool IsSet( uint32 _idx )const
-		{
-			if( (_idx>>5) < m_bits.size() )
-			{
-				return( ( m_bits[_idx>>5] & (1<<(_idx&0x1f)) ) !=0 );
-			}
-			return false;
-		}
-
-		uint32 GetNumSetBits()const{ return m_numSetBits; }
-
-		class Iterator
-		{
-			friend class Bitfield;
-
-		public:
-			uint32 operator *() const
-			{
-				return m_idx;
-			}
-
-			Iterator& operator++()
-			{
-				// Search forward to next set bit
-				NextSetBit();
-			  	return *this;
-			}
+		uint32 operator *() const;
+		Iterator& operator++();
+		Iterator operator++(int);
 
-			Iterator operator++(int)
-			{
-				Iterator tmp = *this;
-				++tmp;
-				return tmp;
-			}
-
-			bool operator ==(const Iterator &rhs)
-			{
-				return m_idx == rhs.m_idx;
-			}
-
-			bool operator !=(const Iterator &rhs)
-			{
-				return m_idx != rhs.m_idx;
-			}
-
-		private:
-			Iterator( Bitfield const* _bitfield, uint32 _idx ): m_idx( _idx ), m_bitfield( _bitfield )
-			{
-				// If this is a begin iterator, move it to the first set bit
-				if( ( _idx == 0 ) && ( !m_bitfield->IsSet(0) ) )
-				{
-					NextSetBit();
-				}
-			}
+		bool operator ==(const Iterator &rhs);
+		bool operator !=(const Iterator &rhs);
+	private:
+		Iterator( Bitfield const* _bitfield, uint32 _idx );
 
-			void NextSetBit()
-			{
-				while( ((++m_idx)>>5)<m_bitfield->m_bits.size() )
-				{
-					// See if there are any bits left to find in the current uint32
-					if( ( m_bitfield->m_bits[m_idx>>5] & ~((1<<(m_idx&0x1f))-1) ) == 0 )
-					{
-						// No more bits - move on to next uint32 (or rather one less than 
-						// the next uint32 because of the preincrement in the while statement)
-						m_idx = (m_idx&0xffffffe0)+31;
-					}
-					else
-					{
-						if( (m_bitfield->m_bits[m_idx>>5] & (1<<(m_idx&0x1f))) !=0 )
-						{
-							// This bit is set
-							return;
-						}
-					}
-				}
-			}
+		void NextSetBit();
 
-			uint32				m_idx;
-			Bitfield const*		m_bitfield;
-		};
+		uint32				m_idx;
+		Bitfield const*		m_bitfield;
+	};
 
-		Iterator Begin()const{ return Iterator( this, 0 ); }
-		Iterator End()const{ return Iterator( this, (uint32) m_bits.size()<<5 ); }
+	Iterator Begin() const;
+	Iterator End() const;
 
-	private:
-OPENZWAVE_EXPORT_WARNINGS_OFF
-		vector<uint32>	m_bits;
-OPENZWAVE_EXPORT_WARNINGS_ON
-		uint32			m_numSetBits;
-	};
+private:
+	OPENZWAVE_EXPORT_WARNINGS_OFF
+	vector<uint32>	m_bits;
+	OPENZWAVE_EXPORT_WARNINGS_ON
+	uint32			m_numSetBits;
+	uint32			m_value;
+};
 } // namespace OpenZWave
 
 #endif
diff --git a/hardware/openzwave/CompatOptionManager.h b/hardware/openzwave/CompatOptionManager.h
new file mode 100644
index 0000000000..c94a1e3eae
--- /dev/null
+++ b/hardware/openzwave/CompatOptionManager.h
@@ -0,0 +1,141 @@
+//-----------------------------------------------------------------------------
+//
+//	CompatOptionManager.h
+//
+//	Handles Compatibility Flags in Config Files
+//
+//	Copyright (c) 2019 Justin Hammond <justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef CPP_SRC_COMPATOPTIONMANAGER_H_
+#define CPP_SRC_COMPATOPTIONMANAGER_H_
+
+#include "Defs.h"
+#include "tinyxml.h"
+
+#include <map>
+
+namespace OpenZWave {
+
+enum CompatOptionFlags
+{
+	COMPAT_FLAG_GETSUPPORTED,
+	COMPAT_FLAG_OVERRIDEPRECISION,
+	COMPAT_FLAG_FORCEVERSION,
+	COMPAT_FLAG_CREATEVARS,
+	COMPAT_FLAG_REFRESHONWAKEUP,
+	COMPAT_FLAG_BASIC_IGNOREREMAPPING,
+	COMPAT_FLAG_BASIC_SETASREPORT,
+	COMPAT_FLAG_BASIC_MAPPING,
+	COMPAT_FLAG_COLOR_IDXBUG,
+	COMPAT_FLAG_MCA_FORCEINSTANCES,
+	COMPAT_FLAG_MI_MAPROOTTOENDPOINT,
+	COMPAT_FLAG_MI_FORCEUNIQUEENDPOINTS,
+	COMPAT_FLAG_MI_IGNMCCAPREPORTS,
+	COMPAT_FLAG_MI_ENDPOINTHINT,
+	COMPAT_FLAG_TSSP_BASE,
+	COMPAT_FLAG_TSSP_ALTTYPEINTERPRETATION,
+	COMPAT_FLAG_UC_EXPOSERAWVALUE,
+	COMPAT_FLAG_VERSION_GETCLASSVERSION,
+	COMPAT_FLAG_WAKEUP_DELAYNMI,
+	STATE_FLAG_CCVERSION,
+	STATE_FLAG_STATIC_REQUESTS,
+	STATE_FLAG_AFTERMARK,
+	STATE_FLAG_ENCRYPTED,
+	STATE_FLAG_INNIF,
+	STATE_FLAG_CS_SCENECOUNT,
+	STATE_FLAG_CS_CLEARTIMEOUT,
+	STATE_FLAG_CCS_CHANGECOUNTER,
+	STATE_FLAG_COLOR_CHANNELS,
+	STATE_FLAG_DOORLOCK_TIMEOUT,
+	STATE_FLAG_DOORLOCK_INSIDEMODE,
+	STATE_FLAG_DOORLOCK_OUTSIDEMODE,
+	STATE_FLAG_DOORLOCK_TIMEOUTMINS,
+	STATE_FLAG_DOORLOCK_TIMEOUTSECS,
+	STATE_FLAG_DOORLOCKLOG_MAXRECORDS,
+	STATE_FLAG_USERCODE_COUNT,
+};
+
+enum CompatOptionFlagType
+{
+	COMPAT_FLAG_TYPE_BOOL,
+	COMPAT_FLAG_TYPE_BYTE,
+	COMPAT_FLAG_TYPE_SHORT,
+	COMPAT_FLAG_TYPE_INT
+};
+
+enum CompatOptionType
+{
+	CompatOptionType_Compatibility,
+	CompatOptionType_Discovery
+};
+
+struct CompatOptionFlagStorage {
+	CompatOptionFlags flag;
+	CompatOptionFlagType type;
+	bool changed;
+	union {
+		bool valBool;
+		uint8_t valByte;
+		uint16_t valShort;
+		uint32_t valInt;
+	};
+};
+
+struct CompatOptionFlagDefintions {
+	string name;
+	CompatOptionFlags flag;
+	CompatOptionFlagType type;
+};
+
+class CommandClass;
+class CompatOptionManager {
+public:
+	CompatOptionManager(CompatOptionType type, CommandClass *cc);
+	virtual ~CompatOptionManager();
+
+	void SetNodeAndCC(uint8_t node, uint8_t cc);
+	void EnableFlag(CompatOptionFlags flag, uint32_t defaultval);
+
+	void ReadXML( TiXmlElement const* _ccElement );
+	void WriteXML( TiXmlElement* _ccElement );
+	bool GetFlagBool(CompatOptionFlags flag) const;
+	uint8_t GetFlagByte(CompatOptionFlags flag) const;
+	uint16_t GetFlagShort(CompatOptionFlags flag) const;
+	uint32_t GetFlagInt(CompatOptionFlags flag) const;
+	bool SetFlagBool(CompatOptionFlags flag, bool value);
+	bool SetFlagByte(CompatOptionFlags flag, uint8_t value);
+	bool SetFlagShort(CompatOptionFlags flag, uint16_t value);
+	bool SetFlagInt(CompatOptionFlags flag, uint32_t value);
+private:
+	string GetFlagName(CompatOptionFlags flag) const;
+	string GetXMLTagName();
+	map<CompatOptionFlags, CompatOptionFlagStorage> m_CompatVals;
+	map<string, CompatOptionFlags> m_enabledCompatFlags;
+	CommandClass *m_owner;
+	CompatOptionType m_comtype;
+	CompatOptionFlagDefintions *m_availableFlags;
+	uint32_t m_availableFlagsCount;
+};
+
+} /* namespace OpenZWave */
+
+#endif /* CPP_SRC_COMPATOPTIONMANAGER_H_ */
diff --git a/hardware/openzwave/DNSThread.h b/hardware/openzwave/DNSThread.h
new file mode 100644
index 0000000000..1de524af62
--- /dev/null
+++ b/hardware/openzwave/DNSThread.h
@@ -0,0 +1,101 @@
+//-----------------------------------------------------------------------------
+//
+//	DNSThread.h
+//
+//	Async DNS Lookups
+//
+//	Copyright (c) 2016 Justin Hammond <justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef _DNSThread_H
+#define _DNSThread_H
+
+#include <string>
+#include <map>
+#include <list>
+
+#include "Defs.h"
+#include "Driver.h"
+#include "platform/Event.h"
+#include "platform/Mutex.h"
+#include "platform/TimeStamp.h"
+#include "platform/DNS.h"
+
+namespace OpenZWave
+{
+	class Event;
+	class Mutex;
+	class Controller;
+	class Thread;
+
+
+	enum LookupType {
+		DNS_Lookup_ConfigRevision = 1
+	};
+
+	struct DNSLookup {
+			uint8 NodeID;
+			string lookup;
+			string result;
+			DNSError status;
+			LookupType type;
+
+	};
+
+
+	/** \brief the DNSThread provides Async DNS lookups for checking revision numbers of
+	 *  Config Files against the official database
+	 */
+	class OPENZWAVE_EXPORT DNSThread
+	{
+			friend class Driver;
+		private:
+			DNSThread(Driver *);
+			virtual ~DNSThread();
+
+			/**
+			 *  Entry point for DNSThread
+			 */
+			static void DNSThreadEntryPoint( Event* _exitEvent, void* _context );
+			/**
+			 *  DNSThreadProc for DNSThread.  This is where all the "action" takes place.
+			 */
+			void DNSThreadProc( Event* _exitEvent );
+
+			/* submit a Request to the DNS List */
+			bool sendRequest(DNSLookup *);
+
+			/* process the most recent request recieved */
+			void processResult();
+
+			Driver*			  m_driver;
+			Mutex*			  m_dnsMutex;
+			list<DNSLookup *> m_dnslist;
+			list<DNSLookup *> m_dnslistinprogress;
+			Event*			  m_dnsRequestEvent;
+			DNS				  m_dnsresolver;
+
+
+	}; /* class DNSThread */
+} /* namespace OpenZWave */
+
+
+#endif
diff --git a/hardware/openzwave/Defs.h b/hardware/openzwave/Defs.h
index b6934fda73..386573b0fa 100644
--- a/hardware/openzwave/Defs.h
+++ b/hardware/openzwave/Defs.h
@@ -33,7 +33,6 @@
 #include <stdint.h>
 
 
-
 // Compilation export flags
 #if (defined _WINDOWS || defined WIN32 || defined _MSC_VER) && (!defined MINGW && !defined __MINGW32__ && !defined __MINGW64__)
 #	if defined OPENZWAVE_MAKEDLL	// Create the dynamic library.
@@ -64,6 +63,22 @@
 #endif
 
 
+#ifdef _MSC_VER
+#define OPENZWAVE_DEPRECATED_WARNINGS_OFF 	__pragma( warning(push) )\
+                                                __pragma( warning(disable: 4996) )
+#else
+#define OPENZWAVE_DEPRECATED_WARNINGS_OFF 	_Pragma ( "GCC diagnostic push" )\
+                                                _Pragma ( "GCC diagnostic ignored \"-Wdeprecated-declarations\"" )
+#endif
+
+#ifdef _MSC_VER
+#define OPENZWAVE_DEPRECATED_WARNINGS_ON 	__pragma( warning(pop) )
+#else
+#define OPENZWAVE_DEPRECATED_WARNINGS_ON 	_Pragma ( "GCC diagnostic pop" )
+#endif
+
+
+
 #ifdef NULL
 #undef NULL
 #endif
@@ -146,14 +161,13 @@ static inline int version_cmp(struct ozwversion a, struct ozwversion b)
 }
 
 #include "OZWException.h"
-#define OPENZWAVE_DISABLE_EXCEPTIONS
 #if defined(_MSC_VER)
 #  define __MYFUNCTION__ __FUNCTION__
 #else
 #  define __MYFUNCTION__ __FILE__
 #endif
-// Exceptions : define OPENZWAVE_DISABLE_EXCEPTIONS in compiler flags to enable exceptions instead of exit function
-#ifndef OPENZWAVE_DISABLE_EXCEPTIONS
+// Exceptions : define OPENZWAVE_ENABLE_EXCEPTIONS in compiler flags to enable exceptions instead of exit function
+#ifdef OPENZWAVE_ENABLE_EXCEPTIONS
 
 #  define OZW_FATAL_ERROR(exitCode, msg)   	Log::Write( LogLevel_Error,"Exception: %s:%d - %d - %s", std::string(__MYFUNCTION__).substr(std::string(__MYFUNCTION__).find_last_of("/\\") + 1).c_str(), __LINE__, exitCode, msg); \
 											throw OZWException(__MYFUNCTION__, __LINE__, exitCode, msg)
@@ -189,6 +203,9 @@ namespace OpenZWave
 #define strcasecmp _stricmp
 #define sscanf sscanf_s
 #define strncpy strncpy_s
+#define strncat strncat_s
+
+
 
 #endif
 
@@ -239,6 +256,7 @@ namespace OpenZWave
 #define TRANSMIT_COMPLETE_FAIL							0x02
 #define TRANSMIT_COMPLETE_NOT_IDLE						0x03
 #define TRANSMIT_COMPLETE_NOROUTE 						0x04
+#define TRANSMIT_COMPLETE_VERIFIED						0x05
 
 #define RECEIVE_STATUS_ROUTED_BUSY						0x01
 #define RECEIVE_STATUS_TYPE_BROAD	 					0x04
@@ -251,6 +269,8 @@ namespace OpenZWave
 #define FUNC_ID_SERIAL_API_GET_CAPABILITIES				0x07
 #define FUNC_ID_SERIAL_API_SOFT_RESET					0x08
 
+#define FUNC_ID_SERIAL_API_SETUP						0x0b
+
 #define FUNC_ID_ZW_SEND_NODE_INFORMATION				0x12
 #define FUNC_ID_ZW_SEND_DATA							0x13
 #define FUNC_ID_ZW_GET_VERSION							0x15
@@ -298,6 +318,23 @@ namespace OpenZWave
 #define FUNC_ID_ZW_SET_PROMISCUOUS_MODE					0xD0	// Set controller into promiscuous mode to listen to all frames
 #define FUNC_ID_PROMISCUOUS_APPLICATION_COMMAND_HANDLER	0xD1
 
+#define FUNC_ID_PROPRIETARY_0                           0xF0
+#define FUNC_ID_PROPRIETARY_1                           0xF1
+#define FUNC_ID_PROPRIETARY_2                           0xF2
+#define FUNC_ID_PROPRIETARY_3                           0xF3
+#define FUNC_ID_PROPRIETARY_4                           0xF4
+#define FUNC_ID_PROPRIETARY_5                           0xF5
+#define FUNC_ID_PROPRIETARY_6                           0xF6
+#define FUNC_ID_PROPRIETARY_7                           0xF7
+#define FUNC_ID_PROPRIETARY_8                           0xF8
+#define FUNC_ID_PROPRIETARY_9                           0xF9
+#define FUNC_ID_PROPRIETARY_A                           0xFA
+#define FUNC_ID_PROPRIETARY_B                           0xFB
+#define FUNC_ID_PROPRIETARY_C                           0xFC
+#define FUNC_ID_PROPRIETARY_D                           0xFD
+#define FUNC_ID_PROPRIETARY_E                           0xFE
+
+
 #define ADD_NODE_ANY									0x01
 #define ADD_NODE_CONTROLLER								0x02
 #define ADD_NODE_SLAVE									0x03
@@ -397,4 +434,43 @@ namespace OpenZWave
 #define COMMAND_CLASS_APPLICATION_STATUS 				0x22
 #define COMMAND_CLASS_HAIL								0x82
 
+/* library types */
+#define ZW_LIB_CONTROLLER_STATIC  						0x01
+#define ZW_LIB_CONTROLLER         						0x02
+#define ZW_LIB_SLAVE_ENHANCED     						0x03
+#define ZW_LIB_SLAVE              						0x04
+#define ZW_LIB_INSTALLER          						0x05
+#define ZW_LIB_SLAVE_ROUTING      						0x06
+#define ZW_LIB_CONTROLLER_BRIDGE  						0x07
+#define ZW_LIB_DUT                						0x08
+
+/* Serial API Setup Commands */
+#define SERIAL_API_SETUP_CMD_TX_STATUS_REPORT			0x02
+#define SERIAL_API_SETUP_CMD_TX_POWERLEVEL_SET 			0x04
+#define SERIAL_API_SETUP_CMD_TX_POWERLEVEL_GET 			0x08
+#define SERIAL_API_SETUP_CMD_TX_GET_MAX_PAYLOAD_SIZE	0x10
+
+/* RouteScheme Definitions */
+typedef enum TXSTATUS_ROUTING_SCHEME
+{
+  ROUTINGSCHEME_IDLE = 0,
+  ROUTINGSCHEME_DIRECT = 1,
+  ROUTINGSCHEME_CACHED_ROUTE_SR = 2,
+  ROUTINGSCHEME_CACHED_ROUTE = 3,
+  ROUTINGSCHEME_CACHED_ROUTE_NLWR = 4,
+  ROUTINGSCHEME_ROUTE = 5,
+  ROUTINGSCHEME_RESORT_DIRECT = 6,
+  ROUTINGSCHEME_RESORT_EXPLORE = 7
+} TXSTATUS_ROUTING_SCHEME;
+
+/* RouteSpeed Definitions */
+typedef enum TXSTATUS_ROUTE_SPEED
+{
+	ROUTE_SPEED_AUTO = 0,
+	ROUTE_SPEED_9600 = 1,
+	ROUTE_SPEED_40K = 2,
+	ROUTE_SPEED_100K = 3,
+} TXSTATUS_ROUTE_SPEED;
+
+
 #endif // _Defs_H
diff --git a/hardware/openzwave/Driver.h b/hardware/openzwave/Driver.h
index ff325de529..3a3a9bf356 100644
--- a/hardware/openzwave/Driver.h
+++ b/hardware/openzwave/Driver.h
@@ -51,6 +51,12 @@ namespace OpenZWave
 	class Thread;
 	class ControllerReplication;
 	class Notification;
+	class DNSThread;
+	struct DNSLookup;
+	class TimerThread;
+	class i_HttpClient;
+	struct HttpDownload;
+	class ManufacturerSpecificDB;
 
 	/** \brief The Driver class handles communication between OpenZWave
 	 *  and a device attached via a serial port (typically a controller).
@@ -62,6 +68,8 @@ namespace OpenZWave
 		friend class Group;
 		friend class CommandClass;
 		friend class ControllerReplication;
+		friend class DNSThread;
+		friend class i_HttpClient;
 		friend class Value;
 		friend class ValueStore;
 		friend class ValueButton;
@@ -73,8 +81,11 @@ namespace OpenZWave
 		friend class NoOperation;
 		friend class SceneActivation;
 		friend class WakeUp;
+		friend class ApplicationStatus; /* for Notification messages */
 		friend class Security;
 		friend class Msg;
+		friend class ManufacturerSpecificDB;
+		friend class TimerThread;
 
 	//-----------------------------------------------------------------------------
 	//	Controller Interfaces
@@ -150,6 +161,8 @@ namespace OpenZWave
 		void RemoveQueues( uint8 const _nodeId );
 
 		Thread*					m_driverThread;			/**< Thread for reading from the Z-Wave controller, and for creating and managing the other threads for sending, polling etc. */
+		DNSThread*				m_dns;					/**< DNSThread Class */
+		Thread*					m_dnsThread;			/**< Thread for DNS Queries */
 		Mutex*					m_initMutex;            /**< Mutex to ensure proper ordering of initialization/deinitialization */
 		bool					m_exit;					/**< Flag that is set when the application is exiting. */
 		bool					m_init;					/**< Set to true once the driver has been initialised */
@@ -163,8 +176,18 @@ namespace OpenZWave
 	//-----------------------------------------------------------------------------
 	private:
 		void RequestConfig();							// Get the network configuration from the Z-Wave network
-		bool ReadConfig();								// Read the configuration from a file
-		void WriteConfig();								// Save the configuration to a file
+		bool ReadCache();								// Read the configuration from a file
+		void WriteCache();								// Save the configuration to a file
+
+	//-----------------------------------------------------------------------------
+	//	Timer
+	//-----------------------------------------------------------------------------
+	private:
+		TimerThread*    m_timer;					/**< TimerThread Class */
+		Thread*         m_timerThread;    /**< Thread for timer events */
+
+	public:
+		TimerThread*		GetTimer() { return m_timer; }
 
 	//-----------------------------------------------------------------------------
 	//	Controller
@@ -194,6 +217,7 @@ namespace OpenZWave
 		bool IsBridgeController()const{ return (m_libraryType == 7); }
 		bool IsInclusionController()const{ return ((m_controllerCaps & ControllerCaps_SIS) != 0); }
 
+		bool HasExtendedTxStatus()const{ return m_hasExtendedTxStatus; }
 
 		uint32 GetHomeId()const{ return m_homeId; }
 		uint8 GetControllerNodeId()const{ return m_Controller_nodeId; }
@@ -262,6 +286,7 @@ namespace OpenZWave
 		uint8					m_initVersion;								// Version of the Serial API used by the controller.
 		uint8					m_initCaps;									// Set of flags indicating the serial API capabilities (See IsSlave, HasTimerSupport, IsPrimaryController and IsStaticUpdateController above).
 		uint8					m_controllerCaps;							// Set of flags indicating the controller's capabilities (See IsInclusionController above).
+		bool					m_hasExtendedTxStatus;						// True if the controller accepted SERIAL_API_SETUP_CMD_TX_STATUS_REPORT
 		uint8					m_Controller_nodeId;						// Z-Wave Controller's own node ID.
 		Node*					m_nodes[256];								// Array containing all the node objects.
 		Mutex*					m_nodeMutex;								// Serializes access to node data
@@ -275,10 +300,11 @@ namespace OpenZWave
 	//-----------------------------------------------------------------------------
 	private:
 		bool ReadMsg();
-		void ProcessMsg( uint8* _data );
+		void ProcessMsg( uint8* _data, uint8 _length );
 
 		void HandleGetVersionResponse( uint8* _data );
 		void HandleGetRandomResponse( uint8* _data );
+		void HandleSerialAPISetupResponse( uint8* _data );
 		void HandleGetControllerCapabilitiesResponse( uint8* _data );
 		void HandleGetSerialAPICapabilitiesResponse( uint8* _data );
 		void HandleSerialAPISoftResetResponse( uint8* _data );
@@ -310,7 +336,7 @@ namespace OpenZWave
 		bool HandleNetworkUpdateResponse( uint8* _data );
 		void HandleGetRoutingInfoResponse( uint8* _data );
 
-		void HandleSendDataRequest( uint8* _data, bool _replication );
+		void HandleSendDataRequest( uint8* _data, uint8 _length, bool _replication );
 		void HandleAddNodeToNetworkRequest( uint8* _data );
 		void HandleCreateNewPrimaryRequest( uint8* _data );
 		void HandleControllerChangeRequest( uint8* _data );
@@ -565,7 +591,6 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		enum MsgQueue
 		{
 			MsgQueue_Command = 0,
-			MsgQueue_Security,
 			MsgQueue_NoOp,
 			MsgQueue_Controller,
 			MsgQueue_WakeUp,
@@ -648,7 +673,8 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		{
 			MsgQueueCmd_SendMsg = 0,
 			MsgQueueCmd_QueryStageComplete,
-			MsgQueueCmd_Controller
+			MsgQueueCmd_Controller,
+			MsgQueueCmd_ReloadNode
 		};
 
 		class MsgQueueItem
@@ -678,6 +704,11 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 					{
 						return( (_other.m_cci->m_controllerCommand == m_cci->m_controllerCommand) && (_other.m_cci->m_controllerCallback == m_cci->m_controllerCallback) );
 					}
+					else if (m_command == MsgQueueCmd_ReloadNode )
+					{
+						return (_other.m_nodeId == m_nodeId);
+					}
+
 				}
 
 				return false;
@@ -751,6 +782,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		uint32 GetAssociations( uint8 const _nodeId, uint8 const _groupIdx, uint8** o_associations );
 		uint32 GetAssociations( uint8 const _nodeId, uint8 const _groupIdx, InstanceAssociation** o_associations );
 		uint8 GetMaxAssociations( uint8 const _nodeId, uint8 const _groupIdx );
+		bool IsMultiInstance( uint8 const _nodeId, uint8 const _groupIdx );
 		string GetGroupLabel( uint8 const _nodeId, uint8 const _groupIdx );
 		void AddAssociation( uint8 const _nodeId, uint8 const _groupIdx, uint8 const _targetNodeId, uint8 const _instance = 0x00 );
 		void RemoveAssociation( uint8 const _nodeId, uint8 const _groupIdx, uint8 const _targetNodeId, uint8 const _instance = 0x00 );
@@ -789,13 +821,13 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 			uint32 m_badroutes;			// Number of failed messages due to bad route response
 			uint32 m_noack;				// Number of no ACK returned errors
 			uint32 m_netbusy;			// Number of network busy/failure messages
-			uint32 m_notidle;
+			uint32 m_notidle;			// Number of RF Network Busy messages
+			uint32 m_txverified;		// Number of TX Verified messages
 			uint32 m_nondelivery;		// Number of messages not delivered to network
 			uint32 m_routedbusy;		// Number of messages received with routed busy status
 			uint32 m_broadcastReadCnt;	// Number of broadcasts read
 			uint32 m_broadcastWriteCnt;	// Number of broadcasts sent
 		};
-
 		void LogDriverStatistics();
 
 	private:
@@ -819,6 +851,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		uint32 m_noack;				// Number of no ACK returned errors
 		uint32 m_netbusy;			// Number of network busy/failure messages
 		uint32 m_notidle;			// Number of not idle messages
+		uint32 m_txverified;		// Number of TX Verified messages
 		uint32 m_nondelivery;		// Number of messages not delivered to network
 		uint32 m_routedbusy;		// Number of messages received with routed busy status
 		uint32 m_broadcastReadCnt;	// Number of broadcasts read
@@ -847,6 +880,78 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		uint8 m_nonceReportSentAttempt;
 		bool m_inclusionkeySet;
 
+	//-----------------------------------------------------------------------------
+	//	Event Signaling for DNS and HTTP Threads
+	//-----------------------------------------------------------------------------
+	private:
+		struct EventMsg {
+			enum EventType {
+				Event_DNS = 1,
+				Event_Http
+			};
+			EventType type;
+			union {
+					DNSLookup *lookup;
+					HttpDownload *httpdownload;
+			} event;
+		};
+
+		void SubmitEventMsg(EventMsg *);
+		void ProcessEventMsg();
+
+
+		OPENZWAVE_EXPORT_WARNINGS_OFF
+				list<EventMsg *>			m_eventQueueMsg;
+		OPENZWAVE_EXPORT_WARNINGS_ON
+				Event*					m_queueMsgEvent;				// Events for each queue, which are signalled when the queue is not empty
+				Mutex*					m_eventMutex;						// Serialize access to the queues
+
+
+	//-----------------------------------------------------------------------------
+	//	DNS Related
+	//-----------------------------------------------------------------------------
+
+	public:
+		bool CheckNodeConfigRevision(Node *);
+		bool CheckMFSConfigRevision();
+		void ReloadNode(uint8 const _nodeId);
+
+	private:
+		void processConfigRevision(DNSLookup *);
+
+	//-----------------------------------------------------------------------------
+	//	HTTP Client Related
+	//-----------------------------------------------------------------------------
+
+	public:
+		bool setHttpClient(i_HttpClient *client);
+	private:
+		bool startConfigDownload(uint16 _manufacturerId, uint16 _productType, uint16 _productId, string configfile, uint8 node = 0);
+		bool startMFSDownload(string configfile);
+		bool refreshNodeConfig(uint8 node);
+		void processDownload(HttpDownload *);
+		i_HttpClient *m_httpClient;
+
+	//-----------------------------------------------------------------------------
+	//	Metadata Related
+	//-----------------------------------------------------------------------------
+
+	public:
+		string const GetMetaData(	uint8 const _nodeId, Node::MetaDataFields _metadata );
+		Node::ChangeLogEntry const GetChangeLog( uint8 const _nodeId, uint32_t revision);
+
+
+	//-----------------------------------------------------------------------------
+	//	ManufacturerSpecificDB Related
+	//-----------------------------------------------------------------------------
+
+	public:
+		ManufacturerSpecificDB *GetManufacturerSpecificDB();
+		bool downloadConfigRevision(Node *);
+		bool downloadMFSRevision();
+	private:
+		ManufacturerSpecificDB *m_mfs;
+
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/Group.h b/hardware/openzwave/Group.h
index a71849da83..a862f1c8a9 100644
--- a/hardware/openzwave/Group.h
+++ b/hardware/openzwave/Group.h
@@ -72,13 +72,13 @@ namespace OpenZWave
 		uint8 GetMaxAssociations()const{ return m_maxAssociations; }
 		uint8 GetIdx()const{ return m_groupIdx; }
 		bool Contains( uint8 const _nodeId, uint8 const _instance = 0x00 );
+        bool IsMultiInstance()const{ return m_multiInstance; }
 
 	private:
 		bool IsAuto()const{ return m_auto; }
 		void SetAuto( bool const _state ){ m_auto = _state; }
 		void CheckAuto();
 
-		bool IsMultiInstance()const{ return m_multiInstance; }
 		void SetMultiInstance( bool const _state ){ m_multiInstance = _state; }
 
 		void AddAssociation( uint8 const _nodeId, uint8 const _instance = 0x00 );
diff --git a/hardware/openzwave/Http.h b/hardware/openzwave/Http.h
new file mode 100644
index 0000000000..4a634cc4ba
--- /dev/null
+++ b/hardware/openzwave/Http.h
@@ -0,0 +1,113 @@
+//-----------------------------------------------------------------------------
+//
+//	Http.h
+//
+//	Simple HTTP Client Interface to download updated config files
+//
+//	Copyright (c) 2015 Justin Hammond <Justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef _Http_H
+#define _Http_H
+
+#include "Defs.h"
+#include "platform/Event.h"
+#include "platform/Thread.h"
+#include "platform/Mutex.h"
+
+namespace OpenZWave
+{
+
+	/* This is a abstract class you can implement if you wish to override the built in HTTP Client
+	 * Code in OZW with your own code.
+	 *
+	 * The built in Code uses threads to download updated files to a temporary file
+	 * and then this class moves the files into the correct place.
+	 *
+	 */
+
+	struct HttpDownload {
+			string filename;
+			string url;
+			uint8 node;
+			enum DownloadType
+			{
+				None,
+				File,
+				Config,
+				MFSConfig
+			};
+			DownloadType operation;
+			enum Status
+			{
+				Ok,
+				Failed
+			};
+			Status transferStatus;
+
+	};
+
+	class Driver;
+
+	class i_HttpClient {
+		public:
+			i_HttpClient(Driver *);
+			virtual ~i_HttpClient() {};
+			virtual bool StartDownload(HttpDownload *transfer) = 0;
+			void FinishDownload(HttpDownload *transfer);
+		private:
+			Driver* 	m_driver;
+	};
+
+
+	/* this is OZW's implementation of a Http Client. It uses threads to download Config Files in the background.
+	 *
+	 */
+
+
+
+
+	class HttpClient : public i_HttpClient {
+		public:
+			HttpClient(Driver *);
+			~HttpClient();
+			bool StartDownload(HttpDownload *transfer);
+		private:
+
+			static void HttpThreadProc(Event* _exitEvent,  void* _context);
+			//Driver* 	m_driver;
+			Event* 		m_exitEvent;
+
+			Thread*		m_httpThread;
+			bool		m_httpThreadRunning;
+			Mutex*			  m_httpMutex;
+			list<HttpDownload *> m_httpDownlist;
+			Event*			  m_httpDownloadEvent;
+
+	};
+
+
+
+} /* namespace OpenZWave */
+
+
+
+#endif
diff --git a/hardware/openzwave/Localization.h b/hardware/openzwave/Localization.h
new file mode 100644
index 0000000000..7153a2585b
--- /dev/null
+++ b/hardware/openzwave/Localization.h
@@ -0,0 +1,144 @@
+//-----------------------------------------------------------------------------
+//
+//	Localization.h
+//
+//	Localization for CC and Value Classes
+//
+//	Copyright (c) 2018 Justin Hammond <justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef VALUEHELP_H
+#define VALUEHELP_H
+
+#include <cstdio>
+#include <string>
+#include <map>
+#include "Defs.h"
+#include "Driver.h"
+#include "command_classes/CommandClass.h"
+
+namespace OpenZWave
+{
+
+class LabelLocalizationEntry : public Ref
+{
+public:
+    LabelLocalizationEntry (uint16 _index, uint32 _pos = -1);
+    ~LabelLocalizationEntry() {}
+    void AddLabel(string label, string lang = "");
+    string GetLabel(string lang);
+    uint64 GetIdx();
+    bool HasLabel(string lang);
+
+private:
+    uint16 m_index;
+    uint32 m_pos;
+    map<string, string> m_Label;
+    string m_defaultLabel;
+};
+
+
+class ValueLocalizationEntry : public Ref
+{
+public:
+    ValueLocalizationEntry ( uint8 _commandClass, uint16 _index, uint32 _pos = -1 );
+    ~ValueLocalizationEntry() {
+
+    }
+    uint64 GetIdx();
+    string GetHelp(string lang);
+    void AddHelp(string HelpText, string lang = "");
+    bool HasHelp(string lang);
+    string GetLabel(string lang);
+    void AddLabel(string Label, string lang = "");
+    bool HasLabel(string lang);
+    void AddItemLabel(string label, int32 itemIndex, string lang = "");
+    string GetItemLabel(string lang, int32 itemIndex);
+    bool HasItemLabel(int32 itemIndex, string lang);
+    void AddItemHelp(string label, int32 itemIndex, string lang = "");
+    string GetItemHelp(string lang, int32 itemIndex);
+    bool HasItemHelp(int32 itemIndex, string lang);
+
+
+private:
+    uint8 m_commandClass;
+    uint16 m_index;
+    uint32 m_pos;
+    map<string, string> m_HelpText;
+    map<string, string> m_LabelText;
+    map<string, map<int32, string> > m_ItemLabelText;
+    map<string, map<int32, string> > m_ItemHelpText;
+    string m_DefaultHelpText;
+    string m_DefaultLabelText;
+    map<int32, string> m_DefaultItemLabelText;
+    map<int32, string> m_DefaultItemHelpText;
+};
+
+
+
+class Localization
+{
+    //-----------------------------------------------------------------------------
+    // Construction
+    //-----------------------------------------------------------------------------
+private:
+    Localization();
+    ~Localization();
+
+    static void ReadXML();
+    static void ReadCCXMLLabel(uint8 ccID, const TiXmlElement *labelElement);
+    static void ReadXMLValue(uint8 ccID, const TiXmlElement *valueElement);
+    static void ReadXMLVIDItemLabel(uint8 ccID, uint16 indexId, uint32 pos, const TiXmlElement *labelElement);
+    static void ReadGlobalXMLLabel(const TiXmlElement *labelElement);
+    static uint64 GetValueKey (uint8 _commandClass, uint16 _index, uint32 _pos = -1);
+public:
+    static Localization* Get();
+    void SetupCommandClass(CommandClass *cc);
+    string GetSelectedLang() { return Localization::m_selectedLang;};
+    bool SetValueHelp(uint8 ccID, uint16 indexID, uint32 pos, string help, string lang="");
+    string const GetValueHelp(uint8 ccID, uint16 indexId, uint32 pos);
+    bool SetValueLabel(uint8 ccID, uint16 indexID, uint32 pos, string label, string lang="");
+    string const GetValueLabel(uint8 ccID, uint16 indexId, int32 pos) const;
+    string const GetValueItemLabel(uint8 ccID, uint16 indexId, int32 pos, int32 itemIndex) const;
+    bool SetValueItemLabel(uint8 ccID, uint16 indexId, int32 pos, int32 itemIndex, string label, string lang="");
+    string const GetValueItemHelp(uint8 ccID, uint16 indexId, int32 pos, int32 itemIndex) const;
+    bool SetValueItemHelp(uint8 ccID, uint16 indexId, int32 pos, int32 itemIndex, string label, string lang="");
+    string const GetGlobalLabel(string text);
+    bool SetGlobalLabel(string index, string text, string lang);
+    static void ReadXMLVIDLabel(uint8 ccID, uint16 indexId, uint32 pos, const TiXmlElement *labelElement);
+    static void ReadXMLVIDHelp(uint8 ccID, uint16 indexId, uint32 pos, const TiXmlElement *helpElement);
+    bool WriteXMLVIDHelp(uint8 ccID, uint16 indexId, uint32 pos, TiXmlElement *valueElement);
+    //-----------------------------------------------------------------------------
+    // Instance Functions
+    //-----------------------------------------------------------------------------
+private:
+    static Localization* m_instance;
+    static map<uint64,ValueLocalizationEntry*> m_valueLocalizationMap;
+    static map<uint8,LabelLocalizationEntry*> m_commandClassLocalizationMap;
+    static map<string, LabelLocalizationEntry*> m_globalLabelLocalizationMap;
+    static string m_selectedLang;
+    static uint32 m_revision;
+
+
+};
+
+};
+#endif // VALUEHELP_H
diff --git a/hardware/openzwave/Manager.h b/hardware/openzwave/Manager.h
index 2dbc552f62..8032126488 100644
--- a/hardware/openzwave/Manager.h
+++ b/hardware/openzwave/Manager.h
@@ -51,6 +51,7 @@ namespace OpenZWave
 	class SerialPort;
 	class Thread;
 	class Notification;
+	class ValueBitSet;
 	class ValueBool;
 	class ValueByte;
 	class ValueDecimal;
@@ -162,12 +163,12 @@ namespace OpenZWave
 		static std::string getVersionAsString();
 
 		/**
-                 * \brief Get the Version Number including Git commit of OZW as a string
-                 * \return a String representing the version number as MAJOR.MINOR.REVISION-gCOMMIT
-                 */
-                static std::string getVersionLongAsString();
+         * \brief Get the Version Number including Git commit of OZW as a string
+         * \return a String representing the version number as MAJOR.MINOR.REVISION-gCOMMIT
+         */
+        static std::string getVersionLongAsString();
 
-                /**
+        /**
 		 * \brief Get the Version Number as the Version Struct (Only Major/Minor returned)
 		 * \return the version struct representing the version
 		 */
@@ -191,16 +192,17 @@ namespace OpenZWave
 	/*@{*/
 	public:
 		/**
-		 * \brief Saves the configuration of a PC Controller's Z-Wave network to the application's user data folder.
+		 * \brief Saves a cache of a PC Controller's Z-Wave network to the application's user data folder.
 		 * This method does not normally need to be called, since OpenZWave will save the state automatically
 		 * during the shutdown process.  It is provided here only as an aid to development.
 		 * The configuration of each PC Controller's Z-Wave network is stored in a separate file.  The filename
-		 * consists of the 8 digit hexadecimal version of the controller's Home ID, prefixed with the string 'zwcfg_'.
+		 * consists of the 8 digit hexadecimal version of the controller's Home ID, prefixed with the string 'ozwcache_'.
 		 * This convention allows OpenZWave to find the correct configuration file for a controller, even if it is
 		 * attached to a different serial port, USB device path, etc.
+		 * \deprecated OZW handles writing out the cache automatically. This does not need to be called anymore.
 		 * \param _homeId The Home ID of the Z-Wave controller to save.
 		 */
-		void WriteConfig( uint32 const _homeId );
+		DEPRECATED void WriteConfig( uint32 const _homeId );
 
 		/**
 		 * \brief Gets a pointer to the locked Options object.
@@ -295,6 +297,15 @@ namespace OpenZWave
 		 */
 		bool IsBridgeController( uint32 const _homeId );
 
+		/**
+		 * \brief Query if the controller support "extended status information"
+		 * On IMA enabled targets build on SDK >= 6.60.00
+		 * ZW_SendData can return information about TX time, route tries and more.
+		 * \param _homeId The Home ID of the Z-Wave controller.
+		 * \return true if the controller accepted to turn on extended status.
+		 */
+		bool HasExtendedTxStatus( uint32 const _homeId );
+
 		/**
 		 * \brief Get the version of the Z-Wave API library used by a controller.
 		 * \param _homeId The Home ID of the Z-Wave controller.
@@ -434,18 +445,18 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 	/*@{*/
 	public:
 		/**
-		 * \brief Trigger the fetching of fixed data about a node.
-		 * Causes the node's data to be obtained from the Z-Wave network in the same way as if it had just been added.
-		 * This method would normally be called automatically by OpenZWave, but if you know that a node has been
-		 * changed, calling this method will force a refresh of all of the data held by the library.  This can be especially
-		 * useful for devices that were asleep when the application was first run. This is the
-		 * same as the query state starting from the beginning.
+		 * \brief Refresh a Node and Reload it into OZW
+		 * Causes the node's Supported CommandClasses and Capabilities to be obtained from the Z-Wave network
+		 * This method would normally be called automatically by OpenZWave, but if you know that a node's capabilities or command classes
+		 * has been changed, calling this method will force a refresh of that information.
+		 * This call shouldn't be needed except in special circumstances.
 		 * \param _homeId The Home ID of the Z-Wave controller that manages the node.
 		 * \param _nodeId The ID of the node to query.
 		 * \return True if the request was sent successfully.
 		 */
 		bool RefreshNodeInfo( uint32 const _homeId, uint8 const _nodeId );
 
+
 		/**
 		 * \brief Trigger the fetching of dynamic value data for a node.
 		 * Causes the node's values to be requested from the Z-Wave network. This is the
@@ -754,9 +765,11 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * last known level, if supported by the device, otherwise it will turn	it on at 100%.
 		 * \param _homeId The Home ID of the Z-Wave controller that manages the node.
 		 * \param _nodeId The ID of the node to be changed.
+		 * \deprecated This method has been depreciated in setting the ValueID's directly (Remove in 1.8)
+		 *
 		 * \see SetNodeOff, SetNodeLevel
 		 */
-		void SetNodeOn( uint32 const _homeId, uint8 const _nodeId );
+		DEPRECATED void SetNodeOn( uint32 const _homeId, uint8 const _nodeId );
 
 		/**
 		 * \brief Turns a node off
@@ -765,9 +778,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * a ValueChanged notification from that class.
 		 * \param _homeId The Home ID of the Z-Wave controller that manages the node.
 		 * \param _nodeId The ID of the node to be changed.
+		 * \deprecated This method has been depreciated in setting the ValueID's directly (Remove in 1.8)
 		 * \see SetNodeOn, SetNodeLevel
 		 */
-		void SetNodeOff( uint32 const _homeId, uint8 const _nodeId );
+		DEPRECATED void SetNodeOff( uint32 const _homeId, uint8 const _nodeId );
 
 		/**
 		 * \brief Sets the basic level of a node
@@ -778,9 +792,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _nodeId The ID of the node to be changed.
 		 * \param _level The level to set the node.  Valid values are 0-99 and 255.  Zero is off and
 		 * 99 is fully on.  255 will turn on the device at its last known level (if supported).
+		 * \deprecated This method has been depreciated in setting the ValueID's directly (Remove in 1.8)
 		 * \see SetNodeOn, SetNodeOff
 		 */
-		void SetNodeLevel( uint32 const _homeId, uint8 const _nodeId, uint8 const _level );
+		DEPRECATED void SetNodeLevel( uint32 const _homeId, uint8 const _nodeId, uint8 const _level );
 
 		/**
 		 * \brief Get whether the node information has been received
@@ -875,6 +890,40 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 
 	/*@}*/
 
+	//-----------------------------------------------------------------------------
+	// Instances
+	//-----------------------------------------------------------------------------
+	/** \name Instances
+	 *  Methods for accessing Instance Information.
+	 */
+	/*@{*/
+	public:
+		/**
+		 *\brief Get the Instance Label for a specific ValueID
+		 * returns the Instance Label for a Specific ValueID on a CommandClass, or the Global Instance Label
+		 * if there is no specific label for the CommandClass
+		 *\param _id The unique identifier of the value
+		 *\return The Instance Label
+ 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
+		 */
+		string GetInstanceLabel( ValueID const &_id);
+
+		/**
+		 *\brief Get the Instance Label for a specific CommandClass
+		 * returns the Label for a Specific Instance on a Specific CommandClass, or the Global Instance Label
+		 * if there is no specific label for the CommandClass
+		 *\param _homeId the HomeID for the network you are querying
+		 *\param _node The Node you are interested in.
+		 *\param _cc The CommandClass for the Label you are interested in
+		 *\param _instance the Instance you are querying for
+		 *\return The Instance Label
+ 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
+		 */
+		string GetInstanceLabel(uint32 const _homeId, uint8 const _node, uint8 const _cc, uint8 const _instance);
+
+	/*@}*/
 	//-----------------------------------------------------------------------------
 	// Values
 	//-----------------------------------------------------------------------------
@@ -887,22 +936,24 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		/**
 		 * \brief Gets the user-friendly label for the value.
 		 * \param _id The unique identifier of the value.
+		 * \param _pos the Bit To Get the Label for if its a BitSet ValueID
 		 * \return The value label.
  		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
 		 * \see ValueID
 		 */
-		string GetValueLabel( ValueID const& _id );
+		string GetValueLabel( ValueID const& _id, int32 _pos = -1 );
 
 		/**
 		 * \brief Sets the user-friendly label for the value.
 		 * \param _id The unique identifier of the value.
+		 * \param _pos the Bit To set the Label for if its a BitSet ValueID
 		 * \param _value The new value of the label.
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
 		 * \see ValueID
 		 */
-		void SetValueLabel( ValueID const& _id, string const& _value );
+		void SetValueLabel( ValueID const& _id, string const& _value, int32 _pos = -1 );
 
 		/**
 		 * \brief Gets the units that the value is measured in.
@@ -927,22 +978,24 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		/**
 		 * \brief Gets a help string describing the value's purpose and usage.
 		 * \param _id The unique identifier of the value.
+		 * \param _pos Get the Help for associated Bits (Valid with ValueBitSet only)
 		 * \return The value help text.
  		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
 		 * \see ValueID
 		 */
-		string GetValueHelp( ValueID const& _id );
+		string GetValueHelp( ValueID const& _id, int32 _pos = -1 );
 
 		/**
 		 * \brief Sets a help string describing the value's purpose and usage.
 		 * \param _id The unique identifier of the value.
 		 * \param _value The new value of the help text.
+		 * \param __pos Set the Help for a associated Bit (Valid with ValueBitSet Only)
  		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
 		 * \see ValueID
 		 */
-		void SetValueHelp( ValueID const& _id, string const& _value );
+		void SetValueHelp( ValueID const& _id, string const& _value, int32 _pos = -1 );
 
 		/**
 		 * \brief Gets the minimum that this value may contain.
@@ -1004,6 +1057,19 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 */
 		bool IsValuePolled( ValueID const& _id );
 
+		/**
+		 * \brief Gets a the value of a Bit from a BitSet ValueID
+		 * \param _id The unique identifier of the value.
+		 * \param _pos the Bit you want to test for
+		 * \param o_value Pointer to a bool that will be filled with the value.
+		 * \return true if the value was obtained.  Returns false if the value is not a ValueID::ValueType_Bool. The type can be tested with a call to ValueID::GetType.
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
+		 */
+		bool GetValueAsBitSet( ValueID const& _id, uint8 _pos, bool* o_value );
+
 		/**
 		 * \brief Gets a value as a bool.
 		 * \param _id The unique identifier of the value.
@@ -1012,7 +1078,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
 		 */
 		bool GetValueAsBool( ValueID const& _id, bool* o_value );
 
@@ -1024,7 +1090,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
 		 */
 		bool GetValueAsByte( ValueID const& _id, uint8* o_value );
 
@@ -1036,7 +1102,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
 		 */
 		bool GetValueAsFloat( ValueID const& _id, float* o_value );
 
@@ -1048,7 +1114,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
 		 */
 		bool GetValueAsInt( ValueID const& _id, int32* o_value );
 
@@ -1060,7 +1126,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsString, GetValueListSelection, GetValueListItems, GetValueAsRaw
 		 */
 		bool GetValueAsShort( ValueID const& _id, int16* o_value );
 
@@ -1073,7 +1139,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueListSelection, GetValueListItems, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueListSelection, GetValueListItems, GetValueAsRaw
 		 */
 		bool GetValueAsString( ValueID const& _id, string* o_value );
 
@@ -1086,7 +1152,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueListSelection, GetValueListItems, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueListSelection, GetValueListItems, GetValueAsRaw
 		 */
 		bool GetValueAsRaw( ValueID const& _id, uint8** o_value, uint8* o_length );
 
@@ -1098,7 +1164,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListItems, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListItems, GetValueAsRaw
 		 */
 		bool GetValueListSelection( ValueID const& _id, string* o_value );
 
@@ -1110,7 +1176,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListItems, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListItems, GetValueAsRaw
 		 */
 		bool GetValueListSelection( ValueID const& _id, int32* o_value );
 
@@ -1122,7 +1188,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueAsRaw
 		 */
 		bool GetValueListItems( ValueID const& _id, vector<string>* o_value );
 
@@ -1134,7 +1200,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueAsRaw
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsFloat, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueAsRaw
 		 */
 		bool GetValueListValues( ValueID const& _id, vector<int32>* o_value );
 
@@ -1146,10 +1212,26 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
-		 * \see ValueID::GetType, GetValueAsBool, GetValueAsByte, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems
+		 * \see ValueID::GetType, GetValueAsBitSet, GetValueAsBool, GetValueAsByte, GetValueAsInt, GetValueAsShort, GetValueAsString, GetValueListSelection, GetValueListItems
 		 */
 		bool GetValueFloatPrecision( ValueID const& _id, uint8* o_value );
 
+		/**
+		 * \brief Sets the state of a bit in a BitSet ValueID.
+		 * Due to the possibility of a device being asleep, the command is assumed to succeed, and the value
+		 * held by the node is updated directly.  This will be reverted by a future status message from the device
+		 * if the Z-Wave message actually failed to get through.  Notification callbacks will be sent in both cases.
+		 * \param _id The unique identifier of the BitSet value.
+		 * \param _pos the Position of the Bit you want to Set
+		 * \param _value The new value of the bool.
+		 * \return true if the value was set.  Returns false if the value is not a ValueID::ValueType_Bool. The type can be tested with a call to ValueID::GetType.
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
+		 *
+		 */
+		bool SetValue( ValueID const& _id,  uint8 _pos, bool const _value );
+
 		/**
 		 * \brief Sets the state of a bool.
 		 * Due to the possibility of a device being asleep, the command is assumed to succeed, and the value
@@ -1320,6 +1402,45 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
 		 */
 		bool ReleaseButton( ValueID const& _id );
+
+		/**
+		 * \brief Sets the Valid BitMask for a BitSet ValueID
+		 * Sets a BitMask of Valid Bits for a BitSet ValueID
+		 * \param _id The unique identifier of the integer value.
+		 * \param _mask The Mask to set
+		 * \return true if the mask was applied.  Returns false if the value is not a ValueID::ValueType_BitSet or the Mask was invalid. The type can be tested with a call to ValueID::GetType.
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
+		 */
+		bool SetBitMask( ValueID const& _id, uint32 _mask );
+
+		/**
+		 * \brief Gets the Valid BitMask for a BitSet ValueID
+		 * Gets a BitMask of Valid Bits for a BitSet ValueID
+		 * \param _id The unique identifier of the integer value.
+		 * \param o_mask The Mask to for the BitSet
+		 * \return true if the mask was retrieved.  Returns false if the value is not a ValueID::ValueType_BitSet or the Mask was invalid. The type can be tested with a call to ValueID::GetType.
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
+		 */
+		bool GetBitMask( ValueID const& _id, int32* o_mask );
+
+		/**
+		 * \brief Gets the size of a BitMask ValueID 
+		 * Gets the size of a BitMask ValueID - Either 1, 2 or 4
+		 * \param _id The unique identifier of the integer value.
+		 * \param o_size The Size of the BitSet
+		 * \return true if the size was retrieved.  Returns false if the value is not a ValueID::ValueType_BitSet or the Mask was invalid. The type can be tested with a call to ValueID::GetType.
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_VALUEID if the ValueID is invalid
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID if the Actual Value is off a different type
+		 * \throws OZWException with Type OZWException::OZWEXCEPTION_INVALID_HOMEID if the Driver cannot be found
+		 */
+		bool GetBitSetSize( ValueID const& _id, uint8* o_size );
+
+
+
 	/*@}*/
 
 	//-----------------------------------------------------------------------------
@@ -1432,14 +1553,16 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		/**
 		 * \brief Switch all devices on.
 		 * All devices that support the SwitchAll command class will be turned on.
+		 * \deprecated This method has been depreciated. Please use the ValueID interface instead.
 		 */
-		void SwitchAllOn( uint32 const _homeId );
+		DEPRECATED void SwitchAllOn( uint32 const _homeId );
 
 		/**
 		 * \brief Switch all devices off.
 		 * All devices that support the SwitchAll command class will be turned off.
+		 * \deprecated This method has been depreciated. Please use the ValueID interface instead.
 		 */
-		void SwitchAllOff( uint32 const _homeId );
+		DEPRECATED void SwitchAllOff( uint32 const _homeId );
 
 	/*@}*/
 
@@ -1554,6 +1677,16 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 */
 		uint8 GetMaxAssociations( uint32 const _homeId, uint8 const _nodeId, uint8 const _groupIdx );
 
+		/**
+		 * \brief Returns true is group supports multi instance.
+		 * \param _homeId The Home ID of the Z-Wave controller that manages the node.
+		 * \param _nodeId The ID of the node whose associations we are interested in.
+		 * \param _groupIdx one-based index of the group (because Z-Wave product manuals use one-based group numbering).
+		 * \return True if group supports multi instance.
+		 * \see GetNumGroups, AddAssociation, RemoveAssociation, GetAssociations, GetMaxAssociations
+		 */
+		bool IsMultiInstance( uint32 const _homeId, uint8 const _nodeId, uint8 const _groupIdx );
+
 		/**
 		 * \brief Returns a label for the particular group of a node.
 		 * This label is populated by the device specific configuration files.
@@ -1724,7 +1857,7 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * - Driver::ControllerState_InProgress - the controller is in the process of adding or removing the chosen node.  It is now too late to cancel the command.
 		 * - Driver::ControllerState_Complete - the controller has finished adding or removing the node, and the command is complete.
 		 * - Driver::ControllerState_Failed - will be sent if the command fails for any reason.
-		 * \deprecated This method has been depreciated in favour of the methods in the \ref Network_Commands section
+		 * \deprecated This method has been depreciated in favour of the methods in the \ref Network_Commands section (Remove in 1.8)
 		 *
 		 * \see AddNode RemoveNode RemoveFailedNode HasNodeFailed RequestNodeNeighborUpdate AssignReturnRoute DeleteAllReturnRoutes SendNodeInformation CreateNewPrimary ReceiveConfiguration ReplaceFailedNode TransferPrimaryRole RequestNetworkUpdate ReplicationSend CreateButton DeleteButton
 		 *
@@ -2014,6 +2147,25 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 */
 		bool DeleteButton(uint32 const _homeId, uint8 const _nodeId, uint8 const _buttonid);
 
+		/**
+		*  \brief Send a raw packet to a node.
+		*
+		*  Send a Raw Packet to a Node. No confirmation that the node accepted the packet etc will be available.
+		*  This is for testing only and should not be used for anything production
+		*
+		*  \param _homeId the HomeID of the Z-Wave Network
+		*  \param _nodeId the ID of the Node
+		*  \param _logText Text to Log when sending the packet
+		*  \param _msgType The Type of Message to Send
+		*  \param _sendSecure if we should attempt to encrypt the packet
+		*  \param _content A array of bytes to send
+		*  \param _length the length of the array
+		*/
+		void SendRawData(uint32 const _homeId, uint8 const _nodeId, string const& _logText, uint8 const _msgType, const bool _sendSecure, uint8 const* _content, uint8 const _length);
+
+
+
+
 	/*@}*/
 
 	//-----------------------------------------------------------------------------
@@ -2021,46 +2173,53 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 	//-----------------------------------------------------------------------------
 	/** \name Scene Commands
 	 *  Commands for Z-Wave scene interface.
+	 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
+	 *
 	 */
 	/*@{*/
 	public:
 		/**
 		 * \brief Gets the number of scenes that have been defined.
 		 * \return The number of scenes.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetAllScenes, RemoveAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		uint8 GetNumScenes( );
+		DEPRECATED uint8 GetNumScenes( );
 
 		/**
 		 * \brief Gets a list of all the SceneIds.
 		 * \param _sceneIds is a pointer to an array of integers.
 		 * \return The number of scenes. If zero, _sceneIds will be NULL and doesn't need to be freed.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		uint8 GetAllScenes( uint8** _sceneIds );
+		DEPRECATED uint8 GetAllScenes( uint8** _sceneIds );
 
 		/**
 		 * \brief Remove all the SceneIds.
 		 * \param _homeId The Home ID of the Z-Wave controller. 0 for all devices from all scenes.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetAllScenes, GetNumScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		void RemoveAllScenes( uint32 const _homeId );
+		DEPRECATED void RemoveAllScenes( uint32 const _homeId );
 
 		/**
 		 * \brief Create a new Scene passing in Scene ID
 		 * \return uint8 Scene ID used to reference the scene. 0 is failure result.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 
 		 */
-		uint8 CreateScene();
+		DEPRECATED uint8 CreateScene();
 
 		/**
 		 * \brief Remove an existing Scene.
 		 * \param _sceneId is an integer representing the unique Scene ID to be removed.
 		 * \return true if scene was removed.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool RemoveScene( uint8 const _sceneId );
+		DEPRECATED bool RemoveScene( uint8 const _sceneId );
 
 		/**
 		 * \brief Add a bool Value ID to an existing scene.
@@ -2068,9 +2227,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the bool value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, bool const _value );
+		DEPRECATED bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, bool const _value );
 
 		/**
 		 * \brief Add a byte Value ID to an existing scene.
@@ -2078,9 +2238,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the byte value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, uint8 const _value );
+		DEPRECATED bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, uint8 const _value );
 
 		/**
 		 * \brief Add a decimal Value ID to an existing scene.
@@ -2088,9 +2249,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the float value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, float const _value );
+		DEPRECATED bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, float const _value );
 
 		/**
 		 * \brief Add a 32-bit signed integer Value ID to an existing scene.
@@ -2098,9 +2260,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the int32 value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, int32 const _value );
+		DEPRECATED bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, int32 const _value );
 
 		/**
 		 * \brief Add a 16-bit signed integer Value ID to an existing scene.
@@ -2108,9 +2271,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the int16 value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, int16 const _value );
+		DEPRECATED bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, int16 const _value );
 
 		/**
 		 * \brief Add a string Value ID to an existing scene.
@@ -2118,9 +2282,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the string value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, string const& _value );
+		DEPRECATED bool AddSceneValue( uint8 const _sceneId, ValueID const& _valueId, string const& _value );
 
 		/**
 		 * \brief Add the selected item list Value ID to an existing scene (as a string).
@@ -2128,9 +2293,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the string value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool AddSceneValueListSelection( uint8 const _sceneId, ValueID const& _valueId, string const& _value );
+		DEPRECATED bool AddSceneValueListSelection( uint8 const _sceneId, ValueID const& _valueId, string const& _value );
 
 		/**
 		 * \brief Add the selected item list Value ID to an existing scene (as a integer).
@@ -2138,27 +2304,30 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the integer value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool AddSceneValueListSelection( uint8 const _sceneId, ValueID const& _valueId, int32 const _value );
+		DEPRECATED bool AddSceneValueListSelection( uint8 const _sceneId, ValueID const& _valueId, int32 const _value );
 
 		/**
 		 * \brief Remove the Value ID from an existing scene.
 		 * \param _sceneId is an integer representing the unique Scene ID.
 		 * \param _valueId is the Value ID to be removed.
 		 * \return true if Value ID was removed.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool RemoveSceneValue( uint8 const _sceneId, ValueID const& _valueId );
+		DEPRECATED bool RemoveSceneValue( uint8 const _sceneId, ValueID const& _valueId );
 
 		/**
 		 * \brief Retrieves the scene's list of values.
 		 * \param _sceneId The Scene ID of the scene to retrieve the value from.
 		 * \param o_value Pointer to an array of ValueIDs if return is non-zero.
 		 * \return The number of nodes in the o_value array. If zero, the array will point to NULL and does not need to be deleted.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		int SceneGetValues( uint8 const _sceneId, vector<ValueID>* o_value );
+		DEPRECATED int SceneGetValues( uint8 const _sceneId, vector<ValueID>* o_value );
 
 		/**
 		 * \brief Retrieves a scene's value as a bool.
@@ -2166,9 +2335,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId The Value ID of the value to retrieve.
 		 * \param o_value Pointer to a bool that will be filled with the returned value.
 		 * \return true if the value was obtained.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SceneGetValueAsBool( uint8 const _sceneId, ValueID const& _valueId, bool* o_value );
+		DEPRECATED bool SceneGetValueAsBool( uint8 const _sceneId, ValueID const& _valueId, bool* o_value );
 
 		/**
 		 * \brief Retrieves a scene's value as an 8-bit unsigned integer.
@@ -2176,9 +2346,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId The Value ID of the value to retrieve.
 		 * \param o_value Pointer to a uint8 that will be filled with the returned value.
 		 * \return true if the value was obtained.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SceneGetValueAsByte( uint8 const _sceneId, ValueID const& _valueId, uint8* o_value );
+		DEPRECATED bool SceneGetValueAsByte( uint8 const _sceneId, ValueID const& _valueId, uint8* o_value );
 
 		/**
 		 * \brief Retrieves a scene's value as a float.
@@ -2186,9 +2357,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId The Value ID of the value to retrieve.
 		 * \param o_value Pointer to a float that will be filled with the returned value.
 		 * \return true if the value was obtained.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SceneGetValueAsFloat( uint8 const _sceneId, ValueID const& _valueId, float* o_value );
+		DEPRECATED bool SceneGetValueAsFloat( uint8 const _sceneId, ValueID const& _valueId, float* o_value );
 
 		/**
 		 * \brief Retrieves a scene's value as a 32-bit signed integer.
@@ -2196,9 +2368,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId The Value ID of the value to retrieve.
 		 * \param o_value Pointer to a int32 that will be filled with the returned value.
 		 * \return true if the value was obtained.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SceneGetValueAsInt( uint8 const _sceneId, ValueID const& _valueId, int32* o_value );
+		DEPRECATED bool SceneGetValueAsInt( uint8 const _sceneId, ValueID const& _valueId, int32* o_value );
 
 		/**
 		 * \brief Retrieves a scene's value as a 16-bit signed integer.
@@ -2206,9 +2379,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId The Value ID of the value to retrieve.
 		 * \param o_value Pointer to a int16 that will be filled with the returned value.
 		 * \return true if the value was obtained.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SceneGetValueAsShort( uint8 const _sceneId, ValueID const& _valueId, int16* o_value );
+		DEPRECATED bool SceneGetValueAsShort( uint8 const _sceneId, ValueID const& _valueId, int16* o_value );
 
 		/**
 		 * \brief Retrieves a scene's value as a string.
@@ -2216,9 +2390,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId The Value ID of the value to retrieve.
 		 * \param o_value Pointer to a string that will be filled with the returned value.
 		 * \return true if the value was obtained.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SceneGetValueAsString( uint8 const _sceneId, ValueID const& _valueId, string* o_value );
+		DEPRECATED bool SceneGetValueAsString( uint8 const _sceneId, ValueID const& _valueId, string* o_value );
 
 		/**
 		 * \brief Retrieves a scene's value as a list (as a string).
@@ -2226,9 +2401,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId The Value ID of the value to retrieve.
 		 * \param o_value Pointer to a string that will be filled with the returned value.
 		 * \return true if the value was obtained.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SceneGetValueListSelection( uint8 const _sceneId, ValueID const& _valueId, string* o_value );
+		DEPRECATED bool SceneGetValueListSelection( uint8 const _sceneId, ValueID const& _valueId, string* o_value );
 
 		/**
 		 * \brief Retrieves a scene's value as a list (as a integer).
@@ -2236,9 +2412,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId The Value ID of the value to retrieve.
 		 * \param o_value Pointer to a integer that will be filled with the returned value.
 		 * \return true if the value was obtained.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SceneGetValueListSelection( uint8 const _sceneId, ValueID const& _valueId, int32* o_value );
+		DEPRECATED bool SceneGetValueListSelection( uint8 const _sceneId, ValueID const& _valueId, int32* o_value );
 
 		/**
 		 * \brief Set a bool Value ID to an existing scene's ValueID
@@ -2246,9 +2423,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the bool value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, bool const _value );
+		DEPRECATED bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, bool const _value );
 
 		/**
 		 * \brief Set a byte Value ID to an existing scene's ValueID
@@ -2256,9 +2434,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the byte value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, uint8 const _value );
+		DEPRECATED bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, uint8 const _value );
 
 		/**
 		 * \brief Set a decimal Value ID to an existing scene's ValueID
@@ -2266,9 +2445,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the float value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, float const _value );
+		DEPRECATED bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, float const _value );
 
 		/**
 		 * \brief Set a 32-bit signed integer Value ID to an existing scene's ValueID
@@ -2276,9 +2456,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the int32 value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, int32 const _value );
+		DEPRECATED bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, int32 const _value );
 
 		/**
 		 * \brief Set a 16-bit integer Value ID to an existing scene's ValueID
@@ -2286,9 +2467,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the int16 value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, int16 const _value );
+		DEPRECATED bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, int16 const _value );
 
 		/**
 		 * \brief Set a string Value ID to an existing scene's ValueID
@@ -2296,9 +2478,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the string value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, string const& _value );
+		DEPRECATED bool SetSceneValue( uint8 const _sceneId, ValueID const& _valueId, string const& _value );
 
 		/**
 		 * \brief Set the list selected item Value ID to an existing scene's ValueID (as a string).
@@ -2306,9 +2489,10 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the string value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SetSceneValueListSelection( uint8 const _sceneId, ValueID const& _valueId, string const& _value );
+		DEPRECATED bool SetSceneValueListSelection( uint8 const _sceneId, ValueID const& _valueId, string const& _value );
 
 		/**
 		 * \brief Set the list selected item Value ID to an existing scene's ValueID (as a integer).
@@ -2316,41 +2500,46 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 * \param _valueId is the Value ID to be added.
 		 * \param _value is the integer value to be saved.
 		 * \return true if Value ID was added.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		bool SetSceneValueListSelection( uint8 const _sceneId, ValueID const& _valueId, int32 const _value );
+		DEPRECATED bool SetSceneValueListSelection( uint8 const _sceneId, ValueID const& _valueId, int32 const _value );
 
 		/**
 		 * \brief Returns a label for the particular scene.
 		 * \param _sceneId The Scene ID
 		 * \return The label string.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, SetSceneLabel, SceneExists, ActivateScene
 		 */
-		string GetSceneLabel( uint8 const _sceneId );
+		DEPRECATED string GetSceneLabel( uint8 const _sceneId );
 
 		/**
 		 * \brief Sets a label for the particular scene.
 		 * \param _sceneId The Scene ID
 		 * \param _value The new value of the label.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SceneExists, ActivateScene
 		 */
-		void SetSceneLabel( uint8 const _sceneId, string const& _value );
+		DEPRECATED void SetSceneLabel( uint8 const _sceneId, string const& _value );
 
 		/**
 		 * \brief Check if a Scene ID is defined.
 		 * \param _sceneId The Scene ID.
 		 * \return true if Scene ID exists.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, ActivateScene
 		 */
-		bool SceneExists( uint8 const _sceneId );
+		DEPRECATED bool SceneExists( uint8 const _sceneId );
 
 		/**
 		 * \brief Activate given scene to perform all its actions.
 		 * \param _sceneId The Scene ID.
 		 * \return true if it is successful.
+		 * \deprecated The Scene Methods have been depreciated. (This is not the same as the CENTRAL_SCENE CommandClass)
 		 * \see GetNumScenes, GetAllScenes, CreateScene, RemoveScene, AddSceneValue, RemoveSceneValue, SceneGetValues, SceneGetValueAsBool, SceneGetValueAsByte, SceneGetValueAsFloat, SceneGetValueAsInt, SceneGetValueAsShort, SceneGetValueAsString, SetSceneValue, GetSceneLabel, SetSceneLabel, SceneExists
 		 */
-		bool ActivateScene( uint8 const _sceneId );
+		DEPRECATED bool ActivateScene( uint8 const _sceneId );
 
 	/*@}*/
 
@@ -2377,6 +2566,118 @@ OPENZWAVE_EXPORT_WARNINGS_ON
 		 */
 		void GetNodeStatistics( uint32 const _homeId, uint8 const _nodeId, Node::NodeData* _data );
 
+		/**
+		 * \brief Get a Human Readable String for the RouteScheme in the Extended TX Status Frame
+		 * \param _data Pointer to the structure Node::NodeData return from GetNodeStatistics
+		 * \return String containing the Route Scheme Used
+		 */
+		static string GetNodeRouteScheme(Node::NodeData *_data);
+
+		/**
+		 * \brief Get Humand Readable String for the RouteSpeed in the Extended TX Status Frame
+		 * \param _data Pointer to the structure Node::NodeData returned from GetNodeStatistics
+		 * \return String containing the Speed
+		 */
+		static string GetNodeRouteSpeed(Node::NodeData *_data);
+
+	/*@}*/
+
+	//-----------------------------------------------------------------------------
+	// MetaData interface
+	//-----------------------------------------------------------------------------
+	/** \name MetaData Interface
+	 *  Commands for retrieving information about Devices.
+	 */
+	/*@{*/
+	public:
+		/**
+		 * \brief Retrieve metadata about a node
+		 * \param _homeId The Home ID of the driver for the node
+		 * \param _nodeId The node number
+		 * \param _metadata the MetadataFields you are requesting.
+		 * \return a string containing the requested metadata
+		 */
+		string const GetMetaData( uint32 const _homeId, uint8 const _nodeId, Node::MetaDataFields _metadata );
+		/**
+		 * \brief Retrieve ChangeLogs about a configuration revision
+		 * \param _homeId The Home ID of the driver for the node
+		 * \param _nodeId The node number
+		 * \param revision the revision you are requesting
+		 * \return a Node::ChangeLogEntry struct with the ChangeLog Details. if the revision paramater is -1, then then revision passed to this function is invalid
+		 */
+		Node::ChangeLogEntry const GetChangeLog( uint32 const _homeId, uint8 const _nodeId, uint32_t revision);
+
+	/*@}*/
+		//-----------------------------------------------------------------------------
+		// Config File Revision interface
+		//-----------------------------------------------------------------------------
+		/** \name Config File Revision Methods
+		 *  These commands deal with checking/updating Config File's from the OZW master repository
+		 */
+		/*@{*/
+		public:
+			/**
+			 * \brief Check the Latest Revision of the Config File for this device
+			 *
+			 * and optionally update the local database with the latest version
+			 * Config Revisions are exposed on the ManufacturerSpecific CC. (both the latest and loaded version)
+			 *
+			 * Outdated Config Revisions are signaled via Notifications
+			 *
+			 * \param _homeId The Home ID of the driver for the node
+			 * \param _nodeId The node number
+			 * \return Success/Failure of submitting the request.
+			 */
+			bool checkLatestConfigFileRevision(uint32 const _homeId, uint8 const _nodeId);
+
+			/**
+			 * \brief Check the Latest Revision of the Manufacturer_Specific.xml file
+			 *
+			 * and optionally update to the latest version.
+			 *
+			 * Outdated Config Revisions are signaled via Notifications
+			 *
+			 * \param _homeId The Home ID of the driver for the node
+			 * \return Success/Failure of submitting the request.
+			 */
+			bool checkLatestMFSRevision(uint32 const _homeId);
+
+			/**
+			 * \brief Download the latest Config File Revision
+			 *
+			 * The Node will be reloaded depending upon the Option "ReloadAfterUpdate"
+			 * Valid Options include:
+			 * * Never - Never Reload a Node after updating the Config File. Manual Reload is Required.
+			 * * Immediate - Reload the Node Immediately after downloading the latest revision
+			 * * Awake - Reload Nodes only when they are awake (Always-On Nodes will reload immediately, Sleeping Nodes will reload
+			 * 			 when they wake up
+			 *
+			 * Errors are signaled via Notifications
+			 *
+			 * \param _homeId The Home ID of the driver for the node
+			 * \param _nodeId The Node ID of the Node to update the Config File for
+			 * \return Success/Failure of submitting the request.
+			 */
+			bool downloadLatestConfigFileRevision(uint32 const _homeId, uint8 const _nodeId);
+
+			/**
+			 * \brief Download the latest Config File Revision
+			 *
+			 * The ManufacturerSpecific File will be updated, and any new Config Files will also be downloaded.
+			 * Existing Config Files will not be checked/updated.
+			 *
+			 * Errors are signaled via Notifications
+			 *
+			 * \param _homeId The Home ID of the driver for the node
+			 * \return Success/Failure of submitting the request.
+			 */
+			bool downloadLatestMFSRevision(uint32 const _homeId);
+
+		/*@}*/
+
+
+
+
 	};
 	/*@}*/
 } // namespace OpenZWave
diff --git a/hardware/openzwave/ManufacturerSpecificDB.h b/hardware/openzwave/ManufacturerSpecificDB.h
new file mode 100644
index 0000000000..58b3ce559c
--- /dev/null
+++ b/hardware/openzwave/ManufacturerSpecificDB.h
@@ -0,0 +1,154 @@
+//-----------------------------------------------------------------------------
+//
+//	ManufacturerSpecificDB.h
+//
+//	Interface for Handling Device Configuration Files.
+//
+//	Copyright (c) 2016 Justin Hammond <justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+
+#ifndef _ManufacturerSpecificDB_H
+#define _ManufacturerSpecificDB_H
+
+#include <string>
+#include <map>
+#include <list>
+
+#include "Node.h"
+#include "platform/Ref.h"
+#include "Defs.h"
+
+namespace OpenZWave
+{
+	class Mutex;
+	class Driver;
+
+
+	class ProductDescriptor : public Ref
+			{
+			public:
+				ProductDescriptor
+				(
+					uint16 _manufacturerId,
+					uint16 _productType,
+					uint16 _productId,
+					string const& _productName,
+					string const& _manufacturerName,
+					string const& _configPath
+				):
+					m_manufacturerId( _manufacturerId ),
+					m_productType( _productType ),
+					m_productId( _productId ),
+					m_productName( _productName ),
+					m_manufacturerName ( _manufacturerName ),
+					m_configPath( _configPath ),
+					m_configrevision( 0 )
+				{
+				}
+				~ProductDescriptor() {
+
+				}
+				int64 GetKey()const
+				{
+					return( GetKey( m_manufacturerId, m_productType, m_productId ) );
+				}
+
+				static int64 GetKey( uint16 _manufacturerId, uint16 _productType, uint16 _productId )
+				{
+					int64 key = (((int64)_manufacturerId)<<32) | (((int64)_productType)<<16) | (int64)_productId;
+					return key;
+				}
+
+				uint16 GetManufacturerId()const{ return m_manufacturerId; }
+				string GetManufacturerName() const {return m_manufacturerName; }
+				uint16 GetProductType()const{ return m_productType; }
+				uint16 GetProductId()const{ return m_productId; }
+				string GetProductName()const{ return m_productName; }
+				string GetConfigPath()const{ return m_configPath; }
+				void SetConfigRevision(uint32 revision) { m_configrevision = revision;}
+				uint32 GetConfigRevision()const{ return m_configrevision; }
+			private:
+				uint16	m_manufacturerId;
+				uint16	m_productType;
+				uint16	m_productId;
+				string	m_productName;
+				string  m_manufacturerName;
+				string	m_configPath;
+				uint32  m_configrevision;
+			};
+
+
+
+
+
+	/** \brief The _ManufacturerSpecificDB class handles the Config File Database
+	 * that we use to configure devices.
+	 */
+	class OPENZWAVE_EXPORT ManufacturerSpecificDB {
+	public:
+		static ManufacturerSpecificDB *Create();
+		static ManufacturerSpecificDB *Get() { return s_instance; }
+		static void Destroy();
+
+		bool LoadProductXML();
+		void UnloadProductXML();
+		uint32 getRevision() { return m_revision;}
+		uint32 getLatestRevision() { return m_latestRevision;};
+		void setLatestRevision(uint32 rev) { m_latestRevision = rev;};
+		void checkConfigFiles(Driver *);
+		void configDownloaded(Driver *, string file, uint8 node, bool success = true);
+		void mfsConfigDownloaded(Driver *, string file, bool success = true);
+		bool isReady();
+		bool updateConfigFile(Driver *, Node *);
+		bool updateMFSConfigFile(Driver *);
+		void checkInitialized();
+
+	private:
+		void LoadConfigFileRevision (ProductDescriptor *product);
+		ManufacturerSpecificDB();
+		~ManufacturerSpecificDB();
+
+
+
+		Mutex*					m_MfsMutex;            /**< Mutex to ensure its accessed by a single thread at a time */
+
+		static ManufacturerSpecificDB *s_instance;
+	public:
+		ProductDescriptor *getProduct(uint16 _manufacturerId, uint16 _productType, uint16 _productId);
+
+private:
+		static map<uint16,string>	s_manufacturerMap;
+		static map<int64,ProductDescriptor*>	s_productMap;
+		static bool					s_bXmlLoaded;
+
+		list<string> m_downloading;
+		uint32 m_revision;
+		uint32 m_latestRevision;
+		bool m_initializing;
+
+	};
+
+
+}
+
+
+#endif
diff --git a/hardware/openzwave/Msg.h b/hardware/openzwave/Msg.h
index a61c9a07cf..06f4203933 100644
--- a/hardware/openzwave/Msg.h
+++ b/hardware/openzwave/Msg.h
@@ -56,6 +56,7 @@ namespace OpenZWave
 		void SetInstance( CommandClass* _cc, uint8 const _instance );	// Used to enable wrapping with MultiInstance/MultiChannel during finalize.
 
 		void Append( uint8 const _data );
+		void AppendArray( const uint8* const _data, const uint8 _length );
 		void Finalize();
 		void UpdateCallbackId();
 
@@ -142,9 +143,7 @@ namespace OpenZWave
 				return m_buffer[6];
 			}
 			return 0;
-
 		}
-
 		bool isEncrypted() {
 			return m_encrypted;
 		}
diff --git a/hardware/openzwave/Node.h b/hardware/openzwave/Node.h
index 163ed113a8..37a900abc7 100644
--- a/hardware/openzwave/Node.h
+++ b/hardware/openzwave/Node.h
@@ -57,6 +57,7 @@ namespace OpenZWave
 	class ValueShort;
 	class ValueString;
 	class Mutex;
+	class ProductDescriptor;
 
 	/** \brief The Node class describes a Z-Wave node object...typically a device on the
 	 *  Z-Wave network.
@@ -83,6 +84,7 @@ namespace OpenZWave
 			friend class Language;
 			friend class Lock;
 			friend class ManufacturerSpecific;
+			friend class ManufacturerSpecificDB;
 			friend class Meter;
 			friend class MeterPulse;
 			friend class MultiInstance;
@@ -397,7 +399,7 @@ namespace OpenZWave
 			 * \return Pointer to the requested CommandClass object if supported, otherwise NULL.
 			 * \see CommandClass, m_commandClassMap
 			 */
-			CommandClass* GetCommandClass( uint8 const _commandClassId )const;
+			CommandClass* GetCommandClass( uint8 const _commandClassId, bool advertised = false )const;
 			void ApplicationCommandHandler( uint8 const* _data, bool encrypted );
 
 			/**
@@ -405,20 +407,37 @@ namespace OpenZWave
 			 * as Secured if they exist, and if they don't, it creates new Command Classes and sets them up as Secured
 			 * @param _data a list of Command Classes that are Secured by the Device
 			 * @param _length the length of the _data string
+			 * @param _instance the instance of the Class thats Secured.
 			 */
-			void SetSecuredClasses( uint8 const* _data, uint8 const _length );
+			void SetSecuredClasses( uint8 const* _data, uint8 const _length, uint32 const _instance = 1);
 			void SetSecured(bool secure);
+			bool IsSecured();
+			/**
+			 * This function sets a Global Instance Label for all CommandClasses that don't define their
+			 * own labels
+			 */
+			void SetInstanceLabel(uint8 const _instance, char *label);
+			/** This function gets a Instance Label for a ValueID. It either users the Global Instance Label
+			 * above, or a Label for a Specific CC
+			 */
+			string GetInstanceLabel(uint8 const _ccid, uint8 const _instance);
+
+			/** Get The Number of Instances on this node
+			 *
+			 */
+			uint8 GetNumInstances(uint8 const _ccid);
 		private:
 			/**
 			 * Creates the specified command class object and adds it to the node (via the
 			 * m_commandClassMap) if it doesn't exist.
 			 * No new object is created if it already exists for this node.
 			 * \param _commandClassId Class ID (a single byte value) identifying the command class requested.
+			 * \param advertised if the CommandClass is Advertised by this node
 			 * \return Pointer to the CommandClass object just added to the map (NULL if the object
 			 * was already there or if the CommandClass object creation failed).
 			 * \see CommandClass, CommandClasses::CreateCommandClass, m_commandClassMap
 			 */
-			CommandClass* AddCommandClass( uint8 const _commandClassId );
+			CommandClass* AddCommandClass( uint8 const _commandClassId, bool advertised = false);
 			/**
 			 * Removes a command class object from the node (via the m_commandClassMap).  Before removing the
 			 * object, this function also removes any values stored in the object's ValueStore.
@@ -432,7 +451,63 @@ namespace OpenZWave
 			void WriteXML( TiXmlElement* _nodeElement );
 
 			map<uint8,CommandClass*>		m_commandClassMap;	/**< Map of command class ids and pointers to associated command class objects */
+			map<uint8,CommandClass*>		m_advertisedCommandClassMap; /**< Map of Command Class Id's and Pointers to the Class for Advertised CommandClasses */
 			bool							m_secured; /**< Is this Node added Securely */
+			map<uint8, string>				m_globalInstanceLabel; /** < The Global Labels for Instances for CC that dont define their own labels */
+			//-----------------------------------------------------------------------------
+			// Configuration Revision Related Classes
+			//-----------------------------------------------------------------------------
+		public:
+			void SetProductDetails(ProductDescriptor *product);
+			/** Get a path to the config file for this device
+			 *
+			 * @return a path relative to the config directory for the config file. returns a empty string if a config file is not present.
+			 */
+			string getConfigPath();
+			/** Get the latest local revision of the config file for this node
+			 *
+			 * @return a revision number
+			 */
+			uint32 getFileConfigRevision() { return m_fileConfigRevision; };
+			/** Get the Revision number of the config that is laoded for this Node
+			 *
+			 * @return the revision number currently loaded.
+			 */
+			uint32 getLoadedConfigRevision() { return m_loadedConfigRevision; };
+			/** Get the Latest Config File revision available at openzwave.com
+			 *
+			 * @return The latest revision number available
+			 */
+			uint32 getLatestConfigRevision() { return m_latestConfigRevision; };
+			/** Set the revision number of the Config File for this device
+			 *
+			 * @param rev the revision number
+			 */
+			void setFileConfigRevision(uint32 rev);
+			/** Set the revision number of the config that is loaded for this device
+			 *
+			 * @param rev the revision number
+			 */
+			void setLoadedConfigRevision(uint32 rev);
+			/** Set the revision number of the latest available config file for this device
+			 *
+			 * @param rev the revision number
+			 */
+			void setLatestConfigRevision(uint32 rev);
+			/** Check the latest available revision number for this device.
+			 *
+			 */
+			void checkLatestConfigRevision( );
+
+		private:
+
+
+			ProductDescriptor *m_Product;
+
+
+			uint32 m_fileConfigRevision;
+			uint32 m_loadedConfigRevision;
+			uint32 m_latestConfigRevision;
 			//-----------------------------------------------------------------------------
 			// Basic commands (helpers that go through the basic command class)
 			//-----------------------------------------------------------------------------
@@ -450,23 +525,24 @@ namespace OpenZWave
 			// Values (handled by the command classes)
 			//-----------------------------------------------------------------------------
 		public:
-			ValueID CreateValueID( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, ValueID::ValueType const _type );
+			ValueID CreateValueID( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, ValueID::ValueType const _type );
 
 			Value* GetValue( ValueID const& _id );
-			Value* GetValue( uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex );
-			bool RemoveValue( uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex );
+			Value* GetValue( uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex );
+			bool RemoveValue( uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex );
 
 			// Helpers for creating values
-			bool CreateValueBool( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, bool const _default, uint8 const _pollIntensity );
-			bool CreateValueButton( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, uint8 const _pollIntensity );
-			bool CreateValueByte( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _default, uint8 const _pollIntensity );
-			bool CreateValueDecimal( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, string const& _default, uint8 const _pollIntensity );
-			bool CreateValueInt( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity );
-			bool CreateValueList( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _size, vector<ValueList::Item> const& _items, int32 const _default, uint8 const _pollIntensity );
-			bool CreateValueRaw( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const* _default, uint8 const _length, uint8 const _pollIntensity );
-			bool CreateValueSchedule( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _pollIntensity );
-			bool CreateValueShort( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, int16 const _default, uint8 const _pollIntensity );
-			bool CreateValueString( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, string const& _default, uint8 const _pollIntensity );
+			bool CreateValueBitSet( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity );
+			bool CreateValueBool( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, bool const _default, uint8 const _pollIntensity );
+			bool CreateValueButton( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, uint8 const _pollIntensity );
+			bool CreateValueByte( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _default, uint8 const _pollIntensity );
+			bool CreateValueDecimal( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, string const& _default, uint8 const _pollIntensity );
+			bool CreateValueInt( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity );
+			bool CreateValueList( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _size, vector<ValueList::Item> const& _items, int32 const _default, uint8 const _pollIntensity );
+			bool CreateValueRaw( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const* _default, uint8 const _length, uint8 const _pollIntensity );
+			bool CreateValueSchedule( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _pollIntensity );
+			bool CreateValueShort( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, int16 const _default, uint8 const _pollIntensity );
+			bool CreateValueString( ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, string const& _default, uint8 const _pollIntensity );
 
 			// helpers for removing values
 			void RemoveValueList( ValueList* _value );
@@ -492,6 +568,11 @@ namespace OpenZWave
 			//-----------------------------------------------------------------------------
 		private:
 			bool RequestDynamicValues();
+		public:
+			//-----------------------------------------------------------------------------
+			// Refresh Dynamic Values from CommandClasses on Wakeup
+			//-----------------------------------------------------------------------------
+			void RefreshValuesOnWakeup();
 			//-----------------------------------------------------------------------------
 			// Groups
 			//-----------------------------------------------------------------------------
@@ -501,6 +582,7 @@ namespace OpenZWave
 			uint32 GetAssociations( uint8 const _groupIdx, uint8** o_associations );
 			uint32 GetAssociations( uint8 const _groupIdx, InstanceAssociation** o_associations );
 			uint8 GetMaxAssociations( uint8 const _groupIdx );
+			bool IsMultiInstance( uint8 const _groupIdx );
 			string GetGroupLabel( uint8 const _groupIdx );
 			void AddAssociation( uint8 const _groupIdx, uint8 const _targetNodeId, uint8 const _instance = 0x00 );
 			void RemoveAssociation( uint8 const _groupIdx, uint8 const _targetNodeId, uint8 const _instance = 0x00 );
@@ -590,26 +672,59 @@ namespace OpenZWave
 					uint8 m_quality;					// Node quality measure
 					uint8 m_lastReceivedMessage[254];
 					list<CommandClassData> m_ccData;
+					bool m_txStatusReportSupported;
+					uint16 m_txTime;
+					uint8 m_hops;
+					char m_rssi_1[8];
+					char m_rssi_2[8];
+					char m_rssi_3[8];
+					char m_rssi_4[8];
+					char m_rssi_5[8];
+					uint8 m_ackChannel;
+					uint8 m_lastTxChannel;
+					TXSTATUS_ROUTING_SCHEME m_routeScheme;
+					char m_routeUsed[9];
+					TXSTATUS_ROUTE_SPEED m_routeSpeed;
+					uint8 m_routeTries;
+					uint8 m_lastFailedLinkFrom;
+					uint8 m_lastFailedLinkTo;
 			};
 
 			private:
 			void GetNodeStatistics( NodeData* _data );
 
-			uint32 m_sentCnt;				// Number of messages sent from this node.
+			uint32 m_sentCnt;					// Number of messages sent from this node.
 			uint32 m_sentFailed;				// Number of sent messages failed
-			uint32 m_retries;				// Number of message retries
+			uint32 m_retries;					// Number of message retries
 			uint32 m_receivedCnt;				// Number of messages received from this node.
 			uint32 m_receivedDups;				// Number of duplicated messages received;
-			uint32 m_receivedUnsolicited;			// Number of messages received unsolicited
+			uint32 m_receivedUnsolicited;		// Number of messages received unsolicited
 			uint32 m_lastRequestRTT;			// Last message request RTT
 			uint32 m_lastResponseRTT;			// Last message response RTT
-			TimeStamp m_sentTS;				// Last message sent time
+			TimeStamp m_sentTS;					// Last message sent time
 			TimeStamp m_receivedTS;				// Last message received time
 			uint32 m_averageRequestRTT;			// Average Request round trip time.
-			uint32 m_averageResponseRTT;			// Average Response round trip time.
-			uint8 m_quality;				// Node quality measure
-			uint8 m_lastReceivedMessage[254];		// Place to hold last received message
-			uint8 m_errors;					// Count errors for dead node detection
+			uint32 m_averageResponseRTT;		// Average Response round trip time.
+			uint8 m_quality;					// Node quality measure
+			uint8 m_lastReceivedMessage[254];	// Place to hold last received message
+			uint8 m_errors;
+			bool m_txStatusReportSupported;		// if Extended Status Reports are available
+			uint16 m_txTime;					// Time Taken to Transmit the last frame
+			uint8 m_hops;						// Hops taken in transmitting last frame
+			char m_rssi_1[8];					// RSSI Level of last transmission
+			char m_rssi_2[8];					// RSSI Level of last transmission
+			char m_rssi_3[8];					// RSSI Level of last transmission
+			char m_rssi_4[8];					// RSSI Level of last transmission
+			char m_rssi_5[8];					// RSSI Level of last transmission
+			uint8 m_ackChannel;					// Channel we received the last ACK on
+			uint8 m_lastTxChannel;				// Channel we transmitted the last frame on
+			TXSTATUS_ROUTING_SCHEME m_routeScheme;				// The Scheme used to route the last frame
+			uint8 m_routeUsed[4];				// The Route Taken in the last frame
+			TXSTATUS_ROUTE_SPEED m_routeSpeed;					// Baud Rate of the last frame
+			uint8 m_routeTries;					// The number of attempts to route the last frame
+			uint8 m_lastFailedLinkFrom;			// The last failed link from
+			uint8 m_lastFailedLinkTo;			// The last failed link to
+
 
 			//-----------------------------------------------------------------------------
 			//	Encryption Related
@@ -622,6 +737,54 @@ namespace OpenZWave
 			private:
 			uint8 m_lastnonce;
 			uint8 m_nonces[8][8];
+
+			//-----------------------------------------------------------------------------
+			//	MetaData Related
+			//-----------------------------------------------------------------------------
+
+			public:
+			/**
+			 * MetaData Fields.
+			 * Available Fields that contain metadata about a device.
+			 * \see Manager::AddWatcher
+			 * \see Manager::BeginControllerCommand
+			 */
+			enum MetaDataFields
+			{
+				MetaData_OzwInfoPage_URL,
+				MetaData_ZWProductPage_URL,
+				MetaData_ProductPic,
+				MetaData_Description,
+				MetaData_ProductManual_URL,
+				MetaData_ProductPage_URL,
+				MetaData_InclusionHelp,
+				MetaData_ExclusionHelp,
+				MetaData_ResetHelp,
+				MetaData_WakeupHelp,
+				MetaData_ProductSupport_URL,
+				MetaData_Frequency,
+				MetaData_Name,
+				MetaData_Identifier,
+				MetaData_Invalid = 255
+			};
+
+			struct ChangeLogEntry {
+				string author;
+				string date;
+				int revision;
+				string description;
+			};
+			string const GetMetaData(MetaDataFields);
+			MetaDataFields const GetMetaDataId(string);
+			string const GetMetaDataString(MetaDataFields);
+			ChangeLogEntry const GetChangeLog(uint32_t);
+
+
+			private:
+			void ReadMetaDataFromXML(TiXmlElement const* _valueElement);
+			void WriteMetaDataXML(TiXmlElement*);
+			map<MetaDataFields, string> m_metadata;
+			map<uint32_t, ChangeLogEntry> m_changeLog;
 	};
 
 
diff --git a/hardware/openzwave/Notification.h b/hardware/openzwave/Notification.h
index 35b6a2309e..affefb6d12 100644
--- a/hardware/openzwave/Notification.h
+++ b/hardware/openzwave/Notification.h
@@ -28,6 +28,8 @@
 #ifndef _Notification_H
 #define _Notification_H
 
+#include <iostream>
+
 #include "Defs.h"
 #include "value_classes/ValueID.h"
 
@@ -53,6 +55,11 @@ namespace OpenZWave
 		friend class NoOperation;
 		friend class SceneActivation;
 		friend class WakeUp;
+		friend class ApplicationStatus;
+		friend class ManufacturerSpecificDB;
+		/* allow us to Stream a Notification */
+		//friend std::ostream &operator<<(std::ostream &os, const Notification &dt);
+
 
 	public:
 		/**
@@ -77,7 +84,7 @@ namespace OpenZWave
 			Type_NodeEvent,						/**< A node has triggered an event.  This is commonly caused when a node sends a Basic_Set command to the controller.  The event value is stored in the notification. */
 			Type_PollingDisabled,				/**< Polling of a node has been successfully turned off by a call to Manager::DisablePoll */
 			Type_PollingEnabled,				/**< Polling of a node has been successfully turned on by a call to Manager::EnablePoll */
-			Type_SceneEvent,					/**< Scene Activation Set received */
+			Type_SceneEvent,					/**< Scene Activation Set received (Depreciated in 1.8) */
 			Type_CreateButton,					/**< Handheld controller button event created */
 			Type_DeleteButton,					/**< Handheld controller button event deleted */
 			Type_ButtonOn,						/**< Handheld controller button on pressed event */
@@ -92,9 +99,11 @@ namespace OpenZWave
 			Type_AllNodesQueried,				/**< All nodes have been queried, so client application can expected complete data. */
 			Type_Notification,					/**< An error has occurred that we need to report. */
 			Type_DriverRemoved,					/**< The Driver is being removed. (either due to Error or by request) Do Not Call Any Driver Related Methods after receiving this call */
-			Type_ControllerCommand,				/**< When Controller Commands are executed, Notifications of Success/Failure etc are communicated via this Notification
-												  * Notification::GetEvent returns Driver::ControllerState and Notification::GetNotification returns Driver::ControllerError if there was a error */
-			Type_NodeReset						/**< The Device has been reset and thus removed from the NodeList in OZW */
+			Type_ControllerCommand,					/**< When Controller Commands are executed, Notifications of Success/Failure etc are communicated via this Notification
+										 * Notification::GetEvent returns Driver::ControllerCommand and Notification::GetNotification returns Driver::ControllerState */
+			Type_NodeReset,						/**< The Device has been reset and thus removed from the NodeList in OZW */
+			Type_UserAlerts,					/**< Warnings and Notifications Generated by the library that should be displayed to the user (eg, out of date config files) */
+			Type_ManufacturerSpecificDBReady			/**< The ManufacturerSpecific Database Is Ready */
 		};
 
 		/**
@@ -113,6 +122,24 @@ namespace OpenZWave
 			Code_Alive						/**< Report when a node is revived */
 		};
 
+		/**
+		 * User Alert Types - These are messages that should be displayed to users to inform them of
+		 * potential issues such as Out of Date configuration files etc
+		 */
+		enum UserAlertNotification
+		{
+			Alert_None,							/**< No Alert Currently Present */
+			Alert_ConfigOutOfDate,				/**< One of the Config Files is out of date. Use GetNodeId to determine which node is affected. */
+			Alert_MFSOutOfDate,					/**< the manufacturer_specific.xml file is out of date. */
+			Alert_ConfigFileDownloadFailed, 	/**< A Config File failed to download */
+			Alert_DNSError,						/**< A error occurred performing a DNS Lookup */
+			Alert_NodeReloadReqired,			/**< A new Config file has been discovered for this node, and its pending a Reload to Take Effect */
+			Alert_UnsupportedController,		/**< The Controller is not running a Firmware Library we support */
+			Alert_ApplicationStatus_Retry,  	/**< Application Status CC returned a Retry Later Message */
+			Alert_ApplicationStatus_Queued, 	/**< Command Has been Queued for execution later */
+			Alert_ApplicationStatus_Rejected,	/**< Command has been rejected */
+		};
+
 		/**
 		 * Get the type of this notification.
 		 * \return the notification type.
@@ -159,9 +186,10 @@ namespace OpenZWave
 
 		/**
 		 * Get the scene Id of a notification.  Only valid in Notification::Type_SceneEvent notifications.
+		 * The SceneActivation CC now exposes ValueID's that convey this information
 		 * \return the event value.
 		 */
-		uint8 GetSceneId()const{ assert(Type_SceneEvent==m_type); return m_byte; }
+		DEPRECATED uint8 GetSceneId()const{ assert(Type_SceneEvent==m_type); return m_byte; }
 
 		/**
 		 * Get the notification code from a notification. Only valid for Notification::Type_Notification or Notification::Type_ControllerCommand notifications.
@@ -169,21 +197,44 @@ namespace OpenZWave
 		 */
 		uint8 GetNotification()const{ assert((Type_Notification==m_type) || (Type_ControllerCommand == m_type)); return m_byte; }
 
+        /**
+         * Get the (controller) command from a notification. Only valid for Notification::Type_ControllerCommand notifications.
+         * \return the (controller) command code.
+         */
+        uint8 GetCommand()const{ assert(Type_ControllerCommand == m_type); return m_command; }
+		
 		/**
 		 * Helper function to simplify wrapping the notification class.  Should not normally need to be called.
 		 * \return the internal byte value of the notification.
 		 */
 		uint8 GetByte()const{ return m_byte; }
 
+		/**
+		 * Helper function to return the Timeout to wait for. Only valid for Notification::Type_UserAlerts - Notification::Alert_ApplicationStatus_Retry
+		 * \return The time to wait before retrying
+		 */
+		uint8 GetRetry()const{ assert((Type_UserAlerts == m_type) && (Alert_ApplicationStatus_Retry == m_useralerttype)); return m_byte; }
+
 		/**
 		 * Helper Function to return the Notification as a String
 		 * \return A string representation of this Notification
 		 */
 		string GetAsString()const;
 
+		/**
+		 * Retrieve the User Alert Type Enum to determine what this message is about
+		 * \return UserAlertNotification Enum describing the Alert Type
+		 */
+		UserAlertNotification GetUserAlertType()const {return m_useralerttype;};
+
+		/**
+		 * Return the Comport associated with the DriverFailed Message
+		 * \return a string representing the Comport
+		 */
+		string GetComPort()const { return m_comport; };
 
 	private:
-		Notification( NotificationType _type ): m_type( _type ), m_byte(0), m_event(0) {}
+		Notification( NotificationType _type ): m_type( _type ), m_byte(0), m_event(0), m_command(0), m_useralerttype(Alert_None) {}
 		~Notification(){}
 
 		void SetHomeAndNodeIds( uint32 const _homeId, uint8 const _nodeId ){ m_valueId = ValueID( _homeId, _nodeId ); }
@@ -194,14 +245,24 @@ namespace OpenZWave
 		void SetSceneId( uint8 const _sceneId ){ assert(Type_SceneEvent==m_type); m_byte = _sceneId; }
 		void SetButtonId( uint8 const _buttonId ){ assert(Type_CreateButton==m_type||Type_DeleteButton==m_type||Type_ButtonOn==m_type||Type_ButtonOff==m_type); m_byte = _buttonId; }
 		void SetNotification( uint8 const _noteId ){ assert((Type_Notification==m_type) || (Type_ControllerCommand == m_type)); m_byte = _noteId; }
+		void SetUserAlertNotification(UserAlertNotification const alerttype){ assert(Type_UserAlerts==m_type); m_useralerttype = alerttype; }
+		void SetCommand( uint8 const _command ){ assert(Type_ControllerCommand == m_type); m_command = _command; }
+		void SetComPort( string comport) { assert(Type_DriverFailed == m_type); m_comport = comport; }
+		void SetRetry (uint8 const timeout) { assert(Type_UserAlerts == m_type); m_byte = timeout; }
 
 		NotificationType		m_type;
 		ValueID				m_valueId;
 		uint8				m_byte;
 		uint8				m_event;
+		uint8				m_command;
+		UserAlertNotification m_useralerttype;
+		string				m_comport;
 	};
 
 } //namespace OpenZWave
 
+std::ostream& operator<<(std::ostream &os, const OpenZWave::Notification &dt);
+std::ostream& operator<<(std::ostream &os, const OpenZWave::Notification *dt);
+
 #endif //_Notification_H
 
diff --git a/hardware/openzwave/NotificationCCTypes.h b/hardware/openzwave/NotificationCCTypes.h
new file mode 100644
index 0000000000..77c2ea3a7e
--- /dev/null
+++ b/hardware/openzwave/NotificationCCTypes.h
@@ -0,0 +1,101 @@
+//-----------------------------------------------------------------------------
+//
+//	NotificationCCTypes.h
+//
+//	NotificationCCTypes for Notification Command Class
+//
+//	Copyright (c) 2018 Justin Hammond <justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef NOTIFICATIONCCTYPES_H
+#define NOTIFICATIONCCTYPES_H
+
+#include <cstdio>
+#include <string>
+#include <map>
+#include "Defs.h"
+#include "Driver.h"
+#include "command_classes/CommandClass.h"
+
+namespace OpenZWave
+{
+
+class NotificationCCTypes
+{
+public:
+	enum NotificationEventParamTypes {
+		NEPT_Location = 0x01,
+		NEPT_List,
+		NEPT_UserCodeReport,
+		NEPT_Byte,
+		NEPT_String,
+		NEPT_Time
+	};
+
+	class NotificationEventParams {
+	public:
+		uint32 id;
+		string name;
+		NotificationEventParamTypes type;
+		std::map<uint32, string> ListItems;
+	};
+	class NotificationEvents {
+	public:
+		uint32 id;
+		string name;
+		std::map<uint32, NotificationCCTypes::NotificationEventParams* > EventParams;
+	};
+	class NotificationTypes {
+	public:
+		uint32 id;
+		string name;
+		std::map<uint32, NotificationCCTypes::NotificationEvents *> Events;
+	};
+
+
+	//-----------------------------------------------------------------------------
+    // Construction
+    //-----------------------------------------------------------------------------
+private:
+    NotificationCCTypes();
+    ~NotificationCCTypes();
+    static void ReadXML();
+public:
+    static NotificationCCTypes* Get();
+    static bool Create();
+    static string GetEventParamNames(NotificationEventParamTypes);
+    string GetAlarmType(uint32);
+    string GetEventForAlarmType(uint32, uint32);
+    const NotificationTypes *GetAlarmNotificationTypes(uint32);
+    const NotificationEvents *GetAlarmNotificationEvents(uint32, uint32);
+    const std::map<uint32, NotificationCCTypes::NotificationEventParams* > GetAlarmNotificationEventParams(uint32, uint32);
+
+    //-----------------------------------------------------------------------------
+    // Instance Functions
+    //-----------------------------------------------------------------------------
+private:
+    static NotificationCCTypes* m_instance;
+    static std::map<uint32, NotificationCCTypes::NotificationTypes *> Notifications;
+    static uint32 m_revision;
+};
+
+};
+#endif // VALUEHELP_H
diff --git a/hardware/openzwave/OZWException.h b/hardware/openzwave/OZWException.h
index c6755c12c7..94b994d736 100644
--- a/hardware/openzwave/OZWException.h
+++ b/hardware/openzwave/OZWException.h
@@ -53,7 +53,8 @@ OPENZWAVE_EXPORT_WARNINGS_OFF
 				OZWEXCEPTION_INVALID_HOMEID = 100,
 				OZWEXCEPTION_INVALID_VALUEID,
 				OZWEXCEPTION_CANNOT_CONVERT_VALUEID,
-				OZWEXCEPTION_SECURITY_FAILED
+				OZWEXCEPTION_SECURITY_FAILED,
+				OZWEXCEPTION_INVALID_NODEID
 			};
 
 			//-----------------------------------------------------------------------------
@@ -103,7 +104,10 @@ OPENZWAVE_EXPORT_WARNINGS_OFF
 						ss << " - CannotConvertValueIDError (" << exitCode << ") Msg: " << msg;
 						break;
 					case OZWEXCEPTION_SECURITY_FAILED:
-						ss << " - Security Initilization Failed (" << exitCode << ") Msg: " << msg;
+						ss << " - Security Initialization Failed (" << exitCode << ") Msg: " << msg;
+						break;
+					case OZWEXCEPTION_INVALID_NODEID:
+						ss << " - InvalidNodeIDError (" << exitCode << ") Msg: " << msg;
 						break;
 				}
 				return ss.str();
diff --git a/hardware/openzwave/TimerThread.h b/hardware/openzwave/TimerThread.h
new file mode 100644
index 0000000000..4c9e2b3d7b
--- /dev/null
+++ b/hardware/openzwave/TimerThread.h
@@ -0,0 +1,185 @@
+//-----------------------------------------------------------------------------
+//
+//	TimerThread.h
+//
+//  Timer for scheduling future events
+//
+//	Copyright (c) 2017 h3ctrl <h3ctrl@gmail.com>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef _TIMERTHREAD_H_
+#define _TIMERTHREAD_H_
+
+#if __cplusplus >= 201103L || __APPLE__ || _MSC_VER
+#include <functional>
+using std::bind;
+using std::function;
+#else
+#include <tr1/functional>
+using std::tr1::bind;
+using std::tr1::function;
+#endif
+
+#include "Defs.h"
+#include "platform/Event.h"
+#include "platform/Mutex.h"
+#include "platform/TimeStamp.h"
+
+namespace OpenZWave
+{
+	class Driver;
+	class Thread;
+	class Timer;
+
+	/** \brief The TimerThread class makes it possible to schedule events to happen
+	 *  at a certain time in the future.
+	 */
+	class OPENZWAVE_EXPORT TimerThread
+	{
+		friend class Timer;
+	//-----------------------------------------------------------------------------
+	//  Timer based actions
+	//-----------------------------------------------------------------------------
+	public:
+		/** A timer callback function. */
+		typedef function<void(uint32)> TimerCallback;
+
+		/**
+		 * Constructor.
+		 */
+		TimerThread( Driver *_driver );
+
+		/**
+		 * Destructor.
+		 */
+		~TimerThread();
+
+		struct TimerEventEntry
+		{
+			Timer *instance;
+			TimeStamp timestamp;
+			TimerCallback callback;
+			uint32 id;
+		};
+
+		/**
+		 * Main entry point for the timer thread. Wrapper around TimerThreadProc.
+		 * \param _exitEvent Exit event indicating the thread should exit
+		 * \param _context A TimerThread object
+		 */
+		static void TimerThreadEntryPoint( Event* _exitEvent, void* _context );
+
+	private:
+		//Driver*	m_driver;
+
+		/**
+		 * Schedule an event.
+		 * \param _milliseconds The number of milliseconds before the event should happen
+		 * \param _callback The function to be called when the time is reached
+		 * \param _instance The Timer SubClass where this Event should be executed from
+		 */
+		TimerEventEntry* TimerSetEvent( int32 _milliseconds, TimerCallback _callback, Timer *_instance, uint32 id );
+
+		/**
+		 * Remove a Event
+		 *
+		 */
+		void TimerDelEvent(TimerEventEntry *);
+
+		/**
+		 * Main class entry point for the timer thread. Contains the main timer loop.
+		 * \param _exitEvent Exit event indicating the thread should exit
+		 */
+		void TimerThreadProc( Event* _exitEvent );
+
+
+    /** A list of upcoming timer events */
+		list<TimerEventEntry *> m_timerEventList;
+
+		Event*				m_timerEvent;   // Event to signal new timed action requested
+		Mutex*				m_timerMutex;   // Serialize access to class members
+		int32					m_timerTimeout; // Time in milliseconds to wait until next event
+	};
+
+	/**
+	 * \brief Timer SubClass for automatically registering/unregistering Timer Callbacks
+	 * if the instance goes out of scope
+	 *
+	 */
+
+	class OPENZWAVE_EXPORT Timer
+	{
+	public:
+		/**
+		 * \brief Constructor with the _driver this instance is associated with
+		 * \param _driver The Driver that this instance is associated with
+		 */
+		Timer( Driver *_driver );
+		/**
+		 * \brief Default Constructor
+		 */
+
+		Timer();
+		/**
+		 * \brief Destructor
+		 */
+		~Timer();
+		/**
+		 * \brief Schedule an event.
+		 * \param _milliseconds The number of milliseconds before the event should happen
+		 * \param _callback The function to be called when the time is reached
+		 * \param _id The ID of the Timer
+		 */
+		TimerThread::TimerEventEntry* TimerSetEvent( int32 _milliseconds, TimerThread::TimerCallback _callback, uint32 id );
+		/**
+		 *  \brief Delete All Events registered to this instance
+		 */
+		void TimerDelEvents();
+		/**
+		 * \brief Delete a Specific Event Registered to this instance
+		 * \param te The TimerEventEntry Struct that was returned when Setting a Event
+		 */
+		void TimerDelEvent(TimerThread::TimerEventEntry *te);
+		/**
+		 * \brief Delete a Specific Event Registered to this instance
+		 * \param id The ID of the Timer To Delete
+		 */
+		void TimerDelEvent(uint32 id);
+
+		/**
+		 * \brief Register the Driver Associated with this Instance
+		 * \param _driver The Driver
+		 */
+		void SetDriver(Driver *_driver);
+		/**
+		 * \brief Called From the TimerThread Class to execute a callback
+		 * \param te The TimerEventEntry structure for the callback to execute
+		 */
+		void TimerFireEvent(TimerThread::TimerEventEntry *te);
+	private:
+		Driver*	m_driver;
+		list<TimerThread::TimerEventEntry *> m_timerEventList;
+
+
+	};
+} // namespace OpenZWave
+
+#endif // _TIMERTHREAD_H_
diff --git a/hardware/openzwave/Utils.h b/hardware/openzwave/Utils.h
index d1ab30eaea..fb89c7144b 100644
--- a/hardware/openzwave/Utils.h
+++ b/hardware/openzwave/Utils.h
@@ -107,10 +107,20 @@ namespace OpenZWave
 			Mutex* _ref;
 	};
 
+	string ozwdirname(string);
 
+	string intToString( int x );
 
+	const char* rssi_to_string(uint8 _data);
 } // namespace OpenZWave
 
+/* keep this outside of the namespace */
+#if (defined _WINDOWS || defined WIN32 || defined _MSC_VER) && (!defined MINGW && !defined __MINGW32__ && !defined __MINGW64__)
+#include <ctime>
+	struct tm *localtime_r(time_t *_clock, struct tm *_result);
+#endif
+
+
 #endif
 
 
diff --git a/hardware/openzwave/ZWSecurity.h b/hardware/openzwave/ZWSecurity.h
index 85618a1b6a..77f70a49e2 100644
--- a/hardware/openzwave/ZWSecurity.h
+++ b/hardware/openzwave/ZWSecurity.h
@@ -1,9 +1,29 @@
-/*
- * Security.h
- *
- *  Created on: Mar 20, 2015
- *      Author: justinhammond
- */
+//-----------------------------------------------------------------------------
+//
+//	ZWSecurity.h
+//
+//	Common Security/Encryption Routines
+//
+//	Copyright (c) 2015 Justin Hammond <justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
 
 #ifndef SECURITY_H_
 #define SECURITY_H_
diff --git a/hardware/openzwave/command_classes/Alarm.h b/hardware/openzwave/command_classes/Alarm.h
index 528fd022da..f0ce6e6328 100644
--- a/hardware/openzwave/command_classes/Alarm.h
+++ b/hardware/openzwave/command_classes/Alarm.h
@@ -29,14 +29,16 @@
 #define _Alarm_H
 
 #include "command_classes/CommandClass.h"
+#include "TimerThread.h"
 
 namespace OpenZWave
 {
 	class ValueByte;
 
-	/** \brief Implements COMMAND_CLASS_ALARM (0x71), a Z-Wave device command class.
+	/** \brief Implements COMMAND_CLASS_NOTIFICATION (0x71), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
-	class Alarm: public CommandClass
+	class Alarm: public CommandClass, private Timer
 	{
 	public:
 		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new Alarm( _homeId, _nodeId ); }
@@ -45,25 +47,32 @@ namespace OpenZWave
 		/** \brief Get command class ID (1 byte) identifying this command class. */
 		static uint8 const StaticGetCommandClassId(){ return 0x71; }
 		/** \brief Get a string containing the name of this command class. */
-		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_ALARM"; }
+		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_NOTIFICATION"; }
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		/** \brief Get command class ID (1 byte) identifying this command class. (Inherited from CommandClass) */
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		/** \brief Get a string containing the name of this command class. (Inherited from CommandClass) */
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		/** \brief Handle a response to a message associated with this command class. (Inherited from CommandClass) */
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
+		virtual uint8 GetMaxVersion(){ return 8; }
+		virtual bool SetValue( Value const& _value );
 
-		virtual uint8 GetMaxVersion(){ return 3; }
-
-	protected:
-		virtual void CreateVars( uint8 const _instance );
 
 	private:
 		Alarm( uint32 const _homeId, uint8 const _nodeId );
+		void SetupEvents(uint32 type, uint32 index, vector<ValueList::Item> *_items, uint32 const _instance);
+		void ClearAlarm(uint32 type);
+		void ClearEventParams(uint32 const _instance);
+		bool m_v1Params;
+		std::vector<uint32> m_ParamsSet;
+		uint32 m_ClearTimeout;
+		std::map<uint32, uint32> m_TimersToInstances;
+
+
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/ApplicationStatus.h b/hardware/openzwave/command_classes/ApplicationStatus.h
index 533715ed45..5034e98408 100644
--- a/hardware/openzwave/command_classes/ApplicationStatus.h
+++ b/hardware/openzwave/command_classes/ApplicationStatus.h
@@ -33,6 +33,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_APPLICATION_STATUS (0x22), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ApplicationStatus: public CommandClass
 	{
diff --git a/hardware/openzwave/command_classes/Association.h b/hardware/openzwave/command_classes/Association.h
index aa127c4d4c..746b0361d1 100644
--- a/hardware/openzwave/command_classes/Association.h
+++ b/hardware/openzwave/command_classes/Association.h
@@ -34,6 +34,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_ASSOCIATION (0x85), a Z-Wave device command class.
+	 *\ingroup CommandClass
 	 */
 	class Association: public CommandClass
 	{
@@ -50,7 +51,7 @@ namespace OpenZWave
 		virtual void ReadXML( TiXmlElement const* _ccElement );
 		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }		
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/AssociationCommandConfiguration.h b/hardware/openzwave/command_classes/AssociationCommandConfiguration.h
index 53d4fe76f5..1d0a72efff 100644
--- a/hardware/openzwave/command_classes/AssociationCommandConfiguration.h
+++ b/hardware/openzwave/command_classes/AssociationCommandConfiguration.h
@@ -37,6 +37,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_ASSOCIATION_COMMAND_CONFIGURATION (0x9b), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 
 	class AssociationCommandConfiguration: public CommandClass
@@ -53,7 +54,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }		
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/BarrierOperator.h b/hardware/openzwave/command_classes/BarrierOperator.h
new file mode 100644
index 0000000000..37ca3a2566
--- /dev/null
+++ b/hardware/openzwave/command_classes/BarrierOperator.h
@@ -0,0 +1,70 @@
+//-----------------------------------------------------------------------------
+//
+//	BarrierOperator.h
+//
+//	Implementation of the COMMAND_CLASS_BARRIER_OPERATOR
+//
+//	Copyright (c) 2016 srirams (https://github.com/srirams)
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef _BarrierOperator_H
+#define _BarrierOperator_H
+
+#include "command_classes/CommandClass.h"
+
+namespace OpenZWave
+{
+	class ValueByte;
+	class ValueBool;
+
+	/** \brief Implements COMMAND_CLASS_BARRIER_OPERATOR (0x66), a Z-Wave device command class.
+	 * \ingroup CommandClass
+	 */
+	class BarrierOperator: public CommandClass
+	{
+	public:
+		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new BarrierOperator( _homeId, _nodeId ); }
+		virtual ~BarrierOperator(){}
+
+		static uint8 const StaticGetCommandClassId(){ return 0x66; }
+		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_BARRIER_OPERATOR"; }
+
+		// From CommandClass
+		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		bool RequestSignalSupport( uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
+		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
+		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
+		virtual bool SetValue(Value const& _value);
+
+		virtual uint8 GetMaxVersion(){ return 3; }
+
+	protected:
+		virtual void CreateVars( uint8 const _instance );
+
+	private:
+		BarrierOperator( uint32 const _homeId, uint8 const _nodeId );
+	};
+
+} // namespace OpenZWave
+
+#endif
diff --git a/hardware/openzwave/command_classes/Basic.h b/hardware/openzwave/command_classes/Basic.h
index 4587f2233e..f896c4c099 100644
--- a/hardware/openzwave/command_classes/Basic.h
+++ b/hardware/openzwave/command_classes/Basic.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_BASIC (0x20), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Basic: public CommandClass
 	{
@@ -46,13 +47,11 @@ namespace OpenZWave
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_BASIC"; }
 
 		bool SetMapping( uint8 const _commandClassId, bool const _doLog = true );	// Map COMMAND_CLASS_BASIC messages to another command class
-		uint8 GetMapping(){ return m_mapping; }
-
+		uint8_t GetMapping() { return m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING); };
 		// From CommandClass
 		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
@@ -66,9 +65,6 @@ namespace OpenZWave
 	private:
 		Basic( uint32 const _homeId, uint8 const _nodeId );
 
-		uint8						m_mapping;
-		bool						m_ignoreMapping;
-		bool						m_setAsReport;
 		std::vector<int>			m_instances;
 	};
 
diff --git a/hardware/openzwave/command_classes/BasicWindowCovering.h b/hardware/openzwave/command_classes/BasicWindowCovering.h
index 84fed67842..f80492d52b 100644
--- a/hardware/openzwave/command_classes/BasicWindowCovering.h
+++ b/hardware/openzwave/command_classes/BasicWindowCovering.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueButton;
 
 	/** \brief Implements COMMAND_CLASS_BASIC_WINDOW_COVERING (0x50), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class BasicWindowCovering: public CommandClass
 	{
diff --git a/hardware/openzwave/command_classes/Battery.h b/hardware/openzwave/command_classes/Battery.h
index 867f76157a..37753fa5e6 100644
--- a/hardware/openzwave/command_classes/Battery.h
+++ b/hardware/openzwave/command_classes/Battery.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_BATTERY (0x80), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Battery: public CommandClass
 	{
@@ -47,7 +48,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/CRC16Encap.h b/hardware/openzwave/command_classes/CRC16Encap.h
index d89e8788ab..3317510247 100644
--- a/hardware/openzwave/command_classes/CRC16Encap.h
+++ b/hardware/openzwave/command_classes/CRC16Encap.h
@@ -33,6 +33,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_CRC_16_ENCAP (0x56), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class CRC16Encap: public CommandClass
 	{
diff --git a/hardware/openzwave/command_classes/CentralScene.h b/hardware/openzwave/command_classes/CentralScene.h
index 0a869c4381..c7ea4d5e75 100644
--- a/hardware/openzwave/command_classes/CentralScene.h
+++ b/hardware/openzwave/command_classes/CentralScene.h
@@ -29,14 +29,16 @@
 #define _CentralScene_H
 
 #include "command_classes/CommandClass.h"
+#include "TimerThread.h"
 
 namespace OpenZWave
 {
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_CENTRAL_SCENE (0x5B), a Z-Wave device command class.
+	 *  \ingroup CommandClass
 	 */
-	class CentralScene: public CommandClass
+	class CentralScene: public CommandClass, private Timer
 	{
 	public:
 		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new CentralScene( _homeId, _nodeId ); }
@@ -57,6 +59,10 @@ namespace OpenZWave
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
 		/** \brief Create Default Vars for this CC */
 		void CreateVars( uint8 const _instance );
+		bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
+		bool RequestValue( uint32 const _requestFlags, uint16 const _what, uint8 const _instance, Driver::MsgQueue const _queue );
+		bool SetValue( Value const& _value);
+	private:
 		/**
 		 * Creates the ValueIDs for the keyAttributes
 		 * @param identical
@@ -64,14 +70,12 @@ namespace OpenZWave
 		 * @param sceneNumber
 		 * @return
 		 */
-		void createSupportedKeyAttributesValues(uint8 keyAttributes, uint8 sceneNumber, uint8 index, uint8 instance);
-		void ReadXML( TiXmlElement const* _ccElement	);
-		void WriteXML( TiXmlElement* _ccElement );
-		bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		bool RequestValue( uint32 const _requestFlags, uint8 const _what, uint8 const _instance, Driver::MsgQueue const _queue );
-	private:
+		void createSupportedKeyAttributesValues(uint8 keyAttributes, uint8 sceneNumber, uint8 instance);
+		void ClearScene(uint32 sceneID);
 		CentralScene( uint32 const _homeId, uint8 const _nodeId );
-		int32 m_scenecount;
+		bool m_slowrefresh;
+		uint8 m_sequence;
+		std::map<uint32, uint32> m_TimersSet;
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/ClimateControlSchedule.h b/hardware/openzwave/command_classes/ClimateControlSchedule.h
index 93fa2f4509..41676f7969 100644
--- a/hardware/openzwave/command_classes/ClimateControlSchedule.h
+++ b/hardware/openzwave/command_classes/ClimateControlSchedule.h
@@ -37,6 +37,7 @@ namespace OpenZWave
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE (0x46), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ClimateControlSchedule: public CommandClass
 	{
@@ -48,10 +49,8 @@ namespace OpenZWave
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE"; }
 
 		// From CommandClass
-		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
@@ -61,8 +60,7 @@ namespace OpenZWave
 		virtual void CreateVars( uint8 const _instance );
 
 	private:
-		ClimateControlSchedule( uint32 const _homeId, uint8 const _nodeId ): CommandClass( _homeId, _nodeId ), m_changeCounter( 0 ){}
-		uint8	m_changeCounter;
+		ClimateControlSchedule( uint32 const _homeId, uint8 const _nodeId );
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/Clock.h b/hardware/openzwave/command_classes/Clock.h
index 568453139c..01907a7e15 100644
--- a/hardware/openzwave/command_classes/Clock.h
+++ b/hardware/openzwave/command_classes/Clock.h
@@ -36,6 +36,7 @@ namespace OpenZWave
 	class ValueList;
 
 	/** \brief Implements COMMAND_CLASS_CLOCK (0x81), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Clock: public CommandClass
 	{
@@ -48,7 +49,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/Color.h b/hardware/openzwave/command_classes/Color.h
index 113ecc3b1a..38da5953ee 100644
--- a/hardware/openzwave/command_classes/Color.h
+++ b/hardware/openzwave/command_classes/Color.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_COLOR (0x33), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Color: public CommandClass
 	{
@@ -46,10 +47,8 @@ namespace OpenZWave
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_COLOR"; }
 
 		// From CommandClass
-		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		bool RequestColorChannelReport(	uint8 const coloridx, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
@@ -63,8 +62,6 @@ namespace OpenZWave
 
 	private:
 		Color( uint32 const _homeId, uint8 const _nodeId );
-		uint16 m_capabilities;
-		bool m_coloridxbug; // Fibaro RGBW before version 25.25 always reported the coloridx as 3 in the Report Message. Work around it
 		bool m_refreshinprogress;
 		uint8 m_coloridxcount;
 		uint8 m_colorvalues[9];
diff --git a/hardware/openzwave/command_classes/CommandClass.h b/hardware/openzwave/command_classes/CommandClass.h
index 2fdede8223..936ee94e70 100644
--- a/hardware/openzwave/command_classes/CommandClass.h
+++ b/hardware/openzwave/command_classes/CommandClass.h
@@ -34,168 +34,181 @@
 #include "Defs.h"
 #include "Bitfield.h"
 #include "Driver.h"
+#include "CompatOptionManager.h"
 
 namespace OpenZWave
 {
-	class Msg;
-	class Node;
-	class Value;
+class Msg;
+class Node;
+class Value;
+/** \defgroup CommandClass Z-Wave CommandClass Support
+ *
+ * This is the CommandClasses that OZW currently supports. Typically, a Application does not need
+ * to be aware of the CommandClasses a Device exposes, as they would be transparently exposed to the
+ * application as ValueID's
+ */
+
+
+/** \brief Base class for all Z-Wave command classes.
+ * \ingroup CommandClass
+ */
+class OPENZWAVE_EXPORT CommandClass
+{
 
-	/** \brief Base class for all Z-Wave command classes.
-	 */
-	class OPENZWAVE_EXPORT CommandClass
+public:
+	enum
 	{
+		RequestFlag_Static		= 0x00000001,	/**< Values that never change. */
+		RequestFlag_Session		= 0x00000002,	/**< Values that change infrequently, and so only need to be requested at start up, or via a manual refresh. */
+		RequestFlag_Dynamic		= 0x00000004,	/**< Values that change and will be requested if polling is enabled on the node. */
+		RequestFlag_AfterMark	= 0x00000008	/**< Values relevent to Controlling CC, not Controlled CC. */
+	};
 
-	public:
-		enum
-		{
-			RequestFlag_Static		= 0x00000001,	/**< Values that never change. */
-			RequestFlag_Session		= 0x00000002,	/**< Values that change infrequently, and so only need to be requested at start up, or via a manual refresh. */
-			RequestFlag_Dynamic		= 0x00000004,	/**< Values that change and will be requested if polling is enabled on the node. */
-			RequestFlag_AfterMark	= 0x00000008	/**< Values relevent to Controlling CC, not Controlled CC. */
-		};
-
-		CommandClass( uint32 const _homeId, uint8 const _nodeId );
-		virtual ~CommandClass();
-
-		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
-		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue ){ return false; }
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue ) { return false; }
-
-		virtual uint8 const GetCommandClassId()const = 0;
-		virtual string const GetCommandClassName()const = 0;
-		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 ) = 0;
-		virtual bool SetValue( Value const& _value ){ return false; }
-		virtual void SetValueBasic( uint8 const _instance, uint8 const _level ){}		// Class specific handling of BASIC value mapping
-		virtual void SetVersion( uint8 const _version ){ m_version = _version; }
-
-		bool RequestStateForAllInstances( uint32 const _requestFlags, Driver::MsgQueue const _queue );
-		bool CheckForRefreshValues(Value const* _value );
-
-		// The highest version number of the command class implemented by OpenZWave.  We only need
-		// to do version gets on command classes that override this with a number greater than one.
-		virtual uint8 GetMaxVersion(){ return 1; }
-
-		uint8 GetVersion()const{ return m_version; }
-		Bitfield const* GetInstances()const{ return &m_instances; }
-		uint32 GetHomeId()const{ return m_homeId; }
-		uint8 GetNodeId()const{ return m_nodeId; }
-		Driver* GetDriver()const;
-		Node* GetNodeUnsafe()const;
-		Value* GetValue( uint8 const _instance, uint8 const _index );
-		bool RemoveValue( uint8 const _instance, uint8 const _index );
-		uint8 GetEndPoint( uint8 const _instance )
-		{
-			map<uint8,uint8>::iterator it = m_endPointMap.find( _instance );
-			return( it == m_endPointMap.end() ? 0 : it->second );
-		}
-		uint8 GetInstance( uint8 const _endPoint )
+	CommandClass( uint32 const _homeId, uint8 const _nodeId );
+	virtual ~CommandClass();
+
+	virtual void ReadXML( TiXmlElement const* _ccElement );
+	virtual void WriteXML( TiXmlElement* _ccElement );
+	virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue ){ return false; }
+	virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue ) { return false; }
+	virtual void refreshValuesOnWakeup();
+
+
+	virtual uint8 const GetCommandClassId()const = 0;
+	virtual string const GetCommandClassName()const = 0;
+	string const GetCommandClassLabel();
+	void SetCommandClassLabel(string label);
+	virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 ) = 0;
+	virtual bool HandleIncomingMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 ) { return false; }
+	virtual bool SetValue( Value const& _value ){ return false; }
+	virtual void SetValueBasic( uint8 const _instance, uint8 const _level ){}		// Class specific handling of BASIC value mapping
+	virtual void SetVersion( uint8 const _version ); // Made out-of-line to allow checks against downgrade
+
+	bool RequestStateForAllInstances( uint32 const _requestFlags, Driver::MsgQueue const _queue );
+	bool CheckForRefreshValues(Value const* _value );
+
+	// The highest version number of the command class implemented by OpenZWave.  We only need
+	// to do version gets on command classes that override this with a number greater than one.
+	virtual uint8 GetMaxVersion(){ return 1; }
+
+	uint8 GetVersion()const{ return m_dom.GetFlagByte(STATE_FLAG_CCVERSION); }
+	Bitfield const* GetInstances()const{ return &m_instances; }
+	uint32 GetHomeId()const{ return m_homeId; }
+	uint8 GetNodeId()const{ return m_nodeId; }
+	Driver* GetDriver()const;
+	Node* GetNodeUnsafe()const;
+	Value* GetValue( uint8 const _instance, uint16 const _index );
+	bool RemoveValue( uint8 const _instance, uint16 const _index );
+	uint8 GetEndPoint( uint8 const _instance )
+	{
+		map<uint8,uint8>::iterator it = m_endPointMap.find( _instance );
+		return( it == m_endPointMap.end() ? 0 : it->second );
+	}
+	uint8 GetInstance( uint8 const _endPoint )
+	{
+		for( map<uint8,uint8>::iterator it = m_endPointMap.begin(); it != m_endPointMap.end(); ++it )
 		{
-			for( map<uint8,uint8>::iterator it = m_endPointMap.begin(); it != m_endPointMap.end(); ++it )
+			if( _endPoint == it->second )
 			{
-				if( _endPoint == it->second )
-				{
-					return it->first;
-				}
+				return it->first;
 			}
-			return 0;
 		}
-
-		void SetInstances( uint8 const _instances );
-		void SetInstance( uint8 const _endPoint );
-		void SetAfterMark(){ m_afterMark = true; }
-		void SetEndPoint( uint8 const _instance, uint8 const _endpoint){ m_endPointMap[_instance] = _endpoint; }
-		bool IsAfterMark()const{ return m_afterMark; }
-		bool IsCreateVars()const{ return m_createVars; }
-		bool IsGetSupported()const{ return m_getSupported; }
-		bool IsSecured()const{ return m_isSecured; }
-		void SetSecured(){ m_isSecured = true; }
-		bool IsSecureSupported()const { return m_SecureSupport; }
-		void ClearSecureSupport() { m_SecureSupport = false; }
-		void SetSecureSupport() { m_SecureSupport = true; }
-		void SetInNIF() { m_inNIF = true; }
-		bool IsInNIF() { return m_inNIF; }
-
-		// Helper methods
-		string ExtractValue( uint8 const* _data, uint8* _scale, uint8* _precision, uint8 _valueOffset = 1 )const;
-
-		/**
-		 *  Append a floating-point value to a message.
-		 *  \param _msg The message to which the value should be appended.
-		 *  \param _value A string containing a decimal number to be appended.
-		 *  \param _scale A byte indicating the scale corresponding to this value (e.g., 1=F and 0=C for temperatures).
-		 *  \see Msg
-		 */
-		void AppendValue( Msg* _msg, string const& _value, uint8 const _scale )const;
-		uint8 const GetAppendValueSize( string const& _value )const;
-		int32 ValueToInteger( string const& _value, uint8* o_precision, uint8* o_size )const;
-
-		void UpdateMappedClass( uint8 const _instance, uint8 const _classId, uint8 const _value );		// Update mapped class's value from BASIC class
-
-		typedef struct RefreshValue {
-			uint8 cc;
-			uint8 genre;
-			uint8 instance;
-			uint8 index;
-			std::vector<RefreshValue *> RefreshClasses;
-		} RefreshValue;
-
-	protected:
-		virtual void CreateVars( uint8 const _instance ){}
-		void ReadValueRefreshXML ( TiXmlElement const* _ccElement );
-
-	public:
-		virtual void CreateVars( uint8 const _instance, uint8 const _index ){}
-
-	private:
-		uint32		m_homeId;
-		uint8		m_nodeId;
-		uint8		m_version;
-		Bitfield	m_instances;
-OPENZWAVE_EXPORT_WARNINGS_OFF
-		map<uint8,uint8> m_endPointMap;
-OPENZWAVE_EXPORT_WARNINGS_ON
-		bool		m_afterMark;		// Set to true if the command class is listed after COMMAND_CLASS_MARK, and should not create any values.
-		bool		m_createVars;		// Do we want to create variables
-		int8		m_overridePrecision;	// Override precision when writing values if >=0
-		bool		m_getSupported;	    	// Get operation supported
-		bool		m_isSecured;		// is this command class secured with the Security Command Class
-		bool		m_SecureSupport; 	// Does this commandclass support secure encryption (eg, the Security CC doesn't encrypt itself, so it doesn't support encryption)
-		std::vector<RefreshValue *> m_RefreshClassValues; // what Command Class Values should we refresh ?
-		bool		m_inNIF; 			// Was this command class present in the NIF Frame we recieved (or was it created from our device_classes.xml file, or because it was in the Security SupportedReport message
+		return 0;
+	}
+
+	void SetInstances( uint8 const _instances );
+	void SetInstance( uint8 const _endPoint );
+	/* overridden in the MultiInstance CC to set the Global Label for each Instance */
+	virtual void SetInstanceLabel(uint8 const _instance, char *label);
+	string GetInstanceLabel(uint8 const _instance);
+	uint8 GetNumInstances() { return (uint8)m_endPointMap.size(); };
+	void SetAfterMark(){ m_dom.SetFlagBool(STATE_FLAG_AFTERMARK, true); }
+	void SetEndPoint( uint8 const _instance, uint8 const _endpoint){ m_endPointMap[_instance] = _endpoint; }
+	bool IsAfterMark()const{ return m_dom.GetFlagBool(STATE_FLAG_AFTERMARK); }
+	bool IsSecured()const{ return m_dom.GetFlagBool(STATE_FLAG_ENCRYPTED); }
+	void SetSecured(){ m_dom.SetFlagBool(STATE_FLAG_ENCRYPTED, true); }
+	bool IsSecureSupported()const { return m_SecureSupport; }
+	void ClearSecureSupport() { m_SecureSupport = false; }
+	void SetSecureSupport() { m_SecureSupport = true; }
+	void SetInNIF() { m_dom.SetFlagBool(STATE_FLAG_INNIF, true); }
+	bool IsInNIF() { return m_dom.GetFlagBool(STATE_FLAG_INNIF); }
+
+	// Helper methods
+	string ExtractValue( uint8 const* _data, uint8* _scale, uint8* _precision, uint8 _valueOffset = 1 )const;
+
+	/**
+	 *  Append a floating-point value to a message.
+	 *  \param _msg The message to which the value should be appended.
+	 *  \param _value A string containing a decimal number to be appended.
+	 *  \param _scale A byte indicating the scale corresponding to this value (e.g., 1=F and 0=C for temperatures).
+	 *  \see Msg
+	 */
+	void AppendValue( Msg* _msg, string const& _value, uint8 const _scale )const;
+	uint8 const GetAppendValueSize( string const& _value )const;
+	int32 ValueToInteger( string const& _value, uint8* o_precision, uint8* o_size )const;
+
+	void UpdateMappedClass( uint8 const _instance, uint8 const _classId, uint8 const _value );		// Update mapped class's value from BASIC class
+
+	typedef struct RefreshValue {
+		uint8 cc;
+		uint8 genre;
+		uint8 instance;
+		uint16 index;
+		std::vector<RefreshValue *> RefreshClasses;
+	} RefreshValue;
+
+protected:
+	virtual void CreateVars( uint8 const _instance ){}
+	void ReadValueRefreshXML ( TiXmlElement const* _ccElement );
+	CompatOptionManager m_com;
+	CompatOptionManager m_dom;
+
+
+public:
+	virtual void CreateVars( uint8 const _instance, uint8 const _index ){}
+
+private:
+	uint32		m_homeId;
+	uint8		m_nodeId;
+	Bitfield	m_instances;
+	OPENZWAVE_EXPORT_WARNINGS_OFF
+	map<uint8,uint8> m_endPointMap;
+	map<uint8, string> m_instanceLabel;
+	OPENZWAVE_EXPORT_WARNINGS_ON
+	bool		m_SecureSupport; 	// Does this commandclass support secure encryption (eg, the Security CC doesn't encrypt itself, so it doesn't support encryption)
+	std::vector<RefreshValue *> m_RefreshClassValues; // what Command Class Values should we refresh ?
+	string		m_commandClassLabel;
 	//-----------------------------------------------------------------------------
 	// Record which items of static data have been read from the device
 	//-----------------------------------------------------------------------------
-	public:
-		enum StaticRequest
-		{
-			StaticRequest_Instances		= 0x01,
-			StaticRequest_Values		= 0x02,
-			StaticRequest_Version		= 0x04
-		};
+public:
+	enum StaticRequest
+	{
+		StaticRequest_Instances		= 0x01,
+		StaticRequest_Values		= 0x02,
+		StaticRequest_Version		= 0x04
+	};
 
-		bool HasStaticRequest( uint8 _request )const{ return( (m_staticRequests & _request) != 0 ); }
-		void SetStaticRequest( uint8 _request ){ m_staticRequests |= _request; }
-		void ClearStaticRequest( uint8 _request );
+	bool HasStaticRequest( uint8_t _request )const{ return( (m_dom.GetFlagByte(STATE_FLAG_STATIC_REQUESTS) & _request) != 0 ); }
+	void SetStaticRequest( uint8_t _request );
+	void ClearStaticRequest( uint8_t _request );
 
-	private:
-		uint8   m_staticRequests;
 
 	//-----------------------------------------------------------------------------
 	//	Statistics
 	//-----------------------------------------------------------------------------
-	public:
-		uint32 GetSentCnt()const{ return m_sentCnt; }
-		uint32 GetReceivedCnt()const{ return m_receivedCnt; }
-		void SentCntIncr(){ m_sentCnt++; }
-		void ReceivedCntIncr(){ m_receivedCnt++; }
-
-	private:
-		uint32 m_sentCnt;				// Number of messages sent from this command class.
-		uint32 m_receivedCnt;				// Number of messages received from this commandclass.
-	};
-
+public:
+	uint32 GetSentCnt()const{ return m_sentCnt; }
+	uint32 GetReceivedCnt()const{ return m_receivedCnt; }
+	void SentCntIncr(){ m_sentCnt++; }
+	void ReceivedCntIncr(){ m_receivedCnt++; }
+
+private:
+	uint32 m_sentCnt;				// Number of messages sent from this command class.
+	uint32 m_receivedCnt;				// Number of messages received from this commandclass.
+
+};
+//@}
 } // namespace OpenZWave
 
 #endif
diff --git a/hardware/openzwave/command_classes/CommandClasses.h b/hardware/openzwave/command_classes/CommandClasses.h
index 7fd650bc95..79fad95433 100644
--- a/hardware/openzwave/command_classes/CommandClasses.h
+++ b/hardware/openzwave/command_classes/CommandClasses.h
@@ -30,6 +30,7 @@
 
 #include <string>
 #include <map>
+#include <list>
 #include "Defs.h"
 
 namespace OpenZWave
@@ -37,6 +38,7 @@ namespace OpenZWave
 	class CommandClass;
 
 	/** \brief Manages a map of command classes supported by a specific Z-Wave node.
+	 * \ingroup CommandClass
 	 */
 	class CommandClasses
 	{
@@ -48,6 +50,7 @@ namespace OpenZWave
 
 		static bool IsSupported( uint8 const _commandClassId );
 		static string GetName(uint8 const _commandClassId);
+		static list<uint8> GetAdvertisedCommandClasses();
 	private:
 		CommandClasses();
 		CommandClasses( CommandClasses const&	);					// prevent copy
@@ -59,12 +62,16 @@ namespace OpenZWave
 			return instance;
 		}
 
-		void Register( uint8 const _commandClassId, string const& _commandClassName, pfnCreateCommandClass_t _create );
+		void Register( uint8 const _commandClassId, string const& _commandClassName, pfnCreateCommandClass_t _create, bool advertised = false );
 		void ParseCommandClassOption( string const& _optionStr, bool const _include );
 		uint8 GetCommandClassId( string const& _name );
 
 		pfnCreateCommandClass_t m_commandClassCreators[256];
 		map<string,uint8>		m_namesToIDs;
+		/* a list of CommandClasses that are advertised on the controllers NIF packet and can be controlled
+		 * via other Nodes
+		 */
+		list<uint8>				m_advertisedCommandClasses;
 
 		// m_supportedCommandClasses uses single bits to mark whether OpenZWave supports a command class
 		// Checking this is not the same as looking for non-NULL entried in m_commandClassCreators, since
diff --git a/hardware/openzwave/command_classes/Configuration.h b/hardware/openzwave/command_classes/Configuration.h
index e97e7f159a..4714f410b2 100644
--- a/hardware/openzwave/command_classes/Configuration.h
+++ b/hardware/openzwave/command_classes/Configuration.h
@@ -36,6 +36,7 @@ namespace OpenZWave
 	class Value;
 
 	/** \brief Implements COMMAND_CLASS_CONFIGURATION (0x70), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Configuration: public CommandClass
 	{
@@ -48,8 +49,8 @@ namespace OpenZWave
 		static uint8 const StaticGetCommandClassId(){ return 0x70; }
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_CONFIGURATION"; }
 
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _parameter, uint8 const _index, Driver::MsgQueue const _queue );
-		void Set( uint8 const _parameter, int32 const _value, uint8 const _size );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _parameter, uint8 const _index, Driver::MsgQueue const _queue );
+		void Set( uint16 const _parameter, int32 const _value, uint8 const _size );
 
 		// From CommandClass
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
diff --git a/hardware/openzwave/command_classes/ControllerReplication.h b/hardware/openzwave/command_classes/ControllerReplication.h
index 338906a869..2050d964c3 100644
--- a/hardware/openzwave/command_classes/ControllerReplication.h
+++ b/hardware/openzwave/command_classes/ControllerReplication.h
@@ -33,6 +33,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_CONTROLLER_REPLICATION (0x21), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ControllerReplication: public CommandClass
 	{
diff --git a/hardware/openzwave/command_classes/DeviceResetLocally.h b/hardware/openzwave/command_classes/DeviceResetLocally.h
index f01e714781..be7c2c002c 100644
--- a/hardware/openzwave/command_classes/DeviceResetLocally.h
+++ b/hardware/openzwave/command_classes/DeviceResetLocally.h
@@ -33,6 +33,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_DEVICE_RESET_LOCALLY (0x5a), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class DeviceResetLocally: public CommandClass
 	{
diff --git a/hardware/openzwave/command_classes/DoorLock.h b/hardware/openzwave/command_classes/DoorLock.h
index 331248ba38..eda5073b6d 100644
--- a/hardware/openzwave/command_classes/DoorLock.h
+++ b/hardware/openzwave/command_classes/DoorLock.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueBool;
 
 	/** \brief Implements COMMAND_CLASS_DOOR_LOCK (0x62), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class DoorLock: public CommandClass
 	{
@@ -46,10 +47,8 @@ namespace OpenZWave
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_DOOR_LOCK"; }
 
 		// From CommandClass
-		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
@@ -61,12 +60,6 @@ namespace OpenZWave
 
 	private:
 		DoorLock( uint32 const _homeId, uint8 const _nodeId );
-		uint8 m_timeoutsupported;
-		uint8 m_insidehandlemode;
-		uint8 m_outsidehandlemode;
-		uint8 m_timeoutmins;
-		uint8 m_timeoutsecs;
-
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/DoorLockLogging.h b/hardware/openzwave/command_classes/DoorLockLogging.h
index 9661d4d926..149c574315 100644
--- a/hardware/openzwave/command_classes/DoorLockLogging.h
+++ b/hardware/openzwave/command_classes/DoorLockLogging.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueBool;
 
 	/** \brief Implements COMMAND_CLASS_DOOR_LOCK_LOGGING (0x4C), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class DoorLockLogging: public CommandClass
 	{
@@ -46,10 +47,8 @@ namespace OpenZWave
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_DOOR_LOCK_LOGGING"; }
 
 		// From CommandClass
-		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
@@ -59,7 +58,6 @@ namespace OpenZWave
 
 	private:
 		DoorLockLogging( uint32 const _homeId, uint8 const _nodeId );
-		uint8 m_MaxRecords;
 		uint8 m_CurRecord;
 	};
 
diff --git a/hardware/openzwave/command_classes/EnergyProduction.h b/hardware/openzwave/command_classes/EnergyProduction.h
index 8f48968f24..fe65712946 100644
--- a/hardware/openzwave/command_classes/EnergyProduction.h
+++ b/hardware/openzwave/command_classes/EnergyProduction.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueDecimal;
 
 	/** \brief Implements COMMAND_CLASS_ENERGY_PRODUCTION (0x90), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class EnergyProduction: public CommandClass
 	{
@@ -47,7 +48,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _valueEnum, uint8 const _dummy, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _valueEnum, uint8 const _dummy, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/Hail.h b/hardware/openzwave/command_classes/Hail.h
index 2ada4cba92..3c1959e1bd 100644
--- a/hardware/openzwave/command_classes/Hail.h
+++ b/hardware/openzwave/command_classes/Hail.h
@@ -33,6 +33,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_HAIL (0x82), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Hail: public CommandClass
 	{
diff --git a/hardware/openzwave/command_classes/Indicator.h b/hardware/openzwave/command_classes/Indicator.h
index c398257ef5..f5b049d9d9 100644
--- a/hardware/openzwave/command_classes/Indicator.h
+++ b/hardware/openzwave/command_classes/Indicator.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_INDICATOR (0x87), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Indicator: public CommandClass
 	{
@@ -47,7 +48,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/Language.h b/hardware/openzwave/command_classes/Language.h
index de74aa5a95..d593d0bbbd 100644
--- a/hardware/openzwave/command_classes/Language.h
+++ b/hardware/openzwave/command_classes/Language.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueString;
 
 	/** \brief Implements COMMAND_CLASS_LANGUAGE (0x89), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Language: public CommandClass
 	{
@@ -47,7 +48,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/Lock.h b/hardware/openzwave/command_classes/Lock.h
index 38a19cdc5f..2249968c78 100644
--- a/hardware/openzwave/command_classes/Lock.h
+++ b/hardware/openzwave/command_classes/Lock.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueBool;
 
 	/** \brief Implements COMMAND_CLASS_LOCK (0x76), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Lock: public CommandClass
 	{
@@ -47,7 +48,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/ManufacturerProprietary.h b/hardware/openzwave/command_classes/ManufacturerProprietary.h
new file mode 100644
index 0000000000..9c4ea58f30
--- /dev/null
+++ b/hardware/openzwave/command_classes/ManufacturerProprietary.h
@@ -0,0 +1,61 @@
+//-----------------------------------------------------------------------------
+//
+//	ManufacturerProprietary.h
+//
+//	Implementation of the Z-Wave COMMAND_CLASS_PROPRIETARY
+//
+//	Copyright (c) 2010 Mal Lansell <openzwave@lansell.org>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef _ManufacturerProprietary_H
+#define _ManufacturerProprietary_H
+
+#include "command_classes/CommandClass.h"
+
+namespace OpenZWave
+{
+	/** \brief Implements COMMAND_CLASS_PROPRIETARY (0x91), a Z-Wave device command class.
+	 *  \ingroup CommandClass
+	 */
+	class ManufacturerProprietary: public CommandClass
+	{
+	public:
+		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new ManufacturerProprietary( _homeId, _nodeId ); }
+		virtual ~ManufacturerProprietary(){}
+
+		static uint8 const StaticGetCommandClassId(){ return 0x91; }
+		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_MANUFACTURER_PROPRIETARY"; }
+
+		// From CommandClass
+		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
+		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
+		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool SetValue( Value const& _value );
+
+	private:
+		ManufacturerProprietary( uint32 const _homeId, uint8 const _nodeId ): CommandClass( _homeId, _nodeId ){}
+	};
+
+} // namespace OpenZWave
+
+#endif
+
diff --git a/hardware/openzwave/command_classes/ManufacturerSpecific.h b/hardware/openzwave/command_classes/ManufacturerSpecific.h
index 36bcd33c4e..e5bf1a528b 100644
--- a/hardware/openzwave/command_classes/ManufacturerSpecific.h
+++ b/hardware/openzwave/command_classes/ManufacturerSpecific.h
@@ -34,80 +34,47 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_MANUFACTURER_SPECIFIC (0x72), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ManufacturerSpecific: public CommandClass
 	{
 	public:
 		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new ManufacturerSpecific( _homeId, _nodeId ); }
-		virtual ~ManufacturerSpecific(){ UnloadProductXML(); }
+		virtual ~ManufacturerSpecific(){ }
 
 		static uint8 const StaticGetCommandClassId(){ return 0x72; }
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_MANUFACTURER_SPECIFIC"; }
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
+		virtual uint8 GetMaxVersion(){ return 2; }
 
-		static string SetProductDetails( Node *_node, uint16 _manufacturerId, uint16 _productType, uint16 _productId );
-		static bool LoadConfigXML( Node* _node, string const& _configXML );
+
+		void SetProductDetails( uint16 _manufacturerId, uint16 _productType, uint16 _productId );
+		bool LoadConfigXML();
 		
 		void ReLoadConfigXML();
 
+		void setLatestConfigRevision(uint32 rev);
+		void setFileConfigRevision(uint32 rev);
+		void setLoadedConfigRevision(uint32 rev);
+
+
+
+	protected:
+		virtual void CreateVars( uint8 const _instance );
+
+
 	private:
-		ManufacturerSpecific( uint32 const _homeId, uint8 const _nodeId ): CommandClass( _homeId, _nodeId ){ SetStaticRequest( StaticRequest_Values ); }
-		static bool LoadProductXML();
-		static void UnloadProductXML();
-
-		class Product
-		{
-		public:
-			Product
-			( 
-				uint16 _manufacturerId,
-				uint16 _productType,
-				uint16 _productId,
-				string const& _productName,
-				string const& _configPath
-			):	
-				m_manufacturerId( _manufacturerId ),
-				m_productType( _productType ),
-				m_productId( _productId ),
-				m_productName( _productName ),
-				m_configPath( _configPath )
-			{
-			}
-
-			int64 GetKey()const
-			{
-				return( GetKey( m_manufacturerId, m_productType, m_productId ) );
-			}
-
-			static int64 GetKey( uint16 _manufacturerId, uint16 _productType, uint16 _productId )
-			{
-				int64 key = (((int64)_manufacturerId)<<32) | (((int64)_productType)<<16) | (int64)_productId;
-				return key;
-			}
-
-			uint16 GetManufacturerId()const{ return m_manufacturerId; }
-			uint16 GetProductType()const{ return m_productType; }
-			uint16 GetProductId()const{ return m_productId; }
-			string GetProductName()const{ return m_productName; }
-			string GetConfigPath()const{ return m_configPath; }
-
-		private:
-			uint16	m_manufacturerId;
-			uint16	m_productType;
-			uint16	m_productId;
-			string	m_productName;
-			string	m_configPath;
-		};
-
-		static map<uint16,string>	s_manufacturerMap;
-		static map<int64,Product*>	s_productMap;
-		static bool					s_bXmlLoaded;
+		ManufacturerSpecific( uint32 const _homeId, uint8 const _nodeId );
+
+		uint32 m_fileConfigRevision;
+		uint32 m_loadedConfigRevision;
+		uint32 m_latestConfigRevision;
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/Meter.h b/hardware/openzwave/command_classes/Meter.h
index bcf415d171..0f9c9b6db8 100644
--- a/hardware/openzwave/command_classes/Meter.h
+++ b/hardware/openzwave/command_classes/Meter.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueDecimal;
 
 	/** \brief Implements COMMAND_CLASS_METER (0x32), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Meter: public CommandClass
 	{
@@ -47,7 +48,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/MeterPulse.h b/hardware/openzwave/command_classes/MeterPulse.h
index a6156273b3..91990b2ca7 100644
--- a/hardware/openzwave/command_classes/MeterPulse.h
+++ b/hardware/openzwave/command_classes/MeterPulse.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueInt;
 
 	/** \brief Implements COMMAND_CLASS_METER_PULSE (0x35), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class MeterPulse: public CommandClass
 	{
@@ -47,7 +48,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/MultiChannelAssociation.h b/hardware/openzwave/command_classes/MultiChannelAssociation.h
index 5a48d80ffa..fd07e78bb6 100644
--- a/hardware/openzwave/command_classes/MultiChannelAssociation.h
+++ b/hardware/openzwave/command_classes/MultiChannelAssociation.h
@@ -35,6 +35,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION (0x8E), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class MultiChannelAssociation: public CommandClass
 	{
@@ -51,7 +52,7 @@ namespace OpenZWave
 		virtual void ReadXML( TiXmlElement const* _ccElement );
 		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );			
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );			
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }		
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
@@ -68,7 +69,6 @@ namespace OpenZWave
 		bool			m_queryAll;			// When true, once a group has been queried, we request the next one.
 		uint8			m_numGroups;		// Number of groups supported by the device.  255 is reported by certain manufacturers and requires special handling.
 		vector<InstanceAssociation>	m_pendingMembers;	// Used to build a list of group members from multiple reports
-		bool			m_alwaysSetInstance; // Should we also set a instance, even if a instance wasn't specified (for Qubino devices - See bug #857)
 			
 	};
 
diff --git a/hardware/openzwave/command_classes/MultiCmd.h b/hardware/openzwave/command_classes/MultiCmd.h
index 57e30e7381..615e2b633c 100644
--- a/hardware/openzwave/command_classes/MultiCmd.h
+++ b/hardware/openzwave/command_classes/MultiCmd.h
@@ -33,6 +33,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_MULTI_CMD (0x8f), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class MultiCmd: public CommandClass
 	{
diff --git a/hardware/openzwave/command_classes/MultiInstance.h b/hardware/openzwave/command_classes/MultiInstance.h
index 40873f8600..a58349907c 100644
--- a/hardware/openzwave/command_classes/MultiInstance.h
+++ b/hardware/openzwave/command_classes/MultiInstance.h
@@ -34,6 +34,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_MULTI_INSTANCE (0x60), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class MultiInstance: public CommandClass
 	{
@@ -54,13 +55,6 @@ namespace OpenZWave
 			MultiChannelCmd_Encap				= 0x0d
 		};
 
-		enum MultiInstanceMapping
-		{
-			MultiInstanceMapAll,
-			MultiInstanceMapEndPoints,
-			MultiInstanceMapOther
-		};
-
 		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new MultiInstance( _homeId, _nodeId ); }
 		virtual ~MultiInstance(){}
 
@@ -70,14 +64,12 @@ namespace OpenZWave
 		bool RequestInstances();
 
 		// From CommandClass
-		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
+		virtual bool HandleIncomingMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
 		virtual uint8 GetMaxVersion(){ return 2; }
-
-		MultiInstanceMapping GetEndPointMap(){ return m_endPointMap; }
+		void SetInstanceLabel(uint8 const _instance, char *label);
 
 	private:
 		MultiInstance( uint32 const _homeId, uint8 const _nodeId );
@@ -92,18 +84,12 @@ namespace OpenZWave
 		bool		m_numEndPointsCanChange;
 		bool		m_endPointsAreSameClass;
 		uint8		m_numEndPoints;
-
+		
 		// Finding endpoints
 		uint8		m_endPointFindIndex;
 		uint8		m_numEndPointsFound;
 		set<uint8>	m_endPointCommandClasses;
 
-		// configuration
-		uint8		m_numEndPointsHint;		// for nodes that do not report correct number of end points
-		MultiInstanceMapping m_endPointMap;		// Determine how to map end points to value id instances
-		bool		m_endPointFindSupported;	// for nodes that (someday may) support endpointfind
-		bool 		m_ignoreUnsolicitedMultiChannelCapabilityReport;
-		bool		m_uniqueendpoints;
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/NoOperation.h b/hardware/openzwave/command_classes/NoOperation.h
index fa8a76f753..16f192406f 100644
--- a/hardware/openzwave/command_classes/NoOperation.h
+++ b/hardware/openzwave/command_classes/NoOperation.h
@@ -33,6 +33,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_NO_OPERATION (0x00), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class NoOperation: public CommandClass
 	{
diff --git a/hardware/openzwave/command_classes/NodeNaming.h b/hardware/openzwave/command_classes/NodeNaming.h
index 4e52491462..c280599cac 100644
--- a/hardware/openzwave/command_classes/NodeNaming.h
+++ b/hardware/openzwave/command_classes/NodeNaming.h
@@ -32,7 +32,24 @@
 
 namespace OpenZWave
 {
+
+	/** \brief Extract a String from a Z-Wave Encoded Packet
+	 * \ingroup CommandClass
+	 *
+	 *  this function is used by the NodeNaming CC as well as the Alarm CC
+	 */
+	string ExtractString( uint8 const* _data, uint32 const _length );
+
+	/** \brief Convert from UTF16 to UTF8
+	 * \ingroup CommandClass
+	 *
+	 *  this function is used by the NodeNaming CC as well as the Alarm CC
+	 */
+	uint32 ConvertUFT16ToUTF8( uint16 _utf16, char* _buffer, uint32 pos );
+
+
 	/** \brief Implements COMMAND_CLASS_NODE_NAMING (0x77), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class NodeNaming: public CommandClass
 	{
@@ -45,7 +62,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }		
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
@@ -55,9 +72,6 @@ namespace OpenZWave
 
 	private:
 		NodeNaming( uint32 const _homeId, uint8 const _nodeId ): CommandClass( _homeId, _nodeId ){}
-
-		string ExtractString( uint8 const* _data, uint32 const _length );
-		uint32 ConvertUFT16ToUTF8( uint16 _utf16, char* _buffer, uint32 pos );
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/Powerlevel.h b/hardware/openzwave/command_classes/Powerlevel.h
index 4e25ffb452..bd99e6b789 100644
--- a/hardware/openzwave/command_classes/Powerlevel.h
+++ b/hardware/openzwave/command_classes/Powerlevel.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueList;
 
 	/** \brief Implements COMMAND_CLASS_POWERLEVEL (0x73), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Powerlevel: public CommandClass
 	{
@@ -68,7 +69,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/Proprietary.h b/hardware/openzwave/command_classes/Proprietary.h
index 187af1ada5..c6044a70cf 100644
--- a/hardware/openzwave/command_classes/Proprietary.h
+++ b/hardware/openzwave/command_classes/Proprietary.h
@@ -33,6 +33,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_PROPRIETARY (0x88), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Proprietary: public CommandClass
 	{
diff --git a/hardware/openzwave/command_classes/Protection.h b/hardware/openzwave/command_classes/Protection.h
index 867265228c..9b71ea1aa4 100644
--- a/hardware/openzwave/command_classes/Protection.h
+++ b/hardware/openzwave/command_classes/Protection.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueList;
 
 	/** \brief Implements COMMAND_CLASS_PROTECTION (0x75), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Protection: public CommandClass
 	{
@@ -54,7 +55,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/SceneActivation.h b/hardware/openzwave/command_classes/SceneActivation.h
index b2a73716fd..c359f292e0 100644
--- a/hardware/openzwave/command_classes/SceneActivation.h
+++ b/hardware/openzwave/command_classes/SceneActivation.h
@@ -29,14 +29,16 @@
 #define _SceneActivation_H
 
 #include "command_classes/CommandClass.h"
+#include "TimerThread.h"
 
 namespace OpenZWave
 {
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_SCENEACTIVATION (0x2B), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
-	class SceneActivation: public CommandClass
+	class SceneActivation: public CommandClass, private Timer
 	{
 	public:
 		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new SceneActivation( _homeId, _nodeId ); }
@@ -53,10 +55,16 @@ namespace OpenZWave
 		/** \brief Get a string containing the name of this command class. (Inherited from CommandClass) */
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		/** \brief Handle a response to a message associated with this command class. (Inherited from CommandClass) */
+		virtual bool HandleIncommingMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
 
+	protected:
+		virtual void CreateVars( uint8 const _instance );
+
 	private:
-		SceneActivation( uint32 const _homeId, uint8 const _nodeId ): CommandClass( _homeId, _nodeId ){}
+		void ClearScene(uint32 id);
+		SceneActivation( uint32 const _homeId, uint8 const _nodeId );
+
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/Security.h b/hardware/openzwave/command_classes/Security.h
index 799552f5cb..14efc2d75b 100644
--- a/hardware/openzwave/command_classes/Security.h
+++ b/hardware/openzwave/command_classes/Security.h
@@ -34,8 +34,6 @@
 
 namespace OpenZWave
 {
-	/** \brief Implements COMMAND_CLASS_SECURITY (0x98), a Z-Wave device command class.
-	 */
 
 
 	enum SecurityCmd
@@ -59,6 +57,9 @@ namespace OpenZWave
 	};
 
 
+	/** \brief Implements COMMAND_CLASS_SECURITY (0x98), a Z-Wave device command class.
+	 * \ingroup CommandClass
+	 */
 
 	class Security: public CommandClass
 	{
@@ -68,14 +69,12 @@ namespace OpenZWave
 
 		static uint8 const StaticGetCommandClassId(){ return 0x98; }
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_SECURITY"; }
-		bool Init();
+		bool Init(uint32 const _instance = 1);
 		bool ExchangeNetworkKeys();
 		// From CommandClass
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
-		void ReadXML(TiXmlElement const* _ccElement);
-		void WriteXML(TiXmlElement* _ccElement);
 		void SendMsg( Msg* _msg );
 
 	protected:
@@ -84,8 +83,8 @@ namespace OpenZWave
 	private:
 		Security( uint32 const _homeId, uint8 const _nodeId );
 		bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue);
-		bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue);
-		bool HandleSupportedReport(uint8 const* _data, uint32 const _length);
+		bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue);
+		bool HandleSupportedReport(uint8 const* _data, uint32 const _length, uint32 const _instance = 1);
 
 		bool m_schemeagreed;
 		bool m_secured;
diff --git a/hardware/openzwave/command_classes/SensorAlarm.h b/hardware/openzwave/command_classes/SensorAlarm.h
index 7f3a421fad..842ff150dc 100644
--- a/hardware/openzwave/command_classes/SensorAlarm.h
+++ b/hardware/openzwave/command_classes/SensorAlarm.h
@@ -37,6 +37,7 @@ namespace OpenZWave
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_SENSOR_ALARM (0x9c), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class SensorAlarm: public CommandClass
 	{
@@ -49,7 +50,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _alarmType, uint8 const _dummy, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _alarmType, uint8 const _dummy, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/SensorBinary.h b/hardware/openzwave/command_classes/SensorBinary.h
index ac107fe726..35eb3f6265 100644
--- a/hardware/openzwave/command_classes/SensorBinary.h
+++ b/hardware/openzwave/command_classes/SensorBinary.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueBool;
 
 	/** \brief Implements COMMAND_CLASS_SENSOR_BINARY (0x30), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class SensorBinary: public CommandClass
 	{
@@ -49,7 +50,7 @@ namespace OpenZWave
 		virtual void ReadXML( TiXmlElement const* _ccElement );
 		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/SensorMultilevel.h b/hardware/openzwave/command_classes/SensorMultilevel.h
index e1ccc2ac93..b3d33ae26d 100644
--- a/hardware/openzwave/command_classes/SensorMultilevel.h
+++ b/hardware/openzwave/command_classes/SensorMultilevel.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueDecimal;
 
 	/** \brief Implements COMMAND_CLASS_SENSOR_MULTILEVEL (0x31), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class SensorMultilevel: public CommandClass
 	{
@@ -47,12 +48,12 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _dummy, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _dummy, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
-		
-		virtual uint8 GetMaxVersion(){ return 5; }
+
+		virtual uint8 GetMaxVersion(){ return 11; }
 
 	protected:
 		virtual void CreateVars( uint8 const _instance );
diff --git a/hardware/openzwave/command_classes/SimpleAV.h b/hardware/openzwave/command_classes/SimpleAV.h
new file mode 100644
index 0000000000..1433dbe3ac
--- /dev/null
+++ b/hardware/openzwave/command_classes/SimpleAV.h
@@ -0,0 +1,29 @@
+#include "command_classes/CommandClass.h"
+
+namespace OpenZWave
+{
+	/** Implements COMMAND_CLASS_SIMPLE_AV_CONTROL (0x94), a Z-Wave device command class. */
+	class SimpleAV : public CommandClass
+	{
+	public:
+		static CommandClass* Create(uint32 const _homeId, uint8 const _nodeId) { return new SimpleAV(_homeId, _nodeId); }
+		virtual ~SimpleAV() {}
+
+		static uint8 const StaticGetCommandClassId() { return 0x94; }
+		static string const StaticGetCommandClassName() { return "COMMAND_CLASS_SIMPLE_AV_CONTROL"; }
+
+		// From CommandClass
+		virtual uint8 const GetCommandClassId()const { return StaticGetCommandClassId(); }
+		virtual string const GetCommandClassName()const { return StaticGetCommandClassName(); }
+		virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1);
+		virtual bool SetValue(Value const& _value);
+
+	protected:
+		virtual void CreateVars(uint8 const _instance);
+		
+	private:
+		SimpleAV(uint32 const _homeId, uint8 const _nodeId) : CommandClass(_homeId, _nodeId) {}
+		uint8 m_sequence;
+	};
+
+} // namespace OpenZWave
\ No newline at end of file
diff --git a/hardware/openzwave/command_classes/SimpleAVCommandItem.h b/hardware/openzwave/command_classes/SimpleAVCommandItem.h
new file mode 100644
index 0000000000..b93bee8e46
--- /dev/null
+++ b/hardware/openzwave/command_classes/SimpleAVCommandItem.h
@@ -0,0 +1,25 @@
+#include <string>
+#include <vector>
+#include "Defs.h"
+
+namespace OpenZWave
+{
+	class SimpleAVCommandItem
+	{
+	public:
+		SimpleAVCommandItem(uint16 const _code, string _name, string _description, uint16 const _version);
+		uint16 GetCode();
+		string GetName();
+		string GetDescription();
+		uint16 GetVersion();
+
+		static vector<SimpleAVCommandItem> GetCommands();
+
+	private:
+		uint16 m_code;
+		string m_name;
+		string m_description;
+		uint16 m_version;
+	};
+}
+
diff --git a/hardware/openzwave/command_classes/SoundSwitch.h b/hardware/openzwave/command_classes/SoundSwitch.h
new file mode 100644
index 0000000000..d0ff41a72a
--- /dev/null
+++ b/hardware/openzwave/command_classes/SoundSwitch.h
@@ -0,0 +1,76 @@
+//-----------------------------------------------------------------------------
+//
+//	SoundSwitch.h
+//
+//	Implementation of the Z-Wave COMMAND_CLASS_SOUND_SWITCH
+//
+//	Copyright (c) 2014 Justin Hammond <Justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef _SoundSwitch_H
+#define _SoundSwitch_H
+
+#include "command_classes/CommandClass.h"
+
+namespace OpenZWave
+{
+	class ValueByte;
+	class ValueList;
+
+	/** \brief Implements COMMAND_CLASS_SOUND_SWITCH (0x79), a Z-Wave device command class.
+	 * \ingroup CommandClass
+	 */
+	class SoundSwitch: public CommandClass
+	{
+	private:
+		struct SoundSwitchToneInfo {
+			uint16 duration;
+			string name;
+		};
+	public:
+		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new SoundSwitch( _homeId, _nodeId ); }
+		virtual ~SoundSwitch(){}
+
+		static uint8 const StaticGetCommandClassId(){ return 0x79; }
+		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_SOUND_SWITCH"; }
+
+		// From CommandClass
+		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
+		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
+		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
+		virtual bool SetValue( Value const& _value );
+
+	protected:
+		virtual void CreateVars( uint8 const _instance );
+
+	private:
+		SoundSwitch( uint32 const _homeId, uint8 const _nodeId );
+
+		uint8 m_toneCount;
+		std::map<uint8, SoundSwitchToneInfo> m_toneInfo;
+	};
+
+} // namespace OpenZWave
+
+#endif
+
diff --git a/hardware/openzwave/command_classes/SwitchAll.h b/hardware/openzwave/command_classes/SwitchAll.h
index 55b031929d..5c98ae44d4 100644
--- a/hardware/openzwave/command_classes/SwitchAll.h
+++ b/hardware/openzwave/command_classes/SwitchAll.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueList;
 
 	/** \brief Implements COMMAND_CLASS_SWITCH_ALL (0x27), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class SwitchAll: public CommandClass
 	{
@@ -50,7 +51,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/SwitchBinary.h b/hardware/openzwave/command_classes/SwitchBinary.h
index 731af6488d..c686bd78cc 100644
--- a/hardware/openzwave/command_classes/SwitchBinary.h
+++ b/hardware/openzwave/command_classes/SwitchBinary.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueBool;
 
 	/** \brief Implements COMMAND_CLASS_SWITCH_BINARY (0x25), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class SwitchBinary: public CommandClass
 	{
@@ -47,13 +48,16 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
 		virtual bool SetValue( Value const& _value );
 		virtual void SetValueBasic( uint8 const _instance, uint8 const _value );
+		bool SetState( uint8 const _instance, bool const _state );
 
+		virtual uint8 GetMaxVersion(){ return 2; }
+		
 	protected:
 		virtual void CreateVars( uint8 const _instance );
 
diff --git a/hardware/openzwave/command_classes/SwitchMultilevel.h b/hardware/openzwave/command_classes/SwitchMultilevel.h
index 43cafb570b..8b52133c63 100644
--- a/hardware/openzwave/command_classes/SwitchMultilevel.h
+++ b/hardware/openzwave/command_classes/SwitchMultilevel.h
@@ -37,6 +37,7 @@ namespace OpenZWave
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_SWITCH_MULTILEVEL (0x26), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class SwitchMultilevel: public CommandClass
 	{
@@ -49,15 +50,16 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
+		virtual bool HandleIncomingMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
 		virtual bool SetValue( Value const& _value );
 		virtual void SetValueBasic( uint8 const _instance, uint8 const _value );
 		virtual void SetVersion( uint8 const _version );
 
-		virtual uint8 GetMaxVersion(){ return 3; }
+		virtual uint8 GetMaxVersion(){ return 4; }
 
 	protected:
 		virtual void CreateVars( uint8 const _instance );
diff --git a/hardware/openzwave/command_classes/SwitchToggleBinary.h b/hardware/openzwave/command_classes/SwitchToggleBinary.h
index fa435d9ee3..6634e1cfc2 100644
--- a/hardware/openzwave/command_classes/SwitchToggleBinary.h
+++ b/hardware/openzwave/command_classes/SwitchToggleBinary.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueBool;
 
 	/** \brief Implements COMMAND_CLASS_SWITCH_TOGGLE_BINARY (0x28), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class SwitchToggleBinary: public CommandClass
 	{
@@ -47,7 +48,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/SwitchToggleMultilevel.h b/hardware/openzwave/command_classes/SwitchToggleMultilevel.h
index cf5d734dce..eeedd6c048 100644
--- a/hardware/openzwave/command_classes/SwitchToggleMultilevel.h
+++ b/hardware/openzwave/command_classes/SwitchToggleMultilevel.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueByte;
 
 	/** \brief Implements COMMAND_CLASS_SWITCH_TOGGLE_MULTILEVEL (0x29), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class SwitchToggleMultilevel: public CommandClass
 	{
@@ -56,7 +57,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/ThermostatFanMode.h b/hardware/openzwave/command_classes/ThermostatFanMode.h
index bfd3e07fb5..81bc45152e 100644
--- a/hardware/openzwave/command_classes/ThermostatFanMode.h
+++ b/hardware/openzwave/command_classes/ThermostatFanMode.h
@@ -38,6 +38,7 @@ namespace OpenZWave
 	class ValueList;
 
 	/** \brief Implements COMMAND_CLASS_THERMOSTAT_FAN_MODE (0x44), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ThermostatFanMode: public CommandClass
 	{
@@ -52,7 +53,7 @@ namespace OpenZWave
 		virtual void ReadXML( TiXmlElement const* _ccElement );
 		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _getTypeEnum, uint8 const _dummy, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _getTypeEnum, uint8 const _dummy, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/ThermostatFanState.h b/hardware/openzwave/command_classes/ThermostatFanState.h
index 5866348f01..853cc5a656 100644
--- a/hardware/openzwave/command_classes/ThermostatFanState.h
+++ b/hardware/openzwave/command_classes/ThermostatFanState.h
@@ -38,6 +38,7 @@ namespace OpenZWave
 	class ValueString;
 
 	/** \brief Implements COMMAND_CLASS_THERMOSTAT_FAN_STATE (0x45), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ThermostatFanState: public CommandClass
 	{
@@ -50,7 +51,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/ThermostatMode.h b/hardware/openzwave/command_classes/ThermostatMode.h
index 8c6693a9dc..48bdabb680 100644
--- a/hardware/openzwave/command_classes/ThermostatMode.h
+++ b/hardware/openzwave/command_classes/ThermostatMode.h
@@ -38,6 +38,7 @@ namespace OpenZWave
 	class ValueList;
 
 	/** \brief Implements COMMAND_CLASS_THERMOSTAT_MODE (0x40), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ThermostatMode: public CommandClass
 	{
@@ -52,11 +53,12 @@ namespace OpenZWave
 		virtual void ReadXML( TiXmlElement const* _ccElement );
 		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _getTypeEnum, uint8 const _dummy, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _getTypeEnum, uint8 const _dummy, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
 		virtual bool SetValue( Value const& _value );
+		virtual uint8 GetMaxVersion(){ return 3; }
 
 	protected:
 		virtual void CreateVars( uint8 const _instance );
diff --git a/hardware/openzwave/command_classes/ThermostatOperatingState.h b/hardware/openzwave/command_classes/ThermostatOperatingState.h
index ee4d39a05e..c160e41a4b 100644
--- a/hardware/openzwave/command_classes/ThermostatOperatingState.h
+++ b/hardware/openzwave/command_classes/ThermostatOperatingState.h
@@ -38,6 +38,7 @@ namespace OpenZWave
 	class ValueString;
 
 	/** \brief Implements COMMAND_CLASS_THERMOSTAT_OPERATING_STATE (0x42), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ThermostatOperatingState: public CommandClass
 	{
@@ -50,7 +51,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/ThermostatSetpoint.h b/hardware/openzwave/command_classes/ThermostatSetpoint.h
index 595e0d30dc..dde217ee37 100644
--- a/hardware/openzwave/command_classes/ThermostatSetpoint.h
+++ b/hardware/openzwave/command_classes/ThermostatSetpoint.h
@@ -37,6 +37,7 @@ namespace OpenZWave
 	class ValueDecimal;
 
 	/** \brief Implements COMMAND_CLASS_THERMOSTAT_SETPOINT (0x43), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ThermostatSetpoint: public CommandClass
 	{
@@ -48,21 +49,19 @@ namespace OpenZWave
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_THERMOSTAT_SETPOINT"; }
 
 		// From CommandClass
-		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _setPointIndex, uint8 const _dummy, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _setPointIndex, uint8 const _dummy, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
 		virtual bool SetValue( Value const& _value );
+		virtual uint8 GetMaxVersion(){ return 3; }
 
 	public:
 		virtual void CreateVars( uint8 const _instance, uint8 const _index );
 
 	private:
 		ThermostatSetpoint( uint32 const _homeId, uint8 const _nodeId );
-		uint8 m_setPointBase;
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/TimeParameters.h b/hardware/openzwave/command_classes/TimeParameters.h
index e0ff6df078..1d2f10d3c1 100644
--- a/hardware/openzwave/command_classes/TimeParameters.h
+++ b/hardware/openzwave/command_classes/TimeParameters.h
@@ -36,6 +36,7 @@ namespace OpenZWave
 	class ValueList;
 
 	/** \brief Implements COMMAND_CLASS_TIME_PARAMETERS (0x8B), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class TimeParameters: public CommandClass
 	{
@@ -48,7 +49,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/UserCode.h b/hardware/openzwave/command_classes/UserCode.h
index 6f44980bea..175bbd3af7 100644
--- a/hardware/openzwave/command_classes/UserCode.h
+++ b/hardware/openzwave/command_classes/UserCode.h
@@ -33,19 +33,24 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_USER_CODE (0x63), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class UserCode: public CommandClass
 	{
-	public:
+	private:
 		enum UserCodeStatus
 		{
 			UserCode_Available		= 0x00,
 			UserCode_Occupied		= 0x01,
 			UserCode_Reserved		= 0x02,
-			UserCode_NotAvailable		= 0xfe,
+			UserCode_NotAvailable	= 0xfe,
 			UserCode_Unset			= 0xff
 		};
-
+		struct UserCodeEntry {
+			UserCodeStatus status;
+			uint8 usercode[10];
+		};
+	public:
 		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new UserCode( _homeId, _nodeId ); }
 		virtual ~UserCode(){}
 
@@ -53,10 +58,8 @@ namespace OpenZWave
 		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_USER_CODE"; }
 
 		// From CommandClass
-		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
@@ -100,9 +103,8 @@ namespace OpenZWave
 		}
 
 		bool		m_queryAll;				// True while we are requesting all the user codes.
-		uint8		m_currentCode;
-		uint8		m_userCodeCount;
-		uint8		m_userCodesStatus[256];
+		uint16		m_currentCode;
+		std::map<uint16, UserCodeEntry>	m_userCode;
 		bool		m_refreshUserCodes;
 	};
 
diff --git a/hardware/openzwave/command_classes/Version.h b/hardware/openzwave/command_classes/Version.h
index b3591ad1a5..14d0fb59b2 100644
--- a/hardware/openzwave/command_classes/Version.h
+++ b/hardware/openzwave/command_classes/Version.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class ValueString;
 
 	/** \brief Implements COMMAND_CLASS_VERSION (0x86), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class Version: public CommandClass
 	{
@@ -48,10 +49,8 @@ namespace OpenZWave
 		bool RequestCommandClassVersion( CommandClass const* _commandClass );
 
 		// From CommandClass
-		virtual void ReadXML( TiXmlElement const* _ccElement );
-		virtual void WriteXML( TiXmlElement* _ccElement );
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
@@ -61,8 +60,6 @@ namespace OpenZWave
 
 	private:
 		Version( uint32 const _homeId, uint8 const _nodeId );
-
-		bool m_classGetSupported;
 	};
 
 } // namespace OpenZWave
diff --git a/hardware/openzwave/command_classes/WakeUp.h b/hardware/openzwave/command_classes/WakeUp.h
index 12152d621d..727a610ec0 100644
--- a/hardware/openzwave/command_classes/WakeUp.h
+++ b/hardware/openzwave/command_classes/WakeUp.h
@@ -31,6 +31,7 @@
 #include <list>
 #include "command_classes/CommandClass.h"
 #include "Driver.h"
+#include "TimerThread.h"
 
 namespace OpenZWave
 {
@@ -39,8 +40,9 @@ namespace OpenZWave
 	class Mutex;
 
 	/** \brief Implements COMMAND_CLASS_WAKE_UP (0x84), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
-	class WakeUp: public CommandClass
+	class WakeUp: public CommandClass, private Timer
 	{
 	public:
 		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new WakeUp( _homeId, _nodeId ); }
@@ -51,14 +53,20 @@ namespace OpenZWave
 
 		void Init();	// Starts the process of requesting node state from a sleeping device.
 		void QueueMsg( Driver::MsgQueueItem const& _item );
+
+		/** \brief Send all pending messages followed by a no more information message. */
 		void SendPending();
+
+		/** \brief Send a no more information message. */
+		void SendNoMoreInfo(uint32 id);
+
 		bool IsAwake()const{ return m_awake; }
 		void SetAwake( bool _state );
 		void SetPollRequired(){ m_pollRequired = true; }
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/command_classes/ZWavePlusInfo.h b/hardware/openzwave/command_classes/ZWavePlusInfo.h
index ac9214a5c4..f0e38dbfc5 100644
--- a/hardware/openzwave/command_classes/ZWavePlusInfo.h
+++ b/hardware/openzwave/command_classes/ZWavePlusInfo.h
@@ -33,6 +33,7 @@
 namespace OpenZWave
 {
 	/** \brief Implements COMMAND_CLASS_ZWAVEPLUS_INFO (0x5E), a Z-Wave device command class.
+	 * \ingroup CommandClass
 	 */
 	class ZWavePlusInfo: public CommandClass
 	{
@@ -45,7 +46,7 @@ namespace OpenZWave
 
 		// From CommandClass
 		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
-		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
 		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
 		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
 		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
diff --git a/hardware/openzwave/platform/Controller.h b/hardware/openzwave/platform/Controller.h
index ee80880e70..89221eacb4 100644
--- a/hardware/openzwave/platform/Controller.h
+++ b/hardware/openzwave/platform/Controller.h
@@ -38,11 +38,22 @@ namespace OpenZWave
 {
 	class Driver;
 
+	/** \defgroup Platform Platform Abstraction Support
+	 *
+	 * These files abstract differences in platforms that OZW supports
+	 *
+	 */
+
+	/** \brief Represents a USB Controller
+	 * \ingroup Platform
+	 *
+	 * Controller is derived from Stream rather than containing one, so that
+	 * we can use its Wait abilities without having to duplicate them here.
+	 * The stream is used for input.  Buffering of output is handled by the OS.
+	 */
+
 	class Controller: public Stream
 	{
-		// Controller is derived from Stream rather than containing one, so that
-		// we can use its Wait abilities without having to duplicate them here.
-		// The stream is used for input.  Buffering of output is handled by the OS. 
 
 	public:
 		/**
diff --git a/hardware/openzwave/platform/DNS.h b/hardware/openzwave/platform/DNS.h
new file mode 100644
index 0000000000..32b26a1f17
--- /dev/null
+++ b/hardware/openzwave/platform/DNS.h
@@ -0,0 +1,78 @@
+//-----------------------------------------------------------------------------
+//
+//	DNS.h
+//
+//	Cross-platform DNS Operations
+//
+//	Copyright (c) 2015 Justin Hammond <justin@dynam.ac>
+//	All rights reserved.
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+#ifndef _DNS_H
+#define _DNS_H
+
+#include <stdarg.h>
+#include <string>
+#include "Defs.h"
+#include "platform/Log.h"
+
+
+namespace OpenZWave
+{
+	class DNSImpl;
+
+	/** \brief Return codes for DNS lookups
+	 * \ingroup Platform
+	 */
+	enum DNSError
+	{
+		DNSError_None = 0,
+		DNSError_NotFound,					/**< No Record Exists - There for no Config File exists */
+		DNSError_DomainError,					/**< Domain didn't resolve etc */
+		DNSError_InternalError					/**< A Internal Error Occured */
+	};
+
+
+	/** \brief Implements platform-independent DNS lookup Operations.
+	 * \ingroup Platform
+	 */
+	class DNS
+	{
+	public:
+			DNS();
+			~DNS();
+			/**
+			 * \brief Starts a DNS lookup for a TXT record
+			 *
+			 * This function will lookup the TXT record for a address
+			 *
+			 * \param lookup the DNS address to lookup
+			 * \param result the result of the lookup request, or empty if the lookup failed.
+			 *
+			 * \return success/failure of the Lookup request
+			 */
+			bool LookupTxT(string lookup, string &result);
+			DNSError status;
+	private:
+			DNSImpl *m_pImpl;
+	};
+}
+
+#endif
diff --git a/hardware/openzwave/platform/Event.h b/hardware/openzwave/platform/Event.h
index 534d396073..a026608d73 100644
--- a/hardware/openzwave/platform/Event.h
+++ b/hardware/openzwave/platform/Event.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class EventImpl;
 
 	/** \brief Platform-independent definition of event objects.
+	 * \ingroup Platform
 	 */
 	class Event: public Wait
 	{
diff --git a/hardware/openzwave/platform/FileOps.h b/hardware/openzwave/platform/FileOps.h
index 79bf06d599..106b5e6f1c 100644
--- a/hardware/openzwave/platform/FileOps.h
+++ b/hardware/openzwave/platform/FileOps.h
@@ -37,6 +37,7 @@ namespace OpenZWave
 	class FileOpsImpl;
 
 	/** \brief Implements platform-independent File Operations.
+	 * \ingroup Platform
 	 */
 	class FileOps
 	{
@@ -55,12 +56,50 @@ namespace OpenZWave
 		static void Destroy();
 
 		/**
-		 * FolderExists. Check for the existance of a folder.
+		 * FolderExists. Check for the existence of a folder.
 		 * \param string. Folder name.
-		 * \return Bool value indicating existance.
+		 * \return Bool value indicating existence.
 		 */
 		static bool FolderExists( const string &_folderName );
 
+		/**
+		 * FileExists. Check for the existence of a file.
+		 * \param string. file name.
+		 * \return Bool value indicating existence.
+		 */
+		static bool FileExists( const string &_fileName );
+
+		/**
+		 * FileWriteable. Check if we can write to a file.
+		 * \param string. file name.
+		 * \return Bool value indicating write permissions.
+		 */
+		static bool FileWriteable( const string &_fileName );
+
+		/**
+		 * FileRotate. Rotate a File
+		 * \param string. file name.
+		 * \return Bool value indicating write permissions.
+		 */
+		static bool FileRotate( const string &_fileName );
+
+		/**
+		 * FileCopy. Copy a File
+		 * \param string. source file name.
+		 * \param string. destination file name
+		 * \return Bool value indicating success.
+		 */
+		static bool FileCopy( const string &_fileName, const string &_destinationfile );
+
+		/**
+		 * FolderCreate. Create a Folder
+		 * \param string. folder name
+		 * \return Bool value indicating success.
+		 */
+		static bool FolderCreate( const string &_folderName);
+
+
+
 	private:
 		FileOps();
 		~FileOps();
diff --git a/hardware/openzwave/platform/HidController.h b/hardware/openzwave/platform/HidController.h
index b2460573fb..4e6de28872 100644
--- a/hardware/openzwave/platform/HidController.h
+++ b/hardware/openzwave/platform/HidController.h
@@ -44,6 +44,10 @@ namespace OpenZWave
 	class Thread;
 	class Event;
 
+
+	/** \brief Interface for controllers that implement a HID emulation
+	 * \ingroup Platform
+	 */
 	class HidController: public Controller
 	{
 	public:
diff --git a/hardware/openzwave/platform/HttpClient.h b/hardware/openzwave/platform/HttpClient.h
new file mode 100644
index 0000000000..4c667c73d4
--- /dev/null
+++ b/hardware/openzwave/platform/HttpClient.h
@@ -0,0 +1,384 @@
+//-----------------------------------------------------------------------------
+//
+//	HttpClient.h
+//
+//	Cross-platform HttpClient
+//
+//  Originally based upon minihttp client
+//	Copyright (c) 2016 Justin Hammond <Justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+// Original License Text:
+/* This program is free software. It comes without any warranty, to
+* the extent permitted by applicable law. You can redistribute it
+* and/or modify it under the terms of the Do What The Fuck You Want
+* To Public License, Version 2, as published by Sam Hocevar.
+* See http://sam.zoy.org/wtfpl/COPYING for more details. */
+
+#ifndef MINIHTTPSOCKET_H
+#define MINIHTTPSOCKET_H
+
+// ---- Compile config -----
+#define MINIHTTP_SUPPORT_HTTP
+#define MINIHTTP_SUPPORT_SOCKET_SET
+// -------------------------
+
+// Intentionally avoid pulling in any other headers
+
+#include <string>
+#include <map>
+#include <queue>
+
+
+namespace OpenZWave
+{
+/** \defgroup SimpleHttpClient Basic HTTP(s) Client
+ *
+ * a Basic HTTP Client for talking to webservers
+ */
+
+namespace SimpleHTTPClient
+{
+
+/** \brief Initialize the Network for HTTP requests
+  * \ingroup SimpleHttpClient
+  *
+  * Initializes the Network for HTTP requests
+  *
+  * \returns success/failure
+  */
+bool InitNetwork();
+
+/** \brief Stop the Network for HTTP requests
+  * \ingroup SimpleHttpClient
+  *
+  * Stops the Network for HTTP requests and releases resources associated with it
+  */
+void StopNetwork();
+
+/** \brief Indicates if we support HTTPS requests
+  * \ingroup SimpleHttpClient
+  *
+  * Indicates if we support HTTPS requests
+  *
+  * \returns success/failure
+  * \todo SSL is not actually implemented yet.
+  */
+bool HasSSL();
+
+/** \brief Split a URL into its different parts/ports etc
+  * \ingroup SimpleHttpClient
+  *
+  * Split a URL Into the different parts/ports
+  *
+  * \param uri the URL to parse
+  * \param host the Hostname of the URL
+  * \param file the directory/file name of the URL
+  * \param port the port number of the URL, or 80 if not specified
+  *
+  * \returns success/failure
+  */
+bool SplitURI(const std::string& uri, std::string& host, std::string& file, int& port);
+
+/** \brief Encode a String suitable for sending as a URL request (eg Get)
+  * \ingroup SimpleHttpClient
+  *
+  * Encode a String so it can be sent as part of a URL request
+  *
+  * \param s the string to encode
+  * \param enc the encoded version of the string that is returned
+  *
+  */
+void URLEncode(const std::string& s, std::string& enc);
+
+/** \brief Result Codes for SSL operations
+  * \ingroup SimpleHttpClient
+  *
+  */
+enum SSLResult
+{
+    SSLR_OK = 0x0, 						/**< No Error */
+    SSLR_NO_SSL = 0x1,					/**< SSL Is not required */
+    SSLR_FAIL = 0x2,					/**< Internal SSL Engine Failure */
+    SSLR_CERT_EXPIRED = 0x4,			/**< SSL Certificate has expired */
+    SSLR_CERT_REVOKED = 0x8,			/**< SSL Certificate is revoked */
+    SSLR_CERT_CN_MISMATCH = 0x10,		/**< SSL CN Name does not match Hostname */
+    SSLR_CERT_NOT_TRUSTED = 0x20,		/**< SSL Certificate is not trusted */
+    SSLR_CERT_MISSING = 0x40,			/**< SSL Certificate is missing */
+    SSLR_CERT_SKIP_VERIFY = 0x80,		/**< SSL Certificate Verification is disabled */
+    SSLR_CERT_FUTURE = 0x100,			/**< SSL Certificate is valid in the future */
+
+    _SSLR_FORCE32BIT = 0x7fffffff
+};
+
+/** \brief a TCP Socket that can optionally be protected via SSL
+  * \ingroup SimpleHttpClient
+  *
+  * This represents a TCP Socket that can be encrypted via SSL and
+  * is used to connect to a TCP Server (in this case, a HTTP(s) Server
+  */
+class TcpSocket
+{
+public:
+    TcpSocket();
+    virtual ~TcpSocket();
+
+    virtual bool HasPendingTask() const { return false; }
+
+    bool open(const char *addr = NULL, unsigned int port = 0);
+    void close();
+    bool update(); // returns true if something interesting happened (incoming data, closed connection, etc)
+
+    bool isOpen(void);
+
+    void SetBufsizeIn(unsigned int s);
+    bool SetNonBlocking(bool nonblock);
+    unsigned int GetBufSize() { return _inbufSize; }
+    const char *GetHost(void) { return _host.c_str(); }
+    bool SendBytes(const void *buf, unsigned int len);
+
+    // SSL related
+    bool initSSL(const char *certs);
+    bool hasSSL() const { return !!_sslctx; }
+    void shutdownSSL();
+    SSLResult verifySSL();
+
+protected:
+    virtual void _OnCloseInternal();
+    virtual void _OnData(); // data received callback. Internal, should only be overloaded to call _OnRecv()
+
+    virtual void _OnRecv(void *buf, unsigned int size) = 0;
+    virtual void _OnClose() {}; // close callback
+    virtual void _OnOpen() {} // called when opened
+    virtual bool _OnUpdate() { return true; } // called before reading from the socket
+
+    void _ShiftBuffer();
+
+    char *_inbuf;
+    char *_readptr; // part of inbuf, optionally skipped header
+    char *_writeptr; // passed to recv(). usually equal to _inbuf, but may point inside the buffer in case of a partial transfer.
+
+    unsigned int _inbufSize; // size of internal buffer
+    unsigned int _writeSize; // how many bytes can be written to _writeptr;
+    unsigned int _recvSize; // incoming size, max _inbufSize - 1
+
+    unsigned int _lastport; // port used in last open() call
+
+    bool _nonblocking; // Default true. If false, the current thread is blocked while waiting for input.
+
+#ifdef _WIN32
+    intptr_t _s; // socket handle. really an int, but to be sure its 64 bit compatible as it seems required on windows, we use this.
+#else
+    long _s;
+#endif
+
+    std::string _host;
+
+private:
+    int _writeBytes(const unsigned char *buf, size_t len);
+    int _readBytes(unsigned char *buf, size_t maxlen);
+    void *_sslctx;
+};
+
+#ifdef MINIHTTP_SUPPORT_HTTP
+
+enum HttpCode
+{
+    HTTP_OK = 200,
+    HTTP_NOTFOUND = 404,
+};
+
+/** \brief This class is used for Posting data to a HTTP(s) server
+  * \ingroup SimpleHttpClient
+  *
+  * Post some data to a HTTP(s) server
+  *
+  */
+class POST
+{
+public:
+    void reserve(size_t res) { data.reserve(res); }
+    POST& add(const char *key, const char *value);
+    const char *c_str() const { return data.c_str(); }
+    const std::string& str() const { return data; }
+    bool empty() const { return data.empty(); }
+    size_t length() const { return data.length(); }
+private:
+    std::string data;
+};
+
+/** \brief Main class for making a HTTP request to a HTTP(s) server
+  * \ingroup SimpleHttpClient
+  *
+  * Make a request to a HTTP Server
+  *
+  */
+struct Request
+{
+    Request() : port(80), user(NULL) {}
+    Request(const std::string& h, const std::string& res, int p = 80, void *u = NULL)
+        : host(h), resource(res), port(80), user(u), useSSL(false) {}
+
+    std::string protocol;
+    std::string host;
+    std::string header; // set by socket
+    std::string resource;
+    std::string extraGetHeaders;
+    int port;
+    void *user;
+    bool useSSL;
+    POST post; // if this is empty, it's a GET request, otherwise a POST request
+};
+
+/** \brief a Socket that speaks HTTP protocol.
+  * \ingroup SimpleHttpClient
+  *
+  * Talk to a HTTP(s) server
+  *
+  */
+class HttpSocket : public OpenZWave::SimpleHTTPClient::TcpSocket
+{
+public:
+
+    HttpSocket();
+    virtual ~HttpSocket();
+
+    virtual bool HasPendingTask() const
+    {
+        return ExpectMoreData() || _requestQ.size();
+    }
+
+    void SetKeepAlive(unsigned int secs) { _keep_alive = secs; }
+    void SetUserAgent(const std::string &s) { _user_agent = s; }
+    void SetAcceptEncoding(const std::string& s) { _accept_encoding = s; }
+    void SetFollowRedirect(bool follow) { _followRedir = follow; }
+    void SetAlwaysHandle(bool h) { _alwaysHandle = h; }
+    void SetDownloadFile(std::string filename) { _filename = filename; }
+
+    bool Download(const std::string& url, const char *extraRequest = NULL, void *user = NULL, const POST *post = NULL);
+    bool SendRequest(Request& what, bool enqueue);
+    bool SendRequest(const std::string what, const char *extraRequest = NULL, void *user = NULL);
+    bool QueueRequest(const std::string what, const char *extraRequest = NULL, void *user = NULL);
+
+    unsigned int GetRemaining() const { return _remaining; }
+
+    unsigned int GetStatusCode() const { return _status; }
+    unsigned int GetContentLen() const { return _contentLen; }
+    bool ChunkedTransfer() const { return _chunkedTransfer; }
+    bool ExpectMoreData() const { return _remaining || _chunkedTransfer; }
+
+    const Request &GetCurrentRequest() const { return _curRequest; }
+    const char *Hdr(const char *h) const;
+
+    bool IsRedirecting() const;
+    bool IsSuccess() const;
+
+protected:
+    virtual void _OnCloseInternal();
+    virtual void _OnClose();
+    virtual void _OnData(); // data received callback. Internal, should only be overloaded to call _OnRecv()
+    virtual void _OnRecv(void *buf, unsigned int size);
+    virtual void _OnOpen(); // called when opene
+    virtual bool _OnUpdate(); // called before reading from the socket
+
+    // new ones:
+    virtual void _OnRequestDone() {}
+
+    bool _Redirect(std::string loc, bool forceGET);
+
+    void _ProcessChunk();
+    bool _EnqueueOrSend(const Request& req, bool forceQueue = false);
+    void _DequeueMore();
+    bool _OpenRequest(const Request& req);
+    void _ParseHeader();
+    void _ParseHeaderFields(const char *s, size_t size);
+    bool _HandleStatus(); // Returns whether the processed request was successful, or not
+    void _FinishRequest();
+    void _OnRecvInternal(void *buf, unsigned int size);
+
+    std::string _user_agent;
+    std::string _accept_encoding; // Default empty.
+    std::string _tmpHdr; // used to save the http header if the incoming buffer was not large enough
+
+    unsigned int _keep_alive; // http related
+    unsigned int _remaining; // http "Content-Length: X" - already recvd. 0 if ready for next packet.
+                             // For chunked transfer encoding, this holds the remaining size of the current chunk
+    unsigned int _contentLen; // as reported by server
+    unsigned int _status; // http status code, HTTP_OK if things are good
+
+    std::queue<Request> _requestQ;
+    std::map<std::string, std::string> _hdrs; // Maps HTTP header fields to their values
+
+    Request _curRequest;
+
+    bool _inProgress;
+    bool _chunkedTransfer;
+    bool _mustClose; // keep-alive specified, or not
+    bool _followRedir; // Default true. Follow 3xx redirects if this is set.
+    bool _alwaysHandle; // Also deliver to _OnRecv() if a non-success code was received.
+    std::string _filename;
+    FILE* _pFile;
+};
+
+
+#endif
+
+// ------------------------------------------------------------------------
+
+#ifdef MINIHTTP_SUPPORT_SOCKET_SET
+
+/** \brief Support Multiple TCP Socket connections
+  * \ingroup SimpleHttpClient
+  *
+  * to Support multiple TCP Socket Connections
+  *
+  */
+class SocketSet
+{
+public:
+    virtual ~SocketSet();
+    void deleteAll();
+    bool update();
+    void add(TcpSocket *s, bool deleteWhenDone = true);
+    bool has(TcpSocket *s);
+    void remove(TcpSocket *s);
+    inline size_t size() { return _store.size(); }
+
+//protected:
+
+    struct SocketSetData
+    {
+        bool deleteWhenDone;
+        // To be extended
+    };
+
+    typedef std::map<TcpSocket*, SocketSetData> Store;
+
+    Store _store;
+};
+
+#endif
+
+} // end HttpClient namespace
+} // end openzwave namespace
+
+
+#endif
diff --git a/hardware/openzwave/platform/Log.h b/hardware/openzwave/platform/Log.h
index d9fd4a0b0d..271e8446f5 100644
--- a/hardware/openzwave/platform/Log.h
+++ b/hardware/openzwave/platform/Log.h
@@ -38,6 +38,12 @@ namespace OpenZWave
 {
 	class Mutex;
 	extern char const *LogLevelString[];
+
+	/** \brief Various LogLevels available to the Application
+	 * \ingroup Platform
+	 *
+	 * \see Log::SetLoggingState
+	 */
 	enum LogLevel
 	{
 		LogLevel_Invalid, 		/**< Invalid Log Status */
@@ -55,6 +61,12 @@ namespace OpenZWave
 		LogLevel_Internal		/**< Used only within the log class (uses existing timestamp, etc.) */
 	};
 
+	/** \brief A Abstract class to create a Custom Logging Method
+	 * \ingroup Platform
+	 *
+	 * Use this as the basis to create a custom logging class for your applation.
+	 * \see Log::SetLoggingClass
+	 */
 	class i_LogImpl
 	{
 	public:
@@ -68,12 +80,13 @@ namespace OpenZWave
 	};
 
 	/** \brief Implements a platform-independent log...written to the console and, optionally, a file.
+	 * \ingroup Platform
 	 */
 	class Log
 	{
 	public:
-		/**
-		 * Create a log.
+		/** \brief Create a log.
+		 *
 		 * Creates the cross-platform logging singleton.
 		 * Any previous log will be cleared.
 		 * \return a pointer to the logging object.
@@ -81,8 +94,8 @@ namespace OpenZWave
 		 */
 		static Log* Create( string const& _filename, bool const _bAppend, bool const _bConsoleOutput, LogLevel const _saveLevel, LogLevel const _queueLevel, LogLevel const _dumpTrigger );
 
-		/**
-		 * Create a log.
+		/** \brief Create a log.
+		 *
 		 * Creates the cross-platform logging singleton.
 		 * Any previous log will be cleared.
 		 * \param LogClass a Logging Class that inherits the i_LogImpl Class to use to Log
@@ -92,8 +105,8 @@ namespace OpenZWave
 
 		static Log* Create( i_LogImpl *LogClass );
 
-		/**
-		 * Destroys the log.
+		/** \brief Destroys the log.
+		 *
 		 * Destroys the logging singleton.  The log can no longer
 		 * be written to without another call to Create.
 		 * \see Create, Write
@@ -102,50 +115,53 @@ namespace OpenZWave
 
 		/**
 		 * \brief Set the Logging Implementation Class to replace the standard File/Console logging
+		 *
 		 * \param LogClass A Logging Class that inherits the i_LogImpl Class used to Log to
 		 * \return Bool Value indicating success or failure
 		 */
 		static bool SetLoggingClass(i_LogImpl *LogClass );
 
-		/**
-		 * \brief Enable or disable library logging (retained for backward compatibility)
+		/** \brief Enable or disable library logging (retained for backward compatibility)
+		 *
 		 * \param _dologging  If true, logging is enabled; if false, disabled
 		*/
 		static void SetLoggingState(bool _dologging);
 
-		/**
-		 * \brief Enable or disable library logging.  To disable, set _saveLevel and _queueLevel
-		 * to LogLevel_None.
+		/**\brief Enable or disable library logging.
+		 *
+		 * To disable, set _saveLevel and _queueLevel to LogLevel_None.
+		 *
 		 * \param _saveLevel	LogLevel of messages to write in real-time
 		 * \param _queueLevel	LogLevel of messages to queue to be dumped in case of an error
 		 * \param _dumpTrigger	LogLevel of message that triggers a queue dump (probably LogLevel_Error or LogLevel_Warning)
 		*/
 		static void SetLoggingState( LogLevel _saveLevel, LogLevel _queueLevel, LogLevel _dumpTrigger );
 
-		/**
-		 * \brief Determine whether logging is enabled or not (retained for backward compatibility)
+		/**\brief Determine whether logging is enabled or not (retained for backward compatibility)
+		 *
 		 * \param _dologging  If true, logging is enabled; if false, disabled
 		*/
 		static bool GetLoggingState();
 
-		/**
-		 * \brief Obtain the various logging levels.
+		/**\brief Obtain the various logging levels.
+		 *
 		 * \param _saveLevel	LogLevel of messages to write in real-time
 		 * \param _queueLevel	LogLevel of messages to queue to be dumped in case of an error
 		 * \param _dumpTrigger	LogLevel of message that triggers a queue dump (probably LogLevel_Error or LogLevel_Warning)
 		*/
 		static void GetLoggingState( LogLevel* _saveLevel, LogLevel* _queueLevel, LogLevel* _dumpTrigger );
 
-		/**
-		 * \brief Change the log file name.  This will start a new log file (or potentially start appending
+		/** \brief Change the log file name.
+		 *
+		 * This will start a new log file (or potentially start appending
 		 * information to an existing one.  Developers might want to use this function, together with a timer
 		 * in the controlling application, to create timestamped log file names.
 		 * \param _filename Name of the new (or existing) file to use for log output.
 		*/
 		static void SetLogFileName( const string &_filename );
 
-		/**
-		 * Write an entry to the log.
+		/**\brief Write an entry to the log.
+		 *
 		 * Writes a formatted string to the log.
 		 * \param _level	Specifies the type of log message (Error, Warning, Debug, etc.)
 		 * \param _format.  A string formatted in the same manner as used with printf etc.
@@ -154,8 +170,8 @@ namespace OpenZWave
 		 */
 		static void Write( LogLevel _level, char const* _format, ... );
 
-		/**
-		 * Write an entry to the log.
+		/**\brief Write an entry to the log.
+		 *
 		 * Writes a formatted string to the log.
 		 * \param _level	Specifies the type of log message (Error, Warning, Debug, etc.)
 		 * \param _nodeId	Node Id this entry is about.
@@ -165,8 +181,7 @@ namespace OpenZWave
 		 */
 		static void Write( LogLevel _level, uint8 const _nodeId, char const* _format, ... );
 
-		/**
-		 * Send the queued log messages to the log output.
+		/** \brief Send the queued log messages to the log output.
 		 */
 		static void QueueDump();
 
diff --git a/hardware/openzwave/platform/Mutex.h b/hardware/openzwave/platform/Mutex.h
index 43d50a7030..d445af847e 100644
--- a/hardware/openzwave/platform/Mutex.h
+++ b/hardware/openzwave/platform/Mutex.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class MutexImpl;
 
 	/** \brief Implements a platform-independent mutex--for serializing access to a shared resource.
+	 * \ingroup Platform
 	 */
 	class Mutex: public Wait
 	{
diff --git a/hardware/openzwave/platform/Ref.h b/hardware/openzwave/platform/Ref.h
index 57c32743a6..ce36772f8e 100644
--- a/hardware/openzwave/platform/Ref.h
+++ b/hardware/openzwave/platform/Ref.h
@@ -41,6 +41,7 @@ namespace OpenZWave
 	 * On construction, the reference count is set to one.  Calls to AddRef increment 
 	 * the count.  Calls to Release decrement the count.  When the count reaches
 	 * zero, the object is deleted.
+	 * \ingroup Platform
 	 */
 	class Ref
 	{
diff --git a/hardware/openzwave/platform/SerialController.h b/hardware/openzwave/platform/SerialController.h
index 9c42916cd6..0222244787 100644
--- a/hardware/openzwave/platform/SerialController.h
+++ b/hardware/openzwave/platform/SerialController.h
@@ -38,6 +38,9 @@ namespace OpenZWave
 	class Msg;
 	class SerialControllerImpl;
 
+	/** \brief Interface for controllers that implement a Serial Interface (USB Serial Port Emulation)
+	 * \ingroup Platform
+	 */
 	class SerialController: public Controller
 	{
 		friend class SerialControllerImpl;
diff --git a/hardware/openzwave/platform/Stream.h b/hardware/openzwave/platform/Stream.h
index 2465fa844c..1e7965d48d 100644
--- a/hardware/openzwave/platform/Stream.h
+++ b/hardware/openzwave/platform/Stream.h
@@ -38,6 +38,7 @@ namespace OpenZWave
 	class Mutex;
 
 	/** \brief Platform-independent definition of a circular buffer.
+	 * \ingroup Platform
 	 */
 	class Stream: public Wait
 	{
diff --git a/hardware/openzwave/platform/Thread.h b/hardware/openzwave/platform/Thread.h
index 936bd181b8..5213b3d438 100644
--- a/hardware/openzwave/platform/Thread.h
+++ b/hardware/openzwave/platform/Thread.h
@@ -38,6 +38,7 @@ namespace OpenZWave
 	class Event;
 
 	/** \brief Implements a platform-independent thread management class.
+	 * \ingroup Platform
 	 */
 	class Thread: public Wait
 	{
diff --git a/hardware/openzwave/platform/TimeStamp.h b/hardware/openzwave/platform/TimeStamp.h
index f3d0d22f84..ea8138d0d6 100644
--- a/hardware/openzwave/platform/TimeStamp.h
+++ b/hardware/openzwave/platform/TimeStamp.h
@@ -35,6 +35,7 @@ namespace OpenZWave
 	class TimeStampImpl;
 
 	/** \brief Implements a platform-independent TimeStamp.
+	 * \ingroup Platform
 	 */
 	class OPENZWAVE_EXPORT TimeStamp
 	{
diff --git a/hardware/openzwave/platform/Wait.h b/hardware/openzwave/platform/Wait.h
index 2aff6bb558..1b3bfec806 100644
--- a/hardware/openzwave/platform/Wait.h
+++ b/hardware/openzwave/platform/Wait.h
@@ -37,6 +37,7 @@ namespace OpenZWave
 	class WaitImpl;
 
 	/** \brief Platform-independent definition of Wait objects.
+	 * \ingroup Platform
 	 */
 	class Wait: public Ref
 	{
diff --git a/hardware/openzwave/value_classes/Value.h b/hardware/openzwave/value_classes/Value.h
index c629ef584c..b8d4687b41 100644
--- a/hardware/openzwave/value_classes/Value.h
+++ b/hardware/openzwave/value_classes/Value.h
@@ -43,6 +43,7 @@ namespace OpenZWave
 	class Node;
 
 	/** \brief Base class for values associated with a node.
+	 * \ingroup ValueID
 	 */
 	class Value: public Ref
 	{
@@ -50,7 +51,7 @@ namespace OpenZWave
 		friend class ValueStore;
 
 	public:
-		Value( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, ValueID::ValueType const _type, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, bool const _isset, uint8 const _pollIntensity );
+		Value( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, ValueID::ValueType const _type, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, bool const _isset, uint8 const _pollIntensity );
 		Value();
 
 		virtual void ReadXML( uint32 const _homeId, uint8 const _nodeId, uint8 const _commandClassId, TiXmlElement const* _valueElement );
@@ -62,14 +63,14 @@ namespace OpenZWave
 		bool IsSet()const{ return m_isSet; }
 		bool IsPolled()const{ return m_pollIntensity != 0; }
 
-		string const& GetLabel()const{ return m_label; }
-		void SetLabel( string const& _label ){ m_label = _label; }
+		string const GetLabel()const;
+		void SetLabel( string const& _label, string const lang="");
 
 		string const& GetUnits()const{ return m_units; }
 		void SetUnits( string const& _units ){ m_units = _units; }
 
-		string const& GetHelp()const{ return m_help; }
-		void SetHelp( string const& _help ){ m_help = _help; }
+		string const GetHelp()const;
+		void SetHelp( string const& _help, string const lang="");
 
 		uint8 const& GetPollIntensity()const{ return m_pollIntensity; }
 		void SetPollIntensity( uint8 const& _intensity ){ m_pollIntensity = _intensity; }
@@ -106,12 +107,11 @@ namespace OpenZWave
 
 		time_t		m_refreshTime;			// time_t identifying when this value was last refreshed
 		bool		m_verifyChanges;		// if true, apparent changes are verified; otherwise, they're not
+		ValueID		m_id;
+
 
 	private:
-		ValueID		m_id;
-		string		m_label;
 		string		m_units;
-		string		m_help;
 		bool		m_readOnly;
 		bool		m_writeOnly;
 		bool		m_isSet;
diff --git a/hardware/openzwave/value_classes/ValueBitSet.h b/hardware/openzwave/value_classes/ValueBitSet.h
new file mode 100644
index 0000000000..2e0360e635
--- /dev/null
+++ b/hardware/openzwave/value_classes/ValueBitSet.h
@@ -0,0 +1,97 @@
+//-----------------------------------------------------------------------------
+//
+//	ValueBitSet.h
+//
+//	Represents a Range of Bits
+//
+//	Copyright (c) 2017 Justin Hammond <justin@dynam.ac>
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef _ValueBitSet_H
+#define _ValueBitSet_H
+
+#include <string>
+#include <map>
+#include "Defs.h"
+#include "value_classes/Value.h"
+#include "Bitfield.h"
+
+class TiXmlElement;
+
+namespace OpenZWave
+{
+	class Msg;
+	class Node;
+	class CommandClass;
+
+	/** \brief BitSet value sent to/received from a node.
+	 * \ingroup ValueID
+	 */
+	class ValueBitSet: public Value
+	{
+	public:
+		ValueBitSet( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint32 const _value, uint8 const _pollIntensity );
+		ValueBitSet(){}
+		virtual ~ValueBitSet(){}
+
+		bool Set( uint32 const _value );
+		uint32 GetValue() const;
+
+		bool SetBit( uint8 const _idx);
+		bool ClearBit(uint8 const _idx);
+		bool GetBit(uint8 _idx) const;
+
+		bool SetBitMask(uint32 _bitMask);
+		uint32 GetBitMask() const;
+
+		void OnValueRefreshed( uint32 const _value );
+
+		// From Value
+		virtual string const GetAsString() const;
+		virtual string const GetAsBinaryString() const;
+		virtual bool SetFromString( string const& _value );
+		virtual void ReadXML( uint32 const _homeId, uint8 const _nodeId, uint8 const _commandClassId, TiXmlElement const* _valueElement );
+		virtual void WriteXML( TiXmlElement* _valueElement );
+
+		string GetBitHelp(uint8 _idx);
+		bool SetBitHelp(uint8 _idx, string help);
+		string GetBitLabel(uint8 _idx);
+		bool SetBitLabel(uint8 _idx, string label);
+
+		uint8 GetSize() const;
+		void SetSize(uint8 size);
+
+	private:
+		bool isValidBit(uint8 _idx) const;
+		Bitfield		m_value;				// the current index in the m_items vector
+		Bitfield		m_valueCheck;			// the previous value (used for double-checking spurious value reads)
+		Bitfield		m_newValue;				// a new value to be set on the appropriate device
+		uint32			m_BitMask;				// Valid Bits
+		uint8 			m_size;					// Number of bytes in size
+		vector<int32>   m_bits;
+	};
+
+} // namespace OpenZWave
+
+#endif
+
+
+
diff --git a/hardware/openzwave/value_classes/ValueBool.h b/hardware/openzwave/value_classes/ValueBool.h
index 42f6427538..070d0d4a6b 100644
--- a/hardware/openzwave/value_classes/ValueBool.h
+++ b/hardware/openzwave/value_classes/ValueBool.h
@@ -41,11 +41,12 @@ namespace OpenZWave
 	class CommandClass;
 
 	/** \brief Boolean value sent to/received from a node.
+	 * \ingroup ValueID
 	 */
 	class ValueBool: public Value
 	{
 	public:
-		ValueBool( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, bool const _value, uint8 const _pollIntensity );
+		ValueBool( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, bool const _value, uint8 const _pollIntensity );
 		ValueBool(){}
 		virtual ~ValueBool(){}
 
diff --git a/hardware/openzwave/value_classes/ValueButton.h b/hardware/openzwave/value_classes/ValueButton.h
index d2231e4fd2..842a7f3b28 100644
--- a/hardware/openzwave/value_classes/ValueButton.h
+++ b/hardware/openzwave/value_classes/ValueButton.h
@@ -40,12 +40,13 @@ namespace OpenZWave
 	class Node;
 	class CommandClass;
 
-	/** \brief Button value ???.
+	/** \brief Button value
+	 * \ingroup ValueID
 	 */
 	class ValueButton: public Value
 	{
 	public:
-		ValueButton( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, uint8 const _pollIntensity );
+		ValueButton( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, uint8 const _pollIntensity );
 		ValueButton(): m_pressed( false ){}
 		virtual ~ValueButton(){}
 
diff --git a/hardware/openzwave/value_classes/ValueByte.h b/hardware/openzwave/value_classes/ValueByte.h
index 2eda03c016..8bbbff601a 100644
--- a/hardware/openzwave/value_classes/ValueByte.h
+++ b/hardware/openzwave/value_classes/ValueByte.h
@@ -40,11 +40,12 @@ namespace OpenZWave
 	class Node;
 
 	/** \brief Byte value sent to/received from a node.
+	 * \ingroup ValueID
 	 */
 	class ValueByte: public Value
 	{
 	public:
-		ValueByte( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _value, uint8 const _pollIntensity );
+		ValueByte( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _value, uint8 const _pollIntensity );
 		ValueByte();
 		virtual ~ValueByte(){}
 
diff --git a/hardware/openzwave/value_classes/ValueDecimal.h b/hardware/openzwave/value_classes/ValueDecimal.h
index fec4a20058..832bcefbfc 100644
--- a/hardware/openzwave/value_classes/ValueDecimal.h
+++ b/hardware/openzwave/value_classes/ValueDecimal.h
@@ -40,6 +40,7 @@ namespace OpenZWave
 	class Node;
 
 	/** \brief Decimal value sent to/received from a node.
+	 * \ingroup ValueID
 	 */
 	class ValueDecimal: public Value
 	{
@@ -49,7 +50,7 @@ namespace OpenZWave
 		friend class ThermostatSetpoint;
 
 	public:
-		ValueDecimal( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, string const& _value, uint8 const _pollIntensity );
+		ValueDecimal( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, string const& _value, uint8 const _pollIntensity );
 		ValueDecimal(): m_precision( 0 ){}
 		virtual ~ValueDecimal(){}
 
diff --git a/hardware/openzwave/value_classes/ValueID.h b/hardware/openzwave/value_classes/ValueID.h
index ea183bf0d6..b5460dee15 100644
--- a/hardware/openzwave/value_classes/ValueID.h
+++ b/hardware/openzwave/value_classes/ValueID.h
@@ -36,7 +36,16 @@ class TiXmlElement;
 
 namespace OpenZWave
 {
+    /** \defgroup ValueID ValueID Support
+     *
+     * ValueID's in OZW expose device functionality to the application. Many different
+     * types of ValueID's are exposed, and they represent the state of a device (such as a
+     * switch on or off) or configuration parameters of a device.
+     */
+
+
 	/** \brief Provides a unique ID for a value reported by a Z-Wave device.
+	 * \ingroup ValueID
 	 * 
 	 * The ValueID is used to uniquely identify a value reported by a 
 	 * Z-Wave device.
@@ -94,20 +103,27 @@ namespace OpenZWave
 			ValueType_String,			/**< Text string */
 			ValueType_Button,			/**< A write-only value that is the equivalent of pressing a button to send a command to a device */
 			ValueType_Raw,				/**< A collection of bytes */
-			ValueType_Max = ValueType_Raw		/**< The highest-number type defined.  Not to be used as a type itself. */
+			ValueType_BitSet,			/**< A collection of Bits */
+			ValueType_Max = ValueType_BitSet		/**< The highest-number type defined.  Not to be used as a type itself. */
 		};
 
 		/** 
 		 * Get the Home ID of the driver that controls the node containing the value. 
 		 * \return the Home ID.
 	     */
-		uint32 GetHomeId()const{ return m_homeId; }
+		uint32 GetHomeId()const
+			{
+				return m_homeId;
+			}
 
 		/** 
 		 * Get the Home ID of the driver that controls the node containing the value. 
 		 * \return the node id.
 	     */
-		uint8 GetNodeId()const{ return( (uint8)( (m_id & 0xff000000) >> 24 ) ); }
+		uint8 GetNodeId()const
+			{
+				return( (uint8)( (m_id & 0xff000000) >> 24 ) );
+			}
 
 		/** 
 		 * Get the genre of the value.  The genre classifies a value to enable
@@ -115,7 +131,10 @@ namespace OpenZWave
 		 * \return the value's genre.
 		 * \see ValueGenre
 	     */
-		ValueGenre GetGenre()const{ return( (ValueGenre)( (m_id & 0x00c00000) >> 22 ) ); }
+		ValueGenre GetGenre()const
+			{
+				return( (ValueGenre)( (m_id & 0x00c00000) >> 22 ) );
+			}
 
 		/** 
 		 * Get the Z-Wave command class that created and manages this value.  Knowledge of 
@@ -123,7 +142,10 @@ namespace OpenZWave
 		 * exposed in case it is of interest.
 		 * \return the value's command class.
 	     */
-		uint8 GetCommandClassId()const{ return( (uint8)( (m_id & 0x003fc000) >> 14 ) ); }
+		uint8 GetCommandClassId()const
+			{
+				return( (uint8)( (m_id & 0x003fc000) >> 14 ) );
+			}
 
 		/** 
 		 * Get the command class instance of this value.  It is possible for there to be
@@ -133,7 +155,10 @@ namespace OpenZWave
 		 * information is exposed in case it is of interest.
 		 * \return the instance of the value's command class.
 	     */
-		uint8 GetInstance()const{ return( (uint8)( ( (m_id1 & 0xff000000) ) >> 24 ) ); }
+		uint8 GetInstance()const
+			{
+				return( (uint8)( ( (m_id & 0xff0) ) >> 4 ) );
+			}
 
 		/** 
 		 * Get the value index.  The index is used to identify one of multiple
@@ -143,7 +168,10 @@ namespace OpenZWave
 		 * to use OpenZWave, but this information is exposed in case it is of interest.
 		 * \return the value index within the command class.
 	     */
-		uint8 GetIndex()const{ return( (uint8)( (m_id & 0x00000ff0) >> 4 ) ); }
+		uint16 GetIndex()const
+			{
+				return( (uint16)( (m_id1 & 0xFFFF0000) >> 16 ) );
+			}
 
 		/** 
 		 * Get the type of the value.  The type describes the data held by the value
@@ -152,14 +180,20 @@ namespace OpenZWave
 		 * \return the value's type.
 		 * \see ValueType, Manager::GetValueAsBool, Manager::GetValueAsByte, Manager::GetValueAsFloat, Manager::GetValueAsInt, Manager::GetValueAsShort, Manager::GetValueAsString, Manager::GetValueListSelection.
 	     */
-		ValueType GetType()const{ return( (ValueType)( m_id & 0x0000000f ) ); }
+		ValueType GetType()const
+			{
+				return( (ValueType)( m_id & 0x0000000f ) );
+			}
 
 		/**
-		 * Get a 64Bit Integer that represents this ValueID. This Integer is not guaranteed to be valid 
+		 * Get a 64Bit Integer that represents this ValueID. This Integer is not guaranteed to be the same
 		 * across restarts of OpenZWave.
 		 * \return a uint64 integer
 		 */
-		uint64 GetId()const{ return (uint64) ( ( (uint64)m_id1 << 32 ) | m_id );}
+		uint64 GetId()const
+			{
+				return (uint64) ( ( (uint64)m_id1 << 32 ) | m_id );
+			}
 
 		// Comparison Operators
 		bool operator ==	( ValueID const& _other )const{ return( ( m_homeId == _other.m_homeId ) && ( m_id == _other.m_id ) && ( m_id1 == _other.m_id1 ) ); }
@@ -222,7 +256,7 @@ namespace OpenZWave
 			ValueGenre const _genre,
 			uint8 const _commandClassId,
 			uint8 const _instance,
-			uint8 const _valueIndex,
+			uint16 const _valueIndex,
 			ValueType const _type
 		):
 			m_homeId( _homeId )
@@ -230,9 +264,9 @@ namespace OpenZWave
 			m_id = (((uint32)_nodeId)<<24)
 				 | (((uint32)_genre)<<22)
 				 | (((uint32)_commandClassId)<<14)
-				 | (((uint32)_valueIndex)<<4)
+				 | (((uint32)(_instance & 0xFF))<<4)
 				 | ((uint32)_type);
-			m_id1 = (((uint32)_instance)<<24);
+			m_id1 = (((uint32)_valueIndex)<<16);
 		}
 
 		/* construct a ValueID based on the HomeID and the unit64 returned from GetID
@@ -243,7 +277,7 @@ namespace OpenZWave
 		ValueID
 		(
 		        uint32 _homeId,
-                        uint64 id
+                uint64 id
 		):
 		        m_homeId(_homeId)
 		{
@@ -252,16 +286,27 @@ namespace OpenZWave
 		}
 	private:
 		// Construct a value id for use in notifications
-		ValueID( uint32 const _homeId, uint8 const _nodeId ): m_id1( 0 ),m_homeId( _homeId ){ m_id = ((uint32)_nodeId)<<24; }
+		ValueID( uint32 const _homeId, uint8 const _nodeId ):
+			m_id1( 0 ),
+			m_homeId( _homeId )
+			{
+				m_id = ((uint32)_nodeId)<<24;
+			}
 		ValueID( uint32 const _homeId, uint8 const _nodeId, uint32 const _instance ): 
 			m_homeId( _homeId )
 			{ 
-				m_id = (((uint32)_nodeId)<<24);
-				m_id1 = (((uint32)_instance)<<24);
+				m_id = (((uint32)_nodeId)<<24) | (((uint32)_instance) << 4);
+				m_id1 = 0;
 			}
 
 		// Default constructor
-		ValueID():m_id(0),m_id1(0),m_homeId(0){}
+		ValueID():
+			m_id(0),
+			m_id1(0),
+			m_homeId(0)
+			{
+
+			}
 
 		// Not all parts of the ValueID are necessary to uniquely identify the value.  In the case of a 
 		// Node's ValueStore, we can ignore the home ID, node ID, genre and type and still be left with
@@ -271,16 +316,22 @@ namespace OpenZWave
 		// Get the key from our own m_id
 		uint32 GetValueStoreKey()const
 		{ 
-			return ( ( m_id & 0x003ffff0 ) | ( m_id1 & 0xff000000 ) );
+			/* 0xIIIICCii
+			 * I = Index
+			 * C = CC
+			 * i = Instance
+			 */
+			/*                  CC                             Index                       Instance */
+			return ( ( ( m_id & 0x003fc000 ) >> 6) | ( m_id1 & 0xffff0000 )  | ( ( m_id & 0xFF0) >> 4 ) );
 		}
 
 		// Generate a key from its component parts
-		static uint32 GetValueStoreKey( uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex )
+		static uint32 GetValueStoreKey( uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex )
 		{ 
 
-			uint32 key = (((uint32)_instance)<<24)
-				 | (((uint32)_commandClassId)<<14)
-				 | (((uint32)_valueIndex)<<4);
+			uint32 key = (((uint32)_instance))
+				 | (((uint32)_commandClassId)<<8)
+				 | (((uint32)(_valueIndex & 0xFFFF))<<16);
 			
 			return key;
 		}
@@ -290,15 +341,14 @@ namespace OpenZWave
 		// 24-31:	8 bits. Node ID of device
 		// 22-23:	2 bits. genre of value (see ValueGenre enum).
 		// 14-21:	8 bits. ID of command class that created and manages this value.
-		// 12-13:	2 bits. Unused.
-		// 04-11:	8 bits. Index of value within all the value created by the command class
-		//                  instance (in configuration parameters, this is also the parameter ID).
+		// 12-13	Unused.
+		// 04-11:	8 bits. Instance of the Value
 		// 00-03:	4 bits. Type of value (bool, byte, string etc).
 		uint32	m_id;
 
 		// ID1 Packing:
 		// Bits
-		// 24-31	8 bits. Instance Index of the command class.
+		// 16-31	16 bits. Instance Index of the command class.
 		uint32	m_id1;
 
 		// Unique PC interface identifier
diff --git a/hardware/openzwave/value_classes/ValueInt.h b/hardware/openzwave/value_classes/ValueInt.h
index 098cf66db3..1436492a3d 100644
--- a/hardware/openzwave/value_classes/ValueInt.h
+++ b/hardware/openzwave/value_classes/ValueInt.h
@@ -40,11 +40,12 @@ namespace OpenZWave
 	class Node;
 
 	/** \brief Integer value sent to/received from a node.
+	 * \ingroup ValueID
 	 */
 	class ValueInt: public Value
 	{
 	public:
-	  	ValueInt( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, int32 const _value, uint8 const _pollIntensity );
+	  	ValueInt( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, int32 const _value, uint8 const _pollIntensity );
 		ValueInt();
 		virtual ~ValueInt(){}
 
diff --git a/hardware/openzwave/value_classes/ValueList.h b/hardware/openzwave/value_classes/ValueList.h
index af7cf89696..04114ac4ea 100644
--- a/hardware/openzwave/value_classes/ValueList.h
+++ b/hardware/openzwave/value_classes/ValueList.h
@@ -41,6 +41,7 @@ namespace OpenZWave
 	class Node;
 
 	/** \brief List of values sent to/received from a node.
+	 * \ingroup ValueID
 	 */
 	class ValueList: public Value
 	{
@@ -53,7 +54,7 @@ namespace OpenZWave
 			int32	m_value;
 		};
 
-		ValueList( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, vector<Item> const& _items, int32 const _valueIdx, uint8 const _pollIntensity, uint8 const _size = 4 );
+		ValueList( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, vector<Item> const& _items, int32 const _valueIdx, uint8 const _pollIntensity, uint8 const _size = 4 );
 		ValueList();
 		virtual ~ValueList(){}
 
diff --git a/hardware/openzwave/value_classes/ValueRaw.h b/hardware/openzwave/value_classes/ValueRaw.h
index 77df57b152..f21d3be5aa 100644
--- a/hardware/openzwave/value_classes/ValueRaw.h
+++ b/hardware/openzwave/value_classes/ValueRaw.h
@@ -40,11 +40,12 @@ namespace OpenZWave
 	class Node;
 
 	/** \brief A collection of bytes sent to/received from a node.
+	 * \ingroup ValueID
 	 */
 	class ValueRaw: public Value
 	{
 	public:
-		ValueRaw( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const* _value, uint8 const _length, uint8 const _pollIntensity );
+		ValueRaw( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const* _value, uint8 const _length, uint8 const _pollIntensity );
 		ValueRaw();
 		virtual ~ValueRaw();
 
diff --git a/hardware/openzwave/value_classes/ValueSchedule.h b/hardware/openzwave/value_classes/ValueSchedule.h
index 9a319b56e1..8c6f0edbcf 100644
--- a/hardware/openzwave/value_classes/ValueSchedule.h
+++ b/hardware/openzwave/value_classes/ValueSchedule.h
@@ -40,11 +40,12 @@ namespace OpenZWave
 	class Node;
 
 	/** \brief Schedule sent to/received from a node.
+	 * \ingroup ValueID
 	 */
 	class ValueSchedule: public Value
 	{
 	public:
-		ValueSchedule( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _pollIntensity );
+		ValueSchedule( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, uint8 const _pollIntensity );
 		ValueSchedule();
 		virtual ~ValueSchedule(){}
 
diff --git a/hardware/openzwave/value_classes/ValueShort.h b/hardware/openzwave/value_classes/ValueShort.h
index c74d134d6a..125acba507 100644
--- a/hardware/openzwave/value_classes/ValueShort.h
+++ b/hardware/openzwave/value_classes/ValueShort.h
@@ -40,11 +40,12 @@ namespace OpenZWave
 	class Node;
 
 	/** \brief Short value sent to/received from a node.
+	 * \ingroup ValueID
 	 */
 	class ValueShort: public Value
 	{
 	public:
-	  	ValueShort( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, int16 const _value, uint8 const _pollIntensity );
+	  	ValueShort( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, int16 const _value, uint8 const _pollIntensity );
 		ValueShort();
 		virtual ~ValueShort(){}
 
diff --git a/hardware/openzwave/value_classes/ValueStore.h b/hardware/openzwave/value_classes/ValueStore.h
index 7cf2a293d3..69637899cc 100644
--- a/hardware/openzwave/value_classes/ValueStore.h
+++ b/hardware/openzwave/value_classes/ValueStore.h
@@ -39,6 +39,7 @@ namespace OpenZWave
 	class Value;
 
 	/** \brief Container that holds all of the values associated with a given node.
+	 * \ingroup ValueID
 	 */
 	class ValueStore
 	{
diff --git a/hardware/openzwave/value_classes/ValueString.h b/hardware/openzwave/value_classes/ValueString.h
index 3ace34fedc..e3c4e68480 100644
--- a/hardware/openzwave/value_classes/ValueString.h
+++ b/hardware/openzwave/value_classes/ValueString.h
@@ -40,11 +40,12 @@ namespace OpenZWave
 	class Node;
 
 	/** \brief String value sent to/received from a node.
+	 * \ingroup ValueID
 	 */
 	class ValueString: public Value
 	{
 	public:
-		ValueString( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, string const& _value, uint8 const _pollIntensity );
+		ValueString( uint32 const _homeId, uint8 const _nodeId, ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _index, string const& _label, string const& _units, bool const _readOnly, bool const _writeOnly, string const& _value, uint8 const _pollIntensity );
 		ValueString(){}
 		virtual ~ValueString(){}
 
diff --git a/msbuild/domoticz.vcxproj b/msbuild/domoticz.vcxproj
index df1c1098ef..06ca4a7237 100644
--- a/msbuild/domoticz.vcxproj
+++ b/msbuild/domoticz.vcxproj
@@ -28,7 +28,7 @@
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset>v141</PlatformToolset>
+    <PlatformToolset>v142</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
