diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 0a41225d86..1d0f12a9f4 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,6 +1,6 @@
 # These are supported funding model platforms
 
-#github: [Fishwaldo, nechry]
+github: [Fishwaldo, nechry]
 patreon: # Replace with a single Patreon username
 open_collective: ozw
 ko_fi: # Replace with a single Ko-fi username
diff --git a/.github/XMLTestMatcher.json b/.github/XMLTestMatcher.json
new file mode 100644
index 0000000000..9fc8b8c1cd
--- /dev/null
+++ b/.github/XMLTestMatcher.json
@@ -0,0 +1,30 @@
+{
+    "problemMatcher": [
+        {
+            "owner": "xmltest",
+            "pattern": [
+                {
+                    "regexp": "^(.*\/open.zwave\/)(.*):([0-9]*):.?(.*)$",
+                    "fromPath": 1,
+                    "file": 2,
+                    "line": 3,
+                    "message": 4
+                }
+            ]
+        },
+        {
+            "owner": "ConfigDatabase",
+            "pattern": [
+                {
+                    "regexp": "^Errors: [0-9]*\\. \\(Please Correct before Submitting to OZW\\)$"
+                },
+                {
+                    "regexp": "^(.*):.(.*)$",
+                    "file": 1,
+                    "message": 2,
+                    "loop": true
+                }
+            ]
+        }
+    ]
+}
diff --git a/.github/workflows/ConfigCheck.yml b/.github/workflows/ConfigCheck.yml
new file mode 100644
index 0000000000..11dd6bdccb
--- /dev/null
+++ b/.github/workflows/ConfigCheck.yml
@@ -0,0 +1,20 @@
+name: Test Config Files
+
+on: 
+  pull_request:
+    paths: 
+      - 'config/**'
+
+jobs:
+  ConfigTest:
+
+    runs-on: ubuntu-latest
+    
+    steps:
+    - uses: actions/checkout@v2
+    - name: install dependancies
+      run: sudo apt update && sudo apt-get install libxml2-utils libxml-simple-perl
+    - name: make xmltest
+      run: |
+        echo "::add-matcher::.github/XMLTestMatcher.json"
+        make xmltest
diff --git a/.github/workflows/PRTest.yml b/.github/workflows/PRTest.yml
deleted file mode 100644
index faa46984ea..0000000000
--- a/.github/workflows/PRTest.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-name: PR Test
-
-on: 
-  pull_request:
-    types: [opened, edited, reopened, synchronize]
-
-jobs:
-  build:
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - name: Trigger Build
-      uses: Fishwaldo/Bamboo-PR-Trigger@master  
-      env:
-        BBSERVER: bamboo.my-ho.st
-        BBUSER: ${{ secrets.bamboouser }}
-        BBPASS: ${{ secrets.bamboopass }}
-        BBPRJ: OZW-PRTST
-        BBPR: ${{ github.event.number }}
-
diff --git a/.gitignore b/.gitignore
index 3fcdfddb49..25f9779b9d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,3 +55,4 @@ ozw_config
 ozw_config
 gtest-main
 cpp/src/command_classes/\.DS_Store
+.DS_Store
diff --git a/Makefile b/Makefile
index 2b997b7555..df879c3575 100644
--- a/Makefile
+++ b/Makefile
@@ -57,10 +57,10 @@ xmltest:	$(XMLLINT)
 	@$(XMLLINT) --noout --schema $(top_srcdir)/config/NotificationCCTypes.xsd $(top_srcdir)/config/NotificationCCTypes.xml
 	@$(XMLLINT) --noout --schema $(top_srcdir)/config/SensorMultiLevelCCTypes.xsd $(top_srcdir)/config/SensorMultiLevelCCTypes.xml
 	@$(XMLLINT) --noout --schema $(top_srcdir)/config/device_configuration.xsd $(top_srcdir)/config/*/*.xml
-	-@cpp/build/testconfig.pl
+	@cpp/build/testconfig.pl
 endif
 fulltest:
-	-@cpp/build/testconfig.pl --printwarnings
+	@cpp/build/testconfig.pl --printwarnings
 
 
 
diff --git a/README.md b/README.md
index 7134a7e9eb..6294ddc9ef 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,14 @@
 ![Open-ZWave Library](https://github.com/OpenZWave/open-zwave-web/raw/master/gfx/OZW_SF.png)
 ==================
 
-*Last Updated: 4 October 2019*
+*Last Updated: 17 November 2022*
+
+* * *
+
+## NOTICE: This project is no longer being maintained. :warning:
+openzwave has no more maintainers, are there any motivated to continue the development of the library?
+
+## Introduction
 
 Our goal is to create free software library that interfaces with Z-Wave controllers, allowing anyone to create applications to control devices on a Z-Wave network, without requiring in-depth knowledge of the Z-Wave protocol. OpenZWave is not about creating Z-Wave devices (nodes). The project consists of the main library, written in C++ and wrappers and supporting projects, to interface different languages and protocol(s).
 
@@ -102,6 +109,8 @@ Become a financial contributor and help us sustain our community. [[Contribute](
 
 <a href="https://opencollective.com/ozw"><img src="https://opencollective.com/ozw/individuals.svg?width=890"></a>
 
+(We also have many users that support us via Github Sponsors program!)
+
 #### Organizations
 
 Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/ozw/contribute)]
@@ -116,3 +125,13 @@ Support this project with your organization. Your logo will show up here with a
 <a href="https://opencollective.com/ozw/organization/7/website"><img src="https://opencollective.com/ozw/organization/7/avatar.svg"></a>
 <a href="https://opencollective.com/ozw/organization/8/website"><img src="https://opencollective.com/ozw/organization/8/avatar.svg"></a>
 <a href="https://opencollective.com/ozw/organization/9/website"><img src="https://opencollective.com/ozw/organization/9/avatar.svg"></a>
+
+### Sponsors
+
+The Following Organisations Sponsor OpenZWave Development by donating hardware for testing and support
+
+<a href="https://www.aeotec.com/"><img height="47px" width="152px" src="https://aeotec.com/images/aeotec-logo.svg"></a>
+
+<a href="https://qubino.com/"><img height="47px" width="152px" src="https://qubino.com/wp-content/uploads/2019/02/qubino_logo.png"></a>
+
+<a href="https://www.heatit.com/"><img height="47px" width="152px" src="http://utvikling.thermofloor.no/TFWP/wp-content/uploads/2017/07/Heatit_Controls_RGB.png"></a>
diff --git a/config/2gig/ct200.xml b/config/2gig/ct200.xml
new file mode 100644
index 0000000000..1e7bf001a6
--- /dev/null
+++ b/config/2gig/ct200.xml
@@ -0,0 +1,123 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Vivint Element</MetaDataItem>
+    <MetaDataItem name="Description">The Vivint Element Smart Thermostat has an elegantly simple design making it easy for anyone to use. It's hidden display comes to life when you need it, providing clear information and simple controls. This simplicity purposefully masks Element's true intelligence. Element works in concert with the Vivint SkyControl system, leveraging an unmatched understanding of home routines and activity levels. Element automatically and dynamically adjusts to match home activities and ensure a personalized balance of comfort and energy savings. </MetaDataItem>    
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0098:0022:c801</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/2gig/ct200.png</MetaDataItem>
+    <MetaDataItem id="0022" name="ZWProductPage" type="c801">https://products.z-wavealliance.org/products/1678</MetaDataItem>
+    <MetaDataItem id="0022" name="FrequencyName" type="c801">U.S. / Canada / Mexico </MetaDataItem>    
+    <MetaDataItem id="0022" name="Identifier" type="c801">CT200</MetaDataItem>
+    <ChangeLog>
+      <Entry author="srirams" date="11 Nov 2020" revision="1">Initial</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0022" name="ZWProductPage" type="c801">https://products.z-wavealliance.org/products/1678/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the side button until you reach settings. Navigate to Installer / Reset.  Use this procedure only in the event that the network primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem id="0022" name="Identifier" type="c801">CT200</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Same process as inclusion.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/1678/CT200_UserGuide_20160308.pdf</MetaDataItem>
+    <MetaDataItem id="0022" name="FrequencyName" type="c801">U.S. / Canada / Mexico</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 name="InclusionDescription">Hold the side button until you reach settings. Navigate to Installer / Network</MetaDataItem>
+  </MetaData>
+  <!--
+	Radio Thermostat Company of America CT200 Thermostat manual available at:
+	https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/1678/CT200_UserGuide_20160308.pdf
+	Additional information:
+	https://products.z-wavealliance.org/products/1678
+	-->
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="2" label="Temperature Reporting Threshold (8-bit)" units="" size="1" min="0" max="4" type="list">
+      <Help>This value determines the reporting threshold</Help>
+      <Item value="0" label="Disabled"/>
+      <Item value="1" label="Also Disabled"/>
+      <Item value="2" label="0.5 degrees F"/>
+      <Item value="3" label="1.0 degrees F"/>
+      <Item value="4" label="1.5 degrees F"/>
+    </Value>
+    <Value genre="config" instance="1" index="2" value="0" label="HVAC Settings" units="" size="4" min="0" max="0" type="int">
+      <Help>Retrieves the HVAC Settings</Help>
+    </Value>
+    <Value genre="config" instance="1" index="3" value="0" label="Utility Lock" units="" size="1" min="0" max="255" type="byte">
+      <Help>Enable or Disable the Utility Lock</Help>
+    </Value>
+    <Value genre="config" instance="1" index="4" value="0" label="C-Wire/Battery Status" units="" size="1" min="0" max="0" type="list">
+      <Help>Query power which source is in use</Help>
+      <Item value="1" label="Powered by C-Wire"/>
+      <Item value="2" label="Powered by battery"/>
+    </Value>
+    <Value genre="config" instance="1" index="5" value="2" label="Humidity Reporting Threshold" units="" size="1" min="0" max="3" type="byte">
+      <Help>This value determines the reporting threshold</Help>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="0" label="Auxiliary/Emergency" units="" size="1" min="0" max="1" type="byte">
+      <Help>Auxiliary / Emergency Heat Pump Mode</Help>
+    </Value>
+    <Value genre="config" instance="1" index="7" value="2" label="Thermostat Swing Temp" units="degrees Fahrenheit" size="1" min="1" max="8" type="list">
+      <Help>Temperature spread between the on and off temperatures</Help>
+      <Item value="1" label="0.5 degrees Fahrenheit"/>
+      <Item value="2" label="1.0 degrees Fahrenheit"/>
+      <Item value="3" label="1.5 degrees Fahrenheit"/>
+      <Item value="4" label="2.0 degrees Fahrenheit"/>
+      <Item value="5" label="2.5 degrees Fahrenheit"/>
+      <Item value="6" label="3.0 degrees Fahrenheit"/>
+      <Item value="7" label="3.5 degrees Fahrenheit"/>
+      <Item value="8" label="4.0 degrees Fahrenheit"/>
+    </Value>
+    <Value genre="config" instance="1" index="8" value="4" label="Thermostat Diff Temp" units="" size="1" min="4" max="12" type="list">
+      <Help>How far off from target temp before turning on unit</Help>
+      <Item value="4" label="2.0 degrees Fahrenheit"/>
+      <Item value="6" label="3.0 degrees Fahrenheit"/>
+      <Item value="8" label="4.0 degrees Fahrenheit"/>
+      <Item value="10" label="5.0 degrees Fahrenheit"/>
+      <Item value="12" label="6.0 degrees Fahrenheit"/>
+    </Value>
+    <Value genre="config" instance="1" index="9" value="2" label="Thermostat Recovery Mode" units="" size="1" min="1" max="2" type="list">
+      <Help>Bring a space back to a normal occupied temp</Help>
+      <Item value="1" label="Fast Recovery Mode"/>
+      <Item value="2" label="Economy Recovery Mode"/>
+    </Value>
+    <Value genre="config" instance="1" index="11" value="1" label="Simple UI Mode" units="" size="1" min="0" max="1" type="list">
+      <Help>Toggle Simple UI Mode</Help>
+      <Item value="0" label="Disabled"/>
+      <Item value="1" label="Enabled"/>
+    </Value>
+    <Value genre="config" instance="1" index="12" value="0" label="Multicast" units="" size="1" min="0" max="1" type="list">
+      <Help>Toggle Multicast Mode</Help>
+      <Item value="0" label="Disabled"/>
+      <Item value="1" label="Enabled"/>
+    </Value>
+    <Value genre="config" instance="1" index="13" value="1" label="Main Display Selection" units="" size="1" min="1" max="2" type="list">
+      <Help>Control which info is displayed in the main display area</Help>
+      <Item value="1" label="Show Temperature"/>
+      <Item value="2" label="Show (unknown)"/>
+    </Value>
+    <Value genre="config" instance="1" index="14" value="2" label="Save Energy Mode Type" units="" size="1" min="1" max="255" type="byte">
+      <Help>Save Energy Mode behavior</Help>
+    </Value>
+    <Value genre="config" instance="1" index="15" value="0" label="Fan Timer" units="" size="1" min="0" max="60" type="byte">
+      <Help>Activate Fan w/ auto shutoff timer</Help>
+    </Value>
+    <Value genre="config" instance="1" index="17" value="0" label="Temperature Calibration" units="" size="1" min="-6" max="6" type="byte">
+      <Help>Temperature Calibration / Offset</Help>
+    </Value>
+    <Value genre="config" instance="1" index="18" value="0" label="Display Units" units="" size="1" min="0" max="1" type="list">
+      <Help>Celsius or Fahrenheit</Help>
+      <Item value="0" label="Fahrenheit"/>
+      <Item value="1" label="Celcius"/>
+    </Value>    
+  </CommandClass>
+  
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <Base>0</Base>
+      <AltTypeInterpretation>true</AltTypeInterpretation>
+    </Compatibility>
+  </CommandClass>  
+
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>  
+
+</Product>
diff --git a/config/2gig/ct32.xml b/config/2gig/ct32.xml
index ae2ca074a1..9577470d7a 100644
--- a/config/2gig/ct32.xml
+++ b/config/2gig/ct32.xml
@@ -1,4 +1,4 @@
-<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="6" 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>
@@ -16,6 +16,7 @@
       <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>
       <Entry author="Keith Pine - keith.pine@gmail.com" date="05 Dec 2019" revision="5">Force root instance to map to first endpoint via compat flag MapRootToEndpoint</Entry>
+      <Entry author="Keith Pine - keith.pine@gmail.com" date="21 Jan 2020" revision="6">Force Setpoint Interpretion A and update some config parameters.</Entry>
     </ChangeLog>
   </MetaData>
   <!--
@@ -26,6 +27,7 @@
   <CommandClass id="67">
     <Compatibility>
       <Base>0</Base>
+      <AltTypeInterpretation>false</AltTypeInterpretation>
     </Compatibility>
   </CommandClass>
   <CommandClass id="96">
@@ -34,7 +36,7 @@
     </Compatibility>
   </CommandClass>
   <CommandClass id="112">
-    <Value genre="config" index="1" label="Temperature Reporting Threshold" max="4" min="0" size="1" type="list" units="" value="0">
+    <Value genre="config" index="1" label="Temperature Reporting Threshold" max="4" min="0" size="1" type="list" units="" 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>
@@ -115,9 +117,7 @@
       <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 -->
+      <!-- 0x02,0x2,0x2,0x02,0x02 -->
     </Value>
     <Value genre="config" index="3" label="Utility Lock" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
@@ -135,9 +135,9 @@
       <Item label="C-Wire" value="1"/>
       <Item label="Battery" value="2"/>
     </Value>
-    <Value genre="config" index="5" label="Humidity Reporting Threshold" max="3" min="0" size="1" type="list" units="" value="0">
+    <Value genre="config" index="5" label="Humidity Reporting Threshold" max="3" min="0" size="1" type="list" units="" 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.
+        The Humidity Reporting Threshold Configuration Set Command sets the reporting threshold for changes in the ambient humidity as detected by the thermostat.
       </Help>
       <Item label="Disabled" value="0"/>
       <Item label="3% RH" value="1"/>
@@ -155,13 +155,17 @@
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value genre="config" index="7" label="Thermostat Swing Temperature" max="8" min="1" size="1" type="list" units="" value="0">
+    <Value genre="config" index="7" label="Thermostat Swing Temperature" max="8" min="1" size="1" type="list" units="" value="2">
       <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.
+        The Temperate Swing (HVAC cycling rate) is the desired variance in temperature between the thermostat setting and the room temperature required before the heating or cooling system will turn on.
       </Help>
-      <Item label="0.05F" value="1"/>
-      <Item label="0.1F" value="2"/>
+      <Item label="0.5F" value="1"/>
+      <Item label="1.0F" value="2"/>
+      <Item label="1.5F" value="3"/>
+      <Item label="2.0F" value="4"/>
+      <Item label="2.5F" value="5"/>
+      <Item label="3.0F" value="6"/>
+      <Item label="3.5F" value="7"/>
       <Item label="4.0F" value="8"/>
     </Value>
     <Value genre="config" index="8" label="Thermostat Differential Temperature" max="32767" min="2" size="2" type="list" units="F" value="4">
@@ -217,14 +221,14 @@
     </Value>
     <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
+        If the value is set to Disable then Normal Mode is enabled. If the value is set to Enable then Simple Mode is enabled.
       </Help>
       <Item label="Enable" value="0"/>
       <Item label="Disable" value="1"/>
     </Value>
     <Value genre="config" index="12" label="Multicast" max="1" min="0" size="1" type="byte" units="" value="0">
       <Help>
-        Multicasting Enable/Disable
+        If set to 0, multicast is disabled, if set to 1, will enable the multicast.
       </Help>
     </Value>
   </CommandClass>
diff --git a/config/Localization.xml b/config/Localization.xml
index e579507636..695ae26953 100644
--- a/config/Localization.xml
+++ b/config/Localization.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Localization xmlns="https://github.com/OpenZWave/open-zwave" Revision="8">
+<Localization xmlns="https://github.com/OpenZWave/open-zwave" Revision="12">
 	<CommandClass id="113">
 		<!-- Please keep Localization.xml in sync with NotificationCCTypes.xml -->
 		<!-- If you are adding new Types or Params, Please also consider updating ValueIDIndexesDefines.def -->
@@ -60,6 +60,8 @@
 			<ItemLabel itemIndex="9">Silenced</ItemLabel>
 			<ItemLabel itemIndex="10">Maintenance Required: Dust In Device</ItemLabel>
 			<ItemLabel itemIndex="11">Maintenance_Required: Periodic Inspection</ItemLabel>
+			<ItemLabel itemIndex="12">Rapid temperature fall at Location</ItemLabel>
+			<ItemLabel itemIndex="13">Rapid temperature fall at Unknown Location</ItemLabel>
 			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
 		</Value>
 		<Value index="5">
@@ -73,6 +75,10 @@
 			<ItemLabel itemIndex="5">Replace Filter</ItemLabel>
 			<ItemLabel itemIndex="6">Water Flow</ItemLabel>
 			<ItemLabel itemIndex="7">Water Pressure</ItemLabel>
+			<ItemLabel itemIndex="8">Water Temperature</ItemLabel>
+			<ItemLabel itemIndex="9">Water Level</ItemLabel>
+			<ItemLabel itemIndex="10">Sump Pump Active</ItemLabel>
+			<ItemLabel itemIndex="11">Sump Pump Failure</ItemLabel>
 			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
 		</Value>
 		<Value index="6">
@@ -102,6 +108,9 @@
 			<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="24">Window/door handle is open</ItemLabel>
+			<ItemLabel itemIndex="25">Window/door handle is closed</ItemLabel>
+			<ItemLabel itemIndex="26">Messaging User Code entered via keypa</ItemLabel>
 			<ItemLabel itemIndex="64">Barrier Initializing</ItemLabel>
 			<ItemLabel itemIndex="65">Barrier Force Exceeded</ItemLabel>
 			<ItemLabel itemIndex="66">Barrier Motor Time Exceeded</ItemLabel>
@@ -130,6 +139,8 @@
 			<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="10">Impact detected</ItemLabel>
+			<ItemLabel itemIndex="11">Magnetic field interference detected</ItemLabel>
 			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
 		</Value>
 		<Value index="8">
@@ -151,6 +162,8 @@
 			<ItemLabel itemIndex="13">Battery Charged</ItemLabel>
 			<ItemLabel itemIndex="14">Battery Low</ItemLabel>
 			<ItemLabel itemIndex="15">Battery Critical</ItemLabel>
+			<ItemLabel itemIndex="16">Back-up battery is low</ItemLabel>
+			<ItemLabel itemIndex="18">Back-up battery disconnected</ItemLabel>
 			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
 		</Value>
 		<Value index="9">
@@ -164,6 +177,9 @@
 			<ItemLabel itemIndex="5">Heartbeat</ItemLabel>
 			<ItemLabel itemIndex="6">Tampering Detected</ItemLabel>
 			<ItemLabel itemIndex="7">Emergency Shutoff</ItemLabel>
+			<ItemLabel itemIndex="8">Digital input high state</ItemLabel>
+			<ItemLabel itemIndex="9">Digital input low state</ItemLabel>
+			<ItemLabel itemIndex="10">Digital input open</ItemLabel>
 			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
 		</Value>
 		<Value index="10">
@@ -173,6 +189,7 @@
 			<ItemLabel itemIndex="1">Contact Police Department</ItemLabel>
 			<ItemLabel itemIndex="2">Contact Fire Department</ItemLabel>
 			<ItemLabel itemIndex="3">Contact Medical Service</ItemLabel>
+			<ItemLabel itemIndex="4">Panic alert</ItemLabel>
 			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
 		</Value>
 		<Value index="11">
@@ -221,6 +238,11 @@
 			<ItemLabel itemIndex="4">Posture Changed</ItemLabel>
 			<ItemLabel itemIndex="5">Sitting On Edge Of Bed</ItemLabel>
 			<ItemLabel itemIndex="6">Volatile Organic Compound Level</ItemLabel>
+			<ItemLabel itemIndex="7">Sleep apnea detected</ItemLabel>
+			<ItemLabel itemIndex="8">Sleep stage 0 detected (Dreaming/REM)</ItemLabel>
+			<ItemLabel itemIndex="9">Sleep stage 1 detected (Light sleep, non-REM 1)</ItemLabel>
+			<ItemLabel itemIndex="10">Sleep stage 2 detected (Medium sleep, non-REM 2)</ItemLabel>
+			<ItemLabel itemIndex="11">Sleep stage 3 detected (Deep sleep, non-REM 3)</ItemLabel>
 			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
 		</Value>
 		<Value index="14">
@@ -248,6 +270,7 @@
 			<ItemLabel itemIndex="0">Clear</ItemLabel>
 			<ItemLabel itemIndex="1">Rain Detected</ItemLabel>
 			<ItemLabel itemIndex="2">Moisture Detected</ItemLabel>
+			<ItemLabel itemIndex="3">Freeze</ItemLabel>
 			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
 		</Value>
 		<Value index="17">
@@ -273,6 +296,60 @@
 			<ItemLabel itemIndex="6">Replacement Required</ItemLabel>
 			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
 		</Value>
+		<Value index="19">
+			<Help>Pest Control Alerts</Help>
+			<Label>Pest Control</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Trap armed at Location</ItemLabel>
+			<ItemLabel itemIndex="2">Trap armed</ItemLabel>
+			<ItemLabel itemIndex="3">Trap re-arm required at Location</ItemLabel>
+			<ItemLabel itemIndex="4">Trap re-arm required</ItemLabel>
+			<ItemLabel itemIndex="5">Pest detected at Location</ItemLabel>
+			<ItemLabel itemIndex="6">Pest detected</ItemLabel>
+			<ItemLabel itemIndex="7">Pest exterminated at Location</ItemLabel>
+			<ItemLabel itemIndex="8">Pest exterminated</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="20">
+			<Help>Light Alerts</Help>
+			<Label>Light</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Light detected</ItemLabel>
+			<ItemLabel itemIndex="2">Light color transition detected</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="21">
+			<Help>Water Quality Monitoring Alerts</Help>
+			<Label>Water Quality Monitoring</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Chlorine</ItemLabel>
+			<ItemLabel itemIndex="2">Acidity (pH)</ItemLabel>
+			<ItemLabel itemIndex="3">Water Oxidation</ItemLabel>
+			<ItemLabel itemIndex="4">Chlorine empty</ItemLabel>
+			<ItemLabel itemIndex="5">Acidity (pH) empty</ItemLabel>
+			<ItemLabel itemIndex="6">Waterflow measuring station shortage detected</ItemLabel>
+			<ItemLabel itemIndex="7">Waterflow clear water shortage detected</ItemLabel>
+			<ItemLabel itemIndex="8">Disinfection system error detected</ItemLabel>
+			<ItemLabel itemIndex="9">Filter cleaning ongoing</ItemLabel>
+			<ItemLabel itemIndex="10">Heating operation ongoing</ItemLabel>
+			<ItemLabel itemIndex="11">Filter pump operation ongoing</ItemLabel>
+			<ItemLabel itemIndex="12">Freshwater operation ongoing</ItemLabel>
+			<ItemLabel itemIndex="13">Dry protection operation active</ItemLabel>
+			<ItemLabel itemIndex="14">Water tank is empty</ItemLabel>
+			<ItemLabel itemIndex="15">Water tank level is unknow</ItemLabel>
+			<ItemLabel itemIndex="16">Water tank is full</ItemLabel>
+			<ItemLabel itemIndex="17">Collective disorder</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+		<Value index="22">
+			<Help>Home Monitoring Alerts</Help>
+			<Label>Home Monitoring</Label>
+			<ItemLabel itemIndex="0">Clear</ItemLabel>
+			<ItemLabel itemIndex="1">Home occupied at Location</ItemLabel>
+			<ItemLabel itemIndex="2">Home occupied</ItemLabel>
+			<ItemLabel itemIndex="254">Unknown Event</ItemLabel>
+		</Value>
+
 		<!--  Index from 256 are Params -->
 		<Value index="256">
 			<Help>Previous Event that was sent</Help>
@@ -359,6 +436,10 @@
 			<Help>The ID of the Valve Table that triggered this alert</Help>
 			<Label>Valve Table ID</Label>
 		</Value>
+		<Value index="272">
+			<Help>Detected Power of interference</Help>
+			<Label>RSSI Level</Label>
+		</Value>
 		<Value index="512">
 			<Help>Alarm Type Received</Help>
 			<Help lang="fr">Type d'alarme reçu</Help>
@@ -528,7 +609,7 @@
 			<Label>Color Channels</Label>
 		</Value>
 		<Value index="3">
-			<Help>Duration to change colors</Help>
+			<Help>Duration to change colors (Values above 7620 use the devices default duration)</Help>
 			<Label>Duration</Label>
 		</Value>
 	</CommandClass>
@@ -631,6 +712,455 @@
 			<Help>Current Indicator State</Help>
 			<Label>Indicator</Label>
 		</Value>
+		<Value index="1">
+			<Help>Use to indicate that alarm is armed</Help>
+			<Label>Indicator: Armed</Label>
+		</Value>
+		<Value index="2">
+			<Help>Use to indicate that alarm is disarmed</Help>
+			<Label>Indicator: Not Armed</Label>
+		</Value>
+		<Value index="3">
+			<Help>Use to indicate that device is ready</Help>
+			<Label>Indicator: Ready</Label>
+		</Value>
+		<Value index="4">
+			<Help>Use to indicate a general error</Help>
+			<Label>Indicator: Fault</Label>
+		</Value>
+		<Value index="5">
+			<Help>Use to indicate that device is temporarily busy</Help>
+			<Label>Indicator: Busy</Label>
+		</Value>
+		<Value index="6">
+			<Help>Use to signal that device is waiting for ID</Help>
+			<Label>Indicator: Enter ID</Label>
+		</Value>
+		<Value index="7">
+			<Help>Use to signal that device is waiting for PIN code</Help>
+			<Label>Indicator: Enter PIN</Label>
+		</Value>
+		<Value index="8">
+			<Help>Use to indicate OK e.g. the entered code is accepted</Help>
+			<Label>Indicator: Code Accepted</Label>
+		</Value>
+		<Value index="9">
+			<Help>Use to indicate NOT OK e.g. the entered code is NOT accepted</Help>
+			<Label>Indicator: Code Not Accepted</Label>
+		</Value>
+		<Value index="10">
+			<Help>Use to indicate that the alarm is armed and users are staying in the home</Help>
+			<Label>Indicator: Armed Stay</Label>
+		</Value>
+		<Value index="11">
+			<Help>Use to indicate that the alarm is armed and users are away from the home</Help>
+			<Label>Indicator: Armed Away</Label>
+		</Value>
+		<Value index="12">
+			<Help>Use to indicate that the alarm is triggered and active with no reason specified</Help>
+			<Label>Indicator: Alarming</Label>
+		</Value>
+		<Value index="13">
+			<Help>Use to indicate that the alarm is triggered and active due to a Burglar event</Help>
+			<Label>Indicator: Alarming: Burglar</Label>
+		</Value>
+		<Value index="14">
+			<Help>Use to indicate that the alarm is triggered and active due to a Fire Alarm event</Help>
+			<Label>Indicator: Alarming: Smoke/Fire</Label>
+		</Value>
+		<Value index="15">
+			<Help>Use to indicate that the alarm is triggered and active due to a CO event</Help>
+			<Label>Indicator: Alarming: Carbon Monoxide</Label>
+		</Value>
+		<Value index="16">
+			<Help>Use to indicate that the device expects a bypass challenge code</Help>
+			<Label>Indicator: Bypass Challenge</Label>
+		</Value>
+		<Value index="17">
+			<Help>Use to indicate that the alarm is about to be activated unless disarmed by a code</Help>
+			<Label>Indicator: Entry Delay</Label>
+		</Value>
+		<Value index="18">
+			<Help>Use to indicate that the alarm will be active after the exit delay</Help>
+			<Label>Indicator: Exit Delay</Label>
+		</Value>
+		<Value index="19">
+			<Help>Use to indicate that the alarm is triggered and active due to a medical emergency</Help>
+			<Label>Indicator: Alarming: Medical</Label>
+		</Value>
+		<Value index="20">
+			<Help>Use to indicate that the alarm is triggered and active due to a freeze warning</Help>
+			<Label>Indicator: Alarming: Freeze Warning</Label>
+		</Value>
+		<Value index="21">
+			<Help>Use to indicate that the alarm is triggered and active due to a water leak</Help>
+			<Label>Indicator: Alarming: Water Leak</Label>
+		</Value>
+		<Value index="22">
+			<Help>Use to indicate that the alarm is triggered and active due to a panic alarm trigger</Help>
+			<Label>Indicator: Alarming: Panic</Label>
+		</Value>
+		<Value index="32">
+			<Help>Use to indicate that alarm zone 1 is armed</Help>
+			<Label>Indicator: Zone 1 Armed</Label>
+		</Value>
+		<Value index="33">
+			<Help>Use to indicate that alarm zone 2 is armed</Help>
+			<Label>Indicator: Zone 2 Armed</Label>
+		</Value>
+		<Value index="34">
+			<Help>Use to indicate that alarm zone 3 is armed</Help>
+			<Label>Indicator: Zone 3 Armed</Label>
+		</Value>
+		<Value index="35">
+			<Help>Use to indicate that alarm zone 4 is armed</Help>
+			<Label>Indicator: Zone 4 Armed</Label>
+		</Value>
+		<Value index="36">
+			<Help>Use to indicate that alarm zone 5 is armed</Help>
+			<Label>Indicator: Zone 5 Armed</Label>
+		</Value>
+		<Value index="37">
+			<Help>Use to indicate that alarm zone 6 is armed</Help>
+			<Label>Indicator: Zone 6 Armed</Label>
+		</Value>
+		<Value index="38">
+			<Help>Use to indicate that alarm zone 7 is armed</Help>
+			<Label>Indicator: Zone 7 Armed</Label>
+		</Value>
+		<Value index="39">
+			<Help>Use to indicate that alarm zone 8 is armed</Help>
+			<Label>Indicator: Zone 8 Armed</Label>
+		</Value>
+		<Value index="48">
+			<Help>Use to turn on LCD backlight, e.g. to shortly draw attention when alarm is activated from another entry control keypad.</Help>
+			<Label>Indicator: LCD Backlight</Label>
+		</Value>
+		<Value index="64">
+			<Help>Use to indicate that buttons are ready for user input</Help>
+			<Label>Indicator: Button: Backlight Letters</Label>
+		</Value>
+		<Value index="65">
+			<Help>Use to indicate that buttons are ready for user input</Help>
+			<Label>Indicator: Button: Backlight Digits</Label>
+		</Value>
+		<Value index="66">
+			<Help>Use to indicate that buttons are ready for user input</Help>
+			<Label>Indicator: Button: Backlight Command</Label>
+		</Value>
+		<Value index="67">
+			<Help>Use to draw attention to button 1</Help>
+			<Label>Indicator: Button 1</Label>
+		</Value>
+		<Value index="68">
+			<Help>Use to draw attention to button 2</Help>
+			<Label>Indicator: Button 2</Label>
+		</Value>
+		<Value index="69">
+			<Help>Use to draw attention to button 3</Help>
+			<Label>Indicator: Button 3</Label>
+		</Value>
+		<Value index="70">
+			<Help>Use to draw attention to button 4</Help>
+			<Label>Indicator: Button 4</Label>
+		</Value>
+		<Value index="71">
+			<Help>Use to draw attention to button 5</Help>
+			<Label>Indicator: Button 5</Label>
+		</Value>
+		<Value index="72">
+			<Help>Use to draw attention to button 6</Help>
+			<Label>Indicator: Button 6</Label>
+		</Value>
+		<Value index="73">
+			<Help>Use to draw attention to button 7</Help>
+			<Label>Indicator: Button 7</Label>
+		</Value>
+		<Value index="74">
+			<Help>Use to draw attention to button 8</Help>
+			<Label>Indicator: Button 8</Label>
+		</Value>
+		<Value index="75">
+			<Help>Use to draw attention to button 9</Help>
+			<Label>Indicator: Button 9</Label>
+		</Value>
+		<Value index="76">
+			<Help>Use to draw attention to button 10</Help>
+			<Label>Indicator: Button 10</Label>
+		</Value>
+		<Value index="77">
+			<Help>Use to draw attention to button 11</Help>
+			<Label>Indicator: Button 11</Label>
+		</Value>
+		<Value index="78">
+			<Help>Use to draw attention to button 12</Help>
+			<Label>Indicator: Button 12</Label>
+		</Value>
+		<Value index="80">
+			<Help>This indicator is used to identify the node.</Help>
+			<Label>Indicator: Node Identify</Label>
+		</Value>
+		<Value index="96">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 1</Label>
+		</Value>
+		<Value index="97">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 2</Label>
+		</Value>
+		<Value index="98">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 3</Label>
+		</Value>
+		<Value index="99">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 4</Label>
+		</Value>
+		<Value index="100">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 5</Label>
+		</Value>
+		<Value index="101">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 6</Label>
+		</Value>
+		<Value index="102">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 7</Label>
+		</Value>
+		<Value index="103">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 8</Label>
+		</Value>
+		<Value index="104">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 9</Label>
+		</Value>
+		<Value index="105">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 10</Label>
+		</Value>
+		<Value index="106">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 11</Label>
+		</Value>
+		<Value index="107">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 12</Label>
+		</Value>
+		<Value index="108">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 13</Label>
+		</Value>
+		<Value index="109">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 14</Label>
+		</Value>
+		<Value index="110">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 15</Label>
+		</Value>
+		<Value index="111">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 16</Label>
+		</Value>
+		<Value index="112">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 17</Label>
+		</Value>
+		<Value index="113">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 18</Label>
+		</Value>
+		<Value index="114">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 19</Label>
+		</Value>
+		<Value index="115">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 20</Label>
+		</Value>
+		<Value index="116">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 21</Label>
+		</Value>
+		<Value index="117">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 22</Label>
+		</Value>
+		<Value index="118">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 23</Label>
+		</Value>
+		<Value index="119">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 24</Label>
+		</Value>
+		<Value index="120">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 25</Label>
+		</Value>
+		<Value index="121">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 26</Label>
+		</Value>
+		<Value index="122">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 27</Label>
+		</Value>
+		<Value index="123">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 28</Label>
+		</Value>
+		<Value index="124">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 29</Label>
+		</Value>
+		<Value index="125">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 30</Label>
+		</Value>
+		<Value index="126">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 31</Label>
+		</Value>
+		<Value index="127">
+			<Help>Sound indication, use to indicate that a generic event happened.</Help>
+			<Label>Indicator: Generic Event Sound Notification 32</Label>
+		</Value>
+		<Value index="128">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 1</Label>
+		</Value>
+		<Value index="129">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 2</Label>
+		</Value>
+		<Value index="130">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 3</Label>
+		</Value>
+		<Value index="131">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 4</Label>
+		</Value>
+		<Value index="132">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 5</Label>
+		</Value>
+		<Value index="133">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 6</Label>
+		</Value>
+		<Value index="134">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 7</Label>
+		</Value>
+		<Value index="135">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 8</Label>
+		</Value>
+		<Value index="136">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 9</Label>
+		</Value>
+		<Value index="137">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 10</Label>
+		</Value>
+		<Value index="138">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 11</Label>
+		</Value>
+		<Value index="139">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 12</Label>
+		</Value>
+		<Value index="140">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 13</Label>
+		</Value>
+		<Value index="141">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 14</Label>
+		</Value>
+		<Value index="142">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 15</Label>
+		</Value>
+		<Value index="143">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 16</Label>
+		</Value>
+		<Value index="144">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 17</Label>
+		</Value>
+		<Value index="145">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 18</Label>
+		</Value>
+		<Value index="146">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 19</Label>
+		</Value>
+		<Value index="147">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 20</Label>
+		</Value>
+		<Value index="148">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 21</Label>
+		</Value>
+		<Value index="149">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 22</Label>
+		</Value>
+		<Value index="150">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 23</Label>
+		</Value>
+		<Value index="151">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 24</Label>
+		</Value>
+		<Value index="152">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 25</Label>
+		</Value>
+		<Value index="153">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 26</Label>
+		</Value>
+		<Value index="154">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 27</Label>
+		</Value>
+		<Value index="155">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 28</Label>
+		</Value>
+		<Value index="156">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 29</Label>
+		</Value>
+		<Value index="157">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 30</Label>
+		</Value>
+		<Value index="158">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 31</Label>
+		</Value>
+		<Value index="159">
+			<Help>Manufacturer Defined.</Help>
+			<Label>Indicator: Manufacturer Defined Indicator 32</Label>
+		</Value>
+		<Value index="240">
+			<Help>Use to draw attention or provide user feedback</Help>
+			<Label>Indicator: Buzzer</Label>
+		</Value>
+		<!-- We need to come back one day and do the Property Entries -->
 	</CommandClass>
 	<CommandClass id="137">
 		<Label>COMMAND_CLASS_LANGUAGE</Label>
@@ -807,7 +1337,7 @@
 			<Label>Test Powerlevel</Label>
 		</Value>
 		<Value index="5">
-			<Help>How Many Messages to send to the Note for the Test</Help>
+			<Help>How Many Messages to send to the Node for the Test</Help>
 			<Label>Frame Count</Label>
 		</Value>
 		<Value index="6">
@@ -1020,8 +1550,8 @@
 			<Label>Target Temperature</Label>
 		</Value>
 		<Value index="35">
-			<Help>Particulate Mater 2.5 Sensor Value</Help>
-			<Label>Particulate Mater 2.5</Label>
+			<Help>Particulate Matter 2.5 Sensor Value</Help>
+			<Label>Particulate Matter 2.5</Label>
 		</Value>
 		<Value index="36">
 			<Help>Formaldehyde CH20 Level Sensor Value</Help>
@@ -1364,8 +1894,8 @@
 			<Label>Target Temperature Units</Label>
 		</Value>
 		<Value index="290">
-			<Help>Particulate Mater 2.5 Sensor Available Units</Help>
-			<Label>Particulate Mater 2.5 Units</Label>
+			<Help>Particulate Matter 2.5 Sensor Available Units</Help>
+			<Label>Particulate Matter 2.5 Units</Label>
 		</Value>
 		<Value index="291">
 			<Help>Formaldehyde CH20 Level Sensor Available Units</Help>
@@ -1609,7 +2139,7 @@
 			<Label>Target State</Label>
 		</Value>
 		<Value index="2">
-			<Help>How Long to Transition to new State</Help>
+			<Help>How Long to Transition to new State (Values above 7620 use the devices default duration)</Help>
 			<Label>Transition Duration</Label>
 		</Value>
 	</CommandClass>
@@ -1636,7 +2166,7 @@
 			<Label>Start Level</Label>
 		</Value>
 		<Value index="5">
-			<Help>Duration taken when changing the Level of a Device</Help>
+			<Help>Duration taken when changing the Level of a Device (Values above 7620 use the devices default duration)</Help>
 			<Label>Dimming Duration</Label>
 		</Value>
 		<Value index="6">
diff --git a/config/NotificationCCTypes.xml b/config/NotificationCCTypes.xml
index 61546ad257..b0dbb1ac7d 100644
--- a/config/NotificationCCTypes.xml
+++ b/config/NotificationCCTypes.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<NotificationTypes xmlns='https://github.com/OpenZWave/open-zwave' Revision="9">
+<NotificationTypes xmlns='https://github.com/OpenZWave/open-zwave' Revision="11">
+	<!-- Last Updated with Version 11 - 1/1/20 -->
 	<!-- Please keep Localization.xml in sync with NotificationCCTypes.xml -->
 	<!-- If you are adding new Types or Params, Please also consider updating ValueIDIndexesDefines.def -->
 	<!-- Bump Revision number, run "xmllint format" and "make xmltest" before submitting -->
@@ -111,6 +112,11 @@
 		</AlarmEvent>
 		<AlarmEvent id="11" name="Maintenance_Required: Periodic Inspection">
 		</AlarmEvent>
+		<AlarmEvent id="12" name="Rapid temperature fall at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="13" name="Rapid temperature fall at Unknown Location">
+		</AlarmEvent>
 		<AlarmEvent id="254" name="Unknown Event">
 		</AlarmEvent>
 	</AlarmType>
@@ -147,6 +153,24 @@
 				<Item id="4" label="Max" />
 			</AlarmEventParam>
 		</AlarmEvent>
+		<AlarmEvent id="8" name="Water Temperature">
+			<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" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="9" name="Water Level">
+			<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" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="10" name="Sump Pump Active">
+		</AlarmEvent>
+		<AlarmEvent id="11" name="Sump Pump Failure">
+		</AlarmEvent>
 		<AlarmEvent id="254" name="Unknown Event">
 		</AlarmEvent>
 	</AlarmType>
@@ -203,6 +227,13 @@
 		</AlarmEvent>
 		<AlarmEvent id="23" name="Door/Window Closed">
 		</AlarmEvent>
+		<AlarmEvent id="24" name="Window/door handle is open">
+		</AlarmEvent>
+		<AlarmEvent id="25" name="Window/door handle is closed">
+		</AlarmEvent>
+		<AlarmEvent id="26" name="Messaging User Code entered via keypad">
+			<AlarmEventParam id="260" type="usercodereport" name="UserCode" />
+		</AlarmEvent>
 		<AlarmEvent id="64" name="Barrier Initializing">
 			<AlarmEventParam id="262" type="list" name="Progress">
 				<Item id="0" label="Process Complete" />
@@ -273,6 +304,13 @@
 		</AlarmEvent>
 		<AlarmEvent id="9" name="Tampering - Product Moved">
 		</AlarmEvent>
+		<AlarmEvent id="10" name="Impact detected">
+		</AlarmEvent>
+		<AlarmEvent id="11" name="Magnetic field interference detected">
+		</AlarmEvent>
+		<AlarmEvent id="12" name="RF Jamming detected">
+			<AlarmEventParam id="272" type="byte" name="RSSI Level" />
+		</AlarmEvent>
 		<AlarmEvent id="254" name="Unknown Event">
 		</AlarmEvent>
 	</AlarmType>
@@ -311,6 +349,10 @@
 		</AlarmEvent>
 		<AlarmEvent id="15" name="Battery Critical">
 		</AlarmEvent>
+		<AlarmEvent id="16" name="Back-up battery is low">
+		</AlarmEvent>
+		<AlarmEvent id="18" name="Back-up battery disconnected">
+		</AlarmEvent>
 		<AlarmEvent id="254" name="Unknown Event">
 		</AlarmEvent>
 	</AlarmType>
@@ -335,6 +377,12 @@
 		</AlarmEvent>
 		<AlarmEvent id="7" name="Emergency Shutoff">
 		</AlarmEvent>
+		<AlarmEvent id="8" name="Digital input high state">
+		</AlarmEvent>
+		<AlarmEvent id="9" name="Digital input low state">
+		</AlarmEvent>
+		<AlarmEvent id="10" name="Digital input open">
+		</AlarmEvent>
 		<AlarmEvent id="254" name="Unknown_Event">
 		</AlarmEvent>
 	</AlarmType>
@@ -349,6 +397,8 @@
 		</AlarmEvent>
 		<AlarmEvent id="3" name="Contact Medical Service">
 		</AlarmEvent>
+		<AlarmEvent id="4" name="Panic alert">
+		</AlarmEvent>
 		<AlarmEvent id="254" name="Unknown Event">
 		</AlarmEvent>
 	</AlarmType>
@@ -440,6 +490,20 @@
 				<Item id="4" label="Highly Polluted" />
 			</AlarmEventParam>
 		</AlarmEvent>
+		<AlarmEvent id="7" name="Sleep apnea detected">
+			<AlarmEventParam id="268" type="list" name="breath level">
+				<Item id="1" label="Low Breath" />
+				<Item id="2" label="No Breath" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="8" name="Sleep stage 0 detected (Dreaming/REM)">
+		</AlarmEvent>
+		<AlarmEvent id="9" name="Sleep stage 1 detected (Light sleep, non-REM 1)">
+		</AlarmEvent>
+		<AlarmEvent id="10" name="Sleep stage 2 detected (Medium sleep, non-REM 2)">
+		</AlarmEvent>
+		<AlarmEvent id="11" name="Sleep stage 3 detected (Deep sleep, non-REM 3)">
+		</AlarmEvent>
 		<AlarmEvent id="254" name="Unknown Event">
 		</AlarmEvent>
 	</AlarmType>
@@ -502,6 +566,8 @@
 		</AlarmEvent>
 		<AlarmEvent id="2" name="Moisture Detected">
 		</AlarmEvent>
+		<AlarmEvent id="3" name="Freeze">
+		</AlarmEvent>
 		<AlarmEvent id="254" name="Unknown Event">
 		</AlarmEvent>
 	</AlarmType>
@@ -550,4 +616,115 @@
 		</AlarmEvent>
 	</AlarmType>
 
+	<AlarmType id="19" name="Pest Control">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Trap armed at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Trap armed">
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Trap re-arm required at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Trap re-arm required">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Pest detected at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Pest detected">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Pest exterminated at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="8" name="Pest exterminated">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="20" name="Light">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Light detected">
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Light color transition detected">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="21" name="Water Quality Monitoring">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Chlorine">
+			<AlarmEventParam id="259" type="list" name="Threshold">
+				<Item id="1" label="Below Low Threshold" />
+				<Item id="2" label="Above High Threshold" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Acidity (pH)">
+			<AlarmEventParam id="259" type="list" name="Threshold">
+				<Item id="1" label="Below Low Threshold" />
+				<Item id="2" label="Above High Threshold" />
+				<Item id="3" label="Decreasing pH" />
+				<Item id="4" label="Increasing pH" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="3" name="Water Oxidation">
+			<AlarmEventParam id="259" type="list" name="Type">
+				<Item id="1" label="Below Low Threshold" />
+				<Item id="2" label="Above High Threshold" />
+			</AlarmEventParam>
+		</AlarmEvent>
+		<AlarmEvent id="4" name="Chlorine empty">
+		</AlarmEvent>
+		<AlarmEvent id="5" name="Acidity (pH) empty">
+		</AlarmEvent>
+		<AlarmEvent id="6" name="Waterflow measuring station shortage detected">
+		</AlarmEvent>
+		<AlarmEvent id="7" name="Waterflow clear water shortage detected">
+		</AlarmEvent>
+		<AlarmEvent id="8" name="Disinfection system error detected">
+			<AlarmEventParam id="1" type="byte" name="Error" />
+		</AlarmEvent>
+		<AlarmEvent id="9" name="Filter cleaning ongoing">
+			<AlarmEventParam id="1" type="byte" name="Progress" />
+		</AlarmEvent>
+		<AlarmEvent id="10" name="Heating operation ongoing">
+		</AlarmEvent>
+		<AlarmEvent id="11" name="Filter pump operation ongoing">
+		</AlarmEvent>
+		<AlarmEvent id="12" name="Freshwater operation ongoing">
+		</AlarmEvent>
+		<AlarmEvent id="13" name="Dry protection operation active">
+		</AlarmEvent>
+		<AlarmEvent id="14" name="Water tank is empty">
+		</AlarmEvent>
+		<AlarmEvent id="15" name="Water tank level is unknown">
+		</AlarmEvent>
+		<AlarmEvent id="16" name="Water tank is full">
+		</AlarmEvent>
+		<AlarmEvent id="17" name="Collective disorder">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
+	<AlarmType id="22" name="Home Monitoring">
+		<AlarmEvent id="0" name="Clear">
+			<AlarmEventParam id="256" type="byte" name="Previous Event Cleared" />
+		</AlarmEvent>
+		<AlarmEvent id="1" name="Home occupied at Location">
+			<AlarmEventParam id="257" type="location" name="Alert Location" />
+		</AlarmEvent>
+		<AlarmEvent id="2" name="Home occupied">
+		</AlarmEvent>
+		<AlarmEvent id="254" name="Unknown Event">
+		</AlarmEvent>
+	</AlarmType>
+
 </NotificationTypes>
diff --git a/config/SensorMultiLevelCCTypes.xml b/config/SensorMultiLevelCCTypes.xml
index 63d365b63c..17e65afa42 100644
--- a/config/SensorMultiLevelCCTypes.xml
+++ b/config/SensorMultiLevelCCTypes.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<SensorTypes xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
+<SensorTypes xmlns='https://github.com/OpenZWave/open-zwave' Revision="4">
 	<SensorType id="1" name="Air Temperature">
 		<SensorScale id="0" name="Celsius">C</SensorScale>
 		<SensorScale id="1" name="Fahrenheit">F</SensorScale>
@@ -14,7 +14,7 @@
 		<SensorScale id="1" name="Lux">Lux</SensorScale>
 	</SensorType>
 	<SensorType id="4" name="Power">
-		<SensorScale id="0" name="Watt">Watt</SensorScale>
+		<SensorScale id="0" name="Watt">W</SensorScale>
 		<SensorScale id="1" name="Btu/h">Btu/h</SensorScale>
 	</SensorType>
 	<SensorType id="5" name="Humidity">
@@ -139,7 +139,7 @@
 		<SensorScale id="0" name="Celsius">C</SensorScale>
 		<SensorScale id="1" name="Fahrenheit">F</SensorScale>
 	</SensorType>
-	<SensorType id="35" name="Particulate Mater 2.5">
+	<SensorType id="35" name="Particulate Matter 2.5">
 		<SensorScale id="0" name="Mole Per Cubic Meter">mol/m3</SensorScale>
 		<SensorScale id="1" name="Microgram Per Cubic Meter">μg/m3</SensorScale>
 	</SensorType>
diff --git a/config/abus/SHRM10000.xml b/config/abus/SHRM10000.xml
new file mode 100644
index 0000000000..acbc8c4ca2
--- /dev/null
+++ b/config/abus/SHRM10000.xml
@@ -0,0 +1,40 @@
+<!--
+Smart Smoke Sensor SHRM10000
+http://products.z-wavealliance.org/products/3089
+--><Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0403:0003:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/abus/SHRM10000.jpg</MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/3089/</MetaDataItem>
+    <MetaDataItem name="Description">The Smart Smoke Alarm adopts Z-Wave protocol, when the sensor detects smoke to the set level, it will issue  acoustic-optic alarm to alert the users and also send alarm notifications to gateway immediately.It's suitable to be installed in living room, office,warehouse,and etc.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">-  Click [Add] icon in Z-Wave Controller .
+-  Press the Net_Button 3 times within 1.5s, Green LED is Blinking 3 times within 1 second.
+-  If Inclusion Process is successful, Green led will turn off.
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">-  Click [Remove] icon in Z-Wave Controller
+-  Press the Net_Button 3 times within 1.5s 
+-  If Exclusion Process is successful, Green led is Blinking 6 times, then turn off.
+</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">-  Wake up Notification is transmitted every 24 hours by default.
+-  Wake up Notification is transmitted after Notification Report is Transmitted </MetaDataItem>
+    <MetaDataItem name="ResetDescription">--Long press Net_Button while installing batteries in the product.
+- Device Reset Locally notification is Transmitted.
+Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0002">HS1SA-Z</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3006/HS1SA-Z S2-documentation_3.pdf</MetaDataItem>
+    <MetaDataItem name="Name">Smart Smoke Alarm</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Oliver Eiber" date="09 September 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3089/xml</Entry>
+     </ChangeLog>
+  </MetaData>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="LifeLine" max_associations="1"/>
+      <Group index="2" label="Binary Sensor" max_associations="5"/>
+      <Group index="3" label="Notification" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/aeotec/zw095.xml b/config/aeotec/zw095.xml
index 6934b2bfcf..ca4fa7d4c4 100644
--- a/config/aeotec/zw095.xml
+++ b/config/aeotec/zw095.xml
@@ -1,7 +1,7 @@
 <!--
 Aeotec ZW095 Home Energy Meter Gen5
 https://aeotec.freshdesk.com/helpdesk/attachments/6009584689
---><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="6" 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>
@@ -21,6 +21,7 @@ Products that are Z-Wave certified can be used and communicate with other Z-Wave
       <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>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="23 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1596/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2046/xml</Entry>
+	    <Entry author="Muhammad Zaman - mzaman@microsoft.com" date="18 Jan 2021" revision="6">Configure ordinary lifeline association instead of multi channel lifeline association</Entry>
     </ChangeLog>
     <MetaDataItem id="005F" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/2046/</MetaDataItem>
     <MetaDataItem id="005F" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
@@ -250,5 +251,10 @@ Products that are Z-Wave certified can be used and communicate with other Z-Wave
     <Associations num_groups="1">
       <Group index="1" label="Lifeline" max_associations="5"/>
     </Associations>
+  </CommandClass>  
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>false</ForceInstances>
+    </Compatibility>
   </CommandClass>
 </Product>
diff --git a/config/aeotec/zw100.xml b/config/aeotec/zw100.xml
index 03381caa11..5a04903762 100644
--- a/config/aeotec/zw100.xml
+++ b/config/aeotec/zw100.xml
@@ -1,8 +1,8 @@
-<!-- 
+<!--
 Aeotec ZW100 MultiSensor 6
 https://aeotec.freshdesk.com/helpdesk/attachments/6028954764
 V1.10 + V1.11 (12/14/2017)
---><Product Revision="24" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="25" 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>
@@ -25,6 +25,7 @@ V1.10 + V1.11 (12/14/2017)
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="22">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2684/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="23">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2695/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="24">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2714/xml</Entry>
+      <Entry author="Mark Ruys - mark@paracas.nl" date="10 Apr 2021" revision="25">Updated parameter 41 documentation based on https://help.aeotec.com/support/solutions/articles/6000219267-set-parameter-41-in-fibaro-home-center</Entry>
     </ChangeLog>
     <MetaDataItem id="0064" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/2714/</MetaDataItem>
     <MetaDataItem id="0064" name="Identifier" type="0002">ZW100-C</MetaDataItem>
@@ -78,22 +79,23 @@ V1.10 + V1.11 (12/14/2017)
 			Value=10 to 50.</Help>
     </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 
+      <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 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 genre="config" index="41" label="Temperature Reporting Threshold" min="655616" max="8323584" size="4" type="int" units="C/F" value="1310976">
+      <Help>Threshold change in temperature to induce an automatic report. In hexadecimal, the value should be in the form 0xAABBCCDD (firmware 1.10 and up) or 0xAABBCC (older firmware):
+			1. AA should be 00
+			2. BB contains the temperature threshold with one decimal point. E.g. if the value is set to 0x14 (20 decimal), the threshold value is 2.0 degrees. So when the temperature has changed by 2.0 degrees, a temperature report will be sent.
+			3. CC contains the unit: 01 for Celsius, 02 for Fahrenheit
+			4. DD should be 00
+			Example: decimal 1310976 is hexadecimal 0x140100, so 0x14 is 20 decimal, hence a change of 2.0 degree Celsius will trigger a notification report.</Help>
     </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: 
+      <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>
@@ -102,8 +104,8 @@ V1.10 + V1.11 (12/14/2017)
       <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: 
+      <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>
@@ -121,8 +123,8 @@ V1.10 + V1.11 (12/14/2017)
     <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.
-			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. 
+			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>
       <Help lang="fr">French Help</Help>
       <Label lang="fr">Enable/disable to send a report on Threshold-fr</Label>
@@ -175,26 +177,24 @@ V1.10 + V1.11 (12/14/2017)
         <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">
+    <Value genre="config" index="49" label="Set the upper limit value of temperature sensor" type="int" size="4" value="18350336">
       <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.
-			Upper limit range: -40.0 to 100.0 C (0xFE70 to 0x03E8).
+			High two bytes is the upper limit value. Low two (firmware 1.10 and up) or single (older firmware) bytes is the unit (0x0100=Celsius, 0x0200=Fahrenheit).
+			1. When unit is Celsius, upper limit rang is from: -40.0 to 100.0 C (0xFE70 to 0x03E8).
 			E.g. The default upper limit of EU/AU version is 28.0 C (0x0118), when the measurement is more than 28.0C, it will be triggered to send out a temperature sensor report.
-			2. When unit is Fahrenheit.
-			Upper limit range: -40.0 to 212.0 F (0xFE70 to 0x0848).
+			2. When unit is Fahrenheit, 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 genre="config" index="50" label="Set the lower limit value of temperature sensor" type="int" value="1">
+    <Value genre="config" index="50" label="Set the lower limit value of temperature sensor" type="int" size="4" value="256">
       <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).
+			High two bytes is the lower limit value. Low two (firmware 1.10 and up) or single (older firmware) bytes is the unit (0x0100=Celsius, 0x0200=Fahrenheit).
 			1. When unit is Celsius.
 			Lower limit range: -40.0 to 100.0 C (0xFE70 to 0x03E8).
 			E.g. The default lower limit of EU/AU version is 0 C (0x0000), when the measurement is less than 0C, it will be triggered to send out a temperature sensor report.
-			2. When unit is Fahrenheit. 
+			2. When unit is Fahrenheit.
 			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>
@@ -203,35 +203,35 @@ V1.10 + V1.11 (12/14/2017)
       <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. 
+			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 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. 
+			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 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. 
+			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 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. 			
+			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 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. 
+			 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 genre="config" index="56" label="Set the lower limit value of ultraviolet sensor" max="11" min="1" type="byte" units="UV" value="4">
@@ -244,9 +244,9 @@ V1.10 + V1.11 (12/14/2017)
     <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. 
+			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).
-			2. When the current measurement greater or equal (Lower limit + Recover limit), the lower limit report is enabled and then it would send out a sensor report when the next measurement is less than the lower limit. 
+			2. When the current measurement greater or equal (Lower limit + Recover limit), the lower limit report is enabled and then it would send out a sensor report when the next measurement is less than the lower limit.
 			After that, the lower limit report would be disabled again until the measurement greater or equal (Lower limit + Recover limit).
 			3. High byte is the recover limit value. Low byte is the unit (0x01=Celsius, 0x02=Fahrenheit).
 			4. Recover limit range: 1.0 to 25.5 C/ F (0x0101 to 0xFF01 or 0x0102 to 0xFF02).
@@ -256,20 +256,20 @@ V1.10 + V1.11 (12/14/2017)
     <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. 
+			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).
-			2. When the current measurement greater or equal (Lower limit + Recover limit), the lower limit report is enabled and then it would send out a sensor report when the next measurement is less than the lower limit. 
+			2. When the current measurement greater or equal (Lower limit + Recover limit), the lower limit report is enabled and then it would send out a sensor report when the next measurement is less than the lower limit.
 			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. 
+			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 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. 
+			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).
-			2. When the current measurement greater or equal (Lower limit + Recover limit), the lower limit report is enabled and then it would send out a sensor report when the next measurement is less than the lower limit. 
+			2. When the current measurement greater or equal (Lower limit + Recover limit), the lower limit report is enabled and then it would send out a sensor report when the next measurement is less than the lower limit.
 			After that the lower limit report would be disabled again until the measurement greater or equal (Lower limit + Recover limit).
 			3. Unit = 10*Recover limit (Lux)
 			4. Recover limit range: 10 to 2550Lux (0x01 to 0xFF).
@@ -279,12 +279,12 @@ V1.10 + V1.11 (12/14/2017)
     <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. 
+			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).
-			2. When the current measurement greater or equal (Lower limit + Recover limit), the lower limit report is enabled and then it would send out a sensor report when the next measurement is less than the lower limit. 
+			2. When the current measurement greater or equal (Lower limit + Recover limit), the lower limit report is enabled and then it would send out a sensor report when the next measurement is less than the lower limit.
 			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. 
+			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 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">
@@ -398,10 +398,10 @@ V1.10 + V1.11 (12/14/2017)
       <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. 
+			2. The calibration value (high byte) contains one decimal point.
 			E.g. if the value is set to 20 (0x1401), the calibration value is 2.0C (EU/AU version) or if the value is set to 20 (0x1402), the calibration value is 2.0F (US version)
-			3. The calibration value (high byte) = standard value - measure value. 
-			E.g. If measure value =25.3C and the standard value = 23.2C, so the calibration value= 23.2C - 25.3C= -2.1C (0xEB). 
+			3. The calibration value (high byte) = standard value - measure value.
+			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).
 			Default value: 1 for EU/AU version, 2 for US version.
 			</Help>
@@ -410,21 +410,21 @@ V1.10 + V1.11 (12/14/2017)
       <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).  
+			If the measure value =85RH and the standard value = 90RH, so the calibration value= 90RH-85RH = 5RH (0x05).
 			</Help>
     </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. 
+      <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). 
+			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 genre="config" index="204" label="Ultraviolet Calibration" max="255" min="0" type="byte" value="0">
-      <Help>The calibration value = standard value measure value. 
+      <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).  
+			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 genre="config" index="252" label="Enable/disable Lock Configuration" max="1" min="0" size="1" type="list" units="" value="0">
diff --git a/config/aeotec/zw111.xml b/config/aeotec/zw111.xml
index ee9bddcf47..29e4352319 100644
--- a/config/aeotec/zw111.xml
+++ b/config/aeotec/zw111.xml
@@ -2,7 +2,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 Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:006F:0103</MetaDataItem>
     <MetaDataItem name="ProductPic">images/aeotec/zw111.png</MetaDataItem>
@@ -21,6 +21,8 @@ The Nano Dimmer is also a security Z-Wave plus device and supports Over The Air
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2095/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2135/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2149/xml</Entry>
+      <Entry author="Matej Drobnič - matejdro@gmail.com" date="27 Dec 2020" revision="7">Enable Basic command class</Entry>
+      <Entry author="Jean-François Auger - nechry@gmail.com" date="06 Jan 2021" revision="8">Revert 2517</Entry>
     </ChangeLog>
     <MetaDataItem id="006F" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2135/</MetaDataItem>
     <MetaDataItem id="006F" name="Identifier" type="0003">ZW111-C</MetaDataItem>
diff --git a/config/aeotec/zw116.xml b/config/aeotec/zw116.xml
index 6728ec4bae..34399a53e5 100644
--- a/config/aeotec/zw116.xml
+++ b/config/aeotec/zw116.xml
@@ -1,7 +1,7 @@
 <!--
 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 Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0074:0103</MetaDataItem>
     <MetaDataItem name="ProductPic">images/aeotec/zw116.png</MetaDataItem>
@@ -20,6 +20,8 @@ The Nano Switch is also a security Z-Wave device and supports Over The Air (OTA)
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2208/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2288/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2289/xml</Entry>
+      <Entry author="Matej Drobnič - matejdro@gmail.com" date="27 Dec 2020" revision="7">Enable Basic command class</Entry>
+      <Entry author="Jean-François Auger - nechry@gmail.com" date="06 Jan 2021" revision="8">Revert 2517</Entry>
     </ChangeLog>
     <MetaDataItem id="0074" name="ZWProductPage" type="0203">https://products.z-wavealliance.org/products/2288/</MetaDataItem>
     <MetaDataItem id="0074" name="Identifier" type="0203">ZW116-B</MetaDataItem>
diff --git a/config/aeotec/zw132.xml b/config/aeotec/zw132.xml
index 35008e25ed..56ec371017 100644
--- a/config/aeotec/zw132.xml
+++ b/config/aeotec/zw132.xml
@@ -1,7 +1,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 Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:0084:0103</MetaDataItem>
     <MetaDataItem name="ProductPic">images/aeotec/zw132.png</MetaDataItem>
@@ -20,6 +20,8 @@ The Dual Nano Switch is also a security Z-Wave device and supports Over The Air
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2136/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2150/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2151/xml</Entry>
+      <Entry author="Matej Drobnič - matejdro@gmail.com" date="27 Dec 2020" revision="6">Enable Basic command class</Entry>
+      <Entry author="Jean-François Auger - nechry@gmail.com" date="06 Jan 2021" revision="7">Revert 2517</Entry>
     </ChangeLog>
     <MetaDataItem id="0084" name="ZWProductPage" type="0203">https://products.z-wavealliance.org/products/2150/</MetaDataItem>
     <MetaDataItem id="0084" name="Identifier" type="0203">ZW132-B</MetaDataItem>
diff --git a/config/aeotec/zw141.xml b/config/aeotec/zw141.xml
index 4825bdfce6..90c022bb26 100644
--- a/config/aeotec/zw141.xml
+++ b/config/aeotec/zw141.xml
@@ -1,99 +1,180 @@
 <!--
-Aeotec ZW141 Nano Shutter, base on Engineering Spec 1/4/2018
+Aeotec ZW141 Nano Shutter, based on Engineering Spec 8/22/2019
 Product Type ID: EU=0x00, US=0x01, AU=0x02 CN=0x1D
 
---><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+-->
+<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:008D:0103</MetaDataItem>
     <MetaDataItem name="ProductPic">images/aeotec/zw141.png</MetaDataItem>
-    <MetaDataItem id="008D" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/3075/</MetaDataItem>
-    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3075/Aeon Labs Nano Shutter -manual - 2.pdf</MetaDataItem>
+    <MetaDataItem id="008D" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/3693</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3693/Nano%20Shutter%20-%20Product%20Manual.pdf</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="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, quick press the product’s Action button 6 times that you can find on the product's housing or toggle the external manual switch 2 times in fast succession.
-
-If the Nano Dimmer has been successfully removed from your Z-Wave network, its RGB LED will remain colorful gradient. If the removal was unsuccessful, the RGB LED will still be solid (following the state of the output load), repeat the instructions above from step 1.</MetaDataItem>
-    <MetaDataItem name="Name">Nano Shutter</MetaDataItem>
-    <MetaDataItem name="Description">Aeotec Nano Shutter is a Z-Wave motor controller specifically used to enable Z-Wave command and control (up/down/stop) for existing window covering motors.
-It can connect to 2 external manual switches/buttons to control the motor up/down/stop independently. Its surface has a pin socket, which can be used for connecting to the touch panel, so you can also use the touch panel to control the Nano Shutter.
-The wireless module is powered from the mains supply. In the event of power failure, non-volatile memory retains all programmed information relating to the units operating status.
-Nano Shutter is also a security Z-Wave plus device and supports Over The Air (OTA) feature for the products firmware upgrade.
-It can be a repeater in the Z-Wave network. Acting as a bridge for communication, it will forward Z-Wave command messages to their destinations 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 id="008D" name="FrequencyName" type="0103">U.S. / Canada / Mexico</MetaDataItem>
-    <MetaDataItem id="008D" name="Identifier" type="0103">ZW141-A</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.
-
-If the Nano Dimmer has been successfully added to your Z-Wave network, its RGB LED will be solid. If unsuccessful, the red LED will be on for 2 seconds and then remain a colorful gradient, repeat the instructions above from step 1.
-</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, quick press the product’s Action button 6 times that you can find on the product's housing or toggle the external manual switch 2 times in fast succession. If the Nano Dimmer has been successfully removed from your Z-Wave network, its RGB LED will remain colorful gradient. If the removal was unsuccessful, the RGB LED will still be solid (following the state of the output load), repeat the instructions above from step 1.</MetaDataItem>
+    <MetaDataItem name="Name">Nano Shutter</MetaDataItem>		
+    <MetaDataItem name="Description">Aeotec New Generation Nano Shutter 1. Used to control the motor of Curtain, support Shutter Mode and Venetian Mode . 2. Can be calibrated according to diff e rent curtains 3. Used to control other Z-Wave device directly. 4. Support S2, more safe and more re liable 5. Support SmartStart, faster inclusion</MetaDataItem>
+    <MetaDataItem id="008D" name="Identifier" type="0003">ZW141-C</MetaDataItem>
+    <MetaDataItem id="008D" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="008D" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/Products/3693</MetaDataItem>	 
+    <MetaDataItem name="InclusionDescription">
+      1. Set your z-wave controller into 'Add Device' mode to add the product into your z-wave network. Refer to the controller's manual if you are unsure of how to perform this step.
+      2. Make sure the product is powered on. If not, plug it into a wall socket and power on; the LED will flash a blinking blue light. 
+      3. Click the action button once, the LED should flash a blue light for 30 seconds until the product is added into the network. The LED will flash a bright yellow light after being assigned a NodeID. 
+      4. If your z-wave controller supports S2 encryption, enter the first 5 digits of the DSK into your controller's interface if/when requested. The DSK is printed on its housing. 
+      5. If inclusion fails, the LED will flash a bright red light for 2 second and then flash a blinking blue light; repeat steps 1 to 4. Contact us for further support if needed. 
+      6. If inclusion succeeds, the LED will flash a bright blue light for 2 second and then turn to load indicator mode to indicate the product has been added to your z-wave network successfully. You can configure the product and its automations via your smart home automation platform; please refer to your software's user guide for details.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">
+      1. Set your z-wave controller into 'Remove Device' mode to remove the product from your z-wave network. Refer to the controller's manual if you are unsure of how to perform this step. 
+      2. Click the action / S1 / S2 button 6 times to enter exclusion mode. 
+      3. If removal fails, the LED will flash bright red for 2 seconds and then turn return to regular light mode; repeat steps 1-2. Contact us for further support if needed. 
+      4. If removal succeeds, the LED will flash a blinking blue light to indicate the product has been removed from the z-wave network successfully.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">
+      Press and hold the action button for at least 20 second and then release. The LED will blink a blue light to indicate the factory reset was successful. Otherwise, please try again. Contact us for further support if needed. 
+      This procedure should only be used when the primary controller is missing or inoperable. 
+      Factory reset will: a) remove the product from your z-wave network; and b) delete the association setting.
+    </MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2903/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2907/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2953/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3075/xml</Entry>
+      <Entry author="Duy Nguyen - dooz127@gmail.com" date="16 Feb 2020" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/Products/3693/XML</Entry>	    
+      <Entry author="Matej Drobnič - matejdro@gmail.com" date="02 Oct 2020" revision="7">Fixed timing types, Fixed button list types</Entry>	 
+      <Entry author="Jean-François Auger - nechry@gmail.com" date="14 Apr 2021" revision="8">Add missing list item for param 22</Entry>	
     </ChangeLog>
-    <MetaDataItem id="008D" name="ZWProductPage" type="0203">https://products.z-wavealliance.org/products/2907/</MetaDataItem>
+    <MetaDataItem id="008D" name="FrequencyName" type="0103">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="008D" name="Identifier" type="0103">ZW141-A</MetaDataItem>
     <MetaDataItem id="008D" name="Identifier" type="0203">ZW141-B</MetaDataItem>
-    <MetaDataItem id="008D" name="FrequencyName" type="0203">Australia / New Zealand</MetaDataItem>
-    <MetaDataItem id="008D" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2953/</MetaDataItem>
-    <MetaDataItem id="008D" name="Identifier" type="0003">ZW141-C</MetaDataItem>
-    <MetaDataItem id="008D" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="008D" name="FrequencyName" type="0203">Australia / New Zealand</MetaDataItem> 
   </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value genre="config" index="35" label="Set the moving time" max="127" min="1" type="byte" units="seconds" value="30">
-      <Help>
-				Set the moving time from up (left) to down (right) for curtain.
-			</Help>
+    <Value genre="config" index="20" label="Motor behavior after powering on" size="1" type="list" units="" value="0">
+      <Help>Set the motor behavior after powering on</Help>
+      <Item label="Stay the same position" value="0" />
+      <Item label="Move to 99%" value="1" />
+      <Item label="Move to 0%" value="2" />
+    </Value>	
+    <Value genre="config" index="22" label="Motor direction" size="1" type="list" value="0">
+      <Help>Set to toggle the motor running direction</Help>
+      <Item label="Shutter/Venetian: Out 1= Up, Out 2= Down" value="0" />
+      <Item label="Shutter: Out 1= Down, Out 2= Up. Venetian: Out 1= Up, Out 2= Down" value="1" />
+      <Item label="Shutter: Out 1= Up, Out 2= Down. Venetian: Out 1= Down, Out 2= Up" value="2" />
+      <Item label="Shutter/Venetian: Out 1= Down, Out 2= Up" value="3" />      
     </Value>
-    <Value genre="config" index="80" label="Notification report association group 1" size="1" type="list" units="" value="0">
-      <Help>
-                To set which report would be sent to the associated nodes in association group 1 when the state of output load is changed.
-                Note: When just only one channel load state is changed, the report message Basic Report CC would be Multi Channel encapsulated.
-            </Help>
-      <Item label="Nothing" value="0"/>
-      <Item label="Basic Report CC" value="1"/>
+    <Value genre="config" index="34" label="Blade turn time" size="2" max="32767" min="10" type="short" units="0.01 seconds" value="150">
+      <Help>Set the blade turn time for Venetian mode. Details can be found in section 4.2 of Advanced information Product Manual.</Help>
+    </Value>
+    <Value genre="config" index="35" label="Curtain trip time" size="2" max="32767" min="500" type="short" units="0.01 seconds" value="15000">
+      <Help>Set the run time of the curtain. Details can be found in section 4.2 of Advanced information Product Manual.</Help>
+    </Value>
+    <Value genre="config" index="36" label="Enter/exit calibration mode" size="1" type="list" units="" value="0" write_only="true"> 
+      <Help>Set to enter/exit calibration mode</Help>
+      <Item label="Exit calibration mode/Report: Not in calibration mode" value="0" />
+      <Item label="Enter shutter mode calibration/Report: in shutter mode calibration" value="1" />
+      <Item label="Enter Venetian mode calibration/Report: in Venetian mode calibration" value="2" />
+    </Value>
+    <Value genre="config" index="37" label="User confirmation for calibration" size="1" type="list" units="" value="0" write_only="true">
+      <Help>Set user confirmation for calibration</Help>
+      <Item label="Default" value="0" />
+      <Item label="Confirm calibration" value="1" />
+    </Value>
+    <Value genre="config" index="38" label="Calibration mode status report" size="1" type="list" units="" value="0" read_only="true">
+      <Help>Get calibration mode status report</Help>
+      <Item label="Calibration mode complete" value="0" />
+      <Item label="Start calibration mode, going to reference point A" value="1" />
+      <Item label="Reach reference point A, going to reference point B" value="2" />
+      <Item label="Reach reference point B, waiting for blade turn calibration" value="3" />
+      <Item label="Going to reference point C" value="4" />
+      <Item label="Calibration mode terminated" value="5" />
+    </Value>	
+    <Value genre="config" index="39" label="Curtain mode opeation" size="1" type="list" units="" value="0">
+      <Help>Set the curtain mode operation</Help>
+      <Item label="Shutter mode" value="0" />
+      <Item label="Venetian mode" value="1" />
     </Value>
-    <Value genre="config" index="85" label="External switch operation mode" size="1" type="list" units="" value="0">
+    <Value genre="config" index="40" label="Repositioning" size="1" type="list" units="" value="1" write_only="true">
+      <Help>Set to begin repositioning</Help>
+      <Item label="Default" value="0" />
+      <Item label="In repositioning" value="1" />
+    </Value>		
+    <Value genre="config" index="41" label="Repositioning status report" size="1" type="list" units="" value="0" read_only="true">
+      <Help>Get repositioning status report</Help>
+      <Item label="Repositioning complete" value="0" />
+      <Item label="In repositioning" value="1" />
+    </Value>
+    <Value genre="config" index="42" label="Calibration lock" size="1" type="list" units="" value="1">
+      <Help>Enable/disable calibration lock</Help>
+      <Item label="Disable calibration" value="0" />
+      <Item label="Enable calibration" value="1" />
+    </Value>
+    <Value genre="config" index="48" label="S1 scene activation" size="1" type="list" units="" value="0">
+      <Help>Set S1 scene activation</Help>
+      <Item label="Enable S1 'Key pressed one time'" value="1" />
+      <Item label="Enable S1 'Key released'" value="2" />
+      <Item label="Enable S1 'Key held down'" value="4" />
+      <Item label="Enable S1 'Key pressed two times'" value="8" />
+    </Value>  
+    <Value genre="config" index="49" label="S2 scene activation" size="1" type="list" units="" value="0">
+      <Help>Set S1 scene activation</Help>
+      <Item label="Enable S2 'Key pressed one time'" value="1" />
+      <Item label="Enable S2 'Key released'" value="2" />
+      <Item label="Enable S2 'Key held down'" value="4" />
+      <Item label="Enable S2 'Key pressed two times'" value="8" />
+    </Value>      		
+    <Value genre="config" index="80" label="Type of status report" size="1" type="list" units="" value="2">
+      <Help>Select which report to send when switch status changes</Help>
+      <Item label="No report" value="0"/>
+      <Item label="Basic report" value="1"/>
+      <Item label="Switch multilevel report" value="2"/>
+    </Value>
+    <Value genre="config" index="85" label="External button mode operation" size="1" type="list" units="" value="0">
       <Help>
-                Set the operation mode of external switch.
-                For detailed instructions for Operation Mode 1 and 2, see end of this table.
-            </Help>
+        Set operation mode of external button. 
+        In Operation Mode 1, external button 1 maps to z-wave button, external button 2 opens or stops motor.
+        In Operation Mode 2, external button 1 maps to z-wave button, external button 2 closes or stops motor.
+      </Help>
       <Item label="Operation Mode 1" value="0"/>
       <Item label="Operation Mode 2" value="1"/>
     </Value>
-    <Value genre="config" index="120" label="Set the external switch mode for S1" max="4" min="0" size="1" type="list" units="" value="0">
+    <Value genre="config" index="120" label="Set external switch mode for S1" size="1" type="list" units="" value="0">
       <Help>When the mode is determined, this mode value will not be reset after exclusion</Help>
       <Item label="Unidentified" value="0"/>
-      <Item label="Reserved" value="1"/>
+      <Item label="2-state switch" value="1"/>
       <Item label="3-way switch" value="2"/>
       <Item label="Push button" value="3"/>
       <Item label="Automatic identification mode" value="4"/>
-    </Value>
-    <Value genre="config" index="121" label="Set the external switch mode for S2" max="4" min="0" size="1" type="list" units="" value="0">
+    </Value>  
+    <Value genre="config" index="121" label="Set external switch mode for S2" size="1" type="list" units="" value="0">
       <Help>When the mode is determined, this mode value will not be reset after exclusion</Help>
       <Item label="Unidentified" value="0"/>
-      <Item label="Reserved" value="1"/>
+      <Item label="2-state switch" value="1"/>
       <Item label="3-way switch" value="2"/>
       <Item label="Push button" value="3"/>
       <Item label="Automatic identification mode" value="4"/>
     </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">
+    <Value genre="config" index="243" label="DSK" size="16" type="string" units="" value="0" read_only="true">
+      <Help>Get the DSK from the product</Help>
+    </Value>   
+    <Value genre="config" index="248" label="S1 and S2 operation" size="1" type="list" units="" value="1">
+      <Help>Set the operation of external switches S1 and S2</Help>
+      <Item label="Enable network inclusion/exclusion" value="1"/>
+      <Item label="Enable reset to factory defaults" value="2"/>
+      <Item label="Enable network function and reset to factory defaults" value="3" />
+    </Value>	
+    <Value genre="config" index="255" label="Reset to factory defaults" size="4" type="list" value="0" 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"/>
+      <Item label="Reset to factory default setting and remove from the z-wave network" value="1431655765"/>
     </Value>
-  </CommandClass>
+  </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>
+  </CommandClass>  	
 </Product>
diff --git a/config/aeotec/zw162.xml b/config/aeotec/zw162.xml
index e4ac7c66fb..5a1e7eaeb3 100644
--- a/config/aeotec/zw162.xml
+++ b/config/aeotec/zw162.xml
@@ -1,6 +1,6 @@
 <!--
 ZW162 Doorbell 6
---><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0371:00A2:0103</MetaDataItem>
     <MetaDataItem name="ProductPic">images/aeotec/zw162.png</MetaDataItem>
@@ -56,6 +56,8 @@ Note:
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3218/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3291/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3292/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="07 Feb 2020" revision="7">Fix up MapRootToEndpoint and Basic Get Disabled</Entry>
+      <Entry author="Michael Bisbjerg - michael@mbwarez.dk" date="02 Apr 2020" revision="8">Add option 96, allow stopping playing chime</Entry>
     </ChangeLog>
     <MetaDataItem id="00A2" name="ZWProductPage" type="0203">https://products.z-wavealliance.org/products/3291/</MetaDataItem>
     <MetaDataItem id="00A2" name="FrequencyName" type="0203">Australia / New Zealand</MetaDataItem>
@@ -66,7 +68,7 @@ Note:
   </MetaData>
   <!--
   Aeotec Doorbell 6
-  https://aeotec.freshdesk.com/helpdesk/attachments/6073850754
+  https://aeotec.freshdesk.com/helpdesk/attachments/6086176996
   -->
   <!-- Configuration Parameters -->
   <CommandClass id="112">
@@ -283,6 +285,9 @@ Please note that the Tone Play Mode needs to be configured to be 0 or 1 after th
       <Help>Please Refer to Engineering Specification - Aeotec Doorbell 6
       </Help>
     </Value>
+    <Value genre="config" index="96" label="Allow stopping chime with the action button" type="bool" value="0">
+      <Help>Enable or Disable the ability that click the Action Button to stop a playing tone.</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"/>
@@ -290,7 +295,15 @@ Please note that the Tone Play Mode needs to be configured to be 0 or 1 after th
       <Item label="Reset to factory default setting and removed from the z-wave network" value="1431655765"/>
     </Value>
   </CommandClass>
+  <CommandClass id="20">
+    <Compatibility>
+    	<GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
   <CommandClass id="96">
+    <Compatibility>
+        <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
     <Instance index="1" label="Browse"/>
     <Instance index="2" label="Tampering"/>
     <Instance index="3" label="Doorbell 1"/>
@@ -299,7 +312,6 @@ Please note that the Tone Play Mode needs to be configured to be 0 or 1 after th
     <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">
diff --git a/config/aeotec/zw164.xml b/config/aeotec/zw164.xml
index 6ecf8f73fd..0ac6c65159 100644
--- a/config/aeotec/zw164.xml
+++ b/config/aeotec/zw164.xml
@@ -2,13 +2,16 @@
 Aeotec ZW164 Indoor Siren 6
 -->
 
-<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0086:00a4:0003</MetaDataItem>
     <MetaDataItem name="ProductPic">images/aeotec/zw164.png</MetaDataItem>
     <MetaDataItem id="00a4" name="Identifier" type="0003">ZW164-C</MetaDataItem>
     <MetaDataItem id="00a4" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3301/</MetaDataItem>
     <MetaDataItem id="00a4" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="00a4" name="Identifier" type="0103">ZW164-A</MetaDataItem>
+    <MetaDataItem id="00a4" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/3284/</MetaDataItem>
+    <MetaDataItem id="00a4" name="FrequencyName" type="0103">U.S. / Canada / Mexico</MetaDataItem>
     <MetaDataItem name="WakeupDescription"></MetaDataItem>
     <MetaDataItem name="InclusionDescription">This product supports Security 2 Command Class. While a Security S2 enabled Controller is needed in order to fully use the security feature. 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. All non-battery operated nodes within the network will act as repeaters regardless of vendor to increase reliability of the network. 1. Set your Z-Wave Controller into its 'Add Device' mode in order to add Chime into your Z-Wave system. Refer to the Controller's manual if you are unsure of how to perform this step. 2. Power on Chime via the provided power adapter; its LED will be breathing white light all the time. 3. Click Chime Action Button once, it will quickly flash white light for 30 seconds until Chime is added into the network. It will become constantly bright white light after being assigned a NodeID. 4. If your Z-Wave Controller supports S2 encryption, enter the first 5 digits of DSK into your Controller's interface if/when requested. The DSK is printed on Chime's housing. 5. If Adding fails, it will slowly flash white light 3 times and then become breathing white light; repeat steps 1 to 4. Contact us for further support if needed. 6. If Adding succeeds, it will quickly flash white light 3 times and then become off. Now, Chime is a part of your Z-Wave home control system. You can configure it and its automations via your Z-Wave system; please refer to your software's user guide for precise instructions. Note: If Action Button is clicked again during the Learn Mode, the Learn Mode will exit. At the same time, Indicator Light will extinguish immediately, and then become breathing white light.</MetaDataItem>
     <MetaDataItem name="Name">Indoor Siren 6</MetaDataItem>
@@ -18,6 +21,7 @@ Aeotec ZW164 Indoor Siren 6
     <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3301/Indoor%20Siren%206%20product%20manual.pdf</MetaDataItem>
     <ChangeLog>
       <Entry author="Geert van Horrik - @GeertvanHorrik" date="28 Jul 2019" revision="1">Add metadata for aeotec indoor siren 6 #1894</Entry>
+      <Entry author="Matt Belhorn - matt.belhorn@gmail.com" date="28 Feb 2020" revision="2">Add metadata for North American model - https://products.z-wavealliance.org/products/3284</Entry>
     </ChangeLog>
   </MetaData>
 
@@ -308,4 +312,4 @@ Aeotec ZW164 Indoor Siren 6
       <Group index="9" label="On/Off control (Emergency)" max_associations="5"/>
     </Associations>
   </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/config/aeotec/zw175.xml b/config/aeotec/zw175.xml
index aa3f469f3c..a4d47b5544 100644
--- a/config/aeotec/zw175.xml
+++ b/config/aeotec/zw175.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
     <MetaData>
         <MetaDataItem name="Name">ZW175 Smart Switch 7</MetaDataItem>
         <MetaDataItem name="Description">
@@ -36,6 +36,7 @@
         <ChangeLog>
             <Entry author="Jean-Francois Auger - nechry@gmail.com" date="01 July 2019" revision="1">Add ZW175 Smart Switch 7</Entry>
             <Entry author="Jean-Francois Auger - nechry@gmail.com" date="03 July 2019" revision="2">Change refresh on node info frame</Entry>
+            <Entry author="Gert van Dijk - gertvdijk@gmail.com" date="09 January 2020" revision="3">Fix description on configuration parameters 101 and 111 (power reporting)</Entry>
         </ChangeLog>
     </MetaData>
     <!-- ZW175 Smart Switch 7 -->
@@ -146,10 +147,10 @@
         <Value genre="config" index="101" label="Configure which meter reading will be periodically report via Lifeline" type="int" units="" value="15">
             <Help>
                 Defines the type of report sent for reporting group 1.
-                1 is meter report for voltage.
-                2 is meter report for current.
-                4 is meter report for watts.
-                8 is meter report for kilowatts.
+                1 is meter report for kilowatts.
+                2 is meter report for watts.
+                4 is meter report for voltage.
+                8 is meter report for current.
                 Value 1 (msb) Reserved
                 Value 2 Reserved
                 Value 3 Reserved
@@ -163,7 +164,7 @@
         <Value genre="config" index="111" label="Configure the sending frequency of Meter Report" max="2592000" min="0" type="int" units="seconds" value="600">
             <Help>
                 0 => Disable.
-                600..2592000 => 600-2592000s. (10minute-30day)
+                30..2592000 => 30-2592000s. (30seconds-30day)
             </Help>
         </Value>
         <Value genre="config" index="255" label="Reset To Factory Defaults" size="4" type="list" value="1" write_only="true">
diff --git a/config/aeotec/zw187.xml b/config/aeotec/zw187.xml
index 6fae235f4c..75d7e9ae0f 100644
--- a/config/aeotec/zw187.xml
+++ b/config/aeotec/zw187.xml
@@ -1,5 +1,5 @@
 <!-- Aeotec Recessed Door Sensor 7-->
-<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0371:00bb:0002</MetaDataItem>
     <MetaDataItem name="ProductPic">images/aeotec/zw187.png</MetaDataItem>
@@ -24,11 +24,10 @@ It can be included and operated in any Z-Wave network with other Z-Wave certifie
 </MetaDataItem>
     <ChangeLog>
       <Entry author="Jean-Francois Auger - nechry@gmail.com" date="05 nov 2019" revision="1">Initial version</Entry>
+      <Entry author="Justin Hammond" date="08 Jun 2020" revision="2">Notification Class is supported by device</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Configuration -->
-    <!-- Alarm CC isn't supported on this device -->
-  <CommandClass action="remove" id="113"/>
   <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>Enable/Disable Binary Sensor Report. Allow for backward compatibility to report Binary if Notification Report cannot be used for status changes.</Help>
diff --git a/config/aeotec/zwa002.xml b/config/aeotec/zwa002.xml
index cf3cc67c70..9a0781e82d 100644
--- a/config/aeotec/zwa002.xml
+++ b/config/aeotec/zwa002.xml
@@ -1,7 +1,7 @@
 <!-- 
 ZWA002 LED Bulb 6 Multi-Color
 https://products.z-wavealliance.org/products/2881
---><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0371:0002:0103</MetaDataItem>
     <MetaDataItem name="ProductPic">images/aeotec/zwa002.png</MetaDataItem>
@@ -44,6 +44,7 @@ Blinks between 100% White and Blue 0x0000FF color for 3 seconds (at a rate of 20
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2880/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2881/xml</Entry>
+      <Entry author="Justin Hammond" date="02 July 2020" revision="4">Add Verified Change Flag to Color CC</Entry>
     </ChangeLog>
     <MetaDataItem id="0002" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2881/</MetaDataItem>
     <MetaDataItem id="0002" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
@@ -94,6 +95,11 @@ Blinks between 100% White and Blue 0x0000FF color for 3 seconds (at a rate of 20
 			</Help>
     </Value>
   </CommandClass>
+  <CommandClass id="51">
+    <Compatibility>
+      <VerifyChanged index="0">true</VerifyChanged>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="1">
diff --git a/config/aeotec/zwa009.xml b/config/aeotec/zwa009.xml
new file mode 100644
index 0000000000..729e6e6d55
--- /dev/null
+++ b/config/aeotec/zwa009.xml
@@ -0,0 +1,119 @@
+<!-- ZWA009 AërQ Temperature & Humidity Sensor -->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0371:0002:0009</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zwa009.png</MetaDataItem>
+    <!-- <MetaDataItem id="0002" name="ZWProductPage" type="0009">https://products.z-wavealliance.org/products/3872/</MetaDataItem> -->
+    <MetaDataItem name="Name">Water Sensor 7 Pro</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0009">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0009">ZWA009-C</MetaDataItem>
+    <MetaDataItem name="Description">This device measures the three air quality parameters temperature, humidity and dew point and reports them to a central controller. 
+      Besides this, the device can directly control groups of other Z-Wave devices on over- and undershooting a set temperature and/or humidity parameter. 
+      This can be used to establish control loops for temperature and humidity. 
+      The device wakes up every 15 minutes to measure the values and it will send unsolicited reports when values change. 
+      Additionally, the device will report all values on request.
+      The AërQ Sensor is actively monitoring the danger of mould in a room based on the temperature and humidity and will issue alarm warnings when critical air conditions met. 
+      Wireless Alarm and red and a green blinking LED will indicate a mould condition. 
+      This local LED warning function is also available when the device is not included in any Z-Wave network and works stand alone.
+    </MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press the button once</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Insert the battery.
+      2. Press the button quickly three times in a row.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Press the button quickly three times in a row.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Keep the button pressed for 10 seconds. Then the green LED will start blinking. 
+    Release the button, when the LED stops blinking. Your device is reset to factory default now.
+    </MetaDataItem>
+    <MetaDataItem name="ProductManual">https://aeotec.freshdesk.com/support/solutions/folders/6000236759</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://aeotec.freshdesk.com/support/solutions/folders/6000236759</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond" date="06 July 2020" revision="1">Initial Config File</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="Minimum Temperature change to report" max="100" min="0" size="1" type="byte" value="20">
+      <Help>This value defines the minimum change of temperature to cause an unsolicited report of humidity to the central controller using Lifeline. 
+      If the value is set to 0, there will be no reports sent to the controller, when the temperature changes. 
+      However, periodic reports, managed by configuration parameter 4, may still be active.
+      </Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Minimum humidity change to report" max="20" min="0" size="1" type="byte" value="5">
+      <Help>This value defines the minimum change of humidity to cause an unsolicited report of humidity to the central controller using Lifeline. 
+      If the value is set to 0, there will be no reports sent to the controller, when the humidity changes. 
+      However, periodic reports, managed by configuration parameter 4, may still be active.
+      </Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Periodic Reports" max="65535" min="0" size="2" type="short" units="seconds" value="43200">
+      <Help>This parameter defines the time interval to send an unsolicited report. 
+      If the value is set to 0, there will be no periodic reports sent to the controller. 
+      However, reports on temperature/humidity changes, managed by configuration parameters 1 and 2, may still be active.
+      </Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Temperature Upper Watermark value" max="1000" min="0" size="2" type="short" units="1/10 degree" value="0">
+      <Help>This parameter defines a temperature. 
+      If the measured temperature surpasses this watermark a BASIC command is sent into Association Group 2
+      </Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Temperature Lower Watermark value" max="1000" min="0" size="2" type="short" units="1/10 degree" value="0">
+      <Help>This parameter defines a temperature. 
+      If the measured temperature dropps below this watermark a BASIC command is sent into Association Group 3
+      </Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Humidity Upper Watermark value" max="90" min="0" size="1" type="byte" units="%" value="0">
+      <Help>This parameter defines a relative humidity. 
+      If the measured relative humidity surpasses this watermark a BASIC command is sent into Association Group 4
+      </Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Humidity Lower Watermark value" max="90" min="0" size="1" type="byte" units="%" value="0">
+      <Help>This parameter defines a relative humidity. 
+      If the measured temperature drops below this relative humidity a BASIC command is sent into Association Group 5
+      </Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Low Temperature Trigger BASIC Set Command Value" max="255" min="0" size="1" type="byte" value="0">
+      <Help>This defines what BASIC command shall be sent out into association group 3
+      </Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="High Temperature Trigger BASIC Set Command Value" max="255" min="0" size="1" type="byte" value="0">
+      <Help>This defines what BASIC command shall be sent out into association group 2
+      </Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Low Humidity Trigger BASIC Set Command Value" max="255" min="0" size="1" type="byte" value="0">
+      <Help>This defines what BASIC command shall be sent out into association group 5
+      </Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="High Humidity Trigger BASIC Set Command Value" max="255" min="0" size="1" type="byte" value="0">
+      <Help>This defines what BASIC command shall be sent out into association group 4
+      </Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Offset value for Mould danger notification" max="10" min="0" size="1" type="byte" value="0">
+      <Help>This value allows to increase the humidity threshold for mould danger notification by max 10%
+      </Help>
+    </Value>
+    <Value genre="config" index="255" instance="1" label="Reset Parameter" max="14294967295" min="0" size="4" type="int" write_only="true" value="0">
+      <Help>This parameter helps reset configuration parameters and the device to factory defaults
+      </Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Reset all Parameter settings to their default settings" value="4294967294"/>
+      <Item label="Completely factory reset sensor and send device reset locally notification" value="4294967295"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="6">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="High Temperature Notification" max_associations="5"/>
+      <Group index="3" label="Low Temperature Notification" max_associations="5"/>
+      <Group index="4" label="High Humidity Notification" max_associations="5"/>
+      <Group index="5" label="Low Humidity Notification" max_associations="5"/>
+      <Group index="6" label="Air Temperature" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/aeotec/zwa011.xml b/config/aeotec/zwa011.xml
new file mode 100644
index 0000000000..cae441bd69
--- /dev/null
+++ b/config/aeotec/zwa011.xml
@@ -0,0 +1,157 @@
+<!-- ZWA008 Door Window Sensor 7 -->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0371:000B:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zwa011.png</MetaDataItem>
+    <MetaDataItem id="000B" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/3866/</MetaDataItem>
+    <MetaDataItem name="Name">Door / Window Sensor 7</MetaDataItem>
+    <MetaDataItem id="000B" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="000B" name="Identifier" type="0002">ZWA011-C</MetaDataItem>
+    <MetaDataItem name="Description">Aeotec Door/ Window Sensor 7 is built on the 700 series Z-Wave technology. 
+      Its a small window position sensor for your smart home, it monitors window and their exact opening position and lets your know when a window is tilted or completely opened. 
+      It also supports connecting external binary sensors with a dry contact through the dry binary contact of the Door/ Window sensor. 
+      Using the latest technology it supports the highest Z-Wave security level of S2 and SmartStart. 
+    </MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press the tamper once</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Open the housing.
+      2. Remove the battery protection.
+      3. Press the tamper on the side of the appliance three times quickly.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Open the housing.
+      2. Press the tamper on the side of the appliance three times quickly.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset to factory default
+      This device also allows to be reset without any involvement of a Z-Wave controller. This procedure should only be used when the primary controller is inoperable.
+      Once Cover is removed and the tamper switch is tripped, push the tamper for 5 seconds until the RED LED
+      blinks once. Then release tamper and push it again for 5 seconds while the RED LED is blinking until the
+      GREEN LED blinks once.
+    </MetaDataItem>
+    <MetaDataItem name="ProductManual">https://aeotec.freshdesk.com/support/solutions/folders/6000237099</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://aeotec.freshdesk.com/support/solutions/folders/6000237099</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond" date="06 July 2020" revision="1">Initial Config File taken from ZWA012</Entry>
+      <Entry author="GizMoCuz" date="13 April 2021" revision="1">Initial Config File taken from https://help.aeotec.com/support/solutions/articles/6000218764-door-windows-sensor-7-user-guide</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="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>
+    <Value genre="config" index="15" instance="1" label="Tilt sensitivity" max="100" min="0" size="1" type="byte" units="" value="50">
+      <Help>You can use this parameter to adjust the tilt sensitivity if the tilt is too low or too high.
+      </Help>
+    </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/aeotec/zwa012.xml b/config/aeotec/zwa012.xml
new file mode 100644
index 0000000000..6e722635f4
--- /dev/null
+++ b/config/aeotec/zwa012.xml
@@ -0,0 +1,151 @@
+<!-- ZWA012 Door Window Sensor 7 Pro -->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0371:0002:000C</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zwa012.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="000C">https://products.z-wavealliance.org/products/3866/</MetaDataItem>
+    <MetaDataItem name="Name">Door / Window Sensor 7 Pro</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="000C">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="000C">ZWA012-C</MetaDataItem>
+    <MetaDataItem name="Description">Aeotec Door/ Window Sensor 7 Pro is built on the 700 series Z-Wave technology. 
+      Its a small window position sensor for your smart home, it monitors window and their exact opening position and lets your know when a window is tilted or completely opened. 
+      It also supports connecting external binary sensors with a dry contact through the dry binary contact of the Door/ Window sensor. 
+      Using the latest technology it supports the highest Z-Wave security level of S2 and SmartStart. 
+    </MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press the tamper once</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Open the housing.
+      2. Remove the battery protection.
+      3. Press the tamper on the side of the appliance three times quickly.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Open the housing.
+      2. Press the tamper on the side of the appliance three times quickly.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset to factory default
+      This device also allows to be reset without any involvement of a Z-Wave controller. This procedure should only be used when the primary controller is inoperable.
+      Once Cover is removed and the tamper switch is tripped, push the tamper for 5 seconds until the RED LED
+      blinks once. Then release tamper and push it again for 5 seconds while the RED LED is blinking until the
+      GREEN LED blinks once.
+    </MetaDataItem>
+    <MetaDataItem name="ProductManual">https://aeotec.freshdesk.com/support/solutions/folders/6000237099</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://aeotec.freshdesk.com/support/solutions/folders/6000237099</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond" date="06 July 2020" revision="1">Initial Config File</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="Sensor Operation Mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter defines if the internal magnet sensor or the external terminal input is detected and used to issue alarm notification. 
+      There is always one input active only. 
+      The other sensor input the deactivated.
+      </Help>
+      <Item label="Internal Magnet Sensor Used" value="0"/>
+      <Item label="External Terminal Inputs Used" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Sensor State Polarity" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter defines the polarity of the magnet sensor.
+      </Help>
+      <Item label="Closed when Magnet in proximity" value="0"/>
+      <Item label="Opened when Magnet in proximity" value="1"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Visual LED indications" max="7" min="0" size="1" type="bitset" value="7" bitmask="23">
+      <Help>This parameter defines when the red LED will indicate events. Disabling all indications may extend battery life.
+      </Help>
+      <BitSet id="1">
+        <Label>No Indications</Label>
+        <Help>No Indications</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Open/Close Status Change</Label>
+        <Help>Open/Close Status Change</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Wake Up</Label>
+        <Help>Wake Up</Help>
+      </BitSet>
+      <BitSet id="5">
+        <Label>Device Tampering</Label>
+        <Help>Device Tampering</Help>
+      </BitSet>
+    </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.
+      </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>This parameter defines the status of the magnet switch that causes sending a BASIC command to all devices of Association Group 2.
+      </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="BASIC command value sent to 2nd Association Group on On event" 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="BASIC command value sent to 2nd Association Group on Off event" 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>This parameter enables/disables the central scene function.
+      </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>This parameter enables/disables the tilt function.
+      </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="15" instance="1" label="Tilt sensitivity" max="100" min="0" size="1" type="byte" units="" value="50">
+      <Help>You can use this parameter to adjust the tilt sensitivity if the tilt is too low or too high.
+      </Help>
+    </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/aeotec/zwa019.xml b/config/aeotec/zwa019.xml
new file mode 100644
index 0000000000..f9cda345f4
--- /dev/null
+++ b/config/aeotec/zwa019.xml
@@ -0,0 +1,136 @@
+<!-- ZWA019 Water Sensor 7 Pro -->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0371:0002:0013</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/aeotec/zwa019.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0013">https://products.z-wavealliance.org/products/3872/</MetaDataItem>
+    <MetaDataItem name="Name">Water Sensor 7 Pro</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0013">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0013">ZWA019-C</MetaDataItem>
+    <MetaDataItem name="Description">The Water Sensor 7 pro brings more safety into your home. 
+      With its flexible sensor probe and the sensitive sensor point it detects the presence and absence of water at any given location. 
+      Furthermore the Watersensor 7 pro is enabled to accurately measure the temperature and humidity of its environment, so you are always informed about your room climate.
+      Thanks to the latest Z-Wave 700 series technology, the Water Sensor 7 is distinguished with and increased range, S2 Security, OTA FW update and SmartStart.
+    </MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press the tamper once</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Open the housing.
+      2. Remove the battery protection.
+      3. Press the tamper on the side of the appliance three times quickly.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Open the housing.
+      2. Press the tamper on the side of the appliance three times quickly.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset to factory default
+      This device also allows to be reset without any involvement of a Z-Wave controller. This procedure should only be used when the primary controller is inoperable.
+      Once Cover is removed and the tamper switch is tripped, push the tamper for 5 seconds until the RED LED
+      blinks once. Then release tamper and push it again for 5 seconds while the RED LED is blinking until the
+      GREEN LED blinks once.
+    </MetaDataItem>
+    <MetaDataItem name="ProductManual">https://aeotec.freshdesk.com/support/solutions/folders/6000236794</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://aeotec.freshdesk.com/support/solutions/folders/6000236794</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond" date="06 July 2020" revision="1">Initial Config File</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="3" instance="1" label="Visual LED indications" max="7" min="0" size="1" type="bitset" value="7" bitmask="23">
+      <Help>This parameter defines when the red LED will indicate events. Disabling all indications may extend battery life.
+      </Help>
+      <BitSet id="1">
+        <Label>No Indications</Label>
+        <Help>No Indications</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Water Leakage Status Change</Label>
+        <Help>Water Leakage Status Change</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Wake Up</Label>
+        <Help>Wake Up</Help>
+      </BitSet>
+      <BitSet id="5">
+        <Label>Device Tampering</Label>
+        <Help>Device Tampering</Help>
+      </BitSet>
+    </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.
+      </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>This parameter defines the status of the water leakage that causes sending a BASIC command to all devices of Association Group 2.
+      </Help>
+      <Item label="Switch after Water Leakage Start and Stop" value="0"/>
+      <Item label="Switch after Water Leakage Start" value="1"/>
+      <Item label="Switch after Water Leakage Stop" 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="BASIC command value sent to 2nd Association Group on On event" 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="BASIC command value sent to 2nd Association Group on Off event" 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>This parameter defines if the alarm cancellation event is reported.
+      </Help>
+      <Item label="Do not send Report" value="0"/>
+      <Item label="Send Report" value="1"/>
+    </Value>
+    <Value genre="config" index="16" instance="1" label="Minimum Temperature change to report" max="100" min="0" size="1" type="byte" units="" value="20">
+      <Help>This value defines the minimum change of temperature to cause an unsolicited report of humidity to the central controller using Lifeline.
+      If the value is set to 0, there will be no reports sent to the controller, when the temperature changes. However, periodic reports, managed by configuration parameter 18, may still be active.
+      </Help>
+    </Value>
+    <Value genre="config" index="17" instance="1" label="Minimum humidity change to report" max="20" min="0" size="1" type="byte" units="" value="5">
+      <Help>This value defines the minimum change of humidity to cause an unsolicited report of humidity to the central controller using Lifeline.
+      If the value is set to 0, there will be no reports sent to the controller, when the humidity changes. However, periodic reports, managed by configuration parameter 18, may still be active.
+      </Help>
+    </Value>
+    <Value genre="config" index="18" instance="1" label="Periodic Reports" max="65535" min="900" size="4" type="int" units="seconds" value="43200">
+      <Help>This parameter defines the time interval to send an unsolicited report.
+      If the value is set to 0, there will be no periodic reports sent to the controller. However, reports on temperature/humidity changes, managed by configuration parameters 16 and 17, may still be active.
+      </Help>
+    </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/aeotec/zwa021.xml b/config/aeotec/zwa021.xml
new file mode 100644
index 0000000000..ac67fc5ce7
--- /dev/null
+++ b/config/aeotec/zwa021.xml
@@ -0,0 +1,144 @@
+<!--
+Aeotec Radiator Thermostat
+Product website: https://aeotec.com/z-wave-home-automation/thermostat-radiator-valve-trv/
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0371:0015:0002</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/aeotec/zwa021.png</MetaDataItem>
+        <MetaDataItem id="0015" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/3627</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">Start Inclusion mode of your primary Z-Wave Controller.
+            Press the Boost-Button.</MetaDataItem>
+        <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=product_documents/3627/RadiatorThermostat_Mainmanual.pdf</MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">Start Exclusion mode of your primary Z-Wave Controller.
+            Now press and hold the boost button of the Spirit Z-Wave Plus for at least 5 seconds.</MetaDataItem>
+        <MetaDataItem name="Name">Aeotec Radiator Thermost</MetaDataItem>
+        <MetaDataItem id="0015" name="Identifier" type="0002">4251295701387</MetaDataItem>
+        <MetaDataItem id="0015" name="FrequencyName" type="0002">UAE</MetaDataItem>
+        <MetaDataItem name="ResetDescription">Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+            https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3627/RadiatorThermostat_Mainmanual.pdf
+            Remove batteries.
+            Press and hold boost button.
+            While still holding boost button insert batteries.
+            The LCD shows RES. Release boost button.
+            To perform the factory reset press boost button.
+        </MetaDataItem>
+        <MetaDataItem name="Description">With the Aeotec Radiator Thermostat you get many functions. It regulates the room temperature to your comfort. For the best use it is equipped with FLiRS (Frequently Listening Receiver Slave) and reacts immediately to incoming commands of the Z-Wave controller. Furthermore the device is able to be connected to an external Z-Wave temperature sensor. Because of that the thermostat refers to the temperature of the external sensor, which can be placed in the middle of the room.
+
+            The display of the thermostat has a background light and has a big LCD screen. Besides you can also lock the local buttons as a child protection.
+
+            The multicolor LED of the central button allows a intuitive usability because the User is invited to follow the instruction based on the blinking LED of the middle butto.
+
+            The TRV can either be used as heating thermostat or as a actuator depending on the configuration of the device. The measured temperature or the position of the actuator of the thermostat are transfered to the Z-Wave gateway.
+        </MetaDataItem>
+        <ChangeLog>
+            <Entry author="Ben Van Mechelen - ben@benvm.be" date="23 dec 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3627</Entry>
+            <Entry author="Jean-Francois Auger - nechry@gmail.com" date="29 dec 2019" revision="2">ProductPic</Entry>
+        </ChangeLog>
+        <MetaDataItem id="0015" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/3627</MetaDataItem>
+        <MetaDataItem id="0015" name="Identifier" type="0002">4251295701387</MetaDataItem>
+        <MetaDataItem id="0015" name="FrequencyName" type="0002">UAE</MetaDataItem>
+    </MetaData>
+    <!-- Multilevel switch for setting valve opening -->
+    <CommandClass id="38">
+        <Value genre="user" index="0" instance="1" 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="Boost" 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="Boost"/>
+            <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 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 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 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 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°C temperature difference.
+                Default: 5 (Delta = 0.5°C)
+            </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 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 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°C Offset)
+            </Help>
+        </Value>
+    </CommandClass>
+</Product>
diff --git a/config/aeotec/zwa023.xml b/config/aeotec/zwa023.xml
new file mode 100644
index 0000000000..d5213e1f00
--- /dev/null
+++ b/config/aeotec/zwa023.xml
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+        <MetaDataItem name="Name">ZWA023 Smart Switch 7</MetaDataItem>
+        <MetaDataItem name="Description">
+		Aeotec Smart Switch 7 is a 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.
+		The Plug is also a security S2 Z-Wave device, it supports Over The Air (OTA) feature for the products firmware upgrade and SmartStart network pairing feature.
+        </MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0371:0017:0103</MetaDataItem>
+        <MetaDataItem name="ProductPage">https://products.z-wavealliance.org/products/3844</MetaDataItem>
+        <MetaDataItem name="ProductSupport">https://products.z-wavealliance.org/products/3844</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/aeotec/zwa023.png</MetaDataItem>
+        <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/products/3844</MetaDataItem>
+        <MetaDataItem name="WakeupDescription">N/A</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">
+		1. Set your Z-Wave Controller into its 'Add Device' mode.  Refer to the Controller's manual if you are unsure of how to perform this step.
+		2. Power your Smart Switch to any outlet; its LED will slowly fade in and out slowly with a blue color to indicate it is ready to pair.
+		3. Tap the action button once. The LED will turn solid yellow when it enters pair mode.
+		4. If your Z-Wave Controller supports S2 encryption, enter the first 5 digits of DSK into your Controller's interface if it is requested. The DSK is printed on Smart Switch.
+		a. If pairing succeeds, it will flash white/green 4 times. 
+		b. If pairing fails, it will light a solid bright red light for 2 seconds and then return to a breathing blue light; repeat steps 1 to 4 if this happens.
+	</MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">
+		1. Set your Z-Wave Controller into 'Remove Device' / 'Unpair Device' mode.  Refer to the Controller's manual if you are unsure of how to perform this step.
+		2. Make sure the product is powered. If not, plug it into a wall socket and power it on.
+		3. Click Action Button 2 times quickly; it will bright violet light up to 2s.
+		a. If Removing fails, it will light a bright red color for 2 seconds and then turn back to Load Indicator Mode; repeat steps 1 to 3. Contact us for further support if needed.
+		b. If Removing succeeds, it will become breathing blue light. Smart Switch is removed from the Z-Wave network successfully and is ready to be paired again.
+        </MetaDataItem>
+	<MetaDataItem name="ResetDescription">
+		If the primary controller is missing or inoperable, you may need to reset the device to factory settings.
+
+		Make sure the product is powered. If not, plug it into a wall socket and power on. To complete the reset process manually: 
+
+		    1. Press and hold the Action Button for at least 20 seconds and then release.
+		    2. The LED indicator will fade its blue light in and out slowly, which indicates the reset operation is successful.
+	</MetaDataItem>
+        <MetaDataItem id="0017" name="ZWProductPage" type="0103">https://products.z-wavealliance.org/products/3844</MetaDataItem>
+	<MetaDataItem id="0017" name="FrequencyName" type="0103">U.S. / Canada / Mexico</MetaDataItem>
+        <MetaDataItem id="0017" name="Identifier" type="0103">ZWA023-A</MetaDataItem>
+        <ChangeLog>
+            <Entry author="Kris Knigga - kris@knigga.com" date="09 June 2021" revision="1">Add ZWA023 Smart Switch 7 - Info from Aeotec's engineering sheet</Entry>
+            <Entry author="Kris Knigga - kris@knigga.com" date="11 June 2021" revision="2">Fixed missing config params 1-9 - Info from Aeotec's engineering sheet</Entry>
+        </ChangeLog>
+    </MetaData>
+    <!-- Configuration Parameters -->
+    <CommandClass id="112">
+        <Value genre="config" index="1" label="LED Setting" max="2" min="0" size="1" type="list" units="" value="2">
+            <Help>
+		    This parameter is used to change the reaction of LED setting. 
+
+		    0 - Disable LED completely. LED will only be used for network operation indicator, such as inclusion, exclusion, factory reset.
+		    1 - Turn on between particular times only (act as night light). The default color is red, color can be changed by Color CC.
+		    2 - Display On/Off Status. The default color is white at 50% lightness. Color can be changed by Color CC. 
+            </Help>
+	    <Item label="Disable LED completely." value="0" />
+	    <Item label="Turn on between particular times only (act as night light)." value="1" />
+	    <Item label="Display On/Off Status." value="2" />
+        </Value>
+        <Value genre="config" index="2" label="Night Light On Time" max="4294967295" min="0" size="4" type="int" units="" value="1572864">
+            <Help>
+		    This parameter is used to configure the Night Light on time. User can use Color CC to change the Night Light color(default Red). Only useful when parameter 1 is set to 1. 
+
+		    Value is of the pattern 0xRRHHMMSS. Where:
+		    RR = Reserved
+		    HH = Hours
+		    MM = Minutes
+		    SS = Seconds
+		    Default = 0x00180000 means 6pm.
+		    0x00180000 = 1572864 dec
+            </Help>
+        </Value>
+        <Value genre="config" index="3" label="Night Light Off Time" max="4294967295" min="0" size="4" type="int" units="" value="393216">
+            <Help>
+		    This parameter is used to configure the Night Light off time. Only useful when parameter 1 is set to 1. 
+
+		    Value is of the pattern 0xRRHHMMSS. Where:
+		    RR = Reserved
+		    HH = Hours
+		    MM = Minutes
+		    SS = Seconds
+		    Default = 0x00060000 means 6am.
+		    0x00060000 = 393216 dec
+            </Help>
+        </Value>
+        <Value genre="config" index="4" label="LED Blink Duration" max="255" min="0" size="1" type="byte" units="S" value="0">
+            <Help>
+		    Set the duration of blink, unit second.
+		    0 - indicates that it is not blinking
+		    1~255 - set the duration
+            </Help>
+        </Value>
+        <Value genre="config" index="5" label="LED Blink Speed" max="24" min="1" size="1" type="byte" units="" value="5">
+            <Help>
+		    Set amount of blinks per second.
+                    i.e. If set to 5, it should blink 5 times per second. 
+            </Help>
+        </Value>
+        <Value genre="config" index="6" label="Send Alert When In Use" max="3000" min="0" size="2" type="short" units="W" value="100">
+            <Help>
+		    Send alert when in use. A Scene Activation Set command will be sent when energy draw is above this setting value. 
+		    0 - disable
+		    1~3000 - enable, unit W
+            </Help>
+        </Value>
+        <Value genre="config" index="7" label="Plug Always On" max="2" min="0" size="1" type="list" units="" value="0">
+            <Help>
+		    Prevents the plug from being turned off via its button. 
+
+		    0 - the plug will operate as normal and can be turned on or off.
+		    1 - the button on the plug will be disabled for on and off commands, but still work for network inclusion and exclusion.
+		    2 - the plug will ignore any commands to turn it off and it will ignore any use of the button (but still work for network inclusion and exclusion) 
+            </Help>
+	    <Item label="the plug will operate as normal and can be turned on or off." value="0" />
+	    <Item label="the button on the plug will be disabled for on and off commands, but still work for network inclusion and exclusion." value="1" />
+	    <Item label="the plug will ignore any commands to turn it off and it will ignore any use of the button (but still work for network inclusion and exclusion)" value="2" />
+        </Value>
+        <Value genre="config" index="8" label="Power Out Action" max="2" min="0" size="1" type="list" units="" value="0">
+            <Help>
+		    Set the plug’s action in case of power out. 
+
+		    0 - last status
+		    1 - power on
+		    2 - power off
+            </Help>
+	    <Item label="last status" value="0" />
+	    <Item label="power on" value="1" />
+	    <Item label="power off" value="2" />
+        </Value>
+        <Value genre="config" index="9" label="Group3 Scene Id" max="255" min="1" size="1" type="byte" units="" value="255">
+            <Help>
+		    Set the scene id when Scene Activation Set Command sent through group3. Refer parameter 6 for more information. 
+            </Help>
+        </Value>
+        <Value genre="config" index="10" label="Over-load protection" max="1800" min="0" size="2" type="short" units="W" value="1800">
+            <Help>
+		    Turn off switch when current of load connected bypasses the maximum allowed power regardless of always on setting.
+		    0 - disable overload protection 
+		    1~1800 - When watt detected above this setting value, the switch will be turned off immediately. And an over-load notification will be sent.
+            </Help>
+        </Value>
+        <Value genre="config" index="11" label="Over-voltage protection" max="255" min="0" size="1" type="byte" units="V" value="135">
+            <Help>
+		    This parameter is used to set the over-voltage protect value, unit V.
+		    0 - disable over-voltage protection
+		    1~94 - The device will set value to 95 instead.
+		    95~255 - When voltage detected above this setting value, the switch will be turned off immediately.  And an over-voltage notification will be sent.
+            </Help>
+        </Value>
+        <Value genre="config" index="19" label="Threshold Check Time" max="255" min="0" size="1" type="byte" units="S" value="5">
+            <Help>
+		    Set the period of threshold check. Unit second. 
+		    0 - disable all threshold settings
+		    1~255 - set in seconds on how fast device checks for threshold settings 
+            </Help>
+        </Value>
+        <Value genre="config" index="20" label="kWh Report Threshold" max="10000" min="0" size="2" type="short" units="kWh" value="100">
+            <Help>
+		    Energy kWh threshold reporting enable/disable. Unit kWh. 
+            </Help>
+        </Value>
+        <Value genre="config" index="21" label="Watt Report Threshold" max="2500" min="0" size="2" type="short" units="W" value="0">
+            <Help>
+		    Threshold setting for Watt for inducing automatic report. Unit W.
+            </Help>
+        </Value>
+        <Value genre="config" index="22" label="Current Report Threshold" max="150" min="0" size="1" type="byte" units="A" value="0">
+            <Help>
+		    Threshold settings for current for inducing automatic report. Unit A. 
+            </Help>
+        </Value>
+        <Value genre="config" index="23" label="Watt Automatic Report Time" max="65535" min="0" size="2" type="short" units="S" value="600">
+            <Help>
+		    Set the automatic report time of Watt. Unit second.
+		    0 - disable 
+		    1~30 = 30s.
+		    31-65535 = 31-65535s.
+            </Help>
+        </Value>
+        <Value genre="config" index="24" label="kWh Automatic Report Time" max="65535" min="0" size="2" type="short" units="S" value="600">
+            <Help>
+		    Set the automatic report time of kWh. Unit second. 
+		    0 - disable 
+		    1~30 = 30s.
+		    31-65535 = 31-65535s.
+            </Help>
+        </Value>
+        <Value genre="config" index="25" label="Voltage Automatic Report Time" max="65535" min="0" size="2" type="short" units="S" value="600">
+            <Help>
+		    Set the automatic report time of Voltage. Unit second. 
+		    0 - disable 
+		    1~30 = 30s.
+		    31-65535 = 31-65535s.
+            </Help>
+        </Value>
+        <Value genre="config" index="26" label="Current Automatic Report Time" max="65535" min="0" size="2" type="short" units="S" value="600">
+            <Help>
+		    Set the automatic report time of Current. Unit second.
+		    0 - disable 
+		    1~30 = 30s.
+		    31-65535 = 31-65535s.
+            </Help>
+        </Value>
+        <Value genre="config" index="30" label="Alarm Settings" max="255" min="0" size="1" type="bitset" bitmask="255" units="" value="0">
+            <Help>
+		    Bitfield.  Determines if alarms are enabled in Switch, and what Switch will react to which alarms.
+
+		    0 - Disable all alarm settings
+		    1 - Smoke Alarm
+		    2 - CO Alarm
+		    4 - CO2 Alarm
+		    8 - Heat Alarm
+		    16 - Water Alarm
+		    32 - Access Control (DW Sensor open)
+		    64 - Home Security (intrusion)
+		    128 - Motion Sensor trigger
+            </Help>
+	    <BitSet id="1">
+		    <Label>Smoke Alarm</Label>
+		    <Help>Smoke Alarm</Help>
+	    </BitSet>
+	    <BitSet id="2">
+		    <Label>CO Alarm</Label>
+		    <Help>CO Alarm</Help>
+	    </BitSet>
+	    <BitSet id="3">
+		    <Label>CO2 Alarm</Label>
+		    <Help>CO2 Alarm</Help>
+	    </BitSet>
+	    <BitSet id="4">
+		    <Label>Heat Alarm</Label>
+		    <Help>Heat Alarm</Help>
+	    </BitSet>
+	    <BitSet id="5">
+		    <Label>Water Alarm</Label>
+		    <Help>Water Alarm</Help>
+	    </BitSet>
+	    <BitSet id="6">
+		    <Label>Access Control (DW Sensor open)</Label>
+		    <Help>Access Control (DW Sensor open)</Help>
+	    </BitSet>
+	    <BitSet id="7">
+		    <Label>Home Security (intrusion)</Label>
+		    <Help>Home Security (intrusion)</Help>
+	    </BitSet>
+	    <BitSet id="8">
+		    <Label>Motion Sensor trigger</Label>
+		    <Help>Motion Sensor trigger</Help>
+	    </BitSet>
+        </Value>
+        <Value genre="config" index="31" label="Alarm Response" max="255" min="0" size="1" type="byte" units="" value="0">
+            <Help>
+		    Enabled by Alarm Settings, and determines what the switch does in the case an alarm is triggered. 
+
+		    0 - disable, no reaction to alarm settings
+		    1 - Switch is ON
+		    2 - Switch is OFF
+		    3~255 - Sets rate at which Switch turns ON and OFF in seconds. (i.e. If set to 3, then Switch will turn ON in 0.3 seconds, and then turn OFF in 0.3 seconds in a cycle until user disables the alarm manually. If set to 255, then it will cycle every 25.5 seconds)
+            </Help>
+        </Value>
+        <Value genre="config" index="32" label="Alarm Disable Setting" max="255" min="0" size="1" type="byte" units="" value="1">
+            <Help>
+		    Determines the method of disabling the alarm of the device. 
+
+		    0 - Can be disabled by 1 tapping Switches action button once.
+		    1 - Can be disabled by 2 tapping Switches action button within 1 second.
+		    2 - Can be disabled by 4 tapping Switches action button within 2 seconds.
+		    4 - Can be disabled by pressing and holding Switches action button about 4 seconds.
+		    5~255 - Sets the duration of the alarm in seconds (i.e Sets this setting to 50, the alarm state of the switch will disable after 50 seconds)
+		    Note:  when the device receives the corresponding Notification State Idle Event, which can also dismiss the current alarm.
+            </Help>
+        </Value>
+        <Value genre="config" index="40" label="Automatic Off Timer" max="86400" min="0" size="4" type="int" units="S" value="0">
+            <Help>
+		    Acts as auto off after as soon as the switch turns ON, setting is set in seconds. 
+
+		    0 - no auto off with timer
+		    1~86400 - seconds
+            </Help>
+        </Value>
+        <Value genre="config" index="41" label="Automatic On Timer" max="86400" min="0" size="4" type="int" units="S" value="0">
+            <Help>
+		    Acts as auto on after as soon as the switch turns OFF, setting is set in seconds. 
+
+		    0 - no auto on with timer
+		    1~86400 - seconds
+            </Help>
+        </Value>
+        <Value genre="config" index="42" label="Report Command Setting" max="2" min="0" size="1" type="list" units="" value="2">
+            <Help>
+		    Which report will be sent to lifeline group when the output state is changed. 
+
+		    0 - Send nothing
+		    1 - Send Basic Report
+		    2 - Send Switch Binary Report
+            </Help>
+	    <Item label="Send nothing" value="0" />
+	    <Item label="Send Basic Report" value="1" />
+	    <Item label="Send Switch Binary Report" value="2" />
+        </Value>
+    </CommandClass>
+    <!-- Association Groups -->
+    <CommandClass id="133">
+        <Associations num_groups="3">
+            <Group index="1" label="LifeLine" max_associations="5"/>
+            <Group index="2" label="Retransmit" max_associations="5"/>
+            <Group index="3" label="Alert" max_associations="5"/>
+        </Associations>
+    </CommandClass>
+</Product>
diff --git a/config/assa_abloy/ProSLKey-FreeDeadbolt.xml b/config/assa_abloy/ProSLKey-FreeDeadbolt.xml
new file mode 100644
index 0000000000..77e1c21ba0
--- /dev/null
+++ b/config/assa_abloy/ProSLKey-FreeDeadbolt.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="2"
+  xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Yale Pro SL Key-Free Deadbolt (YRD136 or YRD156)</MetaDataItem>
+    <MetaDataItem name="Description">Never worry about the hassle of carrying around or losing your keys again. Lock and unlock your home with ease from the back-lit keypad. Create unique entry codes for friends, family, service providers, and renters. The YRD136 has Z-Wave Plus built in so you can easily integrate it into a compatible smart home or alarm system with one-touch enrollment. </MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0129:803b:0508</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://us.yalehome.com/en/yalehome-products/yale-pro-sl-yrd156yrd136/yale-pro-sl-yrd156yrd136/prosl/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/assa_abloy/ProSLKey-FreeDeadbolt.png</MetaDataItem>
+	<MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3446/YRD136%20FINAL-compressed%20(1).pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">
+	1. Remove the battery cover.
+	2. Press button and hold until unit beeps two (2) times.
+	3. Release button and network joining automatically begins.
+	4. Replace battery cover.
+	</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">
+	1. Remove the battery cover.
+	2. Press button and hold until unit beeps five (5) times.
+	3. Release button and network removal automatically begins.
+	4. Replace battery cover.
+	</MetaDataItem>
+    <MetaDataItem id="0508" name="ZWProductPage" type="803b">https://products.z-wavealliance.org/products/3446/</MetaDataItem>
+    <MetaDataItem id="0508" name="FrequencyName" type="803b">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0508" name="Identifier" type="803b">YRD136</MetaDataItem>
+	<ChangeLog>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="18 January 2021" revision="1">Initial product configuration</Entry>
+	  <Entry author="Jean-François Auger - nechry@gmail.com" date="22 January 2021" revision="2">Fix metadata</Entry>	 
+  	</ChangeLog>
+  </MetaData>
+ 
+
+    <!-- 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="On" value="1" />
+			<Item label="Off" 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="10" max="180" 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="3" max="10" 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="byte" genre="config" instance="1" index="7" label="Shutdown Time" size="1" min="10" max="180" units="seconds" value="60">
+			<Help>number of seconds unit will be inoperable after number of wrong code entries is exceeded (60 = default)</Help>
+		</Value>
+		<Value type="list" size="1" genre="config" instance="1" index="8" label="Operating Mode" min="0" max="1" value="0">
+			<Help>
+			Normal Mode: Master code and all user codes enabled (default).
+            Vacation Mode: Master code enabled, all user codes disabled.
+		    </Help>
+			<Item label="Normal" value="0" />
+			<Item label="Vacation" value="1" />			
+		</Value>
+		<Value type="list" size="1" genre="config" instance="1" index="11" label="One Touch Locking" value="255">
+			<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
+		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="6" Instance="1">
+			<RefreshClassValue CommandClass="98" Index="0" Instance="1" RequestFlags="0"/>
+			<RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
+		</TriggerRefreshValue>
+	</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/assa_abloy/PushButtonDeadbolt.xml b/config/assa_abloy/PushButtonDeadbolt.xml
index 0c8fbcd6b5..04bf00fc25 100644
--- a/config/assa_abloy/PushButtonDeadbolt.xml
+++ b/config/assa_abloy/PushButtonDeadbolt.xml
@@ -1,4 +1,4 @@
-<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="7" 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>
@@ -13,6 +13,7 @@
       <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>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1971/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3239/xml</Entry>
+      <Entry author="Matt Belhorn - matt.belhorn@gmail.com" date="26 Jun 2020" revision="7">Fixed index of alarm message to trigger lock status refresh</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>
@@ -113,7 +114,8 @@ http://ozw.my-ho.st/Yale/Yale%20ZWave%20Developer%20Guide.pdf
 		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">
+    <TriggerRefreshValue Genre="user" Index="6" Instance="1">
+      <RefreshClassValue CommandClass="98" Index="0" Instance="1" RequestFlags="0"/>
       <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
   </CommandClass>
diff --git a/config/assa_abloy/TouchDeadbolt.xml b/config/assa_abloy/TouchDeadbolt.xml
index 2d8c60563e..733f870dd0 100644
--- a/config/assa_abloy/TouchDeadbolt.xml
+++ b/config/assa_abloy/TouchDeadbolt.xml
@@ -1,4 +1,4 @@
-<Product Revision="12" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="13" 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>
@@ -20,6 +20,7 @@
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="10">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2403/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="11">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3211/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="12">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3251/xml</Entry>
+	  <Entry author="Brett Daugherty" date="17 Jun 2020" revision="13">Fixed index of alarm message to trigger lock status refresh</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>
@@ -134,7 +135,7 @@ http://products.z-wavealliance.org/products/1973/configs
 		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">
+    <TriggerRefreshValue Genre="user" Index="6" Instance="1">
       <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
   </CommandClass>
diff --git a/config/assa_abloy/TouchLever.xml b/config/assa_abloy/TouchLever.xml
index a86e97eaaa..eda996dafc 100644
--- a/config/assa_abloy/TouchLever.xml
+++ b/config/assa_abloy/TouchLever.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" 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>
@@ -10,8 +10,11 @@
     <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>
+    <MetaDataItem id="0f00" name="ZWProductPage" type="800c">https://products.z-wavealliance.org/products/3114/</MetaDataItem>
+    <MetaDataItem id="0f00" name="Identifier" type="800c">YRL226-ZW2</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>
+      <Entry author="Mike Dahlgren" date="19 Nov 2020" revision="3"> Added Yale YRL226</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Yale Touchscreen Lever (YRL220)
diff --git a/config/assa_abloy/yrd1x0.xml b/config/assa_abloy/yrd1x0.xml
new file mode 100644
index 0000000000..f1104e6e14
--- /dev/null
+++ b/config/assa_abloy/yrd1x0.xml
@@ -0,0 +1,115 @@
+<Product Revision="14" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">YRD110/YRD120 Keyless Deadbolt</MetaDataItem>
+    <MetaDataItem name="Description">Yale Real Living® keyless deadbolt.  These push button and touchscreen deadbolts are designed to seamlessly integrate into your smart home to provide you and your family with security and convenience.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0129:0800:0004</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://us.yalehome.com/en/products/yale-assure-lock-and-levers/b1l-and-t1l-lock</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://support.shopyalehome.com/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/assa_abloy/yrd1x0.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://us.yalehome.com/Yale/Yale%20US/Support/B1L%20and%20T1L%20Locks/AYRD_110_INST_FUL%20Rev%20G%20WEB.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Method 1:
+Remove the battery cover
+Press zwave buttton (right side near top) and hold until beeps 2 times
+Release button and network joining automatically begins
+Replace battery cover
+Method 2:
+Enter the master Pin code followed by the gear key.
+Press the 7 key followed by the gear key
+Press the 1 key followed by the gear key</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Method 1:
+Remove the battery cover
+Press zwave buttton (right side near top) and hold until beeps 5 times
+Release button and network removal automatically begins
+Replace battery cover
+Method 2:
+Enter the master Pin code followed by the gear key.
+Press the 7 key followed by the gear key
+Press the 3 key followed by the gear key</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Remove the battery cover and batteries
+While pressing the reset button (left side near top) for a minimum of 3 seconds, reinstall batteries
+Release reset button.
+Replace battery cover
+Please use this procedure only when the network primary controller is missing or otherwise inoperable</MetaDataItem>
+    <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>
+    <MetaDataItem id="0000" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/1040/</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="0004">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0000" name="Identifier" type="0004">YRD120-ZW-US</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Keith Laidlaw - laidlaw1546@gmail.com" date="25 Sep 2020" revision="14">Split out from PushButtonDeadbolt.xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Audio Mode" size="1" type="list" value="3">
+      <Help>(On = default)</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>(Off = default)</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Re-lock Time" max="180" min="5" size="1" type="byte" units="seconds" value="30">
+      <Help>after successful code entry and unit unlocks, it will automatically re-lock after specified number of seconds (30 = default)</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 genre="config" index="7" instance="1" label="Shutdown Time" max="255" min="1" size="1" type="byte" units="seconds" value="60">
+      <Help>number of seconds unit will be inoperable after number of wrong code entries is exceeded (60 = default)</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Operating Mode" max="2" min="0" size="1" type="list" value="0">
+      <Help>Normal Mode: Master code and all user codes enabled (default).
+Vacation Mode: Master code enabled, all user codes disabled.
+Privacy Mode: Master code and all user codes disabled.</Help>
+      <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="255">
+      <Help>(On = default)</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>(Off = default)</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>(Off = default)</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+  </CommandClass>
+  <!-- Notification Command Class -->
+  <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="512" Instance="1">
+      <RefreshClassValue CommandClass="98" Index="0" Instance="1" RequestFlags="0"/>
+      <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/yrm276.xml b/config/assa_abloy/yrm276.xml
new file mode 100644
index 0000000000..888a298bf8
--- /dev/null
+++ b/config/assa_abloy/yrm276.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Yale Assure Lock for Andersen Patio Doors</MetaDataItem>
+    <MetaDataItem name="Description">Yale Assure Lock® is a secure, keyless lock developed by Yale exclusively available with Andersen Patio Doors (E-Series and A-Series hinged patio doors). Monitor, lock and unlock from anywhere with your Yale Assure Lock featuring Andersen’s VeriLock™ sensor technology and integrate into a compatible home automation or security system.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0129:1604:8014</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://shopyalehome.com/products/assure-lock-for-andersen-patio-doors-z-wave-plus-in-satin-nickel?_pos=9&amp;_sid=9cc5e3274&amp;_ss=r</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://support.shopyalehome.com/en_us/categories/getting-started-Sy5xA1Wyw</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/assa_abloy/yrm276.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2911/YRM276_YRM476-INST-FUL%20Rev%20A%20WEB_SystemGuide.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Enter the 4-8 digit master PIN code followed by the gear key.
+2. Press the 7 key followed by the gear key.
+3. Press the 1 key followed by the gear key.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Enter the 4-8 digit master PIN code followed by the gear key.
+2. Press the 7 key followed by the gear key.
+3. Press the 3 key followed by the gear key.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+When resetting the lock, all user codes, including the Master code, are deleted. All programming features are reset to the original default settings.
+1. Remove the battery cover and batteries.
+2. Remove the interior lock to access the reset button.
+3. The reset button is located above the cable connectors. PCB
+4. Re-insert 3 batteries and hold the reset button for 3 seconds.
+5. While still holding the reset button, insert the 4th battery, and hold the reset button for an additional 3 seconds.
+6. Release the reset button.</MetaDataItem>
+    <MetaDataItem id="1604" name="ZWProductPage" type="8014">https://products.z-wavealliance.org/products/2925</MetaDataItem>
+    <MetaDataItem id="1604" name="FrequencyName" type="8014">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="1604" name="Identifier" type="8014">YRM276</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Nathan Spencer - natekspencer@gmail.com" date="17 January 2022" revision="1">Initial entry with data obtained from https://products.z-wavealliance.org/products/2925</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Volume Mode" max="3" min="1" size="1" type="list" value="2">
+      <Help>Default is Low Volume</Help>
+      <Item label="High Volume" value="1"/>
+      <Item label="Low Volume" value="2"/>
+      <Item label="Silent" value="3"/>
+    </Value>
+    <Value genre="config" index="2" label="Auto Relock" max="255" min="0" size="1" type="list" value="0">
+      <Help>Default is Off</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="3" label="Auto Relock Time" max="180" min="1" size="1" type="byte" units="seconds" value="30">
+      <Help>1 to 180 seconds (default is 30)</Help>
+    </Value>
+    <Value genre="config" index="4" label="Wrong Code Entry Limit" max="10" min="3" size="1" type="byte" value="5">
+      <Help>3 to 10 (default is 5)</Help>
+    </Value>
+    <Value genre="config" index="5" label="Language" max="3" min="1" size="1" type="list" value="2">
+      <Help>Default is English</Help>
+      <Item label="English" value="1"/>
+      <Item label="Spanish" value="2"/>
+      <Item label="French" value="3"/>
+    </Value>
+    <Value genre="config" index="7" label="Shutdown Time (after wrong code entries)" max="180" min="10" size="1" type="byte" units="seconds" value="60">
+      <Help>10 to 180 seconds (default is 60)</Help>
+    </Value>
+    <Value genre="config" index="8" label="Operating Mode" max="2" min="0" size="1" type="list" value="0">
+      <Help>Normal (default)
+Vacation = keypad lockout
+Privacy = no keypad, RF Unlock will work</Help>
+      <Item label="Normal" value="0"/>
+      <Item label="Vacation" value="1"/>
+      <Item label="Privacy" value="2"/>
+    </Value>
+    <Value genre="config" index="11" label="One Touch Locking" max="255" min="0" size="1" type="list" value="255">
+      <Help>Default is On</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="12" label="Privacy Button" max="255" min="0" size="1" type="list" value="0">
+      <Help>Default is Off</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="13" label="Lock Status LED" max="255" min="0" size="1" type="list" value="0">
+      <Help>Default is Off</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="15" label="Reset To Factory Defaults" max="1" min="0" size="1" type="list">
+      <Help>No default value</Help>
+      <Item label="Lock will execute Reset To Factory" value="1"/>
+    </Value>
+    <Value genre="config" index="18" label="Door Propped Timer**" max="254" min="0" size="1" type="byte" units="seconds x 10" value="0">
+      <Help>10 to 2540 second. This value is represented as seconds X 10 (ie a value of 4 would mean a door propped timer of 40 seconds). Set to 0 to disable (default).
+
+**Optional Door Position Switch must hvae been installed with the lock.</Help>
+    </Value>
+    <Value genre="config" index="19" label="DPS Alarms**" max="255" min="0" size="1" type="list" value="0">
+      <Help>Used to enable/disable door condition alarms for locks that support a door position sensor. Any lock that does not support DPS will always report Off. Default is Off
+
+**Optional Door Position Switch must hvae been installed with the lock.</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+    <Value genre="config" index="24" label="DPS Locking Protection**" max="255" min="0" size="1" type="list" value="0">
+      <Help>Off (default) = The lock will always lock regardless of DPSstate
+On = Check DPS before motorized lock function
+
+**Optional Door Position Switch must hvae been installed with the lock.</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="255"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
\ No newline at end of file
diff --git a/config/building36/b36-t10.xml b/config/building36/b36-t10.xml
new file mode 100644
index 0000000000..3ab2d79cfe
--- /dev/null
+++ b/config/building36/b36-t10.xml
@@ -0,0 +1,253 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+    <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+    <MetaData>
+        <MetaDataItem name="Name">Building 36 Intelligent Thermostat</MetaDataItem>
+        <MetaDataItem name="Description">The Building 36 Intelligent Thermostat gives you remote access and control of your thermostat. Enjoy effortless energy management, climate and ambiance control, custom automation and measurable results. Create custom smart schedules that automate your thermostat. Receive critical temperature alerts to know instantly when your thermostat reaches preset limits. Save energy by using location-based automation to have your thermostat adjust itself while you're out.</MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0190:0001:0001</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/building36/b36-t10.png</MetaDataItem>
+        <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/1161/Product_Manual_11_25_14-spreads_B36.pdf</MetaDataItem>
+        <MetaDataItem name="WakeupDescription">Short press any button</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">Press and hold the DOWN button on the thermostat to begin inclusion mode. Release the button when the RADIO icon lights up.</MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">Set the thermostat to OFF mode. Press and hold the DOWN button on the thermostat to enter exclusion mode. Release the button when the RADIO icon lights up.</MetaDataItem>
+        <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/1161</MetaDataItem>
+        <MetaDataItem id="0001" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+        <MetaDataItem id="0001" name="Identifier" type="0001">B36-T10</MetaDataItem>
+        <ChangeLog>
+            <Entry author="bachya1208@gmail.com" date="08 September 2020" revision="1">Added device</Entry>
+            <Entry author="nechry@gmail.com" date="23 September 2020" revision="2">Bump revision</Entry>
+        </ChangeLog>
+    </MetaData>
+    <CommandClass id="32">
+        <Compatibility>
+            <Mapping>64</Mapping>
+        </Compatibility>
+        <Instance index="1" />
+    </CommandClass>
+    <CommandClass id="49">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="decimal" genre="user" instance="1" index="1" label="Air Temperature" units="C" read_only="true" write_only="false" verify_changes="false">
+            <Help>Air Temperature Sensor Value</Help>
+        </Value>
+        <Value type="decimal" genre="user" instance="1" index="5" label="Humidity" units="%" read_only="true" write_only="false" verify_changes="false">
+            <Help>Humidity Sensor Value</Help>
+        </Value>
+        <Value type="list" genre="system" instance="1" index="256" label="Air Temperature Units" units="" read_only="false" write_only="false" verify_changes="false">
+            <Help>Air Temperature Sensor Available Units</Help>
+            <Item label="Celsius" value="0" />
+            <Item label="Fahrenheit" value="1" />
+        </Value>
+        <Value type="list" genre="system" instance="1" index="260" label="Humidity Units" units="" read_only="false" write_only="false" verify_changes="false">
+            <Help>Humidity Sensor Available Units</Help>
+            <Item label="Percent" value="0" />
+        </Value>
+    </CommandClass>
+    <CommandClass id="64">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" verify_changes="false">
+            <Help>Set the Thermostat Mode</Help>
+            <Item label="Off" value="0" />
+            <Item label="Heat" value="1" />
+            <Item label="Cool" value="2" />
+            <Item label="Auto" value="3" />
+        </Value>
+        <SupportedModes>
+            <Mode index="0" label="Off" />
+            <Mode index="1" label="Heat" />
+            <Mode index="2" label="Cool" />
+            <Mode index="3" label="Auto" />
+        </SupportedModes>
+    </CommandClass>
+    <CommandClass id="66">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="string" genre="user" instance="1" index="0" label="Operating State" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Set the Thermostat Operating State</Help>
+        </Value>
+    </CommandClass>
+    <CommandClass id="67">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="C" read_only="false" write_only="false" verify_changes="false">
+            <Help>Set the Thermostat target heating temperature</Help>
+        </Value>
+        <Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="C" read_only="false" write_only="false" verify_changes="false">
+            <Help>Set the Thermostat target cooling temperature</Help>
+        </Value>
+        <Value type="decimal" genre="user" instance="1" index="101" label="Heating 1_minimum" units="C" read_only="false" write_only="false" verify_changes="false">
+            <Help></Help>
+        </Value>
+        <Value type="decimal" genre="user" instance="1" index="102" label="Cooling 1_minimum" units="C" read_only="false" write_only="false" verify_changes="false">
+            <Help></Help>
+        </Value>
+        <Value type="decimal" genre="user" instance="1" index="201" label="Heating 1_maximum" units="C" read_only="false" write_only="false" verify_changes="false">
+            <Help></Help>
+        </Value>
+        <Value type="decimal" genre="user" instance="1" index="202" label="Cooling 1_maximum" units="C" read_only="false" write_only="false" verify_changes="false">
+            <Help></Help>
+        </Value>
+    </CommandClass>
+    <CommandClass id="68">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="list" genre="user" instance="1" index="0" label="Fan Mode" units="" read_only="false" write_only="false" verify_changes="false">
+            <Help>Set the Fan Mode</Help>
+            <Item label="Auto Low" value="0" />
+            <Item label="On Low" value="1" />
+            <Item label="Circulate" value="6" />
+        </Value>
+        <SupportedModes>
+            <Mode index="0" label="Auto Low" />
+            <Mode index="1" label="On Low" />
+            <Mode index="6" label="Circulate" />
+        </SupportedModes>
+    </CommandClass>
+    <CommandClass id="69">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="string" genre="user" instance="1" index="0" label="Fan State" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Set the Fan State</Help>
+        </Value>
+    </CommandClass>
+    <CommandClass id="90">
+        <Compatibility />
+        <Instance index="1" />
+    </CommandClass>
+    <CommandClass id="94">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>ZWave+ Version Supported on the Device</Help>
+        </Value>
+        <Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Icon File to use for the Installer Application</Help>
+        </Value>
+        <Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Icon File to use for the User Application</Help>
+        </Value>
+    </CommandClass>
+    <CommandClass id="112">
+        <Compatibility />
+        <Instance index="1" />
+    </CommandClass>
+    <CommandClass id="114">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="int" genre="system" instance="1" index="0" label="Loaded Config Revision" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Revision of the Config file currently loaded</Help>
+        </Value>
+        <Value type="int" genre="system" instance="1" index="1" label="Config File Revision" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Revision of the Config file on the File System</Help>
+        </Value>
+        <Value type="int" genre="system" instance="1" index="2" label="Latest Available Config File Revision" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Latest Revision of the Config file available for download</Help>
+        </Value>
+    </CommandClass>
+    <CommandClass id="115">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false">
+            <Help>Output RF PowerLevel</Help>
+            <Item label="Normal" value="0" />
+            <Item label="-1dB" value="1" />
+            <Item label="-2dB" value="2" />
+            <Item label="-3dB" value="3" />
+            <Item label="-4dB" value="4" />
+            <Item label="-5dB" value="5" />
+            <Item label="-6dB" value="6" />
+            <Item label="-7dB" value="7" />
+            <Item label="-8dB" value="8" />
+            <Item label="-9dB" value="9" />
+        </Value>
+        <Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false">
+            <Help>Timeout till the PowerLevel is reset to Normal</Help>
+        </Value>
+        <Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false">
+            <Help>Apply the Output PowerLevel and Timeout Values</Help>
+        </Value>
+        <Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false">
+            <Help>Node to Perform a test against</Help>
+        </Value>
+        <Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false">
+            <Help>PowerLevel to use for the Test</Help>
+            <Item label="Normal" value="0" />
+            <Item label="-1dB" value="1" />
+            <Item label="-2dB" value="2" />
+            <Item label="-3dB" value="3" />
+            <Item label="-4dB" value="4" />
+            <Item label="-5dB" value="5" />
+            <Item label="-6dB" value="6" />
+            <Item label="-7dB" value="7" />
+            <Item label="-8dB" value="8" />
+            <Item label="-9dB" value="9" />
+        </Value>
+        <Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false">
+            <Help>How Many Messages to send to the Node for the Test</Help>
+        </Value>
+        <Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false">
+            <Help>Perform a PowerLevel Test against the a Node</Help>
+        </Value>
+        <Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false">
+            <Help>Get the results of the latest PowerLevel Test against a Node</Help>
+        </Value>
+        <Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>The Current Status of the last PowerNode Test Executed</Help>
+            <Item label="Failed" value="0" />
+            <Item label="Success" value="1" />
+            <Item label="In Progress" value="2" />
+        </Value>
+        <Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Number of Messages successfully Acked by the Target Node</Help>
+        </Value>
+    </CommandClass>
+    <CommandClass id="128">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false">
+            <Help>Current Battery Level</Help>
+        </Value>
+    </CommandClass>
+    <CommandClass id="129">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="list" genre="user" instance="1" index="0" label="Day" units="" read_only="false" write_only="false" verify_changes="false">
+            <Help>Day of Week</Help>
+            <Item label="Monday" value="1" />
+            <Item label="Tuesday" value="2" />
+            <Item label="Wednesday" value="3" />
+            <Item label="Thursday" value="4" />
+            <Item label="Friday" value="5" />
+            <Item label="Saturday" value="6" />
+            <Item label="Sunday" value="7" />
+        </Value>
+        <Value type="byte" genre="user" instance="1" index="1" label="Hour" units="" read_only="false" write_only="false" verify_changes="false">
+            <Help>Hour</Help>
+        </Value>
+        <Value type="byte" genre="user" instance="1" index="2" label="Minute" units="" read_only="false" write_only="false" verify_changes="false">
+            <Help>Minute</Help>
+        </Value>
+    </CommandClass>
+    <CommandClass id="133">
+        <Compatibility />
+        <Instance index="1" />
+        <Associations num_groups="1">
+            <Group index="1" max_associations="4" label="Group 1" auto="false">
+                <Node id="1" />
+            </Group>
+        </Associations>
+    </CommandClass>
+    <CommandClass id="134">
+        <Compatibility />
+        <Instance index="1" />
+        <Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Z-Wave Library Version</Help>
+        </Value>
+        <Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Z-Wave Protocol Version</Help>
+        </Value>
+        <Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false">
+            <Help>Application Version</Help>
+        </Value>
+    </CommandClass>
+</Product>
diff --git a/config/config-template.xml b/config/config-template.xml
index 191900a5c8..1011710029 100644
--- a/config/config-template.xml
+++ b/config/config-template.xml
@@ -3,7 +3,7 @@
   <MetaData>
     <MetaDataItem name="Name"><!-- Name of the Device --></MetaDataItem>
     <MetaDataItem name="Description"><!-- Short Description of the Product --></MetaDataItem>
-    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/XXXX:XXXX:XXXX</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/XXXX:YYYY:ZZZZ</MetaDataItem>
     <MetaDataItem name="ProductPage"><!-- URL to the Product Page on the Vendors Website --></MetaDataItem>
     <MetaDataItem name="ProductSupport"><!-- URL to the Product Support Page on the Vendors Website --></MetaDataItem>
     <MetaDataItem name="ProductPic"><!-- path to images/vendor/product.png --></MetaDataItem>
diff --git a/config/connecthome/ch-201.xml b/config/connecthome/ch-201.xml
new file mode 100644
index 0000000000..27f19e463b
--- /dev/null
+++ b/config/connecthome/ch-201.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">CH-201 Thermostat</MetaDataItem>
+    <MetaDataItem name="Description">CH-201 thermostat is a Z-Wave device designed to maintain the set temperature. The thermostat can control the heating element directly (electric floor heating, electric heater, etc.) or with additional equipment (thermoelectric drive, etc.) The thermostat is equipped with a digital temperature sensor, but can work with any other temperature sensor if necessary Your Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0179:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://connecthome.com.ua/product/ch201</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://connecthome.com.ua/index.php?route=information/contact</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/connecthome/CH_201.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://connecthome.com.ua/product/ch201</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To include the thermostat in a Z-Wave network, place the controller in the inclusion mode (see the instructions of your controller) and apply power to the electrical network to which the device is connected. The device will be added automatically (NWI). If this does not happen automatically, briefly press the system button three times on the top cover of the device.
+If there are problems with connecting the device to your Z-Wave network, you must complete the Z-Wave network exclusion procedure, and then repeat the inclusion procedure.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To exclude the thermostat from the Z-Wave network, place the controller in the exclusion mode (see the controller instruction) and press the system button three times briefly.
+Please note that after excluding the device from the Z-Wave network, all settings you have made will be reset to the factory settings.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">To perform factory reset exclude the device form Z-Wave network and include it again.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Kostiantyn Khodykin - kostiantyn.khodykin@outlook.com" date="28 June 2020" revision="1">Initial configuration definition of CH-201</Entry>
+      <Entry author="Bogdan Pankiv - bogdan.pankiv@gmail.com" date="08 November 2020" revision="2">Setpoint feature fixed for CH-201</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="0" label="Relay mode" units="" size="1" min="0" max="1" type="list">
+      <Help>
+Relay mode. 
+Normal: Close the relay when the thermostat is in the "heating" mode and open when the set temperature is reached (Default). The most frequently used mode is used when the heater is directly connected through a thermostat.
+Reverse: Open the relay when the thermostat is in the "heating" mode, close - when the set temperature is reached. Can be used with a limited list of special equipment (normally closed valves, etc.).
+      </Help>
+      <Item value="0" label="Normal" />
+      <Item value="1" label="Reverse" />
+    </Value>
+    <Value genre="config" instance="1" index="2" value="1" label="Temperature threshold" units="Δ°С" size="1" min="1" max="7" type="byte">
+      <Help>
+Set temperature threshold
+To maintain the temperature, two values ​​are used: minimum and maximum. When the minimum value is reached, the heating will be turned on, when heating to the maximum value - the heating element will be turned off. For the convenience of the user, the controller assumes temperature adjustment with only one value, from which the thermostat will calculate the previously mentioned "minimum" and "maximum" values ​​of the temperature range. We recommend using a small range of 1 degree for more comfort and the most accurate match to the chosen temperature. If your heating element consumes a significant amount of energy at the moment of switching on, then it is recommended to reduce the number of on-off cycles by increasing this parameter. With our thermostat, you can always achieve the optimum operating mode by experiment or by contacting our specialists for help. The acceptable value is from 1 to 7 degrees:
+      </Help>
+    </Value>
+    <Value genre="config" instance="1" index="3" value="2" label="Point mode" units="" size="1" min="0" max="2" type="list">
+      <Help>
+Set point mode. 
+0 Switch on the heating mode at set point, switch off at set point + Δt
+1 Switch on the heating mode at set point - Δt, switch off at set point
+2 Switching on the heating mode at set point - ½ Δt, switching off at set point - ½ Δt (Default)
+      </Help>
+      <Item value="0" label="Mode 0" />
+      <Item value="1" label="Mode 1" />
+      <Item value="2" label="Mode 2" />
+    </Value>
+    <Value genre="config" instance="1" index="4" value="1" label="Thermostat status at failure" units="" size="1" min="0" max="1" type="list">
+      <Help>Operating mode in case a thermostat doesn't receive data from a temp sensor</Help>
+      <Item value="0" label="Off" />
+      <Item value="1" label="On" />
+    </Value>
+    <Value genre="config" instance="1" index="5" value="30000" label="Max waiting time from temp sensor" units="sec" size="2" min="100" max="30000" type="short">
+      <Help>Max time of data expectation from room temperature sensor</Help>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="4" label="Minimum allowable temperature" units="°С" size="2" min="-127" max="127" type="short">
+      <Help>Set minimum allowable temperature</Help>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="4" label="Minimum allowable temperature" units="°С" size="2" min="-127" max="127" type="short">
+      <Help>Set minimum allowable temperature</Help>
+    </Value>
+    <Value genre="config" instance="1" index="7" value="30" label="Maximum alowable temperature" units="°С" size="2" min="-127" max="127" type="short">
+      <Help>Set maximum alowable temperature</Help>
+    </Value>
+    <Value genre="config" instance="1" index="8" value="120" label="Time turbo mode" units="sec" size="2" min="100" max="1200" type="short">
+      <Help>Set time turbo mode</Help>
+    </Value>
+    <Value genre="config" instance="1" index="9" value="0" label="Power on turbo mode" units="sec" size="1" min="0" max="1" type="byte">
+      <Help>Set power on turbo mode</Help>
+    </Value>
+    <Value genre="config" instance="1" index="10" value="0" label="Temperature sensor mode" units="" size="1" min="0" max="2" type="list">
+      <Help>Set temperature sensor mode</Help>
+      <Item value="0" label="Standard temperature sensor" />
+      <Item value="1" label="Polling the room temperature sensor" />
+      <Item value="2" label="Waiting for data from the room temperature sensor" />
+    </Value>
+    <Value genre="config" instance="1" index="11" value="300" label="Polling period of the room sensor" units="sec" size="2" min="15" max="600" type="short">
+      <Help>Set polling period of the room sensor</Help>
+    </Value>
+    <Value genre="config" instance="1" index="12" value="1" label="Temprature threshold to send data" units="Δ°С" size="1" min="1" max="16" type="byte">
+      <Help>The value that temprature should be changed to send data</Help>
+    </Value>
+    <Value genre="config" instance="1" index="13" value="300" label="Interval for forced sending data" units="" size="2" min="100" max="600" type="short">
+      <Help>Set Interval for forced sending data</Help>
+    </Value>
+    <Value genre="config" instance="1" index="15" value="0" label="Type of switch 1" units="" size="1" min="0" max="3" type="list">
+      <Help>Set Type of switch 1 (thermostat operating mode)</Help>
+      <Item value="0" label="Monostable" />
+      <Item value="1" label="Bistable, fixed position 1" />
+      <Item value="2" label="Bistable, fixed position 2" />
+      <Item value="3" label="Bistable" />
+    </Value>
+    <Value genre="config" instance="1" index="16" value="0" label="Type of switch 2" units="" size="1" min="0" max="3" type="list">
+      <Help>Set type of switch 2 (turbo mode)</Help>
+      <Item value="0" label="Monostable" />
+      <Item value="1" label="Bistable, fixed position 1" />
+      <Item value="2" label="Bistable, fixed position 2" />
+      <Item value="3" label="Bistable" />
+    </Value>
+    <Value genre="config" instance="1" index="40" value="0" label="Adjusment of a temperature sensor" units="" size="1" min="0" max="10" type="list">
+      <Help>Adjust temperature sensor if required.</Help>
+      <Item value="0" label="Send the actual temperature (further t);" />
+      <Item value="1" label=" t +1°С" />
+      <Item value="2" label=" t +2°С" />
+      <Item value="3" label=" t +3°С" />
+      <Item value="4" label=" t +4°С" />
+      <Item value="5" label=" t +5°С" />
+      <Item value="6" label=" t -1°С" />
+      <Item value="7" label=" t -2°С;" />
+      <Item value="8" label=" t -3°С;" />
+      <Item value="9" label=" t -4°С" />
+      <Item value="10" label=" t -5°С;" />
+    </Value>
+  </CommandClass>
+
+  <!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
+  <CommandClass id="67">
+    <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
+      <Base>0</Base>
+    </Compatibility>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Target for temperature and alarm reports" max_associations="10" />
+      <Group index="2" label="External temperature sensor" max_associations="1" />
+    </Associations>
+  </CommandClass>
+
+</Product>
diff --git a/config/cooper/RF9501.xml b/config/cooper/RF9501.xml
index 3bfa0d0806..b5cb07cc40 100644
--- a/config/cooper/RF9501.xml
+++ b/config/cooper/RF9501.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" 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>
@@ -10,6 +10,7 @@
     <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>
+      <Entry author="knightzac19" date="28 Jan 2021" revision="3">Removed Invalid RF9501 Group</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Configuration Parameters -->
@@ -52,9 +53,8 @@
   </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
-    <Associations num_groups="2">
+    <Associations num_groups="1">
       <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/RF9540-N.xml b/config/cooper/RF9540-N.xml
index daf0ab7d8f..a0ca9264a7 100644
--- a/config/cooper/RF9540-N.xml
+++ b/config/cooper/RF9540-N.xml
@@ -1,4 +1,4 @@
-<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="5" 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>
@@ -9,6 +9,8 @@
     <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>
+      <Entry author="Tao Gong - gongtao0607@gmail.com" date="02 Nov 2020" revision="4">Remove group 255 as 0 associations is reported from the device</Entry>
+      <Entry author="Tao Gong - gongtao0607@gmail.com" date="08 Nov 2020" revision="5">Add VerifyChanged flags for Switch Multilevel V2</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Configuration Parameters -->
@@ -71,11 +73,16 @@
 		  </Help>
     </Value>
   </CommandClass>
+  <!-- Compatibility Flags -->
+  <CommandClass id="38">
+    <Compatibility>
+      <VerifyChanged index="0">true</VerifyChanged>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
-    <Associations num_groups="2">
+    <Associations num_groups="1">
       <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/RF9601.xml b/config/cooper/RF9601.xml
new file mode 100644
index 0000000000..e42ad00e9b
--- /dev/null
+++ b/config/cooper/RF9601.xml
@@ -0,0 +1,73 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001A:0503:534C</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/cooper/RF9601.png</MetaDataItem>
+    <MetaDataItem id="0503" name="ZWProductPage" type="534C">https://products.z-wavealliance.org/products/3038/</MetaDataItem>
+    <MetaDataItem id="0503" name="Identifier" type="534C">Eaton RF9601DW</MetaDataItem>
+    <MetaDataItem id="0503" name="FrequencyName" type="534C">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Eaton’s Z-Wave Plus Wireless Switch</MetaDataItem>
+    <MetaDataItem name="Description">Eaton’s Z-Wave plus wireless switch replaces regular switches (where a neutral is present) to provide local and remote ON/OFF control for most common residential lighting loads including LEDs and certain motor loads. Each switch can be manually and
+      remotely controlled by commands sent from your compatible Z-Wave certified controller. Features and Benefits: • Replaces standard switch to add local and wireless control • Single pole and 3-Way control: Use with standard 3-Way switch or Z-Wave
+      Plus Accessory RF9617 • Neutral is required for installation • Supports motors loads up to ½ HP • Features blue load indicating LED light that can be dimmed in ON or OFF state</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.eaton.com/us/en-us/skuPage.RF9601DW.html</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Zachary Knight" date="01 Jan 2021" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3038/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 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 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 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 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 genre="config" index="13" label="BLUE LED Brightness Level while the Switch is ON" max="4" min="0" size="1" type="byte" value="4">
+      <Help>
+        Adjust brightness of the blue indicator LED with Switch is ON - 0 = OFF 4 = Maximum brightness
+      </Help>
+    </Value>
+    <Value genre="config" index="14" label="BLUE LED Brightness Level while the Switch is OFF" max="4" min="0" size="1" type="byte" value="1">
+      <Help>
+        Adjust brightness of the blue indicator LED with Switch is OFF - 0 = OFF 4 = Maximum brightness
+      </Help>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5" />
+      <Group index="2" label="Set" max_associations="5" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/device_configuration.xsd b/config/device_configuration.xsd
index 21c28b8063..993553491c 100644
--- a/config/device_configuration.xsd
+++ b/config/device_configuration.xsd
@@ -86,8 +86,6 @@
 		   <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'/>
@@ -97,12 +95,17 @@
 		   <xs:element name="RemoveCC" minOccurs='0'>
 		   	<xs:complexType mixed="true">
 			   <xs:attribute name='index' type='xs:string' use='required'/>
-			</xs:complexType>
+			  </xs:complexType>
 		   </xs:element>
 		   <xs:element name="VerifyChanged" minOccurs='0'>
 		   	<xs:complexType mixed="true">
 			   <xs:attribute name='index' type='xs:string' use='required'/>
-			</xs:complexType>
+			  </xs:complexType>
+		   </xs:element>
+		   <xs:element name="NoRefreshAfterSet" minOccurs='0'>
+		   	<xs:complexType mixed="true">
+			   <xs:attribute name='index' type='xs:string' use='required'/>
+			  </xs:complexType>
 		   </xs:element>
 	  </xs:choice>
   </xs:complexType>
diff --git a/config/devolo/mt2759.xml b/config/devolo/mt2759.xml
new file mode 100644
index 0000000000..5fa7a79084
--- /dev/null
+++ b/config/devolo/mt2759.xml
@@ -0,0 +1,169 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0175:0052:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/devolo/mt2759.png</MetaDataItem>
+    <MetaDataItem id="0052" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/2645/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">REMOVAL FROM A ZWAVE NETWORK (Z-WAVE EXCLUSION)
+
+1. Connect the device to the power supply
+2. Make sure the device is within direct range of your Z-Wave gateway (hub) or use a hand-held Z-Wave remote to perform exclusion 
+3. Enable add/remove mode on your Z-Wave gateway (hub)
+4. Toggle the switch connected to the I1 terminal 3 times within 5 seconds
+OR
+If the device is powered by 24 V SELV supply, press and hold the S (Service) button between 2 and 6 seconds
+5. The device will be removed from your network but any custom configuration parameters will not be erased
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">FACTORY RESET
+
+1. Connect the device to the power supply
+2. Within the first minute (60 seconds) the device is connected to the power supply, toggle the switch connected to the I1 terminal 5 times within 5 seconds (5 times change switch state)
+OR
+If the device is powered by 24 V SELV supply, press and hold the S (Service) button for more than 6 seconds
+
+*By resetting the device, all custom parameters previously set on the device will return to their default values, and the owner ID will be deleted. Use this reset procedure only when the main gateway (hub) is missing or otherwise inoperable.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2645/Manual_Devolo_HCswitch_FM.pdf</MetaDataItem>
+    <MetaDataItem id="0052" name="Identifier" type="0002">MT2759</MetaDataItem>
+    <MetaDataItem name="Name">Home Control Switch FM</MetaDataItem>
+    <MetaDataItem id="0052" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">AUTOMATICALLY ADDING THE DEVICE TO A Z-WAVE NETWORK (AUTO INCLUSION) 
+
+1. Enable add/remove mode on your Z-Wave gateway (hub) 
+2. Connect the device to the power supply (with the temperature sensor already connected – sold separately*).
+3. Auto-inclusion will be initiated within 5 seconds of connection to the power supply and the device will automatically enrol in your network
+
+MANUALLY ADDING THE DEVICE TO A Z-WAVE NETWORK (MANUAL INCLUSION)
+
+1. Enable add/remove mode on your Z-Wave gateway (hub) 
+2. Connect the device to the power supply (with the temperature sensor already connected*) 
+3. Toggle the switch connected to the I1 terminal 3 times within 5 seconds 
+OR
+If the device is powered by 24 V SELV supply, press and hold the S (Service) button between 2 and 6 seconds
+4. A new multi-channel device will appear on your dashboard
+*If connecting the temperature sensor, switch off the power supply and make sure the device is excluded from your network BEFORE connecting the sensor.
+
+
+*Make sure the device is excluded from your network before connecting the temperature sensor. Switch off the power supply, connect the temperature sensor, and re-include the device to your network.
+</MetaDataItem>
+    <MetaDataItem name="Description">The Switch FM controls on/off function for one electrical device. It measures power consumption of the connected device, and can be paired with a digital temperature sensor (sold separately). It supports push-button/momentary switches and toggle switches (default).
+
+The connection of a digital temperature sensor means you can create complex scenes and control any device relative to a set temperature range. The Devolo Switch FM also acts as a Z-Wave repeater to improve the range and stability of the Z-Wave network.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="github.com/nicoh88" date="19 May 2020" revision="1">Initial Version - Copied from qubino/ZMNHADx.xml</Entry>
+    </ChangeLog>
+  </MetaData>
+
+	<!-- 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 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>Switch FM 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="Switch FM module saves its state before power failure (it returns to the last position saved before a power failure)" value="0"/>
+      <Item label="Switch FM 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>
+  <!-- Multi Channel Association Groups -->
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>false</ForceInstances>
+    </Compatibility>
+    <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>
+    <Instance index="1" label="Load" />
+    <Instance index="2" label="i2" />
+    <Instance index="3" label="i3" />
+    <Instance index="4" label="Temp Sensor" />
+  </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>
+</Product>
diff --git a/config/devolo/mt2760.xml b/config/devolo/mt2760.xml
new file mode 100644
index 0000000000..3649edaac3
--- /dev/null
+++ b/config/devolo/mt2760.xml
@@ -0,0 +1,218 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0175:0051:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/devolo/mt2760.png</MetaDataItem>
+    <MetaDataItem id="0051" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/2838/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">•	Connect module to power supply
+•	bring module within maximum 1 meter (3feet) of the main controller, 
+•	enable add/remove mode on main controller,
+•	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 or
+•	press service button S (only applicable for 24 V SELV supply voltage) for more than 6 second.
+By this function all parameters of the module are set to   default values and own ID is deleted.
+If push button I1 is pressed three times within 3s (or service button S is pressed more than 2 and less than 6 seconds) module is excluded, but configuration parameters are not set to default values.
+NOTE: If the module is included with parameters 100 or 101 with values different to default and module reset is done, wait at least 30s before next inclusion
+</MetaDataItem>
+    <MetaDataItem name="Description">This Z-Wave module is used for dimming the bulb or to manage the speed of a fan. The module can be controlled either through a 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 measures power consumption of bulb or fan and supports connection of digital temperature sensor. It is designed to act as repeater in order to improve range and stability of Z-wave network.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2838/manualdevoloHCdimmerFM25012018_0910.pdf</MetaDataItem>
+    <MetaDataItem id="0051" name="FrequencyName" type="0001">CEPT (Europe) / Australia / New Zealand</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">•	Connect module to power supply (with 
+temperature sensor connected - if purchased),
+•	enable add/remove mode on main controller
+•	auto-inclusion (works for about 2 minutes after connected to power supply) or
+•	press push button I1 three times within 3s (3 times change switch state within 3 seconds) or
+•	press service button S (only applicable for 24 V SELV supply voltage) for more than 2 second.
+NOTE1: For auto-inclusion procedure, first set main controller into inclusion mode and then connect module to power supply.
+NOTE2: When connecting temperature sensor to module that has already been included, you have to exclude module first. Switch off power supply, connect the sensor and re-include the module.
+</MetaDataItem>
+    <MetaDataItem id="0051" name="Identifier" type="0001">MT2760</MetaDataItem>
+    <MetaDataItem name="Name">Home Control Dimmer FM</MetaDataItem>
+    <MetaDataItem name="ResetDescription">•	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 or
+•	press service button S (only applicable for 24 V SELV supply voltage) for more than 6 second.
+
+Please use reset procedure only when the network primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="github.com/nicoh88" date="24 May 2020" revision="1">Initial Version - Copied from qubino/ZMNHDDx.xml</Entry>
+    </ChangeLog>
+  </MetaData>
+
+	<!-- 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="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 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 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 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 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 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="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 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 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 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 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 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 genre="config" index="68" instance="1" label="Dimming duration" max="127" min="0" size="1" type="byte" 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 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 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 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 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" 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/devolo/mt2761.xml b/config/devolo/mt2761.xml
new file mode 100644
index 0000000000..5c765db3fc
--- /dev/null
+++ b/config/devolo/mt2761.xml
@@ -0,0 +1,154 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0175:0052:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/devolo/mt2761.png</MetaDataItem>
+    <MetaDataItem id="0052" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2962/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">•	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 push button I1 three times within 3s (3 times change switch state within 3 seconds) or
+•	press service button S (only applicable for 24 V SELV supply voltage) for more than 2 second.
+
+NOTE1: For auto-inclusion procedure, first set main controller into inclusion mode and then connect module to power supply.
+
+NOTE2: When connecting temperature sensor to module that has already been included, you have to exclude module first. Switch off power supply, connect the sensor and re-include the module.
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">•	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 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 or
+•	press service button S (only applicable for 24 V SELV supply voltage)  for more than 6 second.
+By this function all parameters of the module are set to default values and own ID is deleted.
+
+If push button I1 is pressed three times within 3s (or service button S is pressed more than 2 and less than 6 seconds) module is excluded, but configuration parameters are not set to default values. 
+
+NOTE: Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+
+NOTE: If the module is included with parameters 71 with value different to default and module reset is done, wait at least 30s before next inclusion
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">•	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 or
+•	press service button S (only applicable for 24 V SELV supply voltage)  for more than 6 second.
+
+NOTE: Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+</MetaDataItem>
+    <MetaDataItem name="Description">This Z-Wave module is used to control the motor of blinds, rollers, shades, venetian blinds, etc … The module can be controlled either through a Z-Wave network or through the wall switch. Precise positioning is supported for motors equipped with mechanical or electronic end switches. The module is designed to be mounted inside a “flush mounting box”, hidden behind a traditional wall switch. Module measures power consumption of motor and support connection of digital temperature sensor. It is designed to act as repeater in order to improve range and stability of Z-Wave network.                      
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2962/Manual_Devolo_HC Shutter_FM.pdf</MetaDataItem>
+    <MetaDataItem id="0052" name="Identifier" type="0003">MT2761</MetaDataItem>
+    <MetaDataItem name="Name">Home Control Shutter FM</MetaDataItem>
+    <MetaDataItem id="0052" name="FrequencyName" type="0003">CEPT (Europe) / Australia / New Zealand / U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="github.com/ProtoFoo" date="04 May 2020" revision="1">Initial Version - Copied from qubino/ZMNHCDx.xml</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <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 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 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 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 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 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 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 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" 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/dlink/dch-z210.xml b/config/dlink/dch-z210.xml
new file mode 100644
index 0000000000..26fe615043
--- /dev/null
+++ b/config/dlink/dch-z210.xml
@@ -0,0 +1,37 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Description">This  plug-in  ON/OFF  switch  DCH-210 (aka Wenzhou TKB 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="0011" name="Identifier" type="0001">DCH-Z210</MetaDataItem>
+    <MetaDataItem id="0011" name="FrequencyName" type="0001">CEPT (Europe) / U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/dlink/dch-z210.png</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jeff Thompson" date="27 April 2020" revision="1">Initial version - clone of Wenzhou (TKB) TZ88</Entry>
+      <Entry author="Justin Hammond" date="24 June 2020" revision="2">Add Product Pic</Entry>
+
+    </ChangeLog>
+    <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">DCH-Z10</MetaDataItem>
+  </MetaData>
+  <!-- http://products.z-wavealliance.org/products/786 -->
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <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 plug will report its instant power consumption every 1 hour.</Help>
+    </Value>
+    <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 plug will report its accumulated power consumption (kWh) every 1 hour.</Help>
+    </Value>
+  </CommandClass>
+</Product>
diff --git a/config/dome/0104.xml b/config/dome/0104.xml
new file mode 100644
index 0000000000..a7e6ac0c09
--- /dev/null
+++ b/config/dome/0104.xml
@@ -0,0 +1,95 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/021F:0086:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/dome/0086.png</MetaDataItem>
+    <MetaDataItem id="0104" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1847/</MetaDataItem>
+    <MetaDataItem name="Description">The Dome™ Home Automation DMMZ1 Mouser is a powerful rodent electric trap with Z-Wave technology built-in. It kills mice, rats and other rodents quickly, cleanly and humanely with a powerful jolt of electricity. Simply set bait, turn on and place in desired location. When connected to Z-Wave Certified Hub, once the trap is full, it sends out a notification to your smarthome system. You can easily dispose of Mouser’s contents without ever having to touch them. Use the top handle and tip to dispose of caught rodents. Specially designed removable and washable bait tray will allow you to easily replace the bait and set it back up. It operates on 4 AA batteries (not included) and is optimised to last over 50 uses. Mouser features extra-long Z-Wave wireless range (up to 150 ft) and  Dome™ DMMZ1 Mouser comes with a 1-year limited warranty. Measurements in inches: 8.75 x 4.5 x 5. Dome™ Home Automation Z-Wave devices give your family peace of mind and security you can count on. With Dome™, you’re always connected and always covered.
+•	Humanely kills mice, rats and other rodents with a powerful electric shock and sends an alert to your smarthome system when the trap needs to be emptied
+•	Easy to use: set bait, turn on and place in desired location 
+Touch free: hold handle and tip to dispose of contents, then set it again
+•	Up to 150-foot Z-Wave range. Operating Temperature: 32°F - 112°F. Powered by 4 AA batteries (not included) enabling it to be triggered over 50 times  
+•	Z-Wave Plus Certified. Works as a stand alone electronic mouse trap  but requires a Z-Wave Certified Hub for notification functionality
+•	Tested to work with SmartThings, Vera, Staples Connect, HomeSeer, Nexia, Piper, URC, Harmony. Not supported by Wink, DSC, ADT Pulse, 2Gig, Napco, Interlogix, Honeywell (Dome is not associated with listed brands)
+</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Follow the instructions for your Z-Wave Certified controller to enter inclusion mode.  When prompted by the controller:
+1. Bring the Mouser to within 10’ of your Z-Wave controller for the inclusion process.  After successful pairing, the device can be brought to the desired location.
+2. Remove top cover by sliding it back and lifting up.
+3. Insert batteries.
+4. Press the CONNECT BUTTON quickly 3 times in a row.
+5. The LED INDICATOR will flash five times indicating inclusion
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">If needed, the Mouser can be reset locally by following these steps.  Only do this when your Z-Wave controller is disconnected or otherwise unreachable.  Beware that resetting your device will disconnect it from the system:
+1. Remove the TOP COVER and confirm that your Mouser is powered up.
+2. Press and hold the CONNECT BUTTON for at least 10 seconds then release.  A flashing LED INDICATOR indicates a successful factory reset. 
+3. The Mouser’s memory will be erased to factory settings.  
+</MetaDataItem>
+    <MetaDataItem id="0104" name="Identifier" type="0003">DMMZ1</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">If needed, the Mouser can be reset locally by following these steps.  Only do this when your Z-Wave controller is disconnected or otherwise unreachable.  Beware that resetting your device will disconnect it from the system:
+1. Remove the TOP COVER and confirm that your Mouser is powered up.
+2. Press and hold the CONNECT BUTTON for at least 10 seconds then release.  A flashing LED INDICATOR indicates a successful factory reset. 
+3. The Mouser’s memory will be erased to factory settings.  </MetaDataItem>
+    <MetaDataItem id="0104" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Follow the instructions for your Z-Wave Certified controller to enter exclusion mode.
+When prompted by the controller:
+1. Remove top cover by sliding it back and lifting up.
+2. Press the CONNECT BUTTON quickly 3 times in a row.
+The LED INDICATOR will flash five times indicating exclusion/disconnection.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1847/Mouser API Manual.pdf</MetaDataItem>
+    <MetaDataItem name="Name">Dome Mouser</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1847/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!--
+  Dome Mouser
+  https://products.z-wavealliance.org/products/1847
+  -->
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Basic Set Level" max="255" min="0" size="1" type="byte" value="255">
+      <Help>
+        This parameter defines the value sent by the BASIC_SET command to Association Group 2.
+        0 Turn Off Device.
+        1 to 99 Set Device to Value.
+        255 Turn On Device.
+      </Help>
+    </Value>
+    <Value genre="config" index="2" label="Set Firing Mode" max="2" min="1" size="1" type="list" value="2">
+      <Help>
+        This parameter sets firing mode of the Mouser.
+        Two firing modes are available: in the first (Continuous Fire,) electricity is passed continuously for the entire duration,
+        and in the second (Burst Fire,) electricity is passed continuously only for the first minute and it is pulsed at approximately 400 beats per minute for the remainder of the time.
+      </Help>
+      <Item label="Continuous Fire" value="1"/>
+      <Item label="Burst Fire" value="2"/>
+    </Value>
+    <Value genre="config" index="3" label="High Voltage Duration Time" max="360" min="100" size="2" type="short" units="Seconds" value="100">
+      <Help>
+        This parameter defines how long the Mouser will fire continuously before it starts to burst-fire
+      </Help>
+    </Value>
+    <Value genre="config" index="4" label="LED Alarm" max="1" min="0" size="1" type="list" value="1">
+      <Help>
+        This parameter enables or disables the indicator LED alarm when the trap is tripped.
+      </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="5" label="LED Alarm Duration" max="255" min="1" size="1" type="byte" units="Hours" value="0">
+      <Help>
+        This parameter sets the amount of time the LED Indicator blinks after the trap is tripped.
+        0 LED Blinks Until Trap is Reset.
+        1 to 255 in Hours.
+      </Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Basic Set" max_associations="5"/>
+      <Group index="3" label="Notification Report" max_associations="5"/>
+      <Group index="4" label="Sensor Binary Report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/dome/dmex1.xml b/config/dome/dmex1.xml
new file mode 100644
index 0000000000..b43773da5b
--- /dev/null
+++ b/config/dome/dmex1.xml
@@ -0,0 +1,49 @@
+<!--
+Dome DMEX1 Range Extender
+--><Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/dome/dmex1.png</MetaDataItem>
+    <MetaDataItem id="0108" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2984/</MetaDataItem>
+    <MetaDataItem id="0108" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, press the button on DMEX1 quickly 3 times in a row.</MetaDataItem>
+    <MetaDataItem name="Description">The Dome Range Extender is designed to improve communication between Z-Wave devices. It amplifies Z-Wave signals and increases the reach of your controller, ensuring your devices stay connected. The Extender has an LED light that works as a nightlight and can also act as an indicator in regular mode. The included suction cup lets you mount the Extender onto any smooth surface while using a micro USB power supply. All these features make the Dome Range extender the perfect choice for your home.</MetaDataItem>
+    <MetaDataItem name="Name">DMEX1 Range Extender</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press the button 6 times quickly, then immediately press and hold for 10 seconds. Use this procedure only in the event that your primary network controller is missing or inoperable.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2984/DomeExtenderAPIManual10-31.pdf</MetaDataItem>
+    <MetaDataItem id="0108" name="Identifier" type="0003">DMEX1</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, press the button on DMEX1 quickly 3 times in a row.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Dybedahl - madj42@gmail.com" date="12 July 2020" revision="1">Initial Entry</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" type="byte" size="1" index="1" label="Night Light “Off” Threshold " min="0" max="10" value="5">
+      <Help>
+      This parameter sets the luminance (brightness) level at which night light is turned off. This is a unitless value that can be set to any value from 0 - 10, with a default value of 5. The higher this value, the brighter the ambient light must be to turn off the night light.
+      Range:0-10
+      Default: 5
+      </Help>
+    </Value>
+	<Value genre="config" type="byte" size="1" index="2" label="Night Light “On” Threshold " min="0" max="10" value="5">
+      <Help>
+	  This parameter sets the luminance (brightness) level at which night light is turned on. This is a unitless value that can be set to any value from 0 - 10, with a default value of 5. The lower this value, the dimmer the ambient light must be to turn on the night light.
+      Range:0-10
+      Default: 5
+      </Help>
+    </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/duco/DucoBox.xml b/config/duco/DucoBox.xml
new file mode 100644
index 0000000000..9868e13001
--- /dev/null
+++ b/config/duco/DucoBox.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="2"
+	xmlns="https://github.com/OpenZWave/open-zwave">
+	<!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+	<MetaData>
+		<MetaDataItem name="Name">DucoBox</MetaDataItem>
+		<MetaDataItem name="Description">The ducBox is a Z-wave controlled mechenical ventilation unit</MetaDataItem>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/XXXX:XXXX:XXXX</MetaDataItem>
+		<MetaDataItem name="ProductPage">https://www.duco.eu/nl-nl-gearchiveerde-systemen</MetaDataItem>
+		<MetaDataItem name="ProductSupport">https://www.duco.eu/nl-nl-gearchiveerde-systemen</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/DefaultProductImage.png</MetaDataItem>
+		<MetaDataItem name="ProductManual">https://www.duco.eu/Wes/CDN/1/Attachments/GH_DucoTronic%20System%20Z-wave_(nl)_online%20garantie_LowRes_635500206155264045.pdf</MetaDataItem>
+		<MetaDataItem name="WakeupDescription">			<!-- Short description on how to wake up the device if its battery powered --></MetaDataItem>
+		<MetaDataItem name="InclusionDescription">Press all 4 buttons to enter installer mode. Next pres button 1 to add the device to a z-wave network.</MetaDataItem>
+		<MetaDataItem name="ExclusionDescription">			<!-- Short Description on how to exclude the device --></MetaDataItem>
+		<MetaDataItem name="ResetDescription">Press all 4 buttons to enter installer mode. Next press and hold button 1 and 2 to remove the device from a z-wave network.</MetaDataItem>
+		<MetaDataItem id="0001" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/49</MetaDataItem>
+		<MetaDataItem id="0001" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+		<MetaDataItem id="0001" name="Identifier" type="0003">00001801/G12809</MetaDataItem>
+		<ChangeLog>
+			<Entry author="Mark van Kemenade - mark@kemdo.nl" date="29 Januari 2020" revision="1">Created the config file from scratch based on information from https://products.z-wavealliance.org/products/49 and http://devel.pepper1.net/zwavedb/device/156</Entry>
+			<Entry author="Jean-Francois Auger" date="23 Sept 2020" revision="2">Remove auto on group 1, cleanup MetaDataItem</Entry>
+		</ChangeLog>
+	</MetaData>
+
+	<CommandClass id="133">		<!-- Association -->
+		<Associations num_groups="7">
+			<Group index="1" label="Duco control" max_associations="20"/>
+			<!-- This is the control group used by the DUCO products to talk to each other. Only DUCO products should be added to this group. -->
+			<Group auto="true" index="2" label="Temp Basic set (on)" max_associations="20"/>
+			<!-- This is the temperature ON group. When the temperature goes above the temperature high set point, then the sensor will send BASIC SET( ON ) to all the nodes in the group. And when the temperature goes below the temperature low set point, then the sensor will send BASIC SET( OFF ) to all the nodes in the group. -->
+			<Group auto="true" index="3" label="Temp Basic set (off)" max_associations="20"/>
+			<!-- This is the temperature OFF group. When the temperature goes above the temperature high set point, then the sensor will send BASIC SET( OFF ) to all the nodes in the group. And when the temperature goes below the temperature low set point, then the sensor will send BASIC SET( ON ) to all the nodes in the group. -->
+			<Group auto="true" index="4" label="Temperature delta" max_associations="20"/>
+			<!-- This is the temperature DELTA group. When the temperature has changed more than the Delta temperature value, then the sensor will send a MULTI SENSOR REPORT with the temperature value to all the nodes in the group. -->
+			<Group auto="true" index="5" label="RH Basic set (on)" max_associations="20"/>
+			<!-- This is the RH ON group. When the RH goes above the RH high set point, then the sensor will send BASIC SET( ON ) to all the nodes in the group. And when the RH goes below the RH low set point, then the sensor will send BASIC SET( OFF ) to all the nodes in the group. -->
+			<Group auto="true" index="6" label="RH Basic set (off)" max_associations="20"/>
+			<!-- This is the RH OFF group. When the RH goes above the RH high set point, then the sensor will send BASIC SET( OFF ) to all the nodes in the group. And when the RH goes below the RH low set point, then the sensor will send BASIC SET( ON ) to all the nodes in the group. -->
+			<Group auto="true" index="7" label="RH delta" max_associations="20"/>
+			<!-- This is the RH DELTA group. When the RH has changed more than the Delta RH value, then the sensor will send a MULTI SENSOR REPORT with the RH value to all the nodes in the group. -->
+		</Associations>
+	</CommandClass>
+	<CommandClass id="112">		<!-- Configuration -->
+		<!-- Measure Level -->
+		<Value genre="config" index="1" label="Measure Level" size="1" type="byte" value="60" min="1" max="127" units="sec">
+			<Help>How often the value is measured(example: if value=60, the sensor value is measured every 60 seconds)</Help>
+		</Value>
+		<!-- CO² set point -->
+		<Value genre="config" index="2" label="CO² set point" size="2" type="short" value="1000" min="1" max="32767" units="PPM">
+			<Help>	Set point CO2: Used in ‘automatic mode’. (button 4) if the device is a CO2 sensor. The CO2 level in a room is a good indication of the air quality in this room. 
+			When the CO2 level is above this set point, the room needs more ventilation. Consequently, the CO2 sensor will open the associated grating unit.</Help>
+		</Value>
+
+		<!-- Humidity set point -->
+		<Value genre="config" index="3" label="CO² set point" size="1" type="byte" value="70" min="1" max="127" units="%">
+			<Help>	Set point CO2: Used in ‘automatic mode’. (button 4) if the device is a CO2 sensor. The CO2 level in a room is a good indication of the air quality in this room. 
+			When the CO2 level is above this set point, the room needs more ventilation. Consequently, the CO2 sensor will open the associated grating unit.</Help>
+		</Value>
+
+		<!-- Button 1 -->
+		<Value genre="config" index="4" label="Button 1" size="1" type="byte" value="15" min="1" max="127" units="%">
+			<Help>	The value when button1 is pressed. Values above 99 will be capped to 99 (maximum) used in association group 1</Help>
+		</Value>
+
+		<!-- Button 2 -->
+		<Value genre="config" index="5" label="Button 2" size="1" type="byte" value="50" min="1" max="127" units="%">
+			<Help>	The value when button2 is pressed. Values above 99 will be capped to 99 (maximum) used in association group 1</Help>
+		</Value>
+
+		<!-- Button 3 -->
+		<Value genre="config" index="6" label="Button 3" size="1" type="byte" value="99" min="1" max="127" units="%">
+			<Help>The value when button3 is pressed. Values above 99 will be capped to 99 (maximum) used in association group 1</Help>
+		</Value>
+
+		<!-- Min automatic level -->
+		<Value genre="config" index="7" label="Min automatic level" size="1" type="byte" value="15" min="1" max="127" units="%">
+			<Help>The minimum value that can be send by the CO2 sensor when it is in automatic mode.</Help>
+		</Value>
+
+		<!-- Temperature high setpoint -->
+		<Value genre="config" index="8" label="Temperature high setpoint" size="2" type="short" value="0" min="1" max="32767" units="°C">
+			<Help>Temperature high set point: used in association group 2 or 3</Help>
+		</Value>
+
+		<!-- Temperature low setpoint -->
+		<Value genre="config" index="9" label="Temperature low setpoint" size="2" type="short" value="0" min="1" max="32767" units="°C">
+			<Help>Temperature low set point: used in association group 2 or 3</Help>
+		</Value>
+
+		<!-- Temperature delta setpoint -->
+		<Value genre="config" index="10" label="Temperature delta setpoint" size="2" type="short" value="2" min="1" max="32767" units="°C">
+			<Help>Temperature delta set point: used in association group 4</Help>
+		</Value>
+
+		<!-- RH high setpoint -->
+		<Value genre="config" index="11" label="RH high setpoint" size="2" type="short" value="0" min="1" max="32767" units="%">
+			<Help>RH high set point: used in association group 5 or 6</Help>
+		</Value>
+
+		<!-- RH low setpoint -->
+		<Value genre="config" index="12" label="RH low setpoint" size="2" type="short" value="0" min="1" max="32767" units="%">
+			<Help>RH low set point: used in group5 or 6</Help>
+		</Value>
+
+		<!-- RH delta setpoint -->
+		<Value genre="config" index="13" label="RH delta setpoint" size="2" type="short" value="0" min="1" max="32767" units="%">
+			<Help>RH delta set point: used in group7</Help>
+		</Value>
+
+		<!-- CO2 high setpoint -->
+		<Value genre="config" index="14" label="CO2 high setpoint" size="2" type="short" value="0" min="1" max="32767" units="%">
+			<Help>CO2 high set point: not available in RH sensor</Help>
+		</Value>
+
+		<!-- CO2 low setpoint -->
+		<Value genre="config" index="15" label="CO2 low setpoint" size="2" type="short" value="0" min="1" max="32767" units="%">
+			<Help>CO2 low set point: not available in RH sensor</Help>
+		</Value>
+
+		<!-- CO2 delta setpoint -->
+		<Value genre="config" index="16" label="CO2 delta setpoint" size="2" type="short" value="500" min="1" max="32767" units="%">
+			<Help>	CO2 delta set point: not available in RH sensor</Help>
+		</Value>
+	</CommandClass>
+
+</Product>
diff --git a/config/duco/Ducotronic_CO-RH_sensor.xml b/config/duco/Ducotronic_CO-RH_sensor.xml
new file mode 100644
index 0000000000..22957b15e3
--- /dev/null
+++ b/config/duco/Ducotronic_CO-RH_sensor.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="2"
+	xmlns="https://github.com/OpenZWave/open-zwave">
+	<!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+	<MetaData>
+		<MetaDataItem name="Name">Duco CO2/RH sensor</MetaDataItem>
+		<MetaDataItem name="Description">The DUCO CO2 sensor measures the indoor CO2 levels and temperature. This is a good indication for the indoor air quality.Duco Tronic System 
+		The Duco Tronic System is a demand-driven natural ventilation system that always provides a balance between controlled natural ventilation and a central mechanical extraction. 
+		The demand for ventilation is determined based on air quality (CO 2 ) in the living spaces, the relative humidity (RH) in the 'wet' rooms and outdoor temperature readings. 
+		These values ​​are measured by means of various sensors in different rooms. The sensors communicate wirelessly via the Z-wave protocol with the electronically controlled by the air supply 
+		grilles and DucoBox the mechanical removal of the polluted and humid air controls. This electronic control ensures that only where a ventilation when needed, so the energy loss is limited. 
+		Moreover, the Duco Tronic System takes into account the temperature and adjusts to the weather conditions. If it gets colder outside, it will automatically schedule a higher CO 2 target gain. T
+		his opens it progresses less rapidly and less far. When the weather warms up, the opposite is true. In extreme heat is ventilated only by those grids where the lowest temperature measured, for example, 
+		on the shady side of the building. The measurement of the outside temperature is done by means of a sensor located in the control unit of the air vents situated. Thanks to the electronically controlled grids 
+		within the 'Duco Tronic System requires the user to do anything. The system ventilates automatically . Still, the resident boss and he may, if necessary or desired, the air supply and exhaust manually. 
+		Over time, the system automatically switches back to the most optimal position. All components, sensors, DucoBox and grills are aesthetically designed, fast and easy to install, use and maintenance.</MetaDataItem>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/XXXX:XXXX:XXXX</MetaDataItem>
+		<MetaDataItem name="ProductPage">https://www.duco.eu/nl-nl-gearchiveerde-systemen</MetaDataItem>
+		<MetaDataItem name="ProductSupport">https://www.duco.eu/nl-nl-gearchiveerde-systemen</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/DefaultProductImage.png</MetaDataItem>
+		<MetaDataItem name="ProductManual">https://www.duco.eu/Wes/CDN/1/Attachments/GH_DucoTronic%20System%20Z-wave_(nl)_online%20garantie_LowRes_635500206155264045.pdf</MetaDataItem>
+		<MetaDataItem name="WakeupDescription">			<!-- Short description on how to wake up the device if its battery powered --></MetaDataItem>
+		<MetaDataItem name="InclusionDescription">Press all 4 buttons to enter installer mode. Next pres button 1 to add the device to a z-wave network.</MetaDataItem>
+		<MetaDataItem name="ExclusionDescription">			<!-- Short Description on how to exclude the device --></MetaDataItem>
+		<MetaDataItem name="ResetDescription">Press all 4 buttons to enter installer mode. Next press and hold button 1 and 2 to remove the device from a z-wave network.</MetaDataItem>
+		<MetaDataItem id="0001" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/49</MetaDataItem>
+		<MetaDataItem id="0001" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+		<MetaDataItem id="0001" name="Identifier" type="0004">00001801/G12809</MetaDataItem>
+		<ChangeLog>
+			<Entry author="Mark van Kemenade - mark@kemdo.nl" date="29 Januari 2020" revision="1">Created the config file from scratch based on information from https://products.z-wavealliance.org/products/49 and http://devel.pepper1.net/zwavedb/device/156</Entry>
+			<Entry author="Jean-Francois Auger" date="23 Sept 2020" revision="2">Remove auto on group 1, cleanup MetaDataItem</Entry>
+		</ChangeLog>
+	</MetaData>
+
+	<CommandClass id="133">		<!-- Association -->
+		<Associations num_groups="7">
+			<Group index="1" label="Duco control" max_associations="20"/>
+			<!-- This is the control group used by the DUCO products to talk to each other. Only DUCO products should be added to this group. -->
+			<Group auto="true" index="2" label="Temp Basic set (on)" max_associations="20"/>
+			<!-- This is the temperature ON group. When the temperature goes above the temperature high set point, then the sensor will send BASIC SET( ON ) to all the nodes in the group. And when the temperature goes below the temperature low set point, then the sensor will send BASIC SET( OFF ) to all the nodes in the group. -->
+			<Group auto="true" index="3" label="Temp Basic set (off)" max_associations="20"/>
+			<!-- This is the temperature OFF group. When the temperature goes above the temperature high set point, then the sensor will send BASIC SET( OFF ) to all the nodes in the group. And when the temperature goes below the temperature low set point, then the sensor will send BASIC SET( ON ) to all the nodes in the group. -->
+			<Group auto="true" index="4" label="Temperature delta" max_associations="20"/>
+			<!-- This is the temperature DELTA group. When the temperature has changed more than the Delta temperature value, then the sensor will send a MULTI SENSOR REPORT with the temperature value to all the nodes in the group. -->
+			<Group auto="true" index="5" label="RH Basic set (on)" max_associations="20"/>
+			<!-- This is the RH ON group. When the RH goes above the RH high set point, then the sensor will send BASIC SET( ON ) to all the nodes in the group. And when the RH goes below the RH low set point, then the sensor will send BASIC SET( OFF ) to all the nodes in the group. -->
+			<Group auto="true" index="6" label="RH Basic set (off)" max_associations="20"/>
+			<!-- This is the RH OFF group. When the RH goes above the RH high set point, then the sensor will send BASIC SET( OFF ) to all the nodes in the group. And when the RH goes below the RH low set point, then the sensor will send BASIC SET( ON ) to all the nodes in the group. -->
+			<Group auto="true" index="7" label="RH delta" max_associations="20"/>
+			<!-- This is the RH DELTA group. When the RH has changed more than the Delta RH value, then the sensor will send a MULTI SENSOR REPORT with the RH value to all the nodes in the group. -->
+		</Associations>
+	</CommandClass>
+
+	<CommandClass id="112">		<!-- Configuration -->
+
+		<!-- Measure Level -->
+		<Value genre="config" index="1" label="Measure Level" size="1" type="byte" value="60" min="1" max="127" units="sec">
+			<Help>How often the value is measured(example: if value=60, the sensor value is measured every 60 seconds)</Help>
+		</Value>
+
+		<!-- CO² set point -->
+		<Value genre="config" index="2" label="CO² set point" size="2" type="short" value="1000" min="1" max="32767" units="PPM">
+			<Help>Set point CO2: Used in ‘automatic mode’. (button 4) if the device is a CO2 sensor. The CO2 level in a room is a good indication of the air quality in this room. 
+			When the CO2 level is above this set point, the room needs more ventilation. Consequently, the CO2 sensor will open the associated grating unit.</Help>
+		</Value>
+
+		<!-- Humidity set point -->
+		<Value genre="config" index="3" label="CO² set point" size="1" type="byte" value="70" min="1" max="127" units="%">
+			<Help>Set point RH: Used in ‘automatic mode’. (button 4) if the device is a humidity sensor. The humidity level in a room is a good indication of the air quality in this room. 
+			When the RH level is above this set point, the room needs more ventilation. Consequently, the RH sensor will open the associated grating unit.</Help>
+		</Value>
+
+		<!-- Button 1 -->
+		<Value genre="config" index="4" label="Button 1" size="1" type="byte" value="15" min="1" max="127" units="%">
+			<Help>	The value when button1 is pressed. Values above 99 will be capped to 99 (maximum) used in association group 1</Help>
+		</Value>
+
+		<!-- Button 2 -->
+		<Value genre="config" index="5" label="Button 2" size="1" type="byte" value="50" min="1" max="127" units="%">
+			<Help>	The value when button2 is pressed. Values above 99 will be capped to 99 (maximum) used in association group 1</Help>
+		</Value>
+
+		<!-- Button 3 -->
+		<Value genre="config" index="6" label="Button 3" size="1" type="byte" value="99" min="1" max="127" units="%">
+			<Help>The value when button3 is pressed. Values above 99 will be capped to 99 (maximum) used in association group 1</Help>
+		</Value>
+
+		<!-- Min automatic level -->
+		<Value genre="config" index="7" label="Min automatic level" size="1" type="byte" value="15" min="1" max="127" units="%">
+			<Help>The minimum value that can be send by the CO2 sensor when it is in automatic mode.</Help>
+		</Value>
+
+		<!-- Temperature high setpoint -->
+		<Value genre="config" index="8" label="Temperature high setpoint" size="2" type="short" value="0" min="1" max="32767" units="°C">
+			<Help>Temperature high set point: used in association group 2 or 3</Help>
+		</Value>
+
+		<!-- Temperature low setpoint -->
+		<Value genre="config" index="9" label="Temperature low setpoint" size="2" type="short" value="0" min="1" max="32767" units="°C">
+			<Help>Temperature low set point: used in association group 2 or 3</Help>
+		</Value>
+
+		<!-- Temperature delta setpoint -->
+		<Value genre="config" index="10" label="Temperature delta setpoint" size="2" type="short" value="2" min="1" max="32767" units="°C">
+			<Help>Temperature delta set point: used in association group 4</Help>
+		</Value>
+
+		<!-- RH high setpoint -->
+		<Value genre="config" index="11" label="RH high setpoint" size="2" type="short" value="0" min="1" max="32767" units="%">
+			<Help>RH high set point: used in association group 5 or 6</Help>
+		</Value>
+
+		<!-- RH low setpoint -->
+		<Value genre="config" index="12" label="RH low setpoint" size="2" type="short" value="0" min="1" max="32767" units="%">
+			<Help>RH low set point: used in group5 or 6</Help>
+		</Value>
+
+		<!-- RH delta setpoint -->
+		<Value genre="config" index="13" label="RH delta setpoint" size="2" type="short" value="0" min="1" max="32767" units="%">
+			<Help>RH delta set point: used in group7</Help>
+		</Value>
+
+		<!-- CO2 high setpoint -->
+		<Value genre="config" index="14" label="CO2 high setpoint" size="2" type="short" value="0" min="1" max="32767" units="PPM">
+			<Help>CO2 high set point: not available in RH sensor</Help>
+		</Value>
+
+		<!-- CO2 low setpoint -->
+		<Value genre="config" index="15" label="CO2 low setpoint" size="2" type="short" value="0" min="1" max="32767" units="PPM">
+			<Help>CO2 low set point: not available in RH sensor</Help>
+		</Value>
+
+		<!-- CO2 delta setpoint -->
+		<Value genre="config" index="16" label="CO2 delta setpoint" size="2" type="short" value="500" min="1" max="32767" units="PPM">
+			<Help>	CO2 delta set point: not available in RH sensor</Help>
+		</Value>
+
+	</CommandClass>
+
+</Product>
diff --git a/config/ecodim/0.7.xml b/config/ecodim/0.7.xml
new file mode 100644
index 0000000000..5fee8ee94c
--- /dev/null
+++ b/config/ecodim/0.7.xml
@@ -0,0 +1,99 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">ECO-DIM.07 Z-Wave LED dimmer</MetaDataItem>
+    <MetaDataItem name="Description">ECO-DIM.07 Z-Wave is a push/rotary dimmer for LED lights.
+The dimmer has a range of 0-200W LED, and is able to dim 230V halogen and incandescent bulds, dimable LED-drivers and electronic transfomers.
+The minimum and maximum light level of the dimmer can be adjusted via a potentiometer. It is protected against overload and interference signals.
+Installation can be done via 2 wires, there is no need for a neutral wire!
+It is suitable for most popular smarthome systems, and the frame systems of the most popular brands can be used: Busch-Jaeger, Merten by Schneider, Berker by Hager, Niko, Gira, Jung and Peha.
+The dimmer is compatible with 95% of all dimmable LED lights.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0431:0001:0202</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.ecodim.nl/eco-dim07-z-wave-druk-draai-led-dimmer-fase-afsnij.html</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.ecodim.nl/service/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ecodim/0.7.jpg</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3796/Z-Wave%20Dimmer%20Controller%20V1.4%20(1).pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Double press the reset button on the device then initiate inclusion on your z-wave controller.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Press the reset button three times on the device then initiate exclusion on your z-wave controller.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Push reset button for 5 seconds.</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0202">https://products.z-wavealliance.org/products/3796/</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0202">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0202">ECO-DIM.07 Z-Wave</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Lukas Söder - lukas.l.soder@gmail.com" date="2020-07-02" revision="1">Information from manufacturer website and manual</Entry>
+      <Entry author="Lukas Söder - lukas.l.soder@gmail.com" date="2020-07-24" revision="2">Change ProductManual link format</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+    <!-- Here is a Byte/Int/Short Value Sample -->
+    <Value genre="config" index="1" label="State after power restore" max="2" min="0" type="byte" units="" value="0">
+      <Help>
+        State After Power Restored: The state the switch should return to once power is restored after power failure.
+        Default value: 0
+        0 - Off.
+        1 - On.
+        2 - Returns to level before Power Outage
+      </Help>
+    </Value>
+    <Value genre="config" index="2" label="Notification when Load status change" type="bool" value="1">
+      <Help>
+        Notification when Load status change: The Dimmer will send notification to associated device (Group Lifeline) when the status of Dimmer load is changed.
+        Default value: 1
+        0 - The function is disabled.
+        1 - Send Switch Multilevel Report.
+      </Help>
+    </Value>
+    <Value genre="config" index="3" label="Dimming speed" max="100" min="0" type="byte" units="seconds" value="5">
+      <Help>
+        Default dimming speed,unit is second. Valid values: 0-100.
+        Default value: 5
+        0 - Instanly.
+        1 - Fast.
+        ...
+        100 - Slow.
+      </Help>
+    </Value>
+    <!-- 4 got lost along the way? Doesn't exist in manual. -->
+    <Value genre="config" index="5" label="Enable or Disable external switch to pair network"  type="bool" value="0">
+      <Help>
+        Enable or Disable external switch to pair network.
+        Default value: 0
+        0 - Disable.
+        1 - Enable.
+      </Help>
+    </Value>
+    <Value genre="config" index="6" label="Dimming algorithm"  type="bool" value="0">
+      <Help>
+        Setting dimming way.
+        Default value: 0
+        0 - Linear dimming.
+        1 - Logarithmic dimming.
+      </Help>
+    </Value>
+    <Value genre="config" index="7" label="Default brightness" max="100" min="0" type="byte" units="" value="0">
+      <Help>
+        Setting default brightness when turn on the dimmer from off status.
+        Setting of 0 means that the dimmer will use parameter 1.
+        Default value: 0
+        Valid values: 0-99
+      </Help>
+    </Value>
+    <Value genre="config" index="8" label="Turn off delay" max="60" min="0" type="byte" units="seconds" value="0">
+      <Help>
+        Setting delay time when turn off, unit is second.
+        Default value: 0
+        Valid values: 0-60
+      </Help>
+    </Value>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Basic Set" max_associations="5"/>
+      <Group index="3" label="Switch Multilevel" max_associations="5"/>
+      <Group index="4" label="External Button" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/ecolink/doorwindow.xml b/config/ecolink/doorwindow.xml
index 3b3bc44a5c..7194b4978f 100644
--- a/config/ecolink/doorwindow.xml
+++ b/config/ecolink/doorwindow.xml
@@ -1,7 +1,7 @@
 <!--
 Ecolink Door Window Sensor (DWZWAVE2.5-ECO)
 http://products.z-wavealliance.org/products/1498
---><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="8" 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>
@@ -21,6 +21,7 @@ Includes white and brown cases</MetaDataItem>
       <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>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2927/xml</Entry>
+      <Entry author="Jean-François Auger - nechry@gmail.com" date="03 Jan 2021" revision="8">Add parameter 1 and 2</Entry>
     </ChangeLog>
     <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/2927/EU Z-wave Door Window Sensor H114101 ZWAVE_Ver03.pdf</MetaDataItem>
     <MetaDataItem name="WakeupDescription">The sensor will wake up every so often and when the case is closed to send a Wake-Up Notification to allow the life line master node controller that the sensor is now available for any queued messages that the controller may have for the sensor. The time between Wake-Up Notifications can be configured with the Wake-Up Notification command class to be between 1 hour and 1 week with interval steps of 200 seconds. </MetaDataItem>
@@ -48,6 +49,24 @@ STEP THREE    Test the sensor.  Place the magnet next to the sensor to represent
       <SetAsReport>true</SetAsReport>
     </Compatibility>
   </CommandClass>
+  <!-- Configuration Parameters -->
+<CommandClass id="112">
+  <Value type="list" index="1" genre="config" label="Basic Set Report when sensor is restored" units="" max="1" min="0" size="1" value="0">
+    <Help>
+	Configures the sensor to send or not send Basic Sets to nodes IDs in Association group 2 when the sensor is in a restored state (i.e. Door/Window Closed).  
+	By default the sensor does NOT send Basic Set commands.
+    </Help>
+    <Item label="Disable" value="0"/>
+    <Item label="Enable" value="255"/>
+  </Value>
+  <Value type="list" index="2" genre="config" label="Sensor Binary / Notification Reports" units="" max="1" min="0" size="1" value="0">
+    <Help>
+	Configures the sensor to either send Sensor Binary Report and Notification Reports or only Notification Reports when the sensor is faulted and restored.  
+    </Help>
+    <Item label="Enable" value="0"/>
+    <Item label="Disable" value="255"/>
+  </Value>
+</CommandClass>
   <!-- Refresh Battery Level on wakeup-->
   <CommandClass id="128">
     <Compatibility>
diff --git a/config/econet/ezw1204.xml b/config/econet/ezw1204.xml
new file mode 100644
index 0000000000..f067ef1752
--- /dev/null
+++ b/config/econet/ezw1204.xml
@@ -0,0 +1,37 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">EcoNet Z-Wave Plus Water Leak Sensor</MetaDataItem>
+    <MetaDataItem name="Description">Damage from water leaks can be both devastating and costly, leading to both unnecessary expenses and stress. Protect your home from water damage with EcoNet’s EZW1204 Z-Wave leak sensor. This sleek and compact leak sensor can be placed below dishwashers, in laundry rooms, beside hot water tanks, on a wall close a sump pump and more. It comes with an optional snap-in wall mount piece.
+Z-Wave Plus technology allows this sensor to communicate with any Z-Wave enabled network and controller so notifications can be sent to your smartphone or other enabled smart devices. Its compatible with most popular Smart Home systems including Samsung’s SmartThings, Wink, Vera and Homeseer. It has a wireless range of 30 meters in a clear line of sight.
+</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/015D:C41C:2003</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.econetshop.com/products.html</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.econetshop.com/support</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/econet/ezw1204.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2748/EZW1204-Manual-Guide%C2%A0171220.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Open the shell, wake up immediately</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Press the inclusion switch 3 or more times rapidly (within 0.5s).  It is recommended to keep the EZW1204 within 1M/3ft of the controller.
+(Set controller to inclusion mode first)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Press the inclusion switch 3 or more times rapidly (within 0.5s).  It is recommended to keep the EZW1204 within 1M/3ft of the controller.
+(Set controller to exclusion mode first)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down the inclusion switch for 5 or more seconds.
+Note: this should only be used in the event your network's primary controller is missing or otherwise inoperable</MetaDataItem>
+    <MetaDataItem id="c41c" name="ZWProductPage" type="2003">https://products.z-wavealliance.org/products/2748/</MetaDataItem>
+    <MetaDataItem id="c41c" name="FrequencyName" type="2003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="c41c" name="Identifier" type="2003">EZW1204</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Keith Laidlaw - laidlaw1546@gmail.com" date="16 Sep 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2748/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Water leak send basic Set" max_associations="5"/>
+      <Group index="3" label="Cover plate open send basic Set" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/enerwave/zwnrsm2plus.xml b/config/enerwave/zwnrsm2plus.xml
index e519f27a93..b6774b81ea 100644
--- a/config/enerwave/zwnrsm2plus.xml
+++ b/config/enerwave/zwnrsm2plus.xml
@@ -1,20 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--    
-        Enerwave ZWN-RSM2 Smart Dual Relay Switch Module 
-        Enerwave ZWN-RSM2-PLUS Smart Dual Relay Switch Module 
-
-        Note:  the two devices share the same device ID but have different configuration parameters.
-
-        Z-Wave Alliance Product Database info: 
-        https://products.z-wavealliance.org/products/2242
--->
-<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">
-                        <Help>ZWN-RSM2 and ZWN-RSM2-PLUS can send unsolicited status reports to the primary controller (Node ID 0x1) when the switch is toggled if the controller is designed as a gateway.  If your controller is not a gateway or does not need the status reported or you think it could confuse your Z-Wave network, you can use Command_Class_Configuration to disable this function.  By default this function is disabled. ZWM-RSM2 disabled=0, enabled=255.  ZWN-RSM2-PLUS disabled=0, enabled=1</Help>
-                </Value>
-        </CommandClass>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">ZWN-RSM2-PLUS Smart Dual Relay Switch Module</MetaDataItem>
+    <MetaDataItem name="Description">ZWN-RSM2-Plus Transform any home into a connected home with the Enerwave Z-Wave Plus Smart Dual Relay Wireless Lighting Control Module. 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.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/011A:0606:0111</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://enerwaveautomation.com/products/zwnrsm2/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://enerwaveautomation.com/products/zwnrsm2/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/enerwave/zwnrsm2plus.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=%26filename=MarketCertificationFiles/2242/ZWN-RSM2%202017-2-28.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Once program button is pressed and hold for 10 second, the device will send a device reset locally notification to controller. Then clear all of information for the network, and restore factory defaults, and reset the module. Use this procedure only in the event that the network primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">When the controller is in remove mode,Press and release the program button of ZWN-RSM2 module, or Flick 3 times of the connected switch with Aux1 line (or Aux2 line) in 1.5 second. Then the controller will remove the module from current Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">When the controller is in add mode,Press and release the program button of ZWN-RSM2 module,or Flick 3 times of the connected switch with Aux1 line(or Aux 2 line) in 1.5 second. Then the controller will add the module into current Z-Wave network.</MetaDataItem>
+    <MetaDataItem id="0606" name="FrequencyName" type="0111">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="2">Original file was placeholder - had not revision entry</Entry>
+      <Entry author="Steve28" date="03 Jul 2020" revision="2">Wholesale replacement of placeholder file. Added information from mfg site</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value type="short" genre="config" index="3" label="Unsolicited Report Configuration" units="" min="0" max="255" value="0">
+      <Help>ZWN-RSM2-PLUS can send unsolicited status reports to the primary controller (Node ID 0x1) when the switch is toggled if the controller is designed as a gateway.  If your controller is not a gateway or does not need the status reported or you think it could confuse your Z-Wave network, you can use Command_Class_Configuration to disable this function.  By default this function is disabled. ZWM-RSM2 disabled=0, enabled=255.  ZWN-RSM2-PLUS disabled=0, enabled=1</Help>
+    </Value>
+  </CommandClass>
 	<CommandClass id="133">
 		<Associations num_groups="3">
 			<Group index="1" max_associations="1" label="Lifeline" />
diff --git a/config/eurotronic/eur_airquality.xml b/config/eurotronic/eur_airquality.xml
new file mode 100644
index 0000000000..9dd08f040b
--- /dev/null
+++ b/config/eurotronic/eur_airquality.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Eurotronic Z-Wave Plus air quality sensor
+Product website: https://eurotronic.org/produkte/sensoren/luftguetesensor/
+-->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+   <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0148:0001:0005</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/eurotronic/eur_airquality.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Start Inclusion mode of your primary Z-Wave Controller.
+Press the network button three times within 1 second.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://eurotronic.org/wp-content/uploads/2020/02/LGS-Z-Wave-Plus_BDA_web_EN-1.pdf</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Start Exclusion mode of your primary Z-Wave Controller.
+Press the network button three times within 1 second.</MetaDataItem>
+    <MetaDataItem name="Name">Air Quality Sensor</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+
+Press and hold the network button for at least 10 seconds. The Air Quality Sensor Z-Wave Plus will indicate
+the reset blinking pattern once the reset is completed.
+</MetaDataItem>
+    <MetaDataItem name="Description">This Z-Wave sensor provides comprehensive information on indoor
+air quality.
+• Multicolor LED for signalling ventilation recommendations
+• Returns the following values:
+  - VOC value (volatile organic compounds) in ppm
+  - CO2 value (as CO2 equivalent) in ppm
+  - Temperature (°C)
+  - Humidity (%)
+  - Dew point (°C)
+• Supports Z-Wave Plus S2 security (encryption)
+• Z-Wave repeater function
+• Operation with plug-in power supply unit
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="gpgmailencrypt@gmx.de" date="13 Mar 2020" revision="2">Initial Metadata Import from https://eurotronic.org/wp-content/uploads/2020/02/LGS-Z-Wave-Plus_BDA_web_EN-1.pdf/</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0001" name="FrequencyName" type="0005">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0005">https://eurotronic.org/produkte/sensoren/luftguetesensor/</MetaDataItem>
+  </MetaData>
+
+  <!-- Configuration Parameters -->
+    <CommandClass id="112">
+        <Instance index="1"/>
+        <Value type="byte" genre="config" instance="1" index="1" label="Temperature on Change Reporting" min="0" max="50" value="5" size="1">
+            <Help>
+                0: No on change reporting (only time-based reports)
+                1-50: report if temperature changed by delta = 0,1°C - 5,0°C 
+                Default: 5
+            </Help>
+        </Value>
+
+        <Value type="byte" genre="config" instance="1" index="2" label="Humidity on Change Reporting" min="0" max="10" value="5" size="1">
+            <Help>
+                0: No on change reporting (only time-based reports)
+                1-10: report if humidity changed by delta = 1% ...10%
+                Default: 5
+            </Help>
+        </Value>
+        <Value type="list" genre="config" instance="1" index="3" label="Temperature Scale" min="0" max="1" value="0" size="1">
+            <Help>
+                Temperature in Degrees Celcius
+                Temperature in Degrees Fahrenheit
+                Default: Temperature in Degrees Celcius
+            </Help>
+            <Item label="Celsius" value="0" />
+            <Item label="Fahrenheit" value="1" />
+        </Value>
+        <Value type="list" genre="config" instance="1" index="4" label="Temperature Resolution" min="0" max="2" value="1" size="1">
+            <Help>
+                No resolution (example 22°C)
+                1/10 resolution (example 22.3°C)
+                1/100 resolution (example 22.35°C)
+                Default: No resolution (example 22°C)
+            </Help>
+             <Item label="No resolution (example 22°C)" value="0" />
+             <Item label="1/10 resolution (example 22.3°C)" value="1" />
+             <Item label="1/100 resolution (example 22.35°C)" value="2" />
+       </Value>
+        <Value type="list" genre="config" instance="1" index="5" label="Humidity Resolution" min="0" max="2" value="0" size="1">
+            <Help>
+                No resolution (example 33%)
+                1/10 resolution (example 33.4%)
+                1/100 resolution (example 33.45%
+                Default: No resolution (example 33%
+            </Help>
+             <Item label="No resolution (example 33%)" value="0" />
+             <Item label="1/10 resolution (example 33.4%)" value="1" />
+             <Item label="1/100 resolution (example 33.45%)" value="2" />
+        </Value>
+        <Value type="byte" genre="config" instance="1" index="6" label="VOC on Change Reporting" min="0" max="10" value="5" size="1">
+            <Help>
+                0: No on change reporting (only time-based reports)
+                1-10: report if VOC reading changed by 100ppb - 1000ppb 
+                Default: 5
+            </Help>
+        </Value>
+        <Value type="byte" genre="config" instance="1" index="7" label="CO2eq on Change Reporting" min="0" max="10" value="5" size="1">
+            <Help>
+                0: No on change reporting (only time-based reports)
+                1-10: report if CO2eq reading changed by 100ppm - 1000ppm 
+                Default: 5
+            </Help>
+        </Value>
+        <Value type="list" genre="config" instance="1" index="8" label="Air quality indication via LED" min="0" max="1" value="1" size="1">
+            <Help>
+                0: No air quality indication via LEDs
+                1: Indicate measuered air quality via LEDs
+                Default: 1
+            </Help>
+            <Item label="No air quality indication via LEDs" value="0" />
+            <Item label="Indicate measuered air quality via LEDs" 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="5" label="Temperature" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/eurotronic/eur_spiritz.xml b/config/eurotronic/eur_spiritz.xml
index 8c0d664015..aa7237be6a 100644
--- a/config/eurotronic/eur_spiritz.xml
+++ b/config/eurotronic/eur_spiritz.xml
@@ -2,7 +2,7 @@
 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 Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0148:0001:0003</MetaDataItem>
     <MetaDataItem name="ProductPic">images/eurotronic/eur_spiritz.png</MetaDataItem>
@@ -39,6 +39,7 @@ To perform the factory reset press boost button.
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2543/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2650/xml</Entry>
+      <Entry author="Jasper Plantinga - jplantinga@gmail.com" date="10 Feb 2021" revision="6">Updated changed default behavior backlight</Entry>
     </ChangeLog>
     <MetaDataItem id="0003" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2650/</MetaDataItem>
     <MetaDataItem id="0003" name="Identifier" type="0003">4250848804063</MetaDataItem>
@@ -101,9 +102,9 @@ To perform the factory reset press boost button.
                 Default: 0 (LCD always on)
             </Help>
     </Value>
-    <Value genre="config" index="3" instance="1" label="Backlight" max="1" min="0" size="1" type="list" units="" value="1">
+    <Value genre="config" index="3" instance="1" label="Backlight" max="1" min="0" size="1" type="list" units="" value="0">
       <Help>
-                Default: Backlight enabled
+                Default: Backlight disabled
             </Help>
       <Item label="Backlight disabled" value="0"/>
       <Item label="Backlight enabled" value="1"/>
diff --git a/config/eurotronic/eur_temphumin.xml b/config/eurotronic/eur_temphumin.xml
new file mode 100644
index 0000000000..c7c33ee350
--- /dev/null
+++ b/config/eurotronic/eur_temphumin.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Eurotronic Z-Wave Plus temperature and humitity sensor
+Product website: https://eurotronic.org/produkte/sensoren/temperatur-feuchte-sensor/
+-->
+<Product  Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0148:0001:0004</MetaDataItem>
+    <MetaDataItem name="Name">Temperature and Humidity Sensor</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/eurotronic/eur_temphumid.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Start Inclusion mode of your primary Z-Wave Controller.
+Press the network button three times within 1 second.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+
+Press and hold the network button for at least 10 seconds. The temperature humidity sensor will indicate
+the reset blinking pattern once the reset is completed.
+    </MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0004">https://eurotronic.org/produkte/sensoren/temperatur-feuchte-sensor/</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://eurotronic.org/</MetaDataItem>
+    <MetaDataItem name="Description">
+ <!--
+TODO: English manual not yet available on website of eurotronics
+-->
+This Z-Wave sensor provides comprehensive information on indoor
+temperature and humidity. 
+• Returns the following values:
+  - Temperature (°C)
+  - Humidity (%)
+  - Dew point (°C)
+• Supports Z-Wave Plus S2 security (encryption)
+   </MetaDataItem>
+
+    <ChangeLog>
+      <Entry author="gpgmailencrypt@gmx.de" date="13 Mar 2020" revision="2">Initial Metadata Import </Entry>
+    </ChangeLog>
+  </MetaData>
+
+    <!-- Configuration Parameters -->
+    <CommandClass id="112">
+        <Instance index="1"/>
+        <Value type="byte" genre="config" instance="1" index="1" label="Temperature on Change Reporting" min="0" max="50" value="5" size="1">
+            <Help>
+                0: Don't report temperature changes
+                1-50: Report temperature changes from 0,1°C - 5,0°C 
+                Default: 5
+            </Help>
+        </Value>
+
+        <Value type="byte" genre="config" instance="1" index="2" label="Humidity on Change Reporting" min="0" max="10" value="5" size="1">
+            <Help>
+                0: Don't report humidity changes
+                1-10: report humidity changes in 1% steps
+                Default: 5
+            </Help>
+        </Value>
+        <Value type="list" genre="config" instance="1" index="3" label="Temperature Scale" min="0" max="1" value="0" size="1">
+            <Help>
+                0: Temperature in Degrees Celcius
+                1: Temperature in Degrees Fahrenheit
+                Default: 0
+            </Help>
+            <Item label="Celsius" value="0" />
+            <Item label="Fahrenheit" value="1" />
+        </Value>
+        <Value type="byte" genre="config" instance="1" index="4" label="Temperature Resolution" min="0" max="2" value="1" size="1">
+            <Help>
+                0: no decimal places
+                1: one decimal place
+                2: two decimal places
+                Default: 1
+            </Help>
+        </Value>
+        <Value type="byte" genre="config" instance="1" index="5" label="Humidity Resolution" min="0" max="2" value="0" size="1">
+            <Help>
+                0: no decimal places
+                1: one decimal place
+                2: two decimal places
+                Default: 0
+            </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="5" label="Temperature" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/evolve/t-100.xml b/config/evolve/t-100.xml
new file mode 100644
index 0000000000..e7dbc2aeea
--- /dev/null
+++ b/config/evolve/t-100.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+	<MetaData>
+		<MetaDataItem name="Name">Evolve Guest Controls T-100 Thermostat</MetaDataItem>
+		<MetaDataItem name="Description">The T-100H is a Z-Wave wireless digital thermostat, designed to control the majority of HVAC systems. The T-100H contains a robust thermostat interface and is designed for use with communicating systems where remote monitoring and/or remote control are desired.</MetaDataItem>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0113:5434:4556</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/evolve/t-100.png</MetaDataItem>
+		<MetaDataItem id="5434" name="ZWProductPage" type="4556">https://products.z-wavealliance.org/products/81</MetaDataItem>
+		<ChangeLog>
+		  <Entry author="Eric Yeargan - eric@yeargan.org" date="22 December 2020" revision="1">Initial config with 'Heating 1' setpoint missing from discovered config</Entry>
+		</ChangeLog>
+	</MetaData>
+	<CommandClass id="32">
+		<Compatibility>
+			<Mapping>64</Mapping>
+		</Compatibility>
+		<Instance index="1" />
+	</CommandClass>
+	<CommandClass id="43">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="int" genre="user" instance="1" index="0" label="Scene" units="" read_only="true" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0">
+			<Help></Help>
+		</Value>
+		<Value type="int" genre="user" instance="1" index="1" label="Duration" units="" read_only="true" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0">
+			<Help></Help>
+		</Value>
+	</CommandClass>
+	<CommandClass id="49">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="decimal" genre="user" instance="1" index="1" label="Air Temperature" units="F" read_only="true" write_only="false" verify_changes="false" min="0" max="0" value="72">
+			<Help>Air Temperature Sensor Value</Help>
+		</Value>
+	</CommandClass>
+	<CommandClass id="64">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" verify_changes="false" min="0" max="0" vindex="1" size="1">
+			<Help>Set the Thermostat Mode</Help>
+			<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="66">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="string" genre="user" instance="1" index="0" label="Operating State" units="" read_only="true" write_only="false" verify_changes="false" min="0" max="0" value="Idle">
+			<Help>Set the Thermostat Operating State</Help>
+		</Value>
+	</CommandClass>
+	<CommandClass id="67">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="F" read_only="false" write_only="false" verify_changes="false" min="0" max="0" value="72">
+			<Help>Set the Thermostat Setpoint Heating 1</Help>
+		</Value>
+		<Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="F" read_only="false" write_only="false" verify_changes="false" min="0" max="0" value="77">
+			<Help>Set the Thermostat Setpoint Cooling 1</Help>
+		</Value>
+		<Value type="decimal" genre="user" instance="1" index="3" label="Unused 3" units="C" read_only="false" write_only="false" verify_changes="false" min="0" max="0" value="0.0">
+			<Help>Set the Thermostat Setpoint Unused 3</Help>
+		</Value>
+		<Value type="decimal" genre="user" instance="1" index="12" label="Cooling Econ" units="F" read_only="false" write_only="false" verify_changes="false" min="0" max="0" value="80">
+			<Help>Set the Thermostat Setpoint Cooling Econ</Help>
+		</Value>
+		<Value type="decimal" genre="user" instance="1" index="13" label="Away Heating" units="C" read_only="false" write_only="false" verify_changes="false" min="0" max="0" value="0.0">
+			<Help>Set the Thermostat Setpoint Away Heating</Help>
+		</Value>
+	</CommandClass>
+	<CommandClass id="68">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="list" genre="user" instance="1" index="0" label="Fan Mode" units="" read_only="false" write_only="false" verify_changes="false" min="0" max="0" vindex="0" size="1">
+			<Help>Set the Fan Mode</Help>
+			<Item label="Auto Low" value="0" />
+			<Item label="On Low" value="1" />
+		</Value>
+		<SupportedModes>
+			<Mode index="0" label="Auto Low" />
+			<Mode index="1" label="On Low" />
+		</SupportedModes>
+	</CommandClass>
+	<CommandClass id="69">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="string" genre="user" instance="1" index="0" label="Fan State" units="" read_only="true" write_only="false" verify_changes="false" min="0" max="0" value="Idle">
+			<Help>Set the Fan State</Help>
+		</Value>
+	</CommandClass>
+	<CommandClass id="112">
+		<Compatibility />
+		<Instance index="1" />
+	</CommandClass>
+	<CommandClass id="114">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="int" genre="system" instance="1" index="0" label="Loaded Config Revision" units="" read_only="true" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0">
+			<Help>Revision of the Config file currently loaded</Help>
+		</Value>
+		<Value type="int" genre="system" instance="1" index="1" label="Config File Revision" units="" read_only="true" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0">
+			<Help>Revision of the Config file on the File System</Help>
+		</Value>
+		<Value type="int" genre="system" instance="1" index="2" label="Latest Available Config File Revision" units="" read_only="true" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0">
+			<Help>Latest Revision of the Config file available for download</Help>
+		</Value>
+	</CommandClass>
+	<CommandClass id="115">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" min="0" max="0" vindex="0" size="1">
+			<Help>Output RF PowerLevel</Help>
+			<Item label="Normal" value="0" />
+			<Item label="-1dB" value="1" />
+			<Item label="-2dB" value="2" />
+			<Item label="-3dB" value="3" />
+			<Item label="-4dB" value="4" />
+			<Item label="-5dB" value="5" />
+			<Item label="-6dB" value="6" />
+			<Item label="-7dB" value="7" />
+			<Item label="-8dB" value="8" />
+			<Item label="-9dB" value="9" />
+		</Value>
+		<Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" min="0" max="255" value="0">
+			<Help>Timeout till the PowerLevel is reset to Normal</Help>
+		</Value>
+		<Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" min="0" max="0">
+			<Help>Apply the Output PowerLevel and Timeout Values</Help>
+		</Value>
+		<Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" min="0" max="255" value="0">
+			<Help>Node to Perform a test against</Help>
+		</Value>
+		<Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" min="0" max="0" vindex="0" size="1">
+			<Help>PowerLevel to use for the Test</Help>
+			<Item label="Normal" value="0" />
+			<Item label="-1dB" value="1" />
+			<Item label="-2dB" value="2" />
+			<Item label="-3dB" value="3" />
+			<Item label="-4dB" value="4" />
+			<Item label="-5dB" value="5" />
+			<Item label="-6dB" value="6" />
+			<Item label="-7dB" value="7" />
+			<Item label="-8dB" value="8" />
+			<Item label="-9dB" value="9" />
+		</Value>
+		<Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" min="-32768" max="32767" value="0">
+			<Help>How Many Messages to send to the Node for the Test</Help>
+		</Value>
+		<Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" min="0" max="0">
+			<Help>Perform a PowerLevel Test against the a Node</Help>
+		</Value>
+		<Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" min="0" max="0">
+			<Help>Get the results of the latest PowerLevel Test against a Node</Help>
+		</Value>
+		<Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" min="0" max="0" vindex="0" size="1">
+			<Help>The Current Status of the last PowerNode Test Executed</Help>
+			<Item label="Failed" value="0" />
+			<Item label="Success" value="1" />
+			<Item label="In Progress" value="2" />
+		</Value>
+		<Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" min="-32768" max="32767" value="0">
+			<Help>Number of Messages successfully Acked by the Target Node</Help>
+		</Value>
+	</CommandClass>
+	<CommandClass id="129">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="list" genre="user" instance="1" index="0" label="Day" units="" read_only="false" write_only="false" verify_changes="false" min="0" max="0" vindex="0" size="1">
+			<Help>Day of Week</Help>
+			<Item label="Monday" value="1" />
+			<Item label="Tuesday" value="2" />
+			<Item label="Wednesday" value="3" />
+			<Item label="Thursday" value="4" />
+			<Item label="Friday" value="5" />
+			<Item label="Saturday" value="6" />
+			<Item label="Sunday" value="7" />
+		</Value>
+		<Value type="byte" genre="user" instance="1" index="1" label="Hour" units="" read_only="false" write_only="false" verify_changes="false" min="0" max="255" value="7">
+			<Help>Hour</Help>
+		</Value>
+		<Value type="byte" genre="user" instance="1" index="2" label="Minute" units="" read_only="false" write_only="false" verify_changes="false" min="0" max="255" value="37">
+			<Help>Minute</Help>
+		</Value>
+	</CommandClass>
+	<CommandClass id="133">
+		<Compatibility />
+		<Instance index="1" />
+		<Associations num_groups="3">
+			<Group index="1" max_associations="5" label="Group 1"/>
+			<Group index="2" max_associations="5" label="Group 2"/>
+			<Group index="3" max_associations="5" label="Group 3"/>
+		</Associations>
+	</CommandClass>
+	<CommandClass id="134">
+		<Compatibility />
+		<Instance index="1" />
+		<Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" min="0" max="0" value="6">
+			<Help>Z-Wave Library Version</Help>
+		</Value>
+		<Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" min="0" max="0" value="3.40">
+			<Help>Z-Wave Protocol Version</Help>
+		</Value>
+		<Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" min="0" max="0" value="2.39">
+			<Help>Application Version</Help>
+		</Value>
+	</CommandClass>
+</Product>
diff --git a/config/fakro/arzsolar.xml b/config/fakro/arzsolar.xml
new file mode 100644
index 0000000000..b047c4eb4c
--- /dev/null
+++ b/config/fakro/arzsolar.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/0085:0012:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fakro/arz.png</MetaDataItem>
+    <MetaDataItem id="0012" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/677/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.fakro.com/htmlen/379.php</MetaDataItem>
+    <MetaDataItem name="Description">The ARZ SOLAR 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 SOLAR Roof Window Roller Shutter</MetaDataItem>
+    <MetaDataItem id="0012" name="Identifier" type="0003">ARZ</MetaDataItem>
+    <MetaDataItem id="0012" name="FrequencyName" type="0003">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>
+</Product>
diff --git a/config/fakro/zrh12.xml b/config/fakro/zrh12.xml
new file mode 100644
index 0000000000..7f12113df4
--- /dev/null
+++ b/config/fakro/zrh12.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/0085:0012:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fakro/arz.png</MetaDataItem>
+    <MetaDataItem id="0004" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/677/</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.fakro.com/htmlen/379.php</MetaDataItem>
+    <MetaDataItem name="Description">Fakro ZRH12 Portable Remote Controller</MetaDataItem>
+    <MetaDataItem name="Name">Fakro ZRH12 Portable Remote Controller</MetaDataItem>
+    <MetaDataItem id="0004" name="Identifier" type="0001">ZRH12</MetaDataItem>
+    <MetaDataItem id="0004" name="FrequencyName" type="0001">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Michalux" date="11 May 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/677/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/config/fibaro/fgdw2.xml b/config/fibaro/fgdw2.xml
index 3156ecbc66..2336063e7b 100644
--- a/config/fibaro/fgdw2.xml
+++ b/config/fibaro/fgdw2.xml
@@ -1,13 +1,15 @@
-<!-- Fibaro: FGK101 Door Opening Sensor --><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+<!-- Fibaro: FGK101 Door Opening Sensor --><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0702</MetaDataItem>
     <MetaDataItem name="ProductPic">images/fibaro/fgdw2.png</MetaDataItem>
     <MetaDataItem id="1000" name="ZWProductPage" type="0702">https://products.z-wavealliance.org/products/2181/</MetaDataItem>
+	<MetaDataItem id="2000" name="ZWProductPage" type="0702">https://products.z-wavealliance.org/products/2279/</MetaDataItem>
     <MetaDataItem name="Name">FIBARO Door/Window Sensor 2</MetaDataItem>
     <MetaDataItem name="Description">FIBARO Door/Window Sensor 2 is a wireless, battery powered, Z-Wave Plus compatible magnetic contact sensor. Changing the device’s status will automatically send signal to the Z-Wave controller and associated devices. In addition the FIBARO Door/Window Sensor 2 is equipped with a built-in temperature sensor.
 Sensor can be used to trigger scenes and wherever there is a need for information about opening or closing of doors, windows, garage doors, etc. Opening is detected by separating the sensor’s body and the magnet.
 </MetaDataItem>
     <MetaDataItem id="1000" name="Identifier" type="0702">FGDW-002</MetaDataItem>
+	<MetaDataItem id="2000" name="Identifier" type="0702">FGDW-002-1</MetaDataItem>
     <MetaDataItem name="InclusionDescription">1)	Place the Door/Window Sensor 2 within the direct range of your Z-Wave controller.
 2)	Set the main controller in (security/non-security) add mode (see the controller’s manual).
 3)	Click the Button at least six times.
@@ -37,9 +39,11 @@ Sensor can be used to trigger scenes and wherever there is a need for informatio
 
 *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="1000" name="FrequencyName" type="0702">CEPT (Europe)</MetaDataItem>
+	<MetaDataItem id="2000" name="FrequencyName" type="0702">U.S. / Canada / Mexico</MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2181/xml</Entry>
-    </ChangeLog>
+      <Entry author="Justin Dybedahl - madj42@gmail.com" date="12 July 2020" revision="5">Add support for US Model.</Entry>
+	</ChangeLog>
   </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
diff --git a/config/fibaro/fgfs101.xml b/config/fibaro/fgfs101.xml
index bc8d21e2fc..d5585552a6 100644
--- a/config/fibaro/fgfs101.xml
+++ b/config/fibaro/fgfs101.xml
@@ -1,4 +1,55 @@
-<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010f:1001:0b00</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgfs101.png</MetaDataItem>
+    <MetaDataItem id="1002" name="ZWProductPage" type="0B00">https://products.z-wavealliance.org/products/994/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1) Open the cover by turning it counter-clockwise.
+2) Make sure the device is powered (either by a battery or a DC power supply).
+3) Press and hold the TMP button for 15-20 seconds until LED glows yellow (4th menu position).
+4) Release and click the TMP button to start the reset procedure.
+5) Successful reset will be confirmed with the LED indicator changing colour to red and an acoustic signal.
+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">http://www.fibaro.com/manuals/en/FGFS-101-Flood-Sensor/FGFS-101-Flood-Sensor-en-2.1-2.3.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 triple click on the TMP button (version 2.6 or lower) or single click on the TMP button (version 3.2 or higher)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1) Open the cover by turning it counter-clockwise.
+2) Make sure the device is powered (either by a battery or a DC power supply).
+3) Place the device within the direct range of your Z-Wave controller.
+4) Set the main controller in remove mode (see the controller’s manual).
+5) Quickly, triple click the TMP button located inside the casing.
+6) Wait for the removing process to end.
+7) Successful removing will be confirmed by the Z-Wave controller’s message.
+</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1) Open the cover by turning it counter-clockwise.
+2) Remove battery blocker.
+3) Place the device within the direct range of your Z-Wave controller.
+4) Set the main controller in (security/non-security) add mode (see the controller’s manual).
+5) Quickly, triple click the TMP button located inside the casing.
+6) Wait for the adding process to end.
+7) Successful adding will be confirmed by the Z-Wave controller’s message.
+8) Close the cover by turning it clockwise.
+9) 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). Flood alarm is sent to the 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.
+Fibaro Flood Sensor is designed to be placed on the floor or on a wall with a flood
+sensor probe extended by connected wire. The device has built in LED indicator
+and acoustic alarm. In addition, the sensor is equipped with a tilt sensor reporting
+tilt or movement to the main controller 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.</MetaDataItem>
+    <MetaDataItem id="1001" name="FrequencyName" type="0B00">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Flood Sensor</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Nouknouk - nouknouk@gmail.com" date="08 Dec 2020" revision="4">Initial Metadata</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
     <Value genre="config" index="1" instance="1" label="IN1 Alarm Cancellation Delay" max="3600" min="0" type="short" value="0">
@@ -40,11 +91,11 @@ Possible parameter settings:1 to 1000 [each 0.01oC] [0.01oC to 10.00oC].</Help>
       <Item label="Flood ACTIVE, tamper ACTIVE" value="3"/>
     </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. 
+      <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 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. 
+      <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 genre="config" index="61" instance="1" label="Low temperature alarm indicator colour." max="16777215" min="0" type="int" value="255">
diff --git a/config/fibaro/fgmszw5.xml b/config/fibaro/fgmszw5.xml
index 6453714b01..c3e01919f1 100644
--- a/config/fibaro/fgmszw5.xml
+++ b/config/fibaro/fgmszw5.xml
@@ -1,4 +1,4 @@
-<Product Revision="10" 
+<Product Revision="11" 
   xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1001:0801</MetaDataItem>
@@ -37,6 +37,7 @@ Use reset procedure only if the primary controller is missing or inoperable.</Me
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3336/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="9">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3379/xml</Entry>
       <Entry author="Peter Gebruers - peter.gebruers@gmail.com" date="11 Jun 2019" revision="10">Force Association Single Channel on Lifeline - https://github.com/OpenZWave/open-zwave/issues/1830</Entry>
+      <Entry author="Glenn Gillen - me@glenngillen.com" date="22 Jun 2020" revision="11">Updated Metadata Import from Z-Wave Allian Database - https://products.z-wavealliance.org/products/3513/xml</Entry>	 
     </ChangeLog>
     <MetaDataItem id="2001" name="ZWProductPage" type="0801">https://products.z-wavealliance.org/products/2763/</MetaDataItem>
     <MetaDataItem id="2001" name="FrequencyName" type="0801">U.S. / Canada / Mexico</MetaDataItem>
@@ -47,6 +48,10 @@ Use reset procedure only if the primary controller is missing or inoperable.</Me
     <MetaDataItem id="2002" name="ZWProductPage" type="0801">https://products.z-wavealliance.org/products/3379/</MetaDataItem>
     <MetaDataItem id="2002" name="FrequencyName" type="0801">U.S. / Canada / Mexico</MetaDataItem>
     <MetaDataItem id="2002" name="Identifier" type="0801">FGMS-001</MetaDataItem>
+    <MetaDataItem id="3002" name="ZWProductPage" type="0801">https://products.z-wavealliance.org/products/3513/</MetaDataItem>
+    <MetaDataItem id="3002" name="FrequencyName" type="0801">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="3002" name="Identifier" type="0801">FGMS-001</MetaDataItem>
+
   </MetaData>
   <!--
 	Fibaro Motion Sensor FGMS-001-ZW5
diff --git a/config/fibaro/fgrgbw442.xml b/config/fibaro/fgrgbw442.xml
new file mode 100644
index 0000000000..f049bd394f
--- /dev/null
+++ b/config/fibaro/fgrgbw442.xml
@@ -0,0 +1,313 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">RGBW Controller 2</MetaDataItem>
+    <MetaDataItem name="Description">FIBARO RGBW Controller 2 is a universal, Z-Wave Plus compatible RGB/RGBW controller.
+FIBARO RGBW Controller 2 uses PWM output signal, allowing it to control LED, RGB, RGBW strips, halogen lights and other resistive loads. It can also measure active power and energy consumed by the load. Controlled devices may be powered by 12 or 24V DC.
+Inputs support momentary/toggle switches and 0-10V analog sensors, like temperature sensors, humidity sensors, light sensors etc.
+
+Main features of FIBARO RGBW Controller:
+- Compatible with any certified Z-Wave or Z-Wave Plus controller.
+- Supports Z-Wave network Security Modes: S0 with AES-128 encryption and S2 Authenticated with PRNG-based encryption.
+- Works as a Z-Wave signal repeater.
+- Allows for controlling: » RGB/RGBW LED strip,
+- one-color LED strips,
+- halogen lights,
+- other compliant resistive loads.
+- Allows for connecting to inputs:
+- switches/buttons,
+- 0-10V analog sensors or potentiometers.
+- Active power and energy metering.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0902</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.fibaro.com/en/products/rgbw-controller/</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://manuals.fibaro.com/rgbw-2/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgrgbw442.png</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">The FIBARO RGBW Controller 2 is powered with mains voltage so it is always awake.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Power the device.
+2. Set the main controller in (Security/non-Security Mode) add mode (see the controller’s manual).
+3. Quickly, three times click the service button.
+4. If you are adding in Security S2 Authenticated, input the underlined part of the DSK (label on the box).
+5. LED will start blinking yellow, wait for the adding process to end.
+6. Adding result will be confirmed by the Z-Wave controller’s message and the LED:
+  - Green - successful (non-secure, S0, S2 Unauthenticated),
+  - Magenta - successful (Security S2 Authenticated),
+  - Red - not successful.
+</MetaDataItem>
+   <MetaDataItem name="ExclusionDescription">1. Power the device.
+2. Set the main controller into remove mode (see the controller’s manual).
+3. Quickly, three times click the service button.
+4. LED will start blinking yellow, wait for the removing process to end.
+5. Successful removing will be confirmed by the Z-Wave controller’s message and red LED colour.
+</MetaDataItem>
+   <MetaDataItem name="ResetDescription">1. Press and hold the service button to enter the menu.
+2. Release service button when the device glows yellow.
+3. Quickly click the service button to confirm.
+4. After few seconds the device will be restarted, which is signalled with the red colour.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="nouknouk" date="08 September 2020" revision="1">Initial version</Entry>
+    </ChangeLog>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0902">https://products.z-wavealliance.org/products/3589/</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0902">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="092">FGRGBW-442</MetaDataItem>
+    <MetaDataItem id="2000" name="ZWProductPage" type="0902">https://products.z-wavealliance.org/products/3656/</MetaDataItem>
+    <MetaDataItem id="2000" name="FrequencyName" type="0902">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="2000" name="Identifier" type="0902">FGRGBW-442</MetaDataItem>
+    <MetaDataItem id="3000" name="ZWProductPage" type="0902">https://products.z-wavealliance.org/products/3655/</MetaDataItem>
+    <MetaDataItem id="3000" name="FrequencyName" type="0902">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="3000" name="Identifier" type="0902">FGRGBW-442</MetaDataItem>
+    <MetaDataItem id="4000" name="ZWProductPage" type="0902">https://products.z-wavealliance.org/products/3654/</MetaDataItem>
+    <MetaDataItem id="4000" name="FrequencyName" type="0902">Russia</MetaDataItem>
+    <MetaDataItem id="4000" name="Identifier" type="0902">FGRGBW-442</MetaDataItem>
+  </MetaData>
+  <CommandClass id="32">
+    <Compatibility>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="51">
+    <Value genre="user" index="0" instance="1" label="Color" type="string" units="#RRGGBBWW" value="#00000000" verify_changes="false"/>
+    <Compatibility>
+      <ColorIndexBug>true</ColorIndexBug>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Remember device status before the power failure" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter determines how the device will react in the event of power supply failure (e.g. power outage or taking out from the electrical outlet). After the power supply is back on, the device can be restored to previous state or remain switched off. Default 0.</Help>
+      <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="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. Default 2 (momentary switch).</Help>
+      <Item label="Analog input without internal pull-up (Sensor Multilevel)" value="0"/>
+      <Item label="Analog input with internal pull-up (Sensor Multilevel)" value="1"/>
+      <Item label="Momentary switch (Central Scene)" value="2"/>
+      <Item label="Toggle switch: switch state on every input change (Central Scene)" value="3"/>
+      <Item label="Toggle switch: contact closed - ON, contact opened - OFF (Central Scene)" value="4"/>
+    </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. Default 2 (momentary switch).</Help>
+      <Item label="Analog input without internal pull-up (Sensor Multilevel)" value="0"/>
+      <Item label="Analog input with internal pull-up (Sensor Multilevel)" value="1"/>
+      <Item label="Momentary switch (Central Scene)" value="2"/>
+      <Item label="Toggle switch: switch state on every input change (Central Scene)" value="3"/>
+      <Item label="Toggle switch: contact closed - ON, contact opened - OFF (Central Scene)" value="4"/>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="Input 3 - operating mode" size="1" type="list" value="2">
+      <Help>This parameter allows to choose mode of 3rd input (IN3). Change it depending on connected device. Default 2 (momentary switch).</Help>
+      <Item label="Analog input without internal pull-up (Sensor Multilevel)" value="0"/>
+      <Item label="Analog input with internal pull-up (Sensor Multilevel)" value="1"/>
+      <Item label="Momentary switch (Central Scene)" value="2"/>
+      <Item label="Toggle switch: switch state on every input change (Central Scene)" value="3"/>
+      <Item label="Toggle switch: contact closed - ON, contact opened - OFF (Central Scene)" value="4"/>
+    </Value>
+    <Value genre="config" index="23" instance="1" label="Input 4 - operating mode" size="1" type="list" value="2">
+      <Help>This parameter allows to choose mode of 4th input (IN4). Change it depending on connected device. Default 2 (momentary switch).</Help>
+      <Item label="Analog input without internal pull-up (Sensor Multilevel)" value="0"/>
+      <Item label="Analog input with internal pull-up (Sensor Multilevel)" value="1"/>
+      <Item label="Momentary switch (Central Scene)" value="2"/>
+      <Item label="Toggle switch: switch state on every input change (Central Scene)" value="3"/>
+      <Item label="Toggle switch: contact closed - ON, contact opened - OFF (Central Scene)" value="4"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="Alarm configuration - 1st slot" size="4" type="int" value="0">
+      <Help>This parameter determines to which alarm frames and how the device should react.
+The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B [MSB] - notification Type.
+2B - notification Status.
+3B - Event/State Parameters.
+4B [LSB] action:
+    0x00 - no reaction
+    0x0X - turn off selected channel
+    0x1X - turn on selected channel
+    0x2X - blink selected channel
+    0x3Y - activate alarm sequence
+Default setting: [0x00, 0x00, 0x00, 0x00]</Help>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="Alarm configuration - 2nd slot" size="4" type="int" value="1358888960">
+      <Help>This parameter determines to which alarm frames and how the device should react.
+The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B [MSB] - notification Type.
+2B - notification Status.
+3B - Event/State Parameters.
+4B [LSB] action:
+    0x00 - no reaction
+    0x0X - turn off selected channel
+    0x1X - turn on selected channel
+    0x2X - blink selected channel
+    0x3Y - activate alarm sequence
+Default setting: [0x05, 0xFF, 0x00, 0x00] (Water Alarm, any notification, no action)</Help>
+    </Value>
+    <Value genre="config" index="32" instance="1" label="Alarm configuration - 3rd slot" size="4" type="int" value="33488896">
+      <Help>This parameter determines to which alarm frames and how the device should react.
+The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B [MSB] - notification Type.
+2B - notification Status.
+3B - Event/State Parameters.
+4B [LSB] action:
+    0x00 - no reaction
+    0x0X - turn off selected channel
+    0x1X - turn on selected channel
+    0x2X - blink selected channel
+    0x3Y - activate alarm sequence
+Default setting: [0x01, 0xFF, 0x00, 0x00] (Smoke Alarm, any notification, no action)</Help>
+    </Value>
+    <Value genre="config" index="33" instance="1" label="Alarm configuration - 4th slot" size="4" type="int" value="50266112">
+      <Help>This parameter determines to which alarm frames and how the device should react.
+The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B [MSB] - notification Type.
+2B - notification Status.
+3B - Event/State Parameters.
+4B [LSB] action:
+    0x00 - no reaction
+    0x0X - turn off selected channel
+    0x1X - turn on selected channel
+    0x2X - blink selected channel
+    0x3Y - activate alarm sequence
+Default setting: [0x02, 0xFF, 0x00, 0x00] (CO Alarm, any notification, no action)</Help>
+    </Value>
+    <Value genre="config" index="34" instance="1" label="Alarm configuration - 5th slot" size="4" type="int" value="83820544">
+      <Help>This parameter determines to which alarm frames and how the device should react.
+The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B [MSB] - notification Type.
+2B - notification Status.
+3B - Event/State Parameters.
+4B [LSB] action:
+    0x00 - no reaction
+    0x0X - turn off selected channel
+    0x1X - turn on selected channel
+    0x2X - blink selected channel
+    0x3Y - activate alarm sequence
+Default setting: [0x04, 0xFF, 0x00, 0x00] (Heat Alarm, any notification, no action)</Help>
+    </Value>
+    <Value genre="config" index="35" instance="1" label="Duration of alarm signalization" max="32400" min="0" size="2" type="short" units="sec" value="600">
+      <Help>This parameter determines the duration of alarm signaling (flashing mode and/or alarm sequence). Available values:
+0 - infinite signalization
+1-32400 (1s-9h, 1s step)
+Default 600 (10min).</Help>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Input 1 - sent scenes" max="15" min="0" type="byte" value="15">
+      <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, 3 or 4. Actions can be summed up, e.g. 1+2+4+8=15 and entered as a value for the parameter. Available values:
+1 - Key pressed 1 time
+2 - Key pressed 2 times
+4 - Key pressed 3 times
+8 - Key hold down and key released
+Default 15.</Help>
+    </Value>
+    <Value genre="config" index="41" instance="1" label="Input 2 - sent scenes" max="15" min="0" type="byte" value="15">
+      <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, 3 or 4. Actions can be summed up, e.g. 1+2+4+8=15 and entered as a value for the parameter. Available values:
+1 - Key pressed 1 time
+2 - Key pressed 2 times
+4 - Key pressed 3 times
+8 - Key hold down and key released
+Default 15.</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Input 3 - sent scenes" max="15" min="0" type="byte" value="15">
+      <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, 3 or 4. Actions can be summed up, e.g. 1+2+4+8=15 and entered as a value for the parameter. Available values:
+1 - Key pressed 1 time
+2 - Key pressed 2 times
+4 - Key pressed 3 times
+8 - Key hold down and key released
+Default 15.</Help>
+    </Value>
+    <Value genre="config" index="43" instance="1" label="Input 4 - sent scenes" max="15" min="0" type="byte" value="15">
+      <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, 3 or 4. Actions can be summed up, e.g. 1+2+4+8=15 and entered as a value for the parameter. Available values:
+1 - Key pressed 1 time
+2 - Key pressed 2 times
+4 - Key pressed 3 times
+8 - Key hold down and key released
+Default 15.</Help>
+    </Value>
+    <Value genre="config" index="62" instance="1" label="Power reports - periodic" max="32400" min="0" size="2" type="short" units="sec" value="3600">
+      <Help>This parameter determines in what time intervals the periodic power reports are sent to the main controller. Periodic reports do not depend of power change (parameter 61). Available values:
+0 - periodic reports are disabled
+30-32400 (30-32400s) - report interval
+Default 3600 (1h).</Help>
+    </Value>
+    <Value genre="config" index="63" instance="1" label="Analog inputs reports and output change on input change" max="100" min="0" size="2" type="short" value="5">
+      <Help>This parameter defines minimal change (from the last reported) of analog input voltage that results in sending new report and change in the output value. Parameter is relevant only for analog inputs (parameter 20, 21, 22 or 23 set to 0 or 1). Available values:
+0 - reporting on change disabled
+1-100 (0.1-10V, 0.1V step)
+Default 5 (0.5V).</Help>
+    </Value>
+    <Value genre="config" index="64" instance="1" label="Analog inputs reports - periodic" max="32400" min="0" size="2" type="short" units="sec" 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, 21, 22 or 23 set to 0 or 1). Available values:
+0 - periodical reports disabled
+30-32400 (30-32400s, 1s step)
+Default 0 (periodical reports disabled).</Help>
+    </Value>
+    <Value genre="config" index="65" instance="1" label="Energy reports - on change" max="500" min="0" size="2" type="short" value="10">
+      <Help>This parameter determines the minimum change in consumed energy that will result in sending new energy report to the main controller. Energy reports are sent no often than every 30 seconds. Available values:
+0 - reports are disabled
+1-500 (0.01 - 5 kWh) - change in energy
+Default 10 (0.1 kWh).</Help>
+    </Value>
+    <Value genre="config" index="66" instance="1" label="Energy reports - periodic" max="32400" min="0" size="2" type="short" units="sec" value="3600">
+      <Help>This parameter determines in what time intervals the periodic energy reports are sent to the main controller. Periodic reports do not depend of energy change (parameter 65) Available values:
+0 - periodic reports are disabled
+30-32400 (30-32400s) - report interval
+Default 3600 (1h).
+</Help>
+    </Value>
+    <Value genre="config" index="150" instance="1" label="Inputs - LED colour control mode" size="1" type="list" value="0">
+      <Help>This parameter determines how connected switches control LED strips. Default 0.</Help>
+      <Item label="RGBW mode (every input controls output with the same number, IN1‑OUT1, IN2‑OUT2, IN3‑OUT3, IN4‑OUT4)" value="0"/>
+      <Item label="HSB and White mode (inputs works in HSB color model, IN1‑H (Hue), IN2‑S (Saturation), IN3‑B (Brightness), IN4‑White (OUT4)" value="1"/>
+    </Value>
+    <Value genre="config" index="151" instance="1" label="Local control - transition time" max="254" min="0" size="2" type="short" units="sec" value="3">
+      <Help>This parameter determines time of smooth transition between 0% and 100% when controlling with connected switches. Available values:
+0 - instantly
+1-127 (1s-127s, 1s step)
+128-254 (1min-127min, 1min step)
+Default 3.</Help>
+    </Value>
+    <Value genre="config" index="152" instance="1" label="Remote control - transition time" max="254" min="0" size="2" type="short" units="sec" value="3">
+      <Help>This parameter determines time of smooth transition between initial and target state when controlling via Z-Wave network. Available values:
+0 - instantly
+1-127 (1s-127s, 1s step)
+128-254 (1min-127min, 1min step)
+Default 3.</Help>
+    </Value>
+    <Value genre="config" index="154" instance="1" label="ON frame value for single click" max="4294967295" min="0" type="int" value="4294967295">
+      <Help>This parameter defines value sent to devices in association groups. The parameters consist of 4 bytes, each byte reserved for separate channel, from least significant (IN1) to most significant (IN4). Applicable for Basic Set and Switch Multilevel Set commands. Available values:
+For every byte: 0-99, 255.
+Default 4294967295 (0xFF FF FF FF - 255 for all channels).</Help>
+    </Value>
+    <Value genre="config" index="155" instance="1" label="OFF frame value for single click" max="4294967295" min="0" type="int" value="0">
+      <Help>This parameter defines value sent to devices in association groups. The parameters consist of 4 bytes, each byte reserved for separate channel, from least significant (IN1) to most significant (IN4). Applicable for Basic Set and Switch Multilevel Set commands. Available values:
+For every byte: 0-99, 255.
+Default 0 (0x00 00 00 00 - 0 for all channels).</Help>
+    </Value>
+    <Value genre="config" index="156" instance="1" label="ON frame value for double click" max="0" min="0" type="int" value="4294967295">
+      <Help>This parameter defines value sent to devices in association groups. The parameters consist of 4 bytes, each byte reserved for separate channel, from least significant (IN1) to most significant (IN4). Applicable for Basic Set and Switch Multilevel Set commands. Available values:
+For every byte: 0-99, 255.
+Default 0 (0x63 63 63 63 - 99 for all channels).</Help>
+    </Value>
+    <Value genre="config" index="157" instance="1" label="Start programmed sequence" size="1" type="list" value="0">
+      <Help>Setting this parameter will start programmed sequence with selected number. User can define own sequences via controller. Default 0.</Help>
+      <Item label="sequence inactive" value="0"/>
+      <Item label="user-defined sequence 1" value="1"/>
+      <Item label="user-defined sequence 2" value="2"/>
+      <Item label="user-defined sequence 3" value="3"/>
+      <Item label="user-defined sequence 4" value="4"/>
+      <Item label="user-defined sequence 5" value="5"/>
+      <Item label="Fireplace sequence" value="6"/>
+      <Item label="Storm sequence" value="7"/>
+      <Item label="Rainbow sequence" value="8"/>
+      <Item label="Aurora sequence" value="9"/>
+      <Item label="Police (red-white-blue) sequence" value="10"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="10">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="RGBW Sync" max_associations="5"/>
+      <Group index="3" label="On/Off (IN1)" max_associations="5"/>
+      <Group index="4" label="Dimmer (IN1)" max_associations="5"/>
+      <Group index="5" label="On/Off (IN2)" max_associations="5"/>
+      <Group index="6" label="Dimmer (IN2)" max_associations="5"/>
+      <Group index="7" label="On/Off (IN3)" max_associations="5"/>
+      <Group index="8" label="Dimmer (IN3)" max_associations="5"/>
+      <Group index="9" label="On/Off (IN4)" max_associations="5"/>
+      <Group index="10" label="Dimmer (IN4)" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/fibaro/fgrm222.xml b/config/fibaro/fgrm222.xml
index 29d98a3b97..fcaef01065 100644
--- a/config/fibaro/fgrm222.xml
+++ b/config/fibaro/fgrm222.xml
@@ -1,5 +1,50 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="5">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="6">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0302</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgrm222.png</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">FIBARO Roller Shutter 2 is powered with mains voltage so it is always awake.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset procedure clears the modules’ EPROM memory, including all information about the Z-Wave network controller, calibration and power consumption data.
+1) Make sure the module is connected to the power supply.
+2) Press and hold the B-button for ca. 14 seconds.
+3) LED indicator will glow yellow.
+4) Release the B-button and press it again, briefly.
+5) The Roller Shutter memory is now empty.
+6) The module goes into the auto inclusion mode, until any button is pushed.
+</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0302">FGRM222</MetaDataItem>
+    <MetaDataItem name="Name">Roller Shutter 2</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Fibaro Roller Shutter may be included into the Z-Wave network via the B-button or a push button connected to the S1 terminal. In addition, the module may be included in auto inclusion mode, by simply connecting the power supply.
+Automatic Z-Wave network inclusion:
+1) Make sure the power supply is disconnected and a Roller Shutter is located within a direct Z-Wave network’s main controller communication range.
+2) Set the main controller into the learn mode (see main controllers operating manual).
+3) Connect the power supply to include the Roller Shutter in auto inclusion mode.
+4) Fibaro Roller Shutter will be automatically detected and included into the Z-Wave network.To disable the auto inclusion mode, press the B-button briefly, after connecting the module to the power supply.Manual
+Z-Wave network inclusion:
+1) Connect the power supply.
+2) Set the main controller into the learn mode (see main controllers operating manual).
+3) Triple click the B-button or a push button connected to the S1 terminal.
+4) Fibaro Roller Shutter will be detected and included into the Z-Wave network.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://manuals.fibaro.com/content/manuals/en/FGR-222/FGR-222-EN-A-v1.2.pdf</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0302">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To remove the device from the Z-Wave network:
+1) Make sure the module is connected to the power supply.
+2) Set the main controller into the learn mode (see main controllers operating manual).
+3) Triple click the B-button or a push button connected to the S1 terminal.
+</MetaDataItem>
+    <MetaDataItem name="Description">FIBARO Roller Shutter 2 is a universal, Z-Wave compatible, electric motor controller.
+The device allows for controlling motors of roller blinds, awnings, venetian blinds, gates and others, which are single phase AC powered.
+FIBARO Roller Shutter 2 allows for precise positioning of a roller blind or venetian blind slats.
+Precise positioning is available for the motors equipped with mechanic and electronic end switches.
+The module may be controlled wirelessly, through the Z-Wave network main controller, or through the switch keys connected to it.
+It’s also possible to combine few devices into groups of devices, which then can be controlled simultaneously.
+In addition, FIBARO Roller Shutter 2 is equipped with Power Metering.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Nouknouk - nouknouk@gmail.com" date="08 Dec 2020" revision="6">Initial Metadata</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
     <!-- Protection -->
@@ -7,14 +52,14 @@
       <Help>Once the Local Protection is activated, the module stops responding to S1 and S2 push buttons. SCENE ID and association commands will not be sent as well. The only exception is the B-button. Menu and Z-Wave network inclusion, after the B-button or S1 push button triple click, are still active.</Help>
       <Item label="No protection. Roller Shutter responds to push buttons" value="0" />
       <Item label="Not supported" value="1" />
-      <Item label="Local protection active. Roller Shutter does not respond to push buttons" value="2" />      
+      <Item label="Local protection active. Roller Shutter does not respond to push buttons" value="2" />
     </Value>
-	
+
     <Value type="list" genre="config" instance="1" index="2" label="RF Protection (radio protection)" value="0" size="1">
       <Help>Once the RF Protection is activated, the module stops responding to command frames setting the blind position. It's still possible however to configure the device (advanced configuration parameters, protection modes) and checking it's current state through polling (position, power, energy).</Help>
       <Item label="No protection. Roller Shutter responds to command frames" value="0" />
       <Item label="RF Protection active. Roller Shutter does not respond to the Z-Wave control frames" value="1" />
-      <Item label="Not supported" value="2" />      
+      <Item label="Not supported" value="2" />
     </Value>
 
      <!-- GENERAL SETTINGS -->
@@ -22,9 +67,9 @@
        <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 Fibaro Command Class" value="1" />      
-     </Value>	
-    
+       <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">
       <Help>Default setting: 1</Help>
       <Item label="0 - Roller Blind Mode, without positioning" value="0"/>
@@ -33,15 +78,15 @@
 	    <Item label="3 - Gate Mode, without positioning" value="3"/>
 	    <Item label="4 - Gate Mode, with positioning" value="4"/>
     </Value>
-	
+
 	  <Value type="short" genre="config" instance="1" index="12" label="In Venetian Blind mode the parameter determines time of full turn of the lamellas" value="150" min="0" max="65535">
       <Help>In Venetian Blind mode (parameter 10 set to 2) the parameter determines time of full turn of the lamellas.
-	      In Gate Mode (parameter 10 set to 3 or 4) the parameter defines the COUNTDOWN time, i.e. the time period after which an open gate starts closing. 
+	      In Gate Mode (parameter 10 set to 3 or 4) the parameter defines the COUNTDOWN time, i.e. the time period after which an open gate starts closing.
 	      In any other operating mode the parameter value is irrelevant. Value of 0 means the gate will not close automatically
 	      Available settings: 0-65535 (0 - 655,35s)
-	      Default setting: 150 (1,5 s)</Help>      
+	      Default setting: 150 (1,5 s)</Help>
     </Value>
-	
+
 	<Value type="list" genre="config" instance="1" index="13" label="Set lamellas back to previous position" value="1" size="1">
       <Help>In Venetian Blind Mode (parameter 10 set to 2) the parameter influences lamellas positioning in various situations. In any other operating mode the parameter value is irrelevant.
 	      Default setting: 1</Help>
@@ -49,42 +94,42 @@
       <Item label="1 - Lamellas return to previously set position in case of the main controller operation, momentary switch operation, or when the limit switch is reached" value="1"/>
 	  <Item label="2 - Lamellas return to previously set position in case of the main controller operation, momentary switch operation, when the limit switch is reached or after receiving a STOP control frame (Switch Multilevel Stop)." value="2"/>
     </Value>
-    
+
     <Value type="list" genre="config" instance="1" index="14" label="Switch type" value="0" size="1">
       <Help>The parameter settings are relevant for Roller Blind Mode and Venetian Blind Mode (parameter 10 set to 0, 1, 2).</Help>
       <Item label="Momentary switches" value="0"/>
       <Item label="Toggle switches" value="1"/>
       <Item label="Single, momentary switch." value="2"/>
     </Value>
-	
+
 	  <Value type="byte" genre="config" instance="1" index="17" label="In Roller Blind Mode or Venetian Blind mode the parameter determines when the Roller Shutter relays are turned off after reaching a limit switch" value="10"  min="0" max="255">
       <Help>In Roller Blind Mode or Venetian Blind mode (parameter 10 set to 0, 1, 2) the parameter determines when the Roller Shutter relays are turned off after reaching a limit switch.
 	      In Gate Mode (parameter 10 set to 3 or 4) the parameter determines a time period after which a gate will start closing after a S2 contact has been disconnected. In this mode, time to turn off the Roller Shutter relays after reaching a limit switch is set to 3 seconds and cannot be modified.
 	      Value of 0 means the gate will note close automatically.
 	      Available settings: 0 - 255 (0,1-25,5s).
-	      Default setting: 10 (1s).</Help>      
+	      Default setting: 10 (1s).</Help>
     </Value>
-	
+
 	  <Value type="byte" genre="config" instance="1" index="18" label="Motor operation detection" value="10" min="0" max="255">
       <Help>Power threshold to be interpreted as reaching a limit switch.
 	      Available settings: 0 - 255 (1-255 W)
 	      The value of 0 means reaching a limit switch will not be detected
-	      Default setting: 10 (10W).</Help>      
+	      Default setting: 10 (10W).</Help>
     </Value>
-    
+
     <Value type="short" genre="config" instance="1" index="22" label="Motor operation time" value="240" min="0" max="65535">
       <Help>Time period for the motor to continue operation.
 	      Available settings: 0 - 65535 (0 - 65535s)
 	      The value of 0 means the function is disabled.
-	      Default setting: 240 (240s. - 4 minutes)</Help>      
+	      Default setting: 240 (240s. - 4 minutes)</Help>
     </Value>
-	
+
 	  <Value type="list" genre="config" instance="1" index="29" label="Forced Roller Shutter calibration" value="0" size="1" write_only="true">
       <Help>By modifying the parameters setting from 0 to 1 a Roller Shutter enters the calibration mode. The parameter relevant only if a Roller Shutter is set to work in positioning mode (parameter 10 set to 1, 2 or 4).</Help>
 	    <Item label="Default" value="0"/>
-      <Item label="Start calibration process" value="1"/>	  
+      <Item label="Start calibration process" value="1"/>
     </Value>
-	
+
 	  <!-- ALARM SETTINGS -->
     <Value type="list" genre="config" instance="1" index="30" label="Response to general alarm" value="2" size="1">
       <Help>Default setting: 2-Close blind</Help>
@@ -99,64 +144,64 @@
       <Item label="Open blind" value="1"/>
       <Item label="Close blind" value="2"/>
     </Value>
-	
+
 	  <Value type="list" genre="config" instance="1" index="32" label="Response to smoke, CO or CO2 alarm" value="1" size="1">
       <Help>Default setting: 1-Open blind</Help>
       <Item label="No reaction" value="0"/>
       <Item label="Open blind" value="1"/>
       <Item label="Close blind" value="2"/>
     </Value>
-	
+
 	  <Value type="list" genre="config" instance="1" index="33" label="Response to temperature alarm" value="1" size="1">
       <Help>Default setting: 1-Open blind</Help>
       <Item label="No reaction" value="0"/>
       <Item label="Open blind" value="1"/>
       <Item label="Close blind" value="2"/>
     </Value>
-	
+
   	<Value type="list" genre="config" instance="1" index="35" label="Managing lamellas in response to alarm" value="1" size="1">
       <Help>In Venetian Blind Mode (parameter 10 set to 2), the parameter determines how the lamellas will react upon alarm detection. In any other modes, the parameter value is not relevant.
 	      Default setting: 1 Set lamellas to their extreme position</Help>
       <Item label="Do not change lamellas position - lamellas return to the last set position" value="0"/>
-      <Item label="Set lamellas to their extreme position" value="1"/>      
+      <Item label="Set lamellas to their extreme position" value="1"/>
     </Value>
-	
+
 	  <!-- POWER AND ENERGY REPORTS SETTINGS -->
 	  <Value type="byte" genre="config" instance="1" index="40" label="Power reports" value="10"  min="0" max="100">
       <Help>Power level change that will result in new power value report being sent. The parameter defines a change that needs to occur in order to trigger the report. The value is a percentage of the previous report.
 	      Power report threshold available settings: 1-100 (1-100%).
 	      Value of 0 means the reports are turned off.
-	      Default setting: 10 (10%).</Help>      
+	      Default setting: 10 (10%).</Help>
     </Value>
-	
+
 	  <Value type="short" genre="config" instance="1" index="42" label="Periodic power or energy reports" value="3600" min="1" max="65534">
       <Help>The parameter defines a time period between consecutive reports.
 	      Available settings: 1-65534 (1-65534 seconds)
 	      Value of 0 means the reports are turned off.
-	      Default setting: 3600 (3600 seconds / 60 minutes).</Help>      
+	      Default setting: 3600 (3600 seconds / 60 minutes).</Help>
     </Value>
-	
+
 	  <Value type="byte" genre="config" instance="1" index="43" label="Energy reports" value="10" min="1" max="254">
       <Help>Energy level change which will result in new energy value report being sent. The parameter defines a change that needs to occur in order to trigger the report.
 	      Energy threshold available settings: 1-254 (0,01 - 2,54kWh).
 	      Value of 0 means the reports are turned off.
-	      Default setting 10 (0,1kWh).</Help>      
+	      Default setting 10 (0,1kWh).</Help>
     </Value>
-	
+
 	  <Value type="list" genre="config" instance="1" index="44" label="Self-measurement." value="1" size="1">
       <Help>A Roller Shutter may include power and energy used by itself in reports sent to the main controller
 	      Default setting: 0-Self-measurement inactive</Help>
       <Item label="Self-measurement inactive" value="0"/>
-      <Item label="Self-measurement active" value="1"/>      
+      <Item label="Self-measurement active" value="1"/>
     </Value>
-    
+
 	  <!-- SCENES AND ASSOCIATIONS SETTINGS -->
     <Value type="list" genre="config" instance="1" index="50" label="Scenes / Associations activation" value="0" size="1">
       <Help>Parameter determines whether scenes or associations are activated by the switch keys.
 	      Default setting: 0-Associations activation</Help>
       <Item label="Associations activation" value="0"/>
       <Item label="Scenes activation" value="1"/>
-    </Value>    
+    </Value>
   </CommandClass>
   <!--
   <CommandClass id="96" mapping="endpoints" />
diff --git a/config/fibaro/fgs214.xml b/config/fibaro/fgs214.xml
new file mode 100644
index 0000000000..4d0cfb4f4e
--- /dev/null
+++ b/config/fibaro/fgs214.xml
@@ -0,0 +1,147 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0204</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgs224.png</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0404">https://products.z-wavealliance.org/products/3949/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To remove the device from the Z-Wave network:
+1. Power the device.
+2. Set the main controller into remove mode (see the controller’s
+manual).
+3. Quickly, three times click the maintenance button.
+4. LED will start blinking yellow, wait for the removing process to
+end.
+5. Successful removing will be confirmed by the Z-Wave controller’s
+message and red LED colour.
+</MetaDataItem>
+    <MetaDataItem name="Description">The remotely operated FIBARO Double Smart Module is designed to turn electrical devices or circuits on and off. Double Smart Module allows to control two devices or circuits. The compact size of the device allows for the product to be installed in the housings of other devices. The devices can be controlled either via the Z-Wave™ network or with buttons connected directly to them.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3980/FGS-2x4-T-EN-1.0.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To add the device to the Z-Wave network manually:
+1. Power the device.
+2. Set the main controller in (Security/non-Security Mode) add mode
+(see the controller’s manual).
+3. Quickly, three times click button connected to S1/S2 or the
+maintenance button.
+4. LED will start blinking yellow, wait for the adding process to end.
+5. If you are adding in Security S2 Authenticated, input the underlined
+part of the DSK (label on the bottom of the box).
+6. Adding result will be confirmed by the Z-Wave controller’s message
+and the LED:
+• Green – successful (non-secure, S0, S2 non-authenticated),
+• Magenta – successful (Security S2 Authenticated),
+• Red – not successful.
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset procedure allows to restore the device back to its factory settings, which means all information about the Z-Wave controller and user configuration will be deleted. In order to reset the device:
+1. Press and hold the maintenance button to enter the menu.
+2. Release button when the device glows yellow.
+3. Quickly click the button to confirm.
+4. After few seconds the device will be restarted, which is signalled
+with red LED colour.
+
+Use reset procedure only if the primary controller is missing or inoperable.
+</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0404">FGS-214</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Single Smart Module</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0404">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">The FIBARO Single Smart Module is powered with the mains voltage so it is always awake.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Mickaël PICAUD - mobile@mpicaud.fr" date="18 Dec 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/Products/3980/XML</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Remember relays state" max="2" min="0" size="1" type="list" value="1">
+      <Help>This parameter determines the state of relays power supply failure (e.g. power outage). auto OFF and flashing modes the parameter not relevant and the relay will always remain off.</Help>
+      <Item label="Relays remain switched off after restoring power" value="0"/>
+      <Item label="Restore remembered state of relays after restoring power" value="1"/>
+      <Item label="Restore remembered state of relays after restoring power, but for toggle switches (parameter 20/21 set to 1) set the same state as the current state of the switches" value="2"/>
+    </Value>
+    <Value genre="config" index="150" instance="1" label="First channel - operating mode" max="3" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose operating for channel controlled with Q/Q1 output. timed modes (value 1, 2 or 3), time is set parameter 154 and reaction to input is set with parameter 152.</Help>
+      <Item label="Standard operation" value="0"/>
+      <Item label="Delay Off" value="1"/>
+      <Item label="Auto Off" value="2"/>
+      <Item label="Flashing" value="3"/>
+    </Value>
+    <Value genre="config" index="152" instance="1" label="First channel - reaction to input change in delayed/auto OFF modes" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter determines how the device when changing state of S1 input in timed for first channel.</Help>
+      <Item label="Cancel mode and set default state" value="0"/>
+      <Item label="No reaction, mode runs until it ends" value="1"/>
+      <Item label="Reset timer, start counting time from the beginning" value="2"/>
+    </Value>
+    <Value genre="config" index="154" instance="1" label="First channel – time parameter for delayed/auto OFF and flashing modes" max="32000" min="0" size="2" type="short" value="5">
+      <Help>This parameter allows to set time parameter used in timed modes. (s)</Help>
+    </Value>
+    <Value genre="config" index="156" instance="1" label="S1 Switch ON value sent to 2nd association group" 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 association group.</Help>
+    </Value>
+    <Value genre="config" index="157" instance="1" label="S1 Switch OFF value sent to 2nd association group" 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 association group.</Help>
+    </Value>
+    <Value genre="config" index="158" instance="1" label="S1 Switch Double Click value sent to 2nd 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  association group.</Help>
+    </Value>
+    <Value genre="config" index="162" instance="1" label="Q/Q1 output type" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter determines type of Q/Q1 output.</Help>
+      <Item label="Normally Open (relay contacts opened turned off, closed when turned on)" value="0"/>
+      <Item label="Normally Closed (relay contacts closed turned off, opened when turned on)" value="1"/>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="S1 input – switch type" max="2" min="0" size="1" type="list" value="2">
+      <Help>S1 - 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="S2 input – switch type" max="2" min="0" size="1" type="list" value="2">
+      <Help>S2 - 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="24" instance="1" label="Inputs orientation" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows reversing operation of S1 and S2 inputs changing the wiring. Use in case of incorrect wiring.</Help>
+      <Item label="default (S1 - 1st channel, S2 - 2nd channel)" value="0"/>
+      <Item label="reversed (S1 - 2nd channel, S2 - 1st channel)" value="1"/>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="S1 input – 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.
+        4 - Key pressed 3 times.
+        8 - Key Hold Down and Key Released.
+        15 - All active (Default)
+        Default setting: 0 (none)
+      </Help>
+    </Value>
+    <Value genre="config" index="41" instance="1" label="S2 input – 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.
+        4 - Key pressed 3 times.
+        8 - Key Hold Down and Key Released.
+        15 - All active (Default)
+        Default setting: 0 (none)
+      </Help>
+    </Value>      
+  </CommandClass>
+  <!-- -->
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off S1" max_associations="5"/>
+      <Group index="3" label="On/Off S2" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+</Product>
\ No newline at end of file
diff --git a/config/fibaro/fgs222.xml b/config/fibaro/fgs222.xml
index 0b9e1ed1ed..34443f7480 100644
--- a/config/fibaro/fgs222.xml
+++ b/config/fibaro/fgs222.xml
@@ -1,4 +1,43 @@
-<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010f:1002:0202</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgs222.png</MetaDataItem>
+    <MetaDataItem id="1002" name="ZWProductPage" type="0202">https://products.z-wavealliance.org/products/2731/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To remove the device from the Z-Wave network:
+1. Place the device within the direct range of your Z-Wave controller
+2. Identify switch no. 1 (turns the light on) or the B-button (located on the device’s housing)
+3. Set the main controller in remove mode (see the controller's manual).
+4. Quickly, three times press switch no. 1 or the B-button
+5. Wait for the removing process to end
+6. Successful removing will be confirmed by the Z-Wave controller’s message
+</MetaDataItem>
+    <MetaDataItem name="Description">FIBARO Double Relay Switch is designed to be installed in standard wall switch boxes or anywhere else where it is necessary to control two independent devices drawing up to 1500W each.
+As with all other Actors, FIBARO Double Relay Switch allows to control connected devices either via the Z-Wave network or via a switch connected directly to it.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://manuals.fibaro.com/content/manuals/en/FGS-222/FGS-222-EN-A-v1.1.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To add the device to the Z-Wave network:
+1. Place the device within the direct range of your Z-Wave controller
+2. Identify switch no. 1 (turns the light on) or the B-button (located on the device’s housing)
+3. Set the main controller into the adding mode (see the controller’s manual).
+4. Quickly, three times press switch no. 1 or the B-button
+5. Wait for the adding process to end
+6. Successful adding will be confirmed by the Z-Wave controller’s message
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset procedure erases memory of the device, including all information on the Z-Wave network and the main controller.
+1. Disconnect the power supply
+2. Remove the device from the wall switch box
+3. Connect the power supply
+4. Locate the B-button on the housing
+5. Press and hold the B-button for 3 seconds
+6. After few seconds the device will be reset
+</MetaDataItem>
+    <MetaDataItem id="1002" name="Identifier" type="0202">FGS-223</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Double Switch 2</MetaDataItem>
+    <MetaDataItem id="1002" name="FrequencyName" type="0202">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">The FIBARO Double Switch 2 is powered with the mains voltage so it is always awake.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Nouknouk - nouknouk@gmail.com" date="08 Dec 2020" revision="6">Initial Metadata</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
     <Value genre="config" index="1" instance="1" label="Enable/Disable ALL ON/OFF" size="1" type="list" value="255">
@@ -35,8 +74,8 @@
       <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 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 
+      <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"/>
diff --git a/config/fibaro/fgs224.xml b/config/fibaro/fgs224.xml
new file mode 100644
index 0000000000..b5d4c143d6
--- /dev/null
+++ b/config/fibaro/fgs224.xml
@@ -0,0 +1,166 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0204</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgs224.png</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0204">https://products.z-wavealliance.org/products/3980/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To remove the device from the Z-Wave network:
+1. Power the device.
+2. Set the main controller into remove mode (see the controller’s
+manual).
+3. Quickly, three times click the maintenance button.
+4. LED will start blinking yellow, wait for the removing process to
+end.
+5. Successful removing will be confirmed by the Z-Wave controller’s
+message and red LED colour.
+</MetaDataItem>
+    <MetaDataItem name="Description">The remotely operated FIBARO Double Smart Module is designed to turn electrical devices or circuits on and off. Double Smart Module allows to control two devices or circuits. The compact size of the device allows for the product to be installed in the housings of other devices. The devices can be controlled either via the Z-Wave™ network or with buttons connected directly to them.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3980/FGS-2x4-T-EN-1.0.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To add the device to the Z-Wave network manually:
+1. Power the device.
+2. Set the main controller in (Security/non-Security Mode) add mode
+(see the controller’s manual).
+3. Quickly, three times click button connected to S1/S2 or the
+maintenance button.
+4. LED will start blinking yellow, wait for the adding process to end.
+5. If you are adding in Security S2 Authenticated, input the underlined
+part of the DSK (label on the bottom of the box).
+6. Adding result will be confirmed by the Z-Wave controller’s message
+and the LED:
+• Green – successful (non-secure, S0, S2 non-authenticated),
+• Magenta – successful (Security S2 Authenticated),
+• Red – not successful.
+</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset procedure allows to restore the device back to its factory settings, which means all information about the Z-Wave controller and user configuration will be deleted. In order to reset the device:
+1. Press and hold the maintenance button to enter the menu.
+2. Release button when the device glows yellow.
+3. Quickly click the button to confirm.
+4. After few seconds the device will be restarted, which is signalled
+with red LED colour.
+
+Use reset procedure only if the primary controller is missing or inoperable.
+</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0204">FGS-224</MetaDataItem>
+    <MetaDataItem name="Name">FIBARO Double Smart Module</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0204">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">The FIBARO Double Smart Module is powered with the mains voltage so it is always awake.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Raffaele Fanizzi - vifani@gmail.com" date="15 Oct 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/Products/3980/XML</Entry>
+      <Entry author="Romke10" date="2 January 2021" revision="2">Added parameter 151</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Remember relays state" max="2" min="0" size="1" type="list" value="1">
+      <Help>This parameter determines the state of relays power supply failure (e.g. power outage). auto OFF and flashing modes the parameter not relevant and the relay will always remain off.</Help>
+      <Item label="Relays remain switched off after restoring power" value="0"/>
+      <Item label="Restore remembered state of relays after restoring power" value="1"/>
+      <Item label="Restore remembered state of relays after restoring power, but for toggle switches (parameter 20/21 set to 1) set the same state as the current state of the switches" value="2"/>
+    </Value>
+    <Value genre="config" index="150" instance="1" label="First channel - operating mode" max="3" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose operating for channel controlled with Q/Q1 output. timed modes (value 1, 2 or 3), time is set parameter 154 and reaction to input is set with parameter 152.</Help>
+      <Item label="Standard operation" value="0"/>
+      <Item label="Delay Off" value="1"/>
+      <Item label="Auto Off" value="2"/>
+      <Item label="Flashing" value="3"/>
+    </Value>
+    <Value genre="config" index="151" instance="1" label="Second channel - operating mode" max="3" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose operating for channel controlled with Q/Q2 output. timed modes (value 1, 2 or 3), time is set parameter 155 and reaction to input is set with parameter 153.</Help>
+      <Item label="Standard operation" value="0"/>
+      <Item label="Delay Off" value="1"/>
+      <Item label="Auto Off" value="2"/>
+      <Item label="Flashing" value="3"/>
+    </Value>    
+    <Value genre="config" index="152" instance="1" label="First channel - reaction to input change in delayed/auto OFF modes" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter determines how the device when changing state of S1 input in timed for first channel.</Help>
+      <Item label="Cancel mode and set default state" value="0"/>
+      <Item label="No reaction, mode runs until it ends" value="1"/>
+      <Item label="Reset timer, start counting time from the beginning" value="2"/>
+    </Value>
+    <Value genre="config" index="153" instance="1" label="Second channel - reaction to input change in delayed/auto OFF modes" max="2" min="0" size="1" type="list" value="0">
+      <Help>This parameter determines how the device when changing state of S2 input in timed for second channel.</Help>
+      <Item label="Cancel mode and set default state" value="0"/>
+      <Item label="No reaction, mode runs until it ends" value="1"/>
+      <Item label="Reset timer, start counting time from the beginning" value="2"/>
+    </Value>
+    <Value genre="config" index="154" instance="1" label="First channel – time parameter for delayed/auto OFF and flashing modes" max="32000" min="0" size="2" type="short" value="5">
+      <Help>This parameter allows to set time parameter used in timed modes. (s)</Help>
+    </Value>
+    <Value genre="config" index="155" instance="1" label="Second channel – time parameter for delayed/auto OFF and flashing modes" max="32000" min="0" size="2" type="short" value="5">
+      <Help>This parameter allows to set time parameter used in timed modes. (s)</Help>
+    </Value>
+    <Value genre="config" index="156" instance="1" label="S1 Switch ON value sent to 2nd association group" 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 association group.</Help>
+    </Value>
+    <Value genre="config" index="157" instance="1" label="S1 Switch OFF value sent to 2nd association group" 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 association group.</Help>
+    </Value>
+    <Value genre="config" index="158" instance="1" label="S1 Switch Double Click value sent to 2nd 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  association group.</Help>
+    </Value>
+    <Value genre="config" index="159" instance="1" label="S2 Switch ON value sent to 3rd association group" max="255" min="0" size="2" type="short" value="255">
+      <Help>This parameter determines value sent with Switch On command to devices associated in 3rd association group.</Help>
+    </Value>
+    <Value genre="config" index="160" instance="1" label="S2 Switch OFF value sent to 3rd association group" max="255" min="0" size="2" type="short" value="0">
+      <Help>This parameter determines value sent with Switch Off command to devices associated in 3rd association group.</Help>
+    </Value>
+    <Value genre="config" index="161" instance="1" label="S2 Switch Double Click value sent to 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 3rd  association group.</Help>
+    </Value>
+    <Value genre="config" index="162" instance="1" label="Q/Q1 output type" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter determines type of Q/Q1 output.</Help>
+      <Item label="Normally Open (relay contacts opened turned off, closed when turned on)" value="0"/>
+      <Item label="Normally Closed (relay contacts closed turned off, opened when turned on)" value="1"/>
+    </Value>
+    <Value genre="config" index="163" instance="1" label="Q2 output type" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter determines type of Q2 output.</Help>
+      <Item label="Normally Open (relay contacts opened turned off, closed when turned on)" value="0"/>
+      <Item label="Normally Closed (relay contacts closed turned off, opened when turned on)" value="1"/>
+    </Value>
+    <Value genre="config" index="164" instance="1" label="Lock simultaneous switching of Q1 and Q2 outputs" max="1" min="0" size="1" type="list" value="0">
+      <Help>When the lock is enabled, both outputs cannot turned on at the same time.</Help>
+      <Item label="Lock disabled" value="0"/>
+      <Item label="Lock enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="S1 input – switch type" max="2" min="0" size="1" type="list" value="2">
+      <Help>S1 - 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="S2 input – switch type" max="2" min="0" size="1" type="list" value="2">
+      <Help>S2 - 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="25" instance="1" label="Inputs orientation" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows reversing operation of S1 and S2 inputs changing the wiring. Use in case of incorrect wiring.</Help>
+      <Item label="default (S1 - 1st channel, S2 - 2nd channel)" value="0"/>
+      <Item label="reversed (S1 - 2nd channel, S2 - 1st channel)" value="1"/>
+    </Value>
+    <Value genre="config" index="26" instance="1" label="Outputs orientation" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows reversing operation of Q1 and Q2 outputs changing the wiring. Use in case of incorrect wiring.</Help>
+      <Item label="default (Q1 - 1st channel, Q2 - 2nd channel)" value="0"/>
+      <Item label="reversed (Q1 - 2nd channel, Q2 - 1st channel)" 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" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="On/Off S1" max_associations="5"/>
+      <Group index="3" label="On/Off 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 ca89d2d100..21fbf252d0 100644
--- a/config/fibaro/fgsd002.xml
+++ b/config/fibaro/fgsd002.xml
@@ -1,4 +1,4 @@
-<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="7" 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>
@@ -33,7 +33,8 @@ https://www.youtube.com/watch?v=50QGfkdUtns
     <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>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2837/xml</Entry>
-    </ChangeLog>
+      <Entry author="J van Berlo - jvberlo@hotmail.com" date="22 Mar 2020" revision="7">Updated Text for parameter 12</Entry>
+  </ChangeLog>
     <MetaDataItem id="1003" name="ZWProductPage" type="0C02">https://products.z-wavealliance.org/products/2837/</MetaDataItem>
     <MetaDataItem id="1003" name="Identifier" type="0C02">FGSD-002</MetaDataItem>
     <MetaDataItem id="1003" name="FrequencyName" type="0C02">CEPT (Europe)</MetaDataItem>
@@ -82,10 +83,10 @@ https://www.youtube.com/watch?v=50QGfkdUtns
       <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>
+      <Help>BASIC ON frame is sent in case of smoke presence detection and FIRE ALARM triggering. Available settings: 0,(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>
+      <Help>BASIC OFF frame is sent in case of FIRE ALARM cancellation. Available settings: 0,(1 - 99) or 255. Default setting: 0</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>
diff --git a/config/fibaro/fgt001.xml b/config/fibaro/fgt001.xml
index 63f901016b..aa2904885c 100644
--- a/config/fibaro/fgt001.xml
+++ b/config/fibaro/fgt001.xml
@@ -1,4 +1,4 @@
-<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:1301</MetaDataItem>
     <MetaDataItem name="ProductPic">images/fibaro/fgt001.png</MetaDataItem>
@@ -51,6 +51,7 @@ Main features:
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2586/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2971/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3194/xml</Entry>
+      <Entry author="Mark Ruys - mark@paracas.nl" date="05 Feb 2021" revision="6">Add new configuration settings for firmware 4.7</Entry>
     </ChangeLog>
   </MetaData>
   <!--
@@ -87,11 +88,16 @@ Main features:
     </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
+                1) Enable open window detector (normal)
+                2) Enable open window detector (rapid)
                 4) Increase receiver sensitivity (shortens battery life)
                 8) Enable LED indications when controlling remotely
                 16) Protect from setting Full ON and Full OFF mode by turning the knob manually
+                32) Device mounted in vertical position (firmware 4.7+)
+                64) Moderate regulator behaviour (instead of rapid, firmware 4.7+))
+                128) Inverted knob operation (firmware 4.7+)
+                256) Heating medium demand reports (firmware 4.7+)
+                512) Detecting heating system failures (firmware 4.7+)
                 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>
diff --git a/config/fibaro/fgwceu201.xml b/config/fibaro/fgwceu201.xml
new file mode 100644
index 0000000000..1fc813a561
--- /dev/null
+++ b/config/fibaro/fgwceu201.xml
@@ -0,0 +1,158 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">FGWCEU-201 Walli Controller</MetaDataItem>
+    <MetaDataItem name="Description">FIBARO Walli Controller is a smart wall, battery powered, switch.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010f:1000:2301</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://manuals.fibaro.com/document-category/fgwceu-201/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://manuals.fibaro.com/document-category/fgwceu-201/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgwceu201.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://manuals.fibaro.com/content/manuals/en/FGWCEU-201/FGWCEU-201-T-EN-1.1.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">When on battery power, the device needs to be woken up to receive 
+		information about the new configuration from the Z-Wave controller, like parameters and associations. 
+		By default the device is woken up automatically every 6 hours.
+		You can wake up the device manually using first menu position (white).</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To add the device to the Z-Wave network manually:
+		1. Set the main controller in (Security/non-Security Mode) add mode (see the controller's manual).
+		2. Quickly, three times click one of the buttons.
+		3. If you are adding in Security S2 Authenticated, input the underlined part of the DSK (label on the box).
+		4. LED will start blinking yellow, wait for the adding process to end.
+		5. Adding result will be confirmed by the Z-Wave controller's message and the LED frame:
+  		- Green: successful (non-secure, S0, S2 non-authenticated),
+	  	- Magenta: successful (Security S2 Authenticated),
+		  - Red: not successful.
+		</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="2301">https://products.z-wavealliance.org/products/3883</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="2301">FGWCEU-201</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="2301">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Nouknouk - nouknouk@gmail.com" date="30 May 2022" revision="1">Initial Creation of config file</Entry>
+      <Entry author="Nouknouk - nouknouk@gmail.com" date="30 May 2022" revision="2">fix numgroups</Entry>
+		</ChangeLog>
+  </MetaData>
+  
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+
+    <Value genre="config" index="1" label="Remember device state" max="1" min="0" size="1" type="byte" value="1">
+		<Help>This parameter determines how the device will react in the event of power supply failure (e.g. power outage). The parameter is not relevant for outputs set to pulse mode (parameter 150/151 set to 2).
+		0 - remains switched off after restoring power
+		1 - restores remembered state after restoring power
+		</Help>
+    </Value>
+
+	<Value genre="config" index="2" label="Overload safety switch" max="5000" min="0" size="4" type="int" value="3500">
+		<Help>This function allows to turn off the controlled device in case of exceeding the defined power. Controlled device can be turned back on via the button or sending a control frame.
+		0 - function disabled
+		10-5000 - (1.0-500.0W, step 0.1W) – power threshold
+		</Help>
+    </Value>
+	
+	<Value genre="config" index="10" label="LED frame – power limit" max="5000" min="100" size="4" type="int" value="3500">
+		<Help>This parameter determines maximum active power. Exceeding it results in the LED frame flashing violet. Function is active only when parameter 11 is set to 8 or 9.
+		100-5000 - (10.0-500.0W, step 0.1W) – power threshold
+		</Help>
+    </Value>
+	
+	<Value genre="config" index="11" label="LED frame – colour when ON" max="9" min="0" size="1" type="list" value="1">
+		<Help>This parameter defines the LED colour when thedevice is ON. When set to 8 or 9, LED frame colour will change depending on he measured power and parameter 10. Other colours are set permanently and do not depend on power consumption.
+		</Help>
+		<Item label="LED disabled" value="0"/>
+		<Item label="White" value="1"/>
+		<Item label="Red" value="2"/>
+		<Item label="Green" value="3"/>
+		<Item label="Blue" value="4"/>
+		<Item label="Yellow" value="5"/>
+		<Item label="Cyan" value="6"/>
+		<Item label="Magenta" value="7"/>
+		<Item label="Colour changes smoothly depending on measured power" value="8"/>
+		<Item label="Colour changes in steps depending on measured power" value="9"/>
+    </Value>
+	
+	<Value genre="config" index="12" label="LED frame – colour when OFF" max="7" min="0" size="1" type="list" value="1">
+		<Help>This parameter defines the LED colour when the device is OFF.
+		</Help>
+		<Item label="LED disabled" value="0"/>
+		<Item label="White" value="1"/>
+		<Item label="Red" value="2"/>
+		<Item label="Green" value="3"/>
+		<Item label="Blue" value="4"/>
+		<Item label="Yellow" value="5"/>
+		<Item label="Cyan" value="6"/>
+		<Item label="Magenta" value="7"/>
+    </Value>
+	
+	<Value genre="config" index="13" label="LED frame – brightness" max="100" min="0" size="1" type="byte" value="100">
+		<Help>This parameter allows to adjust the LED frame brightness.
+		0 - LED disabled
+		1-100 - (1-100% brightness)
+		</Help>
+    </Value>
+	
+	<Value genre="config" index="20" label="Operation mode" max="1" min="0" size="1" type="list" value="0">
+		<Help>This parameter defines operation of the device.</Help>
+		<Item label="scene controller mode" value="0"/>
+		<Item label="double button mode" value="1"/>
+		<Item label="single button mode" value="2"/>
+		<Item label="switch controller mode" value="3"/>
+		<Item label="dimmer / roller shutter controller mode" value="4"/>
+		<Item label="roller shutter controller mode (step-by-step)" value="5"/>
+		<Item label="venetian blinds controller mode (step-by-step)" value="6"/>
+    </Value>
+
+	<Value genre="config" index="150" label="LED ring - first button" max="8" min="0" size="2" type="list" value="1">
+		<Help>This parameter defines the colour of first button indicator (upper part of the LED ring) for indications using Indicator CC.</Help>
+		<Item label="0 - LED disabled" value="0"/>
+		<Item label="1 - White" value="1"/>
+		<Item label="2 - Red" value="2"/>
+		<Item label="3 - Green" value="3"/>
+		<Item label="4 - Blue" value="4"/>
+		<Item label="5 - Yellow" value="5"/>
+		<Item label="6 - Cyan" value="6"/>
+		<Item label="7 - Magenta" value="7"/>
+		<Item label="8 + Blinking red-white-blue" value="8"/>
+    </Value>
+	
+	<Value genre="config" index="151" label="LED ring - second button" max="8" min="0" size="2" type="list" value="1">
+		<Help>This parameter defines the colour of second button indicator (lower part of the LED ring) for indications using Indicator CC.</Help>
+		<Item label="0 - LED disabled" value="0"/>
+		<Item label="1 - White" value="1"/>
+		<Item label="2 - Red" value="2"/>
+		<Item label="3 - Green" value="3"/>
+		<Item label="4 - Blue" value="4"/>
+		<Item label="5 - Yellow" value="5"/>
+		<Item label="6 - Cyan" value="6"/>
+		<Item label="7 - Magenta" value="7"/>
+		<Item label="8 + Blinking red-white-blue" value="8"/>
+    </Value>
+	
+	<Value genre="config" index="152" label="1st button - double click value" max="255" min="0" size="2" type="short" value="99">
+		<Help>This parameter defines value of Basic Set or Multilevel Set frame 
+		(depending on selected mode) sent to associated devices after double click. 
+		This parameter is not relevant for Scene Controller Mode.
+		0-99 or 255
+		</Help>
+    </Value>
+
+	<Value genre="config" index="153" label="2nd button - double click value" max="255" min="0" size="2" type="short" value="99">
+		<Help>This parameter defines value of Basic Set or Multilevel Set frame 
+		(depending on selected mode) sent to associated devices after double click. 
+		This parameter is used only in Double Button Mode.
+		0-99 or 255
+		</Help>
+    </Value>
+	
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="7">
+      <Group index="1" label="LifeLine" max_associations="1"/>
+      <Group index="2" label="On/Off (1)" max_associations="5"/>
+      <Group index="3" label="Dimmer (1)" max_associations="5"/>
+      <Group index="4" label="On/Off (2)" max_associations="5"/>
+      <Group index="5" label="Dimmer (2)" max_associations="5"/>
+      <Group index="6" label="Multidevice" max_associations="5"/>
+      <Group index="7" label="Slats" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/fibaro/fgwds221.xml b/config/fibaro/fgwds221.xml
index 0d3e876a31..6bfecfd876 100644
--- a/config/fibaro/fgwds221.xml
+++ b/config/fibaro/fgwds221.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
   <MetaData>
     <MetaDataItem name="Name">FGWDSEU-221 Walli Double Switch</MetaDataItem>
@@ -6,7 +6,7 @@
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010f:1000:1B01</MetaDataItem>
     <MetaDataItem name="ProductPage">https://www.fibaro.com/en/products/smart-switches-and-outlets-walli-switch/</MetaDataItem>
     <MetaDataItem name="ProductSupport">https://manuals.fibaro.com/walli-switch/</MetaDataItem>
-    <MetaDataItem name="ProductPic"><!-- path to images/vendor/product.png --></MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgwds221.png</MetaDataItem>
     <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=Manuals/3395/FGWDSEU-221-T-EN-0.19.pdf</MetaDataItem>
     <MetaDataItem name="WakeupDescription">FIBARO Walli Double Switch is powered using DC power supply unit so it is always awake.</MetaDataItem>
     <MetaDataItem name="InclusionDescription">To add the device to the Z-Wave network manually:
@@ -35,9 +35,11 @@
     <ChangeLog>
       <Entry author="Makooy - marc@makooy.nl" date="07 July 2019" revision="1">Initial Creation of config file - https://products.z-wavealliance.org/Products/3395/XML</Entry>
 	  <Entry author="Peter Gebruers - peter.gebruers@gmail.com" date="06 September 2019" revision="2">Change definition of params 30-34 to fix https://github.com/domoticz/domoticz/issues/3557</Entry>
+	  <Entry author="Justin Hammond" date="24 June 2020" revision="3">Add Product Picture</Entry>
+    <Entry author="Florent Coquelet" date="27 February 2021" revision="4">Typo corrections / default value for LED frame – colour when OFF</Entry>
     </ChangeLog>
   </MetaData>
-  
+
   <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
   <CommandClass id="112">
 
@@ -47,27 +49,27 @@
 		1 - restores remembered state after restoring power
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="2" label="First channel – overload safety switch" max="36200" min="0" size="4" type="int" value="0">
 		<Help>This function allows to turn 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.
 		0 - Function disabled
 		10-36200 - (1.0-3620.0W, step 0.1W) – Power threshold
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="3" label="Second channel – overload safety switch" max="36200" min="0" size="4" type="int" value="0">
 		<Help>This function allows to turn 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.
 		0 - Function disabled
 		10-36200 - (1.0-3620.0W, step 0.1W) – Power threshold
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="10" label="LED frame – power limit" max="30000" min="500" size="4" type="int" value="30000">
 		<Help>This parameter determines maximum active power. Exceeding it results in the LED frame flashing violet. Function is active only when parameter 11 is set to 8 or 9.
 		(50.0-3000.0W, step 0.1W) – power threshold
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="11" label="LED frame – colour when ON" max="9" min="0" size="1" type="list" value="1">
 		<Help>This parameter defines the LED colour when thedevice is ON. When set to 8 or 9, LED frame colour will change depending on he measured power and parameter 10. Other colours are set permanently and do not depend on power consumption.
 		</Help>
@@ -82,8 +84,8 @@
 		<Item label="Colour changes smoothly depending on measured power" value="8"/>
 		<Item label="Colour changes in steps depending on measured power" value="9"/>
     </Value>
-	
-	<Value genre="config" index="12" label="LED frame – colour when OFF" max="7" min="0" size="1" type="list" value="1">
+
+	<Value genre="config" index="12" label="LED frame – colour when OFF" max="7" min="0" size="1" type="list" value="0">
 		<Help>This parameter defines the LED colour when thedevice is ON. When set to 8 or 9, LED frame colour will change depending on he measured power and parameter 10. Other colours are set permanently and do not depend on power consumption.
 		</Help>
 		<Item label="LED disabled" value="0"/>
@@ -95,16 +97,16 @@
 		<Item label="Cyan" value="6"/>
 		<Item label="Magenta" value="7"/>
     </Value>
-	
+
 	<Value genre="config" index="13" label="LED frame – brightness" max="102" min="0" size="1" type="byte" value="100">
 		<Help>This parameter allows to adjust the LED frame brightness.
 		0 - LED disabled
 		1-100 - (1-100% brightness)
 		101 - brightness directly proportional to measured power
-		102 - brightness inversely proportional asured powerto me
+		102 - brightness inversely proportional to measured power
 		</Help>
     </Value>
-		
+
     <Value genre="config" index="20" label="Buttons operation" max="4" min="1" size="1" type="list" value="3">
 		<Help>This parameter defines how device buttons should control the channels.</Help>
 		<Item label="1st and 2nd button toggle both channels" value="1"/>
@@ -112,19 +114,19 @@
 		<Item label="1st button toggles 1st channel, 2nd button toggles 2nd channel" value="3"/>
 		<Item label="1st button single click turns 1st channel ON, 1st button double click turns 2nd channel ON, 2nd button single click turns both channels OFF" value="4"/>
 	</Value>
-		
+
     <Value genre="config" index="24" label="Buttons orientation" max="1" min="0" size="1" type="list" value="0">
 		<Help>This parameter allows reversing the operation of the buttons.</Help>
 		<Item label="Default (1st button controls 1st channel, 2nd button controls 2nd channel)" value="0"/>
 		<Item label="Reversed (1st button controls 2nd channel, 2nd button controls 1st channel)" value="1"/>
 	</Value>
-		
+
     <Value genre="config" index="25" label="Outputs orientation" max="1" min="0" size="1" type="list" value="0">
 		<Help>This parameter allows reversing the operation of Q1 and Q2 without changing the wiring (e.g. in case of invalid connection). Changing orientation turns both outputs off.</Help>
 		<Item label="Default (Q1 - 1st channel, Q2 - 2nd channel)" value="0"/>
 		<Item label="Reversed (Q1 - 2nd channel, Q2 - 1st channel)" value="1"/>
 	</Value>
-		
+
 	<Value type="int" index="30" genre="config" label="Alarm configuration - 1st slot" value="0" min="0" max="4294967295">
 		<Help>This parameter determines to which alarm frames and how the device should react. The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
 1B:  [MSB] Notification Type, 2B:  Notification Status, 3B: Event/State Parameters, 4B: [LSB] action
@@ -162,7 +164,7 @@
 		1-32400 - (1s-9h, 1s step) – Duration
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="40" label="First button – scenes sent" max="8" min="0" size="1" type="byte" value="0">
 		<Help>This parameter determines which actions result in sending scene IDs assigned to them. Values can be combined (e.g. 1+2=3 means that scenes for single and double click are sent). Enabling scenes for triple click disables entering the device in learn mode by triple clicking.
 				1 - Key pressed 1 time
@@ -171,7 +173,7 @@
 				8 - Key hold down and key released
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="41" label="Second button – scenes sent" max="8" min="0" size="1" type="byte" value="0">
 		<Help>This parameter determines which actions result in sending scene IDs assigned to them. Values can be combined (e.g. 1+2=3 means that scenes for single and double click are sent). Enabling scenes for triple click disables entering the device in learn mode by triple clicking.
 		1 - Key pressed 1 time
@@ -180,70 +182,70 @@
 		8 - Key hold down and key released
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="60" label="Power reports – include self-consumption" max="1" min="0" size="1" type="list" value="0">
 		<Help>This parameter determines whether the power measurements should include power consumed by the device itself.
 		</Help>
 		<Item label="Self-consumption not included" value="0"/>
 		<Item label="Self-consumption included" value="1"/>
     </Value>
-	
+
 	<Value genre="config" index="61" label="Power reports for first channel – on change" max="500" min="0" size="2" type="short" value="15">
 		<Help>This parameter defines minimal change (from the last reported) in measured power that results in sending new report. For loads under 50W the parameter is irrelevant, report are sent every 5W change.
 		0 - Reporting on change disabled
 		1-500 - (1-500%, 1% step) – Minimal change
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="62" label="Power reports for first channel – periodic" max="32400" min="0" size="2" type="short" value="3600">
 		<Help>This parameter defines reporting interval for measured power. Periodic reports are independent from changes in value (parameter 61).
 		0 - periodic reports disabled
 		30-32400 - (30s-9h, 1s step) – time interval
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="63" label="Power reports for second channel – on change" max="500" min="0" size="2" type="short" value="15">
 		<Help>This parameter defines minimal change (from the last reported) in measured power that results in sending new report. For loads under 50W the parameter is irrelevant, report are sent every 5W change.
 		0 - Reporting on change disabled
 		1-500 - (1-500%, 1% step) – Minimal change
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="64" label="Power reports for second channel – periodic" max="32400" min="0" size="2" type="short" value="3600">
 		<Help>This parameter defines reporting interval for measured power. Periodic reports are independent from changes in value (parameter 63).
 		0 - periodic reports disabled
 		30-32400 - (30s-9h, 1s step) – time interval
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="65" label="Energy reports for first channel – on change" max="500" min="0" size="2" type="short" value="10">
 		<Help>This parameter defines minimal change (from the last reported) in measured energy that results in sending new report.
 		0 - reporting on change disabled
 		1-500 - (0.01-5kWh, 0.01kWh step) – minimal change
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="66" label="Energy reports for first channel – periodic" max="32400" min="0" size="2" type="short" value="3600">
 		<Help>This parameter defines reporting interval for measured energy. Periodic reports are independent from changes in value (parameter 66).
 		0 - periodic reports disabled
 		30-32400 - (30s-9h, 1s step) – time interval
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="67" label="Energy reports for second channel – on change" max="500" min="0" size="4" type="int" value="10">
 		<Help>This parameter defines minimal change (from the last reported) in measured energy that results in sending new report.
 		0 - reporting on change disabled
 		1-500 - (0.01-5kWh, 0.01kWh step) – minimal change
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="68" label="Energy reports for second channel – periodic" max="32400" min="0" size="2" type="short" value="3600">
 		<Help>This parameter defines reporting interval for measured energy. Periodic reports are independent from changes in value (parameter 67).
 		0 - periodic reports disabled
 		30-32400 - (30s-9h, 1s step) – time interval
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="150" label="First channel – operating mode" max="2" min="0" size="1" type="list" value="0">
 		<Help>This parameter allows to choose operating for the 1st channel.
 		</Help>
@@ -251,7 +253,7 @@
 		<Item label="Delayed OFF" value="1"/>
 		<Item label="Single pulse" value="2"/>
     </Value>
-	
+
 	<Value genre="config" index="151" label="Second channel – operating mode" max="2" min="0" size="1" type="list" value="0">
 		<Help>This parameter allows to choose operating for the 2nd channel.
 		</Help>
@@ -259,15 +261,15 @@
 		<Item label="Delayed OFF" value="1"/>
 		<Item label="Single pulse" value="2"/>
     </Value>
-	
+
 	<Value genre="config" index="152" label="First channel - reaction to switch for delayed OFF / pulse 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 button for 1st channel. The parameter is relevant only for button toggles modes (parameter 20 set to 1 or 3).
 		</Help>
 		<Item label="Cancel mode and set default state" value="0"/>
 		<Item label="No reaction - mode runs until it ends" value="1"/>
 		<Item label="Reset timer - start counting from the beginning" value="2"/>
-    </Value>	
-	
+    </Value>
+
 	<Value genre="config" index="153" label="Second channel - reaction to switch for delayed OFF / pulse 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 button for 2nd channel. The parameter is relevant only for button toggles modes (parameter 20 set to 1 or 3).
 		</Help>
@@ -275,21 +277,21 @@
 		<Item label="No reaction - mode runs until it ends" value="1"/>
 		<Item label="Reset timer - start counting from the beginning" value="2"/>
     </Value>
-	
+
 	<Value genre="config" index="154" label="First channel - time parameter for delayed OFF / pulse modes" max="32000" min="1" size="2" type="short" value="50">
 		<Help>This parameter allows to set time parameter used in timed modes for 1st channel (parameter 150). Delay time for switching off or duration of the pulse.
 		0 - 0.1 second
 		1-32000 - 1-32000s, 1s step – time parameter
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="155" label="Second channel - time parameter for delayed OFF / pulse modes" max="32000" min="1" size="2" type="short" value="50">
 		<Help>This parameter allows to set time parameter used in timed modes for 2nd channel (parameter 151). Delay time for switching off or duration of the pulse.
 		0 - 0.1 second
 		1-32000 - 1-32000s, 1s step – time parameter
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="156" label="First channel – Switch ON value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="255">
 		<Help>This parameter defines value sent with Switch ON command to devices associated in 2nd and 3rd association group for manual changes of Endpoint 1 state.
 		0-99 - 2nd association group
@@ -317,14 +319,14 @@
 		255 - 5th association group
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="160" label="Second channel – Switch OFF value sent to 4th and 5th association groups" max="255" min="0" size="2" type="short" value="0">
 		<Help>This parameter defines value sent with Switch OFF command to devices associated in 4th and 5th association group for manual changes of Endpoint 2 state.
 		0-99 - 4th association group
 		255 - 5th association group
 		</Help>
     </Value>
-	
+
 	<Value genre="config" index="161" label="Second channel – Double Click value sent to 4th and 5th association groups" max="255" min="0" size="2" type="short" value="99">
 		<Help>This parameter defines value sent with Double Click command to devices associated in 4th and 5th association group for manual changes of Endpoint 2 state.
 		0-99 - 4th association group
@@ -339,8 +341,8 @@
       <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 S1" max_associations="5"/>
-      <Group index="5" 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>
 </Product>
diff --git a/config/fibaro/fgwds221ss.xml b/config/fibaro/fgwds221ss.xml
new file mode 100755
index 0000000000..2264983abe
--- /dev/null
+++ b/config/fibaro/fgwds221ss.xml
@@ -0,0 +1,262 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">FGWDSEU-221 Walli Double Switch</MetaDataItem>
+    <MetaDataItem name="Description">FIBARO Walli Double Switch is a smart wall switch designed to control one or two light sources via Z-Wave network. It measures active power and energy consumed by the controlled load.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010f:1000:1A01</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.fibaro.com/en/products/smart-switches-and-outlets-walli-switch/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://manuals.fibaro.com/walli-switch/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgwds221.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=Manuals/3395/FGWDSEU-221-T-EN-0.19.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">FIBARO Walli Double Switch is powered using DC power supply unit so it is always awake.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To add the device to the Z-Wave network manually:
+1. Power the device.
+2. Set the main controller in add mode(see the controller’s manual).
+3. Quickly, three times click one of the buttons.
+4. LED will start blinking yellow, wait for the adding process to end.
+5. Adding result will be confirmed by the Z-Wave controller’s message and the LED frame:
+• Green – successful (non-secure, S0, S2 non-authenticated),
+• Magenta – successful (Security S2 Authenticated),
+• Red – not successful.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To remove the device from the Z-Wave network:
+1. Power the device.
+2. Set the main controller into remove mode (see the controller’s manual).
+3. Quickly, three times click one of the buttons.
+4. LED will start blinking yellow, wait for the removing process to end.
+5. Successful removing will be confirmed by the Z-Wave controller’s message and red LED colour.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset procedure allows to restore the device back to its factory settings, which means all information about the Z-Wave controller and user configuration will be deleted. Resetting to factory defaults does not reset energy consumption memory.
+1. Quickly, three times click, then press and hold one of the buttons to enter the menu.
+2. Release button when the device glows yellow.
+3. Quickly click the button to confirm.
+4. After few seconds the device will be restarted, which is signalled with red LED colour.</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="1A01">https://products.z-wavealliance.org/products/3395</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="1A01">FGWDSEU-221</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="1A01">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Florent Coquelet" date="27 February 2021" revision="1">Initial Creation of config file - Copied over from Double switch mode (fgwds221)</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+
+    <Value genre="config" index="1" label="Remember device state" max="1" min="0" size="1" type="byte" value="1">
+		<Help>This parameter determines how the device will react in the event of power supply failure (e.g. power outage). The parameter is not relevant for outputs set to pulse mode (parameter 150/151 set to 2).
+		0 - remains switched off after restoring power
+		1 - restores remembered state after restoring power
+    For parameter "Buttons operation" (20) set to 2-way/3-way switch configuration (3), value 0 is not supported.
+		</Help>
+    </Value>
+
+	<Value genre="config" index="2" label="First channel – overload safety switch" max="45000" min="0" size="4" type="int" value="0">
+		<Help>This function allows to turn 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.
+		0 - Function disabled
+		10-45000 (1.0-4500.0W, step 0.1W) – power  threshold
+		</Help>
+    </Value>
+
+	<Value genre="config" index="10" label="LED frame – power limit" max="36800" min="500" size="4" type="int" value="36800">
+		<Help>This parameter determines maximum active power. Exceeding it results in the LED frame flashing violet. Function is active only when parameter 11 is set to 8 or 9.
+		500-36800 (50.0-3680.0W, step 0.1W) – power  threshold
+		</Help>
+    </Value>
+
+	<Value genre="config" index="11" label="LED frame – colour when ON" max="9" min="0" size="1" type="list" value="1">
+		<Help>This parameter defines the LED colour when thedevice is ON. When set to 8 or 9, LED frame colour will change depending on he measured power and parameter 10. Other colours are set permanently and do not depend on power consumption.
+		</Help>
+		<Item label="LED disabled" value="0"/>
+		<Item label="White" value="1"/>
+		<Item label="Red" value="2"/>
+		<Item label="Green" value="3"/>
+		<Item label="Blue" value="4"/>
+		<Item label="Yellow" value="5"/>
+		<Item label="Cyan" value="6"/>
+		<Item label="Magenta" value="7"/>
+		<Item label="Colour changes smoothly depending on measured power" value="8"/>
+		<Item label="Colour changes in steps depending on measured power" value="9"/>
+    </Value>
+
+	<Value genre="config" index="12" label="LED frame – colour when OFF" max="7" min="0" size="1" type="list" value="0">
+		<Help>This parameter defines the LED colour when thedevice is ON. When set to 8 or 9, LED frame colour will change depending on he measured power and parameter 10. Other colours are set permanently and do not depend on power consumption.
+		</Help>
+		<Item label="LED disabled" value="0"/>
+		<Item label="White" value="1"/>
+		<Item label="Red" value="2"/>
+		<Item label="Green" value="3"/>
+		<Item label="Blue" value="4"/>
+		<Item label="Yellow" value="5"/>
+		<Item label="Cyan" value="6"/>
+		<Item label="Magenta" value="7"/>
+    </Value>
+
+	<Value genre="config" index="13" label="LED frame – brightness" max="102" min="0" size="1" type="byte" value="100">
+		<Help>This parameter allows to adjust the LED frame brightness.
+		0 - LED disabled
+		1-100 - (1-100% brightness)
+		101 - brightness directly proportional to measured power
+		102 - brightness inversely proportional to measured power
+		</Help>
+    </Value>
+
+    <Value genre="config" index="20" label="Buttons operation" max="3" min="1" size="1" type="list" value="1">
+		<Help>This parameter defines how device buttons should control the channels.</Help>
+		<Item label="1st and 2nd button toggle the load" value="1"/>
+		<Item label="1st button turns the load ON, 2nd button turns the load OFF" value="2"/>
+		<Item label="device works in 2-way/3-way switch configuration" value="3"/>
+	</Value>
+
+    <Value genre="config" index="24" label="Buttons orientation" max="1" min="0" size="1" type="list" value="0">
+		<Help>This parameter allows reversing the operation of the buttons.
+    For parameter "Buttons operation" (20) set to 2-way/3-way switch configuration (3), value 1 is not supported.</Help>
+		<Item label="Default (1st button controls 1st channel, 2nd button controls 2nd channel)" value="0"/>
+		<Item label="Reversed (1st button controls 2nd channel, 2nd button controls 1st channel)" value="1"/>
+	</Value>
+
+	<Value type="int" index="30" genre="config" label="Alarm configuration - 1st slot" value="0" min="0" max="4294967295">
+		<Help>This parameter determines to which alarm frames and how the device should react. The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B:  [MSB] Notification Type, 2B:  Notification Status, 3B: Event/State Parameters, 4B: [LSB] action
+0xX0: no action on output, 0xX1: turn ON, 0xX2: turn OFF, 0xX3: turn ON/OFF continuously, 0x0X: no action on LED frame, 0x1X: LED frame blinks red, 0x2X: LED frame blinks green, 0x4X: LED frame blinks blue, 0x8X: disable LED frame, 0xFX: LED frame LAPD signal (red-white-blue)
+		</Help>
+	</Value>
+	<Value type="int" index="31" genre="config" label="Alarm configuration - 2nd slot" value="0" min="0" max="4294967295">
+		<Help>This parameter determines to which alarm frames and how the device should react. The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B:  [MSB] Notification Type, 2B:  Notification Status, 3B: Event/State Parameters, 4B: [LSB] action
+0xX0: no action on output, 0xX1: turn ON, 0xX2: turn OFF, 0xX3: turn ON/OFF continuously, 0x0X: no action on LED frame, 0x1X: LED frame blinks red, 0x2X: LED frame blinks green, 0x4X: LED frame blinks blue, 0x8X: disable LED frame, 0xFX: LED frame LAPD signal (red-white-blue)
+		</Help>
+	</Value>
+	<Value type="int" index="32" genre="config" label="Alarm configuration - 3rd slot" value="0" min="0" max="4294967295">
+		<Help>This parameter determines to which alarm frames and how the device should react. The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B:  [MSB] Notification Type, 2B:  Notification Status, 3B: Event/State Parameters, 4B: [LSB] action
+0xX0: no action on output, 0xX1: turn ON, 0xX2: turn OFF, 0xX3: turn ON/OFF continuously, 0x0X: no action on LED frame, 0x1X: LED frame blinks red, 0x2X: LED frame blinks green, 0x4X: LED frame blinks blue, 0x8X: disable LED frame, 0xFX: LED frame LAPD signal (red-white-blue)
+		</Help>
+	</Value>
+	<Value type="int" index="33" genre="config" label="Alarm configuration - 4th slot" value="0" min="0" max="4294967295">
+		<Help>This parameter determines to which alarm frames and how the device should react. The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B:  [MSB] Notification Type, 2B:  Notification Status, 3B: Event/State Parameters, 4B: [LSB] action
+0xX0: no action on output, 0xX1: turn ON, 0xX2: turn OFF, 0xX3: turn ON/OFF continuously, 0x0X: no action on LED frame, 0x1X: LED frame blinks red, 0x2X: LED frame blinks green, 0x4X: LED frame blinks blue, 0x8X: disable LED frame, 0xFX: LED frame LAPD signal (red-white-blue)
+		</Help>
+	</Value>
+	<Value type="int" index="34" genre="config" label="Alarm configuration - 5th slot" value="0" min="0" max="4294967295">
+		<Help>This parameter determines to which alarm frames and how the device should react. The parameters consist of 4 bytes, three most significant bytes are set according to the official Z-Wave protocol specification.
+1B:  [MSB] Notification Type, 2B:  Notification Status, 3B: Event/State Parameters, 4B: [LSB] action
+0xX0: no action on output, 0xX1: turn ON, 0xX2: turn OFF, 0xX3: turn ON/OFF continuously, 0x0X: no action on LED frame, 0x1X: LED frame blinks red, 0x2X: LED frame blinks green, 0x4X: LED frame blinks blue, 0x8X: disable LED frame, 0xFX: LED frame LAPD signal (red-white-blue)
+		</Help>
+	</Value>
+
+	<Value genre="config" index="35" label="Alarm configuration – duration" max="32400" min="0" size="2" type="short" value="600">
+		<Help>This parameter defines duration of alarm sequence.  When time set in this parameter elapses, alarm is cancelled, LED frame and relay restore normal operation, but do not recover state from before the alarm.
+		0 - Infinite
+		1-32400 - (1s-9h, 1s step) – Duration
+		</Help>
+    </Value>
+
+	<Value genre="config" index="40" label="First button – scenes sent" max="8" min="0" size="1" type="byte" value="0">
+		<Help>This parameter determines which actions result in sending scene IDs assigned to them. Values can be combined (e.g. 1+2=3 means that scenes for single and double click are sent). Enabling scenes for triple click disables entering the device in learn mode by triple clicking.
+				1 - Key pressed 1 time
+				2 - Key pressed 2 time
+				4 - Key pressed 3 time
+				8 - Key hold down and key released
+		</Help>
+    </Value>
+
+	<Value genre="config" index="41" label="Second button – scenes sent" max="8" min="0" size="1" type="byte" value="0">
+		<Help>This parameter determines which actions result in sending scene IDs assigned to them. Values can be combined (e.g. 1+2=3 means that scenes for single and double click are sent). Enabling scenes for triple click disables entering the device in learn mode by triple clicking.
+		1 - Key pressed 1 time
+		2 - Key pressed 2 time
+		4 - Key pressed 3 time
+		8 - Key hold down and key released
+		</Help>
+    </Value>
+
+	<Value genre="config" index="60" label="Power reports – include self-consumption" max="1" min="0" size="1" type="list" value="0">
+		<Help>This parameter determines whether the power measurements should include power consumed by the device itself.
+		</Help>
+		<Item label="Self-consumption not included" value="0"/>
+		<Item label="Self-consumption included" value="1"/>
+    </Value>
+
+	<Value genre="config" index="61" label="Power reports for first channel – on change" max="500" min="0" size="2" type="short" value="15">
+		<Help>This parameter defines minimal change (from the last reported) in measured power that results in sending new report. For loads under 50W the parameter is irrelevant, report are sent every 5W change.
+		0 - Reporting on change disabled
+		1-500 - (1-500%, 1% step) – Minimal change
+		</Help>
+    </Value>
+
+	<Value genre="config" index="62" label="Power reports for first channel – periodic" max="32400" min="0" size="2" type="short" value="3600">
+		<Help>This parameter defines reporting interval for measured power. Periodic reports are independent from changes in value (parameter 61).
+		0 - periodic reports disabled
+		30-32400 - (30s-9h, 1s step) – time interval
+		</Help>
+    </Value>
+
+	<Value genre="config" index="65" label="Energy reports for first channel – on change" max="500" min="0" size="2" type="short" value="10">
+		<Help>This parameter defines minimal change (from the last reported) in measured energy that results in sending new report.
+		0 - reporting on change disabled
+		1-500 - (0.01-5kWh, 0.01kWh step) – minimal change
+		</Help>
+    </Value>
+
+	<Value genre="config" index="66" label="Energy reports for first channel – periodic" max="32400" min="0" size="2" type="short" value="3600">
+		<Help>This parameter defines reporting interval for measured energy. Periodic reports are independent from changes in value (parameter 66).
+		0 - periodic reports disabled
+		30-32400 - (30s-9h, 1s step) – time interval
+		</Help>
+    </Value>
+
+	<Value genre="config" index="150" label="First channel – operating mode" max="2" min="0" size="1" type="list" value="0">
+		<Help>This parameter allows to choose operating for the 1st channel.
+    For parameter "Buttons operation" (20) set to 2-way/3-way switch configuration (3), delayed OFF (value 1) is not supported.
+		</Help>
+		<Item label="Standard operation" value="0"/>
+		<Item label="Delayed OFF" value="1"/>
+		<Item label="Single pulse" value="2"/>
+    </Value>
+
+	<Value genre="config" index="152" label="First channel - reaction to switch for delayed OFF / pulse 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 button for 1st channel. The parameter is relevant only for button toggles modes (parameter 20 set to 1 or 3).
+      For parameter "Buttons operation" (20) set to 2-way/3-way switch configuration (3), only value 0 (set default state) is supported.
+		</Help>
+		<Item label="Cancel mode and set default state" value="0"/>
+		<Item label="No reaction - mode runs until it ends" value="1"/>
+		<Item label="Reset timer - start counting from the beginning" value="2"/>
+    </Value>
+
+	<Value genre="config" index="154" label="First channel - time parameter for delayed OFF / pulse modes" max="32000" min="1" size="2" type="short" value="50">
+		<Help>This parameter allows to set time parameter used in timed modes for 1st channel (parameter 150). Delay time for switching off or duration of the pulse.
+		0 - 0.1 second
+		1-32000 - 1-32000s, 1s step – time parameter
+    For parameter "Buttons operation" (20) set to 2-way/3-way switch configuration (3) and parameter "First channel – operating mode" (150) set to single pulse (2), this parameter should not be lower than 5 (5s).
+		</Help>
+    </Value>
+
+	<Value genre="config" index="156" label="First channel – Switch ON value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="255">
+		<Help>This parameter defines value sent with Switch ON command to devices associated in 2nd and 3rd association group for manual changes of Endpoint 1 state.
+		0-99 - 2nd association group
+		255 - 3rd association group
+		</Help>
+    </Value>
+
+	<Value genre="config" index="157" label="First channel – Switch OFF value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="0">
+		<Help>This parameter defines value sent with Switch OFF command to devices associated in 2nd and 3rd association group for manual changes of Endpoint 1 state.
+		0-99 - 2nd association group
+		255 - 3rd association group
+		</Help>
+    </Value>
+
+	<Value genre="config" index="158" label="First channel – Double Click value sent to 2nd and 3rd association groups" max="255" min="0" size="2" type="short" value="99">
+		<Help>This parameter defines value sent with Double Click command to devices associated in 2nd and 3rd association group for manual changes of Endpoint 1 state.
+		0-99 - 2nd association group
+		255 - 3rd association group
+		</Help>
+    </Value>
+
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <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"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/fibaro/fgwpb121.xml b/config/fibaro/fgwpb121.xml
new file mode 100644
index 0000000000..94fe8221bf
--- /dev/null
+++ b/config/fibaro/fgwpb121.xml
@@ -0,0 +1,252 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">FIBARO Wall Plug</MetaDataItem>
+    <MetaDataItem name="Description">FIBARO Wall Plug is a remotely controlled plug-in switch with the ability to measure power and energy consumption. It uses a LED frame to visualize the current load and operating mode with color changing illumination. FIBARO Wall Plug makes it possible to control electrical devices in a convenient and maintenance-free way. It is also equipped with a USB charging port with power metering.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010f:2000:1401</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.fibaro.com/us/products/wall-plug/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://manuals.fibaro.com/wall-plug-us/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fibaro/fgwpb121.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://manuals.fibaro.com/content/manuals/en/FGWPB-121/FGWPB-121-EN-T-v1.0.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To add the device to the Z-Wave network:
+1. Plug the device into a socket nearby the main Z-Wave controller.
+2. The LED frame will glow red signaling not being added (reset or
+remove the device otherwise).
+3. Set the main controller in (Security/non-Security Mode) add mode
+(see the controller’s manual).
+4. Quickly, triple click the button located on the casing
+5. If you are adding in S2 authenticated mode, type in the device pin
+code (underlined part of the public key available on the device or
+in the manual).
+6. Wait for the adding process to end.
+7. Successful adding will be confirmed by the Z-Wave controller’s
+message.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To remove the device from the Z-Wave network:
+1. Plug the device into a socket nearby the main Z-Wave controller.
+2. The LED frame will glow green signaling being added (removing
+is not necessary otherwise).
+3. Set the main controller into remove mode (see the controller’s
+manual).
+4. Quickly, triple click the button located on the casing.
+5. Wait for the removing process to end.
+6. Successful 
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset procedure allows to restore the device back to its factory settings, which means all information about the Z-Wave controller and user configuration will be deleted. In order to reset the device:
+1. Make sure the device is powered.
+2. Press and hold the button.
+3. Wait for the LED frame to glow yellow (3rd menu position).
+4. Release the button.
+5. Click the button once to confirm selection.
+6. After few seconds the device will restart with factory settings,
+which is signaled with the red frame color.
+    </MetaDataItem>
+    <MetaDataItem id="2000" name="ZWProductPage" type="1401">https://products.z-wavealliance.org/products/2622/</MetaDataItem>
+    <MetaDataItem id="2000" name="FrequencyName" type="1401">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="2000" name="Identifier" type="1401">FGWPM-121</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Matt Peterson - matt@peterson.org" date="14 Dec 2020" revision="1">Initial Metadata Import</Entry>
+    </ChangeLog>
+    <MetaDataItem name="WakeupDescription">The FIBARO Wall Plug is powered with the mains voltage so it is always awake.</MetaDataItem>
+  </MetaData>
+    <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).
+                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.
+                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.
+                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.
+                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.
+                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.
+                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.
+                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.
+                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.
+                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.
+                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.
+                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.
+                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.
+                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.
+                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).
+                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.
+                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.
+                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.
+                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>
diff --git a/config/firstalert/zcombo-g.xml b/config/firstalert/zcombo-g.xml
new file mode 100644
index 0000000000..e32434b3c4
--- /dev/null
+++ b/config/firstalert/zcombo-g.xml
@@ -0,0 +1,48 @@
+<Product Revision="1"
+  xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">ZCombo-G Smoke/CO Alarm</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0138:0003:0001</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://products.z-wavealliance.org/products/3886</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/firstalert/zcombo-g.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3886/User_Manual_M08-0456-173833_D2.pdf</MetaDataItem>
+    <MetaDataItem name="Description">The Z-Wave Smoke/CO alarm can be implemented in residential and institutional applications. Installation settings include sleeping areas within hospitals, hotels, motels, dormitories and other multi-family dwellings that are defined in standard NFPA 101. The First Alert ZCOMBO-G Smoke and Carbon Monoxide Detector has been fully tested and complies with UL217, UL2034, CSFM, NFPA 720, NFPA 101 and other agencies that model their codes after the above agencies. The combination alarm meets building codes that require the use of a battery operated Z-Wave wireless Smoke and CO detector. This First Alert Z-Wave Combination Alarm includes silence features and meets the model building codes published by the ICC.
+    The First Alert Z-Wave Combo Alarm includes: an insect screened photoelectric smoke sensing chamber, electrochemical carbon monoxide sensor, 85dB horn, supervised 3V (2 AA batteries) power supply, full function test switch and a silence feature.
+    The First Alert Z-Wave Enabled Battery Smoke &amp; Carbon Monoxide Combo Alarm includes a battery drawer that prevents battery removal and tamper resistant locking pins that lock the alarm to the mounting bracket. This First Alert Combination Alarm is an ideal fit for any number of applications that include apartments, dormitories, and hotels. Designed for wall or ceiling mounting, this alarm includes all of the required mounting anchors and screws needed for easy installation.
+    </MetaDataItem>
+    <MetaDataItem name="WakeupDescription">To manual wake-up the device, slide the battery door open wait for ~5 seconds and then slide the battery drawer closed. Upon power-up, the device will send the wake-up notification.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Slide battery door open.
+2. Insert batteries checking the correct orientation.
+3. Press and hold the test button. Keep it held down as you slide the battery drawer closed. You may then release the button.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Slide battery door open.
+2. Insert batteries checking the correct orientation.
+3. Press and hold the test button. Keep it held down as you slide the battery drawer closed. You may then release the button.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">If the device is powered up with the test button held down for 10+ seconds, the device will reset all Z-Wave settings and leave the network.
+Upon completion of the Reset operation, the LED will glow and the horn will sound for ~1 second.
+Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+    </MetaDataItem>
+    <MetaDataItem id="0003" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/3886/</MetaDataItem>
+    <MetaDataItem id="0003" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0003" name="Identifier" type="0001">ZCOMBO</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Richard Tallent - richard@tallent.us" date="11 Oct 2020" revision="1">Copy from ZCOMBO, update based on Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3886/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="SuperVision report timeout" size="2" type="short" value="1500" units="ms" min="500" max="5000">
+      <Help>ZCOMBO will send the message over SuperVision Command Class and it will wait for the SuperVision report from the Controller for the SuperVision report timeout time.</Help>
+    </Value>
+    <Value genre="config" index="2" label="SuperVision retry count" size="2" type="short" value="1" units="" min="0" max="5">
+      <Help>If the SuperVision report is not received within the SuperVision report timeout time, the ZCOMBO will retry sending the message again. Upon exceeding the max retry, the ZCOMBO device will send the next message available in the queue.</Help>
+    </Value>
+    <Value genre="config" index="3" label="SuperVision wait time" size="2" type="short" value="5" units="sec" min="1" max="60">
+      <Help>Before retrying the message, ZCOMBO will wait for the SuperVision wait time. Actual wait time is calculated using the formula: Wait Time = SuperVision wait time base-value + random-value + (attempt-count x 5 seconds). The random value will be between 100 and 1100 milliseconds.
+      </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/firstalert/zsmoke.xml b/config/firstalert/zsmoke.xml
new file mode 100644
index 0000000000..d086080b5c
--- /dev/null
+++ b/config/firstalert/zsmoke.xml
@@ -0,0 +1,29 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/firstalert/zsmoke.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/863/</MetaDataItem>
+    <MetaDataItem name="Description">Smoke Alarm</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">ZSMOKE</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Name">Smoke Alarm</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Steve28" date="31 Jul 2020" revision="1">Initial release - modified from zcombo</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- First Alert ZSmoke Smoke Detector -->
+ 
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <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" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/fortrezz/fts05p.xml b/config/fortrezz/fts05p.xml
new file mode 100755
index 0000000000..cdb4877283
--- /dev/null
+++ b/config/fortrezz/fts05p.xml
@@ -0,0 +1,78 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">FTS05P Flood &amp; Temperature Sensor</MetaDataItem>
+    <MetaDataItem name="Description">Water damages are caused by leaking pipes and faulty appliances. Place sensors in areas near water consuming appliances. If a leak occurs, water will puddle and wet the sensor, triggering an alarm.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0084:020a:00a3</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.fortrezz.com/shop/flood-sensor-w-probe</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.fortrezz.com/support</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/fortrezz/fts05p.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2458/User%20Manual%20FTS05-FTS05P.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">To initiate manual wakeup, press the program button once, while in network. Device stays awake for 10 seconds or longer if communicating with the controller.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1) Set up the Add/Inclusion mode at the controller; 2) Briefly press the switch once and the controller will indicate the unit has been added into the network. Also, the LED will blink 2 quick blinks when complete.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1) Set up the Remove/Exclusion mode at the controller; 2) Press and hold the switch for approx. 2 seconds and then release. The controller will indicates the unit has been removed from the network. The LED will blink 4 quick blinks when complete.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Reset the device to factory Defaults - Press and hold the program button for longer than 15 seconds. When complete, the LED will flash approx. 30 times. This can be done while the device is either in or out of a network. Please use this procedure only when the network primary controller is missing or otherwise inoperable. Caution – When this is done in-network, the device will no longer be in the network and all configurations and associations will be set to default.</MetaDataItem>
+    <MetaDataItem id="020a" name="ZWProductPage" type="00a3">https://products.z-wavealliance.org/products/2458</MetaDataItem>
+    <MetaDataItem id="020a" name="FrequencyName" type="00a3">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="020a" name="Identifier" type="00a3">FTS05P</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Tommy Long - tommylong@bellsouth.net" date="20 Jan 2020" revision="1">Initial entry from Z-Wave Alliance Database and from Manufacturer's website.</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Temperature Low Threshold" max="255" min="0" type="byte" units="C" value="4">
+      <Help>
+                        Use this to change the low temperature alarm threshold. Set the range between -10 and 69 deg C.
+			Note: The user configuration value is a positive decimal integer 0 through 255, but the device
+                        interprets the value as 8-bit Two's complement.  Examples:
+                           -10 in Two's complement is 246 decimal (0xF6).
+                           -2 in Two's complement is 254 decimal (xFE)
+                           -1 in Two's complement is 255 decimal (xFF)
+                           0 in Two's complement is 0 decimal (0x00).
+                           69 in Two's complement is 69 decimal (0x45).
+                        Thus the valid range the user may enter is 0-69 and 246-255.
+			</Help>
+    </Value>
+    <Value genre="config" index="2" label="Temperature High Threshold" max="255" min="0" type="byte" units="C" value="70">
+      <Help>
+                        Use this to change the high temperature alarm threshold. Set the range between -9 and 70 deg C.
+			Note: The user configuration value is a positive decimal integer 0 through 255, but the device
+                        interprets the value as 8-bit Two's complement.  Examples:
+                           -9 in Two's complement is 247 decimal (0xF7).
+                           -2 in Two's complement is 254 decimal (xFE)
+                           -1 in Two's complement is 255 decimal (xFF)
+                           0 in Two's complement is 0 decimal (0x00).
+                           70 in Two's complement is 70 decimal (0x46).
+                        Thus the valid range the user may enter is 0-70 and 247-255.
+			</Help>
+    </Value>
+    <Value genre="config" index="3" label="Normally Wet vs Normally Dry" max="240" min="0" type="byte" units="" value="0">
+      <Help>
+                        Default is set as a Normally DRY sensor. Use this to switch to Normally WET sensor.
+			The device only accepts one of two possible values:
+                          0   (0x00) - Normally Dry (default).
+                          240 (0xF0) - Normally Wet.
+			</Help>
+    </Value>
+    <Value genre="config" index="4" label="Water Alarm Association Mode" max="240" min="0" type="byte" units="" value="240">
+      <Help>
+                        Use this to send basic set ON or Basic Set OFF when an alarm is detected. 
+			The device only accepts one of two possible values:
+                          0   (0x00) - For sending basic set OFF when alarm detected.
+                          240 (0xF0) - For sending basic Set ON (default) when alarm detected. 
+			</Help>
+    </Value>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="8">
+      <Group index="1" label="LifeLine" max_associations="2"/>
+      <Group index="2" label="Water Alarm" max_associations="2"/>
+      <Group index="3" label="High Temperature Alarm" max_associations="2"/>
+      <Group index="4" label="Low Temperature Alarm" max_associations="2"/>
+      <Group index="5" label="Temperature Report When Changed" max_associations="2"/>
+      <Group index="6" label="Temperature Report Every 5 minutes" max_associations="2"/>
+      <Group index="7" label="Temperature Report Every 20 minutes" max_associations="2"/>
+      <Group index="8" label="Temperature Report Every 60 minutes" max_associations="2"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/ge/12720.xml b/config/ge/12720.xml
new file mode 100644
index 0000000000..b47200a28b
--- /dev/null
+++ b/config/ge/12720.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/0063:3130:6363</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/14284.png</MetaDataItem>
+    <MetaDataItem id="3130" name="ZWProductPage" type="6363">https://products.z-wavealliance.org/products/1194/</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. </MetaDataItem>
+    <MetaDataItem id="3130" name="Identifier" type="6363">12720/ZW4201</MetaDataItem>
+    <MetaDataItem name="ProductManual">http://z-wave-assets.s3-us-west-2.amazonaws.com/docs/138/B0013V8K3O_GE_Jasco_Z-Wave_Plug-in_Outdoor_Smart_Switch_12720_Manual.pdf</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the GE Z-Wave Outdoor Smart Switch. The lighting control enables wireless control of on/off functions for outdoor applications, and is compatible with incandescent, LED, Xenon, Halogen, fluorescent and compact fluorescent bulbs. The weather-resistant housing with a protective outlet cover safeguards the outlet from dirt and debris when not in use. The discreet black color blends in with any outdoor environment. Perfect for decorative or seasonal lighting, fountains and other outdoor plug-in appliances. 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>
+    <MetaDataItem name="Name">Plug-in Outdoor Smart Switch</MetaDataItem>
+    <MetaDataItem id="3032" name="FrequencyName" type="6363">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for you Z-Wave certified controller to include the smart switch to the Z-Wave network. 
+2. Once the controller is ready to include your outdoor smart switch, press and release the manual/program button on the smart switch 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>
+    <ChangeLog>
+      <Entry author="mike240se" date="26 June 2020" revision="1">Initial Metadata added - https://products.z-wavealliance.org/products/1194/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/config/ge/12724-dimmer.xml b/config/ge/12724-dimmer.xml
index a40b21a875..dd1d3755af 100644
--- a/config/ge/12724-dimmer.xml
+++ b/config/ge/12724-dimmer.xml
@@ -1,4 +1,4 @@
-<!-- GE(Jasco) 12724 3-Way Dimmer Switch --><Product Revision="9" xmlns="https://github.com/OpenZWave/open-zwave">
+<!-- GE(Jasco) 12724 3-Way Dimmer Switch --><Product Revision="11" 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>
@@ -12,13 +12,15 @@
     <MetaDataItem id="3032" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
     <MetaDataItem id="3032" name="Identifier" type="4944">12725 / ZW3006</MetaDataItem>
     <ChangeLog>
-       <Entry author="Shaun Feakes" date="04 Sep 2019" revision="9">Update for 3032</Entry>
       <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>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2103/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="8">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2506/xml</Entry>
+      <Entry author="Shaun Feakes" date="04 Sep 2019" revision="9">Update for 3032</Entry>
+      <Entry author="Justin Hammond" date="26 June 2020" revision="10">Add Verifed Change Flag</Entry>
+      <Entry author="Brian France" date="23 Nov 2020" revision="11">Added COMMAND_CLASS_BASIC block to set Value type instead of Node Event for Basic Set, Added COMMAND_CLASS_ASSOCIATION block for double tap with double tap defauled to auto</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>
@@ -71,4 +73,24 @@ Note: This should only be used in the event your network’s primary controller
       <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="38">
+    <Compatibility>
+      <VerifyChanged index="0">true</VerifyChanged>
+    </Compatibility>
+  </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" auto="true" />
+    </Associations>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <IgnoreMapping>true</IgnoreMapping>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/config/ge/14280-plugin-dimmer.xml b/config/ge/14280-plugin-dimmer.xml
new file mode 100644
index 0000000000..b840747682
--- /dev/null
+++ b/config/ge/14280-plugin-dimmer.xml
@@ -0,0 +1,58 @@
+<Product Revision="0" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">none</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/14280-plugin-dimmer.png</MetaDataItem>
+    <MetaDataItem id="3033" name="ZWProductPage" type="5044">https://products.z-wavealliance.org/products/2139/</MetaDataItem>
+    <MetaDataItem name="Name">Plug-in Smart Dimmer, Dual Plug With Simultaneous Control</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=%26filename=MarketCertificationFiles/2139/Binder1.pdf</MetaDataItem>
+    <MetaDataItem id="3033" name="FrequencyName" type="5044">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ResetDescription"></MetaDataItem>
+    <MetaDataItem name="InclusionDescription"></MetaDataItem>
+    <MetaDataItem name="Description"></MetaDataItem>
+    <MetaDataItem id="3033" name="Identifier" type="5044">14280/ZW3107</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription"></MetaDataItem>
+    <ChangeLog>
+      <Entry author="Travis Geis - travis@travisgeis.com" date="27 August 2020" revision="0">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2139/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>
+    <!-- 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>
+  <CommandClass id="38">
+    <Compatibility>
+      <VerifyChanged index="0">true</VerifyChanged>
+    </Compatibility>
+  </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/14285.xml b/config/ge/14285.xml
new file mode 100644
index 0000000000..b923bae7ea
--- /dev/null
+++ b/config/ge/14285.xml
@@ -0,0 +1,58 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+<MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3032:4F44</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/14285.png</MetaDataItem>
+    <MetaDataItem id="3032" name="ZWProductPage" type="4F44">https://products.z-wavealliance.org/products/2939/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1.  Place the device into ON mode (upper position of Operating Mode Switch)
+2.  Press and hold the programming button.
+3.  While holding programming button, place device into OFF mode (middle position of Operating Mode Switch).
+4.  While holding programming button, place device back into ON mode (upper position of Operating Mode Switch).
+5.  After three (3) seconds, release programming button.  Green LED will flash 3 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="3032" name="Identifier" type="4F44">14285/ZW4007</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2939/14285%20QSG.pdf</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the GE 40 Amp Z-Wave Direct-Wire Indoor/Outdoor Smart Switch. When added to a Z-Wave network, the heavy duty switch enables wireless control of on/off functions for large load, hard-wired applications such as waters heaters, landscape lighting, spas, pool pumps and heaters. The Smart Switch can be used indoors or outdoors and features an easy access wire connection block, front mounted LED lights indicating power and on/off status, and an override switch to turn connected devices on or off manually. The Smart Switch is housed in a lockable, tamper-resistant case to ensure settings and wiring are secure. The rugged, weather-resistant design will keep out dirt and debris while being suitable for use in extreme weather conditions. The GE Z-Wave Direct-Wire Outdoor Smart Switch is also equipped with state-of-the-art energy monitoring capability, allowing you to monitor watts and kilowatt hours, helping you keep your energy costs to a minimum. Take control of your home lighting and large load devices with GE Z-Wave Smart Lighting Controls!</MetaDataItem>
+    <MetaDataItem name="Name">Direct-Wire Outdoor Smart Switch</MetaDataItem>
+    <MetaDataItem id="3032" name="FrequencyName" type="4F44">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1.  Follow the instructions for your Z-Wave certified controller to add a device to the Z-Wave network.
+2.  Once the controller is ready to add your device, press and release the programming button to add it to the network.  If prompted by the controller to enter the S2 security code, refer to the QR code/security number on the back of the box, or the QR code label on the product.
+3.  Once your controller has confirmed that the device has been added, refresh the Z-Wave network to optimize performance.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1.  Follow the instructions for your Z-Wave certified controller to remove a device from the Z-Wave network.
+2.  Once the controller is ready to remove your device press and release the programming button to remove it from the network.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="John Klimek - jklimek@gmail.com" date="8 June 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2939/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="0" label="Product State after Power Reset" units="" size="1" min="0" max="2" type="list">
+      <Help>Product State after Power Reset</Help>
+      <Item value="0" label="Return to last state"/>
+      <Item value="1" label="Return to off"/>
+      <Item value="2" label="Return to on"/>
+    </Value>
+    <Value genre="config" instance="1" index="2" value="0" label="Energy Report Mode" units="" size="1" min="0" max="2" type="list">
+      <Help>Energy Report Mode</Help>
+      <Item value="0" label="Once monthly"/>
+      <Item value="1" label="Reports based on Parameter 3 setting"/>
+      <Item value="2" label="Once daily"/>
+    </Value>
+    <Value genre="config" instance="1" index="3" value="5" label="Energy Report Frequency" units="" size="1" min="5" max="60" type="byte">
+      <Help>Energy Report Frequency</Help>
+    </Value>
+    <Value genre="config" instance="1" index="19" value="0" label="Alternate Exclusion" units="" size="1" min="0" max="1" type="list">
+      <Help>Alternate Exclusion</Help>
+      <Item value="0" label="Default"/>
+      <Item value="1" label="Alternate Exclusion (3 button presses)"/>
+    </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, controlled by local load" max_associations="5" />
+      <Group index="3" label="Basic Set, controlled by pressing the On or Off button" max_associations="5" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/ge/14291-switch.xml b/config/ge/14291-switch.xml
index 21e7304240..e768c1e692 100644
--- a/config/ge/14291-switch.xml
+++ b/config/ge/14291-switch.xml
@@ -1,4 +1,4 @@
-<!-- Configuration Parameters - per https://products.z-wavealliance.org/products/1879 --><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+<!-- Configuration Parameters - per https://products.z-wavealliance.org/products/1879 --><Product Revision="6" 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>
@@ -19,6 +19,7 @@
       <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>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1879/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2501/xml</Entry>
+      <Entry author="Brian France" date="23 Nov 2020" revision="6">Added COMMAND_CLASS_BASIC block to set Value type instead of Node Event for Basic Set, default double tap association auto=true</Entry>
     </ChangeLog>
   </MetaData>
   <CommandClass id="112">
@@ -39,7 +40,14 @@
     <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"/>
+      <Group index="3" label="Basic - Double Tap" max_associations="5" auto="true" />
     </Associations>
   </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <IgnoreMapping>true</IgnoreMapping>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/config/ge/14292-toggle-switch.xml b/config/ge/14292-toggle-switch.xml
index ee86bde3f4..117fa5b3e2 100644
--- a/config/ge/14292-toggle-switch.xml
+++ b/config/ge/14292-toggle-switch.xml
@@ -1,4 +1,4 @@
-<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3037:4952</MetaDataItem>
     <MetaDataItem name="ProductPic">images/ge/14292-toggle-switch.png</MetaDataItem>
@@ -18,6 +18,7 @@
       <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1856/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2055/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2502/xml</Entry>
+      <Entry author="Brian France" date="23 Nov 2020" revision="5">Added COMMAND_CLASS_BASIC block to set Value type instead of Node Event for Basic Set, default double tap association auto=true</Entry>
     </ChangeLog>
     <MetaDataItem id="3038" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/2055/</MetaDataItem>
     <MetaDataItem id="3038" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
@@ -36,7 +37,14 @@
     <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"/>
+      <Group index="3" label="Basic - Double Tap" max_associations="5" auto="true" />
     </Associations>
   </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <IgnoreMapping>true</IgnoreMapping>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/config/ge/14294-dimmer.xml b/config/ge/14294-dimmer.xml
index 24a2ee8dae..83b90d5669 100644
--- a/config/ge/14294-dimmer.xml
+++ b/config/ge/14294-dimmer.xml
@@ -1,11 +1,11 @@
-<!-- GE(Jasco) 14294 Z-Wave Plus Dimmer Switch --><!-- Configuration Parameters - per
-             http://products.z-wavealliance.org/products/1442 --><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+<!-- GE(Jasco) 14294 Z-Wave Plus Dimmer Switch -->
+<Product Revision="8" 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/2105/</MetaDataItem>
     <MetaDataItem name="Name">In-Wall Smart 1000W Dimmer </MetaDataItem>
-    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/2168/Binder1.pdf</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2105/Binder1.pdf</MetaDataItem>
     <MetaDataItem id="3038" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
     <MetaDataItem name="ResetDescription">Quickly press ON (Top) button three (3) times then immediately
 press the OFF (Bottom) button three (3) times. The LED will flash
@@ -31,11 +31,12 @@ and release the top or bottom of the wireless smart dimmer
       <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>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2105/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2168/xml</Entry>
+      <Entry author="Justin Hammond" date="26 Jun 2020" revision="6">Add Verified Change Flag </Entry>
+      <Entry author="Keith Pine" date="14 Sep 2020" revision="7">Fixed metadata, added undocumented configuration parameters</Entry>
+      <Entry author="Brian France" date="23 Nov 2020" revision="8">Added COMMAND_CLASS_BASIC block to set Value type instead of Node Event for Basic Set, default double tap association auto=true</Entry>
     </ChangeLog>
-    <MetaDataItem id="3039" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/2168/</MetaDataItem>
-    <MetaDataItem id="3039" name="Identifier" type="4944">14299/ZW3006</MetaDataItem>
-    <MetaDataItem id="3039" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
   </MetaData>
+  <!-- Configuration -->
   <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>
@@ -48,6 +49,11 @@ and release the top or bottom of the wireless smart dimmer
       <Item label="No" value="0"/>
       <Item label="Yes" value="1"/>
     </Value>
+    <Value genre="config" index="6" label="Dim up/down rate" max="1" min="0" size="1" type="list" value="0">
+      <Help>Adjust the speed at which the light ramps to a specific value other than 0 and FF.</Help>
+      <Item label="Quickly" value="0"/>
+      <Item label="Slowly" 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>
@@ -67,13 +73,33 @@ and release the top or bottom of the wireless smart dimmer
     <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>
+    <Value genre="config" index="16" label="Switch Mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>Turn your dimmer into an On/Off switch with switch mode.</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="20" label="Minimum Dim Threshold" max="99" min="1" type="byte" units="" value="1">
+      <Help>Set the minimum dimmer threshold when manually or remotely controlled.</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="38">
+    <Compatibility>
+      <VerifyChanged index="0">true</VerifyChanged>
+    </Compatibility>
   </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"/>
+      <Group index="3" label="Basic - Double Tap" max_associations="5" auto="true" />
     </Associations>
   </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <IgnoreMapping>true</IgnoreMapping>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/config/ge/14298.xml b/config/ge/14298.xml
new file mode 100644
index 0000000000..3cdd719e1d
--- /dev/null
+++ b/config/ge/14298.xml
@@ -0,0 +1,45 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3034:4F50</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/14298.png</MetaDataItem>
+    <MetaDataItem id="3034" name="ZWProductPage" type="4F50">https://products.z-wavealliance.org/products/3408/</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. </MetaDataItem>
+    <MetaDataItem id="3034" name="Identifier" type="4F50">14298/ZW4202</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3408/14298%20EnFrSp%20QSG%20v1.pdf</MetaDataItem>
+    <MetaDataItem name="Description">New Plug-in Outdoor Smart Switch is equipt with S2 and Smart Start which allows for easy and secure inclusion.</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="Name">Plug-in Outdoor Smart Switch</MetaDataItem>
+    <MetaDataItem id="3034" name="FrequencyName" type="4F50">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for you Z-Wave certified controller to include the smart switch to the Z-Wave network. 
+2. Once the controller is ready to include your outdoor smart switch, press and release the manual/program button on the smart switch 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. If prompted by the controller to enter the S2 security code
+/security number on the side of the box or the QR code label on the product, enter the 5 digit code.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="mike240se" date="06 Jul 2020" revision="1">Initial metadata</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="19" label="Alternate Exclusion" max="1" min="0" size="1" type="list" value="0">
+      <Help>Default - normal exclusion
+        Active - perform a series of button presses to help eliminate accidental exclusion</Help>
+      <Item label="Press any button" value="0"/>
+      <Item label="Press two times ON, two times OFF" 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 - Load" max_associations="5"/>
+      <Group index="3" label="Basic - Double Tap" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/ge/14322-dimmer-toggle.xml b/config/ge/14322-dimmer-toggle.xml
new file mode 100644
index 0000000000..143e17d862
--- /dev/null
+++ b/config/ge/14322-dimmer-toggle.xml
@@ -0,0 +1,65 @@
+<!-- GE(Jasco) 14322 Z-Wave Plus Dimmer Toggle Switch -->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3137:4944</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/14322-dimmer-toggle.png</MetaDataItem>
+    <MetaDataItem id="3137" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/2123/</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2123/Binder1.pdf</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Smart Toggle Dimmer</MetaDataItem>
+    <MetaDataItem id="3137" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Quickly press ON (up) button (3) times then immediately
+press the OFF (down) button (3) times.
+Note: This should only be used in the even your network's
+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
+dimmer (rocker) to include it in the network.</MetaDataItem>
+    <MetaDataItem id="3137" name="Identifier" type="4944">14322/ZW3004</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
+dimmer (rocker) to exclude it from the network.</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the Jasco Z-Wave In-Wall Smart Toggle 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 Jasco 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 Jasco Add-On Switch is required for three-way or four-way installations. Take control of your home lighting with Jasco Z-Wave Wireless Lighting Controls!</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Brandon Clifford - brandon099@gmail.com" date="22 Nov 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2123/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters - per https://products.z-wavealliance.org/products/2048 -->
+  <CommandClass id="112">
+    <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/26931-motion-switch.xml b/config/ge/26931-motion-switch.xml
index 5fd6e0cdd2..eca2f64a3a 100644
--- a/config/ge/26931-motion-switch.xml
+++ b/config/ge/26931-motion-switch.xml
@@ -1,4 +1,5 @@
-<!-- GE(Jasco) 26931 Z-Wave Plus Smart Motion Switch --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<!-- GE(Jasco) 26931 Z-Wave Plus Smart Motion Switch -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3032:494D</MetaDataItem>
     <MetaDataItem name="ProductPic">images/ge/26931-motion-switch.png</MetaDataItem>
@@ -26,6 +27,7 @@ on the smart switch to include it in the network.</MetaDataItem>
     <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/2035/26931 EnFrSp QSG v1.3 and Parameters.pdf</MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2035/xml</Entry>
+      <Entry author="Tao Gong - gongtao0607@gmail.com" date="11 Nov 2020" revision="3">Update ForceInstance flag</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Configuration Parameters - per http://products.z-wavealliance.org/products/2035 -->
@@ -81,6 +83,13 @@ on the smart switch to include it in the network.</MetaDataItem>
       <Item label="Press X then press ON" value="1"/>
     </Value>
   </CommandClass>
+  <!-- Compatibility Flags -->
+  <!-- This flag is to fix OpenZWave unable to add association '1.0'. Without this flag, attempting to add assiciation '1.0' will become '1.1' -->
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>false</ForceInstances>
+    </Compatibility>
+  </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="3">
diff --git a/config/ge/26932-motion-dimmer.xml b/config/ge/26932-motion-dimmer.xml
new file mode 100644
index 0000000000..6b7a426438
--- /dev/null
+++ b/config/ge/26932-motion-dimmer.xml
@@ -0,0 +1,141 @@
+<!-- GE(Jasco) 26932 Z-Wave Plus Smart Motion Dimmer. Identical to GE 26933 Z-Wave Plus Smart Motion Dimmer -->
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3033:494d</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/26933-motion-dimmer.png</MetaDataItem>
+    <MetaDataItem id="3033" name="ZWProductPage" type="494D">https://products.z-wavealliance.org/products/2093/</MetaDataItem>
+    <MetaDataItem id="3033" name="Identifier" type="494D">26932</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-Wave certified
+controller to remove a device from the Z-Wave
+network.
+2. Once the controller is ready to remove your device,
+press and release the top button on the smart
+dimmer to remove it from the network.</MetaDataItem>
+    <MetaDataItem id="3033" name="FrequencyName" type="494D">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and release the top button ten times within 5
+seconds. The LED will flash 3 times quickly confirming
+change.
+Note: This should only be used in the event your
+network’s primary controller is missing or otherwise
+inoperable</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-Wave certified
+controller to add the smart dimmer to the Z-Wave
+network.
+2. Once the controller is ready to add your smart
+dimmer, press and release the top or bottom
+button on the smart dimmer to include it in the
+network.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/2093/26932 EnFrSp QSG v1.3 and Parameters.pdf</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the Jasco In-Wall Smart Motion Dimmer. This Z-Wave device replaces you current light switch using your existing wiring and provides Z-Wave wireless control of overhead lighting. The dimmer enables wireless control of On/Off functions of incandescent, LED, xenon, halogen and fluorescent lighting. Not only does it act as a dimmer but the Jasco In-Wall Smart Motion Dimmer has a built in PIR sensor which can control the local load and be set in occupancy or vacancy mode.
+
+</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Smart Motion Dimmer</MetaDataItem>
+    <ChangeLog>
+	    <Entry author="Tao Gong - gongtao0607@gmail.com" date="02 Nov 2020" revision="1">Initial Metadata Import from ge/26933-motion-dimmer.xml and https://products.z-wavealliance.org/products/2093/xml</Entry>
+	    <Entry author="Tao Gong - gongtao0607@gmail.com" date="05 Nov 2020" revision="2">Update VerifyChanged flag</Entry>
+	    <Entry author="Tao Gong - gongtao0607@gmail.com" date="11 Nov 2020" revision="3">Update ForceInstance flag</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters - per http://products.z-wavealliance.org/products/2093 -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Timeout Duration" max="255" min="0" size="1" type="list" value="5">
+      <Help>Amount of time the light stays on after motion stops</Help>
+      <Item label="5 seconds" value="0"/>
+      <Item label="1 minute" value="1"/>
+      <Item label="5 minutes" value="5"/>
+      <Item label="15 minutes" value="15"/>
+      <Item label="30 minutes" value="30"/>
+      <Item label="Disable timeout" value="255"/>
+    </Value>
+    <Value genre="config" index="2" label="Brightness" max="255" min="1" type="byte" value="3">
+      <Help>Valid values are 0-99 or 255 for last dimming level</Help>
+    </Value>
+    <Value genre="config" index="3" label="Operation Mode" max="3" min="1" size="1" type="list" value="3">
+      <Help>Motion-sensing mode of operation.</Help>
+      <Item label="Manual" value="1"/>
+      <Item label="Vacancy" value="2"/>
+      <Item label="Occupancy" value="3"/>
+    </Value>
+    <Value genre="config" index="5" label="Invert Switch" max="1" min="0" size="1" type="list" value="0">
+      <Help>In a three-way configuration, change the top of the add-on 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>
+    <Value genre="config" index="6" label="Enable/Disable Motion Sensor" max="1" min="0" size="1" type="list" value="1">
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" 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>
+    <Value genre="config" index="13" label="Motion sensing sensitivity" max="3" min="1" size="1" type="list" value="3">
+      <Item label="High" value="1"/>
+      <Item label="Medium" value="2"/>
+      <Item label="Low" value="3"/>
+    </Value>
+    <Value genre="config" index="14" label="Enable/Disable Light Sensing" max="1" min="0" size="1" type="list" value="0">
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="15" label="Reset cycle" max="110" min="0" type="short" units="" value="2">
+      <Help>0 = disable
+                  1 = 10 seconds
+                  2 = 20 seconds
+                  3 = 30 seconds
+                  4 = 45 seconds
+                  ...
+                  110 = 27 minutes 15 seconds 
+    	          </Help>
+    </Value>
+    <Value genre="config" index="16" label="Switch Mode" max="1" min="0" size="1" type="list" value="0">
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="17" label="Switch Level" max="99" min="0" type="byte" value="0"></Value>
+    <Value genre="config" index="18" label="Dim Up Rate" max="1" min="0" size="1" type="list" value="0">
+      <Item label="Slow" value="0"/>
+      <Item label="Fast" value="1"/>
+    </Value>
+    <Value genre="config" index="19" label="Exclusion Mode" max="1" min="0" size="1" type="list" value="0">
+      <Item label="Press any button" value="0"/>
+      <Item label="Press X then press ON" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- Compatibility Flags -->
+  <!-- This flag is to fix the issue with SwitchMultiLevel V2 not reporting target value. -->
+  <CommandClass id="38">
+    <Compatibility>
+      <VerifyChanged index="0">true</VerifyChanged>
+    </Compatibility>
+  </CommandClass>
+  <!-- This flag is to fix OpenZWave unable to add association '1.0'. Without this flag, attempting to add assiciation '1.0' will become '1.1' -->
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>false</ForceInstances>
+    </Compatibility>
+  </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="Basic Set" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/ge/46201-switch.xml b/config/ge/46201-switch.xml
index 3d6ebc182e..18fa0b55c4 100644
--- a/config/ge/46201-switch.xml
+++ b/config/ge/46201-switch.xml
@@ -1,4 +1,4 @@
-<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3135:4952</MetaDataItem>
     <MetaDataItem name="ProductPic">images/ge/46201-switch.png</MetaDataItem>
@@ -17,6 +17,7 @@
 3. Once your controller has confirmed that the device has been included, refresh the Z-Wave network to optimize performance.</MetaDataItem>
     <ChangeLog>
       <Entry author="Caleb Mingle - caleb@mingle.cm" date="07 Sept 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3317/xml</Entry>
+      <Entry author="Brian France" date="23 Nov 2020" revision="2">Added COMMAND_CLASS_BASIC block to set Value type instead of Node Event for Basic Set, Added COMMAND_CLASS_ASSOCIATION block for double tap with double tap defauled to auto</Entry>
     </ChangeLog>
   </MetaData>
   <CommandClass id="112">
@@ -38,7 +39,14 @@
     <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"/>
+      <Group index="3" label="Basic - Double Tap" max_associations="5" auto="true"/>
     </Associations>
   </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+  <CommandClass id="32">
+    <Compatibility>
+      <IgnoreMapping>true</IgnoreMapping>
+      <SetAsReport>true</SetAsReport>
+    </Compatibility>
+  </CommandClass>
 </Product>
diff --git a/config/ge/46202-switch.xml b/config/ge/46202-switch.xml
new file mode 100644
index 0000000000..0e0f07ca27
--- /dev/null
+++ b/config/ge/46202-switch.xml
@@ -0,0 +1,44 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3137:4952</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/46202-switch.png</MetaDataItem>
+    <MetaDataItem id="3137" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/3350/</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 button of the wireless smart switch (rocker) to exclude it from the network.</MetaDataItem>
+    <MetaDataItem id="3137" name="Identifier" type="4952">14292/46202/ZW4009</MetaDataItem>
+    <MetaDataItem name="Description">In-Wall Smart Switch with QuickFit and SimpleWire enhancements. Revolutionary QuickFit design features a housing depth that is up to 20 percent smaller than the previous Z-Wave models. This reduced size coupled with the elimination of heat taps provides a better fit in older style boxes and multi-gang configurations. SimpleWire technology allows line and load to automatically be configured with auto-sensing line-load terminals. All of this is coupled with Z-Wave S2 and Smart Start allows for effortless installation while being safer than ever!</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Quickly press ON (Top) button 3 times then immediately press the OFF (Bottom) button 3 times. The LED will flash ON/OFF 5 times when completed successfully. 
+2. Please use this reset procedure only when the primary controller is missing or inoperable. </MetaDataItem>
+    <MetaDataItem id="3137" 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=MarketCertificationFiles/3350/46202%20Binder.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.
+3. Once your controller has confirmed that the device has been included, refresh the Z-Wave network to optimize performance.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Andrew Putnam - andrew@putnamnation.com" date="10 Sept 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3350/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Light" max="3" 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"/>
+      <Item label="LED always on" value="3"/>
+    </Value>
+    <Value genre="config" index="19" label="Alternate Exclusion" max="1" min="0" size="1" type="list" value="0">
+      <Help>Default - normal exclusion
+        Active - perform a series of button presses to help eliminate accidental exclusion</Help>
+      <Item label="Press any button" value="0"/>
+      <Item label="Press two times ON, two times OFF" value="1"/>
+    </Value>
+  </CommandClass>
+  <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/46204-dimmer-toggle.xml b/config/ge/46204-dimmer-toggle.xml
new file mode 100644
index 0000000000..7af260fc24
--- /dev/null
+++ b/config/ge/46204-dimmer-toggle.xml
@@ -0,0 +1,67 @@
+<!-- GE(Jasco) 46203 Z-Wave Plus Dimmer Switch -->
+<!-- Configuration Parameters - per http://products.z-wavealliance.org/products/3323 -->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3237:4944</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ge/46204-dimmer-toggle.png</MetaDataItem>
+    <MetaDataItem id="3235" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/3352/</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Smart Toggle Dimmer</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3352/14295.46204%20Binder.pdf</MetaDataItem>
+    <MetaDataItem id="3235" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Quickly press ON (up) button three times then immediately press the OFF (down)  button three times. 
+    NOTE: This should only be used in the event your network’s
+    primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-Wave certified controller to add a device to the Z-Wave network.
+    2. Once the controller is ready to add your device, press up and release the toggle. Please reference the controller’s manual for instructions.
+    Now, you have complete control to turn your fixture ON/OFF or dim according to groups, scenes, schedules and interactive automations programmed by your controller. If your Z-Wave certified controller features remote access, you can control your fixture from your mobile devices.</MetaDataItem>
+    <MetaDataItem name="Description">In-Wall Smart Toggle Dimmer with QuickFit and SimpleWire enhancements. Revolutionary QuickFit design features a housing depth that is up to 20 percent smaller than the previous Z-Wave models. This reduced size coupled with the elimination of heat taps provides a better fit in older style boxes and multi-gang configurations. SimpleWire technology allows line and load to automatically be configured with auto-sensing line-load terminals. All of this is coupled with Z-Wave S2 and Smart Start allows for effortless installation while being safer than ever!</MetaDataItem>
+    <MetaDataItem id="3237" name="Identifier" type="4944">14295/46204/ZW3011</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To remove and reset the device: 
+    1. Follow the instructions for your Z-Wave certified controller to remove a device from the Z-Wave network. 
+    2. Once the controller is ready to remove your device, press up and release the toggle.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Dejan Zelic" date="14 Jul 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/Products/3352/XML</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Indication Configuration" max="3" min="0" size="1" type="list" value="2">
+      <Help>Adjust the LED status to default, invert, always OFF or always ON</Help>
+      <Item label="Device is ON, LED is OFF; device is OFF, LED is ON" value="0"/>
+      <Item label="Device is ON, LED is ON; device is OFF, LED is OFF" value="1"/>
+      <Item label="LED always OFF" value="2"/>
+      <Item label="LED always ON" value="3"/>
+    </Value>
+    <Value genre="config" index="6" label="Dim up/down rate" max="1" min="0" size="1" type="list" value="0">
+      <Help>Adjust the speed at which the ramps to a specific value other than 0 and FF</Help>
+      <Item label="Dim up/down the light to the specified level quickly by command except value 0 and FF" value="0"/>
+      <Item label="Dim up/down the light to the specified level slowly by command except value 0 and ff" value="1"/>
+    </Value>
+    <Value genre="config" index="16" label="Switch Mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>Turn your dimmer into an On/Off switch with switch mode</Help>
+      <Item label="Disable normal operation" value="0"/>
+      <Item label="Enable switch mode" value="1"/>
+    </Value>
+    <Value genre="config" index="19" label="Alternate Exclusion"  max="1" min="0" size="1" type="list" value="0">
+      <Help>Never accidentally remove a device during with alternate exclusion</Help>
+      <Item label="Normal operation, press any button on the device" value="0"/>
+      <Item label="Press two times ON button and two times OFF button, LED will flash 5 times if exclusion is successful" value="1"/>
+    </Value>
+    <Value genre="config" index="30" label="Minimum Dim Threshold" max="99" min="1" type="byte" units="" value="1">
+      <Help>Set the minimum dimmer threshold</Help>
+    </Value>
+    <Value genre="config" index="31" label="Maximum Brightness Threshold" max="99" min="1" type="byte" units="" value="99">
+      <Help>Set the brightness threshold</Help>
+    </Value>
+    <Value genre="config" index="32" label="Default Brightness Level" max="99" min="0" type="byte" units="" value="0">
+      <Help>Set the default brightness level that the dimmer will turn on when being controlled manually</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/zw6302.xml b/config/ge/zw6302.xml
index 37ac5626d7..6899211c54 100644
--- a/config/ge/zw6302.xml
+++ b/config/ge/zw6302.xml
@@ -1,4 +1,4 @@
-<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0063:3133:4953</MetaDataItem>
     <MetaDataItem name="ProductPic">images/ge/zw6302.png</MetaDataItem>
@@ -24,6 +24,7 @@ Note: This should only be done in the event your primary controller is missing o
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1902/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2124/xml</Entry>
+      <Entry author="Peter Gebruers - peter.gebruers@gmail.com" date="22 Dec 2019" revision="4">Update min/max PIR parameter https://github.com/OpenZWave/open-zwave/issues/2041</Entry>
     </ChangeLog>
     <MetaDataItem id="3134" name="ZWProductPage" type="4953">https://products.z-wavealliance.org/products/2124/</MetaDataItem>
     <MetaDataItem id="3134" name="FrequencyName" type="4953">U.S. / Canada / Mexico</MetaDataItem>
@@ -41,7 +42,7 @@ https://products.z-wavealliance.org/products/1902
       <Item label="Medium" value="2"/>
       <Item label="High" value="3"/>
     </Value>
-    <Value genre="config" index="18" label="PIR Timeout Duration" max="1" min="0" size="1" type="byte" units="" value="1">
+    <Value genre="config" index="18" label="PIR Timeout Duration" max="255" min="1" size="1" type="byte" units="" value="1">
       <Help>
                 1 to 60 => 1 min to 60 min.
                 255 => 5 seconds.
diff --git a/config/goodway/td14010.xml b/config/goodway/td14010.xml
new file mode 100644
index 0000000000..739371580f
--- /dev/null
+++ b/config/goodway/td14010.xml
@@ -0,0 +1,133 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">RGBW Color LED Dimmer</MetaDataItem>
+    <MetaDataItem name="Description">Good Way RGBW module is used to control RGB/RGBW strips and LED strips or bulbs to create countless colour options and has 6 special scene effects. Its extremely small size allows for easy installation behind wall sockets and switches. Controlled devices may be powered by 12 or 24 VDC.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0068:000b:0003</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.goodway.com.tw/product3.asp?listid=9&amp;id=26&amp;subid=102&amp;id=1168&amp;typeid=</MetaDataItem>
+    <MetaDataItem name="ProductSupport"></MetaDataItem>
+    <MetaDataItem name="ProductPic">images/goodway/td14010.png</MetaDataItem>
+    <MetaDataItem name="ProductManual"></MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Connect the module to the power supply. Enable inclusion mode on your Z-Wave controller. Press and release the Include/Exclude button 3 times within 2 seconds.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Connect the module to the power supply. Make sure the module is within direct range of your Z-Wave controller or use a hand-held Z-Wave remote to perform exclusion. Press and release the Include/Exclude button 3 times within 2 seconds. NOTE: The module will be excluded from your network, but any custom configuration parameters will not be erased.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Connect the module to the power supply.  Press and hold the Include/Excude button for at least 10 seconds. NOTE: By resetting the module, all custom parameters previously set on the module will return to their default values and the owner ID will be deleted. Use this reset procedure only when the main controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem id="000b" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2466/features</MetaDataItem>
+    <MetaDataItem id="000b" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="000b" name="Identifier" type="0003">Good Way RGBW Dimmer</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Daniel Brunt - daniel@brunt.ca" date="31 July 2020" revision="1">Initial release</Entry>
+      <Entry author="Daniel Brunt - daniel@brunt.ca" date="2 Oct 2020" revision="2">Added indexes 8 and 9 to CC 112</Entry>
+      <Entry author="Daniel Brunt - daniel@brunt.ca" date="2 Oct 2020" revision="3">Removed indexes 8 and 9 to CC 112</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Input IN1 configuration" max="9" min="1" size="1" type="list" value="1">
+      <Help></Help>
+      <Item label="NORMAL mode – momentary switch type" value="1"/>
+      <Item label="NORMAL mode – toggle switch type" value="2"/>
+      <Item label="NORMAL mode – toggle with memory switch type" value="3"/>
+      <Item label="BRIGHTNESS mode – momentary switch type" value="4"/>
+      <Item label="BRIGHTNESS mode – toggle switch type" value="5"/>
+      <Item label="BRIGHTNESS mode – toggle with memory switch type" value="6"/>
+      <Item label="SCENE mode – momentary switch type" value="7"/>
+      <Item label="SCENE mode – toggle switch type" value="8"/>
+      <Item label="SCENE mode – toggle with memory switch type" value="9"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Input IN2 configuration" max="9" min="1" size="1" type="list" value="1">
+      <Help></Help>
+      <Item label="NORMAL mode – momentary switch type" value="1"/>
+      <Item label="NORMAL mode – toggle switch type" value="2"/>
+      <Item label="NORMAL mode – toggle with memory switch type" value="3"/>
+      <Item label="BRIGHTNESS mode – momentary switch type" value="4"/>
+      <Item label="BRIGHTNESS mode – toggle switch type" value="5"/>
+      <Item label="BRIGHTNESS mode – toggle with memory switch type" value="6"/>
+      <Item label="SCENE mode – momentary switch type" value="7"/>
+      <Item label="SCENE mode – toggle switch type" value="8"/>
+      <Item label="SCENE mode – toggle with memory switch type" value="9"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Input IN3 configuration" max="9" min="1" size="1" type="list" value="1">
+      <Help></Help>
+      <Item label="NORMAL mode – momentary switch type" value="1"/>
+      <Item label="NORMAL mode – toggle switch type" value="2"/>
+      <Item label="NORMAL mode – toggle with memory switch type" value="3"/>
+      <Item label="BRIGHTNESS mode – momentary switch type" value="4"/>
+      <Item label="BRIGHTNESS mode – toggle switch type" value="5"/>
+      <Item label="BRIGHTNESS mode – toggle with memory switch type" value="6"/>
+      <Item label="SCENE mode – momentary switch type" value="7"/>
+      <Item label="SCENE mode – toggle switch type" value="8"/>
+      <Item label="SCENE mode – toggle with memory switch type" value="9"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Input IN4 configuration" max="9" min="1" size="1" type="list" value="1">
+      <Help></Help>
+      <Item label="NORMAL mode – momentary switch type" value="1"/>
+      <Item label="NORMAL mode – toggle switch type" value="2"/>
+      <Item label="NORMAL mode – toggle with memory switch type" value="3"/>
+      <Item label="BRIGHTNESS mode – momentary switch type" value="4"/>
+      <Item label="BRIGHTNESS mode – toggle switch type" value="5"/>
+      <Item label="BRIGHTNESS mode – toggle with memory switch type" value="6"/>
+      <Item label="SCENE mode – momentary switch type" value="7"/>
+      <Item label="SCENE mode – toggle switch type" value="8"/>
+      <Item label="SCENE mode – toggle with memory switch type" value="9"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Auto Scene Mode Set" max="7" min="0" size="1" type="list" value="1">
+      <Help></Help>
+      <Item label="Off" 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"/>
+      <Item label="Dancing" value="6"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Auto Scene Mode – Duration between Colour change" max="1127" min="0" type="short" value="3">
+      <Help>
+        This parameter is used to adjust time between 2 Colours in the Scene.
+        1-127 – delay duration is 1 sec to 127 sec.
+        1001-1127 – delay duration is from 1 min to 127 min. This parameter has no effect on lighting and Dancing scenes.</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Memorize device status at power cut" max="1" min="0" size="1" type="list" value="0">
+      <Help>Device will be set to status memorized before power cut.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="MAX dimming value" max="99" min="2" size="1" type="byte" units="%" value="99">
+      <Help></Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="MIN dimming value" max="98" min="1" size="1" type="byte" units="%" value="1">
+      <Help>NOTE: The minimum level may not be higher than the MAX dimming value.</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Dimming time (soft on/off)" max="25" min="5" size="1" type="byte" units="0.1 seconds" value="10">
+      <Help>
+        Default value 10 = 1 s.
+        5–25 = from 0.5 to 2.5 seconds</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Dimming time when key pressed" max="127" min="1" size="1" type="byte" units="seconds" value="5">
+      <Help>
+        1–127 = from 1 to 127 seconds.
+        NOTE: Dimming time depends also on Min and Max dimming value.
+      </Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Dimmer mode" max="3" min="0" size="1" type="list" value="0">
+      <Help>
+        NOTE: If the parameter no. 14 is enabled, parameter no. 1,2,3,4 has no effect.
+        NOTE: After parameter change, first exclude device (without setting parameters to default value) and then re include the device.
+      </Help>
+      <Item label="4 dimmers mode disabled" value="0"/>
+      <Item label="4 dimmers mode enabled – momentary switch type" value="1"/>
+      <Item label="4 dimmers mode enabled – toggle switch type" value="2"/>
+      <Item label="4 dimmers mode enabled – toggle with memory switch type" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Group Information -->
+  <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/graber/mcz1.xml b/config/graber/mcz1.xml
new file mode 100644
index 0000000000..9fafd8ca98
--- /dev/null
+++ b/config/graber/mcz1.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Multi-Channel Remote</MetaDataItem>
+    <MetaDataItem name="Description">Enjoy the comfort, convenience and energy efficiency of beautiful custom motorized window treatments featuring Z-Wave protocol for easy integration. Lighting control has never been more simple. Window treatments can be automated using your favorite Z-Wave certified gateway or security system, or controlled by a remote control. Raise or lower the shades to control just the right amount of light, privacy and solar heat. Shades can be fully open, fully closed or anywhere in between, it’s up to you. In addition, some systems will also report back the state of the battery charge on battery operated versions.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/026e:5a31:4d43</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.baliblinds.com/globalassets/3.-documents/installation-instructions/bali-motorization-owners-manual-autoview.pdf</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.baliblinds.com/customer-support/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/graber/mcz1.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2819/P2_79083-01_18-8215_MotorizationManual.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Any button press will wake up the remote.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. From your home automation system’s user interface, select the option to enroll a new Z-Wave device. See your home automation system’s instructions for details.
+2. On the remote, press and hold the MENU/RIGHT button to enter the menu.
+3. Select ZWAVE > LEARN.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. From your home automation system’s user interface, select the option to exclue a Z-Wave device. See your home automation system’s instructions for details.
+2. On the remote, press and hold the MENU/RIGHT button to enter the menu.
+3. Select ZWAVE > LEARN.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Press and hold the MENU/RIGHT button for 2 seconds to enter the menu.
+2. Select ZWAVE > RESET.
+3. With LIKE NEW? selected, press and hold the MENU/RIGHT button until the screen no longer tells you to wait.</MetaDataItem>
+    <MetaDataItem id="5A31" name="ZWProductPage" type="4D43">https://products.z-wavealliance.org/products/2819</MetaDataItem>
+    <MetaDataItem id="5A31" name="FrequencyName" type="4D43">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="5A31" name="Identifier" type="4D43">MCZ1</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Nathan Spencer - natekspencer@gmail.com" date="23 July 2020" revision="1">Initial entry with data obtained from https://products.z-wavealliance.org/products/2819</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- No configuration parameters -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Slave Shade Group" max_associations="12"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/hab/iblindsV2.xml b/config/hab/iblindsV2.xml
new file mode 100644
index 0000000000..fdb0e620d4
--- /dev/null
+++ b/config/hab/iblindsV2.xml
@@ -0,0 +1,52 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0287:000D:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/hab/iblinds.png</MetaDataItem>
+    <MetaDataItem id="000D" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2486/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">The Device Reset Locally function is used to reset the device to fatory default.  The reset operation resets protocol data (HomeID, NodeID) as well as all application specific data to factory default values.
+NOTE: Please only use this function when the primary controller is missing or inoperable!
+1.      Press the INC / EXC button 3
+Press the INC / EXC button 3 times within 5 seconds to enable the device reset function.
+2.      Wait 30 Seconds Press CLBR button
+After device is reset wait 30 seconds and press the CLBR button to reboot the device and make it ready for Z-Wave Inclusion.  </MetaDataItem>
+    <MetaDataItem id="000D" name="Identifier" type="0003">iblindsV2</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2486/iBlind_User_Guide.pdf</MetaDataItem>
+    <MetaDataItem name="Description">An intelligent Z-Wave blind motor that installs out of sight in existing Horizontal (2" and 2 1/2" slatted-style) blind headrails. Use iBlinds to tilt the slats open, closed or use the value slider for precise positioning of the slat tilt angle.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Follow the directions for your Z-Wave device to place it in the exclusion mode.
+Press the exclude button once and wait for the device to be removed from the Z-Wave network.
+ </MetaDataItem>
+    <MetaDataItem name="Name">iblinds V2</MetaDataItem>
+    <MetaDataItem id="000D" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Follow the directions for your Z-Wave hub/controller to place it in the add for inclusion mode.
+Press the inclusion button once and wait for the device to be discovered and joined to the Z-Wave network.  Follow the directions of your Z-Wave controller to uniquely identify your iblinds device.   (Ex: Bedroom iblind)
+Note: If the device is not joined to the network.  Press the CLBR button Wait 1 minutes and repeat steps 1 and 2 again.  If you continue to have trouble joining the iblinds motor to the Z-Wave network follow the Z-Wave network Exclusion process below.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="mike240se" date="10 Jul 2020" revision="1">Initial metadata</Entry>
+      <Entry author="chancehiblinds" date="16 Sept 2020" revision="2">Folder namechange to hab, minor typos</Entry>
+    </ChangeLog>
+  </MetaData>
+   <!-- Configuration Parameters -->
+        <CommandClass id="38">
+                <Compatibility>
+                        <NoRefreshAfterSet index="0">true</NoRefreshAfterSet>
+                </Compatibility>
+        </CommandClass>
+        <CommandClass id="112">
+                <Value type="list" genre="config" instance="1" index="1" label="Auto Calibration Torque" units="" read_only="false" write_only="false" verify_changes="false" min="1" max="5" vindex="0" size="1">
+                                <Help>Changing the Auto Calibration torque will allow you to change the initial calibration torque. Use at your own risk!</Help>
+                                <Item label="Calibrate using default torque " value="1" />
+                                <Item label="Reduce calibration torque by 1 factor" value="2" />
+                                <Item label="Reduce calibration torque by 2 factors" value="3" />
+                                <Item label="Increase calibration torque by .5 factor" value="4" />
+                                <Item label="Increase calibration torque by 1 factor" value="5" />
+                </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/hab/iblindsV3.xml b/config/hab/iblindsV3.xml
new file mode 100644
index 0000000000..b94e49a76c
--- /dev/null
+++ b/config/hab/iblindsV3.xml
@@ -0,0 +1,71 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+<MetaData>
+    <MetaDataItem name="Name">iblinds</MetaDataItem>
+    <MetaDataItem name="Description">An intelligent blind motor, a Z-Wave device designed for tilting Venetian (two inch slatted-style) blinds. Open and close the blinds and use a value slider for precise positioning of the tilt angle.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0287:0071:0004</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://myiblinds.com/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://support.myiblinds.com</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/hab/iblindsV3.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">http://support.myiblinds.com/wp-content/uploads/2019/06/User-Guide-v1.0.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press Include/Exclude button</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Follow the directions for your Z-Wave hub/controller to place it into inclusion mode. Press the inclusion button three times and wait for the device to be discovered and joined to the Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Follow the directions for your Z-Wave device to place it in the exclusion mode. Press the exclude button three times and wait for the device to be removed from the Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Charge adapter button can be used to reset the device and perform manual auto calibration: press and hold the Charge Adapter button for 10 seconds.</MetaDataItem>
+    <MetaDataItem id="0071" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/2486/features</MetaDataItem>
+    <MetaDataItem id="0071" name="FrequencyName" type="0004">U.S. / Canada/ Mexico</MetaDataItem>
+    <MetaDataItem id="0071" name="FrequencyName" type="0004">CEPT</MetaDataItem>
+    <MetaDataItem id="0071" name="FrequencyName" type="0004">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="0071" name="Identifier" type="0004">iblinds V3</MetaDataItem>
+  <!--TODO : Change Frequency to represent Global with new ZWave 700 Series-->
+    <ChangeLog>
+      <Entry author="Chance Huddleston chance@habhomeintel.com" date="8 Sept 2020" revision="1">Initial Release</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" type="byte" size="1" index="1" label="Close Interval" min="16" max="32" value="22">
+      <Help>
+	  Auto Calibration Tightness
+	  Lower value = tighter
+	  Higher value = looser
+	  MUST BE RECALIBRATED
+	  Range:16-32
+      Default: 22
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="2" label="Reverse Direction" min="0" max="1" value="0">
+      <Help>
+	   Reverse closing direction
+      </Help>
+ 	   <Item value="0" label="False"/>
+	   <Item value="1" label="True"/>
+    </Value>
+    <!--The 3rd Index Configuration Parameter is not used, DO NOT ADD-->
+    <Value genre="config" type="byte" size="1" index="4" label="Default ON Value" min="0" max="100" value="50">
+      <Help>
+	  Value that iblinds will open to by Default
+      Default: 50
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="5" label="Reset Button Disable" min="0" max="1" value="0">
+      <Help>
+	   Will disable the reset button on the motor, preventing it from accidentally being pressed
+      </Help>
+ 	   <Item value="0" label="False"/>
+	   <Item value="1" label="True"/>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="6" label="Speed" min="0" max="100" value="0">
+      <Help>
+	  How fast iblinds will close in seconds
+      Default:0
+      </Help>
+    </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/hank/hkzw-ms02-200.xml b/config/hank/hkzw-ms02-200.xml
index dcd98042ab..02a148f369 100644
--- a/config/hank/hkzw-ms02-200.xml
+++ b/config/hank/hkzw-ms02-200.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0208:0012:0200</MetaDataItem>
     <MetaDataItem name="ProductPic">images/hank/hkzw-ms02-200.png</MetaDataItem>
@@ -43,6 +43,7 @@ The features list:
 </MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2578/xml</Entry>
+      <Entry author="Gert van Dijk - gertvdijk@gmail.com" date="10 January 2020" revision="3">Adjust description and units of configuration parameter 18 as per user manual</Entry>
     </ChangeLog>
   </MetaData>
   <!--
@@ -76,11 +77,8 @@ The features list:
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value genre="config" index="18" instance="1" label="Motion alarm cancellation delay" max="65535" min="0" size="2" type="short" units="lux" 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 genre="config" index="18" instance="1" label="Motion alarm cancellation delay" max="65535" min="0" size="2" type="short" units="seconds" value="30">
+      <Help>The number of seconds to delay the alarm cancellation after motion has not been detected any longer.</Help>
     </Value>
     <Value genre="config" index="32" instance="1" label="Level of low battery" max="50" min="10" size="1" type="byte" units="%" value="20">
       <Help>The low level from 10% to 50%</Help>
diff --git a/config/hank/hkzw-ms02-300.xml b/config/hank/hkzw-ms02-300.xml
index 71647ee3f8..6ad6c4177a 100644
--- a/config/hank/hkzw-ms02-300.xml
+++ b/config/hank/hkzw-ms02-300.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0208:0012:0300</MetaDataItem>
     <MetaDataItem name="ProductPic">images/hank/hkzw-ms02-200.png</MetaDataItem>
@@ -44,6 +44,7 @@ The features list:
 </MetaDataItem>
     <ChangeLog>
       <Entry author="Geert van Horrik - geert@catenalogic.com" date="08 Aug 2019" revision="2">Improvements based on the HKZW-M02-200 entry</Entry>
+      <Entry author="Gert van Dijk - gertvdijk@gmail.com" date="10 January 2020" revision="3">Adjust description and units of configuration parameter 18 as per user manual</Entry>
     </ChangeLog>
   </MetaData>
   <!--
@@ -77,11 +78,8 @@ The features list:
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value genre="config" index="18" instance="1" label="Motion alarm cancellation delay" max="65535" min="0" size="2" type="short" units="lux" 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 genre="config" index="18" instance="1" label="Motion alarm cancellation delay" max="65535" min="0" size="2" type="short" units="seconds" value="30">
+      <Help>The number of seconds to delay the alarm cancellation after motion has not been detected any longer.</Help>
     </Value>
     <Value genre="config" index="32" instance="1" label="Level of low battery" max="50" min="10" size="1" type="byte" units="%" value="20">
       <Help>The low level from 10% to 50%</Help>
diff --git a/config/hank/hkzw-so08-smartplug.xml b/config/hank/hkzw-so08-smartplug.xml
new file mode 100644
index 0000000000..d6978cc5a5
--- /dev/null
+++ b/config/hank/hkzw-so08-smartplug.xml
@@ -0,0 +1,120 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0208:0019:0100</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/hank/hkzw-so05-smartplug.png</MetaDataItem>
+    <MetaDataItem id="0019" name="ZWProductPage" type="0100">https://products.z-wavealliance.org/products/3202/</MetaDataItem>
+    <MetaDataItem name="Name">Smart Plug</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?filename=MarketCertificationFiles/3202/SmartPlug%20SO08P%20SpecificationEngineering.pdf</MetaDataItem>
+    <MetaDataItem id="0019" name="FrequencyName" type="0100">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1) Insert the Plug into a socket,
+2) Press and hold the Z button for more than 20 seconds,
+3) If holding time more than 20seconds, the RGB LED indicator will keep yellow for 2 seconds, which means resetting is completed. 
+Use this procedure only in the event that the network primary controller is missing or otherwise inoperable.
+</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1) Connect the power supply.
+2) Set the Z-Wave network main controller into inclusion mode (see Z-Wave network controller operating manual).
+3) Triple click the Z-button or power up the device , RGB LED indicator should blink fast in blue.
+4) Smart Plug should be recognized and included into the Z-Wave network.
+</MetaDataItem>
+    <MetaDataItem id="0019" name="Identifier" type="0100">HKZW-SO08</MetaDataItem>
+    <MetaDataItem name="Description">Smart plug is a Z-Wave Switch plugin module specifically used to enable Z-Wave command and control (on/off) of any plug-in tool. It can report wattage consumption or kWh energy usage, and can indicate the power level with a RGB LED. 
+Smart Plug is also a security Z-Wave device and supports the Over The Air (OTA) feature for the product’s firmware upgrade .
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1) Insert the Plug into a socket.
+2) Set the Z-Wave network controller into the exclusion mode (see Z-Wave controller operating manual).
+3) Triple click the Z button.
+4) RGB LED indicator will blink orange till the removing process is completed, than the indicator will keep orange for 3 seconds.
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="YL" date="23 May 2021" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3202/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!--
+      Hank HKZW-SO08
+      http://products.z-wavealliance.org/products/3202
+    -->
+    <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="20" instance="1" label="Overload Protection" max="1" min="0" size="1" type="list" value="1">
+      <Help>Smart Plug keep detecting the load power, once the current exceeds 11.5A for more than 5s, smart plug's relay will turn off</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Device status after power failure" max="2" min="0" size="1" type="list" value="0">
+      <Help>Define how the plug reacts after the power supply is back on.
+                  0 - Smart Plug memorizes its state after a power failure.
+                  1 - Smart Plug does not memorize its state after a power failure. Connected device will be on after the power supply is reconnected.
+                  2 - Smart Plug does not memorize its state after a power failure. Connected device will be off after the power supply is reconnected.
+            </Help>
+      <Item label="Memorize" value="0"/>
+      <Item label="On" value="1"/>
+      <Item label="Off" value="2"/>
+    </Value>
+    <Value genre="config" index="24" instance="1" label="Notification when load status change" max="2" min="0" size="1" type="list" value="1">
+      <Help>
+              Smart Plug can send notifications to association device(Group Lifeline) when state of smart plug's load change
+              0 - The function is disabled
+              1 - Send Basic report.
+              2 - Send Basic report only when Load condition is not changed by Z-WAVE Command
+            </Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Basic" value="1"/>
+      <Item label="Basic without Z-WAVE Command" value="2"/>
+    </Value>
+    <Value genre="config" index="27" instance="1" label="Indicator Modes" max="1" min="0" size="1" type="list" value="0">
+      <Help>After smart plug being included into a Z-Wave network, the LED in the device will indicator the state of load.
+              0 - The LED will follow the status(on/off) of its load
+              1 - When the state of Switch's load changed, The LED will follow the status(on/off) of its load, but the red LED will turn off after 5 seconds if there is no any switch action.
+            </Help>
+      <Item label="Enabled" value="0"/>
+      <Item label="Disabled" value="1"/>
+    </Value>
+    <Value genre="config" index="151" instance="1" label="Threshold of power report" max="200" min="0" size="2" type="short" units="W" value="50">
+      <Help>
+            Power threshold to be interpereted, when the change value of load power exceeds the setting threshold, the smart plug will send meter report to association device(Group Lifeline)
+          </Help>
+    </Value>
+    <Value genre="config" index="152" instance="1" label="Percentage threshold of power report" max="100" min="0" size="1" type="byte" units="%" value="10">
+      <Help>
+            Power percentage threshold to be interpreted, when change value of the load power exceeds the setting threshold, the smart plug will send meter report to association device(Group Lifeline).
+          </Help>
+    </Value>
+    <Value genre="config" index="171" instance="1" label="Power report frequency" max="2678400" min="3600" size="4" type="int" units="seconds" value="3600">
+      <Help>
+            The interval of sending power report to association device(Group Lifeline).
+            0 - The function is disabled.
+          </Help>
+    </Value>
+    <Value genre="config" index="172" instance="1" label="Energy report frequency" max="2678400" min="3600" size="4" type="int" units="seconds" value="7200">
+      <Help>
+            The interval of sending power report to association device(Group Lifeline).
+            0 - The function is disabled.
+          </Help>
+    </Value>
+    <Value genre="config" index="173" instance="1" label="Voltage report frequency" max="2678400" min="3600" size="4" type="int" units="seconds" value="0">
+      <Help>
+            The interval of sending voltage report to association device(Group Lifeline).
+            0 - The function is disabled.
+          </Help>
+    </Value>
+    <Value genre="config" index="174" instance="1" label="Electricity report frequency" max="2678400" min="3600" size="4" type="int" units="seconds" value="0">
+      <Help>
+            The interval of sending electricity report to association device(Group Lifeline).
+            0 - The function is disabled.
+          </Help>
+    </Value>
+    <Value genre="config" index="254" instance="1" label="Enable/disable the configuration command" max="2678400" min="3600" size="1" type="list" value="0">
+      <Help>
+            Lock/unlock all configuration parameters.
+          </Help>
+      <Item label="Unlock" value="0"/>
+      <Item label="Lock" 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/heltun/he-ft01.xml b/config/heltun/he-ft01.xml
new file mode 100644
index 0000000000..be17472a20
--- /dev/null
+++ b/config/heltun/he-ft01.xml
@@ -0,0 +1,405 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns='https://github.com/OpenZWave/open-zwave'>
+  <MetaData>
+   <MetaDataItem name="Name">Fan Coil Thermostat HE-FT01</MetaDataItem>
+   <MetaDataItem name="Description">This is advanced programmable Thermostat for Heating/Cooling Systems</MetaDataItem>
+   <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0344:0002:0004</MetaDataItem>
+   <MetaDataItem name="ProductPage">https://www.heltun.com/</MetaDataItem>
+   <MetaDataItem name="ProductSupport">https://www.heltun.com/support</MetaDataItem>
+   <MetaDataItem name="ProductPic">images/heltun/he-ft01.png</MetaDataItem>
+   <MetaDataItem id="0002" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/3717</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">U.S. / Canada / Mexico</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">Australia / New Zealand</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">Russia</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">Israel</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">China</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">South Korea</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">Japan</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">Hong Kong</MetaDataItem>
+   <MetaDataItem id="0002" name="FrequencyName" type="0004">India</MetaDataItem>
+   <MetaDataItem id="0002" name="Identifier" type="0004">HE-FT01</MetaDataItem>
+   <ChangeLog>
+	   <Entry author="Narek Manukyan - n.manukyan@heltun.com" date="22 January 2020" revision="1">Metadata for HELTUN FanCoil Thermostat</Entry>
+   </ChangeLog>
+  </MetaData>
+<!-- Thermostat modes -->
+  <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="COM with Heating Climate Mode" value="1"/>
+      <Item label="COM with Cooling Climate Mode" value="2"/>
+      <Item label="TIME" value="3"/>
+      <Item label="Ventilation Climate Mode" value="6"/>
+      <Item label="COM with Heating and Colling Climate Mode" value="10"/>
+      <Item label="ECO with Heating Climate Mode" value="11"/>
+      <Item label="ECO with Cooling Climate Mode" value="12"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="OFF"/>
+      <Mode index="1" label="HEAT"/>
+      <Mode index="2" label="COOL"/>
+      <Mode index="3" label="AUTO"/>
+      <Mode index="6" label="FAN"/>
+      <Mode index="10" label="AUTO CHANGEOVER"/>
+      <Mode index="11" label="ENERGY HEAT"/>
+      <Mode index="12" label="ENERGY COOL"/>
+    </SupportedModes>
+    <Compatibility/>
+  </CommandClass>
+<!-- Thermostat setpoints -->
+  <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="25" write_only="false"/>
+    <Value genre="user" index="2" instance="1" label="Cooling" max="0" min="0" read_only="false" type="decimal" units="C" value="25" write_only="false"/>
+    <Value genre="user" index="10" instance="1" label="Auto Changeover" max="0" min="0" read_only="false" type="decimal" units="C" value="25" write_only="false"/>
+    <Value genre="user" index="11" instance="1" label="Energy Save Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="20" write_only="false"/>
+    <Value genre="user" index="12" instance="1" label="Energy Save Cooling" 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>
+<!-- Thermostat fan modes --> 
+  <CommandClass id="68">
+    <Instance index="1"/>
+    <Value genre="user" index="0" instance="1" label="Fan Mode" size="1" read_only="false" type="list" units="" write_only="false">
+      <Item label="On Low" value="1"/>
+      <Item label="On Auto High" value="2"/>
+      <Item label="On High" value="3"/>
+      <Item label="On Auto Medium" value="4"/>
+      <Item label="On Medium" value="5"/> 
+      <Item label="OFF" value="128"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="1" label="LOW"/>
+      <Mode index="2" label="AUTO HIGH"/>
+      <Mode index="3" label="HIGH"/>
+      <Mode index="4" label="AUTO MEMDIUM"/>
+      <Mode index="5" label="MEDIUM"/> 
+      <Mode index="128" label="OFF"/>
+    </SupportedModes>
+    <Compatibility/>
+  </CommandClass>
+<!-- Configuration Parameters -->
+   <CommandClass id="112">
+	<Value genre="config" index="1" label="Time by controller" max="1" min="0" size="1" type="list" units="" value="1">
+		<Help>
+			Time correction by controller
+		</Help>
+		<Item label="Manual" value="0"/>
+		<Item label="Auto(via gateway)" value="1"/>
+	</Value>
+	<Value genre="config" index="2" 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"/>
+	</Value>
+	<Value genre="config" index="3" label="Week day" max="7" min="1" size="1" type="list" units="" value="1">
+		<Help>
+			Manually set week day
+		</Help>
+		<Item label="MON" value="1"/>
+		<Item label="TUE" value="2"/>
+		<Item label="WED" value="3"/>
+		<Item label="THU" value="4"/>
+		<Item label="FRI" value="5"/>
+		<Item label="SAT" value="6"/>
+		<Item label="SUN" value="7"/>
+	</Value>
+	<Value genre="config" index="4" label="Time Hour" max="23" min="0" size="1" type="byte" units="hours" value="0">
+		<Help>
+			Manually set time hour
+		</Help>
+	</Value>
+	<Value genre="config" index="5" label="Time Minute" max="59" min="0" size="1" type="byte" units="mins" value="0">
+		<Help>
+			Maually set time minute
+		</Help>
+	</Value>
+	<Value genre="config" index="6" label="Degree mode" max="1" min="0" size="1" type="list" units="" value="0">
+	      <Help>
+		Degree Mode 0=C, 1=F
+	      </Help>
+	      <Item label="Celsius" value="0"/>
+	      <Item label="Farenheit" value="1"/>
+	</Value>
+	<Value genre="config" index="7" label="Air temp correction" max="95" min="-95" size="1" type="byte" units="degree" value="0">
+		<Help>
+			Air Temperature Calibration in degree, x10
+		</Help>
+	</Value>
+	<Value genre="config" index="8" label="Temp hysteresis" max="100" min="2" size="1" type="byte" units="degree" value="5">
+		<Help>
+			Temperature Hysteresis in degree, x10
+		</Help>
+	</Value>
+	<Value genre="config" index="9" label="Auto brightness" max="1" min="0" size="1" type="list" units="" value="1">
+		<Help>
+			Display auto-brightness control
+		</Help>
+		<Item label="Manual control" value="0"/>
+		<Item label="Automatic control" value="1"/>
+	</Value>
+	<Value genre="config" index="10" label="Manual brightness" max="15" min="1" size="1" type="byte" units="" value="10">
+		<Help>
+			Display manual brightness level
+		</Help>
+	</Value>
+	<Value genre="config" index="11" label="Touch sensitivity" max="50" min="5" size="1" type="byte" units="" value="15">
+		<Help>
+			Touch buttons sensitivity. 5=Super sensitive. 50=lowest sensitivity.
+		</Help>
+	</Value>
+	<Value genre="config" index="14" label="Basic set action" max="9" min="0" size="1" type="list" units="" value="2">
+		<Help>
+			This Parameter defines which Operating Mode the HE-FT01 reverts to if the Basic Set command is received.
+		</Help>
+		<Item label="No action" value="0"/>
+		<Item label="COM with Heating and Cooling Climate Mode" value="1"/>
+		<Item label="COM with Heating Climate Mode" value="2"/>
+		<Item label="COM with Cooling Climate Mode" value="3"/>
+		<Item label="TIME with Heating and Cooling Climate Mode" value="4"/>
+		<Item label="TIME with Heating Climate Mode" value="5"/>
+		<Item label="TIME with Cooling Climate Mode" value="6"/>
+		<Item label="ECO with Heating Climate Mode" value="7"/>
+		<Item label="ECO with Cooling Climate Mode" value="8"/>
+		<Item label="Ventilation Climate Mode" value="9"/>
+	</Value>
+	<Value genre="config" index="31" label="Sensor report time" max="120" min="1" size="1" type="byte" units="mins" value="10">
+		<Help>
+			Sensors consecutive reporting interval, minutes
+		</Help>
+	</Value>
+	<Value genre="config" index="32" label="Consumption report time" max="120" min="1" size="1" type="byte" units="mins" value="10">
+		<Help>
+			Consumption meter consecutive reporting interval, minutes
+		</Help>
+	</Value>
+	<Value genre="config" index="33" label="Themperature threshold" max="100" min="0" size="1" type="byte" units="" value="5">
+		<Help>
+			Temperature difference to send to controller, value X 10
+			Note: values between 0 ... 5 are not used.
+		</Help>
+	</Value>
+	<Value genre="config" index="34" label="Humidity threshold" max="25" min="0" size="1" type="byte" units="%" value="2">
+		<Help>
+			Humidity difference to send to controller, %
+			Note: values between 0 ... 2 are not used.
+		</Help>
+	</Value>
+	<Value genre="config" index="35" label="Light threshold" max="99" min="0" size="1" type="byte" units="%" value="50">
+		<Help>
+			Light sensor values difference to send to controller, %
+			Note: values between 0 ... 10 are not used.
+		</Help>
+	</Value>
+	<Value genre="config" index="36" label="Power of the Relay 1 load in W" max="5000" min="0" size="2" type="short" units="W" value="0">
+		<Help>
+			Power of the Relay 1 load in W
+		</Help>
+	</Value>
+	<Value genre="config" index="37" label="Power of the Relay 2 load in W" max="5000" min="0" size="2" type="short" units="W" value="0">
+		<Help>
+			Power of the Relay 2 load in W
+		</Help>
+	</Value>
+	<Value genre="config" index="38" label="Power of the Relay 3 load in W" max="5000" min="0" size="2" type="short" units="W" value="0">
+		<Help>
+			Power of the Relay 3 load in W
+		</Help>
+	</Value>
+	<Value genre="config" index="39" label="Power of the Relay 4 load in W" max="5000" min="0" size="2" type="short" units="W" value="0">
+		<Help>
+			Power of the Relay 4 load in W
+		</Help>
+	</Value>
+	<Value genre="config" index="40" label="Power of the Relay 5 load in W" max="5000" min="0" size="2" type="short" units="W" value="0">
+		<Help>
+			Power of the Relay 5 load in W
+		</Help>
+	</Value>
+	<Value genre="config" index="41" label="TIME mode operation" max="3" min="1" size="1" type="list" units="" value="1">
+		<Help>
+			This parameter determines the Climate Mode (Heating or Cooling) to which HE-FT01 will switch when the TIME operating mode is selected. 
+			If the value = 1 the thermostat will go to Heating  and Cooling mode, if value = 2 the thermostat goes to Heating mode, if the value = 3 the thermostat goes to Cooling Mode. 
+		</Help>
+		<Item label="Heating and Cooling mode" value="1"/>
+		<Item label="Heating mode" value="2"/>
+		<Item label="Cooling Mode" value="3"/>
+	</Value>
+	<Value genre="config" index="42" 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 genre="config" index="43" 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 genre="config" index="44" 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 genre="config" index="45" 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 genre="config" index="46" 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 genre="config" index="47" 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 genre="config" index="48" 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 genre="config" index="49" 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 genre="config" index="50" 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 genre="config" index="51" 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 genre="config" index="52" 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 genre="config" index="53" 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 genre="config" index="54" 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 genre="config" index="55" 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 genre="config" index="56" 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 genre="config" index="57" 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 genre="config" index="58" 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 genre="config" index="59" 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 genre="config" index="60" 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 genre="config" index="61" 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 genre="config" index="62" 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 genre="config" index="63" 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 genre="config" index="64" 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 genre="config" index="65" 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 genre="config" index="66" 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 genre="config" index="67" 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 genre="config" index="68" 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 genre="config" index="69" 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 genre="config" index="70" 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 genre="config" index="71" 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 genre="config" index="72" 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 genre="config" index="73" 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="6">
+	      <Group index="1" label="Lifeline" max_associations="1"/>
+	      <Group auto="true" index="2" label="Fan Low Speed (OUT-1)" max_associations="10"/>
+	      <Group auto="true" index="3" label="Fan Medium Speed (OUT-2)" max_associations="10"/>
+	      <Group auto="true" index="4" label="Fan High Speed (OUT-3)" max_associations="10"/>
+	      <Group auto="true" index="5" label="Heater (OUT-4)" max_associations="10"/>
+	      <Group auto="true" index="6" label="Cooler (OUT-5)" max_associations="10"/>
+	   </Associations>
+   </CommandClass>
+</Product>
diff --git a/config/heltun/he-ht01.xml b/config/heltun/he-ht01.xml
new file mode 100644
index 0000000000..c9b2325c77
--- /dev/null
+++ b/config/heltun/he-ht01.xml
@@ -0,0 +1,427 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+   <MetaDataItem name="Name">Heating Thermostat HE-HT01</MetaDataItem>
+   <MetaDataItem name="Description">This is advanced programmable Thermostat for Heating Systems</MetaDataItem>
+   <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0344:0001:0004</MetaDataItem>
+   <MetaDataItem name="ProductPage">https://www.heltun.com/</MetaDataItem>
+   <MetaDataItem name="ProductSupport">https://www.heltun.com/support</MetaDataItem>
+   <MetaDataItem name="ProductPic">images/heltun/he-ht01.png</MetaDataItem>
+   <MetaDataItem id="0001" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/3681</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">U.S. / Canada / Mexico</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">Australia / New Zealand</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">Russia</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">Israel</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">China</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">South Korea</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">Japan</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">Hong Kong</MetaDataItem>
+   <MetaDataItem id="0001" name="FrequencyName" type="0004">India</MetaDataItem>
+   <MetaDataItem id="0001" name="Identifier" type="0004">HE-HT01</MetaDataItem>
+   <ChangeLog>
+	   <Entry author="Narek Manukyan - n.manukyan@heltun.com" date="22 January 2020" revision="1">Metadata for HELTUN Heating Thermostat</Entry>
+   </ChangeLog>
+  </MetaData>
+  <!-- Thermostat modes -->
+  <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="" value="0" write_only="false">
+      <Item label="Manual Off" value="0"/>
+      <Item label="Comfort" value="1"/>
+      <Item label="Dry floor" value="8"/>
+      <Item label="Time" value="10"/>
+      <Item label="Energy Saving" value="11"/>
+      <Item label="Vacation" value="13"/>
+    </Value>
+    <SupportedModes>
+      <Mode index="0" label="OFF"/>
+      <Mode index="1" label="HEAT"/>
+      <Mode index="8" label="DRY"/>
+      <Mode index="10" label="AUTO CHANGEOVER"/>
+      <Mode index="11" label="ENERGY HEAT"/>
+      <Mode index="13" label="AWAY"/>
+    </SupportedModes>
+    <Compatibility/>
+  </CommandClass>
+  <!-- Thermostat Set points -->
+  <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="25" write_only="false"/>
+    <Value genre="user" index="8" instance="1" label="Dry Air" max="0" min="0" read_only="false" type="decimal" units="C" value="30" write_only="false"/>
+    <Value genre="user" index="10" instance="1" label="Auto changeover" max="0" min="0" read_only="false" type="decimal" units="C" value="18" write_only="false"/>
+    <Value genre="user" index="11" instance="1" label="Energy Save Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="20" write_only="false"/>
+    <Value genre="user" index="13" instance="1" label="Away Heating" max="0" min="0" read_only="false" type="decimal" units="C" value="15" write_only="false"/>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Floor sensor resistance" max="100" min="1" size="1" type="byte" units="kohm" value="10">
+      <Help>
+	      Floor Sensor Resistance, kohm
+      </Help>
+    </Value>
+    <Value genre="config" index="2" label="S1 input mode" max="2" min="0" size="1" type="list" units="" value="0">
+      <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 S1 was short-circuited. The thermostat will go back to previous mode as soon as the S1 is open. If parameter value is 2 the thermostat will be switched to the operating 
+	      mode selected in Parameter 3 if the S1 was short-circuited. But the thermostat will not undertake any action if the S1 is open again.
+      </Help>
+      <Item label="Ignore S1 input" value="0"/>
+      <Item label="Trigger on input" value="1"/>
+      <Item label="Latch on input" value="2"/>
+    </Value>
+    <Value genre="config" index="3" label="S1 input action" max="7" min="1" size="1" type="list" units="" value="6">
+      <Help>
+	      Mode number for S1 input action.  This parameter allows selecting which operating mode the thermostat should go to if the S1 input is short-circuited with Sx or LINE wire of the mains electricity. 
+	      1=COM, 2=TIME, 3=DRY, 4=ECO, 5=VAC, 6=MAN mode with IDLE(off) state, 7=MAN mode with HEATING(on) state.
+      </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 OFF" value="6"/>
+      <Item label="MAN ON" value="7"/>
+    </Value>
+    <Value genre="config" index="4" label="Source sensor type" 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"/>
+    </Value>
+    <Value genre="config" index="5" label="Power reg on" max="240" min="10" size="2" type="short" units="mins" value="30">
+      <Help>
+	      Power Regulation ON time, min
+      </Help>
+    </Value>
+    <Value genre="config" index="6" label="Power reg off" max="240" min="10" size="2" type="short" units="mins" value="30">
+      <Help>
+	      Power Regulation OFF time, min
+      </Help>
+    </Value>
+    <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 genre="config" index="8" label="Dry switch mode" max="6" min="1" size="1" type="list" units="" value="1">
+      <Help>
+	      Mode to switch after Dry mode operation completion
+      </Help>
+      <Item label="COM" value="1"/>
+      <Item label="TIME" value="2"/>
+      <Item label="Reserved" value="3"/>
+      <Item label="ECO" value="4"/>
+      <Item label="VAC" value="5"/>
+      <Item label="MAN" value="6"/>
+    </Value>
+    <Value genre="config" index="9" label="Time by controller" max="1" min="0" size="1" type="bool" units="" value="1">
+      <Help>
+	      Time correction by controller
+      </Help>
+    </Value>
+    <Value genre="config" index="10" 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"/>
+    </Value>
+    <Value genre="config" index="11" label="Week day" max="7" min="1" size="1" type="byte" units="" value="1">
+      <Help>
+	      Manually set week day
+      </Help>
+    </Value>
+    <Value genre="config" index="12" label="Hour" max="23" min="0" size="1" type="byte" units="hours" value="0">
+      <Help>
+	      Manually set time hour
+      </Help>
+    </Value>
+    <Value genre="config" index="13" label="Mins" max="59" min="0" size="1" type="byte" units="mins" value="0">
+      <Help>
+	      Maually set time minute
+      </Help>
+    </Value>
+    <Value genre="config" index="14" label="Air temp min" max="360" min="40" size="2" type="short" units="degree" value="210">
+      <Help>
+	      Air Temperature Minimum in degree, value X 10, e.g. 22.5°C=225
+      </Help>
+    </Value>
+    <Value genre="config" index="15" 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 genre="config" index="16" 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 genre="config" index="17" 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 genre="config" index="18" label="Degree mode" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>
+	      Degree Mode 0=C, 1=F
+      </Help>
+      <Item label="Centigrades" value="0"/>
+      <Item label="Farenheit" value="1"/>
+    </Value>
+    <Value genre="config" index="19" label="Air temp correction" max="95" min="-95" size="1" type="byte" units="degree" value="0">
+      <Help>
+	      Air Temperature Calibration in degree, x10
+      </Help>
+    </Value>
+    <Value genre="config" index="20" label="Floor temp correction" max="95" min="-95" size="1" type="byte" units="degree" value="0">
+      <Help>
+	      Floor Temperature Calibration in degree, x10
+      </Help>
+    </Value>
+    <Value genre="config" index="21" label="Temp hysteresis" max="100" min="2" size="1" type="byte" units="degree" value="5">
+      <Help>
+	      Temperature Hysteresis in degree, x10
+      </Help>
+    </Value>
+    <Value genre="config" index="22" label="Auto brightness" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>
+	      Display auto-brightness control
+      </Help>
+      <Item label="Manual control" value="0"/>
+      <Item label="Automatic control" value="1"/>
+    </Value>
+    <Value genre="config" index="23" label="Manual brightness" max="15" min="1" size="1" type="byte" units="" value="10">
+      <Help>
+	      Display manual brightness level
+      </Help>
+    </Value>
+    <Value genre="config" index="24" label="Touch sensitivity" max="50" min="5" size="1" type="byte" units="" value="15">
+      <Help>
+	      Touch buttons sensitivity. 5=Super sensitive. 50=lowest sensitivity.
+      </Help>
+    </Value>
+    <Value genre="config" index="30" label="Basic set action" max="6" min="1" size="1" type="list" units="" value="1">
+      <Help>
+	      Mode to switch to on Basic Set Action command receive
+      </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 genre="config" index="41" label="Sensor report time" max="120" min="1" size="1" type="byte" units="mins" value="10">
+      <Help>
+	      Sensors consecutive reporting interval, minutes
+      </Help>
+    </Value>
+    <Value genre="config" index="42" label="Consumption report time" max="120" min="1" size="1" type="byte" units="mins" value="10">
+      <Help>
+	      Consumption meter consecutive reporting interval, minutes
+      </Help>
+    </Value>
+    <Value genre="config" index="43" label="Themperature threshold" max="100" min="0" size="1" type="byte" units="" value="5">
+      <Help>
+	      Temperature difference to send to controller, value X 10
+	      Note: values between 0 ... 5 are not used.
+      </Help>
+    </Value>
+    <Value genre="config" index="44" label="Humidity threshold" max="25" min="0" size="1" type="byte" units="%" value="2">
+      <Help>
+	      Humidity difference to send to controller, %
+	      Note: values between 0 ... 2 are not used.
+      </Help>
+    </Value>
+    <Value genre="config" index="45" label="Light threshold" max="99" min="0" size="1" type="byte" units="%" value="50">
+      <Help>
+	      Light sensor values difference to send to controller, %
+	      Note: values between 0 ... 10 are not used.
+      </Help>
+    </Value>
+    <Value genre="config" index="46" 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 genre="config" index="47" 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 genre="config" index="48" 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 genre="config" index="49" 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 genre="config" index="50" 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 genre="config" index="51" 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 genre="config" index="52" 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 genre="config" index="53" 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 genre="config" index="54" 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 genre="config" index="55" 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 genre="config" index="56" 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 genre="config" index="57" 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 genre="config" index="58" 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 genre="config" index="59" 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 genre="config" index="60" 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 genre="config" index="61" 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 genre="config" index="62" 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 genre="config" index="63" 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 genre="config" index="64" 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 genre="config" index="65" 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 genre="config" index="66" 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 genre="config" index="67" 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 genre="config" index="68" 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 genre="config" index="69" 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 genre="config" index="70" 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 genre="config" index="71" 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 genre="config" index="72" 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 genre="config" index="73" 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 genre="config" index="74" 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 genre="config" index="75" 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 genre="config" index="76" 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 genre="config" index="77" 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" label="Lifeline" max_associations="1"/>
+      <Group auto="true" index="2" label="Basic Set" max_associations="10"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/homeseer/hs-fs100plus.xml b/config/homeseer/hs-fs100plus.xml
index 18f62bdfab..ec183cc8fc 100644
--- a/config/homeseer/hs-fs100plus.xml
+++ b/config/homeseer/hs-fs100plus.xml
@@ -1,5 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+        <MetaDataItem name="Name">Flex Sensor</MetaDataItem>
+        <MetaDataItem name="Description">HS-FS100+ (“Flex Sensor”) is a multifunction module that includes a temperature sensor, controllable buzzer and a port to connect optional external light or water sensors. It is designed to work with a variety of Z-Wave certified home controllers to launch automation events or scenes.
+
+- Use to trigger events based on changes in temperature
+- Use the built-in buzzer as an audible notification that triggers when things happen in your home
+- Use with optional light sensor to trigger events when indicator lights on applications turn on or off
+- Use with optional water sensor to trigger events when water is detected
+</MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/000C:0001:0202</MetaDataItem>
+        <MetaDataItem id="0001" name="ProductPage" type="0202">https://products.z-wavealliance.org/products/3050</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/homeseer/hs-fs100plus.png</MetaDataItem>
+        <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=Manuals/3050/HS-FS100-Manual 081418.pdf</MetaDataItem>
+        <MetaDataItem name="WakeupDescription">When on battery power, the unit will stay awake for 5 minutes when the button is pressed to complete inclusion process. Once included, the unit will wake up every 60 seconds and detect for  water or light depending on which cable is plugged into it.
+
+Also, the unit will wake up every hour to report temperature to the controller.
+</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">Inclusion: Add the device into your network by a Z-Wave certified controller. HS-FS100+ supports the latest S2 security offered by Z-Wave certified controllers. If your controller supports S2, please refer to the user guide of the controller for detailed instructions on adding devices to the network. The device can be added using the traditional method for Z-Wave as follows:
+1. Place your controller into Inclusion (Add) mode by following the controller manufacturer's instructions.
+2. When the controller is ready, single click the button of HS-FS100+. The controller should indicate that the new device was added successfully. If the controller shows it failed, repeat the procedure.
+</MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">Exclusion:  Remove the device from your network by a Z-Wave certified controller. HS-FS100+ supports the latest S2 security offered by Z-Wave certified controllers. If your controller supports S2, please refer to the user guide of the controller for detailed instructions on removing devices from the network. The device can be removed using the traditional method for Z-Wave as follows:
+1. Place your controller into Exclusion mode by following the controller manufacturer's instructions.
+2. When the controller is ready, single click the button of HS-FS100+. The controller should indicate that the device was removed successfully. If the controller shows it failed, repeat the procedure.
+</MetaDataItem>
+        <MetaDataItem name="ResetDescription">Use this procedure to reset Flex Sensor to factory settings when the Z-Wave controller is missing or otherwise inoperable.
+
+Press and hold the Z-Wave button on the sensor body for 10 seconds. If successful, the LED will flash 5 times.
+</MetaDataItem>
+        <MetaDataItem id="0001" name="FrequencyName" type="0202">U.S. / Canada / Mexico</MetaDataItem>
+        <MetaDataItem id="0001" name="Identifier" type="0202">HS-FS100+</MetaDataItem>
+        <ChangeLog>
+            <Entry author="Christopher Viel" date="31 December 2020" revision="2">Metadata Import from Z-Wave Alliance Database</Entry>
+        </ChangeLog>
+    </MetaData>
+
     <!--
       HomeSeer HS-FS100+ Flex Sensor
       https://products.z-wavealliance.org/products/3050
@@ -37,8 +72,9 @@
 
     <!-- Association Groups -->
     <CommandClass id="133">
-        <Associations num_groups="1">
+        <Associations num_groups="2">
             <Group index="1" max_associations="5" label="Lifeline"/>
+            <Group index="2" max_associations="5" label="Basic Set"/>
         </Associations>
     </CommandClass>
 </Product>
diff --git a/config/homeseer/hs-wd100plus.xml b/config/homeseer/hs-wd100plus.xml
index 2c39cd035a..b751a26cd5 100644
--- a/config/homeseer/hs-wd100plus.xml
+++ b/config/homeseer/hs-wd100plus.xml
@@ -1,4 +1,4 @@
-<Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/000C:3034:4447</MetaDataItem>
     <MetaDataItem name="ProductPic">images/homeseer/hs-wd100plus.png</MetaDataItem>
@@ -35,8 +35,15 @@ To manually reset, tap the ON button twice quickly and then tap the OFF button t
       <Entry author="Jean-Francois Auger- Nechry@gmail.com" date="25 May 2019" revision="5">Apply PR #1546 from kaburke</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2563/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2874/xml</Entry>
+      <Entry author="Jeremy M. Johnson" date="23 June 2020" revision="8">Added compatibility parameters to ensure correct dimming level is reported</Entry>
     </ChangeLog>
   </MetaData>
+  <!-- Compatibility Parameters -->
+  <CommandClass id="38">
+    <Compatibility>
+      <VerifyChanged index="0">true</VerifyChanged>
+    </Compatibility>
+  </CommandClass>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value genre="config" index="4" label="Invert switch" max="1" min="0" size="1" type="list" value="0">
diff --git a/config/honeywell/2681-plugin-dimmer.xml b/config/honeywell/2681-plugin-dimmer.xml
new file mode 100644
index 0000000000..5c43c56ef4
--- /dev/null
+++ b/config/honeywell/2681-plugin-dimmer.xml
@@ -0,0 +1,102 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0039:3038:5044</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/honeywell/2681-plugin-dimmer.png</MetaDataItem>
+    <MetaDataItem id="3038" name="ZWProductPage" type="5044">https://products.z-wavealliance.org/products/2681/</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 add
+the smart dimmer to the Z-Wave network.
+2. Once the controller is ready to add your smart dimmer, single
+press and release the manual/program button on the smart
+dimmer to add it in the network.
+Please reference the controller/gateway’s manual for instructions.</MetaDataItem>
+    <MetaDataItem id="3038" name="Identifier" type="5044">39336/ZW3104</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/2681/39336-HQSG_v1.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">To return your dimmer to factory defaults:
+1. If plugged in, unplug the dimmer from the receptacle.
+2. Press and hold the top button for at least 3 seconds while you
+plug the dimmer into a receptacle.
+Note: This should only be used in the event your networks’ primary
+controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the Honeywell Z-Wave Plug-In Smart Dimmer. The Smart Dimmer 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 Honeywell Z-Wave Smart Lighting Controls! </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-Wave certified controller to
+remove a device from the Z-Wave network.
+2. Once the controller is ready to remove your device, press and
+release the manual/program button on the smart dimmer to
+remove it from the network.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Brent Cohen - brentcohen@gmail.com" date="19 Aug 2020" revision="1">Copied from  28617/ZW3104 GE Plug-in Dimmer by Justin Hammond - Justin@dynam.ac</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!--
+
+Verify Changed to fix issues with update after power off
+  -->
+  
+  <CommandClass id="38">
+    <Compatibility>
+      <VerifyChanged index="0">true</VerifyChanged>
+    </Compatibility>
+  </CommandClass>
+  
+  <!--
+
+There are multiple sources of information for this product:
+
+[ZWave Alliance]: https://products.z-wavealliance.org/products/1433
+
+[EzZWave]: https://www.ezzwave.com/sites/jasco/uploads/documents/PDFs/part2/28167_Product_Page.pdf
+
+The sources above contradict each other on multiple points.
+  -->
+  <CommandClass id="112">
+    <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"/>
+    </Value>
+    <!--
+
+In [EzZWave], the configuration parameters from index 7 to 12 have a size of 1
+for the odd parameters and 2 for the even ones. (This translates to `byte` and
+`short` types.)
+
+[ZWave Alliance] shows a size of 1 for these parameters (i.e. all `byte`).
+
+[EzZWave] is correct. When I (@lddubeau) tested changing parameters with all
+types set to `byte`, I could not set the even-numbered parameters. After
+changing the even-numbered parameters to type `short`, I could set them.
+
+Neither source of documentation does a good job at describing the role of the
+dim step/rate parameters. I (@lddubeau) took a look at the other GE devices
+defined in this database and adopted the descriptions and explanations that fit
+best with the observed behavior.
+
+    -->
+    <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>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/honeywell/3830-zw3107.xml b/config/honeywell/3830-zw3107.xml
new file mode 100644
index 0000000000..f1bfeff9a1
--- /dev/null
+++ b/config/honeywell/3830-zw3107.xml
@@ -0,0 +1,70 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Plug-in Dimmer (Dual Plug Simultaneous Control)</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the Honeywell Z-Wave Smart Lighting Control Lamp Module with Dimmer Control. 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. It provides a Z-Wave enabled outlet for the lamp you would like to control and one always-on, simultaneous control AC outlet for other electrical appliances. Take control of your home lighting with Honeywell Z-Wave Smart Controls!</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0039:3033:5044</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/honeywell/3830-zw3107.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3830/39446-HQSG_v4.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Follow the instructions for your Z-Wave certified controller to add a device to the Z-Wave network. Once the controller is ready to add your device, press and release the manual/program button on the smart dimmer. Repeat as necessary to add the dimmer to the network.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Follow the instructions for your Z-Wave certified controller to remove a device from the Z-Wave network. Once the controller is ready to remove your device, press and release the manual/program button on the smart dimmer to remove it from the network.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">If plugged in, unplug the dimmer from the receptacle. Press and hold the top button, plug the device in and continue to hold for at least 3 seconds.</MetaDataItem>
+    <MetaDataItem id="3033" name="ZWProductPage" type="5044">https://products.z-wavealliance.org/products/3830</MetaDataItem>
+    <MetaDataItem id="3033" name="FrequencyName" type="5044">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3033" name="Identifier" type="5044">39446 / ZW3107</MetaDataItem>
+    <ChangeLog>
+      <Entry author="AJ Schmidt - ajs4392@gmail.com" date="30 Aug 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/Products/3830/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+
+
+  <CommandClass id="38">
+    <Compatibility>
+      <VerifyChanged index="0">true</VerifyChanged>
+    </Compatibility>
+  </CommandClass>
+
+
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="Invert/Disable LED" max="2" min="0" size="1" type="list" value="1">
+      <Help>Adjusts when the indicator LED is turned ON, OFF, or disabled</Help>
+      <Item label="LED ON/Device OFF" value="0"/>
+      <Item label="(Default) LED ON/Device ON" value="1"/>
+      <Item label="Disable LED" value="2"/>
+    </Value>
+    <Value genre="config" index="6" label="Dim up/down rate" max="1" min="0" size="1" type="list" value="0">
+      <Help>Adjusts when the indicator LED is turned ON, OFF, or disabled</Help>
+      <Item label="(Default) Dim up/down the light to the specified level quickly by command except value 0 and FF" value="0"/>
+      <Item label="Dim up/down the light to the specified level slowly by command except value 0 and FF" value="1"/>
+    </Value>
+
+    <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>
+
+
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Supports Basic Set and is controlled with the local load" max_associations="5"/>
+      <Group index="3" label="Supports Basic Set and is controlled by double pressing the On or Off button" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/honeywell/39348-ZW4005.xml b/config/honeywell/39348-ZW4005.xml
new file mode 100644
index 0000000000..86749a7f71
--- /dev/null
+++ b/config/honeywell/39348-ZW4005.xml
@@ -0,0 +1,46 @@
+<!-- Honeywell(Jasco) 39348 / ZW4005 In-Wall Smart Switch-->
+<Product Revision="2" 
+  xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/honeywell/39348-ZW4005.png</MetaDataItem>
+    <MetaDataItem id="3036" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/2689/</MetaDataItem>
+    <MetaDataItem id="3036" name="Identifier" type="4952">39348 / ZW4005</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.
+3. Once your controller has confirmed that the device has been included, refresh the Z-Wave network to optimize performance.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Quickly press ON (Top) button 3 times then immediately press the OFF (Bottom) button 3 times. The LED will flash ON/OFF 5 times when completed successfully. 
+Note: Please use this reset procedure only when the primary controller is missing or inoperable.</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 button of the wireless smart switch (rocker) to exclude it from the network.</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Smart Switch</MetaDataItem>
+    <MetaDataItem id="3036" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description"></MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2689/39348-HQSG_v1.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Dinko Bajric - dbajric@gmail.com" date="22 March 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/Products/2689/XML</Entry>
+      <Entry author="Justin Hammond" date="24 June 2020" revision="2">Correct Product Pic Entry</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters - per https://products.z-wavealliance.org/Products/2689 -->
+  <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 - Load" max_associations="5"/>
+      <Group index="3" label="Basic - Double Tap" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/honeywell/39348-zw4008.xml b/config/honeywell/39348-zw4008.xml
new file mode 100644
index 0000000000..a1a509189c
--- /dev/null
+++ b/config/honeywell/39348-zw4008.xml
@@ -0,0 +1,57 @@
+<!-- Honeywell(Jasco) 39348 / ZW4008 In-Wall Smart Switch-->
+<Product Revision="2" 
+  xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <!--<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/</MetaDataItem>-->
+    <MetaDataItem name="ProductPic">images/honeywell/39348-ZW4008.png</MetaDataItem>
+    <MetaDataItem id="3135" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/3599/</MetaDataItem>
+    <MetaDataItem id="3135" name="Identifier" type="4952">39348 / ZW4008</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-Wave certified controller to add a device to the Z-Wave network.
+2. Once the controller is ready to add your device, press and release the top or bottom of the wireless smart switch (rocker) to add it in the network.
+
+If prompted by the controller to enter the S2 security code, refer to the QR code/security number on the back of the box, or the QR code label on the product.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Quickly press ON (top) button 3 times, then, immediately press the OFF (bottom) button 3 times. The LED will flash ON/OFF 5 times when completed successfully.
+Note: This should only be used in the event your network’s primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-Wave certified controller to remove a device from the Z-Wave network.
+2. Once the controller is ready to remove your device, press and release the top or bottom of the wireless smart switch (rocker) to remove it from the network.</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Smart Switch</MetaDataItem>
+    <MetaDataItem id="3135" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">In-Wall Smart Switch with QuickFit and SimpleWire enhancements. Revolutionary QuickFit design features a housing depth that is up to 20 percent smaller than the previous Z-Wave models. This reduced size coupled with the elimination of heat taps provides a better fit in older style boxes and multi-gang configurations. SimpleWire technology allows line and load to automatically be configured with auto-sensing line-load terminals. All of this is coupled with Z-Wave S2 and Smart Start allows for effortless installation while being safer than ever!</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3599/39348%20Binder.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jeff Sanicola - jeff.sanicola@outlook.com" date="01 Jan 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/Products/3599/xml</Entry>
+      <Entry author="Brian France" date="11 Dec 2020" revision="2">Added COMMAND_CLASS_BASIC block to set Value type instead of Node Event for Basic Set, Added COMMAND_CLASS_ASSOCIATION block for double tap with double tap defauled to auto</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters - per https://products.z-wavealliance.org/products/3599 -->
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Indication Configuration" max="3" 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"/>
+      <Item label="LED always on" value="3"/>
+    </Value>
+    <Value genre="config" index="19" label="Alternate Exclusion" max="1" size="1" type="list" value="0">
+      <Help>0 (default) - Press any button on the device 
+1 - Press 2 times ON button and then 2 times OFF button, LED will flash 5 times if done successful</Help>
+      <Item label="Any button" value="0"/>
+      <Item label="2x ON button, 2x OFF button" 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 - Load" max_associations="5"/>
+      <Group index="3" label="Basic - Double Tap" max_associations="5" auto="true"/>
+    </Associations>
+  </CommandClass>
+  <!-- COMMAND_CLASS_BASIC -->
+   <CommandClass id="32">
+     <Compatibility>
+       <IgnoreMapping>true</IgnoreMapping>
+       <SetAsReport>true</SetAsReport>
+     </Compatibility>
+   </CommandClass>
+</Product>
diff --git a/config/honeywell/39349-ZW1002.xml b/config/honeywell/39349-ZW1002.xml
new file mode 100644
index 0000000000..165a806d70
--- /dev/null
+++ b/config/honeywell/39349-ZW1002.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" 
+  xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/honeywell/39349-ZW1002.png</MetaDataItem>
+    <MetaDataItem id="3133" name="ZWProductPage" type="4952">https://products.z-wavealliance.org/products/2690</MetaDataItem>
+    <MetaDataItem id="3133" name="Identifier" type="4952">39349 / ZW1002</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-Wave certified controller to add a device to the Z-Wave network. 2. Once the controller is ready to add your device, press and release the program button to add it in the network.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Quickly press the button three (3) times, then press and hold the button for at least three (3) seconds. The LED will blink five (5) times to confirm.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-Wave certified controller to remove a device from the Z-Wave network. 2. Once the controller is ready to remove your device, press and release the manual/program button to remove it from the network.</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Tamper Resistant Outlet</MetaDataItem>
+    <MetaDataItem id="3133" name="FrequencyName" type="4952">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">The Honeywell Z-Wave Tamper Resistant Outlet enables wireless control of on/off functions from the Z-Wave controlled outlet</MetaDataItem>
+	<MetaDataItem name="ProductPage">https://byjasco.com/products/ge-z-wave-plus-wall-tamper-resistant-smart-outlet</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2690/39349_HQSG_1.pdf</MetaDataItem>
+	<MetaDataItem name="ProductSupport">https://byjasco.com/support</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jeff Buss - jeff.buss.3477@gmail.com" date="5 AUG 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/Products/2690/XML</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters - per https://products.z-wavealliance.org/Products/2690 -->
+  <CommandClass id="112">
+    <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 outlet is lit.</Help>
+      <Item label="LED on when load off" value="0"/>
+      <Item label="LED on when load on (Default)" value="1"/>
+      <Item label="LED always off" value="2"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Z-Wave Plus Lifeline" max_associations="5"/>
+      <Group index="2" label="Supports Basic Set and is controlled with the local load" max_associations="5"/>
+      <Group index="3" label="Supports Basic Set and is controlled by pressing the On or Off button" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/honeywell/39351-ZW3010.xml b/config/honeywell/39351-ZW3010.xml
new file mode 100644
index 0000000000..a738a208ac
--- /dev/null
+++ b/config/honeywell/39351-ZW3010.xml
@@ -0,0 +1,74 @@
+<!-- Honeywell(Jasco) 39351 Z-Wave Plus Dimmer Switch -->
+<!-- Configuration Parameters - per http://products.z-wavealliance.org/products/3600 -->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0039:3235:4944</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/honeywell/39351-ZW3005.png</MetaDataItem>
+    <MetaDataItem id="3235" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/3600/</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Smart Dimmer </MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3600/39351%20Binder.pdf</MetaDataItem>
+    <MetaDataItem id="3235" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ResetDescription">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 network’s
+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 add your device,
+press and release the top or bottom of the wireless smart
+switch (rocker) to add it in the network.
+Please reference the controller’s manual for instructions.</MetaDataItem>
+    <MetaDataItem name="Description">In-Wall Smart Dimmer with QuickFit and SimpleWire enhancements. Revolutionary QuickFit design features a housing depth that is up to 20 percent smaller than the previous Z-Wave models. This reduced size coupled with the elimination of heat taps provides a better fit in older style boxes and multi-gang configurations. SimpleWire technology allows line and load to automatically be configured with auto-sensing line-load terminals. All of this is coupled with Z-Wave S2 and Smart Start allows for effortless installation while being safer than ever!</MetaDataItem>
+    <MetaDataItem id="3235" name="Identifier" type="4944">39351/ZW3010</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-Wave certified controller to
+remove 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 dimmer
+(rocker) to remove it from the network.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Garrett Porter - suckitsears@yandex.com" date="27 February 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3600/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="LED Indication Configuration" max="3" min="0" size="1" type="list" value="0">
+      <Help>Adjust the LED status to default, invert, always OFF or always ON</Help>
+      <Item label="Device is ON, LED is OFF; device is OFF, LED is ON" value="0"/>
+      <Item label="Device is ON, LED is ON; device is OFF, LED is OFF" value="1"/>
+      <Item label="LED always OFF" value="2"/>
+      <Item label="LED always ON" value="3"/>
+    </Value>
+    <Value genre="config" index="6" label="Dim up/down rate" max="1" min="0" size="1" type="list" value="0">
+      <Help>Adjust the speed at which the ramps to a specific value other than 0 and FF</Help>
+      <Item label="Dim up/down the light to the specified level quickly by command except value 0 and FF" value="0"/>
+      <Item label="Dim up/down the light to the specified level slowly by command except value 0 and FF" value="1"/>
+    </Value>
+    <Value genre="config" index="16" label="Switch Mode" max="1" min="0" size="1" type="list" value="0">
+      <Help>Turn your dimmer into an On/Off switch with switch mode</Help>
+      <Item label="Disable normal operation" value="0"/>
+      <Item label="Enable switch mode" value="1"/>
+    </Value>
+    <Value genre="config" index="19" label="Alternate Exclusion"  max="1" min="0" size="1" type="list" value="0">
+      <Help>Never accidentally remove a device during with alternate exclusion</Help>
+      <Item label="Normal operation, press any button on the device" value="0"/>
+      <Item label="Press two times ON button and two times OFF button, LED will flash 5 times if exclusion is successful" value="1"/>
+    </Value>
+    <Value genre="config" index="30" label="Minimum Dim Threshold" max="99" min="1" type="byte" units="" value="1">
+      <Help>Set the minimum dimmer threshold</Help>
+    </Value>
+    <Value genre="config" index="31" label="Maximum Brightness Threshold" max="99" min="1" type="byte" units="" value="99">
+      <Help>Set the brightness threshold</Help>
+    </Value>
+    <Value genre="config" index="32" label="Default Brightness Level" max="99" min="0" type="byte" units="" value="0">
+      <Help>Set the default brightness level that the dimmer will turn on when being controlled manually</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/honeywell/39357-ZW3004.xml b/config/honeywell/39357-ZW3004.xml
new file mode 100644
index 0000000000..6ff16ac78e
--- /dev/null
+++ b/config/honeywell/39357-ZW3004.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">In-Wall Smart Toggle Dimmer</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the Honeywell Z-Wave In-Wall Toggle 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 Dimmer allows you to operate the switch by itself or easily integrate the switch three-way or four-way wiring configurations by adding the Honeywell 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 Honeywell Add-On Switch is required for three-way or four-way installations. Take control of your home lighting with Honeywell Z-Wave Smart Controls!</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0039:3130:4944</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://byjasco.com/honeywell-z-wave-plus-wall-smart-dimmer-0</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/honeywell/39357-ZW3004.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2727/39357-QSG-v1-para.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Follow the instructions for your Z-Wave certified controller to add a device to the Z-Wave network. 2. Once the controller is ready to add your device, press up and release on the toggle to add it in the network</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-Wave certified controller to remove a device from the Z-Wave network. 2. Once the controller is ready to remove your device, press up and release on the toggle to add it in the network</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Quickly press UP button three (3) times then immediately press the DOWN button three (3) times. </MetaDataItem>
+    <MetaDataItem id="3130" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/2727</MetaDataItem>
+    <MetaDataItem id="3130" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3130" name="Identifier" type="4944">39357 / ZW3004</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Eric Clemons" date="31 Jan 2020" revision="1">Initial creation</Entry>
+    </ChangeLog>
+  </MetaData>
+
+ <CommandClass id="112">
+    <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="Default" value="0"/>
+      <Item label="Invert Switch" value="1"/>
+    </Value>
+    <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="Supports Lifeline, Multilevel Switch Report" max_associations="5"/>
+      <Group index="2" label="Supports Basic Set and is controlled with the local load" max_associations="5"/>
+      <Group index="3" label="Supports Basic Set and is controlled by double pressing the On or Off button" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
+
diff --git a/config/honeywell/39358-ZW4002.xml b/config/honeywell/39358-ZW4002.xml
new file mode 100644
index 0000000000..3b08c2f1b3
--- /dev/null
+++ b/config/honeywell/39358-ZW4002.xml
@@ -0,0 +1,56 @@
+<!-- Honeywell(Jasco) 39358 / ZW4002 In-Wall Fan Control -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0039:3131:4944</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/honeywell/39358-ZW4002.png</MetaDataItem>
+    <MetaDataItem id="3131" name="ZWProductPage" type="4944">https://products.z-wavealliance.org/products/2725/</MetaDataItem>
+    <MetaDataItem id="3131" name="Identifier" type="4944">39358 / ZW4002</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 add your device,
+press and release the top or bottom of the wireless smart
+switch (rocker) to add it in the network.
+Please reference the controller’s manual for instructions.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">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 network’s
+primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Follow the instructions for your Z-Wave certified controller to
+remove 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 dimmer
+(rocker) to remove it from the network.</MetaDataItem>
+    <MetaDataItem name="Name">In-Wall Fan Control</MetaDataItem>
+    <MetaDataItem id="3131" name="FrequencyName" type="4944">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">Transform any home into a smart home with the Honeywell Z-Wave Fan Control. The in-wall fan control easily replaces any standard in-wall switch remotely controls a ceiling fan in your home and features a three-speed control system. Your home will be equipped with ultimate flexibility with the Honeywell Z-Wave Fan Control, capable of being used by itself or with up to four Honeywell add-on switches. Screw terminal installation provides improved space efficiency when replacing existing switches and the integrated LED indicator light allows you to easily locate the switch in a dark room. The Honeywell Z-Wave Fan Control is compatible with any Z-Wave certified gateway, providing access to many popular home automation systems. Take control of your home lighting with Honeywell Z-Wave Smart Controls! 
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2725/39358-HQSG-v1-para.pdf</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Nathan Holben - nathan@holben.me" date="09 May 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2725/xml</Entry>
+      <Entry author="Bill Bagdon - bill@bagdon.io" date="14 Nov 2020" revision="2">Add LED config</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters - per https://products.z-wavealliance.org/products/2725 -->
+  <CommandClass id="112">
+    <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>
+    <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 fan on" value="0"/>
+      <Item label="LED on when fan off" value="1"/>
+      <Item label="LED always off" value="2"/>
+    </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/honeywell/39449-ZW4106.xml b/config/honeywell/39449-ZW4106.xml
new file mode 100644
index 0000000000..8f329ddad6
--- /dev/null
+++ b/config/honeywell/39449-ZW4106.xml
@@ -0,0 +1,52 @@
+<!-- Honeywell(Jasco) 39449 / ZW4106 Plug-in Smart Switch -->
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">39449 / ZW4106 Plug-in Smart Switch</MetaDataItem>
+    <MetaDataItem name="Description">Plug-in Switch (Dual Plug Simultaneous Control)</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0039:3033:5052</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.security.honeywellhome.com/product-repository/z5swpid</MetaDataItem>
+    <!--<MetaDataItem name="ProductSupport"></MetaDataItem>-->
+    <MetaDataItem name="ProductPic">images/honeywell/39449-ZW4106.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3740/39449-HQSG_v3.pdf</MetaDataItem>
+    <!--<MetaDataItem name="WakeupDescription"></MetaDataItem>-->
+    <MetaDataItem name="InclusionDescription">
+      1) Follow the instructions for your Z-Wave certified controller to add a device to the Z-Wave network.
+      2) Once the controller is ready to add your device, press and release the manual/program button on the smart switch. Repeat as necessary to add the switch to the network.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">
+      1) Follow the instructions for your Z-Wave certified controller to remove a device from the Z-Wave network.
+      2) Once the controller is ready to remove your device, press and release the manual/program button on the smart switch to remove it from the network.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">
+      1) If plugged in, unplug the device from the receptacle.
+      2) Press and hold the top button, plug the device in, and continue to hold for at least 3 seconds.
+    </MetaDataItem>
+    <MetaDataItem id="3033" name="ZWProductPage" type="5052">https://products.z-wavealliance.org/products/3740?selectedFrequencyId=2</MetaDataItem>
+    <MetaDataItem id="3033" name="FrequencyName" type="5052">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3033" name="Identifier" type="5052">39449 / ZW4106 </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Alexander Bauer - sasha@linux.com" date="24 May 2020" revision="1">Initial metadata import from Z-Wave Alliance</Entry>
+      <Entry author="Justin Hammond" date="24 June 2020" revision="2">Correct Path to Image File</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="Invert/Disable LED" min="0" max="2" size="1" type="list" value="0">
+      <Help>
+        Invert/Disable LED (Adjusts when the indicator LED is turned ON, OFF, or disables it entirely)
+      </Help>
+      <Item value="0" label="LED ON / Device ON"/>
+      <Item value="1" label="LED ON / Device OFF"/>
+      <Item value="2" label="Disable LED"/>
+    </Value>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <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/honeywell/th6320zw2003.xml b/config/honeywell/th6320zw2003.xml
index 3dddc7753a..96e9823741 100644
--- a/config/honeywell/th6320zw2003.xml
+++ b/config/honeywell/th6320zw2003.xml
@@ -1,4 +1,4 @@
-<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0039:0008:0011</MetaDataItem>
     <MetaDataItem name="ProductPic">images/honeywell/th6320zw2003.png</MetaDataItem>
@@ -36,12 +36,14 @@ Please use the reset procedure only when the primary controller is missing or in
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2583/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="3">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2893/xml</Entry>
+      <Entry author="Kyle Zimmerman" date="09 Sept 2020" revision="4">Thermostat requires 2 bytes for precision, not 1. Sending 1 results in decimal degrees (common in Celcius) setting the temperature to the minimum value.</Entry>
     </ChangeLog>
   </MetaData>
   <!-- This thermostat's setpoint descriptions are 1 based, not 0 -->
   <CommandClass id="67">
     <Compatibility>
       <Base>0</Base>
+      <OverridePrecision>2</OverridePrecision>
     </Compatibility>
   </CommandClass>
   <CommandClass id="112">
diff --git a/config/honeywell/th8320zw1000.xml b/config/honeywell/th8320zw1000.xml
index 46e439a51e..dbd19296f2 100644
--- a/config/honeywell/th8320zw1000.xml
+++ b/config/honeywell/th8320zw1000.xml
@@ -1,4 +1,4 @@
-<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="4" 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>
@@ -11,11 +11,13 @@
     <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>
+      <Entry author="automaton82" date="18 Aug 2020" revision="4">Thermostat requires 2 bytes for precision, not 1. Sending 1 results in all decimal sets returning back to minimum value.</Entry>
     </ChangeLog>
   </MetaData>
   <!-- This thermostat's setpoint descriptions are 1 based, not 0 -->
   <CommandClass id="67">
     <Compatibility>
+      <OverridePrecision>2</OverridePrecision>
       <Base>0</Base>
     </Compatibility>
   </CommandClass>
diff --git a/config/idlock/idlock150.xml b/config/idlock/idlock150.xml
index a9ebaa849e..77efe3b687 100644
--- a/config/idlock/idlock150.xml
+++ b/config/idlock/idlock150.xml
@@ -1,4 +1,4 @@
-<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="Name">ID Lock 150 Z-Wave module</MetaDataItem>
     <MetaDataItem name="Description">A module enabling your ID Lock digital door lock to a Z-Wave Plus enabled digital door Lock.
@@ -55,6 +55,7 @@ FACTORY RESET DOOR LOCK FIRMWARE:
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2780/xml</Entry>
       <Entry author="Eirik Hodne" date="25 Aug 2019" revision="3">Update as per the 1.4.9/1.6 firmware specification</Entry>
+      <Entry author="into-void" date="09 Sep 2020" revision="4">Update as per the 1.5.6/1.6 firmware specification</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Configuration Parameters -->
@@ -116,7 +117,7 @@ FACTORY RESET DOOR LOCK FIRMWARE:
       <Help>
         Service PIN Mode
         A configuration get command on this parameter returns the latest set parameter value (set by Z-wave).
-        This is a set only value, if changed locally on keypad these values are not changed on Z-wave module. Value 5 and 6 are for future use on door lock.
+        This is a set only value, if changed locally on keypad these values are not changed on Z-wave module. Value 5 and 6 will generate a random PIN in location 108.
         Disabled: Disables both PIN and Service PIN menu on door lock
 
         Default Value: 0 (Deactivated)
@@ -126,8 +127,8 @@ FACTORY RESET DOOR LOCK FIRMWARE:
       <Item label="2 times used" value="2"/>
       <Item label="5 times used" value="3"/>
       <Item label="10 times used" value="4"/>
-      <Item label="Not used (for future use)" value="5"/>
-      <Item label="Not used (for future use)" value="6"/>
+      <Item label="Random PIN 1x use" value="5"/>
+      <Item label="Random PIN 24hrs use" value="6"/>
       <Item label="Always valid" value="7"/>
       <Item label="12 Hours used" value="8"/>
       <Item label="24 Hours used" value="9"/>
@@ -159,15 +160,6 @@ FACTORY RESET DOOR LOCK FIRMWARE:
       <Item label="Disabled" value="0"/>
       <Item label="Enabled" value="1"/>
     </Value>
-    <Value genre="config" index="10" label="Retrieve RFID Information" type="int" units="">
-      <Help>
-        Configuration Report for retriving the RFID information
-        Byte 1: Para1 (msb)
-        Byte 2: Para2
-        Byte 3: Para3
-        Byte 4: Para4 (lsb)
-      </Help>
-    </Value>
   </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
diff --git a/config/images/2gig/ct200.png b/config/images/2gig/ct200.png
new file mode 100644
index 0000000000..1fc8921e08
Binary files /dev/null and b/config/images/2gig/ct200.png differ
diff --git a/config/images/BeNext/P1dongle.png b/config/images/BeNext/P1dongle.png
new file mode 100644
index 0000000000..6f7fd67ffe
Binary files /dev/null and b/config/images/BeNext/P1dongle.png differ
diff --git a/config/images/DefaultProductImage.png b/config/images/DefaultProductImage.png
new file mode 100644
index 0000000000..d13e1236fb
Binary files /dev/null and b/config/images/DefaultProductImage.png differ
diff --git a/config/images/abus/SHRM10000.jpg b/config/images/abus/SHRM10000.jpg
new file mode 100644
index 0000000000..20fc7e2c3a
Binary files /dev/null and b/config/images/abus/SHRM10000.jpg differ
diff --git a/config/images/aeotec/zwa009.png b/config/images/aeotec/zwa009.png
new file mode 100644
index 0000000000..c001db3837
Binary files /dev/null and b/config/images/aeotec/zwa009.png differ
diff --git a/config/images/aeotec/zwa011.png b/config/images/aeotec/zwa011.png
new file mode 100644
index 0000000000..1ebf0c0241
Binary files /dev/null and b/config/images/aeotec/zwa011.png differ
diff --git a/config/images/aeotec/zwa012.png b/config/images/aeotec/zwa012.png
new file mode 100644
index 0000000000..5930535c32
Binary files /dev/null and b/config/images/aeotec/zwa012.png differ
diff --git a/config/images/aeotec/zwa019.png b/config/images/aeotec/zwa019.png
new file mode 100644
index 0000000000..ebb9a1fe25
Binary files /dev/null and b/config/images/aeotec/zwa019.png differ
diff --git a/config/images/aeotec/zwa021.png b/config/images/aeotec/zwa021.png
new file mode 100644
index 0000000000..f9df13e895
Binary files /dev/null and b/config/images/aeotec/zwa021.png differ
diff --git a/config/images/aeotec/zwa023.png b/config/images/aeotec/zwa023.png
new file mode 100644
index 0000000000..4286c453ab
Binary files /dev/null and b/config/images/aeotec/zwa023.png differ
diff --git a/config/images/assa_abloy/ProSLKey-FreeDeadbolt.png b/config/images/assa_abloy/ProSLKey-FreeDeadbolt.png
new file mode 100644
index 0000000000..c674c1868c
Binary files /dev/null and b/config/images/assa_abloy/ProSLKey-FreeDeadbolt.png differ
diff --git a/config/images/assa_abloy/yrd1x0.png b/config/images/assa_abloy/yrd1x0.png
new file mode 100644
index 0000000000..bbcf13d377
Binary files /dev/null and b/config/images/assa_abloy/yrd1x0.png differ
diff --git a/config/images/assa_abloy/yrm276.png b/config/images/assa_abloy/yrm276.png
new file mode 100644
index 0000000000..0ea79eebb7
Binary files /dev/null and b/config/images/assa_abloy/yrm276.png differ
diff --git a/config/images/building36/b36-t10.png b/config/images/building36/b36-t10.png
new file mode 100644
index 0000000000..371cb591fb
Binary files /dev/null and b/config/images/building36/b36-t10.png differ
diff --git a/config/images/connecthome/CH_201.png b/config/images/connecthome/CH_201.png
new file mode 100644
index 0000000000..004f5fe3c5
Binary files /dev/null and b/config/images/connecthome/CH_201.png differ
diff --git a/config/images/cooper/RF9601.png b/config/images/cooper/RF9601.png
new file mode 100644
index 0000000000..c178ea9ba4
Binary files /dev/null and b/config/images/cooper/RF9601.png differ
diff --git a/config/images/devolo/mt2759.png b/config/images/devolo/mt2759.png
new file mode 100644
index 0000000000..58bd4a660a
Binary files /dev/null and b/config/images/devolo/mt2759.png differ
diff --git a/config/images/devolo/mt2760.png b/config/images/devolo/mt2760.png
new file mode 100644
index 0000000000..58bd4a660a
Binary files /dev/null and b/config/images/devolo/mt2760.png differ
diff --git a/config/images/devolo/mt2761.png b/config/images/devolo/mt2761.png
new file mode 100644
index 0000000000..58bd4a660a
Binary files /dev/null and b/config/images/devolo/mt2761.png differ
diff --git a/config/images/dlink/dch-z210.png b/config/images/dlink/dch-z210.png
new file mode 100644
index 0000000000..9093fdf906
Binary files /dev/null and b/config/images/dlink/dch-z210.png differ
diff --git a/config/images/dome/dmex1.png b/config/images/dome/dmex1.png
new file mode 100644
index 0000000000..f5536b7adb
Binary files /dev/null and b/config/images/dome/dmex1.png differ
diff --git a/config/images/ecodim/0.7.jpg b/config/images/ecodim/0.7.jpg
new file mode 100644
index 0000000000..59893ce162
Binary files /dev/null and b/config/images/ecodim/0.7.jpg differ
diff --git a/config/images/econet/ezw1204.png b/config/images/econet/ezw1204.png
new file mode 100644
index 0000000000..673703e83e
Binary files /dev/null and b/config/images/econet/ezw1204.png differ
diff --git a/config/images/enerwave/zwnrsm2plus.png b/config/images/enerwave/zwnrsm2plus.png
new file mode 100644
index 0000000000..5eaff10952
Binary files /dev/null and b/config/images/enerwave/zwnrsm2plus.png differ
diff --git a/config/images/eurotronic/eur_airquality.png b/config/images/eurotronic/eur_airquality.png
new file mode 100644
index 0000000000..59c6778bbe
Binary files /dev/null and b/config/images/eurotronic/eur_airquality.png differ
diff --git a/config/images/eurotronic/eur_temphumid.png b/config/images/eurotronic/eur_temphumid.png
new file mode 100644
index 0000000000..59c6778bbe
Binary files /dev/null and b/config/images/eurotronic/eur_temphumid.png differ
diff --git a/config/images/evolve/t-100.png b/config/images/evolve/t-100.png
new file mode 100644
index 0000000000..066455a1ef
Binary files /dev/null and b/config/images/evolve/t-100.png differ
diff --git a/config/images/fibaro/fgfs101.png b/config/images/fibaro/fgfs101.png
new file mode 100644
index 0000000000..5649316a31
Binary files /dev/null and b/config/images/fibaro/fgfs101.png differ
diff --git a/config/images/fibaro/fgrgbw442.png b/config/images/fibaro/fgrgbw442.png
new file mode 100644
index 0000000000..8301134890
Binary files /dev/null and b/config/images/fibaro/fgrgbw442.png differ
diff --git a/config/images/fibaro/fgrm222.png b/config/images/fibaro/fgrm222.png
new file mode 100644
index 0000000000..01e5c0821e
Binary files /dev/null and b/config/images/fibaro/fgrm222.png differ
diff --git a/config/images/fibaro/fgs222.png b/config/images/fibaro/fgs222.png
new file mode 100644
index 0000000000..3cfd73d23d
Binary files /dev/null and b/config/images/fibaro/fgs222.png differ
diff --git a/config/images/fibaro/fgs224.png b/config/images/fibaro/fgs224.png
new file mode 100644
index 0000000000..efd39acceb
Binary files /dev/null and b/config/images/fibaro/fgs224.png differ
diff --git a/config/images/fibaro/fgwceu201.png b/config/images/fibaro/fgwceu201.png
new file mode 100644
index 0000000000..4efb5e1b1e
Binary files /dev/null and b/config/images/fibaro/fgwceu201.png differ
diff --git a/config/images/fibaro/fgwds221.png b/config/images/fibaro/fgwds221.png
new file mode 100644
index 0000000000..a75b1e500e
Binary files /dev/null and b/config/images/fibaro/fgwds221.png differ
diff --git a/config/images/fibaro/fgwpb121.png b/config/images/fibaro/fgwpb121.png
new file mode 100644
index 0000000000..3b68a64b2a
Binary files /dev/null and b/config/images/fibaro/fgwpb121.png differ
diff --git a/config/images/firstalert/zcombo-g.png b/config/images/firstalert/zcombo-g.png
new file mode 100644
index 0000000000..7ca9d478b7
Binary files /dev/null and b/config/images/firstalert/zcombo-g.png differ
diff --git a/config/images/firstalert/zsmoke.png b/config/images/firstalert/zsmoke.png
new file mode 100644
index 0000000000..fd13cc7b47
Binary files /dev/null and b/config/images/firstalert/zsmoke.png differ
diff --git a/config/images/fortrezz/fts05p.png b/config/images/fortrezz/fts05p.png
new file mode 100644
index 0000000000..632775c81e
Binary files /dev/null and b/config/images/fortrezz/fts05p.png differ
diff --git a/config/images/ge/14280-plugin-dimmer.png b/config/images/ge/14280-plugin-dimmer.png
new file mode 100644
index 0000000000..f51b7d1aa3
Binary files /dev/null and b/config/images/ge/14280-plugin-dimmer.png differ
diff --git a/config/images/ge/14285.png b/config/images/ge/14285.png
new file mode 100644
index 0000000000..173e81cfe9
Binary files /dev/null and b/config/images/ge/14285.png differ
diff --git a/config/images/ge/14298.png b/config/images/ge/14298.png
new file mode 100755
index 0000000000..0958f7f1b1
Binary files /dev/null and b/config/images/ge/14298.png differ
diff --git a/config/images/ge/14322-dimmer-toggle.png b/config/images/ge/14322-dimmer-toggle.png
new file mode 100644
index 0000000000..9a36a69469
Binary files /dev/null and b/config/images/ge/14322-dimmer-toggle.png differ
diff --git a/config/images/ge/46202-switch.png b/config/images/ge/46202-switch.png
new file mode 100644
index 0000000000..64e6b76238
Binary files /dev/null and b/config/images/ge/46202-switch.png differ
diff --git a/config/images/ge/46204-dimmer-toggle.png b/config/images/ge/46204-dimmer-toggle.png
new file mode 100644
index 0000000000..016c679a59
Binary files /dev/null and b/config/images/ge/46204-dimmer-toggle.png differ
diff --git a/config/images/goodway/td14010.png b/config/images/goodway/td14010.png
new file mode 100644
index 0000000000..dd4e818f53
Binary files /dev/null and b/config/images/goodway/td14010.png differ
diff --git a/config/images/graber/mcz1.png b/config/images/graber/mcz1.png
new file mode 100644
index 0000000000..0846c83e65
Binary files /dev/null and b/config/images/graber/mcz1.png differ
diff --git a/config/images/hab/iblinds.png b/config/images/hab/iblinds.png
new file mode 100644
index 0000000000..0f25e3d666
Binary files /dev/null and b/config/images/hab/iblinds.png differ
diff --git a/config/images/hab/iblindsV3.png b/config/images/hab/iblindsV3.png
new file mode 100644
index 0000000000..67285a7b42
Binary files /dev/null and b/config/images/hab/iblindsV3.png differ
diff --git a/config/images/heltun/he-ft01.png b/config/images/heltun/he-ft01.png
new file mode 100755
index 0000000000..3a38280afb
Binary files /dev/null and b/config/images/heltun/he-ft01.png differ
diff --git a/config/images/heltun/he-ht01.png b/config/images/heltun/he-ht01.png
new file mode 100755
index 0000000000..f437a231ec
Binary files /dev/null and b/config/images/heltun/he-ht01.png differ
diff --git a/config/images/homeseer/hs-fs100plus.png b/config/images/homeseer/hs-fs100plus.png
new file mode 100644
index 0000000000..18d8534707
Binary files /dev/null and b/config/images/homeseer/hs-fs100plus.png differ
diff --git a/config/images/honeywell/2681-plugin-dimmer.png b/config/images/honeywell/2681-plugin-dimmer.png
new file mode 100644
index 0000000000..ac29cab4a4
Binary files /dev/null and b/config/images/honeywell/2681-plugin-dimmer.png differ
diff --git a/config/images/honeywell/3830-zw3107.png b/config/images/honeywell/3830-zw3107.png
new file mode 100644
index 0000000000..ec335b42e2
Binary files /dev/null and b/config/images/honeywell/3830-zw3107.png differ
diff --git a/config/images/honeywell/39348-ZW4005.png b/config/images/honeywell/39348-ZW4005.png
new file mode 100644
index 0000000000..ea966f93c8
Binary files /dev/null and b/config/images/honeywell/39348-ZW4005.png differ
diff --git a/config/images/honeywell/39348-ZW4008.png b/config/images/honeywell/39348-ZW4008.png
new file mode 100644
index 0000000000..17c85e566b
Binary files /dev/null and b/config/images/honeywell/39348-ZW4008.png differ
diff --git a/config/images/honeywell/39349-ZW1002.png b/config/images/honeywell/39349-ZW1002.png
new file mode 100644
index 0000000000..2b69238c7f
Binary files /dev/null and b/config/images/honeywell/39349-ZW1002.png differ
diff --git a/config/images/honeywell/39357-ZW3004.png b/config/images/honeywell/39357-ZW3004.png
new file mode 100644
index 0000000000..1fab0beee9
Binary files /dev/null and b/config/images/honeywell/39357-ZW3004.png differ
diff --git a/config/images/honeywell/39358-ZW4002.png b/config/images/honeywell/39358-ZW4002.png
new file mode 100644
index 0000000000..cad58e0648
Binary files /dev/null and b/config/images/honeywell/39358-ZW4002.png differ
diff --git a/config/images/honeywell/39449-ZW4106.png b/config/images/honeywell/39449-ZW4106.png
new file mode 100644
index 0000000000..ac29cab4a4
Binary files /dev/null and b/config/images/honeywell/39449-ZW4106.png differ
diff --git a/config/images/inovelli/lzw31-sn.png b/config/images/inovelli/lzw31-sn.png
new file mode 100644
index 0000000000..0006b06115
Binary files /dev/null and b/config/images/inovelli/lzw31-sn.png differ
diff --git a/config/images/inovelli/lzw31.png b/config/images/inovelli/lzw31.png
new file mode 100644
index 0000000000..c46eb1d431
Binary files /dev/null and b/config/images/inovelli/lzw31.png differ
diff --git a/config/images/inovelli/lzw36.png b/config/images/inovelli/lzw36.png
new file mode 100644
index 0000000000..b3be5c381a
Binary files /dev/null and b/config/images/inovelli/lzw36.png differ
diff --git a/config/images/inovelli/lzw40.png b/config/images/inovelli/lzw40.png
new file mode 100644
index 0000000000..e559c88fbb
Binary files /dev/null and b/config/images/inovelli/lzw40.png differ
diff --git a/config/images/inovelli/lzw41.png b/config/images/inovelli/lzw41.png
new file mode 100644
index 0000000000..e559c88fbb
Binary files /dev/null and b/config/images/inovelli/lzw41.png differ
diff --git a/config/images/inovelli/lzw42.png b/config/images/inovelli/lzw42.png
new file mode 100644
index 0000000000..e559c88fbb
Binary files /dev/null and b/config/images/inovelli/lzw42.png differ
diff --git a/config/images/inovelli/lzw60.png b/config/images/inovelli/lzw60.png
new file mode 100644
index 0000000000..8649b1a833
Binary files /dev/null and b/config/images/inovelli/lzw60.png differ
diff --git a/config/images/inovelli/nzw30.png b/config/images/inovelli/nzw30.png
new file mode 100644
index 0000000000..c8c9b5c9f8
Binary files /dev/null and b/config/images/inovelli/nzw30.png differ
diff --git a/config/images/kwikset/888.png b/config/images/kwikset/888.png
new file mode 100644
index 0000000000..fa999146fd
Binary files /dev/null and b/config/images/kwikset/888.png differ
diff --git a/config/images/kwikset/914c.png b/config/images/kwikset/914c.png
new file mode 100644
index 0000000000..e1852d7cd2
Binary files /dev/null and b/config/images/kwikset/914c.png differ
diff --git a/config/images/kwikset/916.jpg b/config/images/kwikset/916.jpg
new file mode 100644
index 0000000000..185e958b7b
Binary files /dev/null and b/config/images/kwikset/916.jpg differ
diff --git a/config/images/kwikset/smartcode.png b/config/images/kwikset/smartcode.png
index be0e552290..d12f6edd49 100644
Binary files a/config/images/kwikset/smartcode.png and b/config/images/kwikset/smartcode.png differ
diff --git a/config/images/leviton/dz15s.png b/config/images/leviton/dz15s.png
index c0b0605476..2e283cdfdc 100644
Binary files a/config/images/leviton/dz15s.png and b/config/images/leviton/dz15s.png differ
diff --git a/config/images/leviton/dzpa1.png b/config/images/leviton/dzpa1.png
new file mode 100644
index 0000000000..c0b0605476
Binary files /dev/null and b/config/images/leviton/dzpa1.png differ
diff --git a/config/images/leviton/vrpa1.png b/config/images/leviton/vrpa1.png
new file mode 100644
index 0000000000..c0b0605476
Binary files /dev/null and b/config/images/leviton/vrpa1.png differ
diff --git a/config/images/leviton/vrpd3.png b/config/images/leviton/vrpd3.png
new file mode 100644
index 0000000000..9fe34bf5dc
Binary files /dev/null and b/config/images/leviton/vrpd3.png differ
diff --git a/config/images/leviton/zw15r.png b/config/images/leviton/zw15r.png
new file mode 100644
index 0000000000..19f9dfbd56
Binary files /dev/null and b/config/images/leviton/zw15r.png differ
diff --git a/config/images/leviton/zw4sf.png b/config/images/leviton/zw4sf.png
new file mode 100644
index 0000000000..ed5fd80a0e
Binary files /dev/null and b/config/images/leviton/zw4sf.png differ
diff --git a/config/images/linear/WT00Z5-1.png b/config/images/linear/WT00Z5-1.png
new file mode 100644
index 0000000000..dcfbe115a3
Binary files /dev/null and b/config/images/linear/WT00Z5-1.png differ
diff --git a/config/images/logicsoft/ZDB5100.png b/config/images/logicsoft/ZDB5100.png
new file mode 100644
index 0000000000..8821c8d61a
Binary files /dev/null and b/config/images/logicsoft/ZDB5100.png differ
diff --git a/config/images/mcohome/015f_5102_d411.png b/config/images/mcohome/015f_5102_d411.png
new file mode 100644
index 0000000000..652e3a2919
Binary files /dev/null and b/config/images/mcohome/015f_5102_d411.png differ
diff --git a/config/images/mcohome/mh8fceu0803.png b/config/images/mcohome/mh8fceu0803.png
new file mode 100644
index 0000000000..fd45f3b233
Binary files /dev/null and b/config/images/mcohome/mh8fceu0803.png differ
diff --git a/config/images/mcohome/mhs513.png b/config/images/mcohome/mhs513.png
new file mode 100644
index 0000000000..16ac30354d
Binary files /dev/null and b/config/images/mcohome/mhs513.png differ
diff --git a/config/images/namron/1402756.png b/config/images/namron/1402756.png
new file mode 100644
index 0000000000..482435805a
Binary files /dev/null and b/config/images/namron/1402756.png differ
diff --git a/config/images/namron/4512710.png b/config/images/namron/4512710.png
new file mode 100644
index 0000000000..39e940dbc7
Binary files /dev/null and b/config/images/namron/4512710.png differ
diff --git a/config/images/namron/4512712.jpg b/config/images/namron/4512712.jpg
new file mode 100644
index 0000000000..35389776ca
Binary files /dev/null and b/config/images/namron/4512712.jpg differ
diff --git a/config/images/namron/4512714.jpg b/config/images/namron/4512714.jpg
new file mode 100644
index 0000000000..e98fc20347
Binary files /dev/null and b/config/images/namron/4512714.jpg differ
diff --git a/config/images/namron/4512715.png b/config/images/namron/4512715.png
new file mode 100644
index 0000000000..bd45bf4474
Binary files /dev/null and b/config/images/namron/4512715.png differ
diff --git a/config/images/namron/4512720.jpg b/config/images/namron/4512720.jpg
new file mode 100644
index 0000000000..3722c004cb
Binary files /dev/null and b/config/images/namron/4512720.jpg differ
diff --git a/config/images/namron/4512724.png b/config/images/namron/4512724.png
new file mode 100644
index 0000000000..1e9b33b72c
Binary files /dev/null and b/config/images/namron/4512724.png differ
diff --git a/config/images/nexia/th100nx.png b/config/images/nexia/th100nx.png
new file mode 100644
index 0000000000..cd3e963f1c
Binary files /dev/null and b/config/images/nexia/th100nx.png differ
diff --git a/config/images/oomi/ft112.png b/config/images/oomi/ft112.png
new file mode 100644
index 0000000000..4efcec7531
Binary files /dev/null and b/config/images/oomi/ft112.png differ
diff --git a/config/images/oomi/ft118.png b/config/images/oomi/ft118.png
new file mode 100644
index 0000000000..8094d4f09e
Binary files /dev/null and b/config/images/oomi/ft118.png differ
diff --git a/config/images/popp/701202.png b/config/images/popp/701202.png
new file mode 100644
index 0000000000..1c96a02ce6
Binary files /dev/null and b/config/images/popp/701202.png differ
diff --git a/config/images/q-light/q-light_puck.png b/config/images/q-light/q-light_puck.png
new file mode 100644
index 0000000000..16182761e1
Binary files /dev/null and b/config/images/q-light/q-light_puck.png differ
diff --git a/config/images/q-light/q-light_zerodim.png b/config/images/q-light/q-light_zerodim.png
new file mode 100644
index 0000000000..f6b374c3b6
Binary files /dev/null and b/config/images/q-light/q-light_zerodim.png differ
diff --git a/config/images/q-light/q-light_zerodim_2pol.png b/config/images/q-light/q-light_zerodim_2pol.png
new file mode 100644
index 0000000000..f6b374c3b6
Binary files /dev/null and b/config/images/q-light/q-light_zerodim_2pol.png differ
diff --git a/config/images/qolsys/qz2140-840.png b/config/images/qolsys/qz2140-840.png
new file mode 100755
index 0000000000..457909f233
Binary files /dev/null and b/config/images/qolsys/qz2140-840.png differ
diff --git a/config/images/qubino/ZMNHADx.png b/config/images/qubino/ZMNHADx.png
index af7137e288..dbc0fe43d0 100644
Binary files a/config/images/qubino/ZMNHADx.png and b/config/images/qubino/ZMNHADx.png differ
diff --git a/config/images/qubino/ZMNHCDx.png b/config/images/qubino/ZMNHCDx.png
index df3a1b7040..3e33c931cd 100644
Binary files a/config/images/qubino/ZMNHCDx.png and b/config/images/qubino/ZMNHCDx.png differ
diff --git a/config/images/qubino/ZMNHDDx.png b/config/images/qubino/ZMNHDDx.png
index e7f9564e77..382435ebb7 100644
Binary files a/config/images/qubino/ZMNHDDx.png and b/config/images/qubino/ZMNHDDx.png differ
diff --git a/config/images/qubino/ZMNHHDx.png b/config/images/qubino/ZMNHHDx.png
new file mode 100644
index 0000000000..1998a3039d
Binary files /dev/null and b/config/images/qubino/ZMNHHDx.png differ
diff --git a/config/images/qubino/ZMNHQDx.png b/config/images/qubino/ZMNHQDx.png
new file mode 100644
index 0000000000..aea7c6e60f
Binary files /dev/null and b/config/images/qubino/ZMNHQDx.png differ
diff --git a/config/images/qubino/ZMNHTDx.png b/config/images/qubino/ZMNHTDx.png
index 308a4bb3a3..13ba0cfcd0 100644
Binary files a/config/images/qubino/ZMNHTDx.png and b/config/images/qubino/ZMNHTDx.png differ
diff --git a/config/images/qubino/ZMNHYDx.png b/config/images/qubino/ZMNHYDx.png
index 1e5fb1a70e..54a19d52f6 100644
Binary files a/config/images/qubino/ZMNHYDx.png and b/config/images/qubino/ZMNHYDx.png differ
diff --git a/config/images/qubino/ZMNKADx.png b/config/images/qubino/ZMNKADx.png
new file mode 100644
index 0000000000..aea7c6e60f
Binary files /dev/null and b/config/images/qubino/ZMNKADx.png differ
diff --git a/config/images/qubino/zmnhxdx.png b/config/images/qubino/zmnhxdx.png
index e76f632ec9..6579bd03cc 100644
Binary files a/config/images/qubino/zmnhxdx.png and b/config/images/qubino/zmnhxdx.png differ
diff --git a/config/images/ring/PIR-SS.png b/config/images/ring/PIR-SS.png
new file mode 100644
index 0000000000..8569959a5a
Binary files /dev/null and b/config/images/ring/PIR-SS.png differ
diff --git a/config/images/ring/contact-sensor-v2.png b/config/images/ring/contact-sensor-v2.png
new file mode 100644
index 0000000000..249c88dc62
Binary files /dev/null and b/config/images/ring/contact-sensor-v2.png differ
diff --git a/config/images/ring/motion-detector-v2.png b/config/images/ring/motion-detector-v2.png
new file mode 100644
index 0000000000..2af9fc9300
Binary files /dev/null and b/config/images/ring/motion-detector-v2.png differ
diff --git a/config/images/shenzen_neo/ls03ch.jpg b/config/images/shenzen_neo/ls03ch.jpg
new file mode 100644
index 0000000000..63a7786b0e
Binary files /dev/null and b/config/images/shenzen_neo/ls03ch.jpg differ
diff --git a/config/images/shenzen_neo/nas-cs01z.jpg b/config/images/shenzen_neo/nas-cs01z.jpg
new file mode 100644
index 0000000000..0a2bba05d6
Binary files /dev/null and b/config/images/shenzen_neo/nas-cs01z.jpg differ
diff --git a/config/images/shenzen_neo/nas-pd02z.png b/config/images/shenzen_neo/nas-pd02z.png
new file mode 100644
index 0000000000..2ff6debb75
Binary files /dev/null and b/config/images/shenzen_neo/nas-pd02z.png differ
diff --git a/config/images/shenzen_neo/nas-sc03ze.jpg b/config/images/shenzen_neo/nas-sc03ze.jpg
new file mode 100644
index 0000000000..0a2bba05d6
Binary files /dev/null and b/config/images/shenzen_neo/nas-sc03ze.jpg differ
diff --git a/config/images/shenzen_neo/nas-wr01ze.png b/config/images/shenzen_neo/nas-wr01ze.png
new file mode 100644
index 0000000000..cf405354e4
Binary files /dev/null and b/config/images/shenzen_neo/nas-wr01ze.png differ
diff --git a/config/images/shenzen_saykey/SK-3007-05.png b/config/images/shenzen_saykey/SK-3007-05.png
new file mode 100644
index 0000000000..7a5676e111
Binary files /dev/null and b/config/images/shenzen_saykey/SK-3007-05.png differ
diff --git a/config/images/shenzhen-neo/eu-1.png b/config/images/shenzhen-neo/eu-1.png
new file mode 100644
index 0000000000..0c68174cd2
Binary files /dev/null and b/config/images/shenzhen-neo/eu-1.png differ
diff --git a/config/images/shenzhen-neo/eu-2.png b/config/images/shenzhen-neo/eu-2.png
new file mode 100644
index 0000000000..d7db1c2df5
Binary files /dev/null and b/config/images/shenzhen-neo/eu-2.png differ
diff --git a/config/images/shenzhen-neo/eu-3.png b/config/images/shenzhen-neo/eu-3.png
new file mode 100644
index 0000000000..162883c450
Binary files /dev/null and b/config/images/shenzhen-neo/eu-3.png differ
diff --git a/config/images/simon/10002020-13X.png b/config/images/simon/10002020-13X.png
new file mode 100755
index 0000000000..390505dbf1
Binary files /dev/null and b/config/images/simon/10002020-13X.png differ
diff --git a/config/images/simon/10002080-13X.png b/config/images/simon/10002080-13X.png
new file mode 100755
index 0000000000..fbfec58e39
Binary files /dev/null and b/config/images/simon/10002080-13X.png differ
diff --git a/config/images/sunricher/srzv9001k12dimz4.png b/config/images/sunricher/srzv9001k12dimz4.png
new file mode 100644
index 0000000000..3ab90d22cd
Binary files /dev/null and b/config/images/sunricher/srzv9001k12dimz4.png differ
diff --git a/config/images/sunricher/srzv9001k12dimz5.png b/config/images/sunricher/srzv9001k12dimz5.png
new file mode 100644
index 0000000000..4d59a7a524
Binary files /dev/null and b/config/images/sunricher/srzv9001k12dimz5.png differ
diff --git a/config/images/sunricher/srzv9001k2dim.png b/config/images/sunricher/srzv9001k2dim.png
new file mode 100644
index 0000000000..78b38e8ef2
Binary files /dev/null and b/config/images/sunricher/srzv9001k2dim.png differ
diff --git a/config/images/sunricher/srzv9001k4dim.png b/config/images/sunricher/srzv9001k4dim.png
new file mode 100644
index 0000000000..7513fb56cc
Binary files /dev/null and b/config/images/sunricher/srzv9001k4dim.png differ
diff --git a/config/images/sunricher/srzv9001k4dimg2.png b/config/images/sunricher/srzv9001k4dimg2.png
new file mode 100644
index 0000000000..a22b3245a6
Binary files /dev/null and b/config/images/sunricher/srzv9001k4dimg2.png differ
diff --git a/config/images/sunricher/srzv9001tccteu.png b/config/images/sunricher/srzv9001tccteu.png
new file mode 100644
index 0000000000..65a8c41139
Binary files /dev/null and b/config/images/sunricher/srzv9001tccteu.png differ
diff --git a/config/images/sunricher/srzv9101facct.png b/config/images/sunricher/srzv9101facct.png
new file mode 100644
index 0000000000..64e19406b1
Binary files /dev/null and b/config/images/sunricher/srzv9101facct.png differ
diff --git a/config/images/sunricher/srzv9101sachpswitch.png b/config/images/sunricher/srzv9101sachpswitch.png
new file mode 100644
index 0000000000..52db0cbceb
Binary files /dev/null and b/config/images/sunricher/srzv9101sachpswitch.png differ
diff --git a/config/images/sunricher/zv2835rac.png b/config/images/sunricher/zv2835rac.png
new file mode 100644
index 0000000000..103210b3f2
Binary files /dev/null and b/config/images/sunricher/zv2835rac.png differ
diff --git a/config/images/sunricher/zv9100a.png b/config/images/sunricher/zv9100a.png
new file mode 100644
index 0000000000..c44dd11cc6
Binary files /dev/null and b/config/images/sunricher/zv9100a.png differ
diff --git a/config/images/technisat/03009496.png b/config/images/technisat/03009496.png
new file mode 100644
index 0000000000..e30dcd4d30
Binary files /dev/null and b/config/images/technisat/03009496.png differ
diff --git a/config/images/technisat/03009497.png b/config/images/technisat/03009497.png
new file mode 100644
index 0000000000..190da74e22
Binary files /dev/null and b/config/images/technisat/03009497.png differ
diff --git a/config/images/technisat/03009499.png b/config/images/technisat/03009499.png
new file mode 100644
index 0000000000..03375717d9
Binary files /dev/null and b/config/images/technisat/03009499.png differ
diff --git a/config/images/thermofloor/Heatit-Z-Push-button-8-white.png b/config/images/thermofloor/Heatit-Z-Push-button-8-white.png
new file mode 100644
index 0000000000..dd9c36d8b3
Binary files /dev/null and b/config/images/thermofloor/Heatit-Z-Push-button-8-white.png differ
diff --git a/config/images/thermofloor/heatit0204.png b/config/images/thermofloor/heatit0204.png
new file mode 100644
index 0000000000..47e5c522cd
Binary files /dev/null and b/config/images/thermofloor/heatit0204.png differ
diff --git a/config/images/thermofloor/heatit058.png b/config/images/thermofloor/heatit058.png
new file mode 100644
index 0000000000..20204eade3
Binary files /dev/null and b/config/images/thermofloor/heatit058.png differ
diff --git a/config/images/thermofloor/heatit20a.png b/config/images/thermofloor/heatit20a.png
new file mode 100644
index 0000000000..34d1dac777
Binary files /dev/null and b/config/images/thermofloor/heatit20a.png differ
diff --git a/config/images/thermofloor/heatit_zdim.png b/config/images/thermofloor/heatit_zdim.png
new file mode 100644
index 0000000000..d89effe7de
Binary files /dev/null and b/config/images/thermofloor/heatit_zdim.png differ
diff --git a/config/images/thermofloor/heatitzm.png b/config/images/thermofloor/heatitzm.png
new file mode 100755
index 0000000000..40efc5da7d
Binary files /dev/null and b/config/images/thermofloor/heatitzm.png differ
diff --git a/config/images/vision/zm1701.png b/config/images/vision/zm1701.png
new file mode 100644
index 0000000000..081de74325
Binary files /dev/null and b/config/images/vision/zm1701.png differ
diff --git a/config/images/wenzhou/tz77.png b/config/images/wenzhou/tz77.png
new file mode 100755
index 0000000000..146a236191
Binary files /dev/null and b/config/images/wenzhou/tz77.png differ
diff --git a/config/images/wenzhou/tz78.png b/config/images/wenzhou/tz78.png
new file mode 100644
index 0000000000..80db6d16d8
Binary files /dev/null and b/config/images/wenzhou/tz78.png differ
diff --git a/config/images/wenzhou/tze96.png b/config/images/wenzhou/tze96.png
new file mode 100644
index 0000000000..dc7449a927
Binary files /dev/null and b/config/images/wenzhou/tze96.png differ
diff --git a/config/images/widom/DRY.png b/config/images/widom/DRY.png
new file mode 100644
index 0000000000..5696cbdd58
Binary files /dev/null and b/config/images/widom/DRY.png differ
diff --git a/config/images/widom/UMS2.png b/config/images/widom/UMS2.png
new file mode 100644
index 0000000000..b2700bc8e8
Binary files /dev/null and b/config/images/widom/UMS2.png differ
diff --git a/config/images/widom/WDS2.png b/config/images/widom/WDS2.png
new file mode 100644
index 0000000000..5d18a39646
Binary files /dev/null and b/config/images/widom/WDS2.png differ
diff --git a/config/images/widom/WSP.png b/config/images/widom/WSP.png
new file mode 100644
index 0000000000..08a226230c
Binary files /dev/null and b/config/images/widom/WSP.png differ
diff --git a/config/images/widom/WTED.png b/config/images/widom/WTED.png
new file mode 100644
index 0000000000..a19a7c13cc
Binary files /dev/null and b/config/images/widom/WTED.png differ
diff --git a/config/images/wink/wnk-mot1.png b/config/images/wink/wnk-mot1.png
new file mode 100644
index 0000000000..54e4f54761
Binary files /dev/null and b/config/images/wink/wnk-mot1.png differ
diff --git a/config/images/wink/wnk-sir1p.png b/config/images/wink/wnk-sir1p.png
new file mode 100644
index 0000000000..2736796a31
Binary files /dev/null and b/config/images/wink/wnk-sir1p.png differ
diff --git a/config/images/zen17.png b/config/images/zen17.png
new file mode 100644
index 0000000000..fffe10b5d8
Binary files /dev/null and b/config/images/zen17.png differ
diff --git a/config/images/zipato/ne-nas-ab01z.png b/config/images/zipato/ne-nas-ab01z.png
new file mode 100644
index 0000000000..9a0c36deaf
Binary files /dev/null and b/config/images/zipato/ne-nas-ab01z.png differ
diff --git a/config/images/zooz/zen16.png b/config/images/zooz/zen16.png
new file mode 100644
index 0000000000..90dded3336
Binary files /dev/null and b/config/images/zooz/zen16.png differ
diff --git a/config/images/zooz/zen17.png b/config/images/zooz/zen17.png
new file mode 100644
index 0000000000..90dded3336
Binary files /dev/null and b/config/images/zooz/zen17.png differ
diff --git a/config/images/zooz/zen21v3.png b/config/images/zooz/zen21v3.png
new file mode 100644
index 0000000000..227316f185
Binary files /dev/null and b/config/images/zooz/zen21v3.png differ
diff --git a/config/images/zooz/zen23v3.png b/config/images/zooz/zen23v3.png
new file mode 100644
index 0000000000..db4187cb22
Binary files /dev/null and b/config/images/zooz/zen23v3.png differ
diff --git a/config/images/zooz/zen24v2.png b/config/images/zooz/zen24v2.png
new file mode 100644
index 0000000000..6f3d69ab3c
Binary files /dev/null and b/config/images/zooz/zen24v2.png differ
diff --git a/config/images/zooz/zen30.png b/config/images/zooz/zen30.png
new file mode 100644
index 0000000000..e29fcd05e4
Binary files /dev/null and b/config/images/zooz/zen30.png differ
diff --git a/config/images/zooz/zen31.png b/config/images/zooz/zen31.png
new file mode 100644
index 0000000000..ab0b391043
Binary files /dev/null and b/config/images/zooz/zen31.png differ
diff --git a/config/images/zooz/zen32.png b/config/images/zooz/zen32.png
new file mode 100644
index 0000000000..729b88f59c
Binary files /dev/null and b/config/images/zooz/zen32.png differ
diff --git a/config/images/zooz/zen34.png b/config/images/zooz/zen34.png
new file mode 100644
index 0000000000..f863ddb2f7
Binary files /dev/null and b/config/images/zooz/zen34.png differ
diff --git a/config/images/zooz/zen71.png b/config/images/zooz/zen71.png
new file mode 100644
index 0000000000..2d2ff408ae
Binary files /dev/null and b/config/images/zooz/zen71.png differ
diff --git a/config/images/zooz/zen72.png b/config/images/zooz/zen72.png
new file mode 100755
index 0000000000..f04aa6051c
Binary files /dev/null and b/config/images/zooz/zen72.png differ
diff --git a/config/images/zooz/zen76.png b/config/images/zooz/zen76.png
new file mode 100644
index 0000000000..2d2ff408ae
Binary files /dev/null and b/config/images/zooz/zen76.png differ
diff --git a/config/images/zooz/zen77.png b/config/images/zooz/zen77.png
new file mode 100644
index 0000000000..8fa3ec51cf
Binary files /dev/null and b/config/images/zooz/zen77.png differ
diff --git a/config/images/zwave.me/razberry.png b/config/images/zwave.me/razberry.png
new file mode 100644
index 0000000000..9ff878b6d8
Binary files /dev/null and b/config/images/zwave.me/razberry.png differ
diff --git a/config/images/zwave.me/zme_wallc_s.png b/config/images/zwave.me/zme_wallc_s.png
new file mode 100644
index 0000000000..91eedc2ae9
Binary files /dev/null and b/config/images/zwave.me/zme_wallc_s.png differ
diff --git a/config/images/zwp/PA-100.png b/config/images/zwp/PA-100.png
new file mode 100644
index 0000000000..450dd59697
Binary files /dev/null and b/config/images/zwp/PA-100.png differ
diff --git a/config/inovelli/lzw30-sn.xml b/config/inovelli/lzw30-sn.xml
index 45ced8039f..0102acb6d0 100644
--- a/config/inovelli/lzw30-sn.xml
+++ b/config/inovelli/lzw30-sn.xml
@@ -1,4 +1,4 @@
-<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="10" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:0001:0002</MetaDataItem>
     <MetaDataItem name="ProductPic">images/inovelli/lzw30-sn.png</MetaDataItem>
@@ -22,6 +22,10 @@ Only use either of these procedures in the event that the network primary contro
 Please Note: If this doesn't work, you can check to see if your switch is within Z-Wave Range by holding down the Configuration Button for 5-10 seconds (if it's not within range, the LED Bar will indicate Red and if it is within Range, the LED Bar will indicate Green). If your switch indicates Red, please move the switch closer to the HUB. If your switch indicates Green, please try running an Exclusion to reset your switch.</MetaDataItem>
     <ChangeLog>
       <Entry author="Eric Maycock - ericm@inovelli.com" date="10 Sep 2019" revision="6">Adding Metadata</Entry>
+      <Entry author="Justin Hammond" date="13 Mar 2020" revision="7">Remove Static Central Scene Entries - Issue #2155</Entry>
+      <Entry author="Brett Daugherty and SirDeadlyStrike" date="23 Jul 2020" revision="8">Add Instant On/Off Parameter</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="24 Jul 2020" revision="9">Clarifying which scenes are disabled with parameter 51</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="30 Oct 2020" revision="10">Adding parameter 13 to manually specify the load if auto detection doesn't work</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Configuration Parameters -->
@@ -108,6 +112,20 @@ Please Note: If this doesn't work, you can check to see if your switch is within
       Default: 10
       </Help>
     </Value>
+    <Value genre="config" type="list" size="1" index="13" label="Load Type" min="0" max="1" value="0">
+       <Help>
+       The default of the switch is to auto detect the load. In some situations you may want to try the option for a special load type. (firmware 1.17+)
+       </Help>
+       <Item value="0" label="Default"/>
+       <Item value="1" label="Special Load"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="51" label="Instant On" min="0" max="1" value="1">
+       <Help>
+       Enables instant on (ie: disables the 700ms button delay). Note, if you disable the delay, it will also disable scene control except for the following: Up pressed, held, released, Down pressed, held, released &amp; config button pressed.
+       </Help>
+       <Item value="0" label="Enabled (no delay)"/>
+       <Item value="1" label="Disabled (700ms delay)"/>
+    </Value>
   </CommandClass>
 
   <!-- Association Groups -->
@@ -117,13 +135,5 @@ Please Note: If this doesn't work, you can check to see if your switch is within
       <Group index="2" label="Basic_Set" max_associations="5" />
     </Associations>
   </CommandClass>
-  <!-- Central Scene Reports -->
-  <CommandClass id="91">
-    <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="2" 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="1" label="Bottom 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="3" label="Config 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/lzw30.xml b/config/inovelli/lzw30.xml
index 357e6641dc..79870df39b 100644
--- a/config/inovelli/lzw30.xml
+++ b/config/inovelli/lzw30.xml
@@ -1,4 +1,4 @@
-<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:0001:0004</MetaDataItem>
     <MetaDataItem name="ProductPic">images/inovelli/lzw30.png</MetaDataItem>
@@ -23,6 +23,9 @@ Please Note: If this doesn't work, you can check to see if your switch is within
     </MetaDataItem>
     <ChangeLog>
       <Entry author="Eric Maycock - ericm@inovelli.com" date="10 Sep 2019" revision="5">Adding Metadata</Entry>
+      <Entry author="Brett Daugherty and SirDeadlyStrike" date="23 Jul 2020" revision="6">Add Instant On/Off Parameter</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="24 Jul 2020" revision="7">Clarifying which scenes are disabled with parameter 51</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="30 Oct 2020" revision="8">Adding parameter 13 to manually specify the load if auto detection doesn't work</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Configuration Parameters -->
@@ -81,6 +84,21 @@ Please Note: If this doesn't work, you can check to see if your switch is within
       Default: 0
       </Help>
     </Value>
+    <Value genre="config" type="list" size="1" index="13" label="Load Type" min="0" max="1" value="0">
+       <Help>
+       The default of the switch is to auto detect the load. In some situations you may want to try the option for a special load type. (firmware 1.17+)
+       </Help>
+       <Item value="0" label="Default"/>
+       <Item value="1" label="Special Load"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="51" label="Instant On" min="0" max="1" value="1">
+       <Help>
+       Enables instant on (ie: disables the 700ms button delay). Note, if you disable the delay, it will also disable scene control except for the following: Up pres
+sed, held, released, Down pressed, held, released &amp; config button pressed.
+       </Help>
+       <Item value="0" label="Enabled (no delay)"/>
+       <Item value="1" label="Disabled (700ms delay)"/>
+    </Value>
   </CommandClass>
 
   <!-- Association Groups -->
diff --git a/config/inovelli/lzw31-sn.xml b/config/inovelli/lzw31-sn.xml
new file mode 100644
index 0000000000..959d7f0c5b
--- /dev/null
+++ b/config/inovelli/lzw31-sn.xml
@@ -0,0 +1,255 @@
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:0001:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/inovelli/lzw31-sn.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/3438</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://inovelli.com/shop/smart-light-switches/zwave-smart-switches-gen2/pre-order-z-wave-dimmer-switch-no-neutral-required-scenes-notification/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://inovelli.com/shop/smart-light-switches/zwave-smart-switches-gen2/pre-order-z-wave-dimmer-switch-no-neutral-required-scenes-notification/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To Exclude your switch, put your HUB in exclusion mode and press the Configuration Button three (3) times.</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3438/LZW31-SN%20Manual.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">You may factory reset the switch by holding down the Config Button for twenty (20) or more seconds. The LED Bar will turn Red and blink three (3) times to confirm.
+
+However, we recommend using a certified Z-Wave controller to remove the device from your network for factory resetting the switch.
+
+Only use either of these procedures in the event that the network primary controller is missing or otherwise inoperable.
+</MetaDataItem>
+    <MetaDataItem name="Description">The Inovelli Red Series Dimmer is a Z-Wave in-wall dimmer that controls attached LED, CFL, &amp; Incandescent lighting which can be highly customized to your liking at the switch itself with our unique config button and advanced firmware. The switch can also be used either with or without a neutral wire. In addition, the Red Series comes with advanced features such as scene support, power monitoring, notifications, local protection, etc.</MetaDataItem>
+    <MetaDataItem name="Name">LZW31-SN Dimmer</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">LZW31-SN</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To include your switch, start the inclusion process on your HUB and tap the Configuration Button three (3) times.
+
+Please Note: If this doesn't work, you can check to see if your switch is within Z-Wave Range by holding down the Configuration Button for 5-10 seconds (if it's not within range, the LED Bar will indicate Red and if it is within Range, the LED Bar will indicate Green). If your switch indicates Red, please move the switch closer to the HUB. If your switch indicates Green, please try running an Exclusion to reset your switch.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="7 Nov 2019" revision="1">Initial Release</Entry>
+      <Entry author="Brett Daugherty and SirDeadlyStrike" date="23 Jul 2020" revision="2">Update config for Firmware 1.47+</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="24 Jul 2020" revision="3">Clarifying which scenes are disabled with parameter 51</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="31 Jul 2020" revision="4">Fix maximum value for parameter 16</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="30 Oct 2020" revision="5">Fixing value range for parameter 9 and 10</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" type="byte" size="1" index="1" label="Dimming Speed" min="0" max="100" value="3">
+      <Help>
+      This changes the speed in which the attached light dims up or down. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed.
+      Range:0-100
+      Default: 3
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="2" label="Dimming Speed (From Switch)" min="0" max="101" value="101">
+      <Help>
+      This changes the speed in which the attached light dims up or down when controlled from the physical switch. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 101 should keep this in sync with parameter 1.
+      Range:0-101
+      Default: 101
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="3" label="Ramp Rate" min="0" max="101" value="101">
+      <Help>
+      This changes the speed in which the attached light turns on or off. For example, when a user sends the switch a basicSet(value: 0xFF) or basicSet(value: 0x00), this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 101 should keep this in sync with parameter 1.
+      Range:0-101
+      Default: 101
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="4" label="Ramp Rate (From Switch)" min="0" max="101" value="101">
+      <Help>
+      This changes the speed in which the attached light turns on or off from the physical switch. For example, when a user presses the up or down button, this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 101 should keep this in sync with parameter 1.
+      Range:0-101
+      Default: 101
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="5" label="Minimum Level" min="1" max="45" value="1">
+      <Help>
+      The minimum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that does not turn on or flickers at a lower level.
+      Range:1-45
+      Default: 1
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="6" label="Maximum Level" min="55" max="99" value="99">
+      <Help>
+      The maximum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that reaches its maximum level before the dimmer value of 99.
+      Range:55-99
+      Default: 99
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="7" label="Invert Switch" min="0" max="1" value="0">
+      <Help>
+      Inverts the orientation of the switch. Useful when the switch is installed upside down. Essentially up becomes down and down becomes up.
+      Range: 0-1
+      Default: 0
+    </Help>
+    <Item value="1" label="Yes"/>
+    <Item value="0" label="No"/>
+    </Value>
+    <Value genre="config" type="short" size="2" index="8" label="Auto Off Timer" min="0" max="32767" value="0">
+      <Help>
+      Automatically turns the switch off after this many seconds. When the switch is turned on a timer is started that is the duration of this setting. When the timer expires, the switch is turned off.
+      Range:0-32767
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="9" label="Default Level (Local)" min="0" max="99" value="0">
+      <Help>
+      Default level for the dimmer when it is powered on from the local switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off.
+      Range:0-99
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="10" label="Default Level (Z-Wave)" min="0" max="99" value="0">
+      <Help>
+      Default level for the dimmer when it is powered on from a Z-Wave command. A setting of 0 means that the switch will return to the level that it was on before it was turned off.
+      Range:0-99
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="11" label="State After Power Restored" min="0" max="100" value="0">
+      <Help>
+      The state the switch should return to once power is restored after power failure. 0 = off, 1-99 = level, 100=previous.
+      Range:0-100
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="12" label="Association Behavior" min="0" max="15" value="15">
+      <Help>
+      When should the switch send commands to associated devices?  01 - local 02 - 3way 03 - 3way &amp; local 04 - z-wave hub 05 - z-wave hub &amp; local 06 - z-wave hub &amp; 3-way 07 - z-wave hub &amp; local &amp; 3way 08 - timer 09 - timer &amp; local 10 - timer &amp; 3-way 11 - timer &amp; 3-way &amp; local 12 - timer &amp; z-wave hub 13 - timer &amp; z-wave hub &amp; local 14 - timer &amp; z-wave hub &amp; 3-way 15 - all
+      Range: 0-15
+      Default: 15
+      </Help>
+    </Value>
+    <Value genre="config" type="short" size="2" index="13" label="LED Indicator Color" min="0" max="255" value="170">
+      <Help>
+      This is the color of the LED strip.
+      Range: 0 to 255
+      Default: 170
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="14" label="LED Strip Intensity" min="0" max="10" value="5">
+      <Help>
+      This is the intensity of the LED strip.
+      Range: 0-10
+      Default: 5
+    </Help>
+    <Item value="0" label="0%"/>
+    <Item value="1" label="10%"/>
+    <Item value="2" label="20%"/>
+    <Item value="3" label="30%"/>
+    <Item value="4" label="40%"/>
+    <Item value="5" label="50%"/>
+    <Item value="6" label="60%"/>
+    <Item value="7" label="70%"/>
+    <Item value="8" label="80%"/>
+    <Item value="9" label="90%"/>
+    <Item value="10" label="100%"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="15" label="LED Strip Intensity (When OFF)" min="0" max="10" value="1">
+      <Help>
+      This is the intensity of the LED strip when the switch is off. This is useful for users to see the light switch location when the lights are off.
+      Range: 0-10
+      Default: 1
+    </Help>
+    <Item value="0" label="0%"/>
+    <Item value="1" label="10%"/>
+    <Item value="2" label="20%"/>
+    <Item value="3" label="30%"/>
+    <Item value="4" label="40%"/>
+    <Item value="5" label="50%"/>
+    <Item value="6" label="60%"/>
+    <Item value="7" label="70%"/>
+    <Item value="8" label="80%"/>
+    <Item value="9" label="90%"/>
+    <Item value="10" label="100%"/>
+    </Value>
+	<Value genre="config" type="int" size="4" index="16" label="LED Strip Effect" min="0" max="100600575" value="0">
+      <Help>
+      Please see website for documentation.
+      Range: 0-100600575
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="17" label="LED Strip Timeout" min="0" max="10" value="3">
+      <Help>
+      When the LED strip is disabled (LED Strip Intensity is set to 0), this setting allows the LED strip to turn on temporarily while being adjusted.
+      Range: 0-10
+      Default: 3
+    </Help>
+    <Item value="0" label="Stay Off"/>
+    <Item value="1" label="1 Second"/>
+    <Item value="2" label="2 Seconds"/>
+    <Item value="3" label="3 Seconds"/>
+    <Item value="4" label="4 Seconds"/>
+    <Item value="5" label="5 Seconds"/>
+    <Item value="6" label="6 Seconds"/>
+    <Item value="7" label="7 Seconds"/>
+    <Item value="8" label="8 Seconds"/>
+    <Item value="9" label="9 Seconds"/>
+    <Item value="10" label="10 Seconds"/>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="18" label="Active Power Reports" min="0" max="100" value="10">
+      <Help>
+      The power level change that will result in a new power report being sent. The value is a percentage of the previous report. 0 = disabled.
+      Range:0-100
+      Default: 10
+      </Help>
+    </Value>
+    <Value genre="config" type="short" size="2" index="19" label="Periodic Power &amp; Energy Reports" min="0" max="32767" value="3600">
+      <Help>
+      Time period between consecutive power &amp; energy reports being sent (in seconds). The timer is reset after each report is sent.
+      Range:0-32767
+      Default: 3600
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="20" label="Energy Reports" min="0" max="100" value="10">
+      <Help>
+      The energy level change that will result in a new energy report being sent. The value is a percentage of the previous report.
+      Range:0-100
+      Default: 10
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="21" label="AC Power Type" min="0" max="1" value="1">
+      <Help>
+      Configure the switch to use a neutral wire.
+      Range: 0-1
+      Default: 1
+    </Help>
+    <Item value="0" label="Non Neutral"/>
+    <Item value="1" label="Neutral"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="22" label="Switch Type" min="0" max="2" value="0">
+      <Help>
+      Configure the type of 3-way switch connected to the dimmer.
+      Range: 0-2
+      Default: 0
+    </Help>
+    <Item value="0" label="Load Only"/>
+    <Item value="1" label="3-way Toggle"/>
+    <Item value="2" label="3-way Momentary"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="51" label="Instant On" min="0" max="1" value="1">
+       <Help>
+       Enables instant on (ie: disables the 700ms button delay). Note, if you disable the delay, it will also disable scene control except for the following: Up pres
+sed, held, released, Down pressed, held, released &amp; config button pressed.
+
+       </Help>
+       <Item value="0" label="Enabled (no delay)"/>
+       <Item value="1" label="Disabled (700ms delay)"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="52" label="Smart Bulb Mode" min="0" max="1" value="0">
+      <Help>
+      Optimize power output to be more compatible with smart bulbs. This prevents the dimmer from being able to dim and makes it act like an ON / OFF switch. (firmware 1.47+)
+    </Help>
+    <Item value="0" label="Smart Bulb Mode Disabled (Default)"/>
+    <Item value="1" label="Smart Bulb Mode Enabled"/>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <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="4" label="Switch_MultiLevel_Start/Stop" max_associations="5" />
+    </Associations>
+  </CommandClass>
+  <!-- Central Scene Reports -->
+</Product>
diff --git a/config/inovelli/lzw31.xml b/config/inovelli/lzw31.xml
new file mode 100644
index 0000000000..9051a1e29c
--- /dev/null
+++ b/config/inovelli/lzw31.xml
@@ -0,0 +1,225 @@
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:0001:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/inovelli/lzw31.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3442</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://inovelli.com/shop/smart-light-switches/zwave-smart-switches-gen2/pre-order-z-wave-dimmer-switch-no-neutral-required/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://inovelli.com/shop/smart-light-switches/zwave-smart-switches-gen2/pre-order-z-wave-dimmer-switch-no-neutral-required/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To Exclude your switch, put your HUB in exclusion mode and press the Configuration Button three (3) times.</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3442/LZW31%20Manual.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">You may factory reset the switch by holding down the Config Button for twenty (20) or more seconds. The LED Bar will turn Red and blink three (3) times to confirm.
+
+However, we recommend using a certified Z-Wave controller to remove the device from your network for factory resetting the switch.
+
+Only use either of these procedures in the event that the network primary controller is missing or otherwise inoperable.
+</MetaDataItem>
+    <MetaDataItem name="Description">The Inovelli Dimmer has some amazing features such as a configuration button that allows you to change parameters without the need for a HUB. It also has an RGB LED bar that shows the dim level of the switch, the color and intensity can be changed and also has the ability to be off until the switch is manually dimmed. </MetaDataItem>
+    <MetaDataItem name="Name">LZW31 Dimmer</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0003">LZW31</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To include your switch, start the inclusion process on your HUB and tap the Configuration Button three (3) times.
+
+Please Note: If this doesn't work, you can check to see if your switch is within Z-Wave Range by holding down the Configuration Button for 5-10 seconds (if it's not within range, the LED Bar will indicate Red and if it is within Range, the LED Bar will indicate Green). If your switch indicates Red, please move the switch closer to the HUB. If your switch indicates Green, please try running an Exclusion to reset your switch.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="7 Nov 2019" revision="1">Initial Release</Entry>
+      <Entry author="Brett Daugherty and SirDeadlyStrike" date="23 Jul 2020" revision="2">Update config for Firmware 1.47+</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="24 Jul 2020" revision="3">Clarifying which scenes are disabled with parameter 51</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="30 Oct 2020" revision="4">Fixing value range for parameter 9 and 10</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" type="byte" size="1" index="1" label="Dimming Speed" min="0" max="100" value="3">
+      <Help>
+      This changes the speed in which the attached light dims up or down. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed.
+      Range:0-100
+      Default: 3
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="2" label="Dimming Speed (From Switch)" min="0" max="101" value="101">
+      <Help>
+      This changes the speed in which the attached light dims up or down when controlled from the physical switch. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 101 should keep this in sync with parameter 1.
+      Range:0-101
+      Default: 101
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="3" label="Ramp Rate" min="0" max="101" value="101">
+      <Help>
+      This changes the speed in which the attached light turns on or off. For example, when a user sends the switch a basicSet(value: 0xFF) or basicSet(value: 0x00), this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 101 should keep this in sync with parameter 1.
+      Range:0-101
+      Default: 101
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="4" label="Ramp Rate (From Switch)" min="0" max="101" value="101">
+      <Help>
+      This changes the speed in which the attached light turns on or off from the physical switch. For example, when a user presses the up or down button, this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 101 should keep this in sync with parameter 1.
+      Range:0-101
+      Default: 101
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="5" label="Minimum Level" min="1" max="45" value="1">
+      <Help>
+      The minimum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that does not turn on or flickers at a lower level.
+      Range:1-45
+      Default: 1
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="6" label="Maximum Level" min="55" max="99" value="99">
+      <Help>
+      The maximum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that reaches its maximum level before the dimmer value of 99.
+      Range:55-99
+      Default: 99
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="7" label="Invert Switch" min="0" max="1" value="0">
+      <Help>
+      Inverts the orientation of the switch. Useful when the switch is installed upside down. Essentially up becomes down and down becomes up.
+      Range: 0-1
+      Default: 0
+    </Help>
+    <Item value="1" label="Yes"/>
+    <Item value="0" label="No"/>
+    </Value>
+    <Value genre="config" type="short" size="2" index="8" label="Auto Off Timer" min="0" max="32767" value="0">
+      <Help>
+      Automatically turns the switch off after this many seconds. When the switch is turned on a timer is started that is the duration of this setting. When the timer expires, the switch is turned off.
+      Range:0-32767
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="9" label="Default Level (Local)" min="0" max="99" value="0">
+      <Help>
+      Default level for the dimmer when it is powered on from the local switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off.
+      Range:0-99
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="10" label="Default Level (Z-Wave)" min="0" max="99" value="0">
+      <Help>
+      Default level for the dimmer when it is powered on from a Z-Wave command. A setting of 0 means that the switch will return to the level that it was on before it was turned off.
+      Range:0-99
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="11" label="State After Power Restored" min="0" max="100" value="0">
+      <Help>
+      The state the switch should return to once power is restored after power failure. 0 = off, 1-99 = level, 100=previous.
+      Range:0-100
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="12" label="Association Behavior" min="0" max="15" value="15">
+      <Help>
+      When should the switch send commands to associated devices?  01 - local 02 - 3way 03 - 3way &amp; local 04 - z-wave hub 05 - z-wave hub &amp; local 06 - z-wave hub &amp; 3-way 07 - z-wave hub &amp; local &amp; 3way 08 - timer 09 - timer &amp; local 10 - timer &amp; 3-way 11 - timer &amp; 3-way &amp; local 12 - timer &amp; z-wave hub 13 - timer &amp; z-wave hub &amp; local 14 - timer &amp; z-wave hub &amp; 3-way 15 - all
+      Range: 0-15
+      Default: 15
+      </Help>
+    </Value>
+    <Value genre="config" type="short" size="2" index="13" label="LED Indicator Color" min="0" max="255" value="170">
+      <Help>
+      This is the color of the LED strip.
+      Range: 0 to 255
+      Default: 170
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="14" label="LED Strip Intensity" min="0" max="10" value="5">
+      <Help>
+      This is the intensity of the LED strip.
+      Range: 0-10
+      Default: 5
+    </Help>
+    <Item value="0" label="0%"/>
+    <Item value="1" label="10%"/>
+    <Item value="2" label="20%"/>
+    <Item value="3" label="30%"/>
+    <Item value="4" label="40%"/>
+    <Item value="5" label="50%"/>
+    <Item value="6" label="60%"/>
+    <Item value="7" label="70%"/>
+    <Item value="8" label="80%"/>
+    <Item value="9" label="90%"/>
+    <Item value="10" label="100%"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="15" label="LED Strip Intensity (When OFF)" min="0" max="10" value="1">
+      <Help>
+      This is the intensity of the LED strip when the switch is off. This is useful for users to see the light switch location when the lights are off.
+      Range: 0-10
+      Default: 1
+    </Help>
+    <Item value="0" label="0%"/>
+    <Item value="1" label="10%"/>
+    <Item value="2" label="20%"/>
+    <Item value="3" label="30%"/>
+    <Item value="4" label="40%"/>
+    <Item value="5" label="50%"/>
+    <Item value="6" label="60%"/>
+    <Item value="7" label="70%"/>
+    <Item value="8" label="80%"/>
+    <Item value="9" label="90%"/>
+    <Item value="10" label="100%"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="17" label="LED Strip Timeout" min="0" max="10" value="3">
+      <Help>
+      When the LED strip is disabled (LED Strip Intensity is set to 0), this setting allows the LED strip to turn on temporarily while being adjusted.
+      Range: 0-10
+      Default: 3
+    </Help>
+    <Item value="0" label="Stay Off"/>
+    <Item value="1" label="1 Second"/>
+    <Item value="2" label="2 Seconds"/>
+    <Item value="3" label="3 Seconds"/>
+    <Item value="4" label="4 Seconds"/>
+    <Item value="5" label="5 Seconds"/>
+    <Item value="6" label="6 Seconds"/>
+    <Item value="7" label="7 Seconds"/>
+    <Item value="8" label="8 Seconds"/>
+    <Item value="9" label="9 Seconds"/>
+    <Item value="10" label="10 Seconds"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="21" label="AC Power Type" min="0" max="1" value="1">
+      <Help>
+      Configure the switch to use a neutral wire.
+      Range: 0-1
+      Default: 1
+    </Help>
+    <Item value="0" label="Non Neutral"/>
+    <Item value="1" label="Neutral"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="22" label="Switch Type" min="0" max="2" value="0">
+      <Help>
+      Configure the type of 3-way switch connected to the dimmer.
+      Range: 0-2
+      Default: 0
+    </Help>
+    <Item value="0" label="Load Only"/>
+    <Item value="1" label="3-way Toggle"/>
+    <Item value="2" label="3-way Momentary"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="51" label="Instant On" min="0" max="1" value="1">
+       <Help>
+       Enables instant on (ie: disables the 700ms button delay). Note, if you disable the delay, it will also disable scene control except for the following: Up pres
+sed, held, released, Down pressed, held, released &amp; config button pressed.
+       </Help>
+       <Item value="0" label="Enabled (no delay)"/>
+       <Item value="1" label="Disabled (700ms delay)"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="52" label="Smart Bulb Mode" min="0" max="1" value="0">
+      <Help>
+      Optimize power output to be more compatible with smart bulbs. This prevents the dimmer from being able to dim and makes it act like an ON / OFF switch. (firmware 1.47+)
+    </Help>
+    <Item value="0" label="Smart Bulb Mode Disabled (Default)"/>
+    <Item value="1" label="Smart Bulb Mode Enabled"/>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <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="4" label="Switch_MultiLevel_Start/Stop" max_associations="5" />
+    </Associations>
+  </CommandClass>
+  
+</Product>
diff --git a/config/inovelli/lzw36.xml b/config/inovelli/lzw36.xml
new file mode 100644
index 0000000000..148321b4bc
--- /dev/null
+++ b/config/inovelli/lzw36.xml
@@ -0,0 +1,334 @@
+<Product Revision="9" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:0001:000e</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/inovelli/lzw36.png</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://inovelli.com/red-series-fan-light-switch-z-wave/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://support.inovelli.com/portal/en/kb/inovelli/products/switches-fan-light-red-series-lzw36</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/3902</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To Exclude your switch, put your HUB in exclusion mode, hold the light up or down button and press the Light on/off button three (3) times.</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="000e">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://support.inovelli.com/portal/api/kbArticles/407409000002102001/attachments/kw8eq50c812f5d3344bc08295860b8b394c7c/content?portalId=edbsn8bb12d5f5a97d693e61ce4ce8a23f8b0e323eac44a6c2794f893e912acf005df&amp;inline=true</MetaDataItem>
+    <MetaDataItem name="ResetDescription">You may factory reset the switch by holding down the light up or down button and the light on/off button for twenty (20) or more seconds. The LED Bar will turn Red and blink three (3) times to confirm.
+    </MetaDataItem>
+    <MetaDataItem name="Description">The Inovelli Red Series Fan/Light Switch is a 700 Series Z-Wave in-wall fan + light switch that controls both your fan motor and its attached LED, CFL, &amp; Incandescent bulbs which can be highly customized to your liking at the switch itself with our unique config buttons and advanced firmware. In addition, the Red Series comes with advanced features such as scene support, power monitoring, notifications, local protection, etc. This is the first of its kind that allows homes that only have one wire coming from the fan to the light switch and uses both a light switch and canopy module. Inspired and worked on by our wonderful community.</MetaDataItem>
+    <MetaDataItem name="Name">LZW36 Fan/Light Dimmer</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="000e">LZW36</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">put your HUB in exclusion mode, hold the light up or down button and press the Light on/off button three (3) times.
+
+Please Note: If this doesn't work, you can check to see if your switch is within Z-Wave Range by holding down the Light Button for 5-10 seconds (if it's not within range, the LED Bar will indicate Red and if it is within Range, the LED Bar will indicate Green). If your switch indicates Red, please move the switch closer to the HUB. If your switch indicates Green, please try running an Exclusion to reset your switch.
+    </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="05 Jun 2020" revision="6">Adding Metadata</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="23 Jul 2020" revision="7">Fix Config Parameters</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="24 Jul 2020" revision="8">Adding additional metadata</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="27 Aug 2020" revision="9">Adding parameter 51 for firmware 1.36+</Entry>
+    </ChangeLog>
+  </MetaData>
+ 
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+
+    <Value genre="config" type="byte" size="1" index="1" label="Light Dimming Speed" min="0" max="98" value="4">
+      <Help>
+      This changes the speed in which the attached light dims up or down. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed.
+      Range:0-98
+      Default: 4
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="2" label="Light Dimming Speed (From Switch)" min="0" max="99" value="99">
+      <Help>
+      This changes the speed in which the attached light dims up or down when controlled from the physical switch. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 99 should keep this in sync with parameter 1.
+      Range:0-99
+      Default: 99
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="3" label="Light Ramp Rate" min="0" max="99" value="99">
+      <Help>
+      This changes the speed in which the attached light turns on or off. For example, when a user sends the switch a basicSet(value: 0xFF) or basicSet(value: 0x00), this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 99 should keep this in sync with parameter 1.
+      Range:0-99
+      Default: 99
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="4" label="Light Ramp Rate (From Switch)" min="0" max="99" value="99">
+      <Help>
+      This changes the speed in which the attached light turns on or off from the physical switch. For example, when a user presses the up or down button, this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 99 should keep this in sync with parameter 1.
+      Range:0-99
+      Default: 99
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="5" label="Minimum Light Level" min="1" max="45" value="1">
+      <Help>
+      The minimum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that does not turn on or flickers at a lower level.
+      Range:1-45
+      Default: 1
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="6" label="Maximum Light Level" min="55" max="99" value="99">
+      <Help>
+      The maximum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that reaches its maximum level before the dimmer value of 99.
+      Range:55-99
+      Default: 99
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="7" label="Minimum Fan Level" min="1" max="45" value="1">
+      <Help>
+      The minimum level that the dimmer allows the fan to be dimmed to. Useful when the user has a fan that does not turn at a lower level.
+      Range:1-45
+      Default: 1
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="8" label="Maximum Fan Level" min="55" max="99" value="99">
+      <Help>
+      The maximum level that the dimmer allows the fan to be dimmed to.
+      Range:55-99
+      Default: 99
+      </Help>
+    </Value>
+
+    <Value genre="config" type="short" size="2" index="10" label="Auto Off Light Timer" min="0" max="32767" value="0">
+      <Help>
+      Automatically turns the light switch off after this many seconds. When the switch is turned on a timer is started that is the duration of this setting. When the timer expires, the switch is turned off.
+      Range:0-32767
+      Default: 0
+      </Help>
+    </Value>
+
+    <Value genre="config" type="short" size="2" index="11" label="Auto Off Fan Timer" min="0" max="32767" value="0">
+      <Help>
+      Automatically turns the fan switch off after this many seconds. When the switch is turned on a timer is started that is the duration of this setting. When the timer expires, the switch is turned off.
+      Range:0-32767
+      Default: 0
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="12" label="Default Light Level (Local)" min="1" max="99" value="0">
+      <Help>
+      Default level for the dimmer when it is powered on from the local switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off.
+      Range:1-99
+      Default: 0
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="13" label="Default Light Level (Z-Wave)" min="1" max="99" value="0">
+      <Help>
+      Default level for the dimmer when it is powered on from a Z-Wave command. A setting of 0 means that the switch will return to the level that it was on before it was turned off.
+      Range:1-99
+      Default: 0
+      </Help>
+    </Value>
+
+    <Value genre="config" type="list" size="1" index="14" label="Default Fan Level (Local)" min="0" max="99" value="0">
+      <Help>
+      Default level for the fan dimmer when it is powered on from the local switch.
+      Default: Last State
+      </Help>
+        <Item value="0" label="Last State"/>
+    <Item value="33" label="Low"/>
+        <Item value="66" label="Medium"/>
+        <Item value="99" label="High"/>
+    </Value>
+
+    <Value genre="config" type="list" size="1" index="15" label="Default Fan Level (Z-Wave)" min="1" max="99" value="0">
+      <Help>
+      Default level for the fan dimmer when it is powered on from the local switch.
+      Default: Last State
+      </Help>
+        <Item value="0" label="Last State"/>
+    <Item value="33" label="Low"/>
+        <Item value="66" label="Medium"/>
+        <Item value="99" label="High"/>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="16" label="Light State After Power Restored" min="0" max="100" value="0">
+      <Help>
+      The state the switch should return to once power is restored after power failure. 0 = off, 1-99 = level, 100=previous.
+      Range:0-100
+      Default: 100
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="17" label="Fan State After Power Restored" min="0" max="100" value="0">
+      <Help>
+      The state the switch should return to once power is restored after power failure.
+      Default: Off
+      </Help>
+        <Item value="0" label="Off"/>
+    <Item value="33" label="Low"/>
+        <Item value="66" label="Medium"/>
+        <Item value="99" label="High"/>
+        <Item value="100" label="Previous State"/>
+    </Value>
+
+    <Value genre="config" type="short" size="2" index="18" label="Light LED Indicator Color" min="0" max="255" value="170">
+      <Help>
+      This is the color of the Light LED strip represented as part of the HUE color wheel. Since the wheel has 360 values and this parameter only has 255, the following equation can be used to determine the color: value/255 * 360 = Hue color wheel value
+      Range: 0 to 255
+      Default: 170
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="19" label="Light LED Strip Intensity" min="0" max="10" value="5">
+      <Help>
+      This is the intensity of the Light LED strip.
+      Range: 0-10
+      Default: 5
+      </Help>
+    </Value>
+
+    <Value genre="config" type="short" size="2" index="20" label="Fan LED Indicator Color" min="0" max="255" value="170">
+      <Help>
+      This is the color of the Fan LED strip represented as part of the HUE color wheel. Since the wheel has 360 values and this parameter only has 255, the following equation can be used to determine the color: value/255 * 360 = Hue color wheel value
+      Range: 0 to 255
+      Default: 170
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="21" label="Fan LED Strip Intensity" min="0" max="10" value="5">
+      <Help>
+      This is the intensity of the Fan LED strip.
+      Range: 0-10
+      Default: 5
+    </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="22" label="Light LED Strip Intensity (When OFF)" min="0" max="10" value="1">
+      <Help>
+      This is the intensity of the Light LED strip when the switch is off. This is useful for users to see the light switch location when the lights are off.
+      Range: 0-10
+      Default: 1
+    </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="23" label="Fan LED Strip Intensity (When OFF)" min="0" max="10" value="1">
+      <Help>
+      This is the intensity of the Fan LED strip when the switch is off. This is useful for users to see the light switch location when the lights are off.
+      Range: 0-10
+      Default: 1
+    </Help>
+    </Value>
+
+    <Value genre="config" type="int" size="4" index="24" label="Light LED Strip Effect" min="0" max="100600319" value="0">
+      <Help>
+      Please see website for documentation.
+          Byte 4: Effect - 0 = Off, 1 = Solid, 2 = Slow Blink, 3 = Fast Blink, 4 = Chase, 5 = Pulse
+          Byte 3: Duration - 1 to 60 = seconds, 61 to 120  minutes, 121 -  254 = hours, 255 = Indefinitely
+          Byte 2: Intensity - 0 to 9.  0 = dim, 9 = bright
+          Byte 1: Color - 0 - 255. Hue color wheel. value/255 * 360 = Hue color wheel value
+      Range: 0-100600319
+      Default: 0
+      </Help>
+    </Value>
+
+    <Value genre="config" type="int" size="4" index="25" label="Fan LED Strip Effect" min="0" max="100600319" value="0">
+      <Help>
+      Please see website for documentation.
+          Byte 4: Effect - 0 = Off, 1 = Solid, 2 = Slow Blink, 3 = Fast Blink, 4 = Chase, 5 = Pulse
+          Byte 3: Duration - 1 to 60 = seconds, 61 to 120  minutes, 121 -  254 = hours, 255 = Indefinitely
+          Byte 2: Intensity - 0 to 9.  0 = dim, 9 = bright
+          Byte 1: Color - 0 - 255. Hue color wheel. value/255 * 360 = Hue color wheel value
+      Range: 0-100600319
+      Default: 0
+      </Help>
+    </Value>
+
+    <Value genre="config" type="list" size="1" index="26" label="Light LED Strip Timeout" min="0" max="10" value="3">
+      <Help>
+      When the LED strip is disabled (Light LED Strip Intensity is set to 0), this setting allows the LED strip to turn on temporarily while being adjusted.
+      Range: 0-10
+      Default: 3
+      </Help>
+      <Item value="0" label="Stay Off"/>
+      <Item value="1" label="1 Second"/>
+      <Item value="2" label="2 Seconds"/>
+      <Item value="3" label="3 Seconds"/>
+      <Item value="4" label="4 Seconds"/>
+      <Item value="5" label="5 Seconds"/>
+      <Item value="6" label="6 Seconds"/>
+      <Item value="7" label="7 Seconds"/>
+      <Item value="8" label="8 Seconds"/>
+      <Item value="9" label="9 Seconds"/>
+      <Item value="10" label="10 Seconds"/>
+    </Value>
+
+    <Value genre="config" type="list" size="1" index="27" label="Fan LED Strip Timeout" min="0" max="10" value="3">
+      <Help>
+      When the LED strip is disabled (Fan LED Strip Intensity is set to 0), this setting allows the LED strip to turn on temporarily while being adjusted.
+      Range: 0-10
+      Default: 3
+      </Help>
+      <Item value="0" label="Stay Off"/>
+      <Item value="1" label="1 Second"/>
+      <Item value="2" label="2 Seconds"/>
+      <Item value="3" label="3 Seconds"/>
+      <Item value="4" label="4 Seconds"/>
+      <Item value="5" label="5 Seconds"/>
+      <Item value="6" label="6 Seconds"/>
+      <Item value="7" label="7 Seconds"/>
+      <Item value="8" label="8 Seconds"/>
+      <Item value="9" label="9 Seconds"/>
+      <Item value="10" label="10 Seconds"/>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="28" label="Active Power Reports" min="0" max="100" value="10">
+      <Help>
+      The power level change that will result in a new power report being sent. The value is a percentage of the previous report. 0 = disabled.
+      Range:0-100
+      Default: 10
+      </Help>
+    </Value>
+
+    <Value genre="config" type="short" size="2" index="29" label="Periodic Power &amp; Energy Reports" min="0" max="32767" value="3600">
+      <Help>
+      Time period between consecutive power &amp; energy reports being sent (in seconds). The timer is reset after each report is sent.
+      Range:0-32767
+      Default: 3600
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="30" label="Energy Reports" min="0" max="100" value="10">
+      <Help>
+      The energy level change that will result in a new energy report being sent. The value is a percentage of the previous report.
+      Range:0-100
+      Default: 10
+      </Help>
+    </Value>
+
+    <Value genre="config" type="byte" size="1" index="31" label="Local Protection" min="0" max="3" value="0">
+      <Help>
+      Enable local protection on these buttons. 0 = none, 1 = light, 2 = fan, 3 = both.
+      </Help>
+      <Item value="0" label="None"/>
+      <Item value="1" label="Light Button"/>
+      <Item value="2" label="Fan Button"/>
+      <Item value="3" label="Both Buttons"/>
+    </Value>
+
+    <Value genre="config" type="list" size="1" index="51" label="Instant On" min="0" max="1" value="1">
+       <Help>
+       Enables instant on (ie: disables the 700ms button delay). Note, if you disable the delay, it will also disable scene control except for the following: Light on/off pressed, held, released, Fan on/off  pressed, held, released &amp; light up/down fan up/down  pressed (firmware 1.36+).
+       </Help>
+       <Item value="0" label="Enabled (no delay)"/>
+       <Item value="1" label="Disabled (700ms delay)"/>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="7">
+      <Group index="1" label="Lifeline" max_associations="5" />
+      <Group index="2" label="Basic_Set_Light" max_associations="5" />
+      <Group index="3" label="Switch_MultiLevel_Set_Light" max_associations="5" />
+      <Group index="4" label="Switch_MultiLevel_Start/Stop_Light" max_associations="5" />
+      <Group index="5" label="Basic_Set_Fan" max_associations="5" />
+      <Group index="6" label="Switch_MultiLevel_Set_Fan" max_associations="5" />
+      <Group index="7" label="Switch_MultiLevel_Start/Stop_Fan" max_associations="5" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/inovelli/lzw40.xml b/config/inovelli/lzw40.xml
new file mode 100644
index 0000000000..a687f28bc8
--- /dev/null
+++ b/config/inovelli/lzw40.xml
@@ -0,0 +1,39 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:0001:0007</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/inovelli/lzw40.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0007">https://products.z-wavealliance.org/products/3657</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://inovelli.com/shop/z-wave-smart-bulbs/z-wave-smart-bulb/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://inovelli.com/shop/z-wave-smart-bulbs/z-wave-smart-bulb/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Put your HUB in Exclusion mode and turn the power to the bulb on/off/on. </MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0007">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3657/LZW40%20-%20Manual%20(Compressed).pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">You may power on/off the bulb 6x (between 0.5-2 seconds each time) until the bulb factory resets.</MetaDataItem>
+    <MetaDataItem name="Description">With 806 lumens and smooth dimming, this bulb has it all. Best part? It's powered by Z-Wave Plus technology. Imagine walking into a room, tapping a switch (hopefully Inovelli) and your ilumin lights come on to a beautiful movie scene. Or as you're winding down for the night, the lights gradually dim off as you drift to sleep. These are some of the many things you can do with smart bulbs and we're excited to be able to share them with you.</MetaDataItem>
+    <MetaDataItem name="Name">LZW40 Dimmable Bulb</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0007">LZW40</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Put your HUB in Inclusion mode and turn the power to the bulb on/off/on. </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="22 Jan 2020" revision="1">Initial commit</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" type="list" size="1" index="2" label="Default State" min="0" max="2" value="0">
+      <Help>
+      When Power is restored
+      Range: 0-2
+      Default: 0
+      </Help>
+      <Item value="0" label="Previous"/>
+      <Item value="1" label="On"/>
+    </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/inovelli/lzw41.xml b/config/inovelli/lzw41.xml
new file mode 100644
index 0000000000..f275b2d887
--- /dev/null
+++ b/config/inovelli/lzw41.xml
@@ -0,0 +1,56 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:0001:0006</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/inovelli/lzw41.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0006">https://products.z-wavealliance.org/products/3614</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://inovelli.com/shop/z-wave-smart-bulbs/z-wave-cct-smart-bulb/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://inovelli.com/shop/z-wave-smart-bulbs/z-wave-cct-smart-bulb/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Put your HUB in Exclusion mode and turn the power to the bulb on/off/on. </MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0006">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3614/LZW41%20Manual.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">You may power on/off the bulb 6x (between 0.5-2 seconds each time) until the bulb factory resets.</MetaDataItem>
+    <MetaDataItem name="Description">With 806 lumens, tunable white, and smooth dimming, this bulb has it all. Best part? It's powered by Z-Wave Plus technology. Imagine walking into a room, tapping a switch (hopefully Inovelli) and your ilumin lights come on to a beautiful movie scene. Or as you're winding down for the night, switch from cool white to warm and gradually dim off the lights as you drift to sleep. These are some of the many things you can do with smart bulbs and we're excited to be able to share them with you.</MetaDataItem>
+    <MetaDataItem name="Name">LZW41 Tunable White Bulb</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0006">LZW41</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Put your HUB in Inclusion mode and turn the power to the bulb on/off/on. </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="22 Jan 2020" revision="1">Initial commit</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="22 Jan 2020" revision="2">Fix config parameter numbers</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" type="list" size="1" index="2" label="Default State" min="0" max="2" value="0">
+      <Help>
+      When Power is restored
+      Range: 0-2
+      Default: 0
+      </Help>
+      <Item value="0" label="Previous"/>
+      <Item value="1" label="On"/>
+      <Item value="2" label="Off"/>
+    </Value>
+    <Value genre="config" type="short" size="2" index="81" label="Color Adjustment (Warm White)" min="1387" max="4999" value="2700">
+      <Help>
+      Changes the Kelvin from 2700k (1387) to 4999k (4999)
+      Range: 1387-4999
+      Default: 2700
+      </Help>
+    </Value>
+    <Value genre="config" type="short" size="2" index="82" label="Color Adjustment (Cool White)" min="5000" max="6500" value="6500">
+      <Help>
+      Changes the Kelvin from 5000k (5000) to 6500k (6500)
+      Range: 5000-6500
+      Default: 6500
+      </Help>
+    </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/inovelli/lzw42.xml b/config/inovelli/lzw42.xml
new file mode 100644
index 0000000000..23d9d0683d
--- /dev/null
+++ b/config/inovelli/lzw42.xml
@@ -0,0 +1,56 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:0001:0005</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/inovelli/lzw42.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0005">https://products.z-wavealliance.org/products/3613</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://inovelli.com/shop/z-wave-smart-bulbs/z-wave-rgbw-smart-bulb/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://inovelli.com/shop/z-wave-smart-bulbs/z-wave-rgbw-smart-bulb/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Put your HUB in Exclusion mode and turn the power to the bulb on/off/on. </MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0005">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3613/LZW42%20Manual.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">You may power on/off the bulb 6x (between 0.5-2 seconds each time) until the bulb factory resets.</MetaDataItem>
+    <MetaDataItem name="Description">With 806 lumens, millions of colors, tunable white, and smooth dimming, this bulb has it all. Best part? It's powered by Z-Wave Plus technology. Imagine walking into a room, tapping a switch (hopefully Inovelli) and your ilumin lights come on to a beautiful movie scene. Or as you're winding down for the night, switch from cool white to warm and gradually dim off the lights as you drift to sleep. These are some of the many things you can do with smart bulbs and we're excited to be able to share them with you.</MetaDataItem>
+    <MetaDataItem name="Name">LZW42 RGBW Bulb</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0005">LZW42</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Put your HUB in Inclusion mode and turn the power to the bulb on/off/on. </MetaDataItem>
+    <ChangeLog>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="22 Jan 2020" revision="1">Initial commit</Entry>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="22 Jan 2020" revision="2">Fix config parameter numbers</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" type="list" size="1" index="2" label="Default State" min="0" max="2" value="0">
+      <Help>
+      When Power is restored
+      Range: 0-2
+      Default: 0
+      </Help>
+      <Item value="0" label="Previous"/>
+      <Item value="1" label="On"/>
+      <Item value="2" label="Off"/>
+    </Value>
+    <Value genre="config" type="short" size="2" index="81" label="Color Adjustment (Warm White)" min="1387" max="4999" value="2700">
+      <Help>
+      Changes the Kelvin from 2700k (1387) to 4999k (4999)
+      Range: 1387-4999
+      Default: 2700
+      </Help>
+    </Value>
+    <Value genre="config" type="short" size="2" index="82" label="Color Adjustment (Cool White)" min="5000" max="6500" value="6500">
+      <Help>
+      Changes the Kelvin from 5000k (5000) to 6500k (6500)
+      Range: 5000-6500
+      Default: 6500
+      </Help>
+    </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/inovelli/lzw45.xml b/config/inovelli/lzw45.xml
new file mode 100644
index 0000000000..b49d7beeb2
--- /dev/null
+++ b/config/inovelli/lzw45.xml
@@ -0,0 +1,194 @@
+<Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:0001:000a</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/inovelli/lzw31-sn.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="000a">https://products.z-wavealliance.org/products/3438</MetaDataItem>
+    <MetaDataItem name="ProductPage">TBD</MetaDataItem>
+    <MetaDataItem name="ProductSupport">TBD</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">TBD</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="000a">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">TBD</MetaDataItem>
+    <MetaDataItem name="ResetDescription">TBD</MetaDataItem>
+    <MetaDataItem name="Description">TBD</MetaDataItem>
+    <MetaDataItem name="Name">LZW45 LED Light Strip</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="000a">LZW45</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">TBD</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jtronicus" date="29 Sep 2020" revision="1">Initial Release</Entry>
+      <Entry author="Jtronicus" date="2 Oct 2020" revision="2">Fix device type, fix some issues with parameter sizes</Entry>
+      <Entry author="Jtronicus" date="16 Oct 2020" revision="3">Updates to work with firmware 1.16</Entry>
+      <Entry author="Jtronicus" date="24 Oct 2020" revision="4">Updates to work with firmware 1.17</Entry>
+      <Entry author="Jtronicus" date="27 Oct 2020" revision="5">Updates to work with firmware 1.18</Entry>
+      <Entry author="Jtronicus" date="27 Oct 2020" revision="6">Updates parameter 30 to 4 bytes</Entry>
+      <Entry author="nathanfiscus" date="20 Jan 2021" revision="7">Updates parameter 30 value max</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" type="byte" size="1" index="1" label="Number of Pixels" min="0" max="130" value="0">
+      <Help>
+      When individually addressable LEDs are used, this parameter tells the controller the number of pixels that are attached. 
+      0: Automatic recognition of pixels
+      Range 1 - 130: Set the fixed value of the pixel bit
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="2" label="Dimming Speed" min="0" max="98" value="3">
+      <Help>
+      This changes the speed in which the light strip dims up or down. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed.
+      Range 0 - 98: Set the dimming speed
+      Default: 4
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="3" label="Ramp Rate" min="0" max="99" value="99">
+      <Help>
+      This changes the speed in which the light strip turns on or off. For example, when a user sends the switch a basicSet(value: 0xFF) or basicSet(value: 0x00), this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 99 should keep this in sync with parameter 2.
+      Range 0 - 98: Set the Ramp Rate
+      99: Keep in sync with parameter 2
+      Default: 99
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="4" label="Minimum Level" min="1" max="45" value="1">
+      <Help>
+      The minimum level that the strip can be dimmed to. Useful when the user has an LED strip that does not turn on or flickers at a lower level.
+      Range: 1 - 45
+      Default: 1
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="5" label="Maximum Level" min="55" max="99" value="99">
+      <Help>
+      The maximum level that the strip can be dimmed to. Useful when the user has an LED strip that reaches its maximum level before the dimmer value of 99.
+      Range: 55 - 99
+      Default: 99
+      </Help>
+    </Value>
+    <Value genre="config" type="short" size="2" index="6" label="Auto Off Timer" min="0" max="32767" value="0">
+      <Help>
+      Automatically turns the strip off after this many seconds. When the strip is turned on a timer is started that is the duration of this setting. When the timer expires, the strip is turned off.
+      0 - Auto off is disabled
+      Range: 0 - 32767
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="7" label="Default Level (Local)" min="0" max="99" value="0">
+      <Help>
+      Default level for the strip when it is powered on from the local switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off.
+      Range 0 - 99
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="8" label="Default Level (Z-Wave)" min="0" max="99" value="0">
+      <Help>
+      Default level for the dimmer when it is powered on from a Z-Wave command (i.e. BasicSet(0xFF)). A setting of 0 means that the switch will return to the level that it was on before it was turned off.
+      Range: 0-99
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="int" size="4" index="9" label="Default Color" min="0" max="425984362" value="262144000">
+      <Help>
+      Byte(3-2): Values between 2700-6500 represent a color temperature. 
+      Byte(1-0): Values between 0-361, represent the color on the Hue color wheel. The value of 361 represents a random color.
+      Range: 0 - 425984362
+      Default: 262144000
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="10" label="State after power Restored" min="1" max="2" value="2">
+      <Help>
+      The state the switch should return to once power is restored after power failure.
+      0 - Off
+      1 - Default Color / Level (Parameter 9)
+      2 - Previous
+      Default: Previous
+      </Help>
+      <Item value="0" label="Off"/>
+      <Item value="1" label="Default Color/Level"/>
+      <Item value="2" label="Previous"/>
+    </Value>
+   <Value genre="config" type="byte" size="1" index="17" label="Active Power Reports" min="0" max="100" value="10">
+      <Help>
+      The power level change that will result in a new power report being sent. The value is a percentage of the previous report. 0 = disabled.
+      Range: 0 - 100
+      Default: 10
+      </Help>
+    </Value>
+    <Value genre="config" type="short" size="2" index="18" label="Periodic Power &amp; Energy Reports" min="0" max="32767" value="3600">
+      <Help>
+      Time period between consecutive power &amp; energy reports being sent (in seconds). The timer is reset after each report is sent.
+      Range: 0, 30 - 32767
+      Default: 3600
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="19" label="Energy Reports" min="0" max="127" value="10">
+      <Help>
+      The energy level change that will result in a new energy report being sent (in kWh)
+	  0 = 0.01kWh, 10=0.1kWh, 100=1kWh
+      Range:0-127
+      Default: 10
+      </Help>
+    </Value>
+    <Value genre="config" type="int" size="4" index="21" label="Quick Strip Effect" min="0" max="2147483647" value="0">
+      <Help>
+      See website for details
+      *  Sending Basic, Binary Switch, Multilevel, and Color SET will automatically disable the strip effect.
+      *  Toggling OFF -> ON will cancel effect mode set on LED Strip and change the LED Strip back to the Previous color.
+      Range: 0 - 2147483647
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="int" size="4" index="22" label="Custom Strip Effect Parameter 1" min="0" max="2147483647" value="0">
+      <Help>
+      See website for details.
+      Range: 0 - 2147483647
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="int" size="4" index="23" label="Custom Strip Effect Parameter 2" min="0" max="2147483647" value="0">
+      <Help>
+      See website for details.
+      Range: 0 - 2147483647
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="int" size="4" index="24" label="Custom Strip Effect Parameter 3" min="0" max="2147483647" value="0">
+      <Help>
+      See website for details.
+      Range: 0 - 2147483647
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="int" size="4" index="30" label="Custom Strip Effect Parameter 4" min="0" max="197375" value="0">
+      <Help>
+      See website for details.
+      Range: 0 - 197375
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="short" size="2" index="31" label="Pixel Effect" min="0" max="32767" value="0">
+      <Help>
+      Byte 1 - Level
+      Byte 0 - Effect
+      See website for details.
+      Default: 0
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="51" label="Disable Physical On/Off Delay" min="0" max="1" value="1">
+      <Help>
+      The 700ms delay that occurs after pressing the physical button to turn the switch on/off is removed. Consequently this also removes the following scenes: 2x, 3x, 4x, 5x tap. Still working are the 1x tap, held, released, and the level up/down scenes. (firmware 1.36+)
+      0 - 700ms delay disabled (some scenes will not work)
+      1 - 700ms delay enabled (All scenes work)
+      Default: 700ms delay enabled
+      </Help>
+      <Item value="0" label="700ms delay disabled"/>
+      <Item value="1" label="700ms delay enabled"/>
+    </Value>    
+   </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <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="4" label="Switch_MultiLevel_Start/Stop" max_associations="5" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/inovelli/lzw60.xml b/config/inovelli/lzw60.xml
new file mode 100644
index 0000000000..d4dd2e372b
--- /dev/null
+++ b/config/inovelli/lzw60.xml
@@ -0,0 +1,131 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/031E:000d:0001</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/inovelli/lzw60.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="000d">https://products.z-wavealliance.org/products/3723</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://inovelli.com/shop/smart-sensors/z-wave-4-in-1-sensor/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://inovelli.com/shop/smart-sensors/z-wave-4-in-1-sensor/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">To Exclude your switch, put your HUB in exclusion mode and press the Sensor Button on the back of the device one (1) time.</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="000d">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3723/Inovelli%204-1%20Sensor%20Manual.pdf</MetaDataItem>
+    <MetaDataItem name="Description">Control and Monitor Temperature, Light, Motion, and Humidity with the 4 in 1 Sensor.</MetaDataItem>
+    <MetaDataItem name="Name">LZW60 4-in-1 Sensor</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="000d">LZW60</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">To include your switch, start the inclusion process on your HUB and Sensor Button on the back of the device one (1) time.</MetaDataItem>
+
+    <ChangeLog>
+      <Entry author="Eric Maycock - ericm@inovelli.com" date="7 Nov 2019" revision="1">Initial Release</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" type="byte" size="1" index="10" label="Low Battery Power Level Alarm" min="10" max="50" value="10">
+      <Help>
+      Value at which the sensor reports low battery to the gateway
+	  Range:10-50
+      Default: 10
+      </Help>
+    </Value>
+    <Value genre="config" type="byte" size="1" index="12" label="PIR Sensitivity" min="0" max="10" value="8">
+      <Help>
+      Change the sensitivity of the PIR (Motion) Sensor
+	  0 = off, 1 = Low sensitivity, 10 = High sensitivity
+      Default: 8
+      </Help>
+    </Value>
+    <Value genre="config" type="short" size="2" index="13" label="PIR Trigger Time (seconds)" min="5" max="15300" value="30">
+      <Help>
+      The amount of seconds between motion detection (ie: the interval)
+	  Range:5-15300
+      Default: 30
+      </Help>
+    </Value>
+    <Value genre="config" type="list" size="1" index="14" label="Basic Set Command Send after PIR Trigger" min="0" max="1" value="0">
+      <Help>
+      Should Basic Set Command be sent after PIR is triggered? This is used to turn other devices on/off when motion is detected.
+      Default: No
+      </Help>
+	  <Item value="0" label="No"/>
+	  <Item value="1" label="Yes"/>
+    </Value>
+    <Value genre="config" type="list" size="1" index="15" label="PIR Trigger Correspondence Action" min="0" max="1" value="0">
+      <Help>
+      Ability to reverse the Basic Set behavior for devices associated in group 2
+      Default: ON when motion is tripped, OFF when motion stops
+      </Help>
+	  <Item value="0" label="ON when motion is tripped, OFF when motion stops"/>
+	  <Item value="1" label="OFF when motion is tripped, ON when motion stops"/>
+    </Value>
+    <Value genre="config" type="int" size="4" index="101" label="Temperature Sensor Read Interval" min="0" max="2768400" value="7200">
+      <Help>
+      The interval in which the temperature sensor is checked, in seconds. Set to 0 to disable (Note: will be rounded to the nearest minute)
+      Default: 7200 (2 hours)
+      </Help>
+    </Value>
+    <Value genre="config" type="int" size="4" index="102" label="Humidity Sensor Read Interval" min="0" max="2768400" value="7200">
+      <Help>
+      The interval in which the humidity sensor is checked, in seconds. Set to 0 to disable (Note: will be rounded to the nearest minute)
+      Default: 7200 (2 hours)
+      </Help>
+    </Value>	
+    <Value genre="config" type="int" size="4" index="103" label="Luminance Sensor Read Interval" min="0" max="2768400" value="7200">
+      <Help>
+      The interval in which the luminance sensor is checked, in seconds. Set to 0 to disable (Note: will be rounded to the nearest minute)
+      Default: 7200 (2 hours)
+      </Help>
+    </Value>	
+    <Value genre="config" type="int" size="4" index="104" label="Battery Level Read Interval" min="0" max="2768400" value="86400">
+      <Help>
+      The interval in which the battery level is checked, in seconds. Set to 0 to disable (Note: will be rounded to the nearest minute)
+      Default: 86400 (24 hours)
+      </Help>
+    </Value>	
+    <Value genre="config" type="list" size="1" index="110" label="Sensor Report Method" min="0" max="1" value="0">
+      <Help>
+      Sensor reports are only checked at the interval defined in parameters 101-104.  Should the sensor data always be reported, or only if the value has changed more than the threshold configured in parameters 111-114?
+	  Always: Send sensor data every interval, even if the value did not change.
+	  Threshold: Send sensor data on interval, but only if the value has changed by more than the defined threshold since the last report was sent.
+	  Default: Always
+      </Help>
+	  <Item value="0" label="Always"/>
+	  <Item value="1" label="Threshold" />
+    </Value>
+    <Value genre="config" type="short" size="2" index="111" label="Temperature Threshold" min="1" max="500" value="10">
+      <Help>
+      Set the temperature threshold of the sensor.  If Sensor Report Method = "Threshold", the temperature change must exceed this value in order to be reported to the hub.
+	  Range: 1-500
+	  1 = 0.1 degrees Celcius, 500 = 50 degrees Celcuis
+      Default: 10 (1 degree Celcuis)
+      </Help>
+    </Value>	
+    <Value genre="config" type="byte" size="1" index="112" label="Humidity Threshold" min="1" max="32" value="5">
+      <Help>
+      Set the humidity threshold of the sensor.  If Sensor Report Method = "Threshold", the humidity change must exceed this value in order to be reported to the hub.
+	  Range: 1-32, 1 = 1%, 32 = 32%
+      Default: 5%
+      </Help>
+    </Value>	
+    <Value genre="config" type="short" size="2" index="113" label="Luminance Threshold" min="1" max="65528" value="150">
+      <Help>
+      Set the luminance threshold of the sensor (in lux).  If Sensor Report Method = "Threshold", the luminance change must exceed this value in order to be reported to the hub.
+	  Range: 1-65528
+      Default: 150
+      </Help>
+    </Value>		
+    <Value genre="config" type="byte" size="1" index="114" label="Battery Threshold" min="1" max="100" value="10">
+      <Help>
+      Set the battery threshold of the sensor (percent).  If Sensor Report Method = "Threshold", the battery level change must exceed this value in order to be reported to the hub.
+	  Range: 1-100
+      Default: 10
+      </Help>
+    </Value>	
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5" />
+      <Group index="2" label="PIR Trigger Basic Set" max_associations="5" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/inovelli/nzw30.xml b/config/inovelli/nzw30.xml
index 048addafc4..2fe2fbff05 100644
--- a/config/inovelli/nzw30.xml
+++ b/config/inovelli/nzw30.xml
@@ -1,4 +1,10 @@
-<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/inovelli/nzw30.png</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Daniel Brunt - daniel@brunt.ca" date="30 July 2020" revision="4">Added pic</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
     <Value genre="config" index="3" label="LED Indicator Control" max="255" min="0" size="1" type="list" units="" value="0">
diff --git a/config/kwikset/888.xml b/config/kwikset/888.xml
new file mode 100644
index 0000000000..12b27b8a39
--- /dev/null
+++ b/config/kwikset/888.xml
@@ -0,0 +1,124 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0090:0541:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/kwikset/888.png</MetaDataItem>
+    <MetaDataItem id="0446" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2176</MetaDataItem>
+    <MetaDataItem id="0446" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0446" name="Identifier" type="0003">888</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.kwikset.com/products/detail/888-smartcode-electronic-deadbolt-with-z-wave-technology</MetaDataItem>
+    <MetaDataItem name="Description">Extend your smart home system to your current deadbolt, enabling your existing deadbolt to wirelessly communicate with your smart home or security system
+Dramatically reduced, all-metal interior
+Works with existing select single cylinder deadbolts</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.kwikset.com/Customer-Support/Overview.aspx</MetaDataItem>
+    <MetaDataItem name="Name">SmartCode 888</MetaDataItem>
+    <ChangeLog>
+      <Entry author="mike240se" date="20 Jun 2020" revision="1">Initial Version</Entry>
+      <Entry author="mike240se" date="24 Jul 2020" revision="2">Add Config Params</Entry>
+    </ChangeLog>
+    <MetaDataItem name="WakeupDescription">The electronic conversion kit remains asleep until an action occurs on the latch or a request is received from the RF side.
+For the RF side, it will wake up every 1 second to check if there are any requests from your smart home controller.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2268/Install_Guide_914C_03_09_2017.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Initiate the process to add the lock to your system at your smart home controller.
+When prompted by your smart home system to add the lock, press button “A” on the lock interior one time. The red LED will illuminate when the lock enters Add Mode.
+Please allow time for the controller to add the lock to your system.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Follow your smart home system’s instructions to remove the lock from the network. When prompted by the system, press button A” on the lock interior once.  The red LED will illuminate when the lock enters Remove mode. </MetaDataItem>
+    <MetaDataItem name="ResetDescription">A factory reset will delete all user codes associated with the lock and will remove itself from your smart home system.
+Please only perform a factory reset when the primary controller is missing or inoperable.
+
+To perform a factory reset, please perform the following:
+1. Remove the battery pack
+2. Press and HOLD the Program button while reinserting the battery pack.
+3. Keep holding the button for 30 seconds until the lock beeps and the status LED flashes red.
+4. Press the Program button once more.  The status LED will flash green and red several times.
+5. After a few seconds, the lock will initiate the door handing process.</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+	<Value genre="config" index="33" instance="1" label="MSB SKU part numbers" max="255" min="0" type="byte">
+      <Help>The configuration parameters 33 and 34 are used to set and get the SKU part numbers.
+The SKU is made up of 8 bytes. Each parameter consists of four bytes of data.
+Parameter 33 contains the first four most significant bytes of the SKU, while parameter
+34 contains the four least significant bytes of the SKU.
+When setting the SKU, it must be done in two set commands, one for each parameter.
+The order of programming the SKU does not matter. 
+Setting parameter 33 will program the first four bytes of the SKU. Setting parameter 34
+will program the last 4 bytes of the SKU. Most printable values are accepted for the set
+command.
+When getting the SKU, it must be done in two get commands, one for each parameter.
+The order of getting the SKU does not matter.
+Getting parameter 33 will retrieve the first four bytes of the SKU. Getting parameter 34
+will retrieve the last 4 bytes of the SKU.
+			</Help>
+    </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 genre="config" index="35" instance="1" label="Interior Status LED Control" max="1" min="0" type="bool">
+	  <Help>The configuration parameter 35 is a one byte field that will allow the user to get / set the
+value for the Interior Status LED control. The value of 0 means that the setting is
+disabled; whereas the value of 1 means that the setting is enabled.
+Sending a set command with the default field set to 1 will cause the control to revert back
+to its factory default setting. </Help>
+	</Value>
+	<Value genre="config" index="36" label="AutoLock" size="2" type="list" value="1">
+      <Help>The configuration parameter 36 uses 2 bytes that will allow the user to get / set the value
+for the Auto Lock feature and timing for that feature. The first byte will be the
+enable/disable byte. The value of 0 means that the setting is disabled; whereas the value
+of 1 means that the setting is enabled. The next two bytes will be the timing for the Auto
+Lock feature and should contain the number of seconds before the Auto Lock will occur.
+The valid values are: 0 (default – 30 seconds), 30, 60, 90, 120, 180. For example, setting
+the auto lock feature for 60 seconds, the two timing bytes should be: 0x003C.
+Sending a set command with the default field set to 1 will cause the control to revert back
+to its factory default settings. </Help>
+      <Item label="Disabled" value="30"/>
+      <Item label="Enabled - 30s" value="286"/>
+      <Item label="Enabled - 60s" value="316"/>
+      <Item label="Enabled - 90s" value="346"/>
+	  <Item label="Enabled - 120s" value="376"/>
+	  <Item label="Enabled - 180s" value="436"/>
+    </Value>
+	<Value genre="config" index="37" instance="1" label="Audio Feature Control" max="1" min="0" type="bool">
+	  <Help>The configuration parameter 37 is a one byte field that will allow the user to get / set the
+value for the Audio feature. The value of 0 means that the setting is disabled; whereas
+the value of 1 means that the setting is enabled.
+Sending a set command with the default field set to 1 will cause the control to revert back
+to its factory default setting. 
+	   </Help>
+	</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="Perform Factory Reset" value="1"/>
+      <Item label="Normal" value="0"/>
+    </Value>
+	
+	<Value genre="config" index="47" label="Motor Load Control" size="1" max="1" min="0" type="bool">
+	  <Help>The configuration parameter 47 uses 1 byte that will allow the user to get / set the value
+to enable or disable the motor load alarm. Setting this byte to 0 will disable the alarm,
+whereas setting this byte to 1 will enable the alarm. If a motor load alarm has been
+activated and the alarm has been enabled, the alarm will be sent via the Power
+Management group in the Notification Command Class as a Load Error (0x09). 
+	   </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="6" Instance="1">
+      <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
+    </TriggerRefreshValue>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Doorlock notify report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
+
diff --git a/config/kwikset/910.xml b/config/kwikset/910.xml
new file mode 100644
index 0000000000..dd606d0807
--- /dev/null
+++ b/config/kwikset/910.xml
@@ -0,0 +1,369 @@
+<!-- 
+Kwikset smartcode 
+http://s7d5.scene7.com/is/content/BDHHI/z-wave-configuration
+--><Product Revision="1" 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">Weiser introduces the SmartCode™ 10 Touchpad Electronic Deadbolt with Z-Wave.
+
+10 digit backlit keypad with one touch locking
+Dramatically reduced, all-metal interior
+30 user codes plus master code
+BHMA grade 2 certified
+20 minute fire rating - UL certified
+Full 128-bit encryption security
+SmartKey: Re-key the lock in seconds</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.kwikset.com/Customer-Support/Overview.aspx</MetaDataItem>
+    <MetaDataItem name="Name">SmartCode 10 Touchpad Electronic Deadbolt</MetaDataItem>
+    <ChangeLog>
+      <Entry author="firstof9 - firstof9@gmail.com" date="24 Jul 2020" revision="1">Fixed TriggerRefresh Index to properly update lock status via Alarm Type.</Entry>
+    </ChangeLog>
+    <MetaDataItem name="WakeupDescription">Even though the lock is sleeping, all buttons are active and can be used to initiate any lock activity.
+For the RF side, it will wake up every 1 second to check if there are any requests from your smart home controller.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/2369/Install Guide GED1800 04112017.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Initiate the process to add the lock to your system at your smart home controller.
+When prompted by your smart home system to add the lock, press button “A” on the lock interior one time. The red LED will illuminate when the lock enters Add Mode.
+Please allow time for the controller to add the lock to your system.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Follow your smart home system’s instructions to remove the lock from the network. When prompted by the system, press button A” on the lock interior once.  The red LED will illuminate when the lock enters Remove mode. </MetaDataItem>
+    <MetaDataItem name="ResetDescription">A factory reset will delete all user codes associated with the lock and will remove itself from your smart home system.
+Please only perform a factory reset when the primary controller is missing or inoperable.
+
+To perform a factory reset, please perform the following:  
+1. Remove the battery pack
+2. Press and HOLD the Program button while reinserting the battery pack.
+3. Keep holding the button for 30 seconds until the lock beeps and the status LED flashes red.
+4. Press the Program button once more.  The status LED will flash green and red several times.
+5. After a few seconds, the lock will initiate the door handing process.</MetaDataItem>
+  </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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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.) 
+			  The DLM changes only the appropriate 4 bytes in its local copy of the SKU, and it then sends the full 8 bytes down to the lock in a SET_SKU_ID.
+			* 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 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 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
+			912 Z-Wave 0x03 0x36
+			914 Z-Wave 0x04 0x36
+			916 Z-Wave 0x06 0x42
+			</Help>
+    </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="512" 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/kwikset/914c.xml b/config/kwikset/914c.xml
new file mode 100644
index 0000000000..5ea6fd5657
--- /dev/null
+++ b/config/kwikset/914c.xml
@@ -0,0 +1,81 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0090:0446:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/kwikset/914c.png</MetaDataItem>
+    <MetaDataItem id="0446" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2268</MetaDataItem>
+    <MetaDataItem id="0446" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0446" name="Identifier" type="0003">914C</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.kwikset.com/products/detail/kwikset-convert-smart-lock-conversion-kit-with-z-wave-technology</MetaDataItem>
+    <MetaDataItem name="Description">Extend your smart home system to your current deadbolt, enabling your existing deadbolt to wirelessly communicate with your smart home or security system
+Dramatically reduced, all-metal interior 
+Works with existing select single cylinder deadbolts</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.kwikset.com/Customer-Support/Overview.aspx</MetaDataItem>
+    <MetaDataItem name="Name">Convert Electronic Deadbolt</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jeff Sanicola - jeff.sanicola@outlook.com" date="20 Dec 2019" revision="1">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2268/xml</Entry>
+      <Entry author="steve28" date="14 Jun 2020" revision="2">Fixed index of alarm message to trigger lock status refresh</Entry>
+    </ChangeLog>
+    <MetaDataItem name="WakeupDescription">The electronic conversion kit remains asleep until an action occurs on the latch or a request is received from the RF side.
+For the RF side, it will wake up every 1 second to check if there are any requests from your smart home controller.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2268/Install_Guide_914C_03_09_2017.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Initiate the process to add the lock to your system at your smart home controller.
+When prompted by your smart home system to add the lock, press button “A” on the lock interior one time. The red LED will illuminate when the lock enters Add Mode.
+Please allow time for the controller to add the lock to your system.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Follow your smart home system’s instructions to remove the lock from the network. When prompted by the system, press button A” on the lock interior once.  The red LED will illuminate when the lock enters Remove mode. </MetaDataItem>
+    <MetaDataItem name="ResetDescription">A factory reset will delete all user codes associated with the lock and will remove itself from your smart home system.
+Please only perform a factory reset when the primary controller is missing or inoperable.
+
+To perform a factory reset, please perform the following:  
+1. Remove the battery pack
+2. Press and HOLD the Program button while reinserting the battery pack.
+3. Keep holding the button for 30 seconds until the lock beeps and the status LED flashes red.
+4. Press the Program button once more.  The status LED will flash green and red several times.
+5. After a few seconds, the lock will initiate the door handing process.</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <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 Autolock (1: enable)
+			Bit 2 Buzzer (1: enable)
+			Bit 3 Handing Invert (1: enable)
+      </Help>
+    </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.) 
+			  The DLM changes only the appropriate 4 bytes in its local copy of the SKU, and it then sends the full 8 bytes down to the lock in a SET_SKU_ID.
+			* 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 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 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="Perform Factory 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="6" 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/kwikset/916.xml b/config/kwikset/916.xml
new file mode 100644
index 0000000000..33dbbec88f
--- /dev/null
+++ b/config/kwikset/916.xml
@@ -0,0 +1,372 @@
+<Product Revision="1" 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/916.jpg</MetaDataItem>
+    <MetaDataItem id="0642" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2188/</MetaDataItem>
+    <MetaDataItem id="0642" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0642" name="Identifier" type="0003">916</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.kwikset.com/support/productdetail/916-smartcode-traditional-electronic-deadbolt-with-z-wave-technology</MetaDataItem>
+    <MetaDataItem name="Description">Kwikset®, the leader in residential security, introduces the SmartCode™ 916 Touchscreen Electronic Deadbolt with Z-Wave.
+
+Capacitive touchscreen
+SecureScreen: Additional security by preventing fingerprint code detection
+One touch locking
+Dramatically reduced, all-metal interior
+30 user codes plus master code
+BHMA grade 2 certified
+20 minute fire rating - UL certified
+Full 128-bit encryption security
+SmartKey: Re-key the lock in seconds</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.kwikset.com/Customer-Support/Overview.aspx</MetaDataItem>
+    <MetaDataItem name="Name">SmartCode 916 Touchscreen Electronic Deadbolt</MetaDataItem>
+    <ChangeLog>
+        <Entry author="firstof9" date="20 Jul 2020" revision="1">Initial Version</Entry>
+    </ChangeLog>
+
+    <MetaDataItem name="WakeupDescription">Even though the lock is sleeping, all buttons are active and can be used to initiate any lock activity.
+For the RF side, it will wake up every 1 second to check if there are any requests from your smart home controller.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2188/Install_Guide_916_01_23_2017.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Initiate the process to add the lock to your system at your smart home controller.
+When prompted by your smart home system to add the lock, press button “A” on the lock interior one time. The red LED will illuminate when the lock enters Add Mode.
+Please allow time for the controller to add the lock to your system.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Follow your smart home system’s instructions to remove the lock from the network. When prompted by the system, press button A” on the lock interior once.  The red LED will illuminate when the lock enters Remove mode. </MetaDataItem>
+    <MetaDataItem name="ResetDescription">A factory reset will delete all user codes associated with the lock and will remove itself from your smart home system.
+Please only perform a factory reset when the primary controller is missing or inoperable.
+
+To perform a factory reset, please perform the following:  
+1. Remove the battery pack
+2. Press and HOLD the Program button while reinserting the battery pack.
+3. Keep holding the button for 30 seconds until the lock beeps and the status LED flashes red.
+4. Press the Program button once more.  The status LED will flash green and red several times.
+5. After a few seconds, the lock will initiate the door handing process.</MetaDataItem>
+    <MetaDataItem id="0642" name="ZWProductPage" type="0001">https://products.z-wavealliance.org/products/2188/</MetaDataItem>
+    <MetaDataItem id="0642" name="FrequencyName" type="0001">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0642" name="Identifier" type="0001">916</MetaDataItem>
+  </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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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.) 
+			  The DLM changes only the appropriate 4 bytes in its local copy of the SKU, and it then sends the full 8 bytes down to the lock in a SET_SKU_ID.
+			* 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 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 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
+			912 Z-Wave 0x03 0x36
+			914 Z-Wave 0x04 0x36
+			916 Z-Wave 0x06 0x42
+			</Help>
+    </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="6" 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/kwikset/smartcode.xml b/config/kwikset/smartcode.xml
index f511295c79..3426b3af0c 100644
--- a/config/kwikset/smartcode.xml
+++ b/config/kwikset/smartcode.xml
@@ -1,7 +1,7 @@
 <!-- 
 Kwikset smartcode 
 http://s7d5.scene7.com/is/content/BDHHI/z-wave-configuration
---><Product Revision="14" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="15" 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>
@@ -33,6 +33,7 @@ SmartKey: Re-key the lock in seconds</MetaDataItem>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="12">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2188/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="13">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2237/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="14">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2369/xml</Entry>
+      <Entry author="Russell Troxel - russelltroxel@gmail.com" date="08 Jun 2020" revision="15">Fixed TriggerRefresh Index to properly update lock status via Access Control.</Entry>
     </ChangeLog>
     <MetaDataItem id="0642" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2188/</MetaDataItem>
     <MetaDataItem name="WakeupDescription">Even though the lock is sleeping, all buttons are active and can be used to initiate any lock activity.
@@ -376,7 +377,7 @@ To perform a factory reset, please perform the following:
 		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">
+    <TriggerRefreshValue Genre="user" Index="6" Instance="1">
       <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
   </CommandClass>
diff --git a/config/leviton/dz15s.xml b/config/leviton/dz15s.xml
index 8e03723bce..9a151fbde6 100644
--- a/config/leviton/dz15s.xml
+++ b/config/leviton/dz15s.xml
@@ -1,54 +1,50 @@
 <!--
 Leviton Switch DZ15S 
 http://products.z-wavealliance.org/products/1957
---><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+--><Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001D:0001:3401</MetaDataItem>
     <MetaDataItem name="ProductPic">images/leviton/dz15s.png</MetaDataItem>
     <MetaDataItem id="0001" name="ZWProductPage" type="3401">https://products.z-wavealliance.org/products/1957/</MetaDataItem>
     <MetaDataItem name="ExclusionDescription">When removing a device from a Z-Wave® network best practice is to use the exclusion command found in the Z-Wave® controller.
-• Enter Programming Mode by holding the control button for 7 seconds, the Locator LED will turn amber.
-• Follow directions in the Z-Wave® controller to enter exclusion mode.
-• Tap the control button one time. The Locator LED will quickly flash green.
-The Z-Wave® controller will exclude the Decora Smart device.
+• Enter Programming Mode by holding the top of the paddle for 7 seconds, the Locator LED will blink amber.
+• Follow directions in the Z-Wave® controller to enter exclusion mode
+• Tap the top of the paddle one time. The Locator LED will quickly flash green.
+The Z-Wave® controller will exclude the Decora Smart™ device
 • The Z-Wave® controller will confirm successful exclusion from the network.</MetaDataItem>
     <MetaDataItem id="0001" name="Identifier" type="3401">DZ15S</MetaDataItem>
-    <MetaDataItem name="Description">The wireless Leviton DZPA1 is a Z-Wave enabled plug-in outlet designed for use for most residential applications to control plug-in lamps, holiday lighting, or small appliances. The DZPA1 Plug-In Outlet is fully compatible with Z-Wave Plus certified controllers.  Offers manual control to turn loads on/off.  Manufacturer Parameters allow custom configuration via Z-Wave commands.  Rated for 5A LED and CFL bulbs, 1800W incandescent bulbs, 1800W Fluorescent, 15A Resistive, and 1/2 HP Motor.   These Z-Wave Plus devices support beaming, network wide inclusion, and over the air updates.  </MetaDataItem>
-    <MetaDataItem name="InclusionDescription">Leviton Decora SmartTM Z-Wave® devices support two methods of inclusion.
-When using a Z-Wave PlusTM certified controller choose Network Wide Inclusion.
+    <MetaDataItem name="Description">The wireless Leviton DZ15S is a Z-Wave enabled switch designed for use for most residential lighting applications to control LED, CFL, and incandescent bulbs. The DZ15S Switch is fully compatible with Z-Wave Plus certified controllers.  Manufacturer Parameters allow custom configuration via Z-Wave commands. Offers manual control to turn lights on/off.  Facilitates single pole or three-way multi-location applications.  Rated for 600W LED and CFL bulbs, 1800W incandescent bulbs, 15A Fluorescent (at 120 VAC) and 8A (at 277 VAC), 15A Resistive, and 1/2 HP Motor.  Requires neutral connection.  These Z-Wave Plus devices support beaming, network wide inclusion, and over the air updates.  White and Light Almond color faces included, Decora wallplate sold separately.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Leviton Decora Smart™ Z-Wave® devices support two methods of inclusion. When using a Z-Wave Plus® certified controller choose Network Wide Inclusion.
 Network Wide Inclusion:
-Network Wide Inclusion allows your device to be added to the network using devices already in the network to assist with communication. Work your way from the closest devices to the controller outward.
-• Enter Programming Mode by holding the control button for 7 seconds, the Locator LED will blink amber.
-• Tap the control button one time.
+Network Wide Inclusion allows your device to be included into the network using devices already in the network to assist with communication. Work your way from the closest devices to the controller outward.
+• Enter Programming Mode by holding the top of the paddle for 7 seconds, the Locator LED will blink amber.
+• Tap the top of the paddle one time.
 The Locator LED will quickly flash green.
-• The Decora SmartTM Z-Wave® device is ready to learn into the Z-Wave® network.
-• Follow directions in the Z-Wave® controller to complete the adding process.
+• The Decora Smart™ Z-Wave® device is ready to learn into the Z-Wave® network.
+• Follow directions in the Z-Wave controller to complete the adding process.
 • Upon successful addition to network the LED will turn off and then blink green 3 times.
 • If the adding process is not successful the LED will flash red 3 times.
 Traditional Inclusion:
 For older controllers Traditional Inclusion is supported. Depending on the age of the controller the controller will need to be 3 to 35 feet from the device when including.
-• Enter Programming Mode by holding the control button for 7 seconds, the Locator LED will blink amber.
+• Enter Programming Mode by holding the top of the paddle for 7 seconds, the Locator LED will blink amber.
 • The Decora SmartTM Z-Wave® device is ready to add to the Z-Wave® network.
 • Follow directions in the Z-Wave® controller to enter learn mode.
-• Tap the control button one time. The Locator LED will quickly flash green.
-The Z-Wave® controller will begin to pair with the Decora Smart device.
+• Tap the top of the paddle one time. The Locator LED will quickly flash green. The Z-Wave® controller will begin to pair with the Decora Smart™ device.
 • Upon successful addition to the network the LED will turn off and then blink green 3 times.
-• If the adding process is not successful the LED will flash red 3 times.</MetaDataItem>
-    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1959/DI-000-DZPA1-02B-X4.pdf</MetaDataItem>
-    <MetaDataItem name="ResetDescription">When removing a device from a network it is best practice to use the Exclusion process. In situations where a device needs to be returned to factory default follow the following steps. A reset should only be used when a controller is inoperable or missing:
-• Holding the control button for a total of 14 seconds.
-- After the first 7 seconds the LED turns amber.
-- The Locator LED will quickly flash red/amber after 14 seconds.
-• Release the control button and the device will reset.</MetaDataItem>
-    <MetaDataItem name="Name">Plug-In Outlet</MetaDataItem>
+• If the adding process is not successful the LED will flash red 3 times.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1957/DI-000-DZ15S-02A-X4.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">When removing a device from a network it is best practice to use the Exclusion process. In situations where a device needs to be returned to factory default follow the following steps. A reset should only be used when a controller is inoperable or missing.
+• Hold the top of the paddle for a total of 14 seconds.
+• After the first 7 seconds the LED turns amber.
+• The Locator LED will quickly flash red/amber after 14 seconds.
+• Release the top of the paddle and the device will reset.</MetaDataItem>
+    <MetaDataItem name="Name">Switch</MetaDataItem>
     <MetaDataItem id="0001" name="FrequencyName" type="3401">U.S. / Canada / Mexico</MetaDataItem>
     <ChangeLog>
-      <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1957/xml</Entry>
-      <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1959/xml</Entry>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1957/xml</Entry>
+      <Entry author="Jim Kaiser - j_j_k_4@yahoo.com" date="24 June 2020" revision="5">Reverts to Revision 3 (before the changes making this almost the DZPA1) - https://products.z-wavealliance.org/products/1957/xml</Entry>
     </ChangeLog>
-    <MetaDataItem id="0001" name="ZWProductPage" type="3601">https://products.z-wavealliance.org/products/1959/</MetaDataItem>
-    <MetaDataItem id="0001" name="Identifier" type="3601">DZPA1</MetaDataItem>
-    <MetaDataItem id="0001" name="FrequencyName" type="3601">U.S. / Canada / Mexico</MetaDataItem>
   </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
@@ -65,9 +61,4 @@ The Z-Wave® controller will begin to pair with the Decora Smart device.
       <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/dzpa1.xml b/config/leviton/dzpa1.xml
new file mode 100644
index 0000000000..99298dd83d
--- /dev/null
+++ b/config/leviton/dzpa1.xml
@@ -0,0 +1,67 @@
+<!--
+Leviton Plug-In Outlet DZPA1 
+http://products.z-wavealliance.org/products/1959
+--><Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001d:0001:3601</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/leviton/dzpa1.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="3601">https://products.z-wavealliance.org/products/1959/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">When removing a device from a Z-Wave® network best practice is to use the exclusion command found in the Z-Wave® controller.
+• Enter Programming Mode by holding the control button for 7 seconds, the Locator LED will turn amber.
+• Follow directions in the Z-Wave® controller to enter exclusion mode.
+• Tap the control button one time. The Locator LED will quickly flash green.
+The Z-Wave® controller will exclude the Decora Smart device.
+• The Z-Wave® controller will confirm successful exclusion from the network.</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="3601">DZPA1</MetaDataItem>
+    <MetaDataItem name="Description">The wireless Leviton DZPA1 is a Z-Wave enabled plug-in outlet designed for use for most residential applications to control plug-in lamps, holiday lighting, or small appliances. The DZPA1 Plug-In Outlet is fully compatible with Z-Wave Plus certified controllers.  Offers manual control to turn loads on/off.  Manufacturer Parameters allow custom configuration via Z-Wave commands.  Rated for 5A LED and CFL bulbs, 1800W incandescent bulbs, 1800W Fluorescent, 15A Resistive, and 1/2 HP Motor.   These Z-Wave Plus devices support beaming, network wide inclusion, and over the air updates.  </MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Leviton Decora SmartTM Z-Wave® devices support two methods of inclusion.
+When using a Z-Wave PlusTM certified controller choose Network Wide Inclusion.
+Network Wide Inclusion:
+Network Wide Inclusion allows your device to be added to the network using devices already in the network to assist with communication. Work your way from the closest devices to the controller outward.
+• Enter Programming Mode by holding the control button for 7 seconds, the Locator LED will blink amber.
+• Tap the control button one time.
+The Locator LED will quickly flash green.
+• The Decora SmartTM Z-Wave® device is ready to learn into the Z-Wave® network.
+• Follow directions in the Z-Wave® controller to complete the adding process.
+• Upon successful addition to network the LED will turn off and then blink green 3 times.
+• If the adding process is not successful the LED will flash red 3 times.
+Traditional Inclusion:
+For older controllers Traditional Inclusion is supported. Depending on the age of the controller the controller will need to be 3 to 35 feet from the device when including.
+• Enter Programming Mode by holding the control button for 7 seconds, the Locator LED will blink amber.
+• The Decora SmartTM Z-Wave® device is ready to add to the Z-Wave® network.
+• Follow directions in the Z-Wave® controller to enter learn mode.
+• Tap the control button one time. The Locator LED will quickly flash green.
+The Z-Wave® controller will begin to pair with the Decora Smart device.
+• Upon successful addition to the network the LED will turn off and then blink green 3 times.
+• If the adding process is not successful the LED will flash red 3 times.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/1959/DI-000-DZPA1-02B-X4.pdf</MetaDataItem>
+    <MetaDataItem name="ResetDescription">When removing a device from a network it is best practice to use the Exclusion process. In situations where a device needs to be returned to factory default follow the following steps. A reset should only be used when a controller is inoperable or missing:
+• Holding the control button for a total of 14 seconds.
+- After the first 7 seconds the LED turns amber.
+- The Locator LED will quickly flash red/amber after 14 seconds.
+• Release the control button and the device will reset.</MetaDataItem>
+    <MetaDataItem name="Name">Plug-In Outlet</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="3401">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jim Kaiser j_j_k_4@yahoo.com" date="22 June 2020" revision="1">Fixed incomplete clone of DZ15S to DZPA1 - https://products.z-wavealliance.org/products/1959/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0001" name="ZWProductPage" type="3601">https://products.z-wavealliance.org/products/1959/</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="3601">DZPA1</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="3601">U.S. / Canada / Mexico</MetaDataItem>
+  </MetaData>
+  <!-- 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>
+</Product>
diff --git a/config/leviton/vrpa1.xml b/config/leviton/vrpa1.xml
new file mode 100644
index 0000000000..eb49a6427b
--- /dev/null
+++ b/config/leviton/vrpa1.xml
@@ -0,0 +1,41 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001D:0334:1805</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/leviton/vrpa1.png</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">When removing a device from a Z-Wave® network best practice is to use the exclusion command found in the Z-Wave® controller.
+• Enter Programming Mode by holding the control button for 7 seconds, the Locator LED will turn amber.
+• Follow directions in the Z-Wave® controller to enter exclusion mode.
+• Tap the control button one time. The Locator LED will quickly flash green.
+The Z-Wave® controller will exclude the Decora Smart device.
+• The Z-Wave® controller will confirm successful exclusion from the network.</MetaDataItem>
+    <MetaDataItem id="0334" name="Identifier" type="1805">VRPA1-15A</MetaDataItem>
+    <MetaDataItem name="Description"> The Vizia RF + Scene Capable Plug-in Appliance Module is ideal for any residential setting where remote ON/OFF switching of appliances, motor loads up to 1/2 HP, or freestanding lights, including Incandescent, Magnetic Low Voltage, Fluorescent and Compact Fluorescent loads is needed. Typical applications include switching of fluorescent lamps, portable fans, kitchen appliances, indoor fountains and more. The Vizia RF + Scene Capable Plug-in Appliance Module also allows users to incorporate small appliances into scene and zone home control applications</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Plug in the unit
+    2. Put your controller in inclusion mode
+    3. Press the button on the front of the plug-in module
+    </MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">1. Plug in the unit
+    1. Put your controller in exclusion mode
+    2. Press the button on the front of the plug-in module
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription"></MetaDataItem>
+    <MetaDataItem name="Name">Plug-In Outlet</MetaDataItem>
+    <MetaDataItem id="0334" name="FrequencyName" type="1805">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jeremy M. Johnson" date="21 June 2020" revision="1">Initial update based on dz15s, Leviton documentation, and CD-Jackson's Z-Wave Database</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0334" name="ZWProductPage" type="1805">https://products.z-wavealliance.org/products/1959/</MetaDataItem>
+    <MetaDataItem id="0334" name="Identifier" type="1805">DZPA1</MetaDataItem>
+    <MetaDataItem id="0334" name="FrequencyName" type="1805">U.S. / Canada / Mexico</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <!-- None -->
+  </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/vrpd3.xml b/config/leviton/vrpd3.xml
new file mode 100644
index 0000000000..102c4743bf
--- /dev/null
+++ b/config/leviton/vrpd3.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/001D:0334:1706</MetaDataItem>
+  <MetaDataItem name="ProductPic">images/leviton/vrpd3.png</MetaDataItem>
+  <MetaDataItem id="0334" name="Identifier" type="1706">VRPD3-1LW</MetaDataItem>
+  <MetaDataItem name="Description">The Vizia RF + Scene Capable Plug-in Lamp Dimming Module (VRPD3-1LW) is ideal for any residential setting where remote dimming of Incandescent loads up to 300 Watts CFL/LED loads up to 100W is needed. Typical applications include dimming of table and floor lamps. The Vizia RF + Scene Capable Plug-in Lamp Module also allows users to remotely control free-standing lamps individually or as part of a scene or zone grouping of lights through scene commands.</MetaDataItem>
+  <MetaDataItem name="InclusionDescription">1. Plug in Leviton VRPD3
+2. Place controller in inclusion mode
+3. Press button on front of VRPD3
+
+If successful, the VRPD3 LED will turn orange during inclusion and then green. The LED will flash red if it fails.
+    </MetaDataItem>
+  <MetaDataItem name="ExclusionDescription">1. Place controller in exclusion mode
+2. Press button on front of VRPD3
+
+If successful, the VRPD3 LED will turn orange during exclusion and then green. The LED will flash red if it fails.</MetaDataItem>
+  <MetaDataItem name="ResetDescription">1. Hold the control button for 5 seconds until the LED begins to flash amber
+2. Continue holding the control button until the LED turns red
+3. The plug-in dimmer module is reset</MetaDataItem>
+  <MetaDataItem name="Name">Scene Capable Plug-in Dimmer</MetaDataItem>
+  <MetaDataItem id="0334" name="FrequencyName" type="1706">U.S. / Canada / Mexico</MetaDataItem>
+  <ChangeLog>
+   <Entry author="Josh Palmer" date="27 July 2020" revision="1">Initial update based on vrpa1, Leviton documentation, and CD-Jackson's Z-Wave Database</Entry>
+  </ChangeLog>
+  <MetaDataItem id="0334" name="ZWProductPage" type="1706">https://products.z-wavealliance.org/products/1958</MetaDataItem>
+ </MetaData>
+ <!-- Configuration Parameters -->
+ <CommandClass id="112">
+  <!-- None -->
+ </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/zw15r.xml b/config/leviton/zw15r.xml
new file mode 100644
index 0000000000..9eec9af58c
--- /dev/null
+++ b/config/leviton/zw15r.xml
@@ -0,0 +1,41 @@
+<!--
+ZW15R Decora Smart Tamper-Resistant Outlet with Z-Wave Technology, https://products.z-wavealliance.org/products/3829?selectedFrequencyId=2
+-->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001D:0002:0037</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/leviton/zw15r.png</MetaDataItem>
+        <MetaDataItem name="ZWProductPage" id="0002" type="0037">https://products.z-wavealliance.org/products/3829/</MetaDataItem>
+        <MetaDataItem name="ResetDescription">When removing an outlet from a network it is best practice to use the exclusion process. In situations where a device needs to be returned to factory default follow the following steps. A reset should only be used when a controller is inoperable or missing. 1. Hold the button for 7 seconds, the status light will turn amber. Continue holding the button for another 7 seconds (total of 14 seconds). The status light will quickly flash red/amber. 2. Release the button and the device will reset.</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">For older controllers Classic Inclusion is supported. Depending on the age of the controller the controller will need to be 3 to 35 feet from the device when including. 1. To enter programming mode, hold the button for 7 seconds. The status light will turn amber, release and the status light will blink. 2. Follow the Z-Wave controller instructions to enter exclusion mode. 3. Tap the top of the button one time. The status light will quickly flash green. 4. The Z-Wave controller will confirm successful exclusion from the network.</MetaDataItem>
+        <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3829/Draft%20ZW4SF%203-25-20.pdf</MetaDataItem>
+        <MetaDataItem name="Identifier" id="0002" type="0037">ZW15R</MetaDataItem>
+        <MetaDataItem name="Name">Fan Speed Controller</MetaDataItem>
+        <MetaDataItem name="Description">4 Speed Fan controller 120VAC. Compatible with pull chain ceiling fans without electronic control. White paddle and vanishing LEDs. Color change kits are available to change to Light Almond, Ivory, Black, Brown, Gray. </MetaDataItem>
+        <MetaDataItem name="FrequencyName" id="0002" type="0037">U.S. / Canada / Mexico</MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">When removing an outlet from a Z-Wave network, best practice is to use the exclusion command found in the Z-Wave controller. 1. To enter programming mode, hold the button for 7 seconds. The status light will turn amber, release and the status light will blink. 2. Follow Z-Wave controller directions to enter exclusion mode 3. Tap the button 1 time. The status light will quickly flash green. 4. The Z-Wave controller will remove the device from the network</MetaDataItem>
+        <ChangeLog>
+            <Entry author="Bill Li" date="28 Nov 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3829/xml</Entry>
+        </ChangeLog>
+    </MetaData>
+    <!-- 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="LED 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/zw4sf.xml b/config/leviton/zw4sf.xml
new file mode 100644
index 0000000000..ea3c21ccd9
--- /dev/null
+++ b/config/leviton/zw4sf.xml
@@ -0,0 +1,62 @@
+<!--
+Leviton Decora Smart 4 Speed Fan Controller, https://products.z-wavealliance.org/products/3832/
+-->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/001D:0002:0038</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/leviton/zw4sf.png</MetaDataItem>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0038">https://products.z-wavealliance.org/products/3832/</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Factory Default When removing a fan speed controller from a network it is best practice to use the exclusion process. In situations where a device needs to be returned to factory default follow the following steps. A reset should only be used when a controller is inoperable or missing. 1. Hold the top of the paddle for 7 seconds, the status light will turn amber. Continue holding the top paddle for another 7 seconds (total of 14 seconds). The status light will quickly flash red/ amber. 2. Release the top of the paddle and the device will reset.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Classic Inclusion To A Z-Wave Network For older controllers Classic Inclusion is supported. Depending on the age of the controller the controller will need to be 3 to 35 feet from the device when including. 1. To enter programming mode, hold the button for 7 seconds. The status light will turn amber, release and the status light will blink. 2. Follow the Z-Wave controller instructions to enter inclusion mode. 3. Tap the top or the paddle of the paddle one time. The status light will quickly flash green. 4. The Z-Wave controller will confirm successful inclusion to the network.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3832/Draft%20ZW4SF%203-25-20.pdf</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0038">ZW4SF</MetaDataItem>
+    <MetaDataItem name="Name">Fan Speed Controller</MetaDataItem>
+    <MetaDataItem name="Description">4 Speed Fan controller 120VAC. Compatible with pull chain ceiling fans without electronic control. White paddle and vanishing LEDs. Color change kits are available to change to Light Almond, Ivory, Black, Brown, Gray. </MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0038">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Exclusion From A Z-Wave Network When removing an fan speed controller from a Z-Wave network, best practice is to use the exclusion command found in the Z-Wave controller. 1. To enter programming mode, hold the button for 7 seconds. The status light will turn amber, release and the status light will blink. 2. Follow Z-Wave controller directions to enter exclusion mode 3. Tap the the top of the paddle 1 time. The status light will quickly flash green. 4. The Z-Wave controller will remove the device from the network.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Brian Laferriere" date="03 Oct 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3832/xml</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0002" name="ZWProductPage" type="0038">https://products.z-wavealliance.org/products/3382/</MetaDataItem>
+    <MetaDataItem id="0002" name="FrequencyName" type="0038">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0038">ZW4SF</MetaDataItem>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="Min Level" max="99" min="0" size="1" type="byte" units="" value="10">
+      <Help>
+				Minimum Fan Speed level allowed
+			</Help>
+    </Value>
+    <Value genre="config" index="4" label="Max Level" max="99" min="0" size="1" type="byte" units="" value="99">
+      <Help>
+				Maximum Fan Speed level allowed
+			</Help>
+    </Value>
+    <Value genre="config" index="5" label="Preset Level" max="99" min="0" size="1" type="byte" units="" value="0">
+      <Help>Preset Level for On</Help>
+    </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>
+  </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/linear/LB60Z-1.xml b/config/linear/LB60Z-1.xml
index dce4ec6a04..ead9c14ae2 100644
--- a/config/linear/LB60Z-1.xml
+++ b/config/linear/LB60Z-1.xml
@@ -1,4 +1,4 @@
-<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="6" 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>
@@ -41,6 +41,7 @@ Note: If Inclusion still fails after the 2nd attempt, you need to first RESET th
       <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>
+      <Entry author="Socalix" date="08 Sep 2020" revision="6">Updated Configuration Parameters from manufacturer's product data</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Configuration Parameters -->
@@ -50,6 +51,16 @@ Note: If Inclusion still fails after the 2nd attempt, you need to first RESET th
       <Item label="Full Brightness" value="0"/>
       <Item label="Last Dim Setting" value="1"/>
     </Value>
+    <Value genre="config" index="9" label="Dim / Bright Step Level" max="99" min="1" size="1" type="byte" units="steps" value="1">
+      <Help>How much the bulb brightness will change. A low value (1) provides gradual dimming and brightening, a high value (99) makes it change rapidly.</Help>
+      <Item label="Low" value="1"/>
+      <Item label="High" value="99"/>
+    </Value>
+    <Value genre="config" index="10" label="Dim / Bright Speed" max="10" min="1" size="1" type="byte" units="steps" value="3">
+      <Help>How fast the bulb brightness will change. When the value is low (1), the step timing is quick. When the value is high (10), the step timing is slow.</Help>
+      <Item label="Fast" value="1"/>
+      <Item label="Slow" value="10"/>
+    </Value>
   </CommandClass>
   <!-- COMMAND_CLASS_ASSOCIATION -->
   <CommandClass id="133">
diff --git a/config/linear/WT00Z5-1.xml b/config/linear/WT00Z5-1.xml
new file mode 100644
index 0000000000..b4670aa2b2
--- /dev/null
+++ b/config/linear/WT00Z5-1.xml
@@ -0,0 +1,56 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Smart 3-Way Switch/Dimmer</MetaDataItem>
+    <MetaDataItem name="Description">The WT00Z5-1 Wall Mount Accessory Dimmer Switch allows remote ON/OFF control and dimming of lights controlled by associated Z-Wave modules, creating virtual 3-way switches. The WT00Z5-1 controls no load directly, so it can be wired anywhere power is available, without the need for a traveler wire.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/014f:3530:5754</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.gocontrol.com/detail.php?productId=1782</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.gocontrol.com/support.php</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/linear/WT00Z5-1.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/1888/10007350B%20.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Refer to your Controller operating instructions to add this switch under the command of the Wireless Controller.
+1. With your Controller in Discovery or Add Mode, tap the switch. The LED will blink slowly when in ADD Mode.
+2. You should see an indication on your Controller that the “device was added” to the network and the LED will stop blinking.
+3. The device will appear in the list of Switches. It should display as a switch.
+If the Controller/Gateway shows the addition failed, repeat Steps 1-3.
+NOTE: If you have trouble adding the WT00Z5-1 to a group it may be that the Home ID and Node ID were not cleared from it after testing. You must first “RESET UNIT” to remove it from the network. Although adding it to a group includes it in the network, removing it from a group does not remove it from the network. If removed from a group, it functions as a repeater (only). “RESET UNIT” removes it completely from the network.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">The WT00Z5-1 can be removed from the network by the Controller/Gateway. Refer to the Controller operating instructions for details.
+1. Set the Controller into Removal Mode and follow its instruction to delete the WT00Z5-1 from the Controller.
+2. Remove the switch by tapping the paddle 2 times. The LED will begin blinking slowly for 10 seconds indicating that it has been removed.
+3. You should see an indication on your Controller that the “device was removed” from the network.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">In the event that your primary Controller is lost or otherwise inoperable, to reset the WT00Z5-1 and clear all network information, follow these steps:
+1. Tap the top of the switch five (5) times.
+2. Press and hold the bottom of the switch for 15 seconds. The LED will increasingly blink faster to indicate that a Reset is taking place.</MetaDataItem>
+    <MetaDataItem id="3530" name="ZWProductPage" type="5754">https://products.z-wavealliance.org/products/1888</MetaDataItem>
+    <MetaDataItem id="3530" name="FrequencyName" type="5754">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3530" name="Identifier" type="5754">WT00Z5-1</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Nathan Spencer - natekspencer@gmail.com" date="06 July 2020" revision="1">Initial entry with data obtained from https://products.z-wavealliance.org/products/1888</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value type="list" index="3" genre="config" label="Night Light" units="" min="0" max="4" value="0" size="1">
+      <Help>
+        By default, the LED on the WT00Z5-1 will turn OFF when the Associated device is turned ON.
+      </Help>
+      <Item label="LED OFF when the load is on" value="0" />
+      <Item label="LED ON when the load is on" value="1" />
+      <Item label="LED is always ON" value="2" />
+      <Item label="LED is always OFF" value="3" />
+      <Item label="LED blinks during RF transmissions" value="4" />
+    </Value>
+    <Value type="list" index="4" genre="config" label="Invert Switch" units="" min="0" max="1" value="0" size="1">
+      <Help>
+        Change the top of the switch to OFF and the bottom of the switch to ON.
+      </Help>
+      <Item label="False" value="0" />
+      <Item label="True" value="1" />
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" max_associations="1" label="Lifeline" />
+      <Group index="2" max_associations="5" label="BASIC On/Off" />
+      <Group index="3" max_associations="5" label="Multilevel Switch" />
+    </Associations>
+  </CommandClass>
+</Product>
\ No newline at end of file
diff --git a/config/logicsoft/ZDB5100.xml b/config/logicsoft/ZDB5100.xml
new file mode 100644
index 0000000000..53276735d1
--- /dev/null
+++ b/config/logicsoft/ZDB5100.xml
@@ -0,0 +1,522 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="5"
+  xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Matrix</MetaDataItem>
+    <MetaDataItem name="Description">MATRIX ZDB5100 is a dimmer wall switch module with four backlit pushbuttons. MATRIX is designed to fit into 1-module FUGA® wall boxes (Danish standard).</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0234:0121:0003</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://logic-group.com/products/matrix-switches/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://logic-group.com/contact/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/logicsoft/ZDB5100.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=Manuals/3399/MATRIX_ZDB5100_User_Manual_1_01-EN.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">MATRIX’add/remove function is initiated by pressing a single time on the smallpushbutton(I) in the middle of the module (under the tangent cover), and the LED’s inpushbutton1 will start blinking.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">MATRIX’add/remove function is initiated by pressing a single time on the smallpushbutton(I) in the middle of the module (under the tangent cover), and the LED’s inpushbutton1 will start blinking.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">MATRIX can be factory reset by holding the smallpushbutton(I) in the middle of the module under the tangent cover, for at least 10 seconds.</MetaDataItem>
+    <MetaDataItem id="0121" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3399</MetaDataItem>
+    <MetaDataItem id="0121" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0121" name="Identifier" type="0003">ZDB5100</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Dennis Staal - staal.dennis@gmail.com" date="10 August 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3399/xml</Entry>
+      <Entry author="Jean-François Auger - nechry@gmail.com" date="15 January 2021" revision="3">Convert param 1 to a bitset</Entry>
+      <Entry author="Jean-François Auger - nechry@gmail.com" date="15 January 2021" revision="4">Remove duplicate entry</Entry>	 
+      <Entry author="Jean-François Auger - nechry@gmail.com" date="18 January 2021" revision="5">Add bitmask on param 1</Entry>	    
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+<Value genre="config" index="1" instance="1" label="Operating pushbutton(s) for dimmer" size="1" type="bitset" bitmask="15" value="1">
+      <Help>This parameter specifies which pushbutton(s) that shall be used to control the built-in dimmer.</Help>
+      <BitSet id="0">
+        <Label>No local operation of the dimmer</Label>
+        <Help>No local operation of the dimmer</Help>
+      </BitSet>
+      <BitSet id="1">
+        <Label>Pushbutton 1</Label>
+        <Help>Pushbutton 1 controls the dimmer</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Pushbutton 2</Label>
+        <Help>Pushbutton 2 controls the dimmer</Help>
+      </BitSet>
+      <BitSet id="4">
+        <Label>Pushbutton 3</Label>
+        <Help>Pushbutton 3 controls the dimmer</Help>
+      </BitSet>
+      <BitSet id="8">
+        <Label>Pushbutton 4</Label>
+        <Help>Pushbutton 4 controls the dimmer</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Duration of dimming" max="255" min="0" type="byte" value="5">
+      <Help>
+      This parameter specifies the duration ofa full regulation of the light from 0% to 100%.
+        0:        Immediately.
+        1-127:    Durationin seconds (Default is 5 seconds).
+        128-255:  Duration in minutes (minus 127) from 1 –128 minutes, where 128 is 1 minute.
+      </Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Duration of on/off" max="255" min="0" type="byte" value="0">
+      <Help>
+      This parameter specifies the duration when turning the light on or off.
+        0:        Immediately. (Default).
+        1-127:    Time in seconds.
+        128-255:  Time in minutes (minus 127) from 1 –128 minutes, where 128 is 1 minute.
+      </Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Dimmer mode" max="1" min="0" size="1" type="list" value="1">
+      <Help>The dimmer can work in three different modes: on/off, leading edge or trailing edge.</Help>
+      <Item label="No dimming, only on/off (0%/100%)" value="0"/>
+      <Item label="Trailing edge dimming" value="1"/>
+      <Item label="Leading edge dimming" value="2"/>
+    </Value>
+    <Value genre="config" index="5" label="Dimmer minimum level" max="99" min="0" type="byte" units="%" value="0">
+      <Help>This parameter specifies the actual level of the dimmer output when set to 0%.</Help>
+    </Value>
+    <Value genre="config" index="6" label="Dimmer maximum level" max="99" min="1" type="byte" units="%" value="99">
+      <Help>This parameter specifies the actual level of the dimmer output when set to 99%.</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Central Scene notifications" max="1" min="0" size="1" type="list" value="1">
+      <Help>This parameter can be used for disabling Central Scene notifications.</Help>
+      <Item label="Notifications are disabled" value="0"/>
+      <Item label="Notifications are enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Double-activation functionality" max="1" min="0" size="1" type="list" value="1">
+      <Help>This parameter specifies the reaction when double-activating the pushbuttons.</Help>
+      <Item label="Double-activation disabled" value="0"/>
+      <Item label="Double-activation sets light to 100%" value="1"/>
+    </Value>
+    <!-- Index 9 is not in use -->
+    <Value genre="config" index="10" instance="1" label="Enhanced LED control" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter can be used for enabling the enhanced LED control. See document about MATRIX enhanced LED control.</Help>
+      <Item label="Enhanced LED control is disabled" value="0"/>
+      <Item label="Enhanced LED control is enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Pushbutton debounce timer" max="255" min="1" size="1" type="byte" value="5">
+      <Help>
+			Pushbutton input debounce time in 0.01 seconds resolution.
+			  1-255:  1–2.55 seconds. Default is 5, which equals to a debounce-filter on 50 milliseconds (0.05 seconds).
+			</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Pushbutton press threshold time" max="255" min="1" size="1" type="byte" value="20">
+      <Help>
+			Specifies the time that apushbuttonmust be activated before it is detected as pressed. Resolution is in 0.01 seconds.
+			  1-255:  1–2.55 seconds. Default is 20, which equals to 200 milliseconds (0.2 seconds).
+			</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Pushbutton held threshold time" max="255" min="1" size="1" type="byte" value="50">
+      <Help>
+			Specifies the time that a pushbutton must have been activated before it is accepted as “held-down”. Resolution is 0.01 seconds.
+			  1-255:  1–2.55 seconds. Default is 50, which equals to 500 milliseconds (0,5 seconds).
+			</Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Global brightness control" size="4" type="int" value="4294967040">
+      <Help>        
+        Byte 1: Red brightness
+            0-255 Brightness level for the red colour in the 4 indicator groups (Default is 255).
+        Byte 2: Green brightness
+            0–255 Brightness level for the green colour in the 4 indicator groups (Default is 255).
+        Byte 3: Blue brightness
+            0-255 Brightness level for the blue colour in the 4 indicator groups (Default is 255).
+        Byte 4: Not used–must be set to 0.
+        Default: 4294967040
+			</Help>
+    </Value>
+    <Value genre="config" index="15" label="Associations groups, transmission when included secure" size="2" type="bitset" bitmask="8191" value="8191">
+      <Help>This parameter specifies if commands are transmitted as a secure message for each of the association groups.
+        Bitmask:
+        0: All messages in all groups are sent as insecure.
+        1: Messages in association group 2 aresent as secure.
+        2: Messages in association group 3 aresent as secure.
+        4: Messages in association group 4 aresent as secure.
+        8: Messages in association group 5 aresent as secure.
+        16: Messages in association group 6 aresent as secure.
+        32: Messages in association group 7 aresent as secure.
+        64: Messages in association group 8 aresent as secure.
+        128: Messages in association group 9 aresent as secure.
+        256: Messages in association group 10 aresent as secure.
+        512: Messages in association group 11 aresent as secure.
+        1024: Messages in association group 12 aresent as secure.
+        2048: Messages in association group 13 aresent as secure.
+        4096: Messages in association group 14 aresent as secure.
+        8191: Messages in allassociation groups are sent as secure. (Default)
+      </Help>
+      <BitSet id="1">
+        <Label>Bit#0. All commands are sent unencrypted</Label>
+        <Help>All messages in all groups are sent as insecure.</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Bit#1. Send Basic Report to association group 2 encrypted.</Label>
+        <Help>Messages in association group 2 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Bit#2. Send Binary Switch Set to association group 3 encrypted.</Label>
+        <Help>Messages in association group 3 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="4">
+        <Label>Bit#4. Send Multi-LevelSwitch to association group 4 encrypted.</Label>
+        <Help>Messages in association group 4 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="5">
+        <Label>Bit#8. Send Basic Report to association group 5 encrypted.</Label>
+        <Help>Messages in association group 5 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="6">
+        <Label>Bit#16. Send Binary Switch Set to association group 6 encrypted.</Label>
+        <Help>Messages in association group 6 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="7">
+        <Label>Bit#32. Send Multi-LevelSwitch to association group 7 encrypted.</Label>
+        <Help>Messages in association group 7 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="8">
+        <Label>Bit#64. Send Basic Report to association group 8 encrypted.</Label>
+        <Help>Messages in association group 8 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="9">
+        <Label>Bit#128. Send Binary Switch Set to association group 9 encrypted.</Label>
+        <Help>Messages in association group 9 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="10">
+        <Label>Bit#256. Send Multi-LevelSwitch to association group 10 encrypted.</Label>
+        <Help>Messages in association group 10 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="11">
+        <Label>Bit#512. Send Basic Report to association group 11 encrypted.</Label>
+        <Help>Messages in association group 11 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="12">
+        <Label>Bit#1024. Send Binary Switch Set to association group 12 encrypted.</Label>
+        <Help>Messages in association group 12 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="13">
+        <Label>Bit#2048. Send Multi-LevelSwitch to association group 10 encrypted.</Label>
+        <Help>Messages in association group 13 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="14">
+        <Label>Bit#4096. Send Basic Report to association group 14 encrypted.</Label>
+        <Help>Messages in association group 14 are sent as secure.</Help>
+      </BitSet>
+      <BitSet id="15">
+        <Label>Bit#8191. All commands are sent encrypted (default).</Label>
+        <Help>Messages in all association groups are sent as secure.</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="16" instance="1" label="Pushbutton 1 functionality" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter specifies the functionality of pushbutton 1.</Help>
+      <Item label="Standard toggle-function, the state is switched between on and off, dimming up and down" value="0"/>
+      <Item label="Automatic turn off after the time has expired (staircase lighting function), the time is specified in the next configuration parameter" value="1"/>
+      <Item label="Automatic turn on after the time has expired, the time is specified in the next configuration parameter" value="2"/>
+      <Item label="Always turn offor dim down. Using this parameter, the pushbutton can only send ‘off’ or ‘dim down’ commands. Use this in pair with another pushbutton with value 4" value="3"/>
+      <Item label="Always turn on or dim up. Using this parameter, the pushbutton can only send ‘on’ or ‘dim up’ commands. Use this in pair with another pushbutton with value 3" value="4"/>
+    </Value>
+    <Value genre="config" index="17" instance="1" label="Timer value for pushbutton 1" max="43200" min="0" size="2" type="short" value="300">
+      <Help>0–43200: Specifies the time in seconds. Default is 300 = 5 minutes.</Help>
+    </Value>
+    <Value genre="config" index="18" instance="1" label="Multi-Level Switch Set values for pushbutton 1" size="4" type="int" value="33488896">
+      <Help>        
+        Byte 1: Enable/ Disable
+            0 Disabled – A single activation of the pushbutton will not send commands to devices in association group 4.
+            1 Enabled – A single activation will send commands to devices in association group 4. Devices will receive commands with the values set in Byte 2 and 3 (Default).
+        Byte 2: Upper switch value
+            0–99, 255 When single pressing the pushbutton for ON, a Multilevel Switch Set with this value will be send to devices in association group 4 (Default = 255).
+        Byte 3: Lower switch value
+            0-99 When single pressing the pushbutton for OFF, a Multilevel Switch Set with this value will be send to devices in association group 4 (Default = 0).
+        Byte 4: Not used–must be set to 0.
+        Default: 33488896
+			</Help>
+    </Value>
+    <Value genre="config" index="19" instance="1" label="Binary Switch Setsupport for pushbutton 1" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter specifies how received Binary Switch Setcommands are handled.</Help>
+      <Item label="Binary Switch Set - only controls the pushbutton indicator LEDs, ON/OFF" value="0"/>
+      <Item label="Binary Switch Set - controls the internal switch status and the pushbutton indicator LEDs" value="1"/>
+      <Item label="Binary Switch Set - is handled as if the user had activated the pushbutton, including transmission of commands via the association groups" value="2"/>
+    </Value>
+    <Value genre="config" index="20" instance="1" label="Pushbutton 1 LED indication" max="1" min="0" size="1" type="list" value="7">
+      <Help>This parameter specifies how the LED indication is controlled..</Help>
+      <Item label="Internal LED control is disabled, only external commands control the indication" value="0"/>
+      <Item label="The LED indication follows the switch status" value="1"/>
+      <Item label="The LED indication follows the switch status – with inverted functionality" value="2"/>
+      <Item label="Same as 1" value="3"/>
+      <Item label="Same as 2" value="4"/>
+      <Item label="The LED indication follows the status of the internal dimmer, ON or OFF" value="5"/>
+      <Item label="The LED indication follows the status of the internal dimmer with inverted functionality, ON or OFF" value="6"/>
+      <Item label="The LED indicator is ON for 5 seconds when the pushbutton is activated" value="7"/>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Colour commands for pushbutton 1 LED indication" max="1" min="0" size="1" type="list" value="1">
+      <Help>This parameter specifies how received Binary Switch Set commands are handled.</Help>
+      <Item label="Direct control - the LED indication shows the received colour immediately, until the pushbutton is activated" value="0"/>
+      <Item label="Colour command sets the colour for OFF indication" value="1"/>
+      <Item label="Colour command sets the colour for ON indication" value="2"/>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="ON indication RGB-saturation for pushbutton 1" size="4" type="int" value="32512">
+      <Help>        
+        Byte 1: Colour saturation, red
+            0-255 Specifies the saturation for the red LEDs (Default is 0).
+        Byte 2: Colour saturation, green
+            0–255 Specifies the saturation for the green LEDs (Default is 0).
+        Byte 3: Colour saturation, blue
+            0-255 Specifies the saturation for the blue LEDs (Default is 127).
+        Byte 4: LED control
+            0-255 LED indicator control - see the application note about this parameter (Default is 0).
+        Default: 32512
+			</Help>
+    </Value>
+    <Value genre="config" index="23" instance="1" label="OFF indication RGB-saturation for pushbutton 1" size="4" type="int" value="50065152">
+      <Help>        
+        Byte 1: Colour saturation, red
+            0-255 Specifies the saturation for the red LEDs (Default is 47).
+        Byte 2: Colour saturation, green
+            0–255 Specifies the saturation for the green LEDs (Default is 47).
+        Byte 3: Colour saturation, blue
+            0-255 Specifies the saturation for the blue LEDs (Default is 47).
+        Byte 4: LED control
+            0-255 LED indicator control - see the application note about this parameter (Default is 0).
+        Default: 50065152
+			</Help>
+    </Value>
+    <Value genre="config" index="24" instance="1" label="Pushbutton 2 functionality" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter specifies the functionality of pushbutton 2.</Help>
+      <Item label="Standard toggle-function, the state is switched between on and off, dimming up and down" value="0"/>
+      <Item label="Automatic turn off after the time has expired (staircase lighting function), the time is specified in the next configuration parameter" value="1"/>
+      <Item label="Automatic turn on after the time has expired, the time is specified in the next configuration parameter" value="2"/>
+      <Item label="Always turn off or dim down. Using this parameter, the pushbutton can only send ‘off’ or ‘dim down’ commands" value="3"/>
+      <Item label="Always turn on or dim up. Using this parameter, the pushbutton can only send ‘on’ or ‘dim up’ commands" value="4"/>
+    </Value>
+    <Value genre="config" index="25" instance="1" label="Timer value for pushbutton 2" max="43200" min="0" size="2" type="short" value="300">
+      <Help>0–43200: Specifies the time in seconds. Default is 300 = 5 minutes.</Help>
+    </Value>
+    <Value genre="config" index="26" instance="1" label="Multi-Level Switch Set values for pushbutton 2" size="4" type="int" value="33488896">
+      <Help>        
+        Byte 1: Enable/ Disable
+            0 Disabled – A single activation of the pushbutton will not send commands to devices in association group 4.
+            1 Enabled – A single activation will send commands to devices in association group 4. Devices will receive commands with the values set in Byte 2 and 3 (Default).
+        Byte 2: Upper switch value
+            0–99, 255 When single pressing the pushbutton for ON, a Multilevel Switch Set with this value will be send to devices in association group 4 (Default = 255).
+        Byte 3: Lower switch value
+            0-99 When single pressing the pushbutton for OFF, a Multilevel Switch Set with this value will be send to devices in association group 4 (Default = 0).
+        Byte 4: Not used–must be set to 0.
+        Default: 33488896
+			</Help>
+    </Value>
+    <Value genre="config" index="27" instance="1" label="Binary Switch Setsupport for pushbutton 2" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter specifies how received Binary Switch Set commands are handled.</Help>
+      <Item label="Binary Switch Set - only controls the pushbutton indicator LEDs, ON/OFF" value="0"/>
+      <Item label="Binary Switch Set - controls the internal switch status and the pushbutton indicator LEDs" value="1"/>
+      <Item label="Binary Switch Set - is handled as if the user had activated the pushbutton, including transmission of commands via the association groups" value="2"/>
+    </Value>
+    <Value genre="config" index="28" instance="1" label="Pushbutton 2 LED indication" max="1" min="0" size="1" type="list" value="7">
+      <Help>This parameter specifies how the LED indication is controlled..</Help>
+      <Item label="Internal LED control is disabled, only external commands control the indication" value="0"/>
+      <Item label="The LED indication follows the switch status" value="1"/>
+      <Item label="The LED indication follows the switch status – with inverted functionality" value="2"/>
+      <Item label="Same as 1" value="3"/>
+      <Item label="Same as 2" value="4"/>
+      <Item label="The LED indication follows the status of the internal dimmer, ON or OFF" value="5"/>
+      <Item label="The LED indication follows the status of the internal dimmer with inverted functionality, ON or OFF" value="6"/>
+      <Item label="The LED indicator is ON for 5 seconds when the pushbutton is activated" value="7"/>
+    </Value>
+    <Value genre="config" index="29" instance="1" label="Colour commands for pushbutton 2 LED indication" max="1" min="0" size="1" type="list" value="1">
+      <Help>This parameter specifies how received Binary Switch Setcommands are handled.</Help>
+      <Item label="Direct control - the LED indication shows the received colour immediately, until the pushbutton is activated" value="0"/>
+      <Item label="Colour command sets the colour for OFF indication" value="1"/>
+      <Item label="Colour command sets the colour for ON indication" value="2"/>
+    </Value>
+    <Value genre="config" index="30" instance="1" label="ON indication RGB-saturation for pushbutton 2" size="4" type="int" value="32512">
+      <Help>        
+        Byte 1: Colour saturation, red
+            0-255 Specifies the saturation for the red LEDs (Default is 0).
+        Byte 2: Colour saturation, green
+            0–255 Specifies the saturation for the green LEDs (Default is 0).
+        Byte 3: Colour saturation, blue
+            0-255 Specifies the saturation for the blue LEDs (Default is 127).
+        Byte 4: LED control
+            0-255 LED indicator control - see the application note about this parameter (Default is 0).
+        Default: 32512
+			</Help>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="OFF indication RGB-saturation for pushbutton 2" size="4" type="int" value="50065152">
+      <Help>        
+        Byte 1: Colour saturation, red
+            0-255 Specifies the saturation for the red LEDs (Default is 47).
+        Byte 2: Colour saturation, green
+            0–255 Specifies the saturation for the green LEDs (Default is 47).
+        Byte 3: Colour saturation, blue
+            0-255 Specifies the saturation for the blue LEDs (Default is 47).
+        Byte 4: LED control
+            0-255 LED indicator control - see the application note about this parameter (Default is 0).
+        Default: 50065152
+			</Help>
+    </Value>
+    <Value genre="config" index="32" instance="1" label="Pushbutton 3 functionality" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter specifies the functionality of pushbutton 3.</Help>
+      <Item label="Standard toggle-function, the state is switched between on and off, dimming up and down" value="0"/>
+      <Item label="Automatic turn off after the time has expired (staircase lighting function), the time is specified in the next configuration parameter" value="1"/>
+      <Item label="Automatic turn on after the time has expired, the time is specified in the next configuration parameter" value="2"/>
+      <Item label="Always turn off or dim down. Using this parameter, the pushbutton can only send ‘off’ or ‘dim down’ commands" value="3"/>
+      <Item label="Always turn on or dim up. Using this parameter, the pushbutton can only send ‘on’ or ‘dim up’ commands" value="4"/>
+    </Value>
+    <Value genre="config" index="33" instance="1" label="Timer value for pushbutton 3" max="43200" min="0" size="2" type="short" value="300">
+      <Help>0–43200: Specifies the time in seconds. Default is 300 = 5 minutes.</Help>
+    </Value>
+    <Value genre="config" index="34" instance="1" label="Multi-Level Switch Set values for pushbutton 3" size="4" type="int" value="33488896">
+      <Help>        
+        Byte 1: Enable/ Disable
+            0 Disabled – A single activation of the pushbutton will not send commands to devices in association group 4.
+            1 Enabled – A single activation will send commands to devices in association group 4. Devices will receive commands with the values set in Byte 2 and 3 (Default).
+        Byte 2: Upper switch value
+            0–99, 255 When single pressing the pushbutton for ON, a Multilevel Switch Set with this value will be send to devices in association group 4 (Default = 255).
+        Byte 3: Lower switch value
+            0-99 When single pressing the pushbutton for OFF, a Multilevel Switch Set with this value will be send to devices in association group 4 (Default = 0).
+        Byte 4: Not used–must be set to 0.
+        Default: 33488896
+			</Help>
+    </Value>
+    <Value genre="config" index="35" instance="1" label="Binary Switch Setsupport for pushbutton 3" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter specifies how received Binary Switch Set commands are handled.</Help>
+      <Item label="Binary Switch Set - only controls the pushbutton indicator LEDs, ON/OFF" value="0"/>
+      <Item label="Binary Switch Set - controls the internal switch status and the pushbutton indicator LEDs" value="1"/>
+      <Item label="Binary Switch Set - is handled as if the user had activated the pushbutton, including transmission of commands via the association groups" value="2"/>
+    </Value>
+    <Value genre="config" index="36" instance="1" label="Pushbutton 3 LED indication" max="1" min="0" size="1" type="list" value="7">
+      <Help>This parameter specifies how the LED indication is controlled..</Help>
+      <Item label="Internal LED control is disabled, only external commands control the indication" value="0"/>
+      <Item label="The LED indication follows the switch status" value="1"/>
+      <Item label="The LED indication follows the switch status – with inverted functionality" value="2"/>
+      <Item label="Same as 1" value="3"/>
+      <Item label="Same as 2" value="4"/>
+      <Item label="The LED indication follows the status of the internal dimmer, ON or OFF" value="5"/>
+      <Item label="The LED indication follows the status of the internal dimmer with inverted functionality, ON or OFF" value="6"/>
+      <Item label="The LED indicator is ON for 5 seconds when the pushbutton is activated" value="7"/>
+    </Value>
+    <Value genre="config" index="37" instance="1" label="Colour commands for pushbutton 3 LED indication" max="1" min="0" size="1" type="list" value="1">
+      <Help>This parameter specifies how received Binary Switch Setcommands are handled.</Help>
+      <Item label="Direct control - the LED indication shows the received colour immediately, until the pushbutton is activated" value="0"/>
+      <Item label="Colour command sets the colour for OFF indication" value="1"/>
+      <Item label="Colour command sets the colour for ON indication" value="2"/>
+    </Value>
+    <Value genre="config" index="38" instance="1" label="ON indication RGB-saturation for pushbutton 3" size="4" type="int" value="32512">
+      <Help>        
+        Byte 1: Colour saturation, red
+            0-255 Specifies the saturation for the red LEDs (Default is 0).
+        Byte 2: Colour saturation, green
+            0–255 Specifies the saturation for the green LEDs (Default is 0).
+        Byte 3: Colour saturation, blue
+            0-255 Specifies the saturation for the blue LEDs (Default is 127).
+        Byte 4: LED control
+            0-255 LED indicator control - see the application note about this parameter (Default is 0).
+        Default: 32512
+			</Help>
+    </Value>
+    <Value genre="config" index="39" instance="1" label="OFF indication RGB-saturation for pushbutton 3" size="4" type="int" value="50065152">
+      <Help>        
+        Byte 1: Colour saturation, red
+            0-255 Specifies the saturation for the red LEDs (Default is 47).
+        Byte 2: Colour saturation, green
+            0–255 Specifies the saturation for the green LEDs (Default is 47).
+        Byte 3: Colour saturation, blue
+            0-255 Specifies the saturation for the blue LEDs (Default is 47).
+        Byte 4: LED control
+            0-255 LED indicator control - see the application note about this parameter (Default is 0).
+        Default: 50065152
+			</Help>
+    </Value>
+    <Value genre="config" index="40" instance="1" label="Pushbutton 4 functionality" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter specifies the functionality of pushbutton 4.</Help>
+      <Item label="Standard toggle-function, the state is switched between on and off, dimming up and down" value="0"/>
+      <Item label="Automatic turn off after the time has expired (staircase lighting function), the time is specified in the next configuration parameter" value="1"/>
+      <Item label="Automatic turn on after the time has expired, the time is specified in the next configuration parameter" value="2"/>
+      <Item label="Always turn off or dim down. Using this parameter, the pushbutton can only send ‘off’ or ‘dim down’ commands" value="3"/>
+      <Item label="Always turn on or dim up. Using this parameter, the pushbutton can only send ‘on’ or ‘dim up’ commands" value="4"/>
+    </Value>
+    <Value genre="config" index="41" instance="1" label="Timer value for pushbutton 4" max="43200" min="0" size="2" type="short" value="300">
+      <Help>0–43200: Specifies the time in seconds. Default is 300 = 5 minutes.</Help>
+    </Value>
+    <Value genre="config" index="42" instance="1" label="Multi-Level Switch Set values for pushbutton 4" size="4" type="int" value="33488896">
+      <Help>        
+        Byte 1: Enable/ Disable
+            0 Disabled – A single activation of the pushbutton will not send commands to devices in association group 4.
+            1 Enabled – A single activation will send commands to devices in association group 4. Devices will receive commands with the values set in Byte 2 and 3 (Default).
+        Byte 2: Upper switch value
+            0–99, 255 When single pressing the pushbutton for ON, a Multilevel Switch Set with this value will be send to devices in association group 4 (Default = 255).
+        Byte 3: Lower switch value
+            0-99 When single pressing the pushbutton for OFF, a Multilevel Switch Set with this value will be send to devices in association group 4 (Default = 0).
+        Byte 4: Not used–must be set to 0.
+        Default: 33488896
+			</Help>
+    </Value>
+    <Value genre="config" index="43" instance="1" label="Binary Switch Setsupport for pushbutton 4" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter specifies how received Binary Switch Set commands are handled.</Help>
+      <Item label="Binary Switch Set - only controls the pushbutton indicator LEDs, ON/OFF" value="0"/>
+      <Item label="Binary Switch Set - controls the internal switch status and the pushbutton indicator LEDs" value="1"/>
+      <Item label="Binary Switch Set - is handled as if the user had activated the pushbutton, including transmission of commands via the association groups" value="2"/>
+    </Value>
+    <Value genre="config" index="44" instance="1" label="Pushbutton 4 LED indication" max="1" min="0" size="1" type="list" value="7">
+      <Help>This parameter specifies how the LED indication is controlled..</Help>
+      <Item label="Internal LED control is disabled, only external commands control the indication" value="0"/>
+      <Item label="The LED indication follows the switch status" value="1"/>
+      <Item label="The LED indication follows the switch status – with inverted functionality" value="2"/>
+      <Item label="Same as 1" value="3"/>
+      <Item label="Same as 2" value="4"/>
+      <Item label="The LED indication follows the status of the internal dimmer, ON or OFF" value="5"/>
+      <Item label="The LED indication follows the status of the internal dimmer with inverted functionality, ON or OFF" value="6"/>
+      <Item label="The LED indicator is ON for 5 seconds when the pushbutton is activated" value="7"/>
+    </Value>
+    <Value genre="config" index="45" instance="1" label="Colour commands for pushbutton 4 LED indication" max="1" min="0" size="1" type="list" value="1">
+      <Help>This parameter specifies how received Binary Switch Setcommands are handled.</Help>
+      <Item label="Direct control - the LED indication shows the received colour immediately, until the pushbutton is activated" value="0"/>
+      <Item label="Colour command sets the colour for OFF indication" value="1"/>
+      <Item label="Colour command sets the colour for ON indication" value="2"/>
+    </Value>
+    <Value genre="config" index="46" instance="1" label="ON indication RGB-saturation for pushbutton 4" size="4" type="int" value="32512">
+      <Help>        
+        Byte 1: Colour saturation, red
+            0-255 Specifies the saturation for the red LEDs (Default is 0).
+        Byte 2: Colour saturation, green
+            0–255 Specifies the saturation for the green LEDs (Default is 0).
+        Byte 3: Colour saturation, blue
+            0-255 Specifies the saturation for the blue LEDs (Default is 127).
+        Byte 4: LED control
+            0-255 LED indicator control - see the application note about this parameter (Default is 0).
+        Default: 32512
+			</Help>
+    </Value>
+    <Value genre="config" index="47" instance="1" label="OFF indication RGB-saturation for pushbutton 4" size="4" type="int" value="50065152">
+      <Help>        
+        Byte 1: Colour saturation, red
+            0-255 Specifies the saturation for the red LEDs (Default is 47).
+        Byte 2: Colour saturation, green
+            0–255 Specifies the saturation for the green LEDs (Default is 47).
+        Byte 3: Colour saturation, blue
+            0-255 Specifies the saturation for the blue LEDs (Default is 47).
+        Byte 4: LED control
+            0-255 LED indicator control - see the application note about this parameter (Default is 0).
+        Default: 50065152
+			</Help>
+    </Value>
+  </CommandClass>
+  <!-- COMMAND_CLASS_SWITCH_ALL SwitchAllCmd_Get is not supported -->
+  <CommandClass id="39">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="14">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Send Basic Report (On/Off) when button #1 is used" max_associations="5"/>
+      <Group index="3" label="Sends Binary Switch Set (On/Off) when button #1 is used" max_associations="5"/>
+      <Group index="4" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #1 is used" max_associations="5"/>
+      <Group index="5" label="Send Basic Report (On/Off) when button #2 is used" max_associations="5"/>
+      <Group index="6" label="Sends Binary Switch Set (On/Off) when button #2 is used" max_associations="5"/>
+      <Group index="7" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #2 is used" max_associations="5"/>
+      <Group index="8" label="Send Basic Report (On/Off) when button #3 is used" max_associations="5"/>
+      <Group index="9" label="Sends Binary Switch Set (On/Off) when button #3 is used" max_associations="5"/>
+      <Group index="10" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #3 is used" max_associations="5"/>
+      <Group index="11" label="Send Basic Report (On/Off) when button #4 is used" max_associations="5"/>
+      <Group index="12" label="Sends Binary Switch Set (On/Off) when button #4 is used" max_associations="5"/>
+      <Group index="13" label="Sends Multilevel Switch Set / Multilevel Switch Start Level Change / Multilevel Switch Stop Level Change when button #4 is used" max_associations="5"/>
+      <Group index="14" label="Send Basic Report with information about the actual level for the dimmer" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/manufacturer_specific.xml b/config/manufacturer_specific.xml
index a4ad0563b7..a437a63316 100644
--- a/config/manufacturer_specific.xml
+++ b/config/manufacturer_specific.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ManufacturerSpecificData Revision="61" xmlns="https://github.com/OpenZWave/open-zwave">
+<ManufacturerSpecificData Revision="172" 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"/>
@@ -18,13 +18,17 @@
     <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"/>
+    <Product config="2gig/ct200.xml" id="0022" name="Vivint Element Thermostat" type="c801"/>
+    <Product config="2gig/ct200.xml" id="001d" name="Vivint Element Thermostat" type="c801"/>
   </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="0403" name="ABUS Security-Center GmbH Co. KG">
+    <Product config="abus/SHRM10000.xml" id="0003" name="Smart Smoke Sensor SHRM10000" type="0002"/>
+  </Manufacturer>
   <Manufacturer id="034A" name="AcroComm Corp"></Manufacturer>
   <Manufacturer id="0001" name="ACT">
     <Product id="3130" name="ZCS101 Serial Interface" type="4349"/>
@@ -84,11 +88,11 @@
     <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" -->
+    <!-- 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 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"/>
@@ -206,6 +210,7 @@
     <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/zwa005.xml" id="0005" name="ZWA005 TriSensor" type="0202"/>
+    <Product config="aeotec/zwa021.xml" id="0015" name="ZWA021 Thermostatic Valve" type="0002"/>
     <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"/>
@@ -215,7 +220,22 @@
     <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"/>
+    <Product config="aeotec/zwa009.xml" id="0009" name="ZWA009 AërQ Temperature &amp; Humidity Sensor" type="0002"/>
+    <Product config="aeotec/zwa009.xml" id="0009" name="ZWA009 AërQ Temperature &amp; Humidity Sensor" type="0102"/>
+    <Product config="aeotec/zwa009.xml" id="0009" name="ZWA009 AërQ Temperature &amp; Humidity Sensor" type="0202"/>
+    <Product config="aeotec/zwa011.xml" id="000B" name="ZWA011 Door Window Sensor 7" type="0002"/>
+    <Product config="aeotec/zwa012.xml" id="000C" name="ZWA012 Door Window Sensor 7 Pro" type="0002"/>
+    <Product config="aeotec/zwa012.xml" id="000C" name="ZWA012 Door Window Sensor 7 Pro" type="0102"/>
+    <Product config="aeotec/zwa012.xml" id="000C" name="ZWA012 Door Window Sensor 7 Pro" type="0202"/>
+    <Product config="aeotec/zwa019.xml" id="0013" name="ZWA019 Water Sensor 7 Pro" type="0002"/>
+    <Product config="aeotec/zwa019.xml" id="0013" name="ZWA019 Water Sensor 7 Pro" type="0102"/>
+    <Product config="aeotec/zwa019.xml" id="0013" name="ZWA019 Water Sensor 7 Pro" type="0202"/>
+    <Product config="aeotec/zwa023.xml" id="0017" name="ZWA023 Smart Switch 7" type="0103"/>
+    <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"/>
     <Product config="aeotec/zw164.xml" id="00a4" name="ZW164 Indoor Siren 6" type="0003"/>
+    <Product config="aeotec/zw164.xml" id="00a4" name="ZW164 Indoor Siren 6" type="0103"/>
     <Product config="aeotec/zw175.xml" id="00af" name="ZW175 Smart Switch 7" type="0003"/>
     <Product config="aeotec/zw187.xml" id="00bb" name="ZW187 Recessed Door Sensor 7" type="0002"/>
     <Product config="aeotec/zw187.xml" id="00bb" name="ZW187 Recessed Door Sensor 7" type="0102"/>
@@ -255,14 +275,14 @@
     <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/PushButtonLever.xml" id="0f00" name="Yale Push Button Lever Lock (YRL226)" type="800c"/>
     <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/ProSLKey-FreeDeadbolt.xml" id="0508" name="Yale ProSL Push Button Deadbolt (YRD136)" type="803b"/>
     <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"/>
@@ -272,6 +292,9 @@
     <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"/>
+    <Product config="assa_abloy/yrd1x0.xml" id="0800" name="YRD110 Push Button Deadbolt" type="0004"/>
+    <Product config="assa_abloy/yrd1x0.xml" id="0800" name="YRD120 Touchscreen Deadbolt" type="0002"/>
+    <Product config="assa_abloy/yrm276.xml" id="1604" name="Yale Assure Lock for Andersen Patio Doors (YRM276)" type="8014"/>
   </Manufacturer>
   <Manufacturer id="013B" name="AstraLink"></Manufacturer>
   <Manufacturer id="0134" name="AT&amp;T"></Manufacturer>
@@ -332,7 +355,9 @@
   <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="0190" name="Building 36 Technologies">
+    <Product config="building36/b36-t10.xml" id="0001" name="B36-T10" type="0001"/>
+  </Manufacturer>
   <Manufacturer id="0396" name="Bulcraft Control"></Manufacturer>
   <Manufacturer id="0026" name="BuLogics"></Manufacturer>
   <Manufacturer id="0398" name="Calix"></Manufacturer>
@@ -363,7 +388,7 @@
   <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"/>
+    <Product config="connecthome/ch-201.xml" id="0021" name="CH-201 Thermostat" type="0013"/>
   </Manufacturer>
   <Manufacturer id="0285" name="CONNECTION TECHNOLOGY SYSTEMS"></Manufacturer>
   <Manufacturer id="025D" name="Contec intelligent housing"></Manufacturer>
@@ -380,6 +405,7 @@
     <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"/>
+    <Product config="cooper/RF9601.xml" id="0503" name="RF9601 Light Switch" type="534c"/>
   </Manufacturer>
   <Manufacturer id="009d" name="Coventive Technologies Inc."></Manufacturer>
   <Manufacturer id="0379" name="CPRO"></Manufacturer>
@@ -397,6 +423,7 @@
     <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"/>
+    <Product config="dlink/dch-z210.xml" id="0011" name="DCH-Z210 Gen5 Plug" type="0001"/>
   </Manufacturer>
   <Manufacturer id="0002" name="Danfoss">
     <Product config="danfoss/rsroom.xml" id="8010" name="RS Room Sensor" type="0003"/>
@@ -415,7 +442,7 @@
   <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">
+  <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"/>
@@ -429,6 +456,9 @@
     <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"/>
+    <Product config="devolo/mt2761.xml" id="0052" name="Home Control Shutter FM MT2761" type="0003"/>
+    <Product config="devolo/mt2759.xml" id="0052" name="Home Control Switch FM MT2759" type="0002"/>
+    <Product config="devolo/mt2760.xml" id="0052" name="Home Control Dimmer FM MT2760" type="0001"/>
   </Manufacturer>
   <Manufacturer id="0103" name="Diehl AKO">
     <Product config="diehlcontrols/766366.xml" id="0002" name="Dimmer Actuator" type="0002"/>
@@ -469,6 +499,9 @@
   <Manufacturer id="017C" name="EbV"></Manufacturer>
   <Manufacturer id="016B" name="Echostar"></Manufacturer>
   <Manufacturer id="028F" name="Eco Automation"></Manufacturer>
+  <Manufacturer id="0431" name="EcoDim">
+    <Product config="ecodim/0.7.xml" id="0002" name="ECO-DIM.07 Z-Wave LED dimmer" type="0202"/>
+  </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"/>
@@ -480,7 +513,9 @@
     <Product config="ecolink/floodfreeze.xml" id="0010" name="Flood/Freeze Sensor" type="0005"/>
     <Product config="ecolink/firefighter.xml" id="000f" name="FireFighter" type="0005"/>
   </Manufacturer>
-  <Manufacturer id="0157" name="EcoNet Controls"></Manufacturer>
+  <Manufacturer id="015d" name="EcoNet Controls">
+    <Product config="econet/ezw1204.xml" id="c41c" name="EZW1204 Water Leak Sensor" type="2003"/>
+  </Manufacturer>
   <Manufacturer id="039D" name="ECS"></Manufacturer>
   <Manufacturer id="031F" name="Eelectron SpA"></Manufacturer>
   <Manufacturer id="026B" name="Ei Electronics"></Manufacturer>
@@ -499,6 +534,8 @@
     <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/0104.xml" id="0104" name="Mouser" type="0003"/>
+    <Product config="dome/dmex1.xml" id="0108" name="DMEX1 Range Extender" type="0003"/>
     <Product config="dome/0201.xml" id="0201" name="Door/Window Sensor Pro" type="0003"/>
   </Manufacturer>
   <Manufacturer id="001b" name="ELK Products"></Manufacturer>
@@ -523,10 +560,8 @@
     <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"/>
+    <Product config="eurotronic/eur_temphumin.xml" id="0001" name="Temperature and Humidity Sensor" type="0004"/>
+    <Product config="eurotronic/eur_airquality.xml" id="0001" name="Air Quality Sensor" type="0005"/>
   </Manufacturer>
   <Manufacturer id="011a" name="Enerwave">
     <Product config="enerwave/zwn-bpc.xml" id="0901" name="ZWN-BPC Ceiling Mounted PIR Motion Sensor" type="0601"/>
@@ -534,7 +569,7 @@
     <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/zwnrsm2plus.xml" id="0606" name="ZWN-RSM2-PLUS Smart Single Relay Switch Module" type="0111"/>
     <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"/>
@@ -572,6 +607,7 @@
     <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"/>
+    <Product config="evolve/t-100.xml" id="5434" name="T-100 Thermostat" type="4556" />
   </Manufacturer>
   <Manufacturer id="036F" name="Evolvere SpA"></Manufacturer>
   <Manufacturer id="0036" name="Exceptional Innovations"></Manufacturer>
@@ -585,12 +621,14 @@
     <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"/>
+    <Product config="fakro/arzsolar.xml" id="0012" name="ARZ SOLAR Roof Window Roller Shutter" type="0003"/>
+    <Product config="fakro/zrh12.xml" id="0004" name="ZRH12 Portable Remote Controller" type="0001"/>
   </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" -->
+    <!-- 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 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"/>
@@ -598,6 +636,8 @@
     <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"/>
+    <Product config="oomi/ft112.xml" id="0070" name="FT112 Door-window sensor" type="0002"/>
+    <Product config="oomi/ft118.xml" id="0076" name="FT118 Range extender 6" type="0004"/>
   </Manufacturer>
   <Manufacturer id="010f" name="FIBARO System">
     <Product config="fibaro/fgbs001.xml" id="0101" name="FGBS001 Universal Binary Sensor" type="0501"/>
@@ -607,6 +647,8 @@
     <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/fgbs222.xml" id="2000" name="FGBS222 Smart Implant" type="0502"/>
+    <Product config="fibaro/fgbs222.xml" id="3000" 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"/>
@@ -625,6 +667,8 @@
     <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/fgdw2.xml" id="2000" name="FGDW002 Door Opening Sensor 2" type="0702"/>
+    <Product config="fibaro/fgdw2.xml" id="3000" 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"/>
@@ -632,8 +676,8 @@
     <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="3000" 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"/>
@@ -647,7 +691,10 @@
     <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="3000" name="FGS213 Switch" type="0403"/>
     <Product config="fibaro/fgs213.xml" id="4000" name="FGS213 Switch" type="0403"/>
+    <Product config="fibaro/fgs214.xml" id="1000" name="FGS214 Single Relay Switch" type="0404"/>
+    <Product config="fibaro/fgs214.xml" id="4000" name="FGS214 Single Relay Switch" type="0404"/>
     <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"/>
@@ -662,10 +709,12 @@
     <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/fgs224.xml" id="1000" name="FGS224 Double Smart Module" type="0204"/>
     <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/fgwoe.xml" id="1000" name="FGWOE/F Walli Outlet" type="1f01"/>
+    <Product config="fibaro/fgwpb121.xml" id="2000" name="FGWPB-121 Wall Plug" type="1401"/>
     <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"/>
@@ -678,6 +727,7 @@
     <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/fgmszw5.xml" id="3002" 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"/>
@@ -686,11 +736,16 @@
     <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/fgfs101zw5.xml" id="2003" name="FGFS101 Zwave+ Flood Sensor" type="0b01"/>
     <Product config="fibaro/fgfs101zw5.xml" id="3002" 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/fgrgbw442.xml" id="1000" name="FGRGBW442 RGBW Controller 2" type="0902"/>
+    <Product config="fibaro/fgrgbw442.xml" id="2000" name="FGRGBW442 RGBW Controller 2" type="0902"/>
+    <Product config="fibaro/fgrgbw442.xml" id="3000" name="FGRGBW442 RGBW Controller 2" type="0902"/>
+    <Product config="fibaro/fgrgbw442.xml" id="4000" name="FGRGBW442 RGBW Controller 2" type="0902"/>
     <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"/>
@@ -704,15 +759,20 @@
     <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/fgt001.xml" id="1001" 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"/>
+    <Product config="fibaro/fgwds221ss.xml" id="1000" name="FGWDS221 Walli Double Switch (Single switch mode)" type="1A01"/>
     <Product config="fibaro/fgwds221.xml" id="1000" name="FGWDS221 Walli Double Switch" type="1B01"/>
     <Product config="fibaro/fgwd111.xml" id="1000" name="FGWD111 Walli Dimmer" type="1C01"/>
     <Product config="fibaro/fgwr111.xml" id="1000" name="FGWR111 Walli Roller Shutter" type="1d01"/>
+    <Product config="fibaro/fgwceu201.xml" id="1000" name="FGWCEU201 Walli Controller" type="2301"/>
   </Manufacturer>
   <Manufacturer id="0295" name="fifthplay nv"></Manufacturer>
   <Manufacturer id="0138" name="First Alert (BRK Brands Inc)">
+    <Product config="firstalert/zsmoke.xml" id="0001" name="ZSmoke Smoke Detector" type="0001"/>
     <Product config="firstalert/zcombo.xml" id="0002" name="ZCombo Smoke and Carbon Monoxide Detector" type="0001"/>
+    <Product config="firstalert/zcombo-g.xml" id="0003" name="ZCombo-G Smoke/CO Alarm" type="0001"/>
   </Manufacturer>
   <Manufacturer id="002c" name="Flex Automation"></Manufacturer>
   <Manufacturer id="004F" name="Flex Automation"></Manufacturer>
@@ -732,6 +792,7 @@
     <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="aa06" name="WV-01 Automated Water Shut-Off Valve" type="0233"/>
     <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"/>
@@ -748,6 +809,9 @@
     <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"/>
+    <Product config="fortrezz/fts05p.xml" id="020a" name="FTS05P Flood &amp; Temperature Sensor" type="00a3"/>
+    <Product config="fortrezz/fts05p.xml" id="020e" name="FTS05P Flood &amp; Temperature Sensor" type="00a3"/>
+
   </Manufacturer>
   <Manufacturer id="011D" name="Foxconn"></Manufacturer>
   <Manufacturer id="039C" name="Foxconn Industrial Internet"></Manufacturer>
@@ -755,7 +819,9 @@
     <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="0305" name="Future Home AS">
+    <Product config="thermofloor/heatitz8.xml" id="a305" name="Future Home AS (Heatit) Z-Push Button 8" type="0300"/>
+  </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"/>
@@ -765,21 +831,29 @@
     <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/12724-dimmer.xml" id="3032" name="12725 In-Wall 1000W Dimmer" type="4944"/>
+    <Product config="ge/14280-plugin-dimmer.xml" id="3033" name="14280 Plug-In Two-Outlet Smart Dimmer with Simultaneous Control" type="5044"/>
     <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/14298.xml" id="3034" name="14298 Plug-in Outdoor Smart Switch" type="4F50"/>
+    <Product config="ge/14322-dimmer-toggle.xml" id="3137" name="14322 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/26932-motion-dimmer.xml" id="3033" name="26932 Smart Motion Dimmer" 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/46201-switch.xml" id="3135" name="46201 In-Wall Smart Switch" type="4952"/>
+    <Product config="ge/46202-switch.xml" id="3137" name="46202 In-Wall Smart Switch" type="4952"/>
     <Product config="ge/46203-dimmer.xml" id="3235" name="46203 In-Wall Smart Dimmer" type="4944"/>
+    <Product config="ge/46204-dimmer-toggle.xml" id="3237" name="In-Wall Smart Toggle Dimmer" type="4944"/>
     <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 config="ge/12720.xml" id="3130" name="12720 Outdoor Smart Switch" type="6363"/>
     <Product config="ge/14284.xml" id="3032" name="14284 Outdoor Smart Switch" type="4f50"/>
+    <Product config="ge/14285.xml" id="3032" name="14285 Outdoor Smart Switch" type="4f44"/>
     <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"/>
@@ -803,12 +877,8 @@
   <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 config="gr/gr-302n.xml" id="0003" name="ZSE02 Motion Sensor" type="0500"/>
+  <Manufacturer id="0068" name="Good Way Technology Co. Ltd">
+    <Product config="goodway/td14010.xml" id="000b" name="RGBW Color LED Dimmer" type="0003"/>
   </Manufacturer>
   <Manufacturer id="0099" name="GreenWave Reality Inc">
     <Product config="greenwave/gs1110-1-gr-1.xml" id="0002" name="One Gateway" type="0001"/>
@@ -824,7 +894,10 @@
   <Manufacturer id="037B" name="Guardtec Inc">
     <Product type="0002" id="0001" name="GKW-2000D Door Lock" config="guardtec/gkw2000d.xml"/>
   </Manufacturer>
-  <Manufacturer id="0287" name="HAB Home Intelligence LLC"></Manufacturer>
+  <Manufacturer id="0287" name="HAB Home Intelligence LLC">
+    <Product type="0003" id="000D" name="iblinds V2" config="hab/iblindsV2.xml"/>
+    <Product type="0004" id="0071" name="iblinds V3" config="hab/iblindsV3.xml"/>
+  </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>
@@ -843,6 +916,7 @@
     <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"/>
+    <Product config="hank/hkzw-so08-smartplug.xml" id="0019" name="HKZW-SO08 Smart Plug" type="0100"/>
   </Manufacturer>
   <Manufacturer id="024C" name="Hankook Gas Kiki CO.LTD"></Manufacturer>
   <Manufacturer id="025C" name="Hauppauge"></Manufacturer>
@@ -863,6 +937,8 @@
     <Product config="heltun/he-zw-therm-fl2.xml" id="0001" name="HE-ZW-THERM-FL2 Heating Thermostat" type="0003"/>
     <Product config="heltun/he-zw-sw-5a-1.xml" id="0003" name="HE-ZW-SW-5A-1 Touch Panel Switch" type="0003"/>
     <Product config="heltun/he-zw-therm-fc1.xml" id="0002" name="HE-ZW-THERM-FC1 Fan Coil Thermostat" type="0003"/>
+    <Product config="heltun/he-ht01.xml" id="0001" name="Heating Thermostat HE-HT01" type="0004"/>
+    <Product config="heltun/he-ft01.xml" id="0002" name="Fan Coil Thermostat HE-FT01" type="0004"/>
   </Manufacturer>
   <Manufacturer id="020F" name="Herald Datanetics Limited"></Manufacturer>
   <Manufacturer id="0017" name="HiTech Automation"></Manufacturer>
@@ -890,15 +966,17 @@
     <Product config="homeseer/hsm200.xml" id="0001" name="HSM200 Wireless Multi-Sensor" type="0004"/>
   </Manufacturer>
   <Manufacturer id="000c" name="HomeSeer Technologies">
+    <Product config="homeseer/hsm200.xml" id="0001" name="HSM200 Wireless Multi-Sensor" type="0004"/>
     <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 type="201" id="8" name="HS-DS100+ Door/Window Sensor" config="homeseer/hs-ds100plus.xml"/>
-    <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-ds100plus.xml" id="0008" name="HS-DS100+ Door/Window Sensor" type="0201"/>
+    <Product config="homeseer/hs-ms100plus.xml" id="0009" name="HS-MS100+ Motion Sensor" type="0201"/>
+    <Product config="homeseer/hs-ls100plus.xml" id="000a" name="HS-LS100+ Leak Sensor" type="0201"/>
     <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"/>
+    <Product config="homeseer/hs-fs100plus.xml" id="0001" name="HS-FS100+ Flex Sensor" type="0202"/>
   </Manufacturer>
   <Manufacturer id="0275" name="Honest Technology"></Manufacturer>
   <Manufacturer id="023D" name="Honest Technology Co. Ltd"></Manufacturer>
@@ -907,6 +985,15 @@
     <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"/>
+    <Product config="honeywell/39348-ZW4005.xml" id="3036" name="39348 / ZW4005 In-Wall Smart Switch" type="4952"/>
+    <Product config="honeywell/39348-zw4008.xml" id="3135" name="39348 / ZW4008 In-Wall Smart Switch" type="4952"/>
+    <Product config="honeywell/39349-ZW1002.xml" id="3133" name="39349 / ZW1002 In-Wall Tamper Resistant Outlet" type="4952"/>
+    <Product config="honeywell/39357-ZW3004.xml" id="3130" name="39357 / ZW3004 In-Wall Smart Toggle Dimmer" type="4944"/>
+    <Product config="honeywell/39351-ZW3010.xml" id="3235" name="39351 / ZW3010 In-Wall Smart Dimmer" type="4944"/>
+    <Product config="honeywell/39358-ZW4002.xml" id="3131" name="39358 / ZW4002 In-Wall Fan Control" type="4944"/>
+    <Product config="honeywell/39449-ZW4106.xml" id="3033" name="39449 / ZW4106 Plug-in Smart Switch" type="5052"/>
+    <Product config="honeywell/2681-plugin-dimmer.xml" id="3038" name="39336 / ZW3104 Plug-in Dimmer" type="5044"/>
+    <Product config="honeywell/3830-zw3107.xml" id="3033" name="39446 / ZW3107 Plug-in Dimmer" type="5044"/>
   </Manufacturer>
   <Manufacturer id="0313" name="Hoppe"></Manufacturer>
   <Manufacturer id="0377" name="HORNBACH Baumarkt AG"></Manufacturer>
@@ -961,6 +1048,7 @@
     <Product id="0001" name="RAone SmartDimmer Wall Dimmer Module" type="0001"/>
   </Manufacturer>
   <Manufacturer id="0312" name="Inovelli">
+    <Product config="inovelli/lzw30.xml" id="ff04" name="LZW30 Switch" type="ff00"/>
     <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"/>
@@ -979,6 +1067,14 @@
   <Manufacturer id="031E" name="Inovelli">
     <Product type="0002" id="0001" name="LZW30-SN Switch Red Series" config="inovelli/lzw30-sn.xml"/>
     <Product type="0004" id="0001" name="LZW30 Switch" config="inovelli/lzw30.xml"/>
+    <Product type="0001" id="0001" name="LZW31-SN Dimmer Red Series" config="inovelli/lzw31-sn.xml"/>
+    <Product type="0003" id="0001" name="LZW31 Dimmer" config="inovelli/lzw31.xml"/>
+    <Product type="0005" id="0001" name="LZW42 Multi-Color Bulb" config="inovelli/lzw42.xml"/>
+    <Product type="0006" id="0001" name="LZW41 Multi-White Bulb" config="inovelli/lzw41.xml"/>
+    <Product type="0007" id="0001" name="LZW40 Dimmable  Bulb" config="inovelli/lzw40.xml"/>
+    <Product type="000d" id="0001" name="LZW60 4-in-1 Sensor" config="inovelli/lzw60.xml"/>
+    <Product type="000e" id="0001" name="LZW36 Fan/Light Dimmer" config="inovelli/lzw36.xml"/>
+    <Product type="000a" id="0001" name="LZW45 Light Strip" config="inovelli/lzw45.xml"/>
   </Manufacturer>
   <Manufacturer id="0100" name="Insignia"></Manufacturer>
   <Manufacturer id="0006" name="Intel"></Manufacturer>
@@ -1026,11 +1122,20 @@
   <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/910.xml" id="0001" name="Touchpad Electronic Deadbolt" type="0001"/>
+    <Product config="kwikset/916.xml" id="0642" name="SmartCode 916" type="0001"/>
+    <Product config="kwikset/916.xml" id="0642" name="SmartCode 916" type="0003"/>
+    <Product config="kwikset/smartcode.xml" id="4006" name="SmartCode 914" type="0003"/>
     <Product config="kwikset/smartcode.xml" id="0440" name="SmartCode 914" type="0003"/>
+    <Product config="kwikset/smartcode.xml" id="0236" name="SmartCode 912" type="0003"/>
+    <Product config="kwikset/smartcode.xml" id="0339" name="SmartCode 912" type="0003"/>
+    <Product config="kwikset/smartcode.xml" id="0236" name="SmartCode 910" type="0001"/>
+    <Product config="kwikset/smartcode.xml" id="0238" name="SmartCode 910" type="0003"/>
+    <Product config="kwikset/910.xml" id="0001" name="SmartCode 910" type="0001"/>
     <Product config="kwikset/smartcode.xml" id="0440" name="SmartCode 10" type="0006"/>
-    <Product config="kwikset/smartcode.xml" id="0446" name="Convert 914" type="0003"/>
+    <Product config="kwikset/smartcode.xml" id="0742" name="Obsidian" type="0003"/>
+    <Product config="kwikset/914c.xml" id="0446" name="Convert 914" type="0003"/>
+    <Product config="kwikset/888.xml" id="0541" name="Smartcode 888" type="0003"/>
   </Manufacturer>
   <Manufacturer id="0051" name="Lagotek Corp"></Manufacturer>
   <Manufacturer id="0173" name="Leak Intelligence LLC"></Manufacturer>
@@ -1058,7 +1163,7 @@
     <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 config="leviton/dzpd3.xml" 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"/>
@@ -1067,7 +1172,11 @@
     <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"/>
+    <Product config="leviton/vrpa1.xml" id="0334" name="Leviton VRPA1 Plug-In Outlet" type="1805" />
+    <Product config="leviton/dzpa1.xml" id="0001" name="Leviton DZPA1 Plug-In Outlet" type="3601"/>
+    <Product config="leviton/vrpd3.xml" id="0334" name="Leviton VRPD3-1LW 300W Plug-In Lamp Dimming Module" type="1706"/>
+    <Product config="leviton/zw4sf.xml" id="0002" name="ZW4SF-1BW Decora Smart 4 Speed Fan Controller" type="0038"/>
+    <Product config="leviton/zw15r.xml" id="0002" name="ZW15R Decora Smart Tamper-Resistant Outlet with Z-Wave Technology" type="0037"/>
   </Manufacturer>
   <Manufacturer id="0015" name="Lexel"></Manufacturer>
   <Manufacturer id="015B" name="LG Electronics"></Manufacturer>
@@ -1098,6 +1207,7 @@
     <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"/>
+    <Product config="linear/WT00Z5-1.xml" id="3530" name="WT00Z5-1 Smart 3-Way Switch/Dimmer" type="5754"/>
   </Manufacturer>
   <Manufacturer id="035C" name="LINK ELECTRONICS Co. Ltd"></Manufacturer>
   <Manufacturer id="0316" name="Lite Automation"></Manufacturer>
@@ -1109,6 +1219,7 @@
   <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"/>
+    <Product config="logicsoft/ZDB5100.xml" id="0121" name="ZDB5100 Matrix" type="0003"/>
   </Manufacturer>
   <Manufacturer id="007f" name="Logitech"></Manufacturer>
   <Manufacturer id="0025" name="Loudwater Tech"></Manufacturer>
@@ -1134,29 +1245,37 @@
     <Product config="mcohome/mhp220.xml" id="1352" name="MH-P220 Micro Dimmer" type="220a"/>
     <Product config="mcohome/mhp220.xml" id="5101" name="MH-P220 Micro Dimmer" type="220a"/>
     <Product config="mcohome/mhp220.xml" id="5102" name="MH-P220 Micro Dimmer" type="220a"/>
+    <Product config="mcohome/mhs220.xml" id="1252" name="MH-S220 One-Load" type="2201"/>
     <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/mhs314.xml" id="5102" name="MH-S314 Four-load" type="3141"/>
     <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/mh8fceu0803.xml" id="3102" name="MH8-FC-EU Thermostat" type="0803"/>
+    <Product config="mcohome/mh8fceu0803.xml" id="5102" name="MH8-FC-EU Thermostat" type="0803"/>
     <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/mh9co2.xml" id="5102" name="MH9-CO2-WD CO2 Monitor" type="0901"/>
+    <Product config="mcohome/mh9co2.xml" id="5102" name="MH9-CO2-WD CO2 Monitor" type="0902"/>
+    <Product config="mcohome/mh10pm25wd.xml" id="5102" name="MH10-PM2.5-WD PM 2.5 Monitor" type="0a02"/>
     <Product config="mcohome/a8-9.xml" id="1352" name="A8-9 Multi-sensor" type="a800"/>
     <Product config="mcohome/a8-9.xml" id="1352" name="A8-9 Multi-sensor" type="a803"/>
     <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"/>
+	<Product config="mcohome/mhdt411.xml" id="5102" name="MH-DT411 Dimmer Switch" type="d411"/>
     <!--US-->
-    <Product config="mcohome/mhs513.xml" id="0103" name="Touch Panel Switch MH-S513" type="5102"/>
+    <Product config="mcohome/mhs513.xml" id="5102" name="MH-S513 Touch Panel Switch" type="0103"/>
     <!--AU-->
-    <Product config="mcohome/mhp511.xml" id="1453" name="Dimmer Touch Panel Switch MH-P511" type="511a"/>
+    <Product config="mcohome/mhp511.xml" id="1453" name="MH-P511 Dimmer Touch Panel Switch" type="511a"/>
+    <Product config="mcohome/mhs513.xml" id="5103" name="MH-S513 Touch Panel Switch" type="5131"/>
   </Manufacturer>
   <Manufacturer id="0222" name="MCT CO. LTD"></Manufacturer>
   <Manufacturer id="0027" name="Meedio LLC"></Manufacturer>
@@ -1191,6 +1310,15 @@
   </Manufacturer>
   <Manufacturer id="0083" name="MTC Maintronic"></Manufacturer>
   <Manufacturer id="0143" name="myStrom"></Manufacturer>
+  <Manufacturer id="0438" name="Namron">
+    <Product config="namron/1402756.xml" id="0002" type="0202" name="LED Dimmer Z-Wave 200W"/>
+    <Product config="namron/4512710.xml" id="d005" type="0200" name="Z-Wave Dimmer 400W"/>
+    <Product config="namron/4512712.xml" id="a30f" type="0300" name="Z-wave 1 Kanal Bryter" />
+    <Product config="namron/4512715.xml" id="d006" type="0200" name="Z-Wave Switch 400W"/>
+    <Product config="namron/4512724.xml" id="d00c" type="0200" name="Z-Wave Dimmer 2 400W"/>
+    <Product config="namron/4512720.xml" id="a306" type="0300" name="Z-wave 2 Kanaler Bryter" />
+    <Product config="namron/4512714.xml" id="a305" type="0300" name="Z-wave 4 Channel Remote" />
+  </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"/>
@@ -1199,6 +1327,9 @@
   <Manufacturer id="036B" name="NEC Platforms Ltd"></Manufacturer>
   <Manufacturer id="0241" name="NEEO AG"></Manufacturer>
   <Manufacturer id="006D" name="Nefit"></Manufacturer>
+  <Manufacturer id="0312" name="NEI Technology">
+    <Product config="nei/ms11z.xml" id="ff04" name="MS11Z" type="ff00"/>
+  </Manufacturer>
   <Manufacturer id="0351" name="NEOCONTROL US LLC"></Manufacturer>
   <Manufacturer id="0189" name="Ness Corporation Pty Ltd"></Manufacturer>
   <Manufacturer id="0133" name="Netgear"></Manufacturer>
@@ -1208,6 +1339,7 @@
   <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"/>
+    <Product config="nexia/th100nx.xml" id="3130" name="TH100NX Temperature &amp; Humidity Sensor" type="5448"/>
   </Manufacturer>
   <Manufacturer id="0075" name="NextEnergy"></Manufacturer>
   <Manufacturer id="0361" name="NHN Entertainment"></Manufacturer>
@@ -1284,9 +1416,12 @@
     <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/700793.xml" id="1002" name="700793 Smart Power Plug" 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/009402.xml" id="0004" name="009402 10-Year Smoke Detector with Siren" type="0004"/>
+    <Product config="popp/700342.xml" id="000d" name="700342 10-Year Smoke Detector" type="0004"/>
+    <Product config="popp/700342.xml" id="0010" name="700342 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"/>
@@ -1298,6 +1433,7 @@
     <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"/>
+    <Product config="popp/701202.xml" id="0014" name="701202 Mold Detector" type="0004"/>
   </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"/>
@@ -1331,7 +1467,14 @@
     <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="0433" name="Q-light">
+    <Product config="q-light/q-light_zerodim.xml" id="000d" name="Q-Light Zerodim" type="0003"/>
+    <Product config="q-light/q-light_zerodim_2pol.xml" id="000E" name="Q-Light Zerodim 2pol" type="0003"/>
+    <Product config="q-light/q-light_puck.xml" id="0005" name="Q-Light puck" type="0003"/>
+  </Manufacturer>
+  <Manufacturer id="012A" name="Qolsys">
+    <Product config="qolsys/qz2140-840.xml" id="3032" name="QZ2140-840 Plug-In Dimmer" type="4744"/>
+  </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"/>
@@ -1362,7 +1505,9 @@
     <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"/>
-	<Product config="qubino/ZMNHQDx.xml" id="0051" name="ZMNHQDx LUXY Smart Light" type="0008"/>
+    <Product config="qubino/ZMNHQDx.xml" id="0051" name="ZMNHQDx LUXY Smart Light" type="0008"/>
+    <Product config="qubino/ZMNKADx.xml" id="0052" name="ZMNKADx LUXY Smart Switch" type="0008"/>
+	<Product config="qubino/ZMNHMDx.xml" id="0051" name="ZMNHMDx Smart leak protector" type="0006"/>
   </Manufacturer>
   <Manufacturer id="0130" name="Quby">
     <Product config="quby/qb2.xml" id="0001" name="Energy Management System" type="0001"/>
@@ -1407,6 +1552,7 @@
     <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"/>
+    <Product config="remotec/zts-500.xml" id="8170" name="ZTS-500 AU/NZ" type="0202"/>
   </Manufacturer>
   <Manufacturer id="039B" name="Reply S.p.A."></Manufacturer>
   <Manufacturer id="0010" name="Residential Control Systems">
@@ -1417,9 +1563,16 @@
     <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"/>
+    <Product type="5442" id="5432" name="TBZ48 Thermostat" config="linear/GC-TBZ48.xml" />
   </Manufacturer>
   <Manufacturer id="0216" name="RET Nanjing Intelligence System"></Manufacturer>
   <Manufacturer id="0153" name="Revolv"></Manufacturer>
+  <Manufacturer id="0346" name="Ring">
+    <Product config="ring/PIR-SS.xml" id="0201" name="PIR-SS Motion Detector" type="0301"/>
+    <Product config="ring/contact-sensor-v2.xml" id="0301" name="Contact Sensor" type="0201"/>
+    <Product config="ring/motion-detector-v2.xml" id="0301" name="Motion Detector" type="0301"/>
+    <Product id="0201" name="DW-SS Contact Sensor" type="0201"/>
+  </Manufacturer>
   <Manufacturer id="035E" name="RISCO Group"></Manufacturer>
   <Manufacturer id="023B" name="ROC-Connect"></Manufacturer>
   <Manufacturer id="0197" name="RPE Ajax LLC"></Manufacturer>
@@ -1489,36 +1642,54 @@
     <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="NAS-WR01Z Power plug 12A" type="0003"/>
     <Product config="shenzen_neo/nas-wr01z.xml" id="1087" name="NAS-WR01Z Power plug 12A" type="0003"/>
+    <Product config="shenzen_neo/nas-sc03ze.xml" id="102c" name="NAS-SC03ZE Roller Shutter" type="0200"/>
     <!-- NAS-WR01ZE and NAS-WR01Z hardware looks identical but are based on different SDK-->
+    <Product config="shenzen_neo/nas-wr01ze.xml" id="1027" name="NAS-WR01ZE Power plug 12A" type="0100"/>
     <Product config="shenzen_neo/nas-wr01ze.xml" id="1027" name="NAS-WR01ZE Power plug 12A" type="0200"/>
     <Product config="shenzen_neo/nas-wr01z.xml" id="2087" name="NAS-WR01Z Power plug 12A" type="0003"/>
     <Product config="shenzen_neo/nas-pd01z.xml" id="0083" name="NAS-PD01Z Battery Powered PIR Sensor" type="0003"/>
     <Product config="shenzen_neo/nas-pd01z.xml" id="1083" name="NAS-PD01Z Battery Powered PIR Sensor" type="0003"/>
     <!-- NAS-PD02Z exist with and without temp sensor and different params but same IDs https://github.com/OpenZWave/open-zwave/issues/1866 -->
     <Product config="shenzen_neo/nas-pd02z.xml" id="108d" name="NAS-PD02Z Battery Powered PIR Sensor V2" type="0003"/>
+    <Product config="shenzen_neo/nas-pd02z.xml" id="008d" name="NAS-PD02Z Battery Powered PIR Sensor V2" type="0003"/>
+    <Product config="shenzen_neo/nas-pd03z.xml" id="1031" name="NAS-PD03Z Battery Powered PIR Sensor V2" type="0200"/>
     <Product config="shenzen_neo/nas-ws02z.xml" id="0085" name="Water Leakage Detector" type="0003"/>
+    <Product config="shenzen_neo/nas-ws02z.xml" id="1025" name="Water Leakage Detector" type="0100"/>
     <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-ab01z.xml" id="6088" 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/ls03ch.xml" id="002b" name="Wall Switch (3 channels)" type="0200"/>
+    <Product config="shenzen_neo/ls03ch.xml" id="102b" name="Wall Switch (3 channels)" type="0200"/>
     <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"/>
+	<!-- NAS-CS01Z Curtain Switch -->
+	<Product config="shenzen_neo/nas-cs01z.xml" id="102c" name="NAS-CS01Z Curtain Switch" type="0200"/>
+  </Manufacturer>
+  <Manufacturer id="041a" name="Shenzhen Neo Electronics Co Ltd"> <!-- new manufacturer id for Neo Coolcam -->
+    <Product config="shenzen_neo/nas-wr01ze.xml" id="0008" name="NAS-WR01ZE Power plug 12A" type="0200"/>
+  </Manufacturer>
+  <Manufacturer id="032C" name="Shenzhen Saykey Technology">
+    <Product config="shenzen_saykey/sk-3007-05.xml" id="0005" name="Curtain Motor Control with external module" type="3007"/>
   </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/10002020-13X.xml" id="023a" name="S100 Rocker iO for Dimmer" type="0007"/>
+    <Product config="simon/10002020-13X.xml" id="0000" name="S100 Rocker iO for Dimmer" type="0007"/>
     <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"/>
+    <Product config="simon/10002080-13X.xml" id="0000" name="S100 Rocker iO for Roller Blind" type="0004"/>
   </Manufacturer>
   <Manufacturer id="0045" name="Sine Wireless"></Manufacturer>
   <Manufacturer id="0266" name="Siterwell Technology HK"></Manufacturer>
@@ -1540,6 +1711,7 @@
     <Product config="graber/rsz1.xml" id="5a31" name="RSZ1 Roller Shade" type="5253"/>
     <Product config="graber/vcz1.xml" id="5a31" name="VCZ1 Virtual Cord Remote Control" type="5643"/>
     <Product config="graber/csz1.xml" id="5a31" name="CSZ1 Cellular Shade" type="4353"/>
+    <Product config="graber/mcz1.xml" id="5a31" name="MCZ1 Multi-Channel Remote" type="4d43"/>
   </Manufacturer>
   <Manufacturer id="026F" name="Sprue Safety Products"></Manufacturer>
   <Manufacturer id="0124" name="Square Connect"></Manufacturer>
@@ -1578,6 +1750,11 @@
   <Manufacturer id="0089" name="Team Precision PCL"></Manufacturer>
   <Manufacturer id="0240" name="Technicolor"></Manufacturer>
   <Manufacturer id="000A" name="Techniku"></Manufacturer>
+  <Manufacturer id="0299" name="TechniSat">
+    <Product type="0002" id="1a90" name="Single-Switch" config="technisat/03009499.xml"/>
+    <Product type="0005" id="1a93" name="Shutter" config="technisat/03009496.xml"/>
+    <Product type="0004" id="1a92" name="Dimmer" config="technisat/03009497.xml"/>
+  </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"/>
@@ -1595,8 +1772,16 @@
     <Product config="there/800z.xml" id="0001" name="ThereGate" type="0001"/>
   </Manufacturer>
   <Manufacturer id="019b" name="ThermoFloor AS">
+    <Product config="thermofloor/heatitzm.xml" id="3500" name="Heatit ZM Single Relay 16A" type="0004"/>
     <Product config="thermofloor/heatit021.xml" id="0001" name="Heatit Thermostat TF 021" type="0001"/>
+    <Product config="thermofloor/heatit021-v1.92.xml" id="0201" name="Heatit Thermostat TF 016 (TF 021 FW > 1.92)" type="0003"/>
     <Product config="thermofloor/heatit056.xml" id="0202" name="Heatit Thermostat TF 056" type="0003"/>
+    <Product config="thermofloor/heatit058.xml" id="0203" name="Heatit Thermostat TF 058" type="0003"/>
+    <Product config="thermofloor/heatit204.xml" id="0204" name="Heatit Thermostat Z-Temp2" type="0004"/>
+    <Product config="thermofloor/heatit-zdim.xml" id="2200" name="Heatit ZDim" type="0003"/>
+    <Product config="thermofloor/heatitz8.xml" id="a305" name="Heatit Z-Push Button 8" type="0300"/>
+    <Product config="thermofloor/heatit20a.xml" id="020a" name="Heatit Z-Water TF 20a" type="0003"/>
+    <Product config="thermofloor/heatitz4.xml" id="a306" name="Heatit Z-Push Button 4" type="0300"/>
   </Manufacturer>
   <Manufacturer id="0317" name="Think Simple srl"></Manufacturer>
   <Manufacturer id="022A" name="TIMEVALVE"></Manufacturer>
@@ -1616,11 +1801,15 @@
     <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/tz67.xml" id="0008" name="TZ67G Wall Plug Dimmer" type="0003"/>
     <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"/>
+    <Product config="wenzhou/tz78.xml" id="0005" name="TZ78 In-Wall Single Relay Switch" type="0003"/>
+    <Product config="wenzhou/tz77.xml" id="0302" name="TZ77 RGBW Dimmer Switch" type="0311"/>
+    <Product config="wenzhou/tze96.xml" id="0506" name="TZE96 Color Touch Weekly Programming Heating Thermostat" type="0311"/>
   </Manufacturer>
   <Manufacturer id="011C" name="TKH Group / Eminent"></Manufacturer>
   <Manufacturer id="0327" name="TMC Technology"></Manufacturer>
@@ -1644,14 +1833,29 @@
   </Manufacturer>
   <Manufacturer id="0330" name="Sunricher">
     <Product config="sunricher/srzv9001t4dimeu.xml" id="a10d" name="Touch Panel Wall Controller - ZSC-01D" type="0003"/>
-    <Product config="sunricher/srzv9001k8.xml" id="a305" name="Wall Controller - SR-ZV9001" type="0300"/>
+    <Product config="sunricher/srzv9001k12dimz4.xml" id="b302" name="SR-ZV9001 4 Channel Dimmer Remote Control" type="0300"/>
+    <Product config="sunricher/srzv9001k12dimz4.xml" id="b302" name="SR-ZV9001 4 Channel Dimmer Remote Control" type="0301"/>
+    <Product config="sunricher/srzv9001k12dimz4.xml" id="b302" name="SR-ZV9001 4 Channel Dimmer Remote Control" type="0302"/>
+    <Product config="sunricher/srzv9001k12dimz5.xml" id="b301" name="SR-ZV9001 5 Channel Dimmer Remote Control" type="0300"/>
+    <Product config="sunricher/srzv9001k12dimz5.xml" id="b301" name="SR-ZV9001 5 Channel Dimmer Remote Control" type="0301"/>
+    <Product config="sunricher/srzv9001k12dimz5.xml" id="b301" name="SR-ZV9001 5 Channel Dimmer Remote Control" type="0302"/>
+    <Product config="sunricher/srzv9001k2dim.xml" id="a30f" name="Wall Controller - SR-ZV9001K2-DIM" type="0300"/>
+    <Product config="sunricher/srzv9001k4dim.xml" id="a310" name="Wall Controller - SR-ZV9001K4-DIM" type="0300"/>
+    <Product config="sunricher/srzv9001k4dimg2.xml" id="a306" name="Wall Controller - SR-ZV9001K4-DIM-G2" type="0300"/>
+    <Product config="sunricher/srzv9001k8.xml" id="a305" name="Wall Controller - SR-ZV9001K8" type="0300"/>
     <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"/>
     <Product config="sunricher/srzv9003t4rgbweu.xml" id="a107" name="Z-Wave Wall Controller - SR-ZV9003T4-RGBW-EU" type="0300"/>
+    <Product config="sunricher/zv2835rac.xml" id="d017" name="ZV2835RAC Smart Knob Dimmer" type="0200"/>
+    <Product config="sunricher/srzv9001tccteu.xml" id="a104" name="Z-Wave Wall Controller - SR-ZV9001T-CCT-EU" type="0300"/>
+    <Product config="sunricher/zv9101fa.xml" id="d002" name="Dimmer ZV-9101FA" type="0200"/>
+    <Product config="sunricher/srzv9101sachpswitch.xml" id="d006" name="AC Switch ZV-9101SAC-HP-Switch" type="0200"/>
+    <Product config="sunricher/srzv9100aa.xml" id="d00f" name="SR-ZV9100A-A In-Wall Smart Switch" 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/grb3.xml" id="0005" name="GRB3 Multichannel Switch" type="0500"/>
     <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"/>
@@ -1669,7 +1873,10 @@
   <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="0080" name="Vero Duco">
+    <Product config="duco/DucoBox.xml" id="0001" name="DucoBox Motor" type="0003"/>
+    <Product config="duco/Ducotronic_CO-RH_sensor.xml" id="0001" name="DucoBox CO/RH Sensor" type="0004"/>
+  </Manufacturer>
   <Manufacturer id="0237" name="Vestel Elektronik Ticaret ve Sanayi"></Manufacturer>
   <Manufacturer id="0053" name="Viewsonic"></Manufacturer>
   <Manufacturer id="005e" name="ViewSonic Corporation"></Manufacturer>
@@ -1750,17 +1957,6 @@
   <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>
@@ -1769,9 +1965,16 @@
     <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"/>
     <Product config="widom/DRY.xml" id="0900" name="DRY Smart Dry Contact Switch" type="1214"/>
+    <Product config="widom/WDS2.xml" id="0B00" name="WDS2 Smart Double Switch" type="1214"/>
+    <Product config="widom/WSP.xml" id="0700" name="WSP Smart Plug" type="1214"/>
+    <Product config="widom/WTED.xml" id="0A00" name="WTED Smart TE Dimmer" type="1214"/>
+    <Product config="widom/UMS2.xml" id="0800" name="UMS2 Smart Roller Shutter" type="1214"/>
   </Manufacturer>
   <Manufacturer id="012D" name="Wilshine Holding"></Manufacturer>
-  <Manufacturer id="017F" name="Wink"></Manufacturer>
+  <Manufacturer id="017F" name="Wink">
+    <Product config="wink/wnk-mot1.xml" id="0001" name="WNK-MOT1 Motion Sensor" type="0101" />
+    <Product config="wink/wnk-sir1p.xml" id="0001" name="WNK-SIR1P Siren" type="0200" />
+  </Manufacturer>
   <Manufacturer id="004c" name="Woodward Labs"></Manufacturer>
   <Manufacturer id="0242" name="Winytechnology"></Manufacturer>
   <Manufacturer id="0199" name="Wireless Maingate AB"></Manufacturer>
@@ -1783,6 +1986,7 @@
   <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"/>
+    <Product id="0008" name="UZB3 Z-Wave USB Adapter" type="0003"/>
   </Manufacturer>
   <Manufacturer id="031D" name="Z-Wave Alliance"></Manufacturer>
   <Manufacturer id="004F" name="Z-Wave Technologia"></Manufacturer>
@@ -1817,7 +2021,7 @@
   <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"/>
+    <Product id="0002" name="RaZberry Controller 2016 ZWave+" config="zwave.me/razberry.xml" type="0400"/>
   </Manufacturer>
   <Manufacturer id="024D" name="Z-works"></Manufacturer>
   <Manufacturer id="024E" name="zConnect"></Manufacturer>
@@ -1841,28 +2045,41 @@
     <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="zipato/ne-nas-ab02z.xml" id="1083" name="Indoor Siren" type="0003"/>
   </Manufacturer>
   <Manufacturer id="0120" name="Zonoff"></Manufacturer>
   <Manufacturer id="027a" name="Zooz">
+    <Product id="0002" name="ZST10 S2 Z-Wave Plus USB Stick" type="0401"/>
+    <Product config="zooz/zen06.xml" id="000a" name="ZEN06 Smart Plug" type="0101"/>
+    <Product config="zooz/zen07.xml" id="0087" name="ZEN07 Mini Plug" type="0003"/>
     <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/zen16.xml" id="a00a" name="ZEN16 Multirelay" type="a000"/>
+    <Product config="zooz/zen17.xml" id="a00a" name="ZEN17 Universal Relay" type="7000"/>
     <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"/>
-    <Product config="zooz/zse29.xml" id="0005" name="ZSE29 Outdoor Motion Sensor" type="0001"/>
+    <Product config="zooz/zen21v3.xml" id="1e1c" name="ZEN21 Switch V3" type="b111"/>
+    <Product config="zooz/zen22v2.xml" id="1f1c" name="ZEN22 Dimmer V2" type="b112"/>
+    <Product config="zooz/zen23v3.xml" id="251c" name="ZEN23 Toggle Switch" type="b111"/>
+    <Product config="zooz/zen24v2.xml" id="261c" name="ZEN24 Dimmer Switch V2" type="b112"/>
     <Product config="zooz/zen25.xml" id="a003" name="ZEN25 S2 Double Plug with USB Port" type="a000"/>
+    <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/zse29.xml" id="0005" name="ZSE29 Outdoor Motion Sensor" type="0001"/>
+    <Product config="zooz/zen30.xml" id="a008" name="ZEN30 Double Switch" type="a000"/>
+    <Product config="zooz/zse30.xml" id="0085" name="ZSE30 Water Sensor" type="0003"/>
+    <Product config="zooz/zen31.xml" id="2000" name="ZEN31 RGBW Dimmer" type="0902"/>
+    <Product config="zooz/zse33.xml" id="0088" name="ZSE33 Smart Chime" type="0003"/>
+    <Product config="zooz/zen32.xml" id="a008" name="ZEN32 Scene Controller" type="7000"/>
+    <Product config="zooz/zen34.xml" id="f001" name="ZEN34 Remote Switch" type="0004"/>
+    <Product config="zooz/zen34.xml" id="f001" name="ZEN34 Remote Switch" type="7000"/>
+    <Product config="zooz/zse40.xml" id="2101" name="ZSE40 4-in-1 sensor" type="2021"/>
+    <Product config="zooz/zen71.xml" id="a001" name="ZEN71 On Off Switch" type="7000"/>
+    <Product config="zooz/zen72.xml" id="a002" name="ZEN72 Dimmer Switch" type="7000"/>
+    <Product config="zooz/zen76.xml" id="a006" name="ZEN76 S2 On Off Switch" type="7000"/>
+    <Product config="zooz/zen77.xml" id="a007" name="ZEN77 S2 Dimmer Switch" type="7000"/>
   </Manufacturer>
   <Manufacturer id="015d" name="Zooz (Willis Electric)">
     <Product config="zooz/zen20.xml" id="f51c" name="ZEN20 Power Strip" type="0651"/>
@@ -1871,7 +2088,7 @@
     <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"/>
+    <Product config="inovelli/nzw31.xml" id="1f01" name="NZW31 Inovelli Dimmer" type="1f01"/>
   </Manufacturer>
   <Manufacturer id="0315" name="zwaveproducts.com">
     <Product type="4447" id="3031" name="PA-100" config="zwp/PA-100.xml"/>
diff --git a/config/mcohome/mh10pm25wd.xml b/config/mcohome/mh10pm25wd.xml
new file mode 100644
index 0000000000..5774e4231e
--- /dev/null
+++ b/config/mcohome/mh10pm25wd.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="0">
+    <!--MCOHome Particle Matter 2.5 Monitor MH10-PM2.5-WD -->
+    <!-- Configuration -->
+    <CommandClass id="112">
+        <Value genre="config" index="2" instance="1" label="PM2.5 reporting threshold" max="127" min="0" size="1" type="byte" units="" value="10">
+            <Help>0 report disabled, base on 0.1ug/m3 unit, 10 by default, 10*0.1ug/m3=1ug/m3</Help>
+        </Value>
+        <Value genre="config" index="3" instance="1" label="Temperature reporting threshold" max="127" min="0" size="1" type="byte" units="" value="1">
+            <Help>0 report disabled, base on 0.5C unit, 1 by default, 1*0.5C=0.5C</Help>
+        </Value>
+        <Value genre="config" index="4" instance="1" label="Humidity reporting threshold" max="50" min="0" size="1" type="byte" units="" value="2">
+            <Help>0 report disabled, base on 1% unit, 2 by default, 2*1C=2C</Help>
+        </Value>
+        <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="2">
+            <Group index="1" max_associations="5" label="Notification" auto="false"/>
+            <Group index="2" max_associations="1" label="Lifeline" auto="true"/>
+        </Associations>
+    </CommandClass>
+</Product>
diff --git a/config/mcohome/mh8fceu0803.xml b/config/mcohome/mh8fceu0803.xml
new file mode 100755
index 0000000000..b637d8b8fa
--- /dev/null
+++ b/config/mcohome/mh8fceu0803.xml
@@ -0,0 +1,56 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--MCOHome Thermostat fan coil MH8-FC-EU -->
+  <MetaData>
+	<MetaDataItem name="Name">MH8-FC</MetaDataItem>
+	<MetaDataItem name="Description">Fan Coil Thermostat MH8 is a Z-Wave Plus enabled device for indoor temperature control. 
+
+It is mainly applied to a 2-pipe Fan coil system. 
+
+It can read room temperature and local time, 
+
+and automatically control fan speed based on the temperature difference. 
+
+The device is of high reliability and practicability. 
+
+This product can be included and operated 
+
+in any Z-Wave network with other Z-Wave certified devices 
+
+from any other manufacturers. </MetaDataItem>
+	<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/015f:5102:0803</MetaDataItem>
+	<MetaDataItem name="ProductPage">http://www.mcohome.com/ProductDetail/3894174.html</MetaDataItem>
+	<MetaDataItem name="ProductSupport">http://www.mcohome.com/ProductDetail/3894174.html</MetaDataItem>
+	<MetaDataItem name="ProductPic">images/mcohome/mh8fceu0803.png</MetaDataItem>
+	<MetaDataItem name="ProductManual">http://www.mcohome.com/index.php?c=Front/DownDetail&amp;a=downloadFujian&amp;name=MH8-FC%20/%20MH8-FC4&amp;path=L2NvbWRhdGEvOTUzMDEvcHJvZHVjdGZ1amlhbi8yMDIwMDYwMzE1MDQwNjVlZDc0YjY2MjRmODkucGRm</MetaDataItem>
+	<MetaDataItem id="5102" name="Identifier" type="0803">mh8fceu</MetaDataItem>
+	<ChangeLog>
+		<Entry author="Kostas Injeyan - kostas2911@yahoo.gr" date="24 June 2020" revision="1">Initial Metadata Import</Entry>
+	</ChangeLog>
+  </MetaData>
+  <CommandClass id="67">
+  	<Compatibility>
+      <Base>0</Base>
+	    <AltTypeInterpretation>false</AltTypeInterpretation>
+    </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="On Medium"/>
+    </SupportedModes>
+  </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 1c24ec2202..c437d938cc 100644
--- a/config/mcohome/mh9co2.xml
+++ b/config/mcohome/mh9co2.xml
@@ -1,11 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
     <!--MCOHome CO2 Monitor MH9-CO2-WD -->
     <!-- Configuration -->
     <CommandClass id="112">
         <Value type="short" genre="config" instance="1" index="1" label="CO2 Notification threshold" size="2" min="1" max="1200" units="ppm" value="1000">
             <Help>CO2 Notification threshold 1 to 2000ppm</Help>
         </Value>
+        <Value genre="config" index="2" instance="1" label="CO2 reporting threshold" max="100" min="0" size="1" type="byte" units="" value="10">
+            <Help>0 report disabled, base on 5ppm unit, 10 by default, 10*5ppm=50ppm</Help>
+        </Value>
+        <Value genre="config" index="3" instance="1" label="Temperature reporting threshold" max="100" min="0" size="1" type="byte" units="" value="1">
+            <Help>0 report disabled, base on 0.5C unit, 1 by default, 1*0.5C=0.5C</Help>
+        </Value>
+        <Value genre="config" index="4" instance="1" label="Humidity reporting threshold" max="50" min="0" size="1" type="byte" units="" value="2">
+            <Help>0 report disabled, base on 1% unit, 2 by default, 2*1C=2C</Help>
+        </Value>
+        <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">
diff --git a/config/mcohome/mhdt411.xml b/config/mcohome/mhdt411.xml
new file mode 100644
index 0000000000..9289165b86
--- /dev/null
+++ b/config/mcohome/mhdt411.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
+  <!--MCOHome Touch Panel Dimmer Switch MH-DT411 
+	type=d411, id=5102	Unknown: id=015f	0x5102	0xd411
+  -->
+  <MetaData>
+    <MetaDataItem name="Name">Dimmer Switch MH-DT411</MetaDataItem>
+    <MetaDataItem name="Description">Dimmer switch is a wall panel built-in with Z-Wave Plus module. With it's stylish design and stable performance, the panel can be used to control the light level. It supports basic command class, multi channel command class and multi channel association command class, also works as a repeater in a Z-Wave network. This product can be included and operated in any Z-Wave network with other Z-Wave certified devices from any other manufacturers.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/015f:5102:d411</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.mcohome.com/ProductDetail/3894312.html</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.mcohome.com/ProductDetail/3894312.html</MetaDataItem>
+	<MetaDataItem name="ProductPic">images/mcohome/015f_5102_d411.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Set controller into inclusion mode and press 3 clicks on '+' button to include. If succeeded, green led flashes 4 times.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Set controller into exclusion mode and press 3 clicks on '-' button to exclude. If succeeded, green led flashes 4 times.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press 10 times of any button or exclude the device from Z-Wave network, then cut off the main power. The factory setting will be restored.</MetaDataItem>
+	<MetaDataItem id="015f" name="FrequencyName" type="015f">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="rrozema - richard@uitdelft.nl" date="16 November 2020" revision="1">Information retrieved from manual pages delivered with the product. No revision or date on the manual.</Entry>
+      <Entry author="rrozema - richard@uitdelft.nl" date="18 November 2020" revision="2">Fixed option 17. Enabled and Disabled where interchanged.</Entry>
+      <Entry author="rrozema - richard@uitdelft.nl" date="18 November 2020" revision="3">Fixed association group indexes. Was 1, 2, 5, 8. Now 1, 2, 3, 4.</Entry>
+    </ChangeLog>
+  </MetaData>
+  
+  <!-- Configuration -->
+  <CommandClass id="112">    
+    <Value type="list" genre="config" instance="1" index="1" label="Saving state before power failure" size="1" value="1">
+      <Help>Switch state saved or not when power down</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Dimming mode" type="list" size="1" value="1">
+      <Help>0x00 leading edge, 0x01 trailing edge, 0x02 On/off only. Default 0x01.</Help>
+      <Item label="Leading edge" value="0"/>
+      <Item label="Trailing edge" value="1"/>
+      <Item label="On/off only" value="2"/>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Auto detection of dimming mode when powered on" type="list" size="1" value="1">
+      <Help>0 = Auto detection disabled, 1 = Auto detection enabled.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="LED Backlit brightness level" type="byte" min="0" max="10" value="10">
+      <Help>0 = LED disabled, 1 - 10 = min level - max level.</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Minimum brightness level" type="byte" min="1" max="98" units="%" value="1">
+      <Help>1 - 98 percentage minimum brightness level. Must always be less than Maximum (option 6).</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Maximum brightness level" type="byte" min="2" max="99" units="%" value="99">
+      <Help>1 - 98 percentage minimum brightness level. Must always be higher than Minimum (option 5).</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Single dimming step time (manual)" type="short" min="0" max="255" units="10 ms" value="3">
+      <Help>Max 2.55s, in 10ms steps. Default = 3 for 30ms.</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Single dimming step size (manual)" type="byte" min="0" max="99" units="%" value="1">
+      <Help>1 - 99% per step. Recommended not to change. Default value = 1.</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Single dimming step time (auto)" type="short" min="0" max="255" units="10 ms" value="3">
+      <Help>Max 2.55s, in 10ms steps. Default = 3 for 30ms.</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Single dimming step size (auto)" type="byte" min="0" max="99" units="%" value="1">
+      <Help>1 - 99% per step. Recommended not to change. Default value = 1.</Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Dimming percentage set when single touching button '+' or '-'" type="byte" min="0" max="99" units="%" value="0">
+      <Help>0 = percentage from the last button-holding touch. 1 - 99 = percentage to set. Default value = 0.</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Reporting interval for dimming level" type="byte" min="0" max="255" units="10 ms" value="10">
+      <Help>0 = No report during dimming, 1 - 255 = send report in 1 - 255 * 10ms intervals. Default value = 10ms.</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="External switch type" type="list" size="1" value="0">
+      <Help>0 = Buttons, 1 = Toggle. Default value = Buttons.</Help>
+      <Item label="Buttons (momentary buttons)" value="0"/>
+      <Item label="Toggle (2-state switches)" value="1"/>
+    </Value>
+	<Value genre="config" index="14" instance="1" label="External switch input" type="list" size="1" value="0">
+      <Help>Default value = function disabled.</Help>
+      <Item label="function disabled" value="0"/>
+      <Item label="wire 1 external switch key to S1 only" value="1"/>
+      <Item label="wire 1 external switch key to S2 only" value="2"/>
+      <Item label="2 external switch keys wired to S1 and S2, each key can control both dimming directions" value="3"/>
+      <Item label="2 external switch keys wired to S1 and S2, each key controls one dimming direction" value="4"/>
+    </Value>
+	<Value genre="config" index="15" instance="1" label="Energy meter reporting" type="list" size="1" value="0">
+      <Help>Defines which metering values to send to the gateway. Default value = Disabled.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Watt" value="1"/>
+      <Item label="KWH" value="2"/>
+      <Item label="Watt + KWH" value="3"/>
+      <Item label="Ampere" value="4"/>
+      <Item label="Watt + Ampere" value="5"/>
+      <Item label="KWH + Ampere" value="6"/>
+      <Item label="Watt + KWH + Ampere" value="7"/>
+      <Item label="Voltage" value="8"/>
+      <Item label="Watt + Voltage" value="9"/>
+      <Item label="KWH + Voltage" value="10"/>
+      <Item label="Watt + KWH + Voltage" value="11"/>
+      <Item label="Ampere + Voltage" value="12"/>
+      <Item label="Watt + Ampere + Voltage" value="13"/>
+      <Item label="KWH + Ampere + Voltage" value="14"/>
+      <Item label="Watt + KWH + Ampere + Voltage" value="15"/>
+    </Value>
+    <Value genre="config" index="16" instance="1" label="Energy meter reporting interval" type="byte" min="0" max="255" units="seconds" value="10">
+      <Help>Interval to send unsollicited energy reports to the gateway. Requires option 15 (Energy meter reporting) to be set to anything other than Disabled. Default value is every 10 seconds.</Help>
+    </Value>
+    <Value genre="config" index="17" instance="1" label="Beep" type="list" size="1" value="1">
+      <Help>Enable or disable beep upon touching '+' and '-'. Default value = Enabled.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="32" instance="1" label="Ampere alarm threshold" type="short" units="0.01 Ampere" min="0" max="5000" value="0">
+      <Help>0 = alarm disabled, 1 - 5000 * 0.01 Ampere alarm enabled (notification to gateway). Default = 0 - alarm disabled.</Help>
+    </Value>
+    <Value genre="config" index="33" instance="1" label="Voltage alarm threshold" type="short" units="0.1 Volt" min="0" max="10000" value="0">
+      <Help>0 = alarm disabled, 1 - 10000 * 0.1 Volt alarm enabled (notification to gateway). Default = 0 - alarm disabled.</Help>
+    </Value>
+    <Value genre="config" index="255" instance="1" label="Factory reset" type="list" size="1" value="0">
+      <Help>Restore factory settings (write only). Default value = Disabled.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Factory reset" value="85"/>
+    </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="Send Switch Multilevel to associated devices"/>
+      <Group index="3" max_associations="5" label="Send Basic Set to associated devices on key '+'"/>
+      <Group index="4" max_associations="5" label="Send Basic Set to associated devices on key '-'"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/mcohome/mhs220.xml b/config/mcohome/mhs220.xml
new file mode 100644
index 0000000000..8885a18f78
--- /dev/null
+++ b/config/mcohome/mhs220.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!--MCOHome MH-S220 One-Load -->
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="1" label="Switch state saved or not when power down" units="" size="1" min="0" max="1" type="byte">
+      <Help>Switch state saved or not when power down. 0 = not saved, 1 = saved</Help>
+    </Value>
+    <Value genre="config" instance="1" index="2" value="1" label="External switch type " units="" size="1" min="0" max="1" type="byte">
+      <Help>External switch type. 0 = button, 1 = toggle (2 state switches)</Help>
+    </Value>
+    <Value genre="config" instance="1" index="3" value="0" label="2-state switches" units="" size="1" min="0" max="1" type="byte">
+      <Help>2-state switches: 0 = toggle switch without specific position, 1 = toggle with specific on/off positions</Help>
+    </Value>
+    <Value genre="config" instance="1" index="4" value="0" label="Report from Switch 1 to Association Group 1" units="" size="1" min="0" max="2" type="byte">
+      <Help>Report from Switch 1 to Association Group 1</Help>
+    </Value>
+    <Value genre="config" instance="1" index="5" value="1" label="OFF timer" units="" size="1" min="0" max="1" type="byte">
+      <Help>OFF timer</Help>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="0" label="Timing function" units="" size="2" min="0" max="0" type="short">
+      <Help>Timing function</Help>
+    </Value>
+    <Value genre="config" instance="1" index="7" value="0" label="Operation mode of Switch 1" units="" size="1" min="0" max="1" type="byte">
+      <Help>Operation mode of Switch 1</Help>
+    </Value>
+    <Value genre="config" instance="1" index="8" value="0" label="Operation report from Sw 2 to Assoc Group 2" units="" size="1" min="0" max="2" type="byte">
+      <Help>Operation report from Switch 2 to Association Group 2</Help>
+    </Value>
+    <Value genre="config" instance="1" index="255" value="0" label="Factory setting" units="" size="1" min="0" max="55" type="byte">
+      <Help>Factory setting</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="SW 1" max_associations="5" />
+      <Group index="2" label="SW 2" max_associations="5" />
+      <Group index="3" label="Controller" max_associations="5" auto="true" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/mcohome/mhs513.xml b/config/mcohome/mhs513.xml
index cad9d94025..f78d92064f 100644
--- a/config/mcohome/mhs513.xml
+++ b/config/mcohome/mhs513.xml
@@ -1,11 +1,294 @@
-<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
   <!--MCOHome Touch Panel Switch MH-S513 -->
+  <MetaData>
+    <MetaDataItem name="Name">MH-S513 Touch Panel Switch</MetaDataItem>
+    <MetaDataItem name="Description">MCOHome Touch Panel Switch is a wall panel built-in with Z-Wave Plus module. It supports basic command class, association command class, which can control all associated devices synchronously. This product can be included and operated in any Z-Wave network with other Z-Wave certified devices from any other manufacturers.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/015f:5102:0103</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/015f:5103:5131</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.mcohome.com/ProductDetail/3894278.html</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/mcohome/mhs513.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Press and hold any key on the panel for 8 seconds or 3 clicks in quick succession. Note: If inclusion is successful, all INDICATION LEDs on the panel will flash 4 times.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Press and hold any key on the panel for 8 seconds or 3 clicks in quick succession. Note: If the exclusion is successful, all INDICATION LEDs on the panel will flash 4 times. The exclusion will delete all association data.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Write 0x55 to Configuration Parameter Index 255, or Press 20 times of any button or exclude the device from Z-Wave network, the factory setting will be restored.</MetaDataItem>
+    <MetaDataItem id="5102" name="FrequencyName" type="0103">US / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="5103" name="FrequencyName" type="5131">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="5102" name="Identifier" type="0103">MH-S513-US</MetaDataItem>
+    <MetaDataItem id="5103" name="Identifier" type="5131">MH-S513-AU</MetaDataItem>
+    <ChangeLog>
+      <Entry author="StuartW - swish@email4me.com" date="27 December 2020" revision="4">Add AU frequency and update Configuration</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration -->
   <CommandClass id="112">
-    <Value genre="config" index="1" instance="1" label="Saving state before power failure" size="1" type="list" value="1">
+    <Value genre="config" index="2" label="Switch state saved or not when power down" max="1" min="0" 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"/>
+      <Item label="Not Saved. Switch will be off when powered again" value="0"/>
+      <Item label="Saved. Switch will keep the same state when powered again" value="1"/>
+    </Value>
+    <Value genre="config" index="3" label="All On / All Off" max="255" min="0" size="1" type="list" value="255">
+      <Help>All On / All Off</Help>
+      <Item label="forbid ALL ON, forbid ALL OFF" value="0"/>
+      <Item label="forbid ALL ON, allow ALL OFF" value="1"/>
+      <Item label="allow ALL ON, forbid ALL OFF" value="2"/>
+      <Item label="allow ALL ON, allow ALL OFF" value="255"/>
+    </Value>
+    <Value genre="config" index="4" label="LED Backlit brightness level" max="10" min="0" type="byte" units="" value="10">
+      <Help>0 = Off; 1 - 10 = Minimum - Maximum brightness level</Help>
+    </Value>
+    <Value genre="config" index="5" label="Key Mode" max="4" min="0" size="1" type="list" value="0">
+      <Help>
+      Key Mode
+      This function works for corridor or stairwell situation.
+      </Help>
+      <Item label="Single click to switch on/off status" value="0"/>
+      <Item label="Key default as off state. When it is turned on, then it will be turned off automatically after a time period, which can be set in item Key On duration" value="1"/>
+      <Item label="Key default as on state. When it is turned off, then it will be turned on automatically after a time period , which can be set in item Key On duration" value="2"/>
+      <Item label="Hold >3s then key is on, and off once released" value="3"/>
+      <Item label="Single click to switch on/off status and hold >3s then key is on, and off once released" value="4"/>
+      <Item label="Momentary Switch Mode 2, hold the key is on, off once released" value="5"/>
+      <Item label="If key is off, hold >3s then key is on, and it remains on after relese. If is is on, hold >3s then key is off, and it remains off after release." value="6"/>
+    </Value>
+    <Value genre="config" index="6" label="Key On duration" max="65535" min="0" type="short" units="s" value="0">
+      <Help>
+      Key On duration
+      0 = infinite
+      1 - 65535 = on duration in seconds
+      </Help>
+    </Value>
+    <Value genre="config" index="8" label="Basic CC integration setting" max="3" min="0" size="1" type="list" value="0">
+      <Help>
+      Basic CC integration setting
+      This parameter works for integration with different gateways/systems. If you do not know how to use, please keep as default.
+      </Help>
+      <Item label="Basic Set received, key 1 responds; Basic Get received, key 1 sends Basic Report; key 1 will not send unsolicited Basic Report (No Endpoint) to LifeLine Association" value="0"/>
+      <Item label="Basic Set received, key 1 responds; Basic Get received, key 1 sends Basic Report; key 1 will send unsolicited Basic Report (No Endpoint) to LifeLine Association" value="1"/>
+      <Item label="Basic Set received, all keys respond; Basic Get received, not reply Basic Report; All keys will not send unsolicited Basic Report (No Endpoint) to LifeLine Association" value="2"/>
+      <Item label="Basic Set received, all keys respond; Basic Get received, key 1 sends Basic Report; All keys will not send unsolicited Basic Report (No Endpoint) to LifeLine Association" value="3"/>
+    </Value>
+    <Value genre="config" index="10" label="Key 1 Mode" max="6" min="0" size="1" type="list" value="0">
+      <Help>
+      Key Mode
+      This function works for corridor or stairwell situation.
+      </Help>
+      <Item label="Single click to switch on/off status" value="0"/>
+      <Item label="Key default as off state. When it is turned on, then it will be turned off automatically after a time period, which can be set in item Key On duration" value="1"/>
+      <Item label="Key default as on state. When it is turned off, then it will be turned on automatically after a time period , which can be set in item Key On duration" value="2"/>
+      <Item label="Hold >3s then key is on, and off once released" value="3"/>
+      <Item label="Single click to switch on/off status and hold >3s then key is on, and off once released" value="4"/>
+      <Item label="Momentary Switch Mode 2, hold the key is on, off once released" value="5"/>
+      <Item label="If key is off, hold >3s then key is on, and it remains on after relese. If is is on, hold >3s then key is off, and it remains off after release." value="6"/>
+    </Value>
+    <Value genre="config" index="11" label="Key 2 Mode" max="6" min="0" size="1" type="list" value="0">
+      <Help>
+      Key Mode
+      This function works for corridor or stairwell situation.
+      </Help>
+      <Item label="Single click to switch on/off status" value="0"/>
+      <Item label="Key default as off state. When it is turned on, then it will be turned off automatically after a time period, which can be set in item Key On duration" value="1"/>
+      <Item label="Key default as on state. When it is turned off, then it will be turned on automatically after a time period , which can be set in item Key On duration" value="2"/>
+      <Item label="Hold >3s then key is on, and off once released" value="3"/>
+      <Item label="Single click to switch on/off status and hold >3s then key is on, and off once released" value="4"/>
+      <Item label="Momentary Switch Mode 2, hold the key is on, off once released" value="5"/>
+      <Item label="If key is off, hold >3s then key is on, and it remains on after relese. If is is on, hold >3s then key is off, and it remains off after release." value="6"/>
+    </Value>
+    <Value genre="config" index="12" label="Key 3 Mode" max="6" min="0" size="1" type="list" value="0">
+      <Help>
+      Key Mode
+      This function works for corridor or stairwell situation.
+      </Help>
+      <Item label="Single click to switch on/off status" value="0"/>
+      <Item label="Key default as off state. When it is turned on, then it will be turned off automatically after a time period, which can be set in item Key On duration" value="1"/>
+      <Item label="Key default as on state. When it is turned off, then it will be turned on automatically after a time period , which can be set in item Key On duration" value="2"/>
+      <Item label="Hold >3s then key is on, and off once released" value="3"/>
+      <Item label="Single click to switch on/off status and hold >3s then key is on, and off once released" value="4"/>
+      <Item label="Momentary Switch Mode 2, hold the key is on, off once released" value="5"/>
+      <Item label="If key is off, hold >3s then key is on, and it remains on after relese. If is is on, hold >3s then key is off, and it remains off after release." value="6"/>
+    </Value>
+    <Value genre="config" index="14" label="Disable Local Control" max="15" min="0" size="1" type="list" value="0">
+      <Help>All On / All Off</Help>
+      <Item label="all keys are valid for local control" value="0"/>
+      <Item label="all keys are invalid for local control" value="15"/>
+    </Value>
+    <Value genre="config" index="15" label="Disable Remote Control" max="15" min="0" size="1" type="list" value="0">
+      <Help>All On / All Off</Help>
+      <Item label="all keys are valid for remote (gateway) control" value="0"/>
+      <Item label="all keys are invalid for remote (gateway) control" value="15"/>
+    </Value>
+    <Value genre="config" index="16" label="Scene response" size="1" type="bitset" bitmask="7" value="0">
+      <Help>Scene response</Help>
+      <BitSet id="1">
+        <Label>Key 1</Label>
+        <Help>Key 1 scene response</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Key 2</Label>
+        <Help>Key 2 scene response</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Key 3</Label>
+        <Help>Key 3 scene response</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="17" label="Key1 Scene Activate Mode Setting" max="3" min="0" size="1" type="list" value="0">
+      <Help>Key 1 Scene response</Help>
+      <Item label="Scence active function disabled" value="0"/>
+      <Item label="One click Key1 always activate scene ID no matter what the status of Key1 is" value="1"/>
+      <Item label="One click Key1 always activate scene ID when Key1's relay output is open" value="2"/>
+      <Item label="One click Key1 always activate scene ID when Key1's relay output is closed" value="3"/>
+    </Value>
+    <Value genre="config" index="18" label="Key1 Activate Scene ID" max="255" min="0" type="byte" units="" value="0">
+      <Help>
+      Key1 Activate Scene ID
+      0 = Scene ID is invalid and will not send scene activate command.
+      1 - 255 = Scene ID
+      </Help>
+    </Value>
+    <Value genre="config" index="19" label="Key1 Activate Scene Duration" max="254" min="0" type="byte" units="" value="0">
+      <Help>
+      Key1 Activate Scene Duration
+      0 = Instantly
+      1 - 127 = Dimming durations from 1 second (1 | 0x01) to 127 seconds (127 | 0x7F) in 1-second resolution
+      128 - 254 = Dimming durations from 1 minute (128 | 0x80) to 127 minutes (254 | 0xFE) in 1-minute resolution
+      </Help>
+    </Value>
+    <Value genre="config" index="20" label="Key2 Scene Activate Mode Setting" max="3" min="0" size="1" type="list" value="0">
+      <Help>Key 2 Scene response</Help>
+      <Item label="Scence active function disabled" value="0"/>
+      <Item label="One click Key2 always activate scene ID no matter what the status of Key2 is" value="1"/>
+      <Item label="One click Key2 always activate scene ID when Key2's relay output is open" value="2"/>
+      <Item label="One click Key2 always activate scene ID when Key2's relay output is closed" value="3"/>
+    </Value>
+    <Value genre="config" index="21" label="Key2 Activate Scene ID" max="255" min="0" type="byte" units="" value="0">
+      <Help>
+      Key2 Activate Scene ID
+      0 = Scene ID is invalid and will not send scene activate command.
+      1 - 255 = Scene ID
+      </Help>
+    </Value>
+    <Value genre="config" index="22" label="Key2 Activate Scene Duration" max="254" min="0" type="byte" units="" value="0">
+      <Help>
+      Key2 Activate Scene Duration
+      0 = Instantly
+      1 - 127 = Dimming durations from 1 second (1 | 0x01) to 127 seconds (127 | 0x7F) in 1-second resolution
+      128 - 254 = Dimming durations from 1 minute (128 | 0x80) to 127 minutes (254 | 0xFE) in 1-minute resolution
+      </Help>
+    </Value>
+    <Value genre="config" index="23" label="Key3 Scene Activate Mode Setting" max="3" min="0" size="1" type="list" value="0">
+      <Help>Key 3 Scene response</Help>
+      <Item label="Scence active function disabled" value="0"/>
+      <Item label="One click Key3 always activate scene ID no matter what the status of Key3 is" value="1"/>
+      <Item label="One click Key3 always activate scene ID when Key3's relay output is open" value="2"/>
+      <Item label="One click Key3 always activate scene ID when Key3's relay output is closed" value="3"/>
+    </Value>
+    <Value genre="config" index="24" label="Key3 Activate Scene ID" max="255" min="0" type="byte" units="" value="0">
+      <Help>
+      Key3 Activate Scene ID
+      0 = Scene ID is invalid and will not send scene activate command.
+      1 - 255 = Scene ID
+      </Help>
+    </Value>
+    <Value genre="config" index="25" label="Key3 Activate Scene Duration" max="254" min="0" type="byte" units="" value="0">
+      <Help>
+      Key3 Activate Scene Duration
+      0 = Instantly
+      1 - 127 = Dimming durations from 1 second (1 | 0x01) to 127 seconds (127 | 0x7F) in 1-second resolution
+      128 - 254 = Dimming durations from 1 minute (128 | 0x80) to 127 minutes (254 | 0xFE) in 1-minute resolution
+      </Help>
+    </Value>
+    <Value genre="config" index="32" label="Scene response ID 1 - 50" size="1" type="bitset" bitmask="7" value="0">
+      <Help>
+      Scene response  ID 1 - 50
+      Valid only when the default is 0 (0x00) for Scene response (parameter 16 | 0x10)
+      </Help>
+      <BitSet id="1">
+        <Label>Key 1</Label>
+        <Help>Key 1 scene response</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Key 2</Label>
+        <Help>Key 2 scene response</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Key 3</Label>
+        <Help>Key 3 scene response</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="33" label="Scene response ID 51 - 100" size="1" type="bitset" bitmask="7" value="0">
+      <Help>
+      Scene response  ID 51 - 100
+      Valid only when the default is 0 (0x00) for Scene response (parameter 16 | 0x10)
+      </Help>
+      <BitSet id="1">
+        <Label>Key 1</Label>
+        <Help>Key 1 scene response</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Key 2</Label>
+        <Help>Key 2 scene response</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Key 3</Label>
+        <Help>Key 3 scene response</Help>
+      </BitSet>
+    </Value>   
+    <Value genre="config" index="34" label="Scene response ID 101 - 150" size="1" type="bitset" bitmask="7" value="0">
+      <Help>
+      Scene response  ID 101 - 150
+      Valid only when the default is 0 (0x00) for Scene response (parameter 16 | 0x10)
+      </Help>
+      <BitSet id="1">
+        <Label>Key 1</Label>
+        <Help>Key 1 scene response</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Key 2</Label>
+        <Help>Key 2 scene response</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Key 3</Label>
+        <Help>Key 3 scene response</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="35" label="Scene response ID 151 - 200" size="1" type="bitset" bitmask="7" value="0">
+      <Help>
+      Scene response  ID 151 - 200
+      Valid only when the default is 0 (0x00) for Scene response (parameter 16 | 0x10)
+      </Help>
+      <BitSet id="1">
+        <Label>Key 1</Label>
+        <Help>Key 1 scene response</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Key 2</Label>
+        <Help>Key 2 scene response</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Key 3</Label>
+        <Help>Key 3 scene response</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="36" label="Scene response ID 201 - 250" size="1" type="bitset" bitmask="7" value="0">
+      <Help>
+      Scene response  ID 201 - 250
+      Valid only when the default is 0 (0x00) for Scene response (parameter 16 | 0x10)
+      </Help>
+      <BitSet id="1">
+        <Label>Key 1</Label>
+        <Help>Key 1 scene response</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>Key 2</Label>
+        <Help>Key 2 scene response</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>Key 3</Label>
+        <Help>Key 3 scene response</Help>
+      </BitSet>
+    </Value>
+    <Value genre="config" index="255" label="Restore factory setting" max="85" min="0" size="1" type="list" value="0">
+      <Help>Restore factory setting</Help>
+      <Item label="Normal" value="0"/>
+      <Item label="Reset to factory defaults" value="85"/>
     </Value>
   </CommandClass>
   <!-- Map endpoints to instances -->
@@ -17,10 +300,10 @@
   <!-- Association Groups -->
   <CommandClass id="133">
     <Associations num_groups="4">
-      <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"/>
+      <Group index="1" label="Gateway" max_associations="1"/>
+      <Group index="2" label="Key1" max_associations="5"/>
+      <Group index="5" label="Key2" max_associations="5"/>
+      <Group index="8" label="Key3" max_associations="5"/>
     </Associations>
   </CommandClass>
 </Product>
diff --git a/config/namron/1402756.xml b/config/namron/1402756.xml
new file mode 100644
index 0000000000..551d38e1db
--- /dev/null
+++ b/config/namron/1402756.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
+    <!--
+    LED Dimmer Z-Wave 200W
+    Manual: 
+    -->
+  <MetaData>
+    <MetaDataItem name="Name">Namron LED Dimmer Z-Wave 200W</MetaDataItem>
+    <MetaDataItem name="Description">LED Z-Wave dimmer with smart  functionality and power consumption tackle most conditions such as LED, halogen or electronic transformer. Possibility of wireless control via central unit / gateway or pulse control by direct connection.
+Technical description
+
+A trailing edge dimmer, for use with 230V Halogen, 230V LED and electronic transformers. Has built-in short cut protection in case of lamp failure. Only need L-conductor connected.</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/namron/1402756.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Double click on the reset button </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Double click on the reset button</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Hold reset button for >5 secs</MetaDataItem>
+    <MetaDataItem id="0002" name="Identifier" type="0202">1402756</MetaDataItem>
+     <ChangeLog>
+      <Entry author="Per Weisteen - per@weisteen.net" date="01 May 2020" revision="1">Handcrafted based on domoticz/Config/config-template.xml and Vendors product manual</Entry>
+      <Entry author="Justin Hammond" date="24 June 2020" revision="2">Add Product Pic</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- Configuration -->
+  <CommandClass id="112"> 	
+    <Value type="list" genre="config" instance="1" index="1" label="Saving state before power failure" size="1" value="0">
+        <Help>
+              Saving state before power failure.
+            Default Not saved.
+        </Help>
+      <Item label="State NOT saved at power failure, switch are set to OFF upon power restore" value="0"/>
+      <Item label="State NOT saved at power failure, switch are set to ON upon power restore" value="1"/>
+      <Item label="State saved at power failure, switch are set to previous state upon power restore" value="2"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="2" label="Send the notification" size="1" value="1">
+        <Help>Enable/disable to send notification to the Group 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="Send Switch Multilevel Report" value="1"/>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="3" label="Dimming speed" min="0" max="100" value="5">
+        <Help>Dimming speed in seconds. Valid values is 0-100.
+		Default 5.
+        </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="5" label="External switch" size="1" value="0">
+        <Help>
+          Enable or Disable external switch to pair network
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+   </Value>
+   <Value type="list" genre="config" instance="1" index="6" label="Dimming mode" size="1" value="0">
+        <Help>
+	   Set the Dimming mode to be Linear or Logaritmic
+        </Help>
+      <Item label="Linear" value="0"/>
+      <Item label="Logaritmic" value="1"/>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="7" label="Dimming brightness when dimmer is turned on" size="1" min="0" max="99" value="0">
+        <Help>Setting brightness when turn on dimmer from off status.
+		Setting of 0 means that the dimmer will use parameter 1.
+		Valid values: 0-99
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="8" label="Delay time when turned off" min="0" max="60" value="0">
+        <Help>
+           Setting delay time in seconds when load is turned off.
+		Valid values : 0-60 seconds
+        </Help>
+     </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" max_associations="5" label="Lifeline"/>
+      <Group index="2" max_associations="5" label="Basic Set"/>
+      <Group index="3" max_associations="5" label="Switch Multilevel"/>
+      <Group index="4" max_associations="5" label="External Button"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/namron/4512710.xml b/config/namron/4512710.xml
new file mode 100644
index 0000000000..417182469b
--- /dev/null
+++ b/config/namron/4512710.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+  <MetaData>
+    <MetaDataItem name="Name">Namron Z-Wave Dimmer 400W</MetaDataItem>
+    <MetaDataItem name="Description">
+      The in-wall dimmer is a Z-Wave device that is used to switch ON/OFF and adjust light intensity of the connected light.
+    </MetaDataItem>
+    <MetaDataItem name="ProductPic">images/namron/4512710.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Triple click on the reset button or repower the device</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Triple click on the reset button</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold reset button for 10 seconds</MetaDataItem>
+    <MetaDataItem id="d005" name="Identifier" type="0200">4512710</MetaDataItem>
+     <ChangeLog>
+      <Entry author="Nikhil André Luthra - nikhil.a.luthra@gmail.com" date="01 Nov 2020" revision="1">Handcrafted based on namron/1402756.xml and Vendors product manual</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- Configuration -->
+  <CommandClass id="112"> 	
+    <Value type="list" genre="config" instance="1" index="2" label="Saving load state before power failure" size="1" value="0">
+        <Help>
+          Saving state before power failure.
+        </Help>
+      <Item label="Shutoff load" value="0"/>
+      <Item label="Turn on load" value="1"/>
+      <Item label="Save load state before power failure" value="2"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="3" label="Send 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, repower on the dimmer, it will send Basic report automatically)
+        </Help>
+      <Item label="Disable to send Basic report" value="0"/>
+      <Item label="Enable to send Basic report" value="1"/>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="4" label="Fade time" min="0" max="127" value="1">
+        <Help>
+          Default fade time (unit is second, this value has the same function as Duration of Multilevel).
+          Valid value: 0~127
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="5" label="Minimum brightness" size="1" value="5">
+        <Help>
+          Setting minimum brightness value. 
+          Valid value: 0~50, the bigger the value is, the higher the load’s minimum brightness is.
+        </Help>
+   </Value>
+  <Value type="list" genre="config" instance="1" index="6" label="MOSFET driving type" size="1" value="0">
+        <Help>
+          Choose MOSFET driving type.
+        </Help>
+        <Item label="Trailing edge" value="0"/>
+        <Item label="Leading edge" value="1"/>
+    </Value>
+     <Value type="list" genre="config" instance="1" index="7" label="Add/remove through external switch" size="1" value="1">
+        <Help>
+          Added to and removed from a network through external
+          switch (when enables this function, triple press the external
+          switch within 1.5 seconds to be added to or removed from a
+          network)
+        </Help>
+        <Item label="Disable" value="0"/>
+        <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="8" label="Dimming curve" size="1" value="0">
+        <Help>
+          Setting dimming curve
+        </Help>
+        <Item label="linear dimming" value="0"/>
+        <Item label="logarithmic dimming" value="1"/>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="9" label="Startup brightness of load" size="1" value="0">
+        <Help>
+          Setting startup brightness of the load
+          Valid value: 0~99
+          Note: every time when turn on the load from OFF status, if the
+          target brightness is lower than the startup brightness, the
+          brightness will first go to the startup brightness value then
+          fall down to the target brightness
+        </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/namron/4512712.xml b/config/namron/4512712.xml
new file mode 100644
index 0000000000..abf65f42b0
--- /dev/null
+++ b/config/namron/4512712.xml
@@ -0,0 +1,47 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">Namron Z-Wave 1 kanal bryter K2</MetaDataItem>
+    <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave devices and activate scenes in Gateways. Although it is controlling other devices, the device cannot act as Z-Wave network controller (primary or secondary) and will always need a Z-Wave network controller to be added into a Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0438:a30f:0300</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.namron.com/products/namron-z-wave-1-kanal-bryter-k2/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.namron.com/contact/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/namron/4512712.jpg</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.elektroimportoren.no/docs/lib/4512712-Brukerveiledning-5.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">short press any button</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Set controller in inclusion mode press and hold down group 2 keys for 3 seconds</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Set controller in exclusion mode press and hold down group 2 keys for 3 seconds</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down group 2 keys for more than 10 seconds use only if controller is unavailable</MetaDataItem>
+    <MetaDataItem id="0xa30f" name="ZWProductPage" type="0x0300">https://products.z-wavealliance.org/products/3910</MetaDataItem>
+    <MetaDataItem id="0xa30f" name="FrequencyName" type="0x0300">CEPT</MetaDataItem>
+    <MetaDataItem id="0xa30f" name="Identifier" type="0x0300">4512712</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Joachim M. Giæver" date="28 November 2020" revision="2">Fix id. </Entry>
+      <Entry author="Joachim M. Giæver" date="28 November 2020" revision="1">Initial release. </Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+    <!-- Here is a Byte/Int/Short Value Sample -->
+    <Value genre="config" index="1" label="Factory reset" max="21930" min="21930" type="int" units="" value="0" write_only="true">
+      <Help>Set to 21930 to factory reset the device.</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Launch 1" max_associations="5" auto="true"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/namron/4512714.xml b/config/namron/4512714.xml
new file mode 100644
index 0000000000..ce946db57d
--- /dev/null
+++ b/config/namron/4512714.xml
@@ -0,0 +1,84 @@
+<?xml version='1.0'?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+   <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+   <MetaData>
+      <MetaDataItem name="Name">Namron Z-Wave 4 Channel Wall Remote K8</MetaDataItem>
+      <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave devices and activate scenes in
+         Gateways. Although it is controlling other devices, the device 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. It also
+         supports the Over The Air (OTA) feature for the product’s firmware upgrade.
+
+         The remote control has following functions:
+         1. Control of groups of other Z-Wave devices using 'ON', 'OFF' and Dim commands.
+         2. Activation of scenes in Gateway mode.
+
+         The encryption modes that the remote control supports are S0, S2 Authenticated, S2 Unauthenticated. When
+         the remote control is being included into a Z-Wave network, you can use your primary controller/gateway to
+         enable one encryption mode or disable encryption. (The primary controller/gateway shall support
+         encryption mode configuration).
+      </MetaDataItem>
+      <MetaDataItem name="OzwInfoPage">XX http://www.openzwave.com/device-database/0438:a305:0300</MetaDataItem>
+      <MetaDataItem name="ProductPage">https://www.namron.com/products/namron-z-wave-4-kanaler-bryter-k8-854/</MetaDataItem>
+      <MetaDataItem name="ProductSupport">https://www.namron.com/contact/</MetaDataItem>
+      <MetaDataItem name="ProductPic">images/namron/4512714.jpg</MetaDataItem>
+      <MetaDataItem name="ProductManual">https://www.elektroimportoren.no/docs/lib/4512714-Brukerveiledning-5.pdf</MetaDataItem>
+      <MetaDataItem name="WakeupDescription">The remote control is under sleepy mode for most of the time to save battery power. It can not receive wireless
+         command under sleepy mode. Before the gateway interacts data with the remote, the remote control shall be
+         activated manually first. Short press any button to activate the remote control for 3s, and press and hold down
+         I and O buttons of Group 2 over 1 second to activate the remote control</MetaDataItem>
+      <MetaDataItem name="InclusionDescription">Step 1. Make sure the remote control does not belong to any Z-Wave network, short press any button, if LED 
+         indicator does not turn on, the remote control does not belong to any network, then continue step 2,if LED indicator turns on, it means the remote
+         control has already been included to a network, please first set the remote control to exclusion mode (refer to the part Exclusion"" of this manual),
+         then continue step 2.
+         
+         Step 2. Set primary controller/gateway into inclusion mode (Please refer to your primary controllers manual on how to turn your controller into inclusion).
+         
+         Step 3. Press and hold down both buttons I and O of Group 2 over 3 seconds, LED indicator turns on, the remote control will be set to inclusion mode, 
+         and waiting to be included, after 10s LED indicator blinks 6 times quickly to indicate successful inclusion. The remote control is a sleepy device, 
+         after inclusion it will not enter into sleepy mode immediately, and will continue activation status for 30s and wait data interaction from the gateway, 
+         the LED indicator will stay solid on, please be patient to wait LED indicator to turn off.
+      </MetaDataItem>
+      <MetaDataItem name="ExclusionDescription">There are two exclusion methods:
+         Method 1: Exclusion from the primary controller/gateway as follows:
+            1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual on how to set your controller into exclusion).
+            2. Press and hold down both buttons I and O of Group 2 over 3 seconds, LED indicator turns on, the remote control will be set to exclusion mode, and
+            waiting to be excluded, after 7s LED indicator blinks 4 times quickly to indicate successful exclusion.
+         Method 2: Factory reset the remote control will force the remote control to be excluded from a network. (please refer to the part “Factory Reset” of this manual)
+      </MetaDataItem>
+      <MetaDataItem name="ResetDescription">Press and hold down both buttons I and O of Group 2 for over 10 seconds, LED indicator turns on and then
+         blinks 4 times quickly to indicate successful factory reset.Please use this procedure only when the network
+         primary controller is missing or otherwise inoperable.</MetaDataItem>
+      <MetaDataItem id="0xa305" name="ZWProductPage" type="0x0300">https://products.z-wavealliance.org/products/3639</MetaDataItem>
+      <MetaDataItem id="0xa305" name="FrequencyName" type="0x0300">CEPT</MetaDataItem>
+      <MetaDataItem id="0xa305" name="Identifier" type="0x0300">4512720</MetaDataItem>
+      <ChangeLog>
+         <Entry author="Petter L. H. Eide" date="28 November 2020" revision="1">Initial addition of product definition.</Entry>
+      </ChangeLog>
+   </MetaData>
+  <CommandClass id="112">
+    <!-- Here is a Byte/Int/Short Value Sample -->
+    <Value genre="config" index="1" label="Factory reset" max="21930" min="21930" type="int" units="" value="0" write_only="true">
+      <Help>Set to 21930 to factory reset the device.</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </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="Button 1" max_associations="5" />
+         <Group index="3" label="Button 2" max_associations="5" />
+         <Group index="4" label="Button 3" max_associations="5" />
+         <Group index="5" label="Button 4" max_associations="5" />
+      </Associations>
+   </CommandClass>
+</Product>
diff --git a/config/namron/4512715.xml b/config/namron/4512715.xml
new file mode 100644
index 0000000000..28036bb5a9
--- /dev/null
+++ b/config/namron/4512715.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+  <MetaData>
+    <MetaDataItem name="Name">Namron Z-Wave Switch 400W</MetaDataItem>
+    <MetaDataItem name="Description">
+      The in-wall switch is a Z-wave device that is used to switch ON/OFF the connected light and can be controlled by other Z-Wave devices.
+      Supports S2 Unauthenticated.
+      Supports OTA.
+    </MetaDataItem>
+    <MetaDataItem name="ProductPic">images/namron/4512715.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Triple click on the reset button or repower the device</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Triple click on the reset button</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold reset button for 10 seconds</MetaDataItem>
+    <MetaDataItem id="d006" name="Identifier" type="0200">4512715</MetaDataItem>
+     <ChangeLog>
+      <Entry author="Nikhil André Luthra - nikhil.a.luthra@gmail.com" date="01 Nov 2020" revision="1">Handcrafted based on namron/1402756.xml and Vendors product manual</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- Configuration -->
+  <CommandClass id="112"> 	
+    <Value type="list" genre="config" instance="1" index="2" label="Saving load state before power failure" size="1" value="2">
+        <Help>
+          Saving state before power failure.
+        </Help>
+      <Item label="Shutoff load" value="0"/>
+      <Item label="Turn on load" value="1"/>
+      <Item label="Save load state before power failure" value="2"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="3" label="Send 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, repower on the dimmer, it will send Basic report automatically)
+        </Help>
+      <Item label="Disable to send Basic report" value="0"/>
+      <Item label="Enable to send Basic report" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="7" label="Add/remove through external switch" size="1" value="1">
+        <Help>
+          Added to and removed from a network through external
+          switch (when enables this function, triple press the external
+          switch within 1.5 seconds to be added to or removed from a
+          network)
+        </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="5" label="Lifeline"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/namron/4512720.xml b/config/namron/4512720.xml
new file mode 100644
index 0000000000..64db4f68db
--- /dev/null
+++ b/config/namron/4512720.xml
@@ -0,0 +1,48 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">Namron Z-Wave 2 kanaler bryter K4</MetaDataItem>
+    <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave devices and activate scenes in Gateways. Although it is controlling other devices, the device cannot act as Z-Wave network controller (primary or secondary) and will always need a Z-Wave network controller to be added into a Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0438:a306:0300</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.namron.com/products/namron-z-wave-2-kanaler-bryter-k4/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.namron.com/contact/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/namron/4512720.jpg</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.elektroimportoren.no/docs/lib/4512720-Brukerveiledning-5.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">short press any button</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Set controller in inclusion mode press and hold down group 2 keys for 3 seconds</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Set controller in exclusion mode press and hold down group 2 keys for 3 seconds</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down group 2 keys for more than 10 seconds use only if controller is unavailable</MetaDataItem>
+    <MetaDataItem id="0xa306" name="ZWProductPage" type="0x0300">https://products.z-wavealliance.org/products/3911</MetaDataItem>
+    <MetaDataItem id="0xa306" name="FrequencyName" type="0x0300">CEPT</MetaDataItem>
+    <MetaDataItem id="0xa306" name="Identifier" type="0x0300">4512720</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Joachim M. Giæver" date="28 November 2020" revision="2">Fix product page</Entry>
+      <Entry author="Joachim M. Giæver" date="28 November 2020" revision="1">Based on thermofloor/heatitz4.xml, fix groups and add multi channel assoc.</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+    <!-- Here is a Byte/Int/Short Value Sample -->
+    <Value genre="config" index="1" label="Factory reset" max="21930" min="21930" type="int" units="" value="0" write_only="true">
+      <Help>Set to 21930 to factory reset the device.</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+  <CommandClass id="96">
+    <Compatibility>
+      <MapRootToEndpoint>true</MapRootToEndpoint>
+    </Compatibility>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Launch 1" max_associations="5" auto="true"/>
+      <Group index="3" label="Launch 2" max_associations="5" auto="true"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/namron/4512724.xml b/config/namron/4512724.xml
new file mode 100644
index 0000000000..3997f64843
--- /dev/null
+++ b/config/namron/4512724.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+  <MetaData>
+    <MetaDataItem name="Name">Namron Z-Wave Dimmer 2 400W</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0102">https://products.z-wavealliance.org/products/3912</MetaDataItem>
+    <MetaDataItem name="Description">
+      The micro smart dimmer is a Z-Wave device designed to work with various types of light sources. It may be
+      connected to two-wire or three-wire configuration so it can operate with or without neutral lead. The dimmer can
+      switch or dim connected light source either through Z-Wave devices or through the wall switch connected
+      directly to it. The smart dimmer is equipped with an algorithm of smart light source detection which makes
+      configuration easier and ensures high compatibility of the device. It may be used as a switch with nondimmable
+      light sources (in 3-wire connection).
+
+      The dimmer 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.
+
+      The encryption mode that the dimmer supports is S2 Unauthenticated. When the dimmer is being included into
+      a Z-Wave network, you can use your primary controller/gateway to enable encryption mode or disable
+      encryption. (The primary controller/gateway shall support encryption mode configuration). The dimmer
+      supports OTA and can update firmware wirelessly.
+    </MetaDataItem>
+    <MetaDataItem name="ProductPic">images/namron/4512724.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Triple click on the reset button or repower the device</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Triple click on the reset button</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold reset button for 10 seconds</MetaDataItem>
+    <MetaDataItem id="d00c" name="Identifier" type="0200">4512724</MetaDataItem>
+     <ChangeLog>
+      <Entry author="Nikhil André Luthra - nikhil.a.luthra@gmail.com" date="01 Nov 2020" revision="1">Handcrafted based on namron/1402756.xml and Vendors product manual</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- Configuration -->
+  <CommandClass id="112"> 	
+    <Value type="list" genre="config" instance="1" index="2" label="Saving load state before power failure" size="1" value="2">
+        <Help>
+          Saving state before power failure.
+        </Help>
+      <Item label="Shutoff load" value="0"/>
+      <Item label="Turn on load" value="1"/>
+      <Item label="Save load state before power failure" value="2"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="3" label="Send 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, repower on the dimmer, it will send Basic report automatically)
+        </Help>
+      <Item label="Disable to send Basic report" value="0"/>
+      <Item label="Enable to send Basic report" value="1"/>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="4" label="Fade time" min="0" max="127" value="1">
+        <Help>
+          Default fade time (unit is second, this value has the same function as Duration of Multilevel).
+          Valid value: 0~127
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="5" label="Minimum brightness" size="1" value="15">
+        <Help>
+          Setting minimum brightness value. 
+          Valid value: 0~50, the bigger the value is, the higher the load’s minimum brightness is.
+        </Help>
+   </Value>
+   <Value type="byte" genre="config" instance="1" index="6" label="Maximum brightness" size="1" value="100">
+        <Help>
+          Setting maximum brightness value.
+          Valid value: 0~100
+        </Help>
+  </Value>
+    <Value type="list" genre="config" instance="1" index="7" label="MOSFET driving type" size="1" value="0">
+        <Help>
+          Choose MOSFET driving type.
+        </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" value="0" size="1">
+        <Help>
+           External switch type
+        </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="Add/remove through external switch" size="1" value="1">
+        <Help>
+          Added to and removed from a network through external
+          switch (when enables this function, triple press the external
+          switch within 1.5 seconds to be added to or removed from a
+          network)
+        </Help>
+        <Item label="Disable" value="0"/>
+        <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="11" label="Wiring type (read only)" read_only="true" size="1" value="0">
+        <Help>
+          Wiring type (Read only)
+        </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 (read only)" read_only="true" size="1" value="0">
+        <Help>
+          Wiring type (Read only)
+        </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 2.1A for 20 seconds continuously)
+        </Help>
+        <Item label="Disable" value="0"/>
+        <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="14" label="Power automatic report absolute threshold" 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" 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="byte" genre="config" instance="1" index="21" label="Power metering automatic report time cycle" value="600">
+        <Help>
+          Power metering automatic report time cycle, unit is second.
+          Valid time cycle value: 5~2678400, when set as 0, report function disabled
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="22" label="Energy metering automatic report time cycle" value="1800">
+        <Help>
+          Energy metering automatic report time cycle, unit is second
+          Valid time cycle value: 5~2678400, when set as 0, report function disabled
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="23" label="Voltage metering automatic report time cycle" value="3600">
+        <Help>
+          Voltage metering automatic report time cycle, unit is second
+          Valid time cycle value: 5~2678400, when set as 0, report function disabled
+        </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="24" label="Current metering automatic report time cycle, unit is second" value="3600">
+        <Help>
+          Current metering automatic report time cycle, unit is second
+          Valid time cycle value: 5~2678400, when set as 0, report function disabled
+        </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="31" label="Dimming curve" size="1" value="0">
+        <Help>
+          Setting dimming curve
+        </Help>
+        <Item label="linear dimming" value="0"/>
+        <Item label="logarithmic dimming" value="1"/>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="32" label="Startup brightness of load" size="1" value="0">
+        <Help>
+          Setting startup brightness of the load
+          Valid value: 0~99
+          Note: every time when turn on the load from OFF status, if the
+          target brightness is lower than the startup brightness, the
+          brightness will first go to the startup brightness value then
+          fall down to the target brightness
+        </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/nei/ms11z.xml b/config/nei/ms11z.xml
new file mode 100644
index 0000000000..0d2f95d5b1
--- /dev/null
+++ b/config/nei/ms11z.xml
@@ -0,0 +1,66 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">MS11Z</MetaDataItem> 
+    <MetaDataItem name="Description">Minoston Smart Dimmer Switch</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">https://products.z-wavealliance.org/products/3610?selectedFrequencyId=2</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://minoston.com/product/z-wave-plus-smart-dimmer-switch-%EF%BC%88ms11z%EF%BC%89/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/inovelli/lzw30.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Add  the MS13Z from the existing Z-Wave home control network with your primary controller.
+
+ Refer to your primary controller instructions to process the inclusion / exclusion setup procedure.
+ When prompted by your primary controller, click the Up or Down button three times in one second.
+Include MS13Z to/from a Z-Wave Gateway with supporting Security.The MS13Z can support the Primary Controller that implemented the security S2.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Remove the MS13Z from the existing Z-Wave home control network with your primary controller.
+
+ Refer to your primary controller instructions to process the inclusion / exclusion setup procedure.
+ When prompted by your primary controller, click the Up or Down button three times in one second.</MetaDataItem>
+    
+    <ChangeLog>
+      <Entry author="Ryan McFadden - rjmcfadd@gmail.com" date="11 Jan 2021" revision="1">Adding Device</Entry>
+    </ChangeLog> 
+  </MetaData> 
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="0" label="Locally button function" units="" size="1" min="0" max="2" type="list">
+      <Help>Locally button function</Help>
+      <Item value="0" label="Up Button:On Down Button: Off" />
+      <Item value="1" label="Up Button:Off Down Button: On" />
+      <Item value="2" label="Up Button:On/Off Down Button: On/Off" />
+    </Value>
+    <Value genre="config" instance="1" index="2" value="0" label="LED indicator" units="" size="1" min="0" max="3" type="list">
+      <Help>LED indicator</Help>
+      <Item value="0" label="On when Off and Off when On "/>
+      <Item value="1" label="On when On and Off when Off" />
+      <Item value="2" label="Always Off " />
+      <Item value="3" label="Always On" />
+    </Value>
+    <Value genre="config" instance="1" index="3" value="0" label="Enable Auto Turn-Off Timer" units="" size="1" min="0" max="1" type="list">
+      <Help>Enable Auto Turn-Off Timer</Help>
+      <Item value="0" label="Disabled" />
+      <Item value="1" label="Enabled" />
+    </Value>
+    <Value genre="config" instance="1" index="4" value="0" label="Auto turn off timer" units="" size="4" min="0" max="65535" type="int">
+      <Help>Auto turn off timer</Help>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="2" label="Restore state after power failure" units="" size="1" min="0" max="2" type="byte">
+      <Help>Restore state after power failure</Help>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5" />
+      <Group index="2" label=" Send Basic Set ON/OFF" max_associations="1" />
+    </Associations>
+  </CommandClass>
+  <!-- Central Scene Reports -->
+  <CommandClass id="91">
+    <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="2" 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="1" label="Bottom 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="3" label="Config Button Scene" units="" read_only="false" write_only="false" verify_changes="false" min="-2147483648" max="2147483647" value="0" />
+  </CommandClass>
+
+</Product>
diff --git a/config/nexia/th100nx.xml b/config/nexia/th100nx.xml
new file mode 100644
index 0000000000..06df036759
--- /dev/null
+++ b/config/nexia/th100nx.xml
@@ -0,0 +1,98 @@
+<Product Revision="1" 
+    xmlns="https://github.com/OpenZWave/open-zwave">
+    <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+    <MetaData>
+        <MetaDataItem name="Name">Remote Temperature and Humidity Sensor</MetaDataItem>
+        <MetaDataItem name="Description">The Remote Temperature and Humidity sensor is a Z-Wave Plus multilevel, battery-powered, routing sensor that measures and reports indoor temperature and relative humidity.  The reporting intervals and thresholds for the indoor temperature, indoor humidity and battery are configurable.  The wakeup interval is also configurable.   This sensor cannot be used with Trane/American Standard thermostats for HVAC control.</MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0178:3130:5448</MetaDataItem>
+        <MetaDataItem name="ProductPage">https://products.z-wavealliance.org/products/2223</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/nexia/th100nx.png</MetaDataItem>
+        <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2223/18-HD84D1-1A.pdf</MetaDataItem>
+        <MetaDataItem name="WakeupDescription">Press the Install button three times rapidly to send a Battery Report and Wakeup Notification when installed on a network.</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">Set primary controller to inclusion mode, then press and release install button. Status LED will blink three times to show success.</MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">Set primary controller to exclusion mode, then press and release install button. Status LED will blink three times to show success.</MetaDataItem>
+        <MetaDataItem name="ResetDescription">Press and hold install button for 10 seconds to restore to factory defaults.</MetaDataItem>
+        <MetaDataItem id="3130" name="ZWProductPage" type="5448">https://products.z-wavealliance.org/products/2223</MetaDataItem>
+        <MetaDataItem id="3130" name="FrequencyName" type="5448">U.S. / Canada / Mexico</MetaDataItem>
+        <MetaDataItem id="3130" name="Identifier" type="5448">TH100NX</MetaDataItem>
+        <ChangeLog>
+            <Entry author="Daniel Koronthaly - daniel@koronthaly.net" date="06 July 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2223/xml</Entry>
+        </ChangeLog>
+    </MetaData>
+    <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+    <CommandClass id="112">
+        <Value genre="config" index="1" label="Battery Report Interval" max="127" min="0" size="1" type="list" units="hours" value="0">
+            <Help>Time between Battery Reports in hours</Help>
+            <Item label="Do not send periodically" value="0"/>
+        </Value>
+        <Value genre="config" index="2" label="Basic Set ON Above Temp" max="121" min="15" size="1" type="list" units="Farenheit" value="121">
+            <Help>BASIC SET ON above this temperature.</Help>
+            <Item label="Disabled" value="121"/>
+        </Value>
+        <Value genre="config" index="3" label="Basic Set ON Below Temp" max="121" min="15" size="1" type="list" units="Farenheit" value="121">
+            <Help>BASIC SET ON below this temperature.</Help>
+            <Item label="Disabled" value="121"/>
+        </Value>
+        <Value genre="config" index="4" label="Basic Set OFF Above Temp" max="121" min="15" size="1" type="list" units="Farenheit" value="121">
+            <Help>BASIC SET OFF above this temperature.</Help>
+            <Item label="Disabled" value="121"/>
+        </Value>
+        <Value genre="config" index="5" label="Basic Set OFF Below Temp" max="121" min="15" size="1" type="list" units="Farenheit" value="121">
+            <Help>BASIC SET OFF below this temperature.</Help>
+            <Item label="Disabled" value="121"/>
+        </Value>
+        <Value genre="config" index="6" label="Basic Set Attempts" max="5" min="0" size="1" type="list" units="Attempts" value="0">
+            <Help>How many attempts</Help>
+            <Item label="Disabled" value="0"/>
+        </Value>
+        <Value genre="config" index="7" label="Temp Units" max="1" min="0" size="1" type="list" units="C/F" value="1">
+            <Help>Temperature Units used</Help>
+            <Item label="Farenheit" value="1"/>
+            <Item label="Celsius" value="0"/>
+        </Value>
+        <Value genre="config" index="12" label="Basic Set ON Above RH" max="100" min="0" size="1" type="list" units="%" value="0">
+            <Help>BASIC SET ON above this humidity</Help>
+            <Item label="Disabled" value="0"/>
+        </Value>
+        <Value genre="config" index="13" label="Basic Set ON Below RH" max="100" min="0" size="1" type="list" units="%" value="0">
+            <Help>BASIC SET ON below this humidity</Help>
+            <Item label="Disabled" value="0"/>
+        </Value>
+        <Value genre="config" index="14" label="Basic Set OFF Above RH" max="100" min="0" size="1" type="list" units="%" value="0">
+            <Help>BASIC SET OFF above this humidity</Help>
+            <Item label="Disabled" value="0"/>
+        </Value>
+        <Value genre="config" index="15" label="Basic Set OFF Below RH" max="100" min="0" size="1" type="list" units="%" value="0">
+            <Help>BASIC SET OFF below this humidity</Help>
+            <Item label="Disabled" value="0"/>
+        </Value>
+        <Value genre="config" index="20" label="Basic Set Option" max="4" min="1" size="1" type="list" units="int" value="1">
+            <Help>Basic Set Options for temperature and humidity.
+                1 = Enable Registers 2, 5, 12 15
+                2 = Enable Registers 2, 5, 13, 14
+                3 = Enable Registers 3, 4, 12, 15
+                4 = Enable Registers 3, 4, 13, 14
+            </Help>
+        </Value>
+        <Value genre="config" index="21" label="Temp Offset" max="7" min="-7" size="1" type="list" units="Farenheit" value="0">
+            <Help>Temperature offset</Help>
+        </Value>
+        <Value genre="config" index="22" label="Humidity Offset" max="7" min="-7" size="1" type="list" units="%" value="0">
+            <Help>Humidity offset</Help>
+        </Value>
+        <Value genre="config" index="23" label="Humidity Filter Time Constant" max="60" min="1" size="1" type="list" units="minutes" value="30">
+            <Help>BASIC SET ON above this humidity</Help>
+        </Value>
+    </CommandClass>
+    <CommandClass id="133">
+        <Associations num_groups="6">
+            <!-- Z-Wave Plus Lifeline Battery Report, Notification Report, Device Reset Locally Notification -->
+            <Group index="1" label="Lifeline" max_associations="1"/>
+            <Group index="2" label="Temperature Reports" max_associations="5"/>
+            <Group index="3" label="Humidity Reports" max_associations="5"/>
+            <Group index="4" label="Temperature Driven Basic Sets" max_associations="5"/>
+            <Group index="5" label="Humidity Driven Basic Sets" max_associations="5"/>
+            <Group index="6" label="Battery Reports" max_associations="5"/>
+        </Associations>
+    </CommandClass>
+</Product>
diff --git a/config/oomi/ft112.xml b/config/oomi/ft112.xml
new file mode 100644
index 0000000000..fba3ea2385
--- /dev/null
+++ b/config/oomi/ft112.xml
@@ -0,0 +1,74 @@
+<!-- Oomi Door/Window Sensor 6 --><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/oomi/ft112.png</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller into exclusion mode, short press the product’s Action Button that you can find in back of the product.</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="InclusionDescription">Turn the primary controller into inclusion mode, short press the product’s Action Button that you can find in the back of the product.</MetaDataItem>
+    <MetaDataItem name="Description">Aeon Labs Door/ Window Sensor 6 is a smart Z-Wave sensor that can detect the status of door/window's open/close in real time. 
+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="Name">Door/ Window Sensor 6</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press the Action Button once that you can find in the back of the product for 20 seconds and then release. This procedure should only be used when the primary controller is inoperable.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jeff Thompson" date="27 April 2020" revision="1">Initial version - clone of aeotec/zw112</Entry>
+      <Entry author="Justin Hammond" date="24 June 2020" revision="2">Add Product Pic</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0070" name="FrequencyName" type="0002">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0070" name="Identifier" type="0002">FT112-C</MetaDataItem>
+  </MetaData>
+  <!-- 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 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 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/oomi/ft118.xml b/config/oomi/ft118.xml
new file mode 100644
index 0000000000..d980d82ccd
--- /dev/null
+++ b/config/oomi/ft118.xml
@@ -0,0 +1,62 @@
+<!--
+Oomi FT118-C15 Range Extender 6, based on Aeotec ZW117, of which it's a clone
+--><Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/oomi/ft118.png</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Turn the primary controller of Z-Wave network into exclusion mode, press  the Z-Wave Button on Range Extender 6.</MetaDataItem>
+    <MetaDataItem name="Description">Oomi Range Extender is a Z-Wave mesh network repeater which can extend the range of communication between Z-Wave products and assist other devices to reach each other in your Z-Wave network. Clone of Aeotec ZW117 extender 6.
+The Range Extender can also communicate securely via AES 128 wireless Z-Wave commands and supports Over-The-Air (OTA) firmware upgrades.
+</MetaDataItem>
+    <MetaDataItem name="Name">Range Extender 6</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the Z-Wave Button for 20 seconds and then release it.
+Use this procedure only in the event that your primary network controller is missing or inoperable.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1998/Range Extender 6 manual.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Turn the primary controller of Z-Wave network into inclusion mode, press the Z-Wave Button on Range Extender 6.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jeff Thompson" date="27 April 2020" revision="1">Initial version, cloned from Aeotec ZW117 xml</Entry>
+      <Entry author="Justin Hammond" date="24 June 2020" revision="2">Add Product Pic</Entry>
+    </ChangeLog>
+    <MetaDataItem id="0076" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0076" name="Identifier" type="0004">FT118-C15</MetaDataItem>
+  </MetaData>
+  <!-- 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/philio/pan04.xml b/config/philio/pan04.xml
index 6cc4b6ea35..de370fc33c 100644
--- a/config/philio/pan04.xml
+++ b/config/philio/pan04.xml
@@ -1,4 +1,5 @@
-<!-- Philio: PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement --><Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+<!-- Philio: PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement -->
+<Product Revision="8" 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>
@@ -16,6 +17,7 @@ This in-wall switch module is able to detect Instant power wattage and overload
       <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>
+      <Entry author="wacki4" date="30 April 2020" revision="8">Updated Config Params </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. 
@@ -55,6 +57,29 @@ This in-wall switch module is able to detect Instant power wattage and overload
     <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>
+    <Value genre="config" index="7" instance="1" label="Restore switch state mode" max="2" min="0" type="byte" value="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="8" instance="1" label="Auto off timer" max="10000" min="0" type="short" value="32767">
+      <Help>0: Disable auto off function. 1-32767: 1s ~32767s</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="RF offcommand mode" max="3" min="0" type="byte" value="0">
+      <Item label="Switch off" value="0"/>
+      <Item label="Ignore" value="1"/>
+      <Item label="Switch toggle" value="2"/>
+      <Item label="Switch on" value="3"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Existence of Endpoint3" max="2" min="1" type="byte" value="1">
+      <Item label="Endpoint3 exist" value="1"/>
+      <Item label="No Endpoint3" value="2"/>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="Primitive frame" max="2" min="1" type="byte" value="1">
+      <Help>Can repair problems with bad switch selected</Help>
+      <Item label="Multiframe active" value="1"/>
+      <Item label="No multiframe" value="2"/>
+    </Value>    
   </CommandClass>
   <CommandClass id="96">
     <Compatibility>
diff --git a/config/popp/700342.xml b/config/popp/700342.xml
new file mode 100644
index 0000000000..0d878d065b
--- /dev/null
+++ b/config/popp/700342.xml
@@ -0,0 +1,33 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">10 Year Smoke Detector</MetaDataItem>
+    <MetaDataItem name="Description">This products consists of a standard high-quality 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 as '10 year Smoke Detector' 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.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0154:0004:000D</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.popp.eu/products/sensors/10-jahres-rauchmelder-700342/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.popp.eu/support/manuals/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/popp/009402.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.popp.eu/005107en</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">A double click on the Z-Wave button wakes up the device></MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Secure Inclusion: Push the button for 3 seconds, Unsecure Inclusion: Push the button for 1 seconds</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Push the button for 1 second</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>
+    <ChangeLog>
+      <Entry author="Márton Rubi - rubimart@airlink.hu" date="06 Jan 2020" revision="1">From the User Manual and the 009402.xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" instance="1" label="Value of On-Command" max="99" min="0" size="1" type="byte" value="99">
+      <Help>This value is sent as BASIC Set to Association Group 3 when an Smoke Alarm occurs.</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Value of Off-Command" max="99" min="0" size="1" type="byte" value="99">
+      <Help>This value is sent as BASIC Set to Association Group 3 when an Smoke Alarm is cleared. </Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="10"/>
+      <Group index="2" label="Switching Command when Alarm" max_associations="10"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/popp/701202.xml b/config/popp/701202.xml
new file mode 100644
index 0000000000..0354cf20c2
--- /dev/null
+++ b/config/popp/701202.xml
@@ -0,0 +1,118 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Mold Detector</MetaDataItem>
+    <MetaDataItem name="Description">
+	This device measures the three air quality parameters temperature, humidity and dew point and reports them to a central controller. Beside this, the device can directly control groups of other Z-Wave devices on over- and undershooting a set temperature and/or humidity parameter. This can be used to establish control loops for temperature and humidity. The device wakes up every 15 minutes to measure the values and it will send unsolicited reports when values change, Additionally the device will report all values request on.
+	The mold detector is actively monitoring the danger of mold in a room based on the temperature and humidity and will issue alarm warnings when critical air conditions are met. Wireless Alarm and red and a green blinking LED will indicate a mold condition. This local LED warning function is also available when the device is not included in any Z-Wave network and works stand alone.
+    </MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0154:0014:0004</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://popp.eu/products/sensors/mold-detector-701202/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://popp.eu/support/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/popp/701202.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://manuals.zwave.eu/backend/make.php?lang=EN&amp;sku=POPE701202&amp;cert=</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press the tamper button on the side of the appliance once.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">
+	1. Open the housing.
+	2. Remove the battery protection.
+	3. Press the tamper button on the side of the appliance three times quickly.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">
+	1. Open the housing.
+	2. Press the tamper button on the side of the appliance three times quickly.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">
+	Remove the cover, press the button for 5 seconds until it flashes green. Release the button and press the button again until the blinking stops.
+    </MetaDataItem>
+    <!-- ZWProductPage refers to a similar device with a difference product number but with the same certification ID (ZC10-19026384) -->
+    <MetaDataItem id="0014" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/3249?selectedFrequencyId=1</MetaDataItem>
+    <MetaDataItem id="0014" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0014" name="Identifier" type="0004">701202</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jan Coolen - jan@coolen.pt" date="01 March 2019" revision="1">
+	Initial configuration file, based on information from the vendor's and z-wavealliance.org websites, but with small linguistic changes and a few  corrections.
+      </Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Minimum Temperature change to report" max="100" min="0" type="byte" units="1/10 degree" value="20">
+      <Help>
+	This value defines the minimum change of temperature to cause an unsolicited report of humidity to the central controller using Lifeline.
+	If the value is set to 0, there will be no reports sent to the controller, when the temperature changes. However, periodic reports, managed by configuration parameter 4, may still be active. 
+	Default Value: 20
+      </Help>
+    </Value>
+    <Value genre="config" index="2" label="Minimum humidity change to report" max="20" min="0" type="byte" units="%" value="7">
+      <Help>
+	This value defines the minimum change of humidity to cause an unsolicited report of humidity to the central controller using Lifeline.
+	If the value is set to 0, there will be no reports sent to the controller, when the humidity changes. However, periodic reports, managed by configuration parameter 4, may still be active.
+	Default value: 7
+      </Help>
+    </Value>
+   <!-- Not sure whether in the next setting max value is correct. Should be 900-65535 or 0 -->
+   <Value genre="config" index="4" label="Periodic Reports" max="65536" min="900" type="short" units="seconds" value="43200">
+      <Help>
+	This parameter defines the time interval to send an unsolicited report.
+	If the value is set to 0, there will be no periodic reports sent to the controller. However, reports on temperature/humidity changes, managed by configuration parameters 1 and 2, may still be active.
+	Default value: 43200
+      </Help>
+    </Value>
+   <Value genre="config" index="5" label="Temperature Upper Watermark value" max="1000" min="0" type="short" units="1/10 degrees" value="0">
+      <Help>
+	This parameter defines a temperature. If the measured temperature surpasses this watermark a BASIC command is sent into Association Group 2
+	Default Value: 0
+      </Help>
+    </Value>
+   <Value genre="config" index="6" label="Temperature Lower Watermark value" max="1000" min="653356" type="short" units="1/10 degrees" value="0">
+      <Help>
+	This parameter defines a temperature. If the measured temperature drops below this watermark a BASIC command is sent into Association Group 3
+	Default Value: 0
+      </Help>
+    </Value>
+   <Value genre="config" index="7" label="Humidity Upper Watermark value" max="100" min="0" type="byte" units="%" value="0">
+      <Help>
+	This parameter defines a relative humidity. If the measured relative humidity surpasses this watermark a BASIC command is sent into Association Group 4
+	Default Value: 0
+      </Help>
+    </Value>
+   <Value genre="config" index="8" label="Humidity Lower Watermark value" max="90" min="0" type="byte" units="%" value="0">
+      <Help>
+	This parameter defines a relative humidity. If the measured relative humidity drops below this relative humidity a BASIC command is sent into Association Group 5 
+	Default Value: 0
+      </Help>
+    </Value>
+   <Value genre="config" index="9" label="Low Temperature Trigger BASIC Set Command Value" max="255" min="0" type="byte" units="" value="255">
+      <Help>
+	This defines what BASIC command shall be sent out into association group 3 
+	Default Value: 255
+      </Help>
+    </Value>
+   <Value genre="config" index="10" label="High Temperature Trigger BASIC Set Command Value" max="255" min="0" type="byte" units="" value="0">
+      <Help>
+	This defines what BASIC command shall be sent out into association group 2 
+	Default Value: 0
+      </Help>
+    </Value>
+   <Value genre="config" index="11" label="Low Humidity Trigger BASIC Set Command Value" max="255" min="0" type="byte" units="" value="255">
+      <Help>
+	This defines what BASIC command shall be sent out into association group 5 
+	Default Value: 255
+      </Help>
+    </Value>
+   <Value genre="config" index="12" label="High Humidity Trigger BASIC Set Command Value" max="255" min="0" type="byte" units="" value="0">
+      <Help>
+	This defines what BASIC command shall be sent out into association group 4 
+	Default Value: 0
+      </Help>
+    </Value>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Temperature High Trigger" max_associations="5"/>
+      <Group index="3" label="Temperature Low Trigger" max_associations="5"/>
+      <Group index="4" label="Humidity High Trigger" max_associations="5"/>
+      <Group index="5" label="Humidity Low Trigger" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
\ No newline at end of file
diff --git a/config/q-light/q-light_puck.xml b/config/q-light/q-light_puck.xml
new file mode 100644
index 0000000000..1a41a95ac6
--- /dev/null
+++ b/config/q-light/q-light_puck.xml
@@ -0,0 +1,151 @@
+<?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/0433:0005:0003</MetaDataItem>  
+    <MetaDataItem name="ProductPic">images/q-light/q-light_puck.png</MetaDataItem>	
+    <MetaDataItem id="0005" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3774</MetaDataItem>  
+    <MetaDataItem id="0005" name="Identifier" type="0003">Puck</MetaDataItem>	
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3774/Instructions_Z-Wave_Puck_Norsk_A4.pdf	</MetaDataItem>	
+    <MetaDataItem name="Description">Z-Wave Puck dimmer by Q-light is a micro size in wall dimmer.
+Features:
+- 0-100% dimming range
+- 2-180W LED load
+- Compatible with any Z-Wave or Z-Wave Plus Controller
+- There is memorized function at power off
+- OverLoad protection
+- Soft start function
+- SmartStart
+- Works with various types of switches – on/off, momentary, roller-blind, and etc
+- This device is a security enable Z-Wave Plus product that is able to use encrypted Z-Wave Plus
+messages to communicate to other security enable Z-Wave Plus products.
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">
+Removing (Exclusion):
+Allowing to remove the Z-Wave device from existing Z-Wave network.
+
+1. Place the Z-Wave Puck within the direct range of your Z-Wave controller.
+2. Identify switch S1/S2 (turns the light on) or the Internal button (located on the device’s housing).
+3. Set the main controller in (security/non-security) add mode (see the controller’s manual).
+4. Quickly, three times press switch S1 / S2 or Internal button.
+5. Wait for the removing process to end.
+	</MetaDataItem>
+    <MetaDataItem id="0005" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Q-light Zerodim Z-Wave</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Resetting the Z-Wave Puck:
+
+1. Quickly, nine times press switch S1 / S2 or Internal button. 
+2. Wait for the resetting process to end, which is signaled with the LED indicator blinks 20 times. 
+
+Device reset status: Turn on the light at maximum brightness.
+
+Please use this procedure only when the network primary controller is missing or otherwise inoperable
+	</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">
+Classic Learn Mode:
+
+1. Place the Z-Wave Puck within the direct range of your Z-Wave controller.
+2. Identify switch S1/S2 (turns the light on) or the Internal button (located on the device’s housing).
+3. Set the main controller in (security/non-security) add mode (see the controller’s manual).
+4. Quickly, three times press switch S1 / S2 or Internal button. 5. Wait for the adding process to end.
+6. Successful adding will be confirmed by the Z-Wave controller’s message.
+	</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Geir Råness - git@winning.no" date="03 July 2020" revision="1">Initial release</Entry>
+      <Entry author="Geir Råness - git@winning.no" date="06 July 2020" revision="2">fix associations</Entry>
+    </ChangeLog>
+  </MetaData>
+  
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="15" label="Minimum brightness level" units="%" size="1" min="1" max="98" type="byte">
+      <Help>
+Set the desired value from 1 to 98% for the minimum dim level that the dimmer is restricted to, the dimmer will not go lower than the value set here.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="2" value="99" label="Maximum brightness level" units="%" size="1" min="2" max="99" type="byte">
+      <Help>
+Set the desired value from 2 to 99% for the maximum dim level that the dimmer is restricted to, the dimmer will not go higher than the value set here.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="3" value="1" label="Automatic control - dimming step size" units="%" size="1" min="1" max="99" type="byte">
+      <Help>
+This parameter defines the percentage value of dimming step during the automatic control.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="4" value="1" label="Automatic control - time of a dimming step" units="ms" size="1" min="1" max="255" type="byte">
+      <Help>
+This parameter defines the time of single dimming step set in parameter 3 during the automatic control.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="5" value="1" label="Manual control - dimming step size" units="%" size="1" min="1" max="99" type="byte">
+      <Help>
+This parameter defines the percentage value of dimming step during the manual control.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="5" label="Manual control - time of a dimming step" units="ms" size="1" min="1" max="255" type="byte">
+      <Help>
+This parameter defines the time of single dimming step setin parameter 5 during the manual control.	  
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="7" value="1" label="Memory function after power failure" size="1" min="0" max="1" type="list">
+      <Help>Set the desired value from 0 to 1 to turn on/off the memory function.Setting this value to 0 turns off the dimmer's Memory fucntion.Setting this value to 1 truns on the dimmer's Memory function.</Help>
+	    <Item value="0" label="Device does not save the state before a power failure, it returns to off position"/>
+      <Item value="1" label="Device restores it's state before power failure"/>
+    </Value>
+    <Value genre="config" instance="1" index="8" value="0" label="Switch type" size="1" min="0" max="2" type="list">
+      <Help>
+Choose between momentary, ON/OFF and roller blind switch.
+
+Available settings:
+0 – momentary (Push) switch.
+1 – ON/OFF switch. 
+2– roller blind switch-two switchs operate the device(S1 to brighter, S2 to dim
+	  </Help>
+	  <Item value="0" label="momentary (Push) switch"/>
+    <Item value="1" label="ON/OFF switch"/>
+	  <Item value="2" label="roller blind switch-two switchs operate the device(S1 to brighter, S2 to dim)"/>
+    </Value>
+    <Value genre="config" instance="1" index="9" value="0" label="Switch functionality of S1 and S2" size="1" min="0" max="1" type="list">
+      <Help>Set the desired value from 0 to 1 to turn on/off the memory function.Setting this value to 0 turns off the dimmer's Memory fucntion.Setting this value to 1 truns on the dimmer's Memory function.</Help>
+	    <Item value="0" label="Standard mode"/>
+      <Item value="1" label="S1 operates as S2, S2 operates as S1"/>
+    </Value>
+    <Value genre="config" instance="1" index="10" value="1" label="S1 Scene ID set" units="step" size="1" min="1" max="255" type="byte">
+      <Help>
+When you press S1 five times,the light is dimmed to the brightness set in Scene ID 3 .
+
+S1 Scene ID is set by this configuration.
+
+Note: The actual action of each SCENE ID are set by SCE-NE_ACTUATOR_CONF(0x26) command.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="11" value="2" label="S1 Scene ID set" units="step" size="1" min="1" max="255" type="byte">
+      <Help>
+When you press S1 five times,the light is dimmed to the brightness set in Scene ID 5.
+
+
+S2 Scene ID is set by this configuration.
+
+Note: The actual action of each SCENE ID are set by SCE-NE_ACTUATOR_CONF(0x26) command.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="12" value="0" label="Timer functionality (auto - off)" units="seconds" size="2" min="0" max="32767" type="short">
+    <Help>This parameter allows to automatically switch off the device after specified time from switching on the light source. It may be useful when the Zerodim Z-Wave is installed in the stairway.
+
+Available settings: 
+0 - Function disabled. 
+1-32767 - time to turn off measured in seconds (1s-9.1h)
+    </Help>
+    </Value>
+  </CommandClass>
+
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="1" />
+      <Group index="2" label="On/Off(S1) / Mirror of endpoint 1, group 2" max_associations="5" />
+      <Group index="3" label="Dimmer(S1) / Mirror of endpoint 1, group 3" max_associations="5" />
+      <Group index="4" label="On/Off(S2) / Mirror of endpoint 2, group 2" max_associations="5" />
+      <Group index="5" label="Dimmer(S2) / Mirror of endpoint 2, group 3" max_associations="5" />
+    </Associations>
+  </CommandClass>
+
+</Product>
diff --git a/config/q-light/q-light_zerodim.xml b/config/q-light/q-light_zerodim.xml
new file mode 100644
index 0000000000..747c175be8
--- /dev/null
+++ b/config/q-light/q-light_zerodim.xml
@@ -0,0 +1,120 @@
+<?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/0433:000D:0003</MetaDataItem>  
+    <MetaDataItem name="ProductPic">images/q-light/q-light_zerodim.png</MetaDataItem>	
+    <MetaDataItem id="000D" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3775</MetaDataItem>  
+    <MetaDataItem id="000D" name="Identifier" type="0003">Zerodim</MetaDataItem>	
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3775/Instructions_ZerodimZwave_Norsk_A4.pdf</MetaDataItem>	
+    <MetaDataItem name="Description">Zerodim Z-Wave by Q-light is a wireless smart home device.
+Features:
+- 0-99% dimming range
+- 2-180W LED load
+- Compatible with any Z-Wave or Z-Wave Plus Controller
+- There is memorized function at power off
+- OverLoad protection
+- Soft start function
+- SmartStart
+- This device is a security enable Z-Wave Plus product that is able to use encrypted Z-Wave Plus messages to communicate to other security enable Z-Wave Plus products.
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">
+1. Place the Zerodim Z-Wave within the direct range of your Z-Wave controller.
+2. Identify switch rotary knob (turns the light on).
+3. Set the main controller in (security/non-security) add mode (see the controller’s manual).
+4. Quickly, three times press switch rotary knob.
+5. Wait for the removing process to end.
+6. Successful removing will be confirmed by the Z-Wave controller’s message.
+	</MetaDataItem>
+    <MetaDataItem id="000D" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Q-light Zerodim Z-Wave</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Resetting the Zerodim Z-Wave:
+1. Quickly, nine times press switch rotary knob.
+2. Wait for the resetting process to end, the lamp will be set to maximum brightness.
+
+Device reset statues: Turn on the light at maximum brightness.
+	</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">
+Classic Learn Mode:
+1. Place the Zerodim Z-Wave within the direct range of your Z-Wave controller.
+2. Identify switch rotary knob (turns the light on).
+3. Set the main controller in (security/non-security) add mode (see the controller’s manual).
+4. Quickly, three times press switch rotary knob.
+5. Wait for the adding process to end.
+6. Successful adding will be confirmed by the Z-Wave controller’s message.
+
+SmartStart Learn Mode:
+1. Scanning the Z-Wave QR Code present on the product with a controller providing SmartStart inclusion.
+2. No further action is required and the SmartStart product will be added automaticall within 10 minutes of being switched on in the network vicinity.
+3. The QR Code and DSK are attached to the back of the product case, as shown below:
+	</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Geir Råness - git@winning.no" date="03 July 2020" revision="1">Initial release</Entry>
+      <Entry author="Geir Råness - git@winning.no" date="06 July 2020" revision="2">fix associations</Entry>
+    </ChangeLog>
+  </MetaData>
+  
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="10" label="Minimum brightness level" units="%" size="1" min="1" max="98" type="byte">
+      <Help>
+Set the desired value from 1 to 98% for the minimum dim level that the dimmer is restricted to, the dimmer will not go lower than the value set here.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="2" value="99" label="Maximum brightness level" units="%" size="1" min="2" max="99" type="byte">
+      <Help>
+Set the desired value from 2 to 99% for the maximum dim level that the dimmer is restricted to; the dimmer will not go higher than the value set here.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="3" value="1" label="Automatic control - dimming step size" units="%" size="1" min="1" max="99" type="byte">
+      <Help>
+This parameter defines the percentage value of dimming step during the automatic control.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="4" value="1" label="Automatic control - time of a dimming step" units="ms" size="1" min="1" max="255" type="byte">
+      <Help>
+This parameter defines the time of single dimming step set in parameter 3 during the automatic control.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="5" value="1" label="Manual control - dimming step size" units="step" size="1" min="1" max="99" type="byte">
+      <Help>
+This parameter defines the percentage value of dimming step during the manual control.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="5" label="Manual control - time of a dimming step" units="ms" size="1" min="1" max="255" type="byte">
+      <Help>
+This parameter defines the time of single dimming step setin parameter 5 during the manual control.	  
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="7" value="1" label="Memory function after power failure" size="1" min="0" max="1" type="list">
+      <Help>Set the desired value from 0 to 1 to turn on/off the memory function.Setting this value to 0 turns off the dimmer's Memory fucntion.Setting this value to 1 truns on the dimmer's Memory function.</Help>
+	    <Item value="0" label="Device does not save the state before a power failure, it returns to off position"/>
+      <Item value="1" label="Device restores it's state before power failure"/>
+    </Value>
+    <Value genre="config" instance="1" index="8" value="1" label="Scene ID set" units="step" size="1" min="1" max="255" type="byte">
+      <Help>
+Scene ID is set by this configuration.
+
+Note: The actual action of each SCENE ID are set by
+SCENE_ACTUATOR_CONF(0x26) command.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="9" value="0" label="Timer functionality (auto - off)" units="seconds" size="2" min="0" max="32767" type="short">
+    <Help>
+This parameter allows to automatically switch off the device after specified time from switching on the light source. It may be useful when the Zerodim Z-Wave is installed in the stairway.
+
+Available settings: 
+0 - Function disabled. 
+1-32767 - time to turn off measured in seconds (1s-9.1h)
+    </Help>
+    </Value>
+
+  </CommandClass>
+
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1" />
+      <Group index="2" label="On/Off (rotary nob) / Mirror of endpoint 1, group 2" max_associations="5" />
+      <Group index="3" label="Dimmer (rotary nob) / Mirror of endpoint 1, group 3" max_associations="5" />
+    </Associations>
+  </CommandClass>
+
+</Product>
diff --git a/config/q-light/q-light_zerodim_2pol.xml b/config/q-light/q-light_zerodim_2pol.xml
new file mode 100644
index 0000000000..63f19ec028
--- /dev/null
+++ b/config/q-light/q-light_zerodim_2pol.xml
@@ -0,0 +1,120 @@
+<?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/0433:000E:0003</MetaDataItem>  
+    <MetaDataItem name="ProductPic">images/q-light/q-light_zerodim_2pol.png</MetaDataItem>	
+    <MetaDataItem id="000E" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3881</MetaDataItem>  
+    <MetaDataItem id="000E" name="Identifier" type="0003">Zerodim</MetaDataItem>	
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3881/Instructions_ZerodimZwave_2pol_Norsk_A4.pdf</MetaDataItem>	
+    <MetaDataItem name="Description">Zerodim Z-Wave by Q-light is a wireless smart home device.
+Features:
+- 0-99% dimming range
+- 2-180W LED load
+- Compatible with any Z-Wave or Z-Wave Plus Controller
+- There is memorized function at power off
+- OverLoad protection
+- Soft start function
+- SmartStart
+- This device is a security enable Z-Wave Plus product that is able to use encrypted Z-Wave Plus messages to communicate to other security enable Z-Wave Plus products.
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">
+1. Place the Zerodim Z-Wave within the direct range of your Z-Wave controller.
+2. Identify switch rotary knob (turns the light on).
+3. Set the main controller in (security/non-security) add mode (see the controller’s manual).
+4. Quickly, three times press switch rotary knob.
+5. Wait for the removing process to end.
+6. Successful removing will be confirmed by the Z-Wave controller’s message.
+	</MetaDataItem>
+    <MetaDataItem id="000E" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Q-light Zerodim Z-Wave</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Resetting the Zerodim Z-Wave:
+1. Quickly, nine times press switch rotary knob.
+2. Wait for the resetting process to end, the lamp will be set to maximum brightness.
+
+Device reset statues: Turn on the light at maximum brightness.
+	</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">
+Classic Learn Mode:
+1. Place the Zerodim Z-Wave within the direct range of your Z-Wave controller.
+2. Identify switch rotary knob (turns the light on).
+3. Set the main controller in (security/non-security) add mode (see the controller’s manual).
+4. Quickly, three times press switch rotary knob.
+5. Wait for the adding process to end.
+6. Successful adding will be confirmed by the Z-Wave controller’s message.
+
+SmartStart Learn Mode:
+1. Scanning the Z-Wave QR Code present on the product with a controller providing SmartStart inclusion.
+2. No further action is required and the SmartStart product will be added automaticall within 10 minutes of being switched on in the network vicinity.
+3. The QR Code and DSK are attached to the back of the product case, as shown below:
+	</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Geir Råness - git@winning.no" date="03 July 2020" revision="1">Initial release</Entry>
+      <Entry author="Geir Råness - git@winning.no" date="06 July 2020" revision="2">fix associations</Entry>
+    </ChangeLog>
+  </MetaData>
+  
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="10" label="Minimum brightness level" units="%" size="1" min="1" max="98" type="byte">
+      <Help>
+Set the desired value from 1 to 98% for the minimum dim level that the dimmer is restricted to, the dimmer will not go lower than the value set here.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="2" value="99" label="Maximum brightness level" units="%" size="1" min="2" max="99" type="byte">
+      <Help>
+Set the desired value from 2 to 99% for the maximum dim level that the dimmer is restricted to; the dimmer will not go higher than the value set here.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="3" value="1" label="Automatic control - dimming step size" units="%" size="1" min="1" max="99" type="byte">
+      <Help>
+This parameter defines the percentage value of dimming step during the automatic control.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="4" value="1" label="Automatic control - time of a dimming step" units="ms" size="1" min="1" max="255" type="byte">
+      <Help>
+This parameter defines the time of single dimming step set in parameter 3 during the automatic control.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="5" value="1" label="Manual control - dimming step size" units="step" size="1" min="1" max="99" type="byte">
+      <Help>
+This parameter defines the percentage value of dimming step during the manual control.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="5" label="Manual control - time of a dimming step" units="ms" size="1" min="1" max="255" type="byte">
+      <Help>
+This parameter defines the time of single dimming step setin parameter 5 during the manual control.	  
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="7" value="1" label="Memory function after power failure" size="1" min="0" max="1" type="list">
+      <Help>Set the desired value from 0 to 1 to turn on/off the memory function.Setting this value to 0 turns off the dimmer's Memory fucntion.Setting this value to 1 truns on the dimmer's Memory function.</Help>
+	    <Item value="0" label="Device does not save the state before a power failure, it returns to off position"/>
+      <Item value="1" label="Device restores it's state before power failure"/>
+    </Value>
+    <Value genre="config" instance="1" index="8" value="1" label="Scene ID set" units="step" size="1" min="1" max="255" type="byte">
+      <Help>
+Scene ID is set by this configuration.
+
+Note: The actual action of each SCENE ID are set by
+SCENE_ACTUATOR_CONF(0x26) command.
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="9" value="0" label="Timer functionality (auto - off)" units="seconds" size="2" min="0" max="32767" type="short">
+    <Help>
+This parameter allows to automatically switch off the device after specified time from switching on the light source. It may be useful when the Zerodim Z-Wave is installed in the stairway.
+
+Available settings: 
+0 - Function disabled. 
+1-32767 - time to turn off measured in seconds (1s-9.1h)
+    </Help>
+    </Value>
+
+  </CommandClass>
+
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1" />
+      <Group index="2" label="On/Off (rotary nob) / Mirror of endpoint 1, group 2" max_associations="5" />
+      <Group index="3" label="Dimmer (rotary nob) / Mirror of endpoint 1, group 3" max_associations="5" />
+    </Associations>
+  </CommandClass>
+
+</Product>
diff --git a/config/qolsys/qz2140-840.xml b/config/qolsys/qz2140-840.xml
new file mode 100644
index 0000000000..81822ff817
--- /dev/null
+++ b/config/qolsys/qz2140-840.xml
@@ -0,0 +1,57 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">QZ2140-840 Plug-In Dimmer</MetaDataItem>
+    <MetaDataItem name="Description">The IQ Dimmer is a Z-Wave Plus certified device with S2 security and SmartStart features. You can now add this device securely and with ease using QR code on the product with compatible gateways supporting S2 and SmartStart. The IQ Dimmer communicates with other Z-Wave certified devices and updates your home into a smart home. The IQ Dimmer can be used to turn any plug in lamps into a smart lamp with dimmable light bulbs, turning it On, Off, or control dimming wirelessly. Each Z-Wave device also serves as a node to repeat the signal in the network, thus, extending the overall Z-Wave mesh wireless network range.
+Additional Features:
+* Power 120 VAC, 60Hz, up to 300 watts
+* Region US: 908.4, 916 MHz
+* Works w/ most incandescent, dimmable CFL &amp; LED lights
+* Plugs into Standard AC outlet
+* Remotely controls On, Off, or Dim levels
+* Control lights via schedule
+* LED backlit manual On/Off button
+* Second wall AC outlet remains free
+* Works with any certified gateway supporting Z-Wave</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/012A:3032:4744</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/qolsys/qz2140-840.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/2912/IQ Dimmer UG Online.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Place your network controller into inclusion mode by following the controller manufacturer's instructions.
+2. When the controller is ready, single click the button on the front of the IQ Dimmer. The controller should indicate that the new device was added successfully.
+3. Once the IQ Dimmer has been successfully added to your home network, you can move it to the preferred location in the home</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Place your network controller into exclusion mode by following the controller manufacturer's instructions.
+2. When the controller is ready, single click the button on the front of the IQ Dimmer. The controller should indicate that the new device was removed successfully.
+3. Once the IQ Dimmer has been successfully added to your home network, you can move it to the preferred location in the home</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Unplug the IQ Dimmer from the AC outlet and also unplug the power plugs of the lighting from the module (if plugged in)
+2. Press and hold the button on the IQ Dimmer
+3. Plug the IQ Dimmer back into the AC outlet with the button pressed. After 3 seconds, release the button. If you see the button blink, that means that IQ Dimmer has been reset successfully.
+
+Please use this procedure only when the network primary controller is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem id="3032" name="ZWProductPage" type="4744">https://products.z-wavealliance.org/products/2912</MetaDataItem>
+    <MetaDataItem id="3032" name="FrequencyName" type="4744">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="3032" name="Identifier" type="4744">QZ2140-840</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Tao Gong - gongtao0607@gmail.com" date="03 Nov 2020" revision="1">Import from https://products.z-wavealliance.org/products/2912/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+    <Value genre="config" index="3" label="Night Light" max="2" min="0" size="1" type="list" value="0">
+      <Help>When value =0 the LED indicator will be OFF when the the connected light is ON, and the LED will be ON when the connected light is OFF. If value =1 the LED indicator will be ON when the connected light is ON, and the LED indicator will be OFF when the connected light is OFF. If value =2 the LED indicator will always be OFF regardless of the load status</Help>
+      <Item label="0: The LED indicator will be ON when the connected light is OFF." value="0"/>
+      <Item label="1: The LED indicator will be ON when the connected light is ON." value="1"/>
+      <Item label="2: The LED indicator will always be OFF regardless of the load status." value="2"/>
+    </Value>
+    <Value genre="config" index="9" label="Dimming Resolution Level" max="99" min="1" type="byte" units="" value="1">
+      <Help>Valid Values: 1-99, indicates the number of dimming levels.</Help>
+    </Value>
+    <Value genre="config" index="10" label="Dimming Resolution Speed" max="255" min="1" type="byte" units="" value="3">
+      <Help>Valid Values: 1-255, indicates the time duration of each level.</Help>
+    </Value>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" label="LifeLine" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/qubino/ZMNHCDx.xml b/config/qubino/ZMNHCDx.xml
index e3101023c4..2aa124569f 100644
--- a/config/qubino/ZMNHCDx.xml
+++ b/config/qubino/ZMNHCDx.xml
@@ -1,38 +1,42 @@
-<Product Revision="7" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="9" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0159:0052:0003</MetaDataItem>
     <MetaDataItem name="ProductPic">images/qubino/ZMNHCDx.png</MetaDataItem>
     <MetaDataItem id="0052" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/2505/</MetaDataItem>
-    <MetaDataItem name="InclusionDescription">•	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 push button I1 three times within 3s (3 times change switch state within 3 seconds) or
-•	press service button S (only applicable for 24 V SELV supply voltage) for more than 2 second.
+    <MetaDataItem name="InclusionDescription">
+      • 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 push button I1 three times within 3s (3 times change switch state within 3 seconds) or
+      • press service button S (only applicable for 24 V SELV supply voltage) for more than 2 second.
 
-NOTE1: For auto-inclusion procedure, first set main controller into inclusion mode and then connect module to power supply.
+      NOTE1: For auto-inclusion procedure, first set main controller into inclusion mode and then connect module to power supply.
 
-NOTE2: When connecting temperature sensor to module that has already been included, you have to exclude module first. Switch off power supply, connect the sensor and re-include the module.
-</MetaDataItem>
-    <MetaDataItem name="ExclusionDescription">•	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 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 or
-•	press service button S (only applicable for 24 V SELV supply voltage)  for more than 6 second.
-By this function all parameters of the module are set to default values and own ID is deleted.
+      NOTE2: When connecting temperature sensor to module that has already been included, you have to exclude module first. Switch off power supply, connect the sensor and re-include the module.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">
+      • 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 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 or
+      • press service button S (only applicable for 24 V SELV supply voltage) for more than 6 second.
+      By this function all parameters of the module are set to default values and own ID is deleted.
 
-If push button I1 is pressed three times within 3s (or service button S is pressed more than 2 and less than 6 seconds) module is excluded, but configuration parameters are not set to default values. 
+      If push button I1 is pressed three times within 3s (or service button S is pressed more than 2 and less than 6 seconds) module is excluded, but configuration parameters are not set to default values.
 
-NOTE: Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+      NOTE: Please use this procedure only when the network primary controller is missing or otherwise inoperable.
 
-NOTE: If the module is included with parameters 71 with value different to default and module reset is done, wait at least 30s before next inclusion
-</MetaDataItem>
-    <MetaDataItem name="ResetDescription">•	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 or
-•	press service button S (only applicable for 24 V SELV supply voltage)  for more than 6 second.
+      NOTE: If the module is included with parameters 71 with
+      value different to default and
+      module reset is done, wait at least 30s before next inclusion
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">
+      • 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 or
+      • press service button S (only applicable for 24 V SELV supply voltage) for more than 6 second.
 
-NOTE: Please use this procedure only when the network primary controller is missing or otherwise inoperable.
-</MetaDataItem>
-    <MetaDataItem name="Description">This Z-Wave module is used to control the motor of blinds, rollers, shades, venetian blinds, etc … The module can be controlled either through a Z-Wave network or through the wall switch. Precise positioning is supported for motors equipped with mechanical or electronic end switches. The module is designed to be mounted inside a “flush mounting box”, hidden behind a traditional wall switch. Module measures power consumption of motor and support connection of digital temperature sensor. It is designed to act as repeater in order to improve range and stability of Z-Wave network.                      
-</MetaDataItem>
+      NOTE: Please use this procedure only when the network primary controller is missing or otherwise inoperable.
+    </MetaDataItem>
+    <MetaDataItem name="Description">This Z-Wave module is used to control the motor of blinds, rollers, shades, venetian blinds, etc … The module can be controlled either through a Z-Wave network or through the wall switch. Precise positioning is supported for motors equipped with mechanical or electronic end switches. The module is designed to be mounted inside a “flush mounting box”, hidden behind a traditional wall switch. Module measures power consumption of motor and support connection of digital temperature sensor. It is designed to act as repeater in order to improve range and stability of Z-Wave network.</MetaDataItem>
     <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/2505/Qubino_Flush Shutter PLUS extended manual_eng_2.2.pdf</MetaDataItem>
     <MetaDataItem id="0052" name="Identifier" type="0003">ZMNHCD3</MetaDataItem>
     <MetaDataItem name="Name">Flush Shutter</MetaDataItem>
@@ -41,26 +45,20 @@ NOTE: Please use this procedure only when the network primary controller is miss
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="5">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2376/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="6">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2504/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="7">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2505/xml</Entry>
+      <Entry author="Olifant1990 - olifant1990@jo-ro.nl" date="31 December 2019" revision="8">Fixed problem of lifeline group 1.1 receives no update (https://www.domoticz.com/forum/viewtopic.php?f=24&amp;t=29715#p225812) and fixed format of this XML</Entry>
+      <Entry author="Olifant1990 - olifant1990@jo-ro.nl" date="31 December 2019" revision="9">Second fix of lifeline group 1.1 receives no update (https://www.domoticz.com/forum/viewtopic.php?f=24&amp;t=29715#p225812)</Entry>
     </ChangeLog>
   </MetaData>
-  <!--
-	Qubino: ZMNHCDx Flush shutter zwave+
+  <!-- Qubino: ZMNHCDx Flush shutter zwave+ ZMNHCD1 868,4 MHz ZMNHCD2 921,4 MHz ZMNHCD3 908,4 MHz ZMNHCD4 869,0 MHz ZMNHCD5 916,0 MHz -->
 
-	ZMNHCD1 868,4 MHz
-	ZMNHCD2 921,4 MHz
-	ZMNHCD3 908,4 MHz
-	ZMNHCD4 869,0 MHz
-	ZMNHCD5 916,0 MHz
--->
-
-	<!-- Configuration -->
+  <!-- Configuration -->
   <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"/>
+      <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>
@@ -70,93 +68,105 @@ NOTE: Please use this procedure only when the network primary controller is miss
     </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"/>
+      <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>
+        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 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"/>
+      <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 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>
+      <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 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>
+        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 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"/>
+      <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>
+        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 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>
+        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 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>
+        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 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>
+        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">
+    <Compatibility>
+      <ForceInstances>false</ForceInstances>
+    </Compatibility>
     <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"/>
+      <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>
+  <!-- Multi Channel Association Groups -->
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>false</ForceInstances>
+    </Compatibility>
+  </CommandClass>
   <!-- Remove COMMAND_CLASS_BASIC -->
-  <CommandClass action="remove" id="32"/>
+  <CommandClass action="remove" id="32" />
   <!-- Map endpoints to instances -->
   <CommandClass id="96">
     <Compatibility>
diff --git a/config/qubino/ZMNHHDx.xml b/config/qubino/ZMNHHDx.xml
index ee8522d00c..315e3ea31d 100644
--- a/config/qubino/ZMNHHDx.xml
+++ b/config/qubino/ZMNHHDx.xml
@@ -1,8 +1,52 @@
-<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
     <!--
   Qubino: ZMNHHDx Mini Dimmer Z-Wave+
   https://products.z-wavealliance.org/products/3381
   -->
+	<MetaData>
+        <MetaDataItem name="Name">Mini Dimmer</MetaDataItem>
+        <MetaDataItem name="Description">
+			The Qubino Mini Dimmer is smaller than any other zwave wireless dimmer in the world. Mini Dimmer is a
+			MOSFET-switching light device that also supports control of low-voltage halogen lamps with electronic
+			transformers, dimmable compact fluorescent lights, and dimmable LED bulbs. It can work with or
+			without the neutral line (3 or 2-wire installation). 
+		</MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0159:0055:0001</MetaDataItem>
+        <MetaDataItem name="ProductPage">https://qubino.com</MetaDataItem>
+        <MetaDataItem name="ProductSupport">https://support.qubino.com/support/home</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/qubino/ZMNHHDx.png</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">
+            Manual inclusion is triggered by the following procedure:
+            1. Connect the device to the power supply
+			2. Enable add/remove mode on your Z-Wave gateway (hub)
+			3. Toggle the switch connected to the terminal I 3 times within 3 seconds (this procedure puts the
+			device in LEARN MODE). The device has to get On/Off signal 3 times, meaning 3 times push of the
+			momentary switch or with toggle switch 3 times On and 3 times Off. 
+        </MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">
+            Exclusion is triggered by the following procedure:
+            1. Connect the device to the power supply.
+			2. Make sure the device is within direct range of your Z-Wave gateway (hub) or use a hand-held Z-Wave
+			remote to perform exclusion.
+			3. Enable add/remove mode on your Z-Wave gateway (hub).
+			4. Toggle the switch connected to the terminal I 3 times within 3 seconds (this procedure put the device
+			in LEARN MODE). The device has to get On/Off signal 3 times, meaning 3 times push of the momentary
+			switch or with toggle switch 3 times On and 3 times Off.
+        </MetaDataItem>
+        <MetaDataItem name="ResetDescription">
+            Reset is triggered after the following procedure:
+            1. Connect the device to the power supply.
+			2. Within the first minute (60 seconds) the device is connected to the power supply, toggle the switch
+			connected to the terminal I 5 times within 3 seconds. The device has to get On/Off signal 5 times, meaning
+			5 times push of the momentary switch or with toggle switch 5 times On and 5 times Off.
+        </MetaDataItem>
+        <ChangeLog>
+            <Entry author="Jean-François Auger" date="4 July 2019" revision="1">Initial Import</Entry>
+            <Entry author="Gert van Dijk" date="19 February 2020" revision="2">Fixed value type of config parameter 65</Entry>
+			<Entry author="Klemen Petrovcic" date="23 April 2021" revision="3">Changed descriptions of parameters 5 and 6 and added some metadata</Entry>
+        </ChangeLog>
+    </MetaData>
+	
     <!-- Configuration -->
     <CommandClass id="112">
         <Value genre="config" index="1" instance="1" label="In-wall Switch Type for Load to control I1" max="1" min="0" size="1" type="list" value="0">
@@ -11,7 +55,27 @@
             <Item label="Toggle switch" value="1"/>
         </Value>
         <Value genre="config" index="5" instance="1" label="Working mode" max="1" min="0" size="1" type="list" value="0">
-            <Help>With this parameter, you can change the device presentation on the user interface.</Help>
+            <Help>With this parameter, you can change the device presentation on the user interface. This parameter was removed in ZMNHHDx H1S3P2 (recertification) and was replaced with parameter no.6.</Help>
+            <Item label="Dimmer mode" value="0"/>
+            <Item label="Switch mode" value="1"/>
+        </Value>
+		<Value genre="config" index="6" instance="1" label="Load type" max="1" min="0" size="1" type="list" value="0">
+            <Help>
+				With this parameter, you select the load type: dimmable or non dimmable. 
+				Device operating in dimmable mode or non-dimmable load can lead to device or load malfunction. 
+				For non dimmable loads no.6 must be set to 1.
+					
+				NOTE: When no.6 set to 1 (non dimmable load) values of the following parameters will be ingnored:
+				- par.60 min. dimming value, 
+				- par.61 max. dimming value, 
+				- par.65 Dimm. Time when key presed,
+				- par.66 dimm. Time when key hold, 
+				- par.21 Double click function
+				
+				NOTE: If the bulb is dimmable or non dimmable (generally valid for LED) is shown on the bulb itself or on packaging.
+				
+				This parameter was added in ZMNHHDx H1S3P2 (recertification) and replaces parameter no.5, that required a reinclusion of the device.
+			</Help>
             <Item label="Dimmer mode" value="0"/>
             <Item label="Switch mode" value="1"/>
         </Value>
@@ -63,10 +127,10 @@
             <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 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 genre="config" index="65" instance="1" label="Dimming time (soft on/off)" max="127" min="1" type="byte" value="1">
+            <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 the controller.
+                1 - 127 = 1 second - 127 seconds.
+                Default value 1 (Dimming time between min. and max. dimming values is 1s).</Help>
         </Value>
         <Value genre="config" index="66" instance="1" label="Dimming time when key hold" max="255" min="1" type="short" value="3">
             <Help>
diff --git a/config/qubino/ZMNHMDx.xml b/config/qubino/ZMNHMDx.xml
new file mode 100644
index 0000000000..a4311a15d9
--- /dev/null
+++ b/config/qubino/ZMNHMDx.xml
@@ -0,0 +1,168 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+        <MetaDataItem name="Name">Smart leak protector</MetaDataItem>
+        <MetaDataItem name="Description">Qubino Smart leak protector can get the information about consumed water on one side, or have the complete protection of your home water system with water metering, flood detection and actuator for opening and closing the valve accordingly.</MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0159:0051:0006</MetaDataItem>
+        <MetaDataItem name="ProductPage">https://qubino.com</MetaDataItem>
+        <MetaDataItem name="ProductSupport">https://support.qubino.com/support/home</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/qubino/ZMNHADx.png</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">
+            1. Enable add/remove mode on your Z-Wave gateway.
+			2. Connect the device to the power supply.
+			3. Make sure the device is within direct range of your Z-Wave gateway.
+			4. Push the switch connected to the I1 terminal 3 times within 5 seconds.
+			OR
+			Press and hold the S (Service) button between 2 and 6 seconds.
+			4. A new device will appear on your dashboard.
+			5. Inclusion with the switch connected to I1 terminal is not limited by time.
+		</MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">
+            1. Connect the device to the power supply.
+			2. Make sure the device is within direct range of your Z-Wave gateway or use a hand-held Z-Wave remote to perform exclusion.
+			3. Enable add/remove mode on your Z-Wave gateway.
+			4. Toggle the switch connected to the I1 terminal 3 times within 5 seconds. The device must get ON/OFF signal 3 times. 
+			OR
+			Press and hold the S (Service) button between 2 and 6 seconds.
+			5. Exclusion with the switch connected to I1 terminal is not limited by time.
+			6. The device will be removed from your network, but any custom configuration parameters will not be erased.
+		</MetaDataItem>
+        <MetaDataItem name="ResetDescription">
+            1. Connect the device to the power supply.
+			2. Within the first minute (60 seconds) of the device being connected to the power supply, push the momentary switch connected to the I1 terminal 5 times within 5 seconds.
+			OR
+			Press and hold the S (Service) button for more than 6 seconds.
+			The procedure is always available.
+		</MetaDataItem>
+        <ChangeLog>
+            <Entry author="K.Petrovcic@goap.si" date="26 March 2021" revision="1">Initial Import</Entry>
+        </ChangeLog>
+    </MetaData>
+
+    <!-- Configuration Command Class -->
+    <CommandClass id="112">
+
+        <Value genre="config" index="1" instance="1" label="Output 1 contact type" max="1" min="0" size="1" type="list" value="0">
+            <Help>Defines the output contact type for Q↑.</Help>
+            <Item label="NO (normally open) contact type" value="0"/>
+            <Item label="NC (normally closed) contact 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>Defines how the device reacts if a signal from I2 input is registered.</Help>
+            <Item label="NO (normally open) contact type" value="0"/>
+            <Item label="NC (normally closed) contact 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>Defines how the device reacts if a signal from I3 input is registered..</Help>
+            <Item label="NO (normally open) contact type" value="0"/>
+            <Item label="NC (normally closed) contact type" value="1"/>
+        </Value>
+		
+		 <Value genre="config" index="30" instance="1" label="Restore state on power failure" max="1" min="0" size="1" type="list" value="0">
+            <Help>With this parameter, the user can select if the state of the device should be restored, after a power failure.</Help>
+            <Item label="Enabled (the device will restore state on power failure)" value="0"/>
+            <Item label="Disabled (the device will not restore state on power failure and will remain off)" value="1"/>
+        </Value>
+		
+		<Value genre="config" index="48" instance="1" label="Water total consumption value in Liters" max="2147483647" min="-2147483648" size="4" type="int" value="0">
+            <Help>
+				With this parameter we can set the current water consumption value in liters. 
+				The value is represented with two's complement notation so that it can represent negative values also. 
+				Span of the input value is from (-2147483648) to (+2147483647). 
+				Its main usage is to set the same value on our device as on physical water meter. 
+				If we get the PARAMETER_48 value with PARAMETER_GET command we get the last value that was set with this parameter and not the current water consumption value! 
+				To get the current consumption value we must send the METER_GET command.
+			</Help>
+        </Value>
+		
+		<Value genre="config" index="50" instance="1" label="Number of liters per pulse" units="litres" max="1000" min="1" size="2" type="short" value="10">
+            <Help>
+				This number defines how many litres represent 1 received pulse from the water meter connected to I2.
+				Default value = 10 (1 pulse = 10 liters)
+				1 to 1000 => 1 litre – 1000 litres (step is 1 litre).
+            </Help>
+        </Value>
+		
+		<Value genre="config" index="51" instance="1" label="Number of liters for Slow Leak" units="litres" max="1000" min="1" size="2" type="short" value="10">
+            <Help>
+				This number defines how many minimum litres must be consumed each hour and constantly repeated for the defined time in parameter 52 to cause the leak alarm (depends on meter resolution).
+				Default value = 1 (1 litre)
+				1 to 1000 => 1 litre – 1000 litres (step is 1 litre).
+			</Help>
+        </Value>
+		
+		<Value genre="config" index="52" instance="1" label="Water consumption time interval for Slow Leak" units="hours" max="24" min="1" size="1" type="byte" value="24">
+            <Help>
+				Set value means time interval (0 – 24) in hours, during which the device checks, if water consumption defined in Parameter 51 was consumed to cause the leak alarm.
+				Default value = 24 (checking for a leak alarm in 24 hours)
+				1 – 24 => 1 hour – 24 hours
+			</Help>
+        </Value>
+		
+		<Value genre="config" index="53" instance="1" label="Number of liters for Medium Leak" units="litres" max="1000" min="1" size="2" type="short" value="150">
+            <Help>
+				This number defines how many minimum litres must be consumed each hour and constantly repeated for the defined time in parameter 54 to cause the leak alarm.
+				Default value = 150 (150 litres)
+				1 – 1000 => 1 litre – 1000 litres – step is 1 litre
+			</Help>
+        </Value>
+		
+		<Value genre="config" index="54" instance="1" label="Water consumption time interval for Medium Leak" units="hours" max="24" min="1" size="1" type="byte" value="6">
+            <Help>
+				Set value means time interval (0 – 24) in hours, during which the device checks, if water consumption defined in Parameter 53 was consumed to cause the leak alarm.
+				Default value = 6 (checking for a leak alarm in 6 hours)
+				1 – 24 => 1 hour – 24 hours
+			</Help>
+        </Value>
+		
+		<Value genre="config" index="55" instance="1" label="Number of liters for Fast Leak" units="litres" max="1000" min="1" size="2" type="short" value="300">
+            <Help>
+				This number defines how many minimum liters must be consumed each hour and constantly repeated for the defined time in parameter 56 to cause the leak alarm.
+				Default value 300 (300 liters)
+				1 – 1000 = 1 litre – 1000 litres – step is 1 litre
+			</Help>
+        </Value>
+		
+		<Value genre="config" index="56" instance="1" label="Water consumption time interval for Fast Leak" units="hours" max="24" min="1" size="1" type="byte" value="3">
+            <Help>
+				Set value means time interval (0 – 24) in hours, during which the device checks, if water consumption defined in Parameter 53 was consumed to cause the leak alarm.
+				Default value = 3 (checking for a leak alarm in 3 hours)
+				1 – 24 => 1 hour – 24 hours
+			</Help>
+        </Value>
+		
+		<Value genre="config" index="60" instance="1" label="Enable closing valve according to Slow Leak" max="1" min="0" size="1" type="list" value="1">
+            <Help>This parameter defines what happens with the valve if the leak alarm is triggered.</Help>
+            <Item label="Close the valve" value="0"/>
+            <Item label="Don’t close the valve" value="1"/>
+        </Value>
+		
+		<Value genre="config" index="61" instance="1" label="Enable closing valve according to Medium Leak" max="1" min="0" size="1" type="list" value="1">
+            <Help>This parameter defines what happens with the valve if the leak alarm is triggered.</Help>
+            <Item label="Close the valve" value="0"/>
+            <Item label="Don’t close the valve" value="1"/>
+        </Value>
+		
+		<Value genre="config" index="62" instance="1" label="Enable closing valve according to Fast Leak" max="1" min="0" size="1" type="list" value="1">
+            <Help>This parameter defines what happens with the valve if the leak alarm is triggered.</Help>
+            <Item label="Close the valve" value="0"/>
+            <Item label="Don’t close the valve" value="1"/>
+        </Value>
+		
+		<Value genre="config" index="63" instance="1" label="Enable closing valve according to Hardware Leak" max="1" min="0" size="1" type="list" value="1">
+            <Help>This parameter defines what happens with the valve if the leak alarm is triggered.</Help>
+            <Item label="Close the valve" value="0"/>
+            <Item label="Don’t close the valve" 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 OnOff" max_associations="5"/>
+        </Associations>
+    </CommandClass>
+</Product>
\ No newline at end of file
diff --git a/config/qubino/ZMNHQDx.xml b/config/qubino/ZMNHQDx.xml
index c17c8d895b..2e2e95c1a4 100644
--- a/config/qubino/ZMNHQDx.xml
+++ b/config/qubino/ZMNHQDx.xml
@@ -1,98 +1,90 @@
-<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
-  
-  <MetaData>
-    <MetaDataItem name="Name">LUXY Smart Light</MetaDataItem>
-    <MetaDataItem name="Description">The Qubino LUXY Smart Light is ideal for gentle illumination of any room and for visual and sound notifications.</MetaDataItem>
-    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0159:0051:0008</MetaDataItem>
-    <MetaDataItem name="ProductPage">https://qubino.com</MetaDataItem>
-    <MetaDataItem name="ProductSupport">https://support.qubino.com/support/home</MetaDataItem>
-	
-	<MetaDataItem name="InclusionDescription">
-		Manual inclusion is triggered by the following procedure: 
-		Full white needs to be active (c-button 2). The user can select it by quickly pressing the c-button2 once.
-		When full white is enabled, press c-button3 and hold it for 5 seconds (while white is glowing, hold c-button3 for 5 seconds).
-		After 5 seconds, the device starts flashing, with the following pattern: green 1 second on, 0.5 second off.
-		Once the device receives a nodeId or after 10 seconds, it stops flashing and turns green. 
-	</MetaDataItem>
-		
-	<MetaDataItem name="ExclusionDescription">
-		Exclusion is triggered by the following procedure:		
-		Full white needs to be active (c-button 2).
-		When full white is enabled, press c-button3 and hold it for 5 seconds (while white is glowing hold c-button3 for 5 seconds).
-		After 5 seconds, the device starts flashing with the following pattern: red 1 second on, 0.5 second off. 
-		Once the device loses its nodeId or after 10 seconds, it stops flashing and turns red. 
-	</MetaDataItem>
-    
-	<MetaDataItem name="ResetDescription">
-		Reset is triggered after the following procedure:
-		Full white needs to be active (c-button 2).
-		When full white is enabled, press c-button5 and hold it for 10 seconds.
-		After 10 seconds, the device starts flashing with the following pattern: blue 1 second on, 0.5 second off.
-		After 10 seconds the device stops flashing and turns blue.
-		The procedure is available always.
-	</MetaDataItem>
-    
-	<ChangeLog>
-      <Entry author="K.Petrovcic@goap.si" date="18 October 2019" revision="1"></Entry>
-    </ChangeLog>
-  </MetaData>
-  
-  <!-- Configuration Command Class -->
-   <CommandClass id="112">
-	
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+        <MetaDataItem name="Name">LUXY Smart Light</MetaDataItem>
+        <MetaDataItem name="Description">The Qubino LUXY Smart Light is ideal for gentle illumination of any room and for visual and sound notifications.</MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0159:0051:0008</MetaDataItem>
+        <MetaDataItem name="ProductPage">https://qubino.com</MetaDataItem>
+        <MetaDataItem name="ProductSupport">https://support.qubino.com/support/home</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/qubino/ZMNHQDx.png</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">
+            Manual inclusion is triggered by the following procedure:
+            Full white needs to be active (c-button 2). The user can select it by quickly pressing the c-button2 once.
+            When full white is enabled, press c-button3 and hold it for 5 seconds (while white is glowing, hold c-button3 for 5 seconds).
+            After 5 seconds, the device starts flashing, with the following pattern: green 1 second on, 0.5 second off.
+            Once the device receives a nodeId or after 10 seconds, it stops flashing and turns green.
+        </MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">
+            Exclusion is triggered by the following procedure:
+            Full white needs to be active (c-button 2).
+            When full white is enabled, press c-button3 and hold it for 5 seconds (while white is glowing hold c-button3 for 5 seconds).
+            After 5 seconds, the device starts flashing with the following pattern: red 1 second on, 0.5 second off.
+            Once the device loses its nodeId or after 10 seconds, it stops flashing and turns red.
+        </MetaDataItem>
+        <MetaDataItem name="ResetDescription">
+            Reset is triggered after the following procedure:
+            Full white needs to be active (c-button 2).
+            When full white is enabled, press c-button5 and hold it for 10 seconds.
+            After 10 seconds, the device starts flashing with the following pattern: blue 1 second on, 0.5 second off.
+            After 10 seconds the device stops flashing and turns blue.
+            The procedure is available always.
+        </MetaDataItem>
+        <ChangeLog>
+            <Entry author="K.Petrovcic@goap.si" date="18 October 2019" revision="1">Initial Import</Entry>
+            <Entry author="Jean-Francois Auger - nechry@gmail.com" date="29 December 2019" revision="2">Reformat and remove small typo</Entry>
+            <Entry author="Justin Hammond" date="23 March 2020" revision="3">Fix Empty ChangeLog Entry</Entry>
+            <Entry author="Justin Hammond" date="24 June 2020" revision="4">Add Product Pic</Entry>
+        </ChangeLog>
+    </MetaData>
+
+    <!-- Configuration Command Class -->
+    <CommandClass id="112">
+
         <Value genre="config" index="1" instance="1" label="Digital input type" max="3" min="0" size="1" type="list" value="1">
-            <Help>Defines the type of input device, connected to digital input. </Help>
+            <Help>Defines the type of input device, connected to digital input.</Help>
             <Item label="Push-button" value="0"/>
             <Item label="OnOff toggle switch" value="1"/>
-			<Item label="Motion sensor" value="2"/>
-			<Item label="Motion sensor with memory (turned off after the amount of time, defined in parameter #5." value="3"/>
+            <Item label="Motion sensor" value="2"/>
+            <Item label="Motion sensor with memory" value="3"/>
         </Value>
-		
-		<Value genre="config" index="3" instance="1" label="Turning off alarming" max="1" min="0" size="1" type="list" value="1">
+        <Value genre="config" index="3" instance="1" label="Turning off alarming" max="1" min="0" size="1" type="list" value="1">
             <Help>With this parameter, you can determine, how to turn off the alarm.</Help>
             <Item label="Only by Z-Wave alarm" value="0"/>
-            <Item label="By capacitive input or Z-Wave command" value="1"/>
+            <Item label="Capacitive input or Z-Wave command" value="1"/>
         </Value>
-		
-		<Value genre="config" index="5" instance="1" label="Motion sensor memory timer" units="second" max="32535" min="0" size="2" type="short" value="10">
+        <Value genre="config" index="5" instance="1" label="Motion sensor memory timer" units="second" max="32535" min="0" size="2" type="short" value="10">
             <Help>
+                Defines the time after which the output triggered by motion sensor is turned off.
                 Default value = 10.
-				0 – 32534 = 0-32534 seconds after which the LED will be turned off.
-				32535 – never turns off.
-			</Help>
+                0 to 32534 => 0-32534 seconds after which the LED will be turned off.
+                32535 => never turns off.
+            </Help>
         </Value>
-		
-		<Value genre="config" index="10" instance="1" label="Auto on timer" units="second" max="32535" min="0" size="2" type="short" value="0">
+        <Value genre="config" index="10" instance="1" label="Auto on timer" units="second" max="32535" min="0" size="2" type="short" value="0">
             <Help>
-				Default value = 0. 
-                0 – disabled.
-				1 – 32535 = 1 – 32535 seconds after which the device turns on.
-			</Help>
+                Default value = 0
+                0 => Disabled
+                30 to 32767 => 30 - 32767 seconds after which the device turns on.
+            </Help>
         </Value>
-		
-		<Value genre="config" index="11" instance="1" label="Auto off timer" units="second" max="32535" min="0" size="2" type="short" value="0">
+        <Value genre="config" index="11" instance="1" label="Auto off timer" units="second" max="32535" min="0" size="2" type="short" value="0">
             <Help>
-				Default value = 0 
-				0 – disabled
-				1 – 32535 = 1 – 32535 seconds after which the device turns off
-			</Help>
+                Default value = 0
+                0 => Disabled
+                30 to 32767 => 30 - 32767 seconds after which the device turns off.
+            </Help>
         </Value>
-		
-		<Value genre="config" index="30" instance="1" label="Restore state on power failure" max="1" min="0" size="1" type="list" value="1">
+        <Value genre="config" index="30" instance="1" label="Restore state on power failure" max="1" min="0" size="1" type="list" value="1">
             <Help>With this parameter, the user can select if the state of the device should be restored, after a power failure.</Help>
-            <Item label="Enabled" value="0"/>
-            <Item label="Disabled" value="1"/>
+            <Item label="Disable" value="0"/>
+            <Item label="Enabled" value="1"/>
         </Value>
-		
-		<Value genre="config" index="50" instance="1" label="Beeper enable/disable" max="1" min="0" size="1" type="list" value="1">
+        <Value genre="config" index="50" instance="1" label="Beeper" max="1" min="0" size="1" type="list" value="1">
             <Help>With this parameter, the user can select the operating mode of the beeper.</Help>
-            <Item label="Enabled" value="0"/>
-            <Item label="Disabled" value="1"/>
+            <Item label="Disable" value="0"/>
+            <Item label="Enabled" value="1"/>
         </Value>
-		
-	</CommandClass>
-  
-	<!-- Association Groups -->
+    </CommandClass>
+    <!-- Association Groups -->
     <CommandClass id="133">
         <Associations num_groups="4">
             <Group index="1" label="Lifeline" max_associations="1"/>
@@ -101,5 +93,4 @@
             <Group index="4" label="Multilevel set" max_associations="5"/>
         </Associations>
     </CommandClass>
-
 </Product>
\ No newline at end of file
diff --git a/config/qubino/ZMNHYDx.xml b/config/qubino/ZMNHYDx.xml
index c19ced0070..64f9c62320 100644
--- a/config/qubino/ZMNHYDx.xml
+++ b/config/qubino/ZMNHYDx.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0159:0054:0002</MetaDataItem>
     <MetaDataItem name="ProductPic">images/qubino/ZMNHYDx.png</MetaDataItem>
@@ -29,6 +29,7 @@ By resetting the device, all custom parameters previously set on the device will
     <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3146/Qubino_Smart Plug 16A PLUS extended manual_eng_2.5.pdf</MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3146/xml</Entry>
+      <Entry author="Gert van Dijk - gertvdijk@gmail.com" date="10 January 2020" revision="3">Update description for configuration parameter 52 and fix typo</Entry>
     </ChangeLog>
   </MetaData>
   <!--
@@ -115,17 +116,17 @@ By resetting the device, all custom parameters previously set on the device will
                 0-4000 (0.0 to 4000.0W, 0 disables)
             </Help>
     </Value>
-    <Value genre="config" index="52" instance="1" label="Action in case of exceeding power values (param 51/52)" max="6" min="0" size="1" type="list" value="6">
+    <Value genre="config" index="52" instance="1" label="Action in case of exceeding power values (param 50/51)" max="6" min="0" size="1" type="list" value="6">
       <Help>
                 Parameter defines the way 3rd association group devices are controlled, depending on the current power load.
             </Help>
-      <Item label="Disbale" value="0"/>
-      <Item label="1 - Turn on once the power drop below param 50" value="1"/>
-      <Item label="2 - Turn off once the power drop below param 50" value="2"/>
-      <Item label="3 - Turn on once the power rises above param 51" value="3"/>
-      <Item label="4 - Turn off once the power rises above param 51" value="4"/>
+      <Item label="Disable" value="0"/>
+      <Item label="1 - Turn on once the power drops below value of param 50" value="1"/>
+      <Item label="2 - Turn off once the power drops below value of param 50" value="2"/>
+      <Item label="3 - Turn on once the power rises above value of param 51" value="3"/>
+      <Item label="4 - Turn off once the power rises above value of param 51" value="4"/>
       <Item label="1 and 4 combined" value="5"/>
-      <Item label="2 and 6 combined" value="6"/>
+      <Item label="2 and 3 combined" value="6"/>
     </Value>
     <Value genre="config" index="70" instance="1" label="Overload safety switch" max="4000" min="0" size="2" type="short" units="Watts" value="0">
       <Help>
@@ -138,7 +139,7 @@ By resetting the device, all custom parameters previously set on the device will
       <Help>
                 Using this parameter it is possible to enable/disable reporting after the set command (i.e. Basic set).
             </Help>
-      <Item label="Disbale" value="0"/>
+      <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
   </CommandClass>
diff --git a/config/qubino/ZMNKADx.xml b/config/qubino/ZMNKADx.xml
new file mode 100644
index 0000000000..3f0839d897
--- /dev/null
+++ b/config/qubino/ZMNKADx.xml
@@ -0,0 +1,171 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+        <MetaDataItem name="Name">LUXY Smart Switch</MetaDataItem>
+        <MetaDataItem name="Description">The Qubino LUXY Smart Switch is ideal for gentle illumination of any room, for visual and sound notifications, and for controling various loads, using the built-in relay.</MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0159:0052:0008</MetaDataItem>
+        <MetaDataItem name="ProductPage">https://qubino.com</MetaDataItem>
+        <MetaDataItem name="ProductSupport">https://support.qubino.com/support/home</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/qubino/ZMNKADx.png</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">
+            Manual inclusion is triggered by the following procedure:
+            Full white needs to be active (c-button 2). The user can select it by quickly pressing the c-button2 once.
+            When full white is enabled, press c-button3 and hold it for 5 seconds (while white is glowing, hold c-button3 for 5 seconds).
+            After 5 seconds, the device starts flashing, with the following pattern: green 1 second on, 0.5 second off.
+            Once the device receives a nodeId or after 10 seconds, it stops flashing and turns green.
+        </MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">
+            Exclusion is triggered by the following procedure:
+            Full white needs to be active (c-button 2).
+            When full white is enabled, press c-button3 and hold it for 5 seconds (while white is glowing hold c-button3 for 5 seconds).
+            After 5 seconds, the device starts flashing with the following pattern: red 1 second on, 0.5 second off.
+            Once the device loses its nodeId or after 10 seconds, it stops flashing and turns red.
+        </MetaDataItem>
+        <MetaDataItem name="ResetDescription">
+            Reset is triggered after the following procedure:
+            Full white needs to be active (c-button 2).
+            When full white is enabled, press c-button5 and hold it for 10 seconds.
+            After 10 seconds, the device starts flashing with the following pattern: blue 1 second on, 0.5 second off.
+            After 10 seconds the device stops flashing and turns blue.
+            The procedure is available always.
+        </MetaDataItem>
+        <ChangeLog>
+            <Entry author="K.Petrovcic@goap.si" date="22 January 2020" revision="1">Initial Import</Entry>
+            <Entry author="Justin Hammond" date="24 June 2020" revision="2">Add Product Pic</Entry>
+        </ChangeLog>
+    </MetaData>
+
+    <!-- Configuration Command Class -->
+    <CommandClass id="112">
+		
+		<Value genre="config" instance="1" index="1" value="0" label="Relay contact type" units="" size="1" min="0" max="1" type="list">
+			  <Help>
+				Relay contact type.
+			  </Help>
+		  <Item value="0" label="NO (normally open) output type" />
+		  <Item value="1" label="NC (normally close) output type" />
+		</Value>
+		
+		<Value genre="config" index="3" instance="1" label="Turning off alarming" max="1" min="0" size="1" type="list" value="1">
+            <Help>
+				With this parameter, you can determine, how to turn off the alarm.
+				
+				0 => only by z-wave command (basic set, switch multilevel set, switch multilevel start/stop level change, sound switch play tone, sound switch
+				configuration, switch color set, switch color start/stop level change, notification report idle)
+				
+				1 => capacitive input (up, down, left, right) or z-wave command (basic set, switch multilevel set, switch multilevel start/stop level change, sound
+				switch play tone, sound switch configuration, switch color set, switch color start/stop level change, notification report idle)
+			</Help>
+            <Item label="With a Z-Wave command" value="0"/>
+            <Item label="With the capacitive input or a Z-Wave command" value="1"/>
+        </Value>
+		
+		<Value genre="config" index="10" instance="1" label="Auto on timer" units="second" max="32535" min="0" size="2" type="short" value="0">
+            <Help>
+                Default value = 0
+                0 => Disabled
+                30 to 32535 => 30 - 32535 seconds after which the device turns on.
+            </Help>
+        </Value>
+		
+        <Value genre="config" index="11" instance="1" label="Auto off timer" units="second" max="32535" min="0" size="2" type="short" value="0">
+            <Help>
+                Default value = 0
+                0 => Disabled
+                30 to 32535 => 30 - 32535 seconds after which the device turns off.
+            </Help>
+        </Value>
+		
+		<Value genre="config" index="12" instance="1" label="Auto on timer relay" units="second" max="32535" min="0" size="2" type="short" value="0">
+            <Help>
+                Default value = 0
+                0 => Disabled
+                30 to 32535 => 30 - 32535 seconds after which the device turns on.
+            </Help>
+        </Value>
+		
+        <Value genre="config" index="13" instance="1" label="Auto off timer relay" units="second" max="32535" min="0" size="2" type="short" value="0">
+            <Help>
+                Default value = 0
+                0 => Disabled
+                30 to 32535 => 30 - 32535 seconds after which the device turns off.
+            </Help>
+        </Value>
+		
+		<Value genre="config" index="30" instance="1" label="Restore state on power failure" max="1" min="0" size="1" type="list" value="1">
+            <Help>
+				With this parameter, the user can select if the state of the device (color, brightness) should be restored, after a power failure.
+				
+				Default value = 1
+				1 – Enabled (the device will restore state on power failure)
+				0 – Disabled (the device will not restore state on power failure and will remain off)
+			</Help>
+            <Item label="Disable" value="0"/>
+            <Item label="Enabled" value="1"/>
+        </Value>
+		
+		<Value genre="config" index="31" instance="1" label="Restore relay state on power failure" max="1" min="0" size="1" type="list" value="1">
+            <Help>
+				With this parameter, the user can select if the state of the built-in relay should be restored, after a power failure.
+					
+				Default value = 1
+				1 – Enabled (the device will restore state on power failure)
+				0 – Disabled (the device will not restore state on power failure and will remain off)
+			</Help>
+            <Item label="Disabled" value="0"/>
+            <Item label="Enabled" value="1"/>
+        </Value>
+		
+		<Value genre="config" index="40" instance="1" label="Watt Power Consumption Reporting Threshold for Load" units="" max="100" min="0" size="1" type="byte" value="10">
+            <Help>
+                Choose by how much the power consumption needs to increase or decrease to be reported. 
+				Values correspond to percentages, so if 10 is set (by default), the device will report any power consumption changes of 10% or more compared to the last reading.
+
+				Default value = 10
+				0 => Power consumption reporting disabled
+				1 to 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 Load" units="second" max="32535" min="0" size="2" type="short" value="0">
+            <Help>
+                Set value refers to the time interval for power consumption reporting (Watts). 
+				
+				Default value = 0
+				0 => Power consumption reporting disabled
+				30 to 32535 => 30 - 32535 seconds. Power consumption reporting enabled. Report is sent according to time interval (value) set here.
+            </Help>
+        </Value>
+		
+		<Value genre="config" index="70" instance="1" label="Overload safety switch" units="" max="2300" min="0" size="2" type="short" value="2300">
+            <Help>
+                The function allows turning off the controlled device in case of exceeding the defined power for more than 5s. 
+				The controlled device can be turned back on by input I1 or by sending an actuation command.
+
+				Default value = 2300
+				0 => function not active
+				1 to 2300 => 1 W – 2300W
+
+				NOTE: This functionality is not an overload safety protection, please check the technical specifications chapter for more details in the official manual.
+
+				In case of an overload event, the device will send the following message to the gateway/controller:
+				NOTIFICATION_REPORT_V8(type=0x08=POWER_MANAGEMENT, event=0x08=Overload detected)
+			</Help>
+        </Value>
+		
+    </CommandClass>
+	
+    <!-- Association Groups -->
+    <CommandClass id="133">
+        <Associations num_groups="5">
+		  <Group index="1" label="Lifeline" max_associations="1"/>
+		  <Group index="2" label="LEDs on/off" max_associations="5" />
+		  <Group index="3" label="Change of brightness" max_associations="5" />
+		  <Group index="4" label="Change of color" max_associations="5" />
+		  <Group index="5" label="Relay on/off" max_associations="5" />
+		</Associations>
+    </CommandClass>
+	
+</Product>
\ No newline at end of file
diff --git a/config/remotec/zts-500.xml b/config/remotec/zts-500.xml
index cda03abb1d..0911d9c666 100644
--- a/config/remotec/zts-500.xml
+++ b/config/remotec/zts-500.xml
@@ -1,4 +1,4 @@
-<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/5254:8170:0200</MetaDataItem>
     <MetaDataItem name="ProductPic">images/remotec/zts-500.png</MetaDataItem>
@@ -11,27 +11,31 @@ Press &lt; to cancel and back to the previous screen.
 Use the RESET procedure ONLY when the primary Controller is missing or inoperable.
 </MetaDataItem>
     <MetaDataItem id="8170" name="FrequencyName" type="0200">U.S. / Canada / Mexico</MetaDataItem>
-    <MetaDataItem name="Description">ZTS-500 is a user-friendly Z-Wave programmable smart thermostat. The ZTS-500 is compatible with any Z-Wave certified controller or gateway and is designed to fit perfectly over most original thermostat installation marks without the need for a mounting board. The invisible 4-button back-illuminated interface combines a simple and intuitive interactive experience with a modern fashionable look. The flip-over terminal-board makes installation a breeze, The ZTS-500 allows utilization even in environments where a C wire is not available. With automatic power source detection (24Vac or Battery Power), it decide to maximizing battery life or acting as a range extender in the Z-Wave network, and all your connections will be safe and secure behind AES128 encryption. The ZTS-500’s available multi-color faceplates allow for seamless integration into a variety of interior designs.</MetaDataItem>
+    <MetaDataItem name="Description">ZTS-500 is a user-friendly Z-Wave programmable smart thermostat. The ZTS-500 is compatible with any Z-Wave certified controller or gateway and is designed to fit perfectly over most original thermostat installation marks without the need for a mounting board. The invisible 4-button back-illuminated interface combines a simple and intuitive interactive experience with a modern fashionable look. The flip-over terminal-board makes installation a breeze, The ZTS-500US allows utilization even in environments where a C wire is not available. With automatic power source detection (24Vac or Battery Power), it decide to maximizing battery life or acting as a range extender in the Z-Wave network, and all your connections will be safe and secure behind AES128 encryption. The ZTS-500’s available multi-color faceplates allow for seamless integration into a variety of interior designs.</MetaDataItem>
     <MetaDataItem name="InclusionDescription">From the Standby screen, press > or &lt; to navigate to the Z-Wave screen and the Z-Wave LED will continuously flash.
-Tap + to include the ZTS-500US into the network.
--	The “✔” symbol will be displayed on screen once the ZTS-500US is added into the network.
+Tap + to include the ZTS-500 into the network.
+-	The “✔” symbol will be displayed on screen once the ZTS-500 is added into the network.
 The Z-Wave disconnect icon will also be removed from the standby screen.
 
--	The “x” symbol will be displayed on screen if there is no action (time out) or unable to include the ZTS-500US into the network.
+-	The “x” symbol will be displayed on screen if there is no action (time out) or unable to include the ZTS-500 into the network.
 </MetaDataItem>
-    <MetaDataItem id="8170" name="Identifier" type="0200">ZTS-500US</MetaDataItem>
+    <MetaDataItem id="8170" name="Identifier" type="0200">ZTS-500</MetaDataItem>
     <MetaDataItem name="ExclusionDescription">Press and keep holding > or &lt; for 3 seconds to navigate to the System Main (SYS) screen. 
 On the Z-Wave (Z-w) screen.
-Tap + to exclude ZTS-500US from the network.
+Tap + to exclude ZTS-500 from the network.
 Press &lt; to cancel and back to the previous screen.
 </MetaDataItem>
     <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/1767/F-BW8170US (ZTS-500US) User_Manual_V1.01_Z-Wave validation_20160510.pdf</MetaDataItem>
     <MetaDataItem name="Name">Z-WAVE SMART THERMOSTAT</MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1767/xml</Entry>
+      <Entry author="James Dodds" date="04 October 2020" revision="5">Update to include AU version, which is idential to the US version but with a different type</Entry>
     </ChangeLog>
+    <MetaDataItem id="8170" name="ZWProductPage" type="0202">https://products.z-wavealliance.org/products/1767/xml</MetaDataItem>
+    <MetaDataItem id="8170" name="Identifier" type="0202">ZTS-500</MetaDataItem>
+    <MetaDataItem id="8170" name="FrequencyName" type="0202">Australia / New Zealand</MetaDataItem>
   </MetaData>
-  <!-- Remotec ZTS-500 Thermostat
+  <!-- Remotec ZTS-500US 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 -->
 
diff --git a/config/ring/PIR-SS.xml b/config/ring/PIR-SS.xml
new file mode 100644
index 0000000000..504bfa236b
--- /dev/null
+++ b/config/ring/PIR-SS.xml
@@ -0,0 +1,70 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Ring PIR-SS Motion Sensor</MetaDataItem>
+    <MetaDataItem name="Description">Ring Motion sensor is a Z-Wave passive infrared (PIR) motion detector which will be used as a primary intrusion detection unit in the system.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0346:0201:0301</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ring/PIR-SS.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/2664/Ring%20Motion%20Sensor%20-%20Manual.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Removing the top cover will put the sensor in tamper mode and will keep the sensor awake</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription"> Exclusion Instructions:
+1.	Initiate remove sensor flow in the Ring Alarm mobile application – Select the settings icon from device details page and choose “Remove Device”
+2.	Open motion sensor’s cover
+3.	Remove and replace battery quickly
+    </MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Inclusion instructions: 
+1.	Install battery, or remove battery tab.  Replace cover
+2.	Place Zwave device controller into inclusion mode.
+3.	Remove cover. Device LED should go on
+4. 	Press down the tamper cover microswitch for one second then release.
+5.	Replace cover.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Factory Default Instructions
+1.	Using a pointed end of a paperclip, press and hold the reset button via the reset pin hole found at the back of the sensor
+2.	Blue LED will start to blink rapidly
+3.	Wait for the blue LED to stop blinking
+
+Use this procedure only in the event that the network primary controller is missing or otherwise inoperable.
+    </MetaDataItem>
+    <MetaDataItem id="0201" name="ZWProductPage" type="0301">https://products.z-wavealliance.org/products/2664/</MetaDataItem>
+    <MetaDataItem id="0201" name="Identifier" type="0301">PIR-SS</MetaDataItem>
+    <MetaDataItem id="0201" name="FrequencyName" type="0301">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+	<Entry author="eyager1" date="22 May 2020" revision="1">Initial Metadata Creation</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Unsolicted Report Time" max="4200" min="255" size="2" type="short" units="seconds" value="3600">
+      <Help>
+        Interval which unsolicted reports are sent.
+      </Help>
+    </Value>
+    <Value genre="config" index="2" label="Dwell Time" max="9" min="1" size="1" type="byte" units="minutes" value="5">
+      <Help>
+        Time which sensor will hold onto a motion detected or cleared event.
+      </Help>
+    </Value>
+    <Value genre="config" index="3" label="Pet Immunity" max="2" min="0" size="1" type="list" units="" value="2">
+      <Help>
+        Pet Immunity Setting
+      </Help>
+      <Item label="No pet immunity" value="0"/>
+      <Item label="15kg (33lb)" value="1"/>
+      <Item label="25kg (55lb)" value="2"/>
+    </Value>
+    <Value genre="config" index="4" label="Walk Test" max="255" min="0" size="1" type="list" units="" value="0">
+      <Help>
+        Activate walk test for 15 minutes
+      </Help>
+      <Item label="Normal Operation" value="0"/>
+      <Item label="Activated" value="255"/>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="2">
+       <Group index="1" label="Lifeline" max_associations="1"/>
+       <Group index="2" label="Basic Group" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+
+</Product>
+
diff --git a/config/ring/contact-sensor-v2.xml b/config/ring/contact-sensor-v2.xml
new file mode 100644
index 0000000000..8f0dd68d54
--- /dev/null
+++ b/config/ring/contact-sensor-v2.xml
@@ -0,0 +1,74 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Contact Sensor</MetaDataItem>
+    <MetaDataItem name="Description">Ring Alarm Contact Sensor is a wireless sensor for the Ring Alarm system which provides users the ability to know when a door or window is open or closed. After installing the sensor on a door or window and setting up the sensor in the Ring app, monitor and receive notifications when the door or window opens or closes. The Ring Alarm Base Station is required to enable Contact Sensor features and functions within the Ring app. </MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0346:0301:0201</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ring/contact-sensor-v2.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3862/Z-WaveUserManual_Contact_Sensor_700.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">The sensor will wake up every so often to send a Wake-Up Notification to allow the life line master node controller that the sensor is now available for any queued messages that the controller may have for the sensor. The time between Wake-Up Notifications can be configured with the Wake-Up Notification command class according to the following configurable values:
+•	Min Value 1 hr
+•	Max Value 24 hr
+•	Default Value 12 hours (12 * 60 * 60 seconds)
+•	Wake Up Interval Step Seconds 1 hour (3600 seconds)
+    </MetaDataItem>
+    <MetaDataItem name="InclusionDescription">After powering on the device, press and hold the button on the front of the device for ~3 seconds. Release the button and the device will enter Classic inclusion mode which implements both classic inclusion with a Node Information Frame, and Network Wide Inclusion. During Classic Inclusion mode, the green LED will blink three times followed by a brief pause, repeatedly. When Classic inclusion times-out, the device will blink alternating red and green a few times.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Exclusion Instructions:
+1.	Initiate remove “Ring Alarm Contact Sensor” flow in the Ring Alarm mobile application – Select the settings icon from device details page and choose “Remove Device” to remove the device. This will place the controller into Remove or “Z-Wave Exclusion” mode.
+2.	With the controller in Remove (Z-Wave Exclusion) mode, use a paper clip or similar object and tap the pinhole button. The device’s red LED turns on solid to indicate the device was removed from the network.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Factory Default Instructions
+1.	To restore Ring Alarm Contact Sensor to factory default settings, locate the pinhole reset button on the device. This is found inside the battery compartment on the back of the device after removing the back bracket.
+2.	Using a paperclip or similar object, insert it into the pinhole, press and hold the button down for 10 seconds.
+3.	The device will rapidly blink green continuously for 10 seconds. After about 10 seconds, when the green blinking stops, release the button. The red LED will turn on solid to indicate the device was removed from the network.
+    </MetaDataItem>
+    <MetaDataItem id="0301" name="ZWProductPage" type="0201">https://products.z-wavealliance.org/products/3862/</MetaDataItem>
+    <MetaDataItem id="0301" name="Identifier" type="0201">Contact Sensor v2</MetaDataItem>
+    <MetaDataItem id="0301" name="FrequencyName" type="0201">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+	<Entry author="gongtao0607@gmail.com" date="13 Jan 2021" revision="1">Initial Metadata Creation</Entry>
+	<Entry author="gongtao0607@gmail.com" date="17 Jan 2021" revision="2">Minor correction</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Heartbeat Interval" max="70" min="1" size="1" type="byte" units="minutes" value="70">
+      <Help>
+        Heartbeats are automatic battery reports on a timer after the last event.
+      </Help>
+    </Value>
+    <Value genre="config" index="2" label="Application Retriess" max="5" min="0" size="1" type="byte" units="" value="1">
+      <Help>
+        Number of application level retries attempted for messages either not ACKed or messages encapsulated via supervision get that did not receive a report.
+      </Help>
+    </Value>
+    <Value genre="config" index="3" label="Application Level Retry Base Wait Time Period" max="96" min="1" size="1" type="byte" units="seconds" value="5">
+      <Help>
+        This parameter is the number base seconds used in the calculation for sleeping between retry messages.
+      </Help>
+    </Value>
+    <Value genre="config" index="4" label="LED Indicator Enable" max="2" min="0" size="1" type="list" value="1">
+      <Help>
+        This parameter allows a user, via software, to configure the various LED indications on the device.
+      </Help>
+      <Item label="Don't show green" value="0"/>
+      <Item label="Show green after Supervision Report Intrusion (Fault)" value="1"/>
+      <Item label="Show green after Supervision Report both Intrusion and Intrusion clear" value="2"/>
+    </Value>
+    <Value genre="config" index="5" label="One Shot Timer" max="65535" min="5" size="2" type="short" units="seconds" value="0">
+      <Help>
+        Writing to this parameter prompts the sensor to send a wakeup notification one time after this parameter's number of seconds. After which it is reset back to 0.
+      </Help>
+    </Value>
+    <Value genre="config" index="6" label="Supervisory Report Timeout" max="30000" min="500" size="2" type="short" units="milliseconds" value="10000">
+      <Help>
+        The number of milliseconds waiting for a Supervisory Report response to a Supervisory Get encapsulated command from the sensor before attempting a retry.
+      </Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+       <Group index="1" label="LifeLine" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
+
diff --git a/config/ring/motion-detector-v2.xml b/config/ring/motion-detector-v2.xml
new file mode 100644
index 0000000000..b5ab5c9d0c
--- /dev/null
+++ b/config/ring/motion-detector-v2.xml
@@ -0,0 +1,97 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Motion Detector</MetaDataItem>
+    <MetaDataItem name="Description">Ring Alarm Motion Detector is a wireless sensor for the Ring Alarm system which provides users the ability to know when there is movement of a person or similar object within an area. After installing the sensor and setting up the sensor in the Ring app, monitor and receive notifications motion is detected. The Ring Alarm Base Station is required to enable Motion Detector features and functions within the Ring app.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0346:0301:0301</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/ring/motion-detector-v2.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3869/Z-WaveUserManual_Motion_Detector_700.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Not applicable. Ring Alarm Motion Detector is a Frequently Listening Receiver Slave (FLiRS) device and does not support Wake Up Command Class.
+    </MetaDataItem>
+    <MetaDataItem name="InclusionDescription">After powering on the device, press and hold the button on the front of the device for ~3 seconds. Release the button and the device will enter Classic inclusion mode which implements both classic inclusion with a Node Information Frame, and Network Wide Inclusion. During Classic Inclusion mode, the green LED will blink three times followed by a brief pause, repeatedly. When Classic inclusion times-out, the device will blink alternating red and green a few times.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Exclusion Instructions: 
+1.	Initiate remove “Ring Alarm Motion Detector” flow in the Ring Alarm mobile application – Select the settings icon from device details page and choose “Remove Device” to remove the device. This will place the controller into Remove or “Z-Wave Exclusion” mode. 
+2.	Locate the pinhole reset button on the back of the device in the battery compartment. 
+3.	With the controller in Remove (Z-Wave Exclusion) mode, use a paper clip or similar object and tap the pinhole button. The device’s red LED turns on solid to indicate the device was removed from the network. 
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Factory Default Instructions 
+1.	To restore Ring Alarm Motion Detector to factory default settings, locate the pinhole reset button on the device. This is found inside the battery compartment on the back of the device after removing the back bracket. 
+2.	Using a paperclip or similar object, insert it into the pinhole, press and hold the button down for 10 seconds. 
+3.	The device will rapidly blink green continuously for 10 seconds. After about 10 seconds, when the green blinking stops, release the button. The red LED will turn on solid to indicate the device was removed from the network. 
+
+Note: Use this procedure only in the event that the network primary controller is missing or otherwise inoperable.
+    </MetaDataItem>
+    <MetaDataItem id="0301" name="ZWProductPage" type="0301">https://products.z-wavealliance.org/products/3869/</MetaDataItem>
+    <MetaDataItem id="0301" name="Identifier" type="0301">Motion Detector v2</MetaDataItem>
+    <MetaDataItem id="0301" name="FrequencyName" type="0301">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+	<Entry author="gongtao0607@gmail.com" date="17 Jan 2021" revision="1">Initial Metadata Creation</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Heartbeat Interval" max="70" min="1" size="1" type="byte" units="minutes" value="70">
+      <Help>
+        This parameter is the number minutes between heartbeats. Heartbeats are automatic battery reports on a timer after the last event.
+      </Help>
+    </Value>
+    <Value genre="config" index="2" label="Application Retriess" max="5" min="0" size="1" type="byte" units="" value="1">
+      <Help>
+        Number of application level retries attempted for messages either not ACKed or messages encapsulated via supervision get that did not receive a report.
+      </Help>
+    </Value>
+    <Value genre="config" index="3" label="Application Level Retry Base Wait Time Period" max="96" min="1" size="1" type="byte" units="seconds" value="5">
+      <Help>
+        The number base seconds used in the calculation for sleeping between retry messages.
+      </Help>
+    </Value>
+    <Value genre="config" index="4" label="LED Indicator Enable" max="2" min="0" size="1" type="list" value="1">
+      <Help>
+        This parameter allows a user, via software, to configure the various LED indications on the device.
+      </Help>
+      <Item label="Don't show green" value="0"/>
+      <Item label="Show green after Supervision Report Intrusion (Fault)" value="1"/>
+      <Item label="Show green after Supervision Report both Intrusion and Intrusion clear" value="2"/>
+    </Value>
+    <Value genre="config" index="5" label="Runtime Occ Clear Delay" max="255" min="0" size="1" type="byte" units="seconds" value="0">
+      <Help>
+        Delay time in seconds for occupancy signal to clear
+      </Help>
+    </Value>
+    <Value genre="config" index="6" label="Runtime Intrusion Clear Delay" max="255" min="0" size="1" type="byte" units="seconds" value="15">
+      <Help>
+        Delay time in seconds for intrusion signal to clear
+      </Help>
+    </Value>
+    <Value genre="config" index="7" label="Runtime Std Clear Delay" max="255" min="0" size="1" type="byte" units="seconds" value="0">
+      <Help>
+        Standard delay time in seconds
+      </Help>
+    </Value>
+    <Value genre="config" index="8" label="Motion Detection Mode" max="4" min="0" size="1" type="byte" units="" value="3">
+      <Help>
+        Adjusts motion sensitivity
+      </Help>
+    </Value>
+    <Value genre="config" index="9" label="Lighting Enabled" max="1" min="0" size="1" type="byte" units="" value="0">
+      <Help>
+        Enable or Disable light sensor
+      </Help>
+    </Value>
+    <Value genre="config" index="10" label="Lighting Delay" max="60" min="0" size="1" type="byte" units="minutes" value="2">
+      <Help>
+        Delay used to turn off lights when motion is no longer detected
+      </Help>
+    </Value>
+    <Value genre="config" index="11" label="Supervisory Report Timeout" max="30000" min="500" size="2" type="short" units="milliseconds" value="10000">
+      <Help>
+        The number of milliseconds waiting for a Supervisory Report response to a Supervisory Get encapsulated command from the sensor before attempting a retry.
+      </Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="1">
+       <Group index="1" label="LifeLine" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
+
diff --git a/config/schlage/BE468.xml b/config/schlage/BE468.xml
index de43e570d2..cc9c364fe6 100644
--- a/config/schlage/BE468.xml
+++ b/config/schlage/BE468.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
 	<CommandClass id="112">
 		<Value type="list" genre="config" index="3" label="Beeper" min="0" max="255" size="1" value="255">
 			<Help>
@@ -65,7 +65,7 @@
 		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">
+		<TriggerRefreshValue Genre="user" Index="6" Instance="1">
 			<RefreshClassValue CommandClass="98" RequestFlags="0" Index="1" Instance="1" />
 		</TriggerRefreshValue>
 	</CommandClass>
diff --git a/config/schlage/BE469.xml b/config/schlage/BE469.xml
index da847ea6e4..2fb9763b54 100644
--- a/config/schlage/BE469.xml
+++ b/config/schlage/BE469.xml
@@ -1,4 +1,4 @@
-<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="5" 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>
@@ -9,6 +9,7 @@
     <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>
+      <Entry author="Jordan Speicher" date="11 June 2020" revision="5">Fix TriggerRefreshValue index for Alarm Message</Entry>
     </ChangeLog>
   </MetaData>
   <CommandClass id="112">
@@ -152,7 +153,7 @@
 		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">
+    <TriggerRefreshValue Genre="user" Index="6" Instance="1">
       <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
   </CommandClass>
diff --git a/config/schlage/BE469ZP.xml b/config/schlage/BE469ZP.xml
index cf2c64a7f0..617988babf 100644
--- a/config/schlage/BE469ZP.xml
+++ b/config/schlage/BE469ZP.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/003B:0469:0001</MetaDataItem>
     <MetaDataItem name="ProductPic">images/schlage/BE469ZP.png</MetaDataItem>
@@ -49,6 +49,7 @@ NOTE: Please use this procedure only when the network primary controller is miss
 </MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3130/xml</Entry>
+      <Entry author="Jaburges" date="03 Nov 2020" revision="3">Update TriggerRefreshValue index. </Entry>
     </ChangeLog>
   </MetaData>
   <CommandClass id="112">
@@ -195,7 +196,7 @@ NOTE: Please use this procedure only when the network primary controller is miss
 		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">
+    <TriggerRefreshValue Genre="user" Index="6" Instance="1">
       <RefreshClassValue CommandClass="98" Index="1" Instance="1" RequestFlags="0"/>
     </TriggerRefreshValue>
   </CommandClass>
diff --git a/config/sensative/kaipule/im20.xml b/config/sensative/kaipule/im20.xml
new file mode 100644
index 0000000000..78a9bd1801
--- /dev/null
+++ b/config/sensative/kaipule/im20.xml
@@ -0,0 +1,50 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0214:0001:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/kaipule/im20.png</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0002">https://products.z-wavealliance.org/products/2027/</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">enter the Exclusion Mode of gateway, and press the tamper switch 3 times within 1.5s, then the door sensor will be removed after a period of time.</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0002">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem name="Description">IM20_Zwave is a door/window sensor adopting Zwave500 series chip. It uses special structure design, suitable for kinds of installation environments. Also, it supports door &amp; window open/close detection, anti-tamper, battery level detection and associated gateway and interaction device notifications.</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave DOOR SENSOR</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/2027/IM20-Z-Wave Product Manual.pdf</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0002">IM20-Z-Wave</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press the tamper switch 6 times in 2s, it will recover to factory setting after a period of time(Please use the reset procedure only when the primary controller is missing or inoperable)</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">a) Manual Wake-up
+Quickly press tamper switch once, the door sensor will automatically send wake-up information, and there will be 10s after wake-up to receive gateway setting information.
+b) Automatic Wake-up
+Default time of automatic wake-up is 24 hours, and there will be 10s after wake-up to receive gateway setting information, the max automatic report time = 24 hours, minimum=30min</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">enter the Inclusion Mode of gateway, and press the tamper switch 3 times within 1.5s,then the door sensor will stay in enrollment state until successfully enrolled into network or enrollment time out after 30s.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2027/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!--
+Kaipule IM20 Door/Window Sensor
+https://products.z-wavealliance.org/products/2027
+-->
+	<!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" instance="1" label="Basic Set Level" max="255" min="1" size="1" type="byte" value="255">
+      <Help>Basic Set parameter setting, the receivers make relevant adjustment according to parameter value</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Turn Off Light Time" max="120" min="1" size="1" type="byte" units="seconds" value="20">
+      <Help>
+				If there is any device under Association Group2, the door sensor will send Basic Set = value command to Group2, and send Basic Set = 0x00 command to turn-off light after t seconds,	Set value = t, means to send Basic Set command after t seconds.
+			</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Auto report status time" max="24" min="0" size="1" type="byte" units="hours" value="6">
+      <Help>
+				Under normal working status (without trigger), the door sensor will automatically send report to the Gateway about its current tamper and open/close status.
+				Set value = t, means t hours, (t=0, means no status report).
+				0-24 hours (Default 6 hours)</Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Control BASIC SET reports" max_associations="2"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/sensative/kaipule/ix32.xml b/config/sensative/kaipule/ix32.xml
new file mode 100644
index 0000000000..fe79a1bb38
--- /dev/null
+++ b/config/sensative/kaipule/ix32.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Kaipule IX32 PIR Sensor -->
+<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">
+			<Help>Basic Set parameter setting, the receivers make relevant adjustment according to parameter value</Help>
+		</Value>		
+		<Value type="byte" genre="config" instance="1" index="2" label="Turn Off Light Time" size="1" min="1" max="255" units="5seconds" value="1">
+			<Help>When the device triggered and sends out BASIC SET to the lightings, the light turns on and off as the set time. 
+			The minimum value is 1, means the light bright time is 1*5s (5 seconds), and turn off after 5 seconds, if the value is t, means the bright time is t*5s, turn off after t*5 seconds.</Help>
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="3" label="Alarm Elimination Time" size="1" min="1" max="24" units="5seconds" value="4">
+			<Help>Eliminate alarm after 5xt seconds.</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="2" label="Control BASIC SET" />
+		</Associations>
+	</CommandClass>
+</Product>
diff --git a/config/shenzen_neo/ls01ch.xml b/config/shenzen_neo/ls01ch.xml
index 5726fe7a85..1136f2853f 100644
--- a/config/shenzen_neo/ls01ch.xml
+++ b/config/shenzen_neo/ls01ch.xml
@@ -1,28 +1,54 @@
 <?xml version="1.0" encoding="utf-8"?>
-<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">
-    <Help>This parameter defines the on/off status of relay needs saving or not. The status will be saved when relay status is changed if this parameter is set to '1'. Otherwise the relay status is not saved. The Light Switch will restore the relay On/Off status when it's powered again.</Help>
-    <Item label="Disable" value="0"/>
-    <Item label="Enable" value="1"/>
-  </Value>
-  <Value type="list" genre="config" instance="1" index="2" label="Backlight" value="0" size="1">
-    <Help>This parameter defines the back light state of the touch button.</Help>
-    <Item label="Disable" value="0"/>
-    <Item label="Enable" value="1"/>
-  </Value>
-  <Value type="list" genre="config" instance="1" index="3" label="Relay On/Off Indicate" value="0" size="1">
-    <Help>This Parameter defines the relay state. The led will be turned on with pink color when the button is touched to turn on relay if this parameter is set to '1'. Otherwise the LED is off.</Help>
-    <Item label="Disable" value="0"/>
-    <Item label="Enable" value="1"/>
-  </Value>
-</CommandClass>
-<!-- Association Groups -->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
+  <MetaData>
+    <MetaDataItem name="Name">Shenzhen NEO Electronics (Neo-CoolCam) Light Switch (1 channel)</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0258:108c:0003</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://szneo.com/en/products/show.php?id=201</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/shenzhen-neo/eu-1.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Set Z-Wave gateway into inclusion mode (refer to gateway user manual).
+Touch any button three times continuously within 1,5 seconds, then Light Switch will enter into inclusion mode.
+Meanwhile, LED light would flash red colour five time on and off alternately.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Set Z-Wave gateway into exclusion mode (refer to gateway user manual).
+Touch any button three times continuously within 1,5 seconds, then Light Switch will enter into exclusion mode.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Touch and hold any button for 10 seconds, then release the button.
+LEF lights would flash red (1CH:pink) color 5 times within 2s after resetting successfully.
+During the resetting process, please make sure the Light Switch is powered on all the time.</MetaDataItem>
+    <MetaDataItem id="108C" name="ZWProductPage" type="0003">https://szneo.com/en/products/show.php?id=201</MetaDataItem>
+    <MetaDataItem id="108C" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="108C" name="Identifier" type="0003">EU-1</MetaDataItem>
+    <MetaDataItem id="008C" name="ZWProductPage" type="0003">https://szneo.com/en/products/show.php?id=202</MetaDataItem>
+    <MetaDataItem id="008C" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="008C" name="Identifier" type="0003">US-1</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Attila Lukács" date="13 September 2017" revision="1">Initial version</Entry>
+      <Entry author="Dmitry Blokhin - santafox@gmail.com" date="17 January 2021" revision="2">Added pictures, descriptions and metadata</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" instance="1" index="1" label="Relay On/Off Status Saved Enable" value="1" size="1">
+      <Help>This parameter defines the on/off status of relay needs to be saved or not.
+The status will be saved when relay status is changed if this parameter is set to '1'; otherwise the relay stataus is not saved.
+The Light Switch will restore the relay On/Off status when is powered on again.</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="2" label="Back Light Enable" value="1" size="1">
+      <Help>This parameter defines the back light state of the touch button.</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="3" label="Relay On/Off Indicate" value="1" size="1">
+      <Help>This Parameter defines the relay state. The led will be turned on with pink color when the button is touched to turn on relay if this parameter is set to '1'. Otherwise the LED is off.</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </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="Sending Report Endpoint 1"/>
     </Associations>
   </CommandClass>
-</Product>
\ No newline at end of file
+</Product>
diff --git a/config/shenzen_neo/ls02ch.xml b/config/shenzen_neo/ls02ch.xml
index 03eb1ab13f..1233a6231c 100644
--- a/config/shenzen_neo/ls02ch.xml
+++ b/config/shenzen_neo/ls02ch.xml
@@ -1,27 +1,58 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
-  <!--
-  Shenzhen NEO Electronics (Neo-CoolCam) Light Switch (2 channel)
-  -->
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
+  <MetaData>
+    <MetaDataItem name="Name">Shenzhen NEO Electronics (Neo-CoolCam) Light Switch (2 channels)</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0258:108b:0003</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://szneo.com/en/products/show.php?id=196</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/shenzhen-neo/eu-2.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Set Z-Wave gateway into inclusion mode (refer to gateway user manual).
+Touch any button three times continuously within 1,5 seconds, then Light switch will enter into inclusion mode.
+Meanwhile, LED light would flash red colour five time on and off alternately.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Set Z-Wave gateway into exclusion mode (refer to gateway user manual).
+Touch any button three times continuously within 1,5 seconds, then Light switch will enter into exclusion mode.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Touch and hold any button for 10 seconds, then release the button.
+LEF lights would flash red (1CH:pink) color 5 times within 2s after resetting successfully.
+During the resetting process, please make sure the light switch is powered on all the time.</MetaDataItem>
+    <MetaDataItem id="108B" name="ZWProductPage" type="0003">https://szneo.com/en/products/show.php?id=196</MetaDataItem>
+    <MetaDataItem id="108B" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="108B" name="Identifier" type="0003">EU-2</MetaDataItem>
+    <MetaDataItem id="008B" name="ZWProductPage" type="0003">https://szneo.com/en/products/show.php?id=203</MetaDataItem>
+    <MetaDataItem id="008B" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="008B" name="Identifier" type="0003">US-2</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Attila Lukács" date="29 August 2017" revision="1">Initial version</Entry>
+      <Entry author="Dmitry Blokhin - santafox@gmail.com" date="17 January 2021" revision="2">Added pictures, descriptions and metadata</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
-    <Value type="list" genre="config" instance="1" index="1" label="Back light Enable" value="1" size="1">
-      <Help>This parameter defines the back light state of the touch button. The back light led would be on when Light Switch is powered on if the parameter is set to '1'. Otherwise the back light led would be off.</Help>
+    <Value type="list" genre="config" instance="1" index="1" label="Back Light Enable" value="1" size="1">
+      <Help>This parameter defines the back light state of the touch button.
+The back light led would be on when Light Switch is powered on if the parameter is set to '1'.
+Otherwise the back light led would be off.</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="2" label="Relay On/Off indicate" value="1" size="1">
-      <Help>This parameter defines the relays state. The led will be turned on with pink color when the button is touched to tur on relay if this paramtere is set to '1'. Otherwise the ledstate is not changed.</Help>
+    <Value type="list" genre="config" instance="1" index="2" label="Relay On/Off Indicate" value="1" size="1">
+      <Help>This parameter defines the relays state.
+The led will be turned on with pink color when the button is touched to turn on relay if this paramtere is set to '1'.
+Otherwise the led state is not changed.</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="3" label="Relay On/Off States Saved Enable" value="1" size="1">
-      <Help>This parameter defines the on/off status of relay needs to be saved. The status will be saved when relay status is changed if this parameter is set to '1'. Otherwise the relay stataus is not saved. The Light Switch will restore the relay On/Off  status when powered again.</Help>
+    <Value type="list" genre="config" instance="1" index="3" label="Relay On/Off Status Saved Enable" value="1" size="1">
+      <Help>This parameter defines the on/off status of relay needs to be saved or not.
+The status will be saved when relay status is changed if this parameter is set to '1'; otherwise the relay stataus is not saved.
+The Light Switch will restore the relay On/Off status when is powered on again.</Help>
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value type="list" genre="config" instance="1" index="4" label="Root Device Mapped Setting" min="0" max="3" value="0" size="1">
-      <Help>This parameter defines which endpoint is mapped to root device (Endpoint 0). 0 - No endpoint is mapped to root device. 1 - Endpoint 1 is mapped to root device. 2 - Endpoint 2 is mapped to root device. 3 - Both endpoint 1 and 2 are mapped to root device.</Help>
+    <Value type="list" genre="config" instance="1" index="4" label="Root Device Mapped Setting" min="0" max="3" value="1" size="1">
+      <Help>This parameter defines which endpoint is mapped to root device (Endpoint 0).
+The valid values are explaned as follows. Default value is 1.
+0 - No endpoint is mapped to root device; 1 - Endpoint 1 is mapped to root device; 2 - Endpoint 2 is mapped to root device; 3 - Both endpoint 1 and 2 are mapped to root device.
+For example, assume this parameter is set to 1 (default value). Gateway or other devices (such as door/window sensor, motion sensor, etc.) that is associated
+with Light Switch send a command BASIC_SET = 0xFF to Light Switch, the relay in endpoint 1 will be turned on, and other relay status will not be changed.</Help>
       <Item label="No endpoint is mapped to root device" value="0"/>
       <Item label="Endpoint 1 is mapped to root device" value="1"/>
       <Item label="Endpoint 2 is mapped to root device" value="2"/>
diff --git a/config/shenzen_neo/ls03ch.xml b/config/shenzen_neo/ls03ch.xml
new file mode 100644
index 0000000000..86cccecc7e
--- /dev/null
+++ b/config/shenzen_neo/ls03ch.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
+  <MetaData>
+    <MetaDataItem name="Name">Shenzhen NEO Electronics (Neo-CoolCam) Light Switch (3 channels)</MetaDataItem>
+    <MetaDataItem name="Description">3 gang lightswitch EU 868.42 MHz</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0258:102b:0200</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://szneo.com/en/products/show.php?id=237</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/shenzhen-neo/eu-3.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Set Z-Wave gateway into inclusion mode (refer to gateway user manual).
+Touch any button three times continuously within 1,5 seconds, then Light Switch will enter into inclusion mode.
+Meanwhile, LED light would flash red colour five time on and off alternately.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Set Z-Wave gateway into exclusion mode (refer to gateway user manual).
+Touch any button three times continuously within 1,5 seconds, then Light Switch will enter into exclusion mode.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Touch and hold any button for 10 seconds, then release the button.
+LEF lights would flash red (1CH:pink) color 5 times within 2s after resetting successfully.
+During the resetting process, please make sure the Light Switch is powered on all the time.</MetaDataItem>
+    <MetaDataItem id="102B" name="ZWProductPage" type="0200">https://szneo.com/en/products/show.php?id=237</MetaDataItem>
+    <MetaDataItem id="102B" name="FrequencyName" type="0200">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="102B" name="Identifier" type="0200">EU-3</MetaDataItem>
+    <MetaDataItem id="002B" name="ZWProductPage" type="0003">https://szneo.com/en/products/show.php?id=236</MetaDataItem>
+    <MetaDataItem id="002B" name="FrequencyName" type="0003">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="002B" name="Identifier" type="0003">US-3</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Mark Evers - goldwing@outlook.com" date="04 August 2020" revision="1">Initial Release</Entry>
+      <Entry author="Dmitry Blokhin - santafox@gmail.com" date="17 January 2021" revision="2">Added pictures, descriptions and metadata</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" instance="1" index="2" label="Back light Enable" value="1" size="1">
+      <Help>This parameter defines the back light state of the touch button. The back light led would be on when Light Switch is powered on if the parameter is set to '1'. Otherwise the back light led would be off.</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="3" label="Relay On/Off indicate" value="1" size="1">
+      <Help>This parameter defines the relays state. The led will be turned on with pink color when the button is touched to tur on relay if this paramtere is set to '1'. Otherwise the ledstate is not changed.</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="1" label="Relay On/Off States Saved Enable" value="1" size="1">
+      <Help>This parameter defines the on/off status of relay needs to be saved. The status will be saved when relay status is changed if this parameter is set to '1'. Otherwise the relay stataus is not saved. The Light Switch will restore the relay On/Off  status when powered again.</Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="4" label="Root Device Mapped Setting" min="0" max="3" value="0" size="1">              <Help>This parameter defines which endpoint is mapped to root device (Endpoint 0). 0 - No endpoint is mapped to root device. 1 - Endpoint 1 is mapped to root device. 2 - Endpoint 2 is mapped to root device. 3 - Both endpoint 1 and 2 are mapped to root device.</Help>            <Item label="No endpoint is mapped to root device" value="0"/>
+      <Item label="Endpoint 1 is mapped to root device" value="1"/>
+      <Item label="Endpoint 2 is mapped to root device" value="2"/>
+      <Item label="Endpoint 3 is mapped to root device" value="3"/>
+      <Item label="All three endpoints are mapped to root device" value="4"/>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" max_associations="5" label="Lifeline"/>
+      <Group index="2" max_associations="5" label="Sending Report Endpoint 1"/>
+      <Group index="3" max_associations="5" label="Sending Report Endpoint 2"/>
+      <Group index="4" max_associations="5" label="Sending Report Endpoint 3"/>
+        </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/shenzen_neo/nas-cs01z.xml b/config/shenzen_neo/nas-cs01z.xml
new file mode 100644
index 0000000000..ce085e9ffb
--- /dev/null
+++ b/config/shenzen_neo/nas-cs01z.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+	<!--
+  Shenzhen NEO Electronics (Neo-CoolCam) Curtain Switch
+  -->
+	<MetaData>
+		<MetaDataItem name="ProductPage">https://www.szneo.com/en/products/show.php?id=234</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/shenzen_neo/nas-cs01z.jpg</MetaDataItem>
+		<MetaDataItem name="InclusionDescription">Prepaire z-wave controller for inclusion and press any button 3 times within 1.5 seconds to start the pairing process</MetaDataItem>
+		<MetaDataItem name="ExclusionDescription">Prepaire z-wave controller for exclusion and press any button 3 times within 1.5 seconds to start the exclusion process</MetaDataItem>
+		<MetaDataItem name="Description">Curtain Switch EU 868.42 MHz</MetaDataItem>
+		<ChangeLog>
+			<Entry author="Kevin TEMIN" date="24 November 2020" revision="1">Initial Release</Entry>
+		</ChangeLog>
+	</MetaData>
+	<CommandClass id="112">
+		<Value type="list" genre="config" instance="1" index="1" label="Up/Down Button Swap" size="1" value="1">
+			<Help>This parameter defines if the action for UP/DOWN touch bouton need to be exchange. Default value 1-'Enable'</Help>
+			<Item label="Disable" value="0"/>
+			<Item label="Enable" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="2" label="Motor Rotation Direction Swap" size="1" value="0">
+			<Help>This parameter defines if the direction for left/right motor rotation need to be exchange. Default value 0-'Disable'</Help>
+			<Item label="Disable" value="0"/>
+			<Item label="Enable" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="3" label="Backlight" size="1" value="1">
+			<Help>This parameter defines the back light state of the touch button. The back light led would be on when Light Switch is powered on if the parameter is set to '1'. Otherwise the back light led would be off.</Help>
+			<Item label="Disable" value="0"/>
+			<Item label="Enable" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="4" label="Curtain Moving Indicate" size="1" value="1">
+			<Help>This parameter defines the led anabled status whe curtain is moving. Default 1-'Enable'</Help>
+			<Item label="Disable" value="0"/>
+			<Item label="Enable" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="5" label="Button Switch Function" size="1" value="1">
+			<Help>Settings this configuration as 'Disable' will be disabled to controle the curtain motor by pressed any buttons. Default 1-'Enable'</Help>
+			<Item label="Disable" value="0"/>
+			<Item label="Enable" value="1"/>
+		</Value>
+	</CommandClass>
+	<CommandClass id="133">
+		<Associations num_groups="1">
+			<Group index="1" max_associations="5" label="Lifeline"/>
+		</Associations>
+	</CommandClass>
+</Product>
diff --git a/config/shenzen_neo/nas-pd02z.xml b/config/shenzen_neo/nas-pd02z.xml
index 3a5aa9fc31..a0d9c814b9 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='https://github.com/OpenZWave/open-zwave' Revision="2">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
   <MetaData>
     <!--
   Neo (Coolcam) NAS-PD02Z Motion Sensor (PIR) Version 2 aka NAS-PD02ZT
@@ -8,8 +8,10 @@
   Parameters probably changed on firmware 3.80 of this device.
   Does not figure on https://products.z-wavealliance.org
   -->
+    <MetaDataItem name="ProductPic">images/shenzen_neo/nas-pd02z.png</MetaDataItem>
     <ChangeLog>
       <Entry author="Peter Gebruers - peter.gebruers@gmail.com" date="06 July 2019" revision="2">Fix parameters for temperature model, based on user feedback https://github.com/OpenZWave/open-zwave/issues/1866</Entry>
+      <Entry author="Justin Hammond" date="24 June 2020" revision="3">Add Product Pic Entry</Entry>
     </ChangeLog>
   </MetaData>
 
diff --git a/config/shenzen_neo/nas-pd03z.xml b/config/shenzen_neo/nas-pd03z.xml
new file mode 100644
index 0000000000..dc7ade1bfb
--- /dev/null
+++ b/config/shenzen_neo/nas-pd03z.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
+  <MetaData>
+    <!--
+  Neo (Coolcam) NAS-PD03Z Motion Sensor (PIR) Version 2
+  No official manual available
+  Does not figure on https://products.z-wavealliance.org
+  -->
+    <MetaDataItem name="Name">Neo (Coolcam) NAS-PD03Z Motion Sensor (PIR) Version 2</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.szneo.com/en/products/show.php?id=197</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/shenzen_neo/nas-pd02z.png</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">Press button in sensor once. If successfull, LED will blink one time.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Set gateway in inclusion mode. Press button in sensor three times. LED will flash red five times and then on and off alternately.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Set gateway in exclusion mode. Press button in sensor three times. LED will flash red five times and then on and off alternately.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold button the button in sensor for 10-15 seconds. LED will one time first and then five times on and off alternately. Release button.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Mick Venhorst" date="19 September 2020" revision="1">Initial version, based on PD02Z file</Entry>
+      <Entry author="Mick Venhorst" date="23 November 2020" revision="2">Changed value type list to byte for index 1, value of index 4 ws not present in list values </Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value type="byte" genre="config" instance="1" index="1" label="Motion detection sensitivity" value="12" min="8" max="255" size="1">
+      <Help>Adapt the sensitivity of the motion detection where 8 means highest sensibility and 255 lowest.</Help>
+    </Value>
+
+    <Value type="short" genre="config" instance="1" index="2" label="Motion detection ON time" units="second" value="30" min="5" max="600" size="2">
+      <Help>This parameter can be determined how long the associated devices should stay ON status.
+        For instance, this parameter is set to 30(second), the PIR detector will send a BASIC_SET Command to an associated device with value basic set level if PIR detector is triggered and the associated device will be turned on 30(second) before it is turned off.
+        This Parameter value must be large than Parameter 6# - Retrigger interval.
+        Available Settings:5 to 600(second).
+      </Help>
+    </Value>
+
+    <Value type="byte" genre="config" instance="1" index="3" label="Basic Set Level" value="255" min="0" max="255" size="1">
+      <Help>Basic Set Command will be sent, on the associated devices (group 2), where contains a value when PIR detector is triggered, 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.
+        This Parameter is used to some associated devices.
+        Available Settings: 0, 1 to 99 or 255.
+      </Help>
+    </Value>
+
+    <Value type="list" genre="config" instance="1" index="4" label="Motion detection function" min="0" max="255" value="255" size="1">
+      <Help>
+        Enable the motion detection (PIR) function.
+        This parameter does not effect the luminance reporting.
+      </Help>
+      <Item label="Disable" value="0" />
+      <Item label="Enable" value="255" />
+    </Value>
+
+    <Value type="short" genre="config" instance="1" index="5" label="Ambient Illumination Lux Level" units="lux" value="100" min="0" max="1000" size="2">
+      <Help>
+        Define the illumination level value which determines when the 'Illumination switch ON function' is activated.
+        If the illumination level falls below this value and a person moves across or within the detected area, the motion sensor will switch on the associated device (group 2).
+        0 to 1000(Lux).
+      </Help>
+    </Value>
+
+    <Value type="byte" genre="config" instance="1" index="6" label="Retrigger interval " units="second" value="8" min="1" max="8" size="1">
+      <Help>
+        Period after motion detection in which the sensor is insensitive for new motion detection.
+        This value must be less than the 'Motion detection ON time'.
+        Available Settings: 1 to 8(s).
+      </Help>
+    </Value>
+
+    <Value type="short" genre="config" instance="1" index="7" label="Illumination reporting interval" units="second" value="180" min="60" max="36000" size="2">
+      <Help>
+        Determine the time between illumination reports, even when value has not changed.
+        NOTE: This Value Must Be less than Wakeup Interval Time.
+        Available Settings: 60 ~ 36000(second).
+      </Help>
+    </Value>
+
+    <Value type="list" genre="config" instance="1" index="8" label="Illumination function" value="0" min="0" max="1" size="1">
+      <Help>
+        Enable the function to switch on a associated device (group 2) once motion has been detected and the illumination level will be less than the value specified in 'Illumination switch ON level'.
+      </Help>
+      <Item label="Disable" value="0" />
+      <Item label="Enable" value="1" />
+    </Value>
+
+    <Value type="byte" genre="config" instance="1" index="9" label="Illumination report threshold" units="lux" value="100" min="0" max="100" size="1">
+      <Help>This parameter defines by how much Lux Level must change, in lux, to be reported to the main controller.</Help>
+    </Value>
+
+    <Value type="byte" genre="config" instance="1" index="10" label="Ambient Temperature Differential Level Report" units="0.1 C" value="5" min="0" max="127" size="1">
+      <Help>This parameter is configured the value that differential between current measured and previous report value. If the differential value larger than the settings, device will report this measured temperature value to nodes associated in lifeline.</Help>
+    </Value>
+
+    <Value type="list" genre="config" instance="1" index="11" label="Led Blink Enable" value="1" min="0" max="1" size="1">
+      <Help>This parameter can enabled or disable the PIR led blinking function. </Help>
+      <Item label="Disable" value="0" />
+      <Item label="Enable" value="1" />
+    </Value>
+
+    <Value type="list" genre="config" instance="1" index="12" label="Motion Event Report One Time Enable (temperature reporting version)" value="1" min="0" max="1" size="1">
+      <Help>The motion detected event can be sent multiple times/only once until device report motion cleared event. </Help>
+      <Item label="multiple times" value="0" />
+      <Item label="only once" value="1" />
+    </Value>
+
+    <Value type="short" genre="config" instance="1" index="99" label="Ambient Light Intensity Calibration" value="1000" min="1" max="65535" size="2">
+      <Help>This parameter defines the calibrated scale for ambient light intensity.</Help>
+    </Value>
+
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" max_associations="4" label="Lifeline" />
+      <Group index="2" max_associations="4" label="Control Commands BASIC_SET" />
+      <Group index="3" max_associations="4" label="Send Notification Report" />
+      <Group index="4" max_associations="4" label="Send Sensor Binary Report" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/shenzen_neo/nas-sc03ze.xml b/config/shenzen_neo/nas-sc03ze.xml
new file mode 100644
index 0000000000..7d8efd346b
--- /dev/null
+++ b/config/shenzen_neo/nas-sc03ze.xml
@@ -0,0 +1,74 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+<MetaData>
+	<MetaDataItem name="Name">NEO Coolcam Roller Shutter</MetaDataItem>
+	<MetaDataItem name="Description">NEO Coolcam Roller Shutter - Curtain Switch - NAS-SC03ZE-2-T-V3</MetaDataItem>
+	<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0258:102c:0200</MetaDataItem>
+	<MetaDataItem name="ProductPage">https://szneo.com/en/products/show.php?id=234</MetaDataItem>
+	<MetaDataItem name="ProductSupport">https://szneo.com/en/service/index.php</MetaDataItem>
+	<MetaDataItem name="ProductPic">images/shenzen_neo/nas-sc03ze.jpg</MetaDataItem>
+	<MetaDataItem name="ProductManual">https://doc.eedomus.com/files/Curtain%20Switch%20NeoCoolcam.pdf</MetaDataItem>
+	<MetaDataItem name="WakeupDescription">Power on the device</MetaDataItem>
+	<MetaDataItem name="InclusionDescription">1. Set Zwave controller intro inclusion mode
+2. power on the device
+3. touch the middle button 3 times within 1s
+4. the device will be entered into inclusion mode automatically
+(All Led lights will be bliked with 1s interval until inclusion successfull)</MetaDataItem>
+	<MetaDataItem name="ExclusionDescription">1. Set Z-WaveControll into exclusion mode
+2. Power on the device
+3. Touch the middle button 3 times within 1s
+4. the device will be entered into exclusion mode
+(All led lights will de blinked 3 times with 0.5s interval.)</MetaDataItem>
+	<MetaDataItem name="ResetDescription">Power on the device
+	Keep touching the middle button for 10s until the led turns to red, then release</MetaDataItem>
+	<MetaDataItem id="102c" name="ZWProductPage" type="0200">Unknown</MetaDataItem>
+	<MetaDataItem id="102c" name="FrequencyName" type="0200">CEPT (Europe)</MetaDataItem>
+	<MetaDataItem id="102c" name="Identifier" type="0200">NAS-SC03ZE</MetaDataItem>
+	<ChangeLog>
+		<Entry author="John Huppertz - jhuppertz@ziggo.nl" date="02 December 2020" revision="1">Initial setup of metadata file</Entry>
+	</ChangeLog>
+</MetaData>
+  <!-- Configuration Parameters -->
+<CommandClass id="112">
+		<Value genre="config" instance="1" index="1" value="1" label="Up/Down Button Swap Enable" units="" size="1" min="0" max="1" type="list">
+			<Help>
+					Up/Down Button Swap Enable
+				</Help>
+			<Item label="Disabled" value="0"/>
+			<Item value="1" label="Enabled"/>
+			</Value>
+		<Value genre="config" instance="1" index="2" value="0" label="Motor Rotation Direction Swap Enable" units="" size="1" min="0" max="1" type="list">
+			  <Help>
+						Motor Rotation Direction Swap Enable
+					</Help>
+			  <Item value="0" label="Disabled"/>
+			  <Item value="1" label="Enabled"/>
+			</Value>
+		<Value genre="config" instance="1" index="3" value="1" label="Backlight Enable" units="" size="1" min="0" max="1" type="list">
+			  <Help>
+						Backlight Enable
+					</Help>
+			  <Item value="0" label="LED Disabled"/>
+			  <Item value="1" label="LED ON when Switch is ON"/>
+			</Value>
+		<Value genre="config" instance="1" index="4" value="1" label="Curtain Moving Indicate Enable" units="" size="1" min="0" max="1" type="list">
+		  <Help>
+					Curtain Moving Indicate Enable
+				</Help>
+		  <Item value="0" label="LED Disabled"/>
+		  <Item value="1" label="LED Enabled"/>
+		</Value>
+		<Value genre="config" instance="1" index="5" value="1" label="Button Switch" units="" size="1" min="0" max="1" type="list">
+		  <Help>
+					Button Switch
+				</Help>
+		  <Item value="0" label="Button Switch Disabled"/>
+		  <Item value="1" label="Button Switch Enabled"/>
+		</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/shenzen_neo/nas-wr01z.xml b/config/shenzen_neo/nas-wr01z.xml
index 2733c020b0..ee1a19361d 100644
--- a/config/shenzen_neo/nas-wr01z.xml
+++ b/config/shenzen_neo/nas-wr01z.xml
@@ -1,4 +1,4 @@
-<Product Revision="5" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="6" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0258:0087:0003</MetaDataItem>
     <MetaDataItem name="ProductPic">images/shenzen_neo/nas-wr01z.png</MetaDataItem>
@@ -35,6 +35,7 @@ Reset procedure will delete all information on the Z‐Wave network and Z‐Wave
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="4">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1670/xml</Entry>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="5">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1783/xml</Entry>
+      <Entry author="Daniel Brunt - daniel@brunt.ca" date="15 Sep 2020" revision="6">Correction to Value genre="config" index="2" instance="1" label="Meter Report Interval" max="65536" should be "65535"</Entry>
     </ChangeLog>
     <MetaDataItem id="1087" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1783/</MetaDataItem>
     <MetaDataItem id="1087" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
@@ -51,7 +52,7 @@ Reset procedure will delete all information on the Z‐Wave network and Z‐Wave
       <Item label="Disable" value="0"/>
       <Item label="Enable" value="1"/>
     </Value>
-    <Value genre="config" index="2" instance="1" label="Meter Report Interval" max="65536" min="1" size="2" type="short" units="second" value="300">
+    <Value genre="config" index="2" instance="1" label="Meter Report Interval" max="65535" min="1" size="2" type="short" units="second" value="300">
       <Help>This parameter defines interval time (in seconds) that Meter report data to main controller.</Help>
     </Value>
     <Value genre="config" index="3" instance="1" label="Configure maximum over-load current" max="16" min="1" size="1" type="byte" units="Ampere" value="13">
diff --git a/config/shenzen_neo/nas-wr01ze.xml b/config/shenzen_neo/nas-wr01ze.xml
index bf8afd0c90..d9116330b5 100644
--- a/config/shenzen_neo/nas-wr01ze.xml
+++ b/config/shenzen_neo/nas-wr01ze.xml
@@ -1,8 +1,44 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
   <!--
   Shenzhen NEO Electronics (Neo-CoolCam) Smart Power Plug EU
   -->
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0258:1027:0200</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/shenzen_neo/nas-wr01ze.png</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Add the Device (Smart Plug) to Z‐Wave Network
+1.Make sure the sensor is powered. 
+2.Set Z‐Wave controller or Z‐Wave gateway into inclusion mode (Refer to the controller or gateway operating manual) 
+3.Press the button three times within 1.5 second, the device will enter inclusion mode. And the LED will flash on and off with green alternately five times within 2 seconds. </MetaDataItem>
+    <MetaDataItem name="WakeupDescription">this power plug is connected to power, not battery powered</MetaDataItem>
+    <MetaDataItem name="Description">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. All non‐battery operated nodes within the network will act as repeaters regardless of vendor to increase reliability of the network.
+
+In the front casing, there is button that is used to carry out include, exclude or reset factory default settings on PCB Board.
+
+When power is first supplied, the LED will flash on and off with yellow alternately every 1 second intervals within 5 seconds if the detector has not been added a Z‐Wave network, otherwise the LED will flash on and off 5 times with cyan alternately every 300 millisecond. Please get familiar with the terms below before starting the operations.
+
+This Plug has function that remembers the relay states, the plug will turn on after power up next time if the plug is turn on before the power cut‐off.</MetaDataItem>
+    <MetaDataItem name="Name">Smart Power Plug </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Delete the Device (Smart Plug) from Z‐Wave Network
+1.Make sure the sensor is powered. 
+2.Set Z‐Wave controller or Z‐Wave gateway into exclusion mode (Refer to the controller or gateway operating manual) 
+3.Press the button three times within 1.5 second, the device will enter exclusion mode. And the LED will flash on and off with yellow alternately five times within 2 seconds.  </MetaDataItem>
+    <MetaDataItem name="ResetDescription">Note:  to use the reset procedure only when the primary controller is missing or inoperable.
+Restore the Device (Smart Plug) to Factory Default Settings
+
+Reset procedure will delete all information on the Z‐Wave network and Z‐Wave controller or Z‐Wave Gateway, and restore the sensor to factory default settings.
+1.Make sure the sensor is powered. 
+
+2.Press and hold the button more than 10 seconds until the LED blink with red color. 
+
+3.Release the button. </MetaDataItem>
+    <MetaDataItem id="1027" name="Identifier" type="0200">NAS-WR01ZE</MetaDataItem>
+    <MetaDataItem id="1027" name="Identifier" type="0100">NAS-WR01ZE</MetaDataItem>
+    <MetaDataItem id="1027" name="FrequencyName" type="0100">U.S. / Canada / Mexico</MetaDataItem>
+    <ChangeLog>
+      <Entry author="David Burrows - david@burrows.org" date="19 Aug 2020" revision="2">Added metadata, and added US version (type 0100) that is branded "Power Plug" with no model number displayed. There is no matching Z-Wave Alliance database entry.</Entry>
+    </ChangeLog>
+  </MetaData>
   <!-- Configuration Parameters -->
   <CommandClass id="112">
   <Value type="list" genre="config" instance="1" index="1" label="Remember Relay ON/OFF status" value="1" size="1">
diff --git a/config/shenzen_saykey/sk-3007-05.xml b/config/shenzen_saykey/sk-3007-05.xml
new file mode 100644
index 0000000000..5b20caef1a
--- /dev/null
+++ b/config/shenzen_saykey/sk-3007-05.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">https://products.z-wavealliance.org/products/2662:0005:3007</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/shenzen_saykey/SK-3007-05.png</MetaDataItem>
+    <MetaDataItem id="0005" name="ZWProductPage" type="3007">https://products.z-wavealliance.org/products/2662/</MetaDataItem>
+    <MetaDataItem id="0005" name="Identifier" type="3007">SK-3007-05</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=Manuals/2662/SK-3007-05-Manual_en_20171112.pdf</MetaDataItem>
+    <MetaDataItem name="Name">Curtain Motor Control with external module</MetaDataItem>
+    <MetaDataItem name="Description">The SK-3007-05 curtain motor external module support connect specify motor to Z-Wave system reply. It support control motor open/close/stop and position, meanwhile it can feedback motor position as soon as it stopped.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Connect power line to motor, plug power socket in 220VAC power supply, and Make sure
+the device is located within direct range of the Z-Wave controller.
+2. Set the controller into the exclusion/remove mode (refer to controllers operating manual).
+3. Click the PB-button triple times in 1.5 second, located left side of the motor external box.
+4. Curtain motor will be detected and excluded from the Z-Wave network.</MetaDataItem>
+    <MetaDataItem id="0000" name="FrequencyName" type="0001">China</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Connect power line to motor, plug power socket in 220VAC power supply.
+2. Press and hold the PB-button excess 10 second.
+3. Curtain motor will be reset to factory default and clear Z-Wave included network state.
+Please use this procedure only when the network primary controller is missing or otherwise
+inoperable.</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Connect power line to motor, plug power socket in 220VAC power supply, and Make sure
+the device is located within direct range of the Z-Wave controller.
+2. Set the controller into the inclusion/add mode (refer to controllers operating manual).
+3. Click the PB-button triple times in 1.5 second, located left side of the motor external box.
+4. Curtain motor will be detected and included in the Z-Wave network.
+[Note] During inclusion, a LED will fast flash red light until inclusion done. If motor not
+included in any controller, a LED will slow flash red light constantly.
+[Note1] In order to working properly, user should operate curtain open and close once
+manually after power up. If lead tail was changed or re-assembling motor, motor tail
+reset should be done by configuration command parameter #7 manually.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Remi ARNAUD" date="29 Jul 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2662</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="6" instance="1" label="Set motor direction reverse" max="127" min="-128" size="1" type="byte" value="0">
+      <Help>
+				Support Set only. Toggle motor direction between reverse and default as send out set command with any value(0x00-0xFF).
+			</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Clear motor lead tail endpoint setting" max="127" min="-128" type="byte" value="0">
+      <Help>
+				Support Set only. Clear motor lead tail endpoint setting as send out set command with any value(0x00-0xFF).
+			</Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="Enable manual pull function" max="127" min="-128" type="byte" value="0">
+      <Help>
+				Support Set only. Enable manual pull function as send out set command with any value(0x00-0xFF).
+			</Help>
+    </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/simon/10002020-13X.xml b/config/simon/10002020-13X.xml
new file mode 100755
index 0000000000..b239236f8d
--- /dev/null
+++ b/config/simon/10002020-13X.xml
@@ -0,0 +1,143 @@
+<!--
+Simon S100 Socket iO
+https://products.z-wavealliance.org/products/2669
+-->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/simon/10002020-13X.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="0007">https://products.z-wavealliance.org/products/2590/</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=%filename=MarketCertificationFiles/2590/DIMMER_991024_990912.pdf</MetaDataItem>
+    <MetaDataItem name="Name">S100 Rocker iO for Dimmer</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jordi Andújar - jordi.andujar@gmail.com" date="21 Dec 2020" revision="1">Added support for Simon S100 Rocker iO dimmer.</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value type="list" index="1" genre="config" label="Association LED" min="0" max="255" value="0" size="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 central LED OFF" value="0"/>
+      <Item label="Turns the central LED ON" value="255"/>
+    </Value>
+
+    <Value type="byte" index="4" genre="config" label="Set Time" units="seconds" min="0" max="127" value="0" size="1">
+      <Help>
+        This parameter allows to choose the dimmer set time in seconds.
+        Value 0 - Instantly (default).
+        Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
+      </Help>
+    </Value>
+
+    <Value type="byte" index="5" genre="config" label="Fade Time" units="seconds" min="0" max="127" value="0" size="1">
+      <Help>
+        This parameter allows to choose the dimmer fade time in seconds.
+        Value 0 - Instantly (default).
+        Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
+      </Help>
+    </Value>
+
+    <Value type="byte" index="10" genre="config" label="Delay ON" units="seconds" min="0" max="127" value="0" size="1">
+      <Help>
+        This parameter allows to choose the ON delay in seconds.
+        Value 0 - Instantly (default).
+        Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
+      </Help>
+    </Value>
+
+    <Value type="byte" index="11" genre="config" label="Activation TIME" units="seconds" min="0" max="127" value="0" size="1">
+      <Help>
+        This parameter allows to choose the activation time in seconds.
+        Value 0 - Instantly (default).
+        Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
+      </Help>
+    </Value>
+
+    <Value type="byte" index="16" genre="config" label="Delay OFF" units="seconds" min="0" max="127" value="0" size="1">
+      <Help>
+        This parameter allows to choose the OFF delay in seconds.
+        Value 0 - Instantly (default).
+        Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
+      </Help>
+    </Value>
+
+    <Value genre="config" index="9" label="Calibration" max="3" min="1" size="1" type="list" value="0">
+      <Help>This parameter allows choosing between trailing or leading edge configuration.</Help>
+      <Item label="Device performs calibration using Trailing and Leading edge and decides which one is better." value="1"/>
+      <Item label="Device is calibrated using Trailing Edge" value="2"/>
+      <Item label="Device is calibrated using Leading Edge" value="3"/>
+    </Value>
+
+    <Value type="byte" index="6" genre="config" label="Min Dimming Value %" units="%" min="1" max="99" value="1" size="1">
+      <Help>Sets the Min percentage that can be reached. Once the device gets a value through Z-Wave, it scales the value read according to this Min margin.</Help>
+    </Value>
+
+    <Value type="byte" index="7" genre="config" label="Max Dimming Value %" units="%" min="1" max="99" value="1" size="1">
+      <Help>Sets the Max percentage that can be reached. Once the device gets a value through Z-Wave, it scales the value read according to this Max margin.</Help>
+    </Value>
+
+    <Value type="byte" index="8" genre="config" label="Last On Value" units="%" min="1" max="99" value="1" size="1">
+      <Help>Returns or sets the last non zero dimming value. In case of Set the device turns ON the load.</Help>
+    </Value>
+
+    <Value genre="config" index="12" label="Behavior of LED in Repose" max="255" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose behaviour of LED in repose</Help>
+      <Item label="LED OFF" value="0"/>
+      <Item label="LED ON at 20% of maximum level" value="255"/>
+    </Value>
+
+    <Value genre="config" index="13" label="Lock Input" max="255" min="0" size="1" type="list" value="0">
+      <Help>This parameter locks the direct control of load.</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" 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="19" label="Press Action" max="5" min="0" size="1" type="list" value="5">
+      <Help>This parameter allows choosing.</Help>
+      <Item label="When press less than 2sec, device toggles the load. The slider does not work." value="0"/>
+      <Item label="When press less than 2sec, device turns ON the load. The slider does not work." value="1"/>
+      <Item label="When press less than 2sec, device turns OFF the load. The slider does not work." value="2"/>
+      <Item label="When press less than 2sec, device turns ON the load. When press between 2sec and 10sec, device turns OFF the load. The slider does not work. With this configuration the device will not send the Node Info neither show the LEDs feedback with this press action. The slider does not work." value="4"/>
+      <Item label="(default) when press less than 2sec, device toggles the load. The slider dims the load when it is ON." value="5"/>
+    </Value>
+
+    <Value genre="config" index="20" 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" label="State of charge (Read Only)" max="65535" min="0" type="byte" size="1" value="0" read_only="true">
+      <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 last active dimming value (0x00 or 0x63)
+      </Help>
+    </Value>
+
+    <Value genre="config" index="23" label="Calibration required (Read Only)" max="255" min="0" size="1" type="byte" value="0" read_only="true">
+      <Help>
+        Reports whether the roller dimmer needs calibration.
+        0x00 Calibration is not required.
+        0xFF It is necessary to calibrate the dimmer to work properly.
+      </Help>
+    </Value>
+
+    <Value genre="config" index="27" label="Lock long press" max="255" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose the long press behaviour.</Help>
+      <Item label="Long press works as described in the product manual." value="0"/>
+      <Item label="Long press between 2s to 10s: do not send the Node Info. Long press of more than 30s: parameters, except Lock long press are restored to default and device sends a Node Info " value="255"/>
+    </Value>
+  </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/10002080-13X.xml b/config/simon/10002080-13X.xml
new file mode 100755
index 0000000000..80b112433a
--- /dev/null
+++ b/config/simon/10002080-13X.xml
@@ -0,0 +1,96 @@
+<!--
+Simon S100 Socket iO
+https://products.z-wavealliance.org/products/2669
+-->
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/simon/10002080-13X.png</MetaDataItem>
+    <MetaDataItem id="0000" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/2669/</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?filename=MarketCertificationFiles/2669/ROLLERBLIND_991025_990913.pdf</MetaDataItem>
+    <MetaDataItem name="Name">S100 Rocker iO for Roller Blind</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jordi Andújar - jordi.andujar@gmail.com" date="20 Ago 2020" revision="1">Added support for Simon S100 Rocker iO roller blind.</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value type="list" index="1" genre="config" label="Association LED" min="0" max="255" value="0" size="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 central LED OFF" value="0"/>
+      <Item label="Turns the central LED ON" value="255"/>
+    </Value>
+
+    <Value type="byte" index="4" genre="config" label="UP Time" units="seconds" min="0" max="127" value="0" size="1">
+      <Help>
+        This parameter allows to choose the roller blind UP time in seconds.
+        Value 0 - Instantly (default).
+        Values from 1 to 127 - 1 second to 127 seconds in 1 second resolution.
+      </Help>
+    </Value>
+
+    <Value type="byte" index="5" genre="config" label="DOWN Time" units="minutes" min="128" max="254" value="128" size="1">
+      <Help>
+        This parameter allows to choose the roller blind DOWN time in minutes.
+        Values from 1 to 127 - 1 minute to 127 minutes in 1 minute resolution.
+      </Help>
+    </Value>
+
+    <Value genre="config" index="12" label="Behavior of LED in Repose" max="255" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose behaviour of LED in repose</Help>
+      <Item label="LED OFF" value="0"/>
+      <Item label="LED ON at 20% of maximum level" value="255"/>
+    </Value>
+
+    <Value genre="config" index="13" label="Lock Input" max="255" min="0" size="1" type="list" value="0">
+      <Help>This parameter locks the direct control of load.</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" 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="20" 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" label="Load State (Read Only)" max="65535" min="0" type="byte" size="1" value="0" read_only="true">
+      <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 genre="config" index="23" label="Calibration required (Read Only)" max="255" min="0" size="1" type="byte" value="0" read_only="true">
+      <Help>
+        Reports whether the roller blind needs calibration.
+        0x00 Calibration is not required.
+        0xFF It is necessary to calibrate the dimmer to work properly.
+      </Help>
+    </Value>
+
+    <Value genre="config" index="24" label="Operating Mode" max="255" min="0" size="1" type="list" value="255">
+      <Help>This parameter allows to choose the roller blind operating mode (window shutter or sundblinds).</Help>
+      <Item label="Window shutter" value="0"/>
+      <Item label="Sunblinds (default)" value="255"/>
+    </Value>
+
+    <Value genre="config" index="25" label="Lock long press" max="255" min="0" size="1" type="list" value="0">
+      <Help>This parameter allows to choose the long press behaviour.</Help>
+      <Item label="Long press works as described in the product manual." value="0"/>
+      <Item label="Long press between 2s to 10s: do not send the Node Info. Long press of more than 30s: parameters, except Lock long press are restored to default and device sends a Node Info " value="255"/>
+    </Value>
+  </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/sunricher/srzv9001k12dimz4.xml b/config/sunricher/srzv9001k12dimz4.xml
new file mode 100644
index 0000000000..9e5d8e909f
--- /dev/null
+++ b/config/sunricher/srzv9001k12dimz4.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+        <MetaDataItem name="Name">SR-ZV9001 4 Channel Dimmer Remote Control</MetaDataItem>
+        <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave
+            devices and activate scenes in Gateways.
+        </MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:b302:0300</MetaDataItem>
+        <MetaDataItem name="ProductPage">
+            https://www.sunricher.com/single-color-z-wave-remote-secondary-controller-sr-zv9001k12-dim-z4.html
+        </MetaDataItem>
+        <MetaDataItem name="ProductPic">images/sunricher/srzv9001k12dimz4.png</MetaDataItem>
+        <MetaDataItem name="ProductManual">
+            https://www.sunricher.com/media/resources/manual/SR-ZV9001K12-DIM-Z4%20V2%20Instruction.pdf
+        </MetaDataItem>
+        <MetaDataItem name="WakeupDescription">Short press any button to activate the remote control for 3s, and press
+            and hold down both buttons All On and All Off for over 1 second to activate the remote control for 7s.
+        </MetaDataItem>
+        <MetaDataItem name="InclusionDescription">
+            Step 1. Make sure the remote control does not belong to any Z-Wave network, short press any button, if LED
+            indicator does not turn on, the remote control does not belong to any network, then continue step 2,if LED
+            indicator turns on, it means the remote control has already been included to a network, please first set the
+            remote control to exclusion mode (refer to the part "Exclusion" of this manual),then continue step 2.
+            Step 2. Set primary controller/gateway into inclusion mode (Please refer to your primary controllers manual
+            on how to turn your controller into inclusion).
+            Step 3. Press and hold down both buttons All On and All Off for over 3 seconds, LED indicator turns on, the
+            remote control will be set to inclusion mode, and waiting to be included, after 10s LED indicator blinks 6
+            times quickly to indicate successful inclusion. The remote control is a sleepy device, after inclusion it
+            will not enter into sleepy mode immediately, and will continue activation status for 30s and wait data
+            interaction from the gateway, the LED indicator will stay solid on, please be patient to wait LED indicator
+            to turn off.
+        </MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">
+            There are two exclusion methods:
+            Method 1: Exclusion from the primary controller/gateway as follows:
+            1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual
+            on how to set your controller into exclusion).
+            2. Press and hold down both buttons All On and All Off for over 3 seconds, LED indicator turns on, the
+            remote control will be set to exclusion mode, and waiting to be excluded, after 7s LED indicator blinks 4
+            times quickly to indicate successful exclusion.
+            Method 2: Factory reset the remote control will force the remote control to be excluded from a network.
+            (please refer to the part “Factory Reset” of this manual)
+        </MetaDataItem>
+        <MetaDataItem name="ResetDescription">
+            Press and hold down both buttons All On and All Off for over 10 seconds, LED indicator turns on and then
+            blinks 4 times quickly to indicate successful factory reset.
+        </MetaDataItem>
+        <MetaDataItem id="b302" name="FrequencyName" type="0300">CEPT (Europe)</MetaDataItem>
+        <MetaDataItem id="b302" name="FrequencyName" type="0301">U.S. / Canada / Mexico</MetaDataItem>
+        <MetaDataItem id="b302" name="FrequencyName" type="0302">Australia / New Zealand</MetaDataItem>
+        <MetaDataItem id="b302" name="Identifier" type="0300">SR-ZV9001K12-DIM-Z4</MetaDataItem>
+        <MetaDataItem id="b302" name="Identifier" type="0301">SR-ZV9001K12-DIM-Z4</MetaDataItem>
+        <MetaDataItem id="b302" name="Identifier" type="0302">SR-ZV9001K12-DIM-Z4</MetaDataItem>
+        <ChangeLog>
+            <Entry author="Thiago Bergman" date="28 Aug 2020" revision="1">Initial Configuration file</Entry>
+        </ChangeLog>
+    </MetaData>
+    <CommandClass id="133">
+        <Associations num_groups="5">
+            <Group index="1" max_associations="5" label="Lifeline"/>
+            <Group index="2" label="Launch 1" max_associations="5"/>
+            <Group index="3" label="Launch 2" max_associations="5"/>
+            <Group index="4" label="Launch 3" max_associations="5"/>
+            <Group index="5" label="Launch 4" max_associations="5"/>
+        </Associations>
+    </CommandClass>
+</Product>
\ No newline at end of file
diff --git a/config/sunricher/srzv9001k12dimz5.xml b/config/sunricher/srzv9001k12dimz5.xml
new file mode 100644
index 0000000000..36722f904f
--- /dev/null
+++ b/config/sunricher/srzv9001k12dimz5.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+        <MetaDataItem name="Name">SR-ZV9001 5 Channel Dimmer Remote Control</MetaDataItem>
+        <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave
+            devices and activate scenes in Gateways.
+        </MetaDataItem>
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:b301:0300</MetaDataItem>
+        <MetaDataItem name="ProductPage">
+            https://www.sunricher.com/single-color-z-wave-remote-secondary-controller-sr-zv9001k12-dim-z5.html
+        </MetaDataItem>
+        <MetaDataItem name="ProductPic">images/sunricher/srzv9001k12dimz5.png</MetaDataItem>
+        <MetaDataItem name="ProductManual">
+            https://www.sunricher.com/media/resources/manual/SR-ZV9001K12-DIM-Z5%20V2%20Instruction.pdf
+        </MetaDataItem>
+        <MetaDataItem name="WakeupDescription">Short press any button to activate the remote control for 3s, and press
+            and hold down both buttons All On and All Off for over 1 second to activate the remote control for 7s.
+        </MetaDataItem>
+        <MetaDataItem name="InclusionDescription">
+            Step 1. Make sure the remote control does not belong to any Z-Wave network, short press any button, if LED
+            indicator does not turn on, the remote control does not belong to any network, then continue step 2,if LED
+            indicator turns on, it means the remote control has already been included to a network, please first set the
+            remote control to exclusion mode (refer to the part "Exclusion" of this manual),then continue step 2.
+            Step 2. Set primary controller/gateway into inclusion mode (Please refer to your primary controllers manual
+            on how to turn your controller into inclusion).
+            Step 3. Press and hold down both buttons All On and All Off for over 3 seconds, LED indicator turns on, the
+            remote control will be set to inclusion mode, and waiting to be included, after 10s LED indicator blinks 6
+            times quickly to indicate successful inclusion. The remote control is a sleepy device, after inclusion it
+            will not enter into sleepy mode immediately, and will continue activation status for 30s and wait data
+            interaction from the gateway, the LED indicator will stay solid on, please be patient to wait LED indicator
+            to turn off.
+        </MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">
+            There are two exclusion methods:
+            Method 1: Exclusion from the primary controller/gateway as follows:
+            1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual
+            on how to set your controller into exclusion).
+            2. Press and hold down both buttons All On and All Off for over 3 seconds, LED indicator turns on, the
+            remote control will be set to exclusion mode, and waiting to be excluded, after 7s LED indicator blinks 4
+            times quickly to indicate successful exclusion.
+            Method 2: Factory reset the remote control will force the remote control to be excluded from a network.
+            (please refer to the part “Factory Reset” of this manual)
+        </MetaDataItem>
+        <MetaDataItem name="ResetDescription">
+            Press and hold down both buttons All On and All Off for over 10 seconds, LED indicator turns on and then
+            blinks 4 times quickly to indicate successful factory reset.
+        </MetaDataItem>
+        <MetaDataItem id="b301" name="FrequencyName" type="0300">CEPT (Europe)</MetaDataItem>
+        <MetaDataItem id="b301" name="FrequencyName" type="0301">U.S. / Canada / Mexico</MetaDataItem>
+        <MetaDataItem id="b301" name="FrequencyName" type="0302">Australia / New Zealand</MetaDataItem>
+        <MetaDataItem id="b301" name="Identifier" type="0300">SR-ZV9001K12-DIM-Z5</MetaDataItem>
+        <MetaDataItem id="b301" name="Identifier" type="0301">SR-ZV9001K12-DIM-Z5</MetaDataItem>
+        <MetaDataItem id="b301" name="Identifier" type="0302">SR-ZV9001K12-DIM-Z5</MetaDataItem>
+        <ChangeLog>
+            <Entry author="Thiago Bergman" date="28 Aug 2020" revision="1">Initial Configuration file</Entry>
+        </ChangeLog>
+    </MetaData>
+    <CommandClass id="133">
+        <Associations num_groups="6">
+            <Group index="1" max_associations="5" label="Lifeline"/>
+            <Group index="2" label="Launch 1" max_associations="5"/>
+            <Group index="3" label="Launch 2" max_associations="5"/>
+            <Group index="4" label="Launch 3" max_associations="5"/>
+            <Group index="5" label="Launch 4" max_associations="5"/>
+            <Group index="6" label="Launch 5" max_associations="5"/>
+        </Associations>
+    </CommandClass>
+</Product>
\ No newline at end of file
diff --git a/config/sunricher/srzv9001k2dim.xml b/config/sunricher/srzv9001k2dim.xml
new file mode 100644
index 0000000000..7be2f12a94
--- /dev/null
+++ b/config/sunricher/srzv9001k2dim.xml
@@ -0,0 +1,46 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:a30f:0300</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.sunricher.com/single-color-wall-mounted-z-wave-push-button-secondary-controller-light-switch-sr-zv9001k2-dim.html</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/sunricher/srzv9001k2dim.png</MetaDataItem>
+    <MetaDataItem id="a30f" name="ZWProductPage" type="0300">https://products.z-wavealliance.org/products/3900</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.sunricher.com/media/resources/manual/SR-ZV9001K2-DIM%20Instruction%20V1.pdf</MetaDataItem>
+    <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave devices and activate scenes in Gateways.</MetaDataItem>
+    <MetaDataItem name="Name">Wall Controller</MetaDataItem>
+    <MetaDataItem id="a30f" name="FrequencyName" type="0300">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="a30f" name="Identifier" type="0300">SR-ZV9001K2-DIM</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Step 1. Make sure the remote control does not belong to any Z-Wave network, short press any button, if LED
+indicator does not turn on, the remote control does not belong to any network, then continue step 2,if LED
+indicator turns on, it means the remote control has already been included to a network, please first set the
+remote control to exclusion mode (refer to the part "Exclusion" of this manual),then continue step 2.
+Step 2. Set primary controller/gateway into inclusion mode (Please refer to your primary controllers manual on
+how to turn your controller into inclusion).
+Step 3. Press and hold down both buttons and of Group 2 over 3 seconds, LED indicator turns on, the
+remote control will be set to inclusion mode, and waiting to be included, after 10s LED indicator blinks 6 times
+quickly to indicate successful inclusion. The remote control is a sleepy device, after inclusion it will not enter
+into sleepy mode immediately, and will continue activation status for 30s and wait data interaction from the
+gateway, the LED indicator will stay solid on, please be patient to wait LED indicator to turn off.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two exclusion methods:
+Method 1: Exclusion from the primary controller/gateway as follows:
+1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual on
+how to set your controller into exclusion).
+2. Press and hold down both buttons and of Group 2 over 3 seconds, LED indicator turns on, the remote
+control will be set to exclusion mode, and waiting to be excluded, after 7s LED indicator blinks 4 times quickly to
+indicate successful exclusion.
+Method 2: Factory reset the remote control will force the remote control to be excluded from a network. (please
+refer to the part “Factory Reset” of this manual)
+Note: Factory reset is not recommended for exclusion, please use this procedure only if the primary
+controller/gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down both I and O buttons together for over 10 seconds, LED indicator turns on and then blinks 4 times quickly to indicate successful factory reset.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="stevew817" date="13 Dec 2020" revision="1">Initial Configuration file</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Launch 1" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/sunricher/srzv9001k4dim.xml b/config/sunricher/srzv9001k4dim.xml
new file mode 100644
index 0000000000..6af709fe9b
--- /dev/null
+++ b/config/sunricher/srzv9001k4dim.xml
@@ -0,0 +1,45 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:a310:0300</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.sunricher.com/single-color-wall-mounted-push-button-z-wave-secondary-controller-dimmer-switch-sr-zv9001k4-dim.html</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/sunricher/srzv9001k4dim.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.sunricher.com/media/resources/manual/SR-ZV9001K4-DIM%20Instruction%20V1.pdf</MetaDataItem>
+    <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave devices and activate scenes in Gateways.</MetaDataItem>
+    <MetaDataItem name="Name">Wall Controller</MetaDataItem>
+    <MetaDataItem id="a310" name="FrequencyName" type="0300">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="a310" name="Identifier" type="0300">SR-ZV9001K4-DIM</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Step 1. Make sure the remote control does not belong to any Z-Wave network, short press any button, if LED
+indicator does not turn on, the remote control does not belong to any network, then continue step 2,if LED
+indicator turns on, it means the remote control has already been included to a network, please first set the
+remote control to exclusion mode (refer to the part "Exclusion" of this manual),then continue step 2.
+Step 2. Set primary controller/gateway into inclusion mode (Please refer to your primary controllers manual on
+how to turn your controller into inclusion).
+Step 3. Press and hold down both buttons and of Group 2 over 3 seconds, LED indicator turns on, the
+remote control will be set to inclusion mode, and waiting to be included, after 10s LED indicator blinks 6 times
+quickly to indicate successful inclusion. The remote control is a sleepy device, after inclusion it will not enter
+into sleepy mode immediately, and will continue activation status for 30s and wait data interaction from the
+gateway, the LED indicator will stay solid on, please be patient to wait LED indicator to turn off.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two exclusion methods:
+Method 1: Exclusion from the primary controller/gateway as follows:
+1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual on
+how to set your controller into exclusion).
+2. Press and hold down both buttons and of Group 2 over 3 seconds, LED indicator turns on, the remote
+control will be set to exclusion mode, and waiting to be excluded, after 7s LED indicator blinks 4 times quickly to
+indicate successful exclusion.
+Method 2: Factory reset the remote control will force the remote control to be excluded from a network. (please
+refer to the part “Factory Reset” of this manual)
+Note: Factory reset is not recommended for exclusion, please use this procedure only if the primary
+controller/gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down both buttons I and O of Group 2 for over 10 seconds, LED indicator turns on and then blinks 4 times quickly to indicate successful factory reset.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="stevew817" date="13 Dec 2020" revision="1">Initial Configuration file</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Launch 1" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/sunricher/srzv9001k4dimg2.xml b/config/sunricher/srzv9001k4dimg2.xml
new file mode 100644
index 0000000000..c95bad777f
--- /dev/null
+++ b/config/sunricher/srzv9001k4dimg2.xml
@@ -0,0 +1,46 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:a306:0300</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/sunricher/srzv9001k4dimg2.png</MetaDataItem>
+    <MetaDataItem id="a306" name="ZWProductPage" type="0300">https://products.z-wavealliance.org/products/3783</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3783/SR-ZV9001K4-DIM-G2%20Instruction.pdf</MetaDataItem>
+    <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave devices and activate scenes in Gateways.</MetaDataItem>
+    <MetaDataItem name="Name">Wall Controller</MetaDataItem>
+    <MetaDataItem id="a306" name="FrequencyName" type="0300">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="a306" name="Identifier" type="0300">SR-ZV9001K4-DIM-G2</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Step 1. Make sure the remote control does not belong to any Z-Wave network, short press any button, if LED
+indicator does not turn on, the remote control does not belong to any network, then continue step 2,if LED
+indicator turns on, it means the remote control has already been included to a network, please first set the
+remote control to exclusion mode (refer to the part "Exclusion" of this manual),then continue step 2.
+Step 2. Set primary controller/gateway into inclusion mode (Please refer to your primary controllers manual on
+how to turn your controller into inclusion).
+Step 3. Press and hold down both buttons and of Group 2 over 3 seconds, LED indicator turns on, the
+remote control will be set to inclusion mode, and waiting to be included, after 10s LED indicator blinks 6 times
+quickly to indicate successful inclusion. The remote control is a sleepy device, after inclusion it will not enter
+into sleepy mode immediately, and will continue activation status for 30s and wait data interaction from the
+gateway, the LED indicator will stay solid on, please be patient to wait LED indicator to turn off.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two exclusion methods:
+Method 1: Exclusion from the primary controller/gateway as follows:
+1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual on
+how to set your controller into exclusion).
+2. Press and hold down both buttons and of Group 2 over 3 seconds, LED indicator turns on, the remote
+control will be set to exclusion mode, and waiting to be excluded, after 7s LED indicator blinks 4 times quickly to
+indicate successful exclusion.
+Method 2: Factory reset the remote control will force the remote control to be excluded from a network. (please
+refer to the part “Factory Reset” of this manual)
+Note: Factory reset is not recommended for exclusion, please use this procedure only if the primary
+controller/gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down both buttons I and O of Group 2 for over 10 seconds, LED indicator turns on and then blinks 4 times quickly to indicate successful factory reset.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="stevew817" date="13 Dec 2020" revision="1">Initial Configuration file</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Launch 1" max_associations="5"/>
+      <Group index="3" label="Launch 2" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/sunricher/srzv9001tccteu.xml b/config/sunricher/srzv9001tccteu.xml
new file mode 100644
index 0000000000..7b003a270d
--- /dev/null
+++ b/config/sunricher/srzv9001tccteu.xml
@@ -0,0 +1,43 @@
+<Product Revision="1"
+  xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Z-Wave CCT Wall Controller</MetaDataItem>
+    <MetaDataItem name="Description">The Wall controller is a Security Enabled Z-Wave Plus device that can both control another Z-Wave device.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:0300:a104</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.sunricher.com/touch-panel-dual-color-z-wave-secondary-controller-sr-zv9001t-cct.html#product_tabs_description_tabbed</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.sunricher.com/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/sunricher/srzv9001tccteu.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.sunricher.com/media/resources/manual/SR-ZV9001T-CCT-EU%20Instruction.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Short press the “inclusion/exclusion” button, or press and hold down “ALL ON/OFF” button for over 3 seconds, the wall controller will be set to inclusion mode, and waiting to be included, then LED indicator turns on and blinks 6 times quickly to indicate successful inclusion.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Short press the “inclusion/exclusion” button, or press and hold down “ALL ON/OFF” button for over 3 seconds, the wall controller will be set to exclusion mode, and waiting to be excluded, then LED indicator turns on and shows 3 short blinks and 1 long blink to indicate successful exclusion.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down “inclusion/exclusion” button for over 8 seconds, LED indicator blinks slowly to indicate successful factory reset, release “inclusion/exclusion” button,the wall controller will restart automatically.</MetaDataItem>
+    <!-- <MetaDataItem id="a104" name="ZWProductPage" type="0300">https://products.z-wavealliance.org/products/2945</MetaDataItem> -->
+    <MetaDataItem id="a104" name="FrequencyName" type="0300">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0104" name="Identifier" type="0300">SR-ZV9001T-CCT-EU</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Mark Broadbent" date="24 Aug 2020" revision="1">Initial entry based on manufacturer data and test device</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="3" instance="1" label="Choose working mode of the remote control" size="1" type="list" value="1">
+      <Help>
+              Choose working mode of the remote control.
+        </Help>
+      <Item label="Choose activation of scenes in gateway mode" value="0"/>
+      <Item label="Choose direct control of associated devices mode" value="1"/>
+    </Value>
+  </CommandClass>
+  <!-- This device has no real or virtual outputs so cannot be controlled or polled, basic class is 'controlling' only -->
+  <CommandClass id="32">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="142">
+    <Associations num_groups="2">
+      <Group index="1" label="LifeLine" max_associations="1"/>
+      <Group index="2" label="Launch 1" max_associations="12"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/sunricher/srzv9100aa.xml b/config/sunricher/srzv9100aa.xml
new file mode 100644
index 0000000000..1b24b206c8
--- /dev/null
+++ b/config/sunricher/srzv9100aa.xml
@@ -0,0 +1,80 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:d00f:0200</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/sunricher/zv9100a.png</MetaDataItem>
+    <MetaDataItem id="d00f" name="ZWProductPage" type="0200">https://products.z-wavealliance.org/products/3333</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3331/SR-ZV9100A-A%20In-Wall%20Smart%20Switch.pdf</MetaDataItem>
+    <MetaDataItem name="Description">The in-wall smart switch is a Z-Wave device designed to work with various types of light sources.</MetaDataItem>
+    <MetaDataItem name="Name">In-wall switch</MetaDataItem>
+    <MetaDataItem id="d00f" name="FrequencyName" type="0200">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="d00f" name="Identifier" type="0200">SR-ZV9100A-A</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Step 1. Set primary controller/gateway into inclusion mode (Please refer to your primary controllers manual on
+how to turn your controller into inclusion).
+Step 2. Power on the in-wall switch and set it into inclusion mode. There are two methods to set the in-wall switch into inclusion mode:
+1)Repower on the switch, it will be set into inclusion mode automatically, and waiting to be included.
+2)Triple press the action button on the switch, it will set the switch into inclusion mode.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two exclusion methods:
+Method 1: Exclusion from the primary controller/gateway as follows:
+1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual on
+how to set your controller into exclusion).
+2. Press and hold down both buttons and of Group 2 over 3 seconds, LED indicator turns on, the remote
+control will be set to exclusion mode, and waiting to be excluded, after 7s LED indicator blinks 4 times quickly to
+indicate successful exclusion.
+Method 2: Factory reset the remote control will force the remote control to be excluded from a network. (please
+refer to the part “Factory Reset” of this manual)
+Note: Factory reset is not recommended for exclusion, please use this procedure only if the primary
+controller/gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down the action button for over 10 seconds, the switch will be reset to factory defaults.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="AntoineVDH" date="7 Dec 2020" revision="1">Initial Configuration file</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!--
+    Z-Wave In-Wall Smart Switch SR-ZV9100A-A
+    Manual: https://www.sunricher.com/media/resources/manual/SR-ZV9100A-A%20Instruction%20V1.pdf
+    -->
+
+   <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" instance="1" label="Saving state before power failure" size="1" type="list" 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 genre="config" index="3" instance="1" label="Send the basic report" size="1" type="list" 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 switch, it will send Basic report automatically. 
+		Default Enabled.
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="External switch to be added to and removed from a network" size="1" type="list" 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 genre="config" index="5" instance="1" label="External switch type" size="1" type="list" value="0">
+      <Help>
+	   Choose external switch type. 
+		Default push button 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>
+  </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/sunricher/srzv9101sachpswitch.xml b/config/sunricher/srzv9101sachpswitch.xml
new file mode 100644
index 0000000000..ac7ac54fde
--- /dev/null
+++ b/config/sunricher/srzv9101sachpswitch.xml
@@ -0,0 +1,65 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:D006:0200</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.sunricher.com/z-wave-ac-in-wall-switch-sr-zv9101sac-hp-switch.html</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/sunricher/srzv9101sachpswitch.png</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down the action button for over 10 seconds, the dimmer will be reset to factory defaults.
+
+Note: Factory reset is not recommended for exclusion, please use this procedure only if the primary controller/gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">The in-wall switch is a Z-Wave device that is used to switch ON/OFF the connected light and can be controlled
+by other Z-Wave devices. The In-wall switch can be included and operated in any Z-Wave network with other ZWave 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.</MetaDataItem>
+    <MetaDataItem name="Name">Z-Wave AC In Wall Switch</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Set primary controller/gateway into inclusion mode (Please refer to your primary controller’s manual on how to turn your controller into inclusion).
+2. Power on the in-wall switch and set it into inclusion mode. There are two methods to set the in-wall switch into inclusion mode:
+1)Repower on the switch, it will be set into inclusion mode automatically, and waiting to be included.
+2)Triple press the action button on the switch, it will set the switch into inclusion mode.
+The connected light will stay solid on for 3 seconds to indicate successful inclusion.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two exclusion methods:
+Method 1: Exclusion from the primary controller/gateway as follows:
+1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual on how to set your controller into exclusion).
+2. Triple press the action button, the switch will be set to exclusion mode, and waiting to be excluded, then the switch will be excluded from the network.
+Method 2: Factory reset the switch will force it to be excluded from a network. (please refer to the part “Factory Reset” of this manual)
+Note: Factory reset is not recommended for exclusion, please use this procedure only if the primary controller/gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.sunricher.com/media/resources/manual/SR-ZV9101SAC-HP-Switch%20Instruction.pdf</MetaDataItem>
+    <MetaDataItem id="D006" name="Identifier" type="0200">SR-ZV9101SAC-HP-Switch</MetaDataItem>
+    <MetaDataItem id="D006" name="FrequencyName" type="0200">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="stevew817" date="13 Dec 2020" revision="1">Initial Configuration file</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" instance="1" label="Saving state before power failure" size="1" type="list" value="2">
+      <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 genre="config" index="3" instance="1" label="Send the basic report" size="1" type="list" 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 switch, it will send Basic report automatically.
+		Default Enabled.
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="External switch to be added to and removed from a network" size="1" type="list" 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="1">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/sunricher/zv2835rac.xml b/config/sunricher/zv2835rac.xml
new file mode 100644
index 0000000000..1fed035930
--- /dev/null
+++ b/config/sunricher/zv2835rac.xml
@@ -0,0 +1,161 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:D017:0200</MetaDataItem>
+    <MetaDataItem id="D017" name="FrequencyName" type="0200">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Set primary controller/gateway into inclusion mode (Please refer to your primary controller’s manual on how to turn your controller into inclusion)
+    
+2. Power on the knob dimmer and set it into inclusion mode. There are two methods to set the dimmer into inclusion mode:
+
+1) Repower on the dimmer, it will be set into inclusion mode automatically, and waiting to be included.
+2) Triple press reset button on the dimmer, it will set the dimmer into inclusion mode</MetaDataItem>
+    <MetaDataItem name="Name">Knob Smart Dimmer</MetaDataItem>
+    <MetaDataItem id="D017" name="Identifier" type="0200">ZV2835RAC</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down the action button for over 10 seconds, the dimmer will be reset to factory defaults.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two exclusion methods:
+Method 1: Exclusion from the primary controller/gateway as follows:
+1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual on how to set your controller into exclusion).
+2. Triple press reset button, the dimmer will be set to exclusion mode, and waiting to be excluded, then the dimmer will be excluded from the network.
+
+Method 2: Factory reset the dimmer will force it to be excluded from a network. (please refer to the part “Factory Reset” of this manual)
+
+Note: Factory reset is not recommended for exclusion, please use this procedure only if the primary controller/gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">The knob smart dimmer is a Z-Wave device designed to work with various types of light sources. It may be connected to two-wire or three-wire configuration so it can operate with or without neutral lead. The dimmer can switch or dim connected light source either through  Z-Wave devices or through the rotary knob directly. The smart dimmer is equipped with an algorithm of smart 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).</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/sunricher/zv2835rac.png</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Fritiof Hedman - openzwave@fritiofhedman.se" date="11 Aug 2020" revision="1">Inital support based on the products manual.</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" instance="1" label="Saving state before power failure" size="1" type="list" value="2">
+      <Help>
+              Saving state before power failure. Default is 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 genre="config" index="3" instance="1" label="Send the basic report" size="1" type="list" 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 genre="config" index="4" instance="1" label="Default fade time" max="127" min="0" type="byte" value="1">
+      <Help>Fade time in seconds. 0 is instantly, default is 1.</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Setting minimum brightness value" max="50" min="0" type="byte" value="15">
+      <Help>Setting minimum brightness value.
+              Valid value: 0 - 50, the bigger the value is, the higher the loads minimum brightness is.
+        </Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Setting maximum brightness value" max="100" min="0" type="byte" value="100">
+      <Help>Setting maximum brightness value.
+              Valid value: 0 - 100.</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Choose MOSFET driving type" size="1" type="list" 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 genre="config" index="8" instance="1" label="Setting step of the knob" max="50" min="1" type="byte" value="5">
+      <Help>Corresponding dimming stepping level for each rotation of the knob (a full dimming stepping level is 99),Valid value: 1-50.</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Added to and removed from a network through external switch" size="1" type="list" value="0">
+	    <Help>
+		    Added to and removed from a network through external switch (when enables this function, triple press the external switch within 1.5 seconds to be added to or removed from a network)
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Detect load after re-power on" size="1" type="list" value="0">
+	    <Help>
+		    Enable/disable to detect load after re-power on (detect load type, minimum brightness, maximum brightness)
+		    
+		    Note: When the device does not belong to any network, load detection will be enabled every time after re-power on. When the device has already been added to a network, load detection will be disabled
+        </Help>
+      <Item label="Enable" value="0"/>
+      <Item label="Disable" value="1"/>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Wiring type" size="1" type="list" value="0" read_only="true">
+	    <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 genre="config" index="12" instance="1" label="Load type" size="1" type="list" value="0" read_only="true">
+	    <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 genre="config" index="13" instance="1" label="Enable over current protection" size="1" type="list" value="1">
+	    <Help>
+		    Enable/disable over current protection (over 3.2A for 20 seconds continuously).
+        </Help>
+      <Item label="Disable" value="0"/>
+      <Item label="Enable" value="1"/>
+    </Value>
+    <!-- the allowed range is not given in the manual! -->
+    <Value genre="config" index="14" instance="1" label="Absolute automatic power report" max="65535" min="0" type="short" units="watts" value="10">
+	    <Help>
+	   Power automatic report absolute threshold, unit is WWhen power changes above the absolute threshold, immediately report current power value
+	    </Help>
+    </Value>
+    <!-- the allowed range is not given in the manual! -->
+    <Value genre="config" index="15" instance="1" label="Relative automatic power report" max="100" min="0" type="byte" 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 genre="config" index="21" instance="1" label="Power metering automatic report time cycle" max="2678400" min="5" type="int" units="seconds" value="600">
+	    <Help>
+		    Power metering automatic report time cycle, unit is second. Valid time cycle value: 5~2678400. Default is 600 (10 minutes).
+	    </Help>
+    </Value>
+    <Value genre="config" index="22" instance="1" label="Energy metering automatic report time cycle" max="2678400" min="5" type="int" units="seconds" value="1800">
+	    <Help>
+		    Energy metering automatic report time cycle, unit is second. Valid time cycle value: 5~2678400. Default is 1800 (30 minutes).
+	    </Help>
+    </Value>
+    <Value genre="config" index="23" instance="1" label="Voltage metering automatic report time cycle" max="2678400" min="5" type="int" units="seconds" value="3600">
+	    <Help>
+		    Voltage metering automatic report time cycle, unit is second. Valid time cycle value: 5~2678400. Default is 3600 (60 minutes).
+	    </Help>
+    </Value>
+    <Value genre="config" index="24" instance="1" label="Current metering automatic report time cycle" max="2678400" min="5" type="int" units="seconds" value="3600">
+	    <Help>
+		    Current metering automatic report time cycle, unit is second. Valid time cycle value: 5~2678400. Default is 3600 (60 minutes).
+	    </Help>
+    </Value>
+    <Value genre="config" index="31" instance="1" label="Dimming curve" size="1" type="list" value="0">
+	    <Help>
+		    Setting dimming curve.
+        </Help>
+      <Item label="Linear dimming" value="0"/>
+      <Item label="Logarithmic dimming" value="1"/>
+    </Value>
+    <Value genre="config" index="32" instance="1" label="Startup brightness" max="99" min="0" type="byte" value="0">
+	    <Help>
+		    Setting startup brightness of the loadValid value: 0~99Note: every time when turn on the load from OFF status, if the target brightness is lower than the startup brightness, the brightness will first go to the startup brightness value then fall down to the target brightness.
+	    </Help>
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Launch 1" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/sunricher/zv9101fa.xml b/config/sunricher/zv9101fa.xml
new file mode 100644
index 0000000000..3fba18c362
--- /dev/null
+++ b/config/sunricher/zv9101fa.xml
@@ -0,0 +1,96 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0330:D002:0200</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/sunricher/srzv9101facct.png</MetaDataItem>
+    <MetaDataItem id="D002" name="FrequencyName" type="0200">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="D002" name="FrequencyName" type="0201">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="D002" name="FrequencyName" type="0202">Australia / New Zealand</MetaDataItem>
+    <MetaDataItem id="D002" name="FrequencyName" type="021A">Russia</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Set primary controller/gateway into inclusion mode (Please refer to your primary controllers manual on how to turn your controller into inclusion).
+2. Power on the in-wall dimmer and set it into inclusion mode. There are two methods to set the in-wall dimmer into inclusion mode:
+1)Repower on the dimmer, it will be set into inclusion mode automatically, and waiting to be included.
+2)Triple press the action button on the dimmer, it will set the plug into inclusion mode.
+The connected light will stay solid on for 3 seconds to indicate successful inclusion.</MetaDataItem>
+    <MetaDataItem name="Name">Dimmable LED controller</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.sunricher.com/media/resources/manual/SR-ZV9101FA-CCT%20Instruction%20V1.pdf</MetaDataItem>
+    <MetaDataItem id="D002" name="Identifier" type="0200">SR-ZV9101FA</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold down the action button for over 10 seconds, the dimmer will be reset to factory defaults.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">There are two exclusion methods:
+Method 1: Exclusion from the primary controller/gateway as follows:
+1. Set the primary controller/gateway into exclusion mode (Please refer to your primary controllers manual on how to set your controller into exclusion).
+2. Triple press the action button, the dimmer will be set to exclusion mode, and waiting to be excluded, then the dimmer will be included to the network.
+Method 2: Factory reset the dimmer will force the it to be excluded from a network.
+(please refer to the part “Factory Reset” of this manual)
+Note: Factory reset is not recommended for exclusion, please use this procedure only if the primary controller/gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Description">The LED dimmer is a Z-Wave device that is used to switch ON/OFF, adjust light intensity and optionally the color temperature and rgbw of the connected tunable LED light and can be controlled by other Z-Wave devices.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Mark Broadbent" date="23 Aug 2020" revision="1">Initial import, adapted from ZV9101</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!--
+    Sunricher ZV-9101FA (same for CCT, DIM and RGBW)
+    https://www.sunricher.com/media/resources/manual/SR-ZV9101FA-CCT%20Instruction%20V1.pdf
+    -->
+
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value genre="config" index="2" instance="1" label="Saving state before power failure" size="1" type="list" 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 genre="config" index="3" instance="1" label="Send the basic report" size="1" type="list" 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 genre="config" index="5" instance="1" label="Choose a cool light stage mode" size="1" type="list" value="0">
+      <Help>Choose a cool light stage mode (when receiving Command Class Switch Color, it recovers to normal lighting mode.)
+        </Help>
+      <Item label="Inactive of light stage mode" value="0"/>
+      <Item label="Fade in and fade out mode, colors set by parameter 8" value="1"/>
+      <Item label="Flash mode, colors set by parameter 8" value="2"/>
+      <Item label="Rainbow mode, system fixed changing effect" value="3"/>
+      <Item label="Fade in and fade out mode, color changes randomly" value="4"/>
+      <Item label="Flash mode, color changes randomly" value="5"/>
+      <Item label="Rainbow mode, color changes randomly" value="6"/>
+      <Item label="Random mode, the colors switch randomly" value="7"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Speed of stage mode" size="1" max="255" min="0" type="byte" value="243">
+      <Help>
+          Speed of stage mode. 0 is the slowest, 255 is the fastest
+        </Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Execution times of stage mode" size="1" max="255" min="0" type="byte" value="0">
+      <Help>
+          Execution times of stage mode.
+          0: unlimited times.
+          1~255: execution times 1~255
+        </Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="The hue of stage mode" size="1" max="255" min="0" type="byte" value="0">
+      <Help>
+          The hue of stage mode. The hue is only valid for fade in and fade out mode, flash mode
+        </Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="Enable/disable external switch to be added to and removed from a network" size="1" type="list" value="0">
+      <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 network)
+        </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" label="Lifeline" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/technisat/03009496.xml b/config/technisat/03009496.xml
new file mode 100644
index 0000000000..0051b6a0f0
--- /dev/null
+++ b/config/technisat/03009496.xml
@@ -0,0 +1,71 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0299:1A93:0005</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/technisat/03009496.png</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0303">https://products.z-wavealliance.org/products/3778/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">TechniSat Shutter is powered with mains voltage so it is always awake.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Use this procedure only when the network primary controller is missing or otherwise inoperable. 1. When the roller shutter is in the lowermost position, press and hold T2 for more than 20 seconds. 2. The LED will alternately flash red and green for 5 seconds after a successful reset.</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0303">0300/9496</MetaDataItem>
+    <MetaDataItem name="Name">Shutter</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Install the TechniSat Shutter.
+      2. After checking the correct installation, re-enable electrical power at the main fuse or circuit breaker.
+        3. Start the Z-Wave device add mode on your Z-Wave gateway, according to the gateway‘s manual.
+        4. Press T1 3x within 1 second.
+        5. The red status LED is on while the device is added to the Z-Wave network.
+        6. The green LED is on for 5 seconds after successfully adding the device.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3778/Manual_SMD01_Shutter.pdf</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0303">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Start the Z-Wave device remove mode on your Z-Wave gateway, according to the gateway‘s manual.
+      2. When the roller shutter is in the uppermost position, press and hold T1 for more than 10 seconds.
+      3. The red status LED is on while the device is removed from the Z-Wave network.
+      4. The green LED is on for 5 seconds after successfully removing the device.
+</MetaDataItem>
+    <MetaDataItem name="Description">Designed as a drop-in replacement for your shutter wall switch from leading brand manufacturers, TechniSat's Shutter-Switch integrates your wall switch into the Smart Home future. Featuring Z-Wave SmartStart and S2 security for easy installation and secure operation, your shutter switch can now be controlled from your Smart Home as well.
+        - Full manual operation
+        - can trigger central scenes via multiple button clicks
+        - Short circuit and overload protection monitoring
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Mathis Klooss - ozw@gunah.eu" date="13 Jun 2020" revision="1">Initial file based on z-wavealliance.org</Entry>
+      <Entry author="Andreas Krueger - ankrueg@gmx.de" date="15 Nov 2020" revision="2">Value type for "Parameter 2" and "Parameter 3" changed to "short" as parameter size is 2 bytes.</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" instance="1" index="1" label="Parameter 1" size="1" value="1">
+      <Help>
+        Enable/disable central scene notifications for 2x-5x button presses.
+      </Help>
+      <Item label="disable central scene" value="0" />
+      <Item label="enable central scene" value="1" />
+    </Value>
+    <Value type="short" genre="config" instance="1" index="2" label="Parameter 2" value="3" min="0" max="8640">
+      <Help>
+        3 to 8640 - Interval of current wattage meter reports in 10 seconds increments.
+        0 - Disable unsolicited meter reports of current wattage.
+      </Help>
+    </Value>
+    <Value type="short" genre="config" instance="1" index="3" label="Parameter 3" value="60" min="0" max="30240">
+      <Help>
+        Interval of active energy meter reports in minutes.
+         - 10 to 30240 - Interval of active energy meter unsolicited reports in minutes (10 minutes - 3 weeks)
+         - 0 - Disable unsolicited meter reports of active energy.
+      </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="4" label="Parameter 4" size="1" value="0">
+      <Help>
+        Setting this parameter to 1 will start a manual shutter calibration.
+      </Help>
+      <Item label="Default" value="0" />
+      <Item label="manual shutter calibration" 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 on/off" max_associations="16"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/technisat/03009497.xml b/config/technisat/03009497.xml
new file mode 100644
index 0000000000..2d9c3ade5b
--- /dev/null
+++ b/config/technisat/03009497.xml
@@ -0,0 +1,105 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage"></MetaDataItem>
+    <MetaDataItem name="ProductPic">images/technisat/03009497.png</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0303">https://products.z-wavealliance.org/products/3798/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">TechniSat Dimmer-Switch is powered with mains voltage so it is always awake.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Use this procedure only when the network primary controller is missing or otherwise inoperable.
+      1. Press and hold position T2 for more than 20 seconds.
+      2. The LED will alternately flash red and green for 5 seconds after a successful reset.
+</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0303">0300/9497</MetaDataItem>
+    <MetaDataItem name="Name">Dimmer</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Install the TechniSat Dimmer.
+      2. After checking the correct installation, re-enable electrical power at the main fuse or circuit breaker.
+      3. Start the Z-Wave device add mode on your Z-Wave gateway, according to the gateway‘s manual.
+      4. Press T1 3x within 1 second.
+      5. The red status LED is on while the device is added to the Z-Wave network.
+      6. The green LED is on for 5 seconds after successfully adding the device.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3798/Manual_SMD01_Dimmer.pdf</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0303">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Start the Z-Wave device remove mode on your Z-Wave gateway, according to the gateway‘s manual.
+      2. Press and hold position T1 for more than 10 seconds.
+      3. The red status LED is on while the device is removed from the Z-Wave network.
+      4. The green LED is on for 5 seconds after successfully removing the device.
+</MetaDataItem>
+    <MetaDataItem name="Description">Designed as a drop-in replacement for your single wall switch or dimmer from leading brand manufacturers, TechniSat's Dimmer integrates your wall switch into the Smart Home future.
+       Featuring Z-Wave SmartStart and S2 security for easy installation and secure operation, yourdimmer can now be controlled from your Smart Home as well.
+       ● Full manual operation
+       ● can trigger central scenes via multiple button clicks
+       ● Integrated 230 V auxiliary input for push button or toggle switch types, applicable in alternating switching and or intermediate switching circuits
+       ● Short circuit and overload protection monitoring
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Technikte - technikte@mail.de" date="16 Aug 2020" revision="1">Initial file based on the work of Mathis Klooss for the Single-Switch and z-wavealliance.org information+local handbook</Entry>
+      <Entry author="Andreas Krueger - ankrueg@gmx.de" date="03 Jan 2021" revision="2">Value type for "Parameter 2" and "Parameter 3" changed to "short" as parameter size is 2 bytes.</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" instance="1" index="1" label="Parameter 1" size="1" value="1">
+      <Help>
+        Enable/disable central scene notifications for 2x-5x button presses.
+      </Help>
+      <Item label="disable central scene" value="0" />
+      <Item label="enable central scene" value="1" />
+    </Value>
+    <Value type="short" genre="config" instance="1" index="2" label="Parameter 2" value="3" min="0" max="8640">
+      <Help>
+        3 to 8640 - Interval of unsolicited reports in 10s increments, a value of 3 means 30 seconds (30 seconds - 1 day)
+        0 - Disable unsolicited meter reports of current wattage.
+      </Help>
+    </Value>
+    <Value type="short" genre="config" instance="1" index="3" label="Parameter 3" value="60" min="0" max="30240">
+      <Help>
+        Interval of active energy meter reports in minutes.
+         - 10 to 30240 - Interval of active energy meter unsolicited reports in minutes (10 minutes - 3 weeks)
+         - 0 - Disable unsolicited meter reports of active energy.
+      </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="4" label="Parameter 4" size="1" value="0">
+      <Help>
+        Operations mode for push buttons controlling the output.
+         - Normal Switch: In this mode the top button will turn the output on, while the bottom button will turn the output off.
+         - Toogle Switch: In this mode any button press will toggle the output - when on it will be turned off, when off it will be turned on.
+      </Help>
+      <Item label="Normal Switch" value="0" />
+      <Item label="Toogle Switch" value="1" />
+    </Value>
+    <Value type="list" genre="config" instance="1" index="5" label="Parameter 5" size="1" value="0">
+      <Help>
+        Configuration of switch type connected to extension input S.
+         - External Normal Switch: Use this value if a toggle switch is connected to extension input S.
+         - External Push Button: Use this value if a push button switch is connected to extension input S.
+      </Help>
+      <Item label="External Normal Switch" value="0" />
+      <Item label="External Push Button" value="1" />
+    </Value>
+    <Value type="list" genre="config" instance="1" index="6" label="Parameter 6" size="1" value="1">
+      <Help>
+        Central Scene mapping of extension input S.
+         - Central Scene 1: Multiple button presses (2x-5x) on extension input S will trigger events of central scene 1.
+         - Central Scene 2: Multiple button presses (2x-5x) on extension input S will trigger events of central scene 2.
+         - Central Scene 3: Multiple button presses (2x-5x) on extension input S will trigger events of central scene 3 - an additional central scene exclusive to extension input S.
+      </Help>
+      <Item label="Central Scene 1" value="1" />
+      <Item label="Central Scene 2" value="2" />
+      <Item label="Central Scene 3" value="3" />
+    </Value>
+    <Value type="list" genre="config" instance="1" index="7" label="Parameter 7" size="1" value="0">
+      <Help>
+        Select the dimming curve that should be used.
+      </Help>
+      <Item label="Dimming Curve 1" value="0" />
+      <Item label="Dimming Curve 2" 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 on/off" max_associations="10"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/technisat/03009499.xml b/config/technisat/03009499.xml
new file mode 100644
index 0000000000..47732de18b
--- /dev/null
+++ b/config/technisat/03009499.xml
@@ -0,0 +1,97 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0299:1A90:0002</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/technisat/03009499.png</MetaDataItem>
+    <MetaDataItem id="1000" name="ZWProductPage" type="0303">https://products.z-wavealliance.org/products/3677/</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">TechniSat Single-Switch is powered with mains voltage so it is always awake.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Use this procedure only when the network primary controller is missing or otherwise inoperable.
+      1. Press and hold position T2 for more than 20 seconds.
+      2. The LED will alternately flash red and green for 5 seconds after a successful reset.
+</MetaDataItem>
+    <MetaDataItem id="1000" name="Identifier" type="0303">0300/9496</MetaDataItem>
+    <MetaDataItem name="Name">Shutter</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Install the TechniSat Single-Switch.
+      2. After checking the correct installation, re-enable electrical power at the main fuse or circuit breaker.
+      3. Start the Z-Wave device add mode on your Z-Wave gateway, according to the gateway‘s manual.
+      4. Press position T1 3x within 1 second.
+      5. The red status LED is on while the device is added to the Z-Wave network.
+      6. The green LED is on for 5 seconds after successfully adding the device.
+</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3778/Manual_SMD01_Shutter.pdf</MetaDataItem>
+    <MetaDataItem id="1000" name="FrequencyName" type="0303">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Start the Z-Wave device remove mode on your Z-Wave gateway, according to the gateway‘s manual.
+      2. Press and hold position T1 for more than 10 seconds.
+      3. The red status LED is on while the device is removed from the Z-Wave network.
+      4. The green LED is on for 5 seconds after successfully removing the device.
+</MetaDataItem>
+    <MetaDataItem name="Description">Designed as a drop-in replacement for your single wall switch from leading brand manufacturers, TechniSat's Single-Switch integrates your wall switch into the Smart Home future. Featuring Z-Wave SmartStart and S2 security for easy installation and secure operation, your wall switch can now be controlled from your Smart Home as well.
+       - Full manual operation
+       - can trigger central scenes via multiple button clicks
+       - Integrated 230 V auxiliary input for push buttons or toggle switch types, applicable in alternating switching and or intermediate switching circuits
+       - Short circuit and overload protection monitoring
+</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Mathis Klooss - ozw@gunah.eu" date="13 Jun 2020" revision="1">Initial file based on z-wavealliance.org</Entry>
+      <Entry author="Andreas Krueger - ankrueg@gmx.de" date="03 Jan 2021" revision="2">Value type for "Parameter 2" and "Parameter 3" changed to "short" as parameter size is 2 bytes.</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" instance="1" index="1" label="Parameter 1" size="1" value="1">
+      <Help>
+        Enable/disable central scene notifications for 2x-5x button presses.
+      </Help>
+      <Item label="disable central scene" value="0" />
+      <Item label="enable central scene" value="1" />
+    </Value>
+    <Value type="short" genre="config" instance="1" index="2" label="Parameter 2" value="3" min="0" max="8640">
+      <Help>
+        3 to 8640 - Interval of unsolicited reports in 10s increments (30 seconds - 1 day)
+        0 - Disable unsolicited meter reports of current wattage.
+      </Help>
+    </Value>
+    <Value type="short" genre="config" instance="1" index="3" label="Parameter 3" value="60" min="0" max="30240">
+      <Help>
+        Interval of active energy meter reports in minutes.
+         - 10 to 30240 - Interval of active energy meter unsolicited reports in minutes (10 minutes - 3 weeks)
+         - 0 - Disable unsolicited meter reports of active energy.
+      </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="4" label="Parameter 4" size="1" value="0">
+      <Help>
+        Operations mode for push buttons controlling the output.
+         - Normal Switch: In this mode the top button will turn the output on, while the bottom button will turn the output off.
+         - Toogle Switch: In this mode any button press will toggle the output - when on it will be turned off, when off it will be turned on.
+      </Help>
+      <Item label="Normal Switch" value="0" />
+      <Item label="Toogle Switch" value="1" />
+    </Value>
+    <Value type="list" genre="config" instance="1" index="5" label="Parameter 5" size="1" value="0">
+      <Help>
+        Configuration of switch type connected to extension input S.
+         - Normal Switch: Use this value if a toggle switch is connected to extension input S.
+         - Toogle Switch: Use this value if a push button switch is connected to extension input S.
+      </Help>
+      <Item label="Normal Switch" value="0" />
+      <Item label="Toogle Switch" value="1" />
+    </Value>
+    <Value type="list" genre="config" instance="1" index="6" label="Parameter 6" size="1" value="1">
+      <Help>
+        Central Scene mapping of extension input S.
+         - Central Scene 1: Multiple button presses (2x-5x) on extension input S will trigger events of central scene 1.
+         - Central Scene 2: Multiple button presses (2x-5x) on extension input S will trigger events of central scene 2.
+         - Central Scene 3: Multiple button presses (2x-5x) on extension input S will trigger events of central scene 3 - an additional central scene exclusive to extension input S.
+      </Help>
+      <Item label="Central Scene 1" value="1" />
+      <Item label="Central Scene 2" value="2" />
+      <Item label="Central Scene 3" value="3" />
+    </Value>
+  </CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="1"/>
+      <Group index="2" label="Basic on/off" max_associations="16"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/thermofloor/heatit-zdim.xml b/config/thermofloor/heatit-zdim.xml
new file mode 100644
index 0000000000..f1b08e7a19
--- /dev/null
+++ b/config/thermofloor/heatit-zdim.xml
@@ -0,0 +1,187 @@
+<?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/019b:2200:0003</MetaDataItem>  
+    <MetaDataItem name="ProductPic">images/thermofloor/heatit_zdim.png</MetaDataItem>	
+    <MetaDataItem id="2200" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3261</MetaDataItem>  
+    <MetaDataItem id="2200" name="Identifier" type="0003">Zdim</MetaDataItem>	
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3261/Manual_Heatit_Z-DIM_FW%201.0_Ver2019-A_ENG.pdf</MetaDataItem>	
+    <MetaDataItem name="Description">Z-Wave rotary dimmer for different light sources. The LED dimmer dims at low load without the light flickering. Dimmer LED from 1-200VA, 230V halogen and incandescent bulbs, dimmable LED drivers and electronic transformers. Not affected by additional starting currents. Need L + N conductor connected.
+The dimmer has end-turn function. This allows you to turn on the light and dimming with one dimmer, and then turn off the light with another dimmer. Convenient for example in stairs and corridors.
+The dimmer fits into standard Elko, Schneider Exxact and Gira System 55 frame systems.
+
+FUNCTIONS
+- Z-wave rotary dimmer
+- Scene controller
+- Dims:
+- LED
+- 230V halogen
+- Incandescent lightbulbs
+- Dimable LED-drivers
+- Electronic transformators
+- Starts at 1VA and dims up to 200VA LED
+- Trailing edge
+- Multiway switching option
+- Electronic thermal cutoff with automatic reset
+- Firmware updates (OTA)
+- Power metering
+- Supports encryption mode: S0, S2 Authenticated Class, S2 Unauthenticated Class
+
+CONNECTION
+1. Disconnect the power.
+2. Connect the live to the dimmer terminal marked "L".
+3. Connect the neutral to the dimmer terminal marked "N".
+4. Connect the neutral to the load terminal marked "N".
+5. Connect the load terminal marked "L" to the dimmer terminal marked (see wiring
+ diagram).
+6. Install the dimmer (A) in the wall box. Make sure that no wires are pinched.
+7. Attach the cover (B) with the supplied nut (C).
+8. Attach the button (D) with a simple push.
+To use the multiway function (stairway function) a 230VAC rated momentary switch
+can be connected as follows:
+9. Connect the live to the toggle switch terminal marked "L".
+10. Connect the toggle switch terminal marked to the dimmer terminal marked "S"
+ (see wiring diagram).
+
+TECHNICAL DATA
+Protocol Z-Wave, 868,4MHz
+Chip Z-Wave 500 chip
+SDK 6.71.03
+Rated voltage 230V AC 50Hz
+Power 1VA - 200VA
+Input current 0,9A
+Controls Push and rotary dimmer
+Operating temperature -20°C - 40 °C
+Connection Max. 2,5mm2
+Flush mounting depth 15mm
+IP Code IP 20
+Size (LxWxH) 84 x 84 x 43mm
+
+APPROVALS
+Z-Wave Plus
+CE
+EN 55015/A2: 2009, EN 61547:2009
+EN 61000-3-2/A2:2009
+EN 61000-3-3:2008
+EN 60669-2-1/A12:2010
+EN 60669-1:A2:2008
+EMC 2014/30/EU, RoHS 2011/65/EU
+LVD 2014/35/EU
+</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">INCLUSION/EXCLUSION
+Press the main button on dimmer 6 times in a rapid sequence. Heatit Z-DIM is now included in your Z-Wave network.</MetaDataItem>
+    <MetaDataItem id="2200" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="Name">Heatit Zdim</MetaDataItem>
+    <MetaDataItem name="ResetDescription">FACTORY RESET - RES
+By pressing and holding the main button for 20 seconds, the dimmer will perform
+a complete factory reset. The connected light source will blink once and go in the
+"OFF" state if successfully reset. NB! Please use this procedure only when the primary
+controller is missing or otherwise inoperable</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">INCLUSION/EXCLUSION
+Press the main button on dimmer 6 times in a rapid sequence. Heatit Z-DIM is now included in your Z-Wave network.</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Pål Kristensen - paalkr77@gmail.com" date="10 January 2020" revision="1">Initial release</Entry>
+      <Entry author="Pål Kristensen - paalkr77@gmail.com" date="11 January 2021" revision="2">Fixed COMMAND_CLASS_SWITCH_MULTILEVEL get commands</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="0" label="Connected Load" size="1" min="0" max="200" type="byte">
+      <Help>
+The parameter defines the value of connected load. Refer to Paragraph 8 "Power Metering". 
+0 = Default
+1 - 200 = 1-200 Watts connected load
+
+POWER METERING
+The Heatit Z-Dim has functionality to calculate power consumption. To enable this
+function, Parameter 1 "Connected load" should have a value greater than 0. This is an
+estimated value, therefore power consumption accuracy depends on load estimation.
+1. Estimate the load value (Watt) connected to the Heatit Z-Dim.
+2. Use this value in Parameter 1.
+Heatit Z-Dim can report accumulated (kWh) and instant (Watt), or only instant (Watt)
+power consumption. The report time interval can be altered by Parameter 9. 
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="2" value="20" label="Minimum Dim level" units="%" size="1" min="1" max="98" type="byte">
+      <Help>
+The parameter defines the lowest dimming level of the dimmer. The value must be lower than parameter 3 "Maximum Dim Level"	  
+1% - 98% Default is 20 (20%)
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="3" value="85" label="Maximum Dim level" units="%" size="1" min="2" max="99" type="byte">
+      <Help>
+The parameter defines the highest dimming level of the dimmer.
+The value must be higher than parameter 2 "Minimum Dim Level"
+2% - 99% Default is 85 (85%)	  
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="4" value="15" label="Total steps" units="step" size="1" min="5" max="255" type="byte">
+      <Help>
+The parameter defines how many steps it should take to dim from minimum
+to maximum dim level (One round = 20 steps).
+5 - 255 = 5-255 steps. Default is 15 (3/4 round)
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="5" value="0" label="Double press function" size="1" type="list">
+      <Help>The parameter defines the double press functionality. </Help>
+      <Item value="0" label="Central Scene notification (Default)"/>
+      <Item value="1" label="Dim to highest level"/>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="1" label="Scene controller" size="1" type="list">
+      <Help>Enables scene controller</Help>
+      <Item value="0" label="Disabled"/>
+      <Item value="1" label="Active (Default)"/>
+    </Value>
+    <Value genre="config" instance="1" index="7" value="0" label="Switch ON level" units="%" size="1" min="0" max="99" type="byte">
+      <Help>
+The parameter defines the dimming level when restored from the OFF state
+by push button. 
+0 = Restores last dim level (Default)
+1 - 99 = 1% - 99%
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="8" value="1" label="Dimming Duration" units="time" size="1" min="0" max="255" type="byte">
+      <Help>
+The parameter defines how long it takes to dim to the desired level.
+Note! Only Multilevel Switch Command Class is affected by this parameter. 
+0 = Disabled
+1 - 127 = Duration in seconds (1 - 127 seconds. Default is 1)
+128 - 255 = Duration in minutes (1 - 127 minutes)
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="9" value="60" label="Meter Report Interval" units="sec" size="2" min="0" max="32767" type="short">
+      <Help>
+The parameter defines the report interval for Power Metering.
+30 - 32767 = Duration in seconds (30 - 32 767. Default is 60)
+	  </Help>
+    </Value>
+    <Value genre="config" instance="1" index="10" value="50" label="Power restore level" units="%" size="1" min="1" max="99" type="byte">
+      <Help>
+The parameter defines the initial dimming level after power loss.
+1 - 99 = 1% - 99% Default is 50 (50%)
+	  </Help>
+    </Value>
+  </CommandClass>
+
+  <!-- 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>
+
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="8" />
+      <Group index="2" label="Dimming level" max_associations="8" auto="true" />
+      <Group index="3" label="State of Device ON/OFF" max_associations="8" auto="true" />
+    </Associations>
+  </CommandClass>
+
+  <CommandClass id="142">
+    <Compatibility>
+      <ForceInstances>true</ForceInstances>
+    </Compatibility>
+  </CommandClass>
+
+</Product>
\ No newline at end of file
diff --git a/config/thermofloor/heatit021-v1.92.xml b/config/thermofloor/heatit021-v1.92.xml
new file mode 100644
index 0000000000..e8f8832cb1
--- /dev/null
+++ b/config/thermofloor/heatit021-v1.92.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<Product Revision="1"
+	xmlns="https://github.com/OpenZWave/open-zwave">
+	<MetaData>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/019B:0201:0003</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/thermofloor/heatit021.png</MetaDataItem>
+		<MetaDataItem id="0201" name="ZWProductPage" type="0003">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.
+
+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
+Display LED-display 3x 7-Seg 13.2mm CA white
+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 range +5°C/+40°C
+Displayed temperature -30°C …. 60°C
+Floor min. limit 5°C (5°C…35°C)
+Floor max. limit 35°C (5°C…35°C)
+Air min. limit 5°C (5°C…40°C)
+Air max. limit 35°C (5°C…40°C)
+Regulator min. limit 0 (0…9)
+Power regulator P02 (P00…P10) cycle of 30 minutes
+Temperature setback Adjustable within temperature range.
+Temperature setback activation Pilot wire/Z-Wave user interface
+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
+Standard Color White RAL 9003 – Black RAL 9011
+Approvals CE – FIMKO - Z-Wave Plus
+		</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=MarketCertificationFiles/1182/Manual_Multireg%20Z-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="Pål Kristensen - paalkr77@gmail.com" date="11 January 2021" revision="1">Initial release</Entry>
+		</ChangeLog>
+	</MetaData>
+
+	<CommandClass id="32">
+		<Compatibility>
+			<Mapping>37</Mapping>
+		</Compatibility>
+	</CommandClass>
+	<CommandClass id="49">
+		<Value type="decimal" genre="user" instance="1" index="1" label="Internal Air Temperature Sensor" units="C" read_only="true" write_only="false"/>
+		<Value type="decimal" genre="user" instance="2" index="1" label="External Air Temperature Sensor" units="C" read_only="true" write_only="false"/>
+		<Value type="decimal" genre="user" instance="3" index="1" label="External Floor Temperature Sensor" units="C" read_only="true" write_only="false"/>
+		<Compatibility>
+			<Base>0</Base>
+			<CreateVars>true</CreateVars>
+		</Compatibility>
+	</CommandClass>
+	<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" 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">
+		<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="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="16"/>
+		<Compatibility>
+			<Base>0</Base>
+			<CreateVars>true</CreateVars>
+		</Compatibility>
+	</CommandClass>
+
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="Operation mode" value="1" size="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" size="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" 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 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="short" index="17" genre="config" label="Temperature report interval" min="0" max="8640" size="2" value="6">
+			<Help> 0 (Report disabled) 1-8640 Multiply with 10 seconds, 10 seconds - 24 hours. Default is 6 (60 seconds)</Help>
+		</Value>
+		<Value type="byte" index="18" genre="config" label="Temperature report hysteresis" min="1" max="100" size="1" value="10">
+			<Help>1-100 (0.1C - 10C). Default is 10 (1.0C)</Help>
+		</Value>
+	</CommandClass>
+	<CommandClass id="133">
+		<Associations num_groups="5">
+			<Group index="1" max_associations="2" label="Lifeline"/>
+			<Group index="2" max_associations="2" label="On/Off control"/>
+			<Group index="3" max_associations="2" label="Multilevel sensor reports - Internal sensor" auto="true" />
+			<Group index="4" max_associations="2" label="Multilevel sensor reports - External sensor" />
+			<Group index="5" max_associations="2" label="Multilevel sensor reports - Floor sensor" auto="true" />
+		</Associations>
+	</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>
\ No newline at end of file
diff --git a/config/thermofloor/heatit021.xml b/config/thermofloor/heatit021.xml
index 8828667ada..ae598237d9 100644
--- a/config/thermofloor/heatit021.xml
+++ b/config/thermofloor/heatit021.xml
@@ -1,8 +1,9 @@
-<Product Revision="8" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="9" 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 id="0201" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/1182/</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.
@@ -51,8 +52,10 @@ 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 id="0201" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
     <MetaDataItem name="Name">Heatit Z-Wave</MetaDataItem>
     <MetaDataItem id="0001" name="Identifier" type="0001">TF021</MetaDataItem>
+    <MetaDataItem id="0201" name="Identifier" type="0003">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>
@@ -67,6 +70,7 @@ Leave programming mode by choosing ESC in menu. Your thermostat is ready for use
     <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>
+      <Entry author="Gunnar Skjold - gunnar.skjold@gmail.com" date="15 Nov 2020" revision="9">Assigned this config to TF016 as well - https://products.z-wavealliance.org/products/1182/xml</Entry>
     </ChangeLog>
   </MetaData>
   <CommandClass id="64">
diff --git a/config/thermofloor/heatit058.xml b/config/thermofloor/heatit058.xml
new file mode 100644
index 0000000000..a97cc9abe0
--- /dev/null
+++ b/config/thermofloor/heatit058.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/019B:0203:0003</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/thermofloor/heatit058.png</MetaDataItem>
+    <MetaDataItem id="0203" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3802/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Adding the device:
+To add 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 adding mode by pressing Center (confirm) button for approximately 2 seconds. The icon will appear in the display. Adding Mode is indicated in the display by some “circling” LED segments in the display until the timeout occurs after 20 seconds or the module has been added in the network. Confirmation will show Inc/EcL in the display. If adding fails, Err (error) will appear.</MetaDataItem>
+    <MetaDataItem id="0203" name="Identifier" type="0003">Z-TRM3</MetaDataItem>
+    <MetaDataItem name="Description">Heatit Z-TRM3 is equipped with a single pole switch and it fits most System 55 frames (Elko RS16, Schneider Exxact, Gira, Jung etc.). The thermostat can withstand a load of max 13A /2900W at 230V. At higher loads the thermostat must control a contactor. The thermostat may be connected to two wired external sensors.
+The thermostat has the capacity of up to 8 associations (relays, wall plugs etc.).
+The thermostat is designed for electrical heating.
+FEATURES
+Floor sensor
+External room sensor
+Temperature limiter
+Weekly program/setback via gateway or pilot wire
+Multilevel sensor command class
+Firmware updates (OTA)
+Power metering
+LED-diode
+Can be used in connection with different NTC-sensors
+Lock mode/child lock
+Calibration
+8 associations
+Supports encryption mode: S0, S2 Authenticated Class, S2 Unauthenticated Class</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3802/Manual_Heatit_Z-TRM3_FW%204.0%20Ver2020-A_ENG.pdf</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Removing the device:
+To remove 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 remove device in your home automation software. Start removing mode by pressing Center (confirm) button for approximately 2 seconds. The icon will appear in the display. Removing Mode is indicated in the display by some “circling” LED segments in the display until the timeout occurs after 20 seconds or the module has been removed in the network. Confirmation will show Inc/EcL in the display. If removing fails, Err (error) will appear.</MetaDataItem>
+    <MetaDataItem id="0203" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">By pressing buttons Right and Center (down and confirm) for 20 seconds, the thermostat will perform a complete factory reset.
+NB! Please use this procedure only when the primary controller/ gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Name">Heatit Z-TRM3</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Sebastian Hatzl - sebihatzl@gmail.com" date="20 Aug 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3802/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+  <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>
+    <Compatibility/>
+  </CommandClass>
+  
+ <CommandClass id="49">  
+  	<Value type="decimal" genre="user" instance="1" index="1" label="Temperature sensor" units="C" read_only="true" write_only="false" min="0" max="0"/>
+  	<Value type="decimal" genre="user" instance="2" index="1" label="Temperature sensor" units="C" read_only="true" write_only="false" min="0" max="0" />
+  	<Value type="decimal" genre="user" instance="3" index="1" label="Temperature sensor" units="C" read_only="true" write_only="false" min="0" max="0" />
+  </CommandClass>
+	
+    <CommandClass id="67">
+       <Instance index="1"/>
+       <Value genre="user" index="1" instance="1" label="Heating setpoint" max="0" min="0" units="C" read_only="false" type="decimal" value="21.0" 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">
+      <Help>Set operation mode</Help>
+      <Item label="Off" value="0"/>
+      <Item label="Heat" value="1"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Sensor mode" size="1" type="list" 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 with floor limitation" value="2"/>
+      <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" size="1" type="list" 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 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" 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="Room sensor calibration (A)" max="255" min="0" size="1" type="byte" value="0">
+      <Help>-60 - 60 (-6.0C - 6.0C) Default is 0 (0.0C) To set a negative value, use 255 and subtract the desired value.</Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Floor sensor calibration" max="255" min="0" size="1" type="byte" value="0">
+      <Help>-60 - 60 (-6.0C - 6.0C) Default is 0 (0.0C) To set a negative value, use 255 and subtract the desired value.</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="External sensor calibration" max="255" min="0" size="1" type="byte" value="0">
+      <Help>-60 - 60 (-6.0C - 6.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="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="14" 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="15" 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="16" 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="17" 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="18" 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 genre="config" index="19" 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="20" instance="1" label="Meter report interval" max="32767" min="0" size="2" type="short" value="90">
+      <Help>
+				0 (Report disabled)
+				30-32767 (30-32767 seconds)
+	        </Help>
+    </Value>
+    <Value genre="config" index="21" instance="1" label="Meter report delta value" max="255" min="0" size="1" type="byte" value="10">
+      <Help>0-255 A delta value of 0 - 25.5 kWh will result in a metering report. Default is 10 (1.0 kWh)</Help>
+    </Value>
+    <Compatibility/>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="On/Off switch of internal relay" max_associations="5"/>
+      <Group index="3" label="Multilevel sensor reports - Internal sensor" max_associations="5"/>
+      <Group index="4" label="Multilevel sensor reports - External sensor" max_associations="5"/>
+      <Group index="5" label="Multilevel sensor reports - Floor sensor" 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/thermofloor/heatit204.xml b/config/thermofloor/heatit204.xml
new file mode 100644
index 0000000000..fa0dac5f69
--- /dev/null
+++ b/config/thermofloor/heatit204.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Heatit Z-Temp2</MetaDataItem>
+    <MetaDataItem name="Description">Heatit Z-Temp2 is a battery-operated thermostat designed for use with water based heating systems. Used in combination with the Heatit Z-Water regulator you can control your heating system with a Z-Wave primary controller/gateway with the use of Heatit Z-Water in combination with one or several Heatit Z-Temp2. </MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/019B:0204:0004</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://products.z-wavealliance.org/products/3860</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.heatit.com/z-wave/heatit-z-temp-2-2/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/thermofloor/heatit0204.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3860/Manual_Heatit_Z-Temp2_FW%201.1_Ver2020-A_ENG.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">The thermostat is a FLIRS device. You are able to force a Node Information Frame using the same procedure as adding/removing procedure; "press the link button on the thermostat 3 times in a rapid sequence." </MetaDataItem>
+    <MetaDataItem name="InclusionDescription">There are two ways to add your devices in a Z-Wave network. * Standard (manual). Please refer to your primary controller/gateway manual on how to enter add mode. The device can only be added to the network if the primary controller is in add mode. When the primary controller/gateway is set to add mode press the link button on the thermostat 3 times in a rapid sequence. * SmartStart (automatic) Please refer to your primary controller/gateway to see if SmartStart is supported by the controller. SmartStart enabled products can be added into a Z-Wave network by scanning the Z-Wave QR-Code present on the product with a controller providing SmartStart inclusion. No further action is required and the SmartStart product will be added automatically within 10 minutes of being switched on in the network vicinity.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Remove. Please refer to your primary controller/gateway manual on how to enter remove mode. The device can only be removed from the network if the primary controller is in remove mode. When the primary controller/gateway is set to remove modus press the link button on the thermostat 3 times in a rapid sequence.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">By pressing and holding the link button for 20 seconds, the thermostat will perform a complete factory reset. rES will be displayed. NB! Please use this procedure only when the primary controller/gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem id="0204" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/XXXX/</MetaDataItem>
+    <MetaDataItem id="0204" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="0204" name="Identifier" type="0004">Z-Temp2</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Julien Ithurbide - jithurbide@gmail.com" date="26 Oct 2020" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3860/xml</Entry>
+    </ChangeLog>
+  </MetaData>
+ 
+      <!-- Thermostat -->
+          <!-- COMMAND_CLASS_THERMOSTAT_MODE 	0x40 	64   -->
+  <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>
+    <Compatibility>
+      <Base>0</Base>
+      <CreateVars>true</CreateVars>
+    </Compatibility>
+  </CommandClass>
+
+      <!-- COMMAND_CLASS_THERMOSTAT_SETPOINT 	0x43 	67 -->  
+  <CommandClass id="67">
+    <Instance index="1"/>
+    <Value genre="user" index="1" instance="1" label="Heating setpoint" max="40" 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="112">
+     <Value genre="config" index="1" instance="1" label="Temperature/ Humidity report interval" max="32767" min="30" size="2" type="short" value="900">
+      <Help>Used to adjust the time between report interval for Temperature and humidity reports. Min is 30, max is 32767 and default is 900</Help>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Temperature delta value" max="50" min="0" size="2" type="short" value="10">
+      <Help>Temperature delta value. Value 0 : Reporting temperature based on change is disabled. Real value : + 0.5 to + 5°C (Default 10 corresponding to  1.0°C)</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Humidity delta value" max="50" min="0" size="2" type="short" value="10">
+      <Help>Humidity delta value. Value 0 : Reporting Humidity based on change is disabled. Real value : + 0.5 to + 5°C (Default 10 corresponding to 1.0°C)</Help>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Temperature offset settings" max="65535" min="0" size="2" type="short" value="0">
+      <Help>Calibrate the internal temperature sensor. NB! To set negative values; 65 535 – desired value + 1. Value: -100 to 100°C (Default 0, 0°C)</Help>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Humidity offset settings" max="65535" min="0" size="2" type="short" value="0">
+      <Help>Calibrate the internal hunidity sensor. NB! To set negative values; 65 535 – desired value + 1. Value: -100 to 100°C (Default 0, 0°C)</Help>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Proximity sensor retrigger interval" max="270" min="2" size="2" type="short" value="10">
+      <Help>value 2 to 270 seconds (Default 10, 10 seconds)</Help>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Proximity sensor  Enable / Disable" max="1" min="0" size="2" type="short" value="1">
+      <Help>Disable or enable sensor. Value  0 disable, 1 enable </Help>
+    </Value>
+    <Value genre="config" index="8" instance="1" label="LED maximum brightness" max="99" min="0" size="2" type="short" value="50">
+      <Help>Adjust the backlight of LCD display.</Help>
+    </Value>
+    <Value genre="config" index="9" instance="1" label="LED turned on before timeout" max="300" min="3" size="2" type="short" value="3">
+      <Help>Adjust the time from proximity sensor / display touched until display goes to sleep.Value 3 to 300 seconds (Default 3, 3 seconds)</Help>
+    </Value>
+    <Value genre="config" index="10" instance="1" label="Temperature Control Hysteresis" max="30" min="3" size="2" type="short" value="5">
+      <Help>Adjust the delta values for the thermostat to turn on off heating .Value  0.3 to 3°C (Default 5, 0,5°C)</Help>
+    </Value>
+    <Value genre="config" index="11" instance="1" label="Minimum Temperature Limit" max="400" min="50" size="2" type="short" value="50">
+      <Help>Set the mimum temperature limit.Value 5 to 40°C (Default 50, 5°C)</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Maximum Temperature Limit" max="400" min="50" size="2" type="short" value="400">
+      <Help>Set the maximum temperature limit.5 to 40°C (Default 400, 40°C)</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="External Relay and Operating State update interval " max="240" min="0" size="2" type="short" value="0">
+      <Help>Set time on how often the devices sends Binary Switch Set and thermostat mode to gateway. Value 0 : Sends only when changed (Default). 1 to 240 minutes + When changed </Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Report when presence is detected" max="1" min="0" size="2" type="short" value="400">
+      <Help>Decides if the thermostat sends temperature when presence is detected.Value 0 : Do not report to gateway when presence is detected, only at interval.(Default) 1 : Send temperature report to gateway when presence is detected.</Help>
+    </Value>
+  </CommandClass>
+  <CommandClass id="132">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="5"/>
+      <Group index="2" label="Temperature Report" max_associations="5"/>
+      <Group index="3" label="Binary Switch Set (normally used to control external relays)." max_associations="5"/>
+    </Associations>
+  </CommandClass>
+ 
+</Product>
diff --git a/config/thermofloor/heatit20a.xml b/config/thermofloor/heatit20a.xml
new file mode 100644
index 0000000000..8ccaaa045f
--- /dev/null
+++ b/config/thermofloor/heatit20a.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0"?>
+<!--
+Heatit Z-Water
+https://products.z-wavealliance.org/products/3102
+-->
+<Product xmlns="https://github.com/OpenZWave/open-zwave" Revision="3">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/thermofloor/heatit20a.png</MetaDataItem>
+    <MetaDataItem id="020a" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3102/</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Adding the device:
+When the primary controller is set to add/remove modus press the &#x201D;INCLUSION&#x201D; button once on the device</MetaDataItem>
+    <MetaDataItem id="020a" name="Identifier" type="0003">Z-Water</MetaDataItem>
+    <MetaDataItem name="Description">Heatit Z-Water is equipped with 10 relay outputs and 4 analog inputs, and a Z-Wave radio for interfacing to the wireless
+Z-Wave network.
+The regulator can be power supplied from a 230V AC mains connection, and is able to deliver an output supply of 24V DC.
+Heatit Z-Water relay outputs are able to be freely controlled from the Z-Wave network, and can be used for several
+purposes, e.g. on/off control of light, control of valve actuators for an underfloor heating system, or control of other home
+automation systems.
+Heatit Z-Water inputs are analog inputs for interfacing simple temperature sensors; NTC, PT1000, etc.
+It is possible to configure the level and the indication of the status indicator LED in the front of the Heatit Z-Water
+regulator.</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3102/Manual_Heatit_Z-Water_analog%20inputs_FW%202.1_Ver2019-A_ENG.pdf</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Removing the device: When the primary controller is set to add/remove modus press the &#x201D;INCLUSION&#x201D; button once on the device</MetaDataItem>
+    <MetaDataItem id="020a" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ResetDescription">By pressing buttons Right and Center (down and confirm) for 20 seconds, the thermostat will perform a complete factory reset.
+NB! Please use this procedure only when the primary controller/ gateway is missing or otherwise inoperable.</MetaDataItem>
+    <MetaDataItem name="Name">Heatit Z-Water</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Espen Throndsen - espenthrondsen@gmail.com" date="21 Oct 2019" revision="1">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3102/xml</Entry>
+      <Entry author="Lars Tobias Skjong-B&#xF8;rsting - larstobi@relatime.no" date="28 Jun 2020" revision="2">Added ProductPic</Entry>
+      <Entry author="Lars Tobias Skjong-B&#xF8;rsting - larstobi@relatime.no" date="12 Jul 2020" revision="3">Fixed errors</Entry>
+    </ChangeLog>
+  </MetaData>
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="status LED" size="1" type="list" value="1">
+      <Help>Set LED mode</Help>
+      <Item label="LED turned off" value="0"/>
+      <Item label="LED turned on.(default)" value="1"/>
+      <Item label="2 LED flashing at 1 second intervals (&#xBD; Hz)" value="2"/>
+      <Item label="3 LED flashing at &#xBD; second interval (1 Hz)" value="3"/>
+    </Value>
+    <Value genre="config" index="2" instance="1" label="Specifies the brightness level of the LED when it is on.(0-100) Default is 50" size="1" type="byte" value="50">
+      <Help>Set Brightnes</Help>
+    </Value>
+    <Value genre="config" index="3" instance="1" label="Thermistor type connected to input 1" size="1" type="list" value="0">
+      <Help>This parameter decides which kind of thermistor that is connected to the input.</Help>
+      <Item label="0 No thermistor, input is disabled" value="0"/>
+      <Item label="1 10K NTC. (PART NUMBER: TT02-10KC3-93D-3000R-TPH). (Default)" value="1"/>
+    </Value>
+    <Value genre="config" index="4" instance="1" label="Thermistor type connected to input 2" size="1" type="list" value="0">
+      <Help>This parameter decides which kind of thermistor that is connected to the input.</Help>
+      <Item label="0 No thermistor, input is disabled" value="0"/>
+      <Item label="1 10K NTC. (PART NUMBER: TT02-10KC3-93D-3000R-TPH). (Default)" value="1"/>
+    </Value>
+    <Value genre="config" index="5" instance="1" label="Thermistor type connected to input 3" size="1" type="list" value="0">
+      <Help>This parameter decides which kind of thermistor that is connected to the input.</Help>
+      <Item label="0 No thermistor, input is disabled" value="0"/>
+      <Item label="1 10K NTC. (PART NUMBER: TT02-10KC3-93D-3000R-TPH). (Default)" value="1"/>
+    </Value>
+    <Value genre="config" index="6" instance="1" label="Thermistor type connected to input 4" size="1" type="list" value="0">
+      <Help>This parameter decides which kind of thermistor that is connected to the input.</Help>
+      <Item label="0 No thermistor, input is disabled" value="0"/>
+      <Item label="1 10K NTC. (PART NUMBER: TT02-10KC3-93D-3000R-TPH). (Default)" value="1"/>
+    </Value>
+    <Value genre="config" index="7" instance="1" label="Input 1 calibration" size="1" type="byte" max="255" min="0" 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="8" instance="1" label="Input 2 calibration" size="1" type="byte" max="255" min="0" 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="9" instance="1" label="Input 3 calibration" size="1" type="byte" max="255" min="0" 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="10" instance="1" label="Input 4 calibration" size="1" type="byte" max="255" min="0" 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="11" instance="1" label="Input 1 Temperature report interval" max="8640" min="0" size="2" type="short" value="60">
+      <Help>
+				0 (Report disabled)
+        Multiply with 10 seconds, 10 seconds &#x2013; 24 hours. Default is 6 (60 seconds).</Help>
+    </Value>
+    <Value genre="config" index="12" instance="1" label="Input 2 Temperature report interval" max="8640" min="0" size="2" type="short" value="60">
+      <Help>
+				0 (Report disabled)
+        Multiply with 10 seconds, 10 seconds &#x2013; 24 hours. Default is 6 (60 seconds).</Help>
+    </Value>
+    <Value genre="config" index="13" instance="1" label="Input 3 Temperature report interval" max="8640" min="0" size="2" type="short" value="60">
+      <Help>
+				0 (Report disabled)
+        Multiply with 10 seconds, 10 seconds &#x2013; 24 hours. Default is 6 (60 seconds).</Help>
+    </Value>
+    <Value genre="config" index="14" instance="1" label="Input 4 Temperature report interval" max="8640" min="0" size="2" type="short" value="60">
+      <Help>
+				0 (Report disabled)
+        Multiply with 10 seconds, 10 seconds &#x2013; 24 hours. Default is 6 (60 seconds).</Help>
+    </Value>
+    <Compatibility/>
+  </CommandClass>
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline. - Reset notification - Basic Report On / Off - Multilevel Sensor Report" max_associations="5"/>
+      <Group index="2" label="Sends Multilevel Sensor Reports for input 1" max_associations="5"/>
+      <Group index="3" label="Sends Multilevel Sensor Reports for input 2" max_associations="5"/>
+      <Group index="4" label="Sends Multilevel Sensor Reports for input 3" max_associations="5"/>
+      <Group index="5" label="Sends Multilevel Sensor Reports for input 4" 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/thermofloor/heatitz4.xml b/config/thermofloor/heatitz4.xml
new file mode 100644
index 0000000000..0d1ead3ae2
--- /dev/null
+++ b/config/thermofloor/heatitz4.xml
@@ -0,0 +1,41 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">Heatit Z-Push Button 4</MetaDataItem>
+    <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave devices and activate scenes in Gateways. Although it is controlling other devices, the device cannot act as Z-Wave network controller (primary or secondary) and will always need a Z-Wave network controller to be added into a Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/XXXX:XXXX:XXXX</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.heatit.com/z-wave/heatit-z-push-button-4/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.heatit.com/z-wave/heatit-z-push-button-4/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/thermofloor/Heatit-Z-Push-button-8-white.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.thermo-floor.no/media/multicase/documents/_tfasdokumentasjon/heatit%20controls/heatit%20z-push%20button/manual_heatit%20z-push_button%204%20_fw%201.26_ver2019-a_eng.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">short press any button</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">set controller in inclusion mode press and hold down group 2 keys for 3 seconds</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">set controller in exclusion mode press and hold down group 2 keys for 3 seconds</MetaDataItem>
+    <MetaDataItem name="ResetDescription">press and hold down group 2 keys for more than 10 seconds use only if controller is unavailable</MetaDataItem>
+    <MetaDataItem id="0xa306" name="ZWProductPage" type="0x0300">https://products.z-wavealliance.org/products/3595</MetaDataItem>
+    <MetaDataItem id="0xa306" name="FrequencyName" type="0x0300">CEPT</MetaDataItem>
+    <MetaDataItem id="0xa306" name="Identifier" type="0x0300">45 126 82 (white) 45 126 83 (black)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jonas Sauge" date="26 August 2020" revision="1">add Heatit Z-Push Button 4</Entry>
+      <Entry author="Pål Kristensen - paalkr77@gmail.com" date="18 January 2021" revision="2">Fixed Association Groups</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+
+    <!-- Here is a Byte/Int/Short Value Sample -->
+    <Value genre="config" index="1" label="Factory reset"  max="21930" min="21930" type="int" units="" value="0" write_only="true">
+      <Help>
+			Set to 21930 to factory reset the device.
+			</Help>
+    </Value>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Launch 1" max_associations="5"/>
+      <Group index="3" label="Launch 2" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/thermofloor/heatitz8.xml b/config/thermofloor/heatitz8.xml
new file mode 100644
index 0000000000..72946c507f
--- /dev/null
+++ b/config/thermofloor/heatitz8.xml
@@ -0,0 +1,43 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">Heatit Z-Push Button 8</MetaDataItem>
+    <MetaDataItem name="Description">The remote control is a Z-Wave device that can both control other Z-Wave devices and activate scenes in Gateways. Although it is controlling other devices, the device cannot act as Z-Wave network controller (primary or secondary) and will always need a Z-Wave network controller to be added into a Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/XXXX:XXXX:XXXX</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.heatit.com/z-wave/heatit-z-push-button-8/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.heatit.com/z-wave/heatit-z-push-button-8/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/thermofloor/Heatit-Z-Push-button-8-white.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.thermo-floor.no/media/multicase/documents/_tfasdokumentasjon/heatit%20controls/heatit%20z-push%20button/manual_heatit_z-push_button_8_fw_1.26_ver2019-a_eng.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription">short press any button</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">set controller in inclusion mode press and hold down group 2 keys for 3 seconds</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">set controller in exclusion mode press and hold down group 2 keys for 3 seconds</MetaDataItem>
+    <MetaDataItem name="ResetDescription">press and hold down group 2 keys for more than 10 seconds use only if controller is unavailable</MetaDataItem>
+    <MetaDataItem id="0xa305" name="ZWProductPage" type="0x0300">https://products.z-wavealliance.org/products/3595</MetaDataItem>
+    <MetaDataItem id="0xa305" name="FrequencyName" type="0x0300">CEPT</MetaDataItem>
+    <MetaDataItem id="0xa305" name="Identifier" type="0x0300">45 125 81 (white) 45 126 81 (black)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jonathan Mos mosjonathan999@hotmail.com" date="03 January 2020" revision="1">Made config from manual and zwave alliance</Entry>
+      <Entry author="Pål Kristensen - paalkr77@gmail.com" date="18 January 2021" revision="2">Removed auto include controller to Association Groups</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+
+    <!-- Here is a Byte/Int/Short Value Sample -->
+    <Value genre="config" index="1" label="Factory reset"  max="21930" min="21930" type="int" units="" value="0" write_only="true">
+      <Help>
+			Set to 21930 to factory reset the device.
+			</Help>
+    </Value>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Launch 1" max_associations="5"/>
+      <Group index="3" label="Launch 2" max_associations="5"/>
+      <Group index="4" label="Launch 3" max_associations="5"/>
+      <Group index="5" label="Launch 4" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/thermofloor/heatitzm.xml b/config/thermofloor/heatitzm.xml
new file mode 100644
index 0000000000..a249dc9bf2
--- /dev/null
+++ b/config/thermofloor/heatitzm.xml
@@ -0,0 +1,95 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+	<MetaData>
+		<MetaDataItem name="Name">Heatit ZM Single Relay 16A</MetaDataItem>
+		<MetaDataItem name="Description">Heatit ZM Single Relay is a high power relay for in-wall installations.
+		The relay allows you to control connected devices either through your Z-Wave network or via a wired switch. The module is equipped with a 16A relay and has a scene controller functionality.
+
+		The device can withstand a load of max 16A /3600W at 230VAC.
+
+		The Heatit ZM Single Relay has a power metering feature that allows you to monitor the power consumption of your connected devices.  </MetaDataItem>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/019B:3500:0004</MetaDataItem>
+		<MetaDataItem id="000A" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/4062/</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/thermofloor/heatitzm.png</MetaDataItem>
+		<MetaDataItem id="000A" name="Identifier" type="0004">ZM Single Relay 16A</MetaDataItem>
+		<MetaDataItem name="InclusionDescription">Tripple Click the button</MetaDataItem>
+		<MetaDataItem id="000A" name="FrequencyName" type="0004">CEPT (Europe)</MetaDataItem>
+		<MetaDataItem name="ExclusionDescription">Tripple Click the button</MetaDataItem>
+		<MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/4062/Manual_Heatit%20ZM%20Single%20Relay%2016A_Ver%202020-A_ENG.pdf</MetaDataItem>
+		<MetaDataItem name="ResetDescription">This device allows reset without any involvement of a Z-Wave controller.</MetaDataItem>
+		<ChangeLog>
+			<Entry author="Hans Rune Bue - email@hansrune.net" date="05 Dec 2021" revision="1">Initial version</Entry>
+			<Entry author="Hans Rune Bue - email@hansrune.net" date="06 Dec 2021" revision="2">Multiline help texts revised</Entry>
+		</ChangeLog>
+	</MetaData>
+	<CommandClass id="112">
+		<Value genre="config" index="1" instance="1" label="Load limit" max="16" min="1" size="1" type="byte" units="Ampere" value="16">
+			<Help>Ensures that the device does not draw more current than rated. Immunity for power consumption peaks</Help>
+		</Value>
+		<Value genre="config" index="2" instance="1" label="Power shutdown actions" size="2" min="0" type="short" max="32767" value="20">
+			<Help>
+			Decide how the device should react when the overload/overheating features has turned relay OFF:
+			0 - Disabled and will not retry. User needs to manually turn on afterwards. If temperature overload is on, device will not turn on until device has cooled down
+			>= 1 - After power shut down (param 1) device will try to turn back ON after delay specified here. (Time in minutes)
+			</Help>
+		</Value>
+		<Value genre="config" index="3" instance="1" label="Switch type" size="1" type="list" value="0">
+			<Help>Momentary or toggle switch</Help>
+			<Item label="Momentary" value="0"/>
+			<Item label="Toggle" value="1"/>
+		</Value>
+		<Value genre="config" index="4" instance="1" label="S1/Button operation" size="1" type="list" value="0">
+			<Help>S1 button operation </Help>
+			<Item label="Button turns load on/off and sends Meter report + Relay status" value="0"/>
+			<Item label="Button sends Meter report + Relay status, load can be only controlled wirelessly" value="1"/>
+		</Value>
+		<Value genre="config" index="5" instance="1" label="Scene notifications" size="1" type="list" value="0">
+			<Help>Decides if/what scene controller notifications the device sends to gateway </Help>
+			<Item label="Sends scene controller for S2. S1 disabled" value="0"/>
+			<Item label="Sends scene controller for S1. S2 disabled" value="1"/>
+			<Item label="Sends scene controller for S1 and S2" value="2"/>
+			<Item label="Scene controller deactivated" value="3"/>
+		</Value>
+		<Value genre="config" index="6" instance="1" label="Restore Power Level" size="1" type="list" value="2">
+			<Help>
+			Relay power level after power is restored from power-outage.
+			When device is from factory/factory reset the first state of the device should be OFF
+			</Help>
+			<Item label="Always OFF on restored power" value="0"/>
+			<Item label="Always ON on restored power" value="1"/>
+			<Item label="Restore last state on restored power (Default)" value="2"/>
+		</Value>
+		<Value genre="config" index="7" instance="1" label="Automatic Turn off" size="4" min="0" max="86400" type="int" value="0" units="seconds"> 
+			<Help>
+			0 for auto off disabled (default)
+			1-86400 for auto-off timeout in seconds
+			</Help>
+		</Value>
+		<Value genre="config" index="8" instance="1" label="Automatic Turn on" size="4" min="0" max="86400" type="int" value="0" units="seconds"> 
+			<Help>
+			0 for auto on disabled (default)
+			1-86400 for auto-on timeout in seconds
+			</Help>
+		</Value>
+		<Value genre="config" index="9" instance="1" label="Inverted Output" size="1" type="list" value="0">
+			<Help> Decides if the relay output should be inverted </Help>
+			<Item label="False" value="0"/>
+			<Item label="True" value="1"/>
+		</Value>
+		<Value genre="config" index="10" instance="1" label="Meter report interval" size="2" type="short" min="30" max="32767" value="900" units="seconds"> 
+			<Help>Time interval between consecutive meter reports. Meter reports can also be sent as a result of polling</Help>
+		</Value>
+		<Value genre="config" index="11" instance="1" label="Meter report delta value" size="2" type="short" min="5" max="3600" value="75" units="watts"> 
+			<Help>Meter report delta value</Help>
+		</Value>
+	</CommandClass>
+		<!-- Association Groups -->
+		<CommandClass id="133">
+		<Associations num_groups="5">
+			<Group index="1" label="Lifeline" max_associations="5"/>
+			<Group index="2" label="External Relay Control S1" max_associations="5"/>
+			<Group index="3" label="Control External Start/Stop S2" max_associations="5"/>
+			<Group index="4" label="External Relay Control S2" max_associations="5"/>
+			<Group index="5" label="Control External Start/Stop S2" max_associations="5"/>
+		</Associations>
+	</CommandClass>
+</Product>
diff --git a/config/trane/TZEMT400BB32MAA.xml b/config/trane/TZEMT400BB32MAA.xml
index dbc8f55298..d0711f73af 100644
--- a/config/trane/TZEMT400BB32MAA.xml
+++ b/config/trane/TZEMT400BB32MAA.xml
@@ -1,14 +1,15 @@
-<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="4" 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="Name">Trane TZEMT400BB - 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>
+      <Entry author="Keith Laidlaw - laidlaw1546@gmail.com" date="28 Oct 2020" revision="4">Remove (non-existent) config param id 161 to 199</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Trane Thermostat Model TZEMT400BB32MAA -->
@@ -302,133 +303,6 @@
 	      Default:  10
 	    </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 genre="config" index="172" label="Unknown-172" max="" min="" type="byte" units="">
-      <Help>
-	      0x2c after reset
-	      0xf4 after reset
-	    </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 genre="config" index="184" label="Unknown-184" max="" min="" type="byte" units="">
-      <Help>
-	      0xb8 after reset
-	      0xe4 after reset
-	    </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 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 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 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 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>
diff --git a/config/vision/zp3102.xml b/config/vision/zp3102.xml
index 984102427d..853166748a 100644
--- a/config/vision/zp3102.xml
+++ b/config/vision/zp3102.xml
@@ -1,4 +1,4 @@
-<!-- Vision ZP3102 PIR Motion Sensor --><Product Revision="10" xmlns="https://github.com/OpenZWave/open-zwave">
+<!-- Vision ZP3102 PIR Motion Sensor --><Product Revision="11" 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>
@@ -17,6 +17,7 @@
       <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>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="24 May 2019" revision="10">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/1702/xml</Entry>
+      <Entry author="Tao Gong - gongtao0607@gmail.com" date="12 Nov 2020" revision="11">Add undocumented config 5 to set temperature report change</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>
@@ -58,6 +59,11 @@
     <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>
+    <Value genre="config" index="5" label="Temperature report +/- change" max="2" min="1" size="1" type="list" units="" value="2">
+      <Help>Report temperature update when the temperature changes: (default: +/- 2 Degree)</Help>
+      <Item label="+/- 1 Degree" value="1"/>
+      <Item label="+/- 2 Degree" value="2"/>
+    </Value>
   </CommandClass>
   <!-- COMMAND_CLASS_BASIC -->
   <CommandClass id="32">
diff --git a/config/wenzhou/tz77.xml b/config/wenzhou/tz77.xml
new file mode 100644
index 0000000000..a276f307a4
--- /dev/null
+++ b/config/wenzhou/tz77.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/wenzhou/tz77.png</MetaDataItem>
+    <MetaDataItem name="Name">RGBW Dimmer Switch</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1) Have Z-Wave controller with exclusion mode; 2) Press the 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; 2) Press the on/off button three times within 1.5 seconds to be included to the controller</MetaDataItem>
+    <MetaDataItem id="0302" name="Identifier" type="0311">TZ77</MetaDataItem>
+    <MetaDataItem name="Description">This insert switch module is a transceiver which is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. 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.</MetaDataItem>
+    <MetaDataItem id="0302" name="FrequencyName" type="0311">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="fratsloos" date="02 Feb 2021" revision="1">Created</Entry>
+      <Entry author="fratsloos" date="02 Feb 2021" revision="2">Fixed index of config variables</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- Configuration  -->
+  <CommandClass id="112">
+    <Value genre="config" index="1" label="Indicator light state" max="1" min="0" type="byte" value="1">
+      <Help>Change the state of indicator light. Default status of socket: LED is on as indicator when the load is off.</Help>
+    </Value>
+    <Value genre="config" index="2" label="Memory function" max="1" min="0" type="byte" value="1">
+      <Help>Socket status when powered on. Default with memory: the socket status is same as before when power on</Help>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="1">
+      <Group index="1" max_associations="5" label="Group 1" />
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/wenzhou/tz78.xml b/config/wenzhou/tz78.xml
new file mode 100644
index 0000000000..a2e20e693a
--- /dev/null
+++ b/config/wenzhou/tz78.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/wenzhou/tz78.png</MetaDataItem>
+    <MetaDataItem name="Name">In Wall Single Relay Switch</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Have Z-Wave controller with exclusion mode
+2. Press the 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
+2. Press the on/off button three times within 1.5 seconds to be included to the controller</MetaDataItem>
+    <MetaDataItem id="0005" name="Identifier" type="0003">TZ78</MetaDataItem>
+    <MetaDataItem name="Description">1. This insert switch module is a transceiver which is a Z-Wave enabled device and is fully compatible with any Z-Wave enabled network. 
+2. Each switch 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 on the switch 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 5 second to press and hold on for 1 second until the switch 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="0005" name="FrequencyName" type="0003">CEPT (Europe) / Brazil / China</MetaDataItem>
+    <ChangeLog>
+      <Entry author="magpern" date="12 Apr 2020" revision="1">Created, based on TZ74 and TZ68</Entry>
+      <Entry author="magpern" date="14 Apr 2020" revision="2">Added description, include, exclude, reset info</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+    <CommandClass id="112">
+      <Value type="list" genre="config" instance="1" index="1" label="Night light" min="0" max="1" value="1" size="1">
+        <Help>The LED on the TZ78 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 0.</Help>
+        <Item label="The LED is ON when the load is ON" value="0" />
+        <Item label="The LED is ON when the load is OFF" value="1" />
+      </Value>
+      <Value type="list" genre="config" instance="1" index="2" label="Memory Function" min="0" max="1" value="1" size="1">
+        <Help>switch memory function</Help>
+        <Item label="no switch memory function" value="0" />
+        <Item label="The socket status is same as before when power ON" value="1" />
+      </Value>
+      <Value type="list" genre="config" instance="1" index="3" label="Edge or Pulse mode" min="1" max="3" value="3" size="1">
+        <Help>switch mode</Help>
+        <Item label="Edge Mode" value="1" />
+        <Item label="Pulse Mode" value="2" />
+        <Item label="Edge-toggle Mode" value="3" />
+      </Value>
+    </CommandClass>
+   <!-- Association Groups -->
+   <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="5" />
+  	  <Group index="2" label="On/Off" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/wenzhou/tze96.xml b/config/wenzhou/tze96.xml
new file mode 100644
index 0000000000..debcd8d08a
--- /dev/null
+++ b/config/wenzhou/tze96.xml
@@ -0,0 +1,33 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- TZE96 Plus Z-WAVE Color Touch Weekly Programming Heating Thermostat -->
+  <MetaData>
+    <MetaDataItem name="Name">Color Touch Weekly Programming Heating Thermostat</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.tkbhome.com/Z-WAVE-Color-Touch-Weekly-Programming-Heating-Thermostat_012_200.html</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wenzhou/tze96.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">http://www.tkbhome.com/upimg/file/1124240362332.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Make sure the thermostat in the main interface is in OFF mode.
+2. Have Z-Wave the controller enter inclusion mode.
+3. Press Up button on thermostat 3 times in 1.5 seconds. The (Z) icon will twinkle at a certain interval.
+4. After the twinkle stop the (Z) icon displaying means the product is in the Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Make sure the thermostat in the main interface is in OFF mode.
+2. Have Z-Wave the controller enter exclusion mode.
+3. Press Up button on thermostat 3 times in 1.5 seconds. The (Z) icon will twinkle at a certain interval.
+4. After the twinkle stop the (Z) icon not displaying means the product is not the Z-Wave network.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Turning thermostat to OFF mode, press MENU for 3 seconds then go the last parameter setting page by pressing Next 3 times. Set the Restore parameter.</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0001">TZE96</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Mathieu Cartoixa" date="27 December 2020" revision="1">http://www.tkbhome.com/Z-WAVE-Color-Touch-Weekly-Programming-Heating-Thermostat_012_200.html</Entry>
+      <Entry author="Jean-François Auger" date="2 January 2021" revision="2">fix image metadata element</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- Configuration Command Class  -->
+  <CommandClass id="112">
+    <!-- Memory Function -->
+    <Value genre="config" index="4" label="Memory Function" max="1" min="0" size="1" type="list" value="1">
+      <Help>The Memory Function recovers the operating mode after a power failure.</Help>
+      <Item label="Off" value="0"/>
+      <Item label="On" value="1"/>
+    </Value>
+  </CommandClass>
+</Product>
diff --git a/config/widom/DRY.xml b/config/widom/DRY.xml
index 9875ec345e..40bc092e54 100644
--- a/config/widom/DRY.xml
+++ b/config/widom/DRY.xml
@@ -1,6 +1,7 @@
-<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem id="0900" name="ZWProductPage" type="1214">https://www.widom.it/it/smart-dry-contact-switch/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/widom/DRY.png</MetaDataItem>
     <MetaDataItem name="ProductManual">https://www.widom.it/wp-content/uploads/2019/03/Widom_Dry_Contact_EN.pdf</MetaDataItem>
     <MetaDataItem id="0900" name="Identifier" type="1214">DRY</MetaDataItem>
     <MetaDataItem name="Name">WiDOM Smart Dry Contact</MetaDataItem>
@@ -8,6 +9,7 @@
     <MetaDataItem id="0900" name="FrequencyName" type="1214">CEPT (Europe)</MetaDataItem>
     <ChangeLog>
       <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="12 Oct 2019" revision="1">Initial Metadata</Entry>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="17 Feb 2020" revision="2">Added product image</Entry>
     </ChangeLog>
   </MetaData>
   <!-- wiDom: DRY WiDom Smart Dry Contact -->
diff --git a/config/widom/UMS2.xml b/config/widom/UMS2.xml
new file mode 100644
index 0000000000..36c7f39a19
--- /dev/null
+++ b/config/widom/UMS2.xml
@@ -0,0 +1,128 @@
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem id="0800" name="ProductPage">https://www.widom.it/en/smart-roller-shutter/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/widom/UMS2.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.widom.it/wp-content/uploads/2019/03/Widom_Smart_Roller_Shutter_EN_0.pdf</MetaDataItem>
+    <MetaDataItem id="0800" name="Identifier" type="1214">UMS2</MetaDataItem>
+    <MetaDataItem name="Name">WiDOM Smart Roller Shutter</MetaDataItem>
+    <MetaDataItem name="Description">WiDom Smart Roller Shutter is an "in wall device", for the multilevel control of roller shutter motors.
+        It can accurately control the opening and closing of blinds, curtains, shutters, venetian blinds as requested by the user through local commands or remotely
+        using computers, smartphones, tablets.</MetaDataItem>
+    <MetaDataItem id="0800" name="FrequencyName" type="1214">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="18 Nov 2019" revision="2">Initial Metadata</Entry>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="18 Nov 2019" revision="3">Some fixes comparing with openHab exported file</Entry>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="17 Feb 2020" revision="4">Added product image</Entry>
+    </ChangeLog>
+  </MetaData>
+
+<!-- Configuration  -->
+  <CommandClass id="112">
+     <Value type="byte" genre="config" instance="1" index="1" label="Numbers of clicks to control the loads" size="1" value="3">
+      <Help>Define which sequences of click control the local load. (Default Value: 3)</Help>
+      <Item label="DISABLED" value="0"/>
+      <Item label="ONE_CLICK" value="1"/>
+      <Item label="TWO_CLICKS" value="2"/>
+      <Item label="ONE_CLICK and TWO_CLICKS" value="3"/>
+    </Value>
+    <Value  type="byte" genre="config" instance="1" index="2" label="Favorite level for ON position" max="100" min="50"  units="%" size="1" value="100">
+      <Help>
+        50 to 100: 50-100% opening level (100% correspond to completely open)
+        (Default Value: 100)
+      </Help>
+    </Value>
+    <Value  type="byte" genre="config" instance="1" index="3" label="Favorite level for OFF position" max="50" min="0"  units="%" size="1" value="0">
+      <Help>
+        0 to 49: 0-49% opening level (0 correspond to completely closed)
+        (Default Value: 0)
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="4" label="Value used for devices belonging to Group 2 using UP button" max="100" min="-1" size="1" value="-1">
+      <Help>
+        Value used for devices belonging to Group 2 when UP button receive 1 Click
+        1-99 : Dimming purpose
+        0 : OFF
+        -1 : ON (Default Value)
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="5" label="Value used for devices belonging to Group 2 using DOWN button" max="100" min="-1" size="1" value="0">
+      <Help>
+        Value used for devices belonging to Group 2 when DOWN button receive 1 Click
+        1-99 : Dimming purpose
+        0 : OFF (Default Value)
+        -1 : ON 
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="6" label="Value used for devices belonging to Group 3 using UP button" max="100" min="-1" size="1" value="-1">
+      <Help>
+        Value used for devices belonging to Group 3 when UP button receive 2 Clicks
+        1-99 : Dimming purpose
+        0 : OFF
+        -1 : ON (Default Value)
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="7" label="Value used for devices belonging to Group 3 using DOWN button" max="100" min="-1" size="1" value="0">
+      <Help>
+        Value used for devices belonging to Group 3 when DOWN button receive 2 Clicks
+        1-99 : Dimming purpose
+        0 : OFF (Default Value)
+        -1 : ON
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="8" label="Value used for devices belonging to Group 4 using UP button" max="100" min="-1" size="1" value="-1">
+      <Help>
+        Value used for devices belonging to Group 4 when UP button receive 3 Clicks
+        1-99 : Dimming purpose
+        0 : OFF
+        -1 : ON (Default Value)
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="9" label="Value used for devices belonging to Group 4 using DOWN button" max="100" min="-1" size="1" value="0">
+      <Help>
+        Value used for devices belonging to Group 4 when DOWN button receive 3 Clicks
+        1-99 : Dimming purpose
+        0 : OFF (Default Value)
+        -1 : ON
+      </Help>
+    </Value>
+    <Value  type="list" genre="config" instance="1" index="20" label="Calibration" size="1" value="1">
+      <Help>
+        Defines the status of the calibration procedure. By default, as soon as the device has been included, the 
+        calibration starts in automatic mode. At the end of the calibration, this parameter is set to 1. 
+        Afterwards the calibration can be done again by setting this parameter to 0 (AUTO) or 2 (MANUAL) and clicking 
+        on any external button. If the calibration is set in AUTO mode, it will be completed automatically.
+        If the calibration is set in MANUAL mode, a click on any external button is necessary to carry on the next step. 
+        During the calibration, the LED indicator blinks repeatedly in BLUE.
+        (Default Value: 0)
+      </Help>
+      <Item label="TO_BE_DONE_AUTO" value="0"/>
+      <Item label="DONE" value="1"/>
+      <Item label="TO_BE_DONE_MANUAL" value="2"/>
+    </Value>
+    <Value type="short" genre="config" instance="1" index="21" label="Motor idle state definition" max="3000" min="0" size="2" value="1000">
+      <Help>
+        Defines the level of power consumption under which the motor is considered steady (stationary)
+        0 to 3000 : Expressed in hundredths of Watt (ex. 3000=30 Watt)
+        (Default Value: 1000)
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="22" label="Limit switch recognition" max="127" min="0" size="1" value="30">
+      <Help>
+        The motor has reached the limit switch when its power consumption is lower than PLIMIT (the power defined in parameter No. 21) for an amount of time defined by this parameter. 
+        1 to 127 : Expressed in hundredths of Watt (ex. 3000=30 Watt)
+        0 : Limit Switch ignored
+        (Default Value: 30)
+      </Help>
+    </Value>
+</CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="1 Click" max_associations="8"/>
+      <Group index="3" label="2 Clicks" max_associations="8"/>
+      <Group index="4" label="2 Clicks" max_associations="8"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/widom/WDS2.xml b/config/widom/WDS2.xml
new file mode 100644
index 0000000000..81ff81d064
--- /dev/null
+++ b/config/widom/WDS2.xml
@@ -0,0 +1,189 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem id="0B00" name="ProductPage" type="1214">https://www.widom.it/it/smart-double-switch/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/widom/WDS2.png</MetaDataItem>
+    <MetaDataItem id="0B00" name="Identifier" type="1214">WDS2</MetaDataItem>
+    <MetaDataItem name="Description">Widom Smart Double Switch is the new ON/OFF smallest control device in the world designed to independently control two separate loads</MetaDataItem>
+    <MetaDataItem id="0B00" name="FrequencyName" type="1214">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.widom.it/wp-content/uploads/2019/03/Widom_Smart_Double_Switch_EN.pdf</MetaDataItem>
+    <MetaDataItem name="Name">WiDom Smart Double switch</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="15 Nov 2019" revision="1">Initial Metadata</Entry>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="15 Nov 2019" revision="2">Some fixes comparing with openHab exported file</Entry>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="17 Feb 2020" revision="3">Added product image</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration -->
+  <CommandClass id="112">
+     <Value type="byte" genre="config" instance="1" index="1" label="Numbers of clicks to control the loads" max="7" min="0" size="1" value="7">
+      <Help>
+        Define which sequences of clicks control the load connected to both Channel 1 and Channel 2, if parameter No. 2 is set to its default value.
+        Otherwise parameter No.1 sets the clicks sequence only for Channel 1 and parameter No. 2 sets the clicks sequence for Channel 2.
+        0 - Local Control disabled
+        1 - 1 click controls the local load
+        2 - 2 clicks control the local load
+        4 - 3 clicks control the local load
+        7 - The load connected to the Channel 1 can be controlled using 1 click, 2 clicks or 3 clicks
+        Default value: 7
+        Other options:
+        To control the load with 1 click and 2 clicks -> Parameter value must be 1 + 2 =3
+        To control the load with 1 click and 3 clicks -> Parameter value must be 1 + 4 =5
+        To control the load with 2 clicks and 3 clicks -> Parameter value must be 2 + 4 =6
+      </Help>
+    </Value>
+     <Value type="byte" genre="config" instance="1" index="2" label=" Numbers of clicks to control Channel 2 load" max="8" min="0" size="1" value="8">
+      <Help>
+        Defines which sequences of click control the load connected to Channel 2
+        0 - Local Control disabled
+        1 - 1 click controls the local load
+        2 - 2 clicks control the local load
+        4 - 3 clicks control the local load
+        8 - The load connected to the Channel 2 will be controlled with the same number of clicks configured for Channel 1 load.
+        Default value: 8
+        Other options:
+        To control the load with 1 click and 2 clicks -> Parameter value must be 1 + 2 =3
+        To control the load with 1 click and 3 clicks -> Parameter value must be 1 + 4 =5
+        To control the load with 2 clicks and 3 clicks -> Parameter value must be 2 + 4 =6
+        To control the load with 1 click, 2 clicks and 3 clicks -> Parameter value must be 1 + 2 + 4 =7
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="4" label="Value used for devices belonging to Group 2" max="100" min="-1" size="1" value="100">
+      <Help>
+        Value used for devices belonging to Group 2 when external switch I1 receives 1 Click
+        1-99 : Dimming purpose
+        0 : OFF
+        -1 : ON
+        100 : (Default Value) The same value of Channel 1 load status
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="5" label="Value used for devices belonging to Group 5" max="100" min="-1" size="1" value="100">
+      <Help>
+        Value used for devices belonging to Group 5 when external switch I2 receives 1 Click
+        1-99 : Dimming purpose
+        0 : OFF
+        -1 : ON
+        100 : (Default Value) The same value of Channel 2 load status
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="6" label="Value used for devices belonging to Group 3" max="100" min="-1" size="1" value="100">
+      <Help>
+        Value used for devices belonging to Group 3 when external switch I1 receives 2 Clicks
+        1-99 : Dimming purpose
+        0 : OFF
+        -1 : ON
+        100 : (Default Value) The same value of Channel 1 load status
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="7" label="Value used for devices belonging to Group 6" max="100" min="-1" size="1" value="100">
+      <Help>Value used for devices belonging to Group 6 when external switch I2 receives 2 Clicks
+        1-99 : Dimming purpose
+        0 : OFF
+        -1 : ON
+        100 : (Default Value) The same value of Channel 2 load status
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="8" label="Value used for devices belonging to Group 4" max="100" min="-1" size="1" value="100">
+      <Help>
+        Value used for devices belonging to Group 4 when external switch I1 receives 3 Clicks
+        1-99 : Dimming purpose
+        0 : OFF
+        -1 : ON
+        100 : (Default Value) The same value of Channel 1 load status
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="9" label="Value used for devices belonging to Group 7" max="100" min="-1" size="1" value="100">
+      <Help>
+        Value used for devices belonging to Group 7 when external switch I2 receives 3 Clicks
+        1-99 : Dimming purpose
+        0 : OFF
+        -1 : ON
+        100 : (Default Value) The same value of Channel 2 load status
+      </Help>
+    </Value>
+    <Value type="short" genre="config" instance="1" index="10" label=" Timer to switch OFF the Channel 1" max="32000" min="0" size="2" units="seconds" value="0">
+      <Help>
+        Defines the time after which the Channel 1 load 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" max="32000" min="0" size="2" units="seconds" value="0">
+      <Help>
+        Defines the time after which the Channel 2 load is switched OFF.
+        0 (Default Value) Timer disabled.
+        From 1 to 32000 (seconds) After this time the relay of the Channel 2 is OFF.
+      </Help>
+    </Value>
+    <Value  type="short" genre="config" instance="1" index="12" label="Timer to switch ON the Channel 1" max="32000" min="0" size="2" units="seconds" value="0">
+      <Help>
+        Defines the time after which the Channel 1 load 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" max="32000" min="0" size="2" units="seconds" value="0">
+      <Help>
+        Defines the time after which the Channel 2 load is switched ON.
+        0 (Default Value) Timer disabled.
+        From 1 to 32000 (seconds) After this time the relay of the Channel 2 is ON.
+      </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="40" label="Local Scenario" size="1" value="1">
+      <Help>
+        Defines the behavior of the device Channels when the I1/I2 external switches receive a valid number of clicks (see Parameters No. 1 and No. 2).
+        Note: When to the parameter 40 is given a value different from zero, the associated devices will not be controlled. 
+      </Help>
+      <Item label="INDIPENDENT_CHANNELS
+" value="1"/>
+      <Item label="NEVER_BOTH_ON" value="2"/>
+      <Item label="SEQUENCING_RELAY" value="3"/>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="60" label="Start-up status" size="1" value="4">
+      <Help>Defines the status of the device following a restart (Default Value: 4).</Help>
+      <Item label="OFF_OFF" value="0"/>
+      <Item label="OFF_ON" value="1"/>
+      <Item label="ON_OFF" value="2"/>
+      <Item label="ON_ON
+" value="3"/>
+      <Item label="PREVIOUS STATUS
+" value="4"/>
+    </Value>
+    <Value  type="list" genre="config" instance="1" index="62" label="Type of external switch" size="1" value="1">
+      <Help>
+        Defines the type of external switch connected both to input 1 and input 2, if parameter No. 63 is set in its default value.
+        Otherwise parameter No. 62 defines only the external switch connected to the input 1 and parameter No. 63 the switch connected to the input 2.
+        (Default Value: 1)
+      </Help>
+      <Item label="IGNORE" value="0"/>
+      <Item label="BUTTON
+" value="1"/>
+      <Item label="SWITCH" value="2"/>
+    </Value>
+    <Value  type="list" genre="config" instance="1" index="63" label="Type of external switch" size="1" value="3">
+      <Help>
+        Defines the type of external switch connected both to input 1 and input 2, if parameter No. 63 is set in its default value.
+        Otherwise parameter No. 62 defines only the external switch connected to the input 1 and parameter No. 63 the switch connected to the input 2.
+        (Default Value: 1)
+      </Help>
+      <Item label="IGNORE" value="0"/>
+      <Item label="BUTTON
+" value="1"/>
+      <Item label="SWITCH" value="2"/>
+      <Item label="EQUAL TO SWITCH 1
+" value="3"/>
+    </Value>
+  </CommandClass>
+  <!-- -->
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="7">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="1 Click button S1" max_associations="8"/>
+      <Group index="3" label="2 Clicks button S1" max_associations="8"/>
+      <Group index="4" label="3 Clicks button S1" max_associations="8"/>
+      <Group index="5" label="1 Click button S2" max_associations="8"/>
+      <Group index="6" label="2 Clicks button S2" max_associations="8"/>
+      <Group index="7" label="3 Clicks button S2" max_associations="8"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/widom/WSP.xml b/config/widom/WSP.xml
new file mode 100644
index 0000000000..1bfb684f47
--- /dev/null
+++ b/config/widom/WSP.xml
@@ -0,0 +1,118 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem id="0700" name="ProductPage" type="1214">https://www.widom.it/it/smart-plug/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/widom/WSP.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.widom.it/wp-content/uploads/2019/08/Widom-Smart-Plug_EN_20190404_0.pdf</MetaDataItem>
+    <MetaDataItem id="0700" name="Identifier" type="1214">WSP</MetaDataItem>
+    <MetaDataItem name="Name">WiDOM Smart Dry Contact</MetaDataItem>
+    <MetaDataItem name="Description">WiDom Smart Plug is able to detect overvoltage and/or overcurrent events and indicate them through a 
+        multicolor LED. Furthermore, it protects appliances from eventual overload. A very innovative design, which 
+        integrates a complex system that allows a precise energy consumption monitoring. The integration of these 
+        features in its very small size product, make it unique on the market.</MetaDataItem>
+    <MetaDataItem id="0700" name="FrequencyName" type="1214">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="15 Nov 2019" revision="1">Initial Metadata</Entry>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="15 Nov 2019" revision="2">Initial Metadata</Entry>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="17 Feb 2020" revision="3">Added product image</Entry>
+    </ChangeLog>
+  </MetaData>
+
+<!-- Configuration  -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" instance="1" index="1" label="Local load control" size="1" value="3">
+      <Help>Defines which sequences of click control the local load</Help>
+      <Item label="ONE_CLICK" value="1"/>
+      <Item label="TWO_CLICKS" value="2"/>
+      <Item label="ONE_CLICK or TWO_CLICKS" value="3"/>
+    </Value>
+    <Value  type="byte" genre="config" instance="1" index="2" label="Level used to control the devices associated to group 4" max="100" min="-1" size="1" value="100">
+      <Help>
+        Defines how to control the devices associated to 1 click event
+        1-99 : The associated devices (dimmer, roller shutters) are set to the indicated level
+        0 : OFF
+        -1 : ON
+        100 : (Default Value) If the relay is ON/OFF, the associated devices are ON/OFF
+      </Help>
+    </Value>
+    <Value  type="byte" genre="config" instance="1" index="3" label="Level used to control the devices associated to group 5" max="100" min="-1" size="1" value="100">
+      <Help>
+        Defines how to control the devices associated to 2 clicks event 
+        1-99 : The associated devices (dimmer, roller shutters) are set to the indicated level
+        0 : OFF
+        -1 : ON
+        100 : (Default Value) If the relay is ON/OFF, the associated devices are ON/OFF 
+      </Help>
+    </Value>
+    <Value  type="short" genre="config" instance="1" index="4" label="Overvoltage level" max="260" min="110" size="2" value="253">
+      <Help>
+        Defines the voltage level (in Volts) beyond which an overvoltage event is identified and the overvoltage timer is activated.
+        The timer is reset when the event ceases, i.e. when the voltage returns below the overvoltage level.
+        As soon as an overvoltage event occurs, the LED starts a BLUE blinking.
+        If the overvoltage event ceases before the overvoltage timer expires, the blue blinking is stopped,
+        otherwise the alarm is generated and the blinking reset is established by parameter 6.
+        (Default value: 253)
+      </Help>
+    </Value>
+    <Value type="short" genre="config" instance="1" index="5" label="Overvoltage Timer" max="36000" min="1" units="seconds" size="2" value="5">
+      <Help>
+        Define the time (seconds) in which the voltage must persist above the overvoltage level so that an alarm is generated.
+        1 - 36000: Overvoltage time interval (in seconds) after witch an alarm is generated
+        (Default Value: 5)
+      </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="6" label="Overvoltage Alarm Reset" size="1" value="0">
+      <Help>Define how to reset the overvoltage alarm and breaks off the blue blinking.</Help>
+      <Item label="MANUAL" value="0"/>
+      <Item label="OVER_VOLTAGE_END" value="1"/>
+    </Value>
+    <Value  type="byte" genre="config"  instance="1" index="7" label="Level used to control the devices associated to group 3" max="99" min="-1" size="1" value="0">
+      <Help>
+        Define how to control the devices associated to the overvoltage alarm 
+        1-99 : The associated devices (dimmer, roller shutters) are set to the indicated level
+        0 : OFF  (Default Value)
+        -1 : ON
+      </Help>
+    </Value>
+    <Value  type="byte" genre="config" instance="1" index="8" label="Overcurrent level" max="12" min="1" units="Amps" size="1" value="12">
+      <Help>
+         Defines the current level (in Amps) beyond which an overcurrent event is identified and the overcurrent timer is activated.
+         The timer is reset when the event ceases, i.e. when the current returns below the overcurrent level.
+         As soon as an overcurrent event occurs, the LED starts a GREEN blinking.
+         If the overcurrent event ceases before the overcurrent timer expires, the GREEN
+         1 - 12 : Defines the overcurrent level (in Amps)
+        (Default Value: 12 )
+      </Help>
+    </Value>
+    <Value type="short" genre="config" instance="1" index="9" label="Overcurrent Timer" max="36000" min="1" units="seconds" size="2" value="10">
+      <Help>
+        Define the time (seconds) in which the current must persist above the overcurrent level so that an alarm is generated and the relay is opened.
+        1 - 36000: Overcurrent time interval (in seconds) after witch an alarm is generated
+        (Default Value: 10)
+      </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="10" label=" Overcurrent Alarm Reset" size="1" value="1">
+      <Help>Define how to reset the over-current alarm and breaks off the red blinking.</Help>
+      <Item label="MANUAL" value="0"/>
+      <Item label="OVER_CURRENT_END" value="1"/>
+    </Value>
+    <Value  type="byte" genre="config" instance="1" index="11" label="Level used to control the devices associated to group 2" max="99" min="-1" size="1" value="0">
+      <Help>
+        Define how to control the devices associated to the overcurrent alarm 
+        1-99 : The associated devices (dimmer, roller shutters) are set to the indicated level
+        0 : OFF  (Default Value)
+        -1 : ON
+      </Help>
+    </Value>
+</CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="5">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="Over Current" max_associations="8"/>
+      <Group index="3" label="Overvoltage" max_associations="8"/>
+      <Group index="4" label="OnOFF 1 Click" max_associations="8"/>
+      <Group index="5" label="OnOFF 2 Clicks" max_associations="8"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/widom/WTED.xml b/config/widom/WTED.xml
new file mode 100644
index 0000000000..f376f7539d
--- /dev/null
+++ b/config/widom/WTED.xml
@@ -0,0 +1,86 @@
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem id="0A00" name="ProductPage" >https://www.widom.it/it/smart-dimmer/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/widom/WTED.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://www.widom.it/wp-content/uploads/2019/01/Widom_Smart_Dimmer_EN_1.pdf</MetaDataItem>
+    <MetaDataItem id="0A00" name="Identifier" type="1214">WTED</MetaDataItem>
+    <MetaDataItem name="Name">WiDOM Smart TE Drimmer</MetaDataItem>
+    <MetaDataItem name="Description">WiDom Smart TE Dimmer is an "in-wall device" that controls the luminosity level and/or fan speed.
+        A universal device that controls the light intensity of all types of dimmable lights, including LED lamps and energy-saving lamps.
+        The Smart TE Dimmer includes the ON / OFF control option of non-dimmable loads</MetaDataItem>
+    <MetaDataItem id="0A00" name="FrequencyName" type="1214">CEPT (Europe)</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="18 Nov 2019" revision="1">Initial Metadata</Entry>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="18 Nov 2019" revision="3">Some fixes comparing with openHab exported file</Entry>
+      <Entry author="Giuseppe Tiddia - giuseppe.tiddia@widom.it" date="17 Feb 2020" revision="4">Added product image</Entry>
+    </ChangeLog>
+  </MetaData>
+
+<!-- Configuration  -->
+  <CommandClass id="112">
+    <Value type="byte" genre="config" instance="1" index="1" label="Start-up Status" max="99" min="-1" size="1" value="-1">
+      <Help>
+        Defines the status of the device, in term of light level, following a restart.
+        0-99: 0-99% dimming level after device restart  
+        -1: (Defaukt Value) At device’s restart it restores the same dimming level at the moment of power failure.
+      </Help>
+    </Value>
+    <Value  type="byte" genre="config" instance="1" index="2" label="Fade On Time" max="127" min="-126" size="1" value="1">
+      <Help>
+        Defines the time spent to switch the load from complete OFF to complete ON.
+        1 to 127 : Expresses in seconds the time spent to switch the load from complete OFF to complete ON
+        -1 to -126: Expresses in minutes the time spent to switch the load from complete OFF to complete ON
+        (Default Value: 1)
+      </Help>
+    </Value>
+    <Value  type="byte" genre="config" instance="1" index="3" label="Fade Off Time" max="127" min="-126" size="1" value="1">
+      <Help>
+        Defines the time spent to switch the load from complete ON to complete OFF.
+        1 to 127 : Expresses in seconds the time spent to switch the load from complete ON to complete OFF.
+        -1 to -126: Expresses in minutes the time spent to switch the load from complete ON to complete OFF.
+        (Default Value: 1)
+      </Help>
+    </Value>
+    <Value  type="byte" genre="config" instance="1" index="4" label="Local Dimming Time" max="60" min="0" size="1" value="5">
+      <Help>
+        Defines the time spent to switch the controlled load when the external switch is hold down.
+        0: Applies the timing spent to switch the controlled load to Fade On and Fade Off as defined in parameters 2 and 3.
+        1-60: Expresses in seconds the time spent to switch the load.
+        (Default value: 5)
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="10" label="Minimum Light Level" max="98" min="1" units="%" size="1" value="1">
+      <Help>
+        Defines the light level that will correspond to the 1% of dimming.
+        1 to 98: Defines which light level will correspond to 1% in the range between 1 and 98%
+        (Default Value: 1)
+      </Help>
+    </Value>
+    <Value type="byte" genre="config" instance="1" index="11" label=" Maximum Light Level" max="99" min="2" units="%" size="1" value="99">
+      <Help>
+        Defines the light level that will correspond to the 99% of dimming.
+        2 to 99: Defines which light level will correspond to 99% in the range between 2 and 99%
+        (Default Value: 99)
+      </Help>
+    </Value>
+    <Value type="list" genre="config" instance="1" index="20" label="Dimmable Load" size="1" value="0">
+      <Help>Define how to reset the overvoltage alarm and breaks off the blue blinking. (Defaukt Value: 1)</Help>
+      <Item label="NON DIMMABLE LOAD
+" value="0"/>
+      <Item label="DIMMABLE LOAD" value="1"/>
+    </Value>
+    <Value  type="list" genre="config" instance="1" index="62" label="Type of external switch" max="2" min="0" size="1" value="1">
+      <Help>Defines the type of external switch connected to the device (Default Value: 1 )</Help>
+      <Item label="Ignore" value="0"/>
+      <Item label="Button" value="1"/>
+      <Item label="Bistable switch" value="2"/>
+    </Value>
+</CommandClass>
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="Lifeline" max_associations="8"/>
+      <Group index="2" label="Dimming" max_associations="8"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/wink/wnk-mot1.xml b/config/wink/wnk-mot1.xml
new file mode 100644
index 0000000000..2fe6e04d38
--- /dev/null
+++ b/config/wink/wnk-mot1.xml
@@ -0,0 +1,84 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">Motion Sensor</MetaDataItem>
+    <MetaDataItem name="Description">Battery powered Z-Wave Plus motion sensor</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/017F:0001:0101</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.wink.com/products/wink-motion-sensor/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.wink.com/help/products/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wink/wnk-mot1.png</MetaDataItem>
+    <MetaDataItem name="ProductManual"><![CDATA[https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/2482/wink-motion-manual.pdf]]></MetaDataItem>
+    <MetaDataItem name="WakeupDescription"><!-- Short description on how to wake up the device if its battery powered --></MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Bring the sensor within range of your controller.
+    2. If the devices is new, remove the pull tab.  Otherwise remove, then replace the battery.
+    The LED will flash 5 times to indicate inclusion.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Remove the sensor cover by twisting counter clockwise.
+    2. Press the connect button (next to the battery) 3 times.
+    The LED will flash 5 times to indicate exclustion.
+    </MetaDataItem>
+    <MetaDataItem name="ResetDescription">
+    1. Remove the sensor cover by twisting counter clockwise.
+    2. Hold the connect button (next to the battery) for 10 seconds until the LED blinks.
+    </MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0101">https://products.z-wavealliance.org/products/2482</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0101">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0101">WNK-MOT1</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Jeremy M. Johnson" date="21 June 202020" revision="1">Initial information based on Z-Wave alliance database information</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+
+    <Value genre="config" index="1" label="Sensitivity" max="255" min="8" type="byte" units="" value="255">
+      <Help>Motion sensor sensitivity Level. Valid values 8 to 255.</Help>
+    </Value>
+    <Value genre="config" index="2" label="Motion Cleared Time Delay" max="600" min="5" type="int" units="seconds" value="255">
+      <Help>Valid values 5 to 600 seconds (10 mins).</Help>
+    </Value>
+    <Value genre="config" index="3" label="Basic Set Level" max="255" min="0" type="byte" units="" value="255">
+      <Help>0: Turn Off
+      1 to 99: Dim Level
+      255: On
+      </Help>
+    </Value>
+    <Value genre="config" index="4" label="Enable/Disable Motion Detection" max="1" min="0" type="bool" units="" value="1">
+      <Help>On = Enable Motion Detection.</Help>
+    </Value>
+    <Value genre="config" index="5" label="Group 2 Ambient Light Threshold" max="1000" min="5" type="int" units="lux" value="1000">
+      <Help>Ambient Light Threshold for the Group 2 Association trigger.  Vaid values 5 to 1000 lux.</Help>
+    </Value>
+    <Value genre="config" index="6" label="Retrigger Interval" max="8" min="1" type="byte" units="seconds" value="8">
+      <Help>Prevent retriggering within the specified time period.  Valid values 1 to 8 seconds.</Help>
+    </Value>
+    <Value genre="config" index="7" label="Light Sensing Interval" max="3600" min="60" type="byte" units="seconds" value="3600">
+      <Help>Valid values 60 to 3600 seconds.</Help>
+    </Value>
+    <Value genre="config" index="8" label="Enable/Disable Group 2 Ambient Light Threshold" max="1" min="0" type="bool" units="" value="0">
+      <Help>On = Enable the Ambient Light Threshold when using the Group 2 Association.</Help>
+    </Value>
+    <Value genre="config" index="9" label="Ambient Light Sensitivity Level" max="255" min="0" type="byte" units="lux" value="255">
+      <Help>Valid values 0 to 255 lux.</Help>
+    </Value>
+    <Value genre="config" index="10" label="LED Indicator" max="1" min="0" type="bool" units="" value="1">
+      <Help>On = Enable the LED Indicator.</Help>
+    </Value>
+
+  </CommandClass>
+  <!-- A Example of Setting a Compatibility Flag on a CommandClass - In this case the Device Doesn't support Get for Alarm Class -->
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+  <!-- The Association Group Information -->
+  <CommandClass id="133">
+    <Associations num_groups="4">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="BASIC_SET" max_associations="5"/>
+      <Group index="3" label="NOTIFICATION_REPORT" max_associations="5"/>
+      <Group index="4" label="SENSOR_BINARY_REPORT" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/wink/wnk-sir1p.xml b/config/wink/wnk-sir1p.xml
new file mode 100644
index 0000000000..b5b7e323e1
--- /dev/null
+++ b/config/wink/wnk-sir1p.xml
@@ -0,0 +1,89 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <!-- Please refer to https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices for instructions -->
+  <MetaData>
+    <MetaDataItem name="Name">Siren</MetaDataItem>
+    <MetaDataItem name="Description">Battery-powered alarm, chime, and flash</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/017f:0001:0200</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.wink.com/products/wink-siren-and-chime/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.wink.com/help/products/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/wink/wnk-sir1p.png</MetaDataItem>
+	<MetaDataItem name="ProductManual"><![CDATA[https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/2482/wink-motion-manual.pdf]]></MetaDataItem>
+    <MetaDataItem name="WakeupDescription"><!-- Short description on how to wake up the device if its battery powered --></MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. For proper inclusion, bring the Motion Detector within range of your Controller.
+	2. Pull the tab on the side of the sensor to power on, or remove then re-install the batteries.
+	The LED indicator will flash five times indicating inclusion.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Remove the sensor cover by twisting it counterclockwise and be sure it is powered on.
+	2. Press the Connect Button on the bottom of the device next to the battery quickly 3 times in a row. 
+	The LED Indicator will flash five times indicating exclusion/disconnection.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">1. Remove the sensor cover by twisting it counterclockwise and be sure it is powered on.
+	2. Hold the Connect Button next to the battery for 10 seconds until the LED indicator blinks once, then release the button.
+	Only do this if the controller is disconnected or otherwise unreachable!</MetaDataItem>
+    <MetaDataItem id="0001" name="ZWProductPage" type="0200">https://products.z-wavealliance.org/products/2484</MetaDataItem>
+    <MetaDataItem id="0001" name="FrequencyName" type="0200">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="0001" name="Identifier" type="0200">WNK-SIR1P</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Dejan Zelic" date="9 July 2020" revision="1">Initial information based on Z-Wave alliance database information</Entry>
+    </ChangeLog>
+  </MetaData>
+  <!-- Configuration Command Class - All Configuration Parameters should be entered into the section below -->
+  <CommandClass id="112">
+
+    <Value genre="config" index="1" label="Primary Notification Volume Level" max="3" min="1" size="1" type="list" value="2">
+      <Help>Primary Notification Volume Level</Help>
+      <Item label="Low Volume" value="1"/>
+      <Item label="Medium Volume" value="2"/>
+      <Item label="High Volume" value="3"/>
+    </Value>
+
+	<Value genre="config" index="2" label="Primary Notification Length" max="3" min="-1" size="1" type="list" value="2">
+      <Help>Primary Notification Length</Help>
+      <Item label="Plays until battery dies" value="1"/>
+      <Item label="30 Sec" value="2"/>
+      <Item label="1 Min" value="3"/>
+      <Item label="5 Min" value="4"/>
+    </Value>
+
+	<Value genre="config" index="3" label="Secondary Notification Length" max="127" min="-128" type="byte" units="" value="1">
+      <Help>-128 to -2 Chime Duration (in Minutes; -128=128 min, -2=254 min)
+	  -1 Chime Will Not Play
+	  0 Does Not Stop
+      1 to 127 Chime Duration (in Minutes)
+      </Help>
+    </Value>
+
+	<Value genre="config" index="4" label="Secondary Notification Volume Level" max="3" min="1" size="1" type="list" value="2">
+      <Help>Secondary Notification Volume Level</Help>
+      <Item label="Low Volume" value="1"/>
+      <Item label="Medium Volume" value="2"/>
+      <Item label="High Volume" value="3"/>
+    </Value>
+
+	<Value genre="config" index="5" label="Primary Notification Sound" max="10" min="1" type="byte" units="" value="10">
+      <Help>1 to 10 Tone Index Number</Help>
+    </Value>
+
+	<Value genre="config" index="6" label="Secondary Notification Sound" max="10" min="1" type="byte" units="" value="10">
+      <Help>1 to 10 Tone Index Number</Help>
+    </Value>
+
+    <Value genre="config" index="7" label="Toggle Secondary Chime" max="2" min="1" size="1" type="list" value="1">
+      <Help>Short Help Description</Help>
+      <Item label="Primary Notification Will Play" value="1"/>
+      <Item label="Secondary Notification Will Play" value="2"/>
+    </Value>
+  </CommandClass>
+
+  <CommandClass id="113">
+    <Compatibility>
+      <GetSupported>false</GetSupported>
+    </Compatibility>
+  </CommandClass>
+
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Binary Switch Report" max_associations="5"/>
+      <Group index="3" label="Notification Report" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
\ No newline at end of file
diff --git a/config/zipato/ne-nas-ab02z.xml b/config/zipato/ne-nas-ab02z.xml
new file mode 100644
index 0000000000..e94b3d9b9d
--- /dev/null
+++ b/config/zipato/ne-nas-ab02z.xml
@@ -0,0 +1,84 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Indoor Siren</MetaDataItem>
+    <MetaDataItem name="Description">The indoor siren is an intelligent device that can be controlled remotely by the Z-wave network. The indoor siren is battery powered, small and easily installed. When the siren is triggered, an LED light will flash, and there will be an alarm sound at the same time. The sound level is at least 115 dB.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0131:1083:0004</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.zipato.com/product/indoor-siren</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zipato/ne-nas-ab01z.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3046/ne-nas-ab02z.eu%20-%20Zipato%20INDOOR%20SIREN-waveEU_UserManual_v1.3.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Quickly triple click the code button, LED light will flash red for 5 times.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Quickly triple click the code button, LED light will flash red for 5 times.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Make sure the sensor is connected to power source, Press the code button for 10 seconds, LED will flash blue for 3 seconds</MetaDataItem>
+    <MetaDataItem id="1083" name="ZWProductPage" type="0003">https://products.z-wavealliance.org/products/3046</MetaDataItem>
+    <MetaDataItem id="1083" name="FrequencyName" type="0003">CEPT (Europe)</MetaDataItem>
+    <MetaDataItem id="1083" name="Identifier" type="0003">ne-nas-ab02z.eu</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Marcus Birkin - marcus.birkin@gmail.com" date="18 January 2020" revision="1">Information obtained from manual, z-wavealliance, re-brand documentation (https://products.z-wavealliance.org/products/3069), and trial &amp; error</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- COMMAND_CLASS_CONFIGURATION -->
+  <CommandClass id="112">
+
+    <Value genre="config" index="7" label="Siren On Mode" max="2" min="1" size="1" type="list" units="" value="1">
+      <Help>This parameter defines the default sound index, volume and the duration time for siren on</Help>
+      <Item label="Alarm Mode" value="1"/>
+      <Item label="Doorbell Mode" value="2"/>
+    </Value>
+
+    <Value genre="config" index="1" label="Alarm volume" max="3" min="1" size="1" type="list" value="2">
+      <Help>This parameter defines the output volume when siren plays alarm.</Help>
+      <Item label="Low" value="1"/>
+      <Item label="Middle" value="2"/>
+      <Item label="High" value="3"/>
+    </Value>
+
+    <Value genre="config" index="5" label="Alarm sound index" max="10" min="1" type="byte" units="" value="10">
+      <Help>This parameter defines the alarm sound index so siren can play different sound when an alarm occurs.</Help>
+    </Value>
+
+    <Value genre="config" index="2" label="Alarm duration time" max="127" min="0" size="1" type="list" value="2">
+      <Help>This Parameter defines the alarm duration time when siren receives an alarm sensor notification report or an alarm command from controller.</Help>
+      <Item label="Siren is not on" value="0"/>      
+      <Item label="30 Seconds" value="1"/>
+      <Item label="1 Minute" value="2"/>
+      <Item label="5 Minutes" value="3"/>
+      <Item label="Siren is always on" value="127"/>
+    </Value>
+
+    <Value genre="config" index="8" label="Alarm LED" max="1" min="0" size="1" type="list" value="1">
+      <Help>This parameter defines the default led enable status when siren is on for alarm</Help>
+      <Item label="Disable" value="0" />
+      <Item label="Enable" value="1" />
+    </Value>
+
+    <Value genre="config" index="4" label="Doorbell volume" max="3" min="1" size="1" type="list" value="2">
+      <Help>This parameter defines the output volume when siren plays doorbell music</Help>
+      <Item label="Low" value="1"/>
+      <Item label="Middle" value="2"/>
+      <Item label="High" value="3"/>
+    </Value>
+
+    <Value genre="config" index="6" label="Doorbell sound index" max="10" min="1" type="byte" units="" value="9">
+      <Help>This parameter defines the doorbell music index so siren can play different music when an alarm occurs. </Help>
+    </Value>
+
+    <Value genre="config" index="3" label="Doorbell duration time" max="127" min="0" type="byte" units="" value="1">
+      <Help>This parameter defines the doorbell music duration time when siren receives a door/window sensor notification report or an alarm command (BASIC_SET=0x02) from a controller</Help>
+    </Value>
+
+    <Value genre="config" index="9" label="Doorbell LED" max="1" min="0" size="1" type="list" value="0">
+      <Help>This parameter defines the default led enable status when siren is on for doorbell</Help>
+      <Item label="Disable" value="0" />
+      <Item label="Enable" value="1" />
+    </Value>
+  </CommandClass>
+
+  <!-- COMMAND_CLASS_ASSOCIATION -->
+  <CommandClass id="133">
+    <Associations num_groups="2">
+      <Group index="1" label="LifeLine" max_associations="5"/>
+      <Group index="2" label="Siren status" max_associations="5"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/zooz/zen15.xml b/config/zooz/zen15.xml
index 25a0d15a88..f4cf4277a4 100644
--- a/config/zooz/zen15.xml
+++ b/config/zooz/zen15.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027A:000D:0101</MetaDataItem>
     <MetaDataItem name="ProductPic">images/zooz/zen15.png</MetaDataItem>
@@ -67,6 +67,7 @@ Press and HOLD the Z-Wave button for at least 3 seconds
 4. A new secure on / off device will be recognized by your Z-Wave controller</MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="02 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/2517/xml</Entry>
+      <Entry author="Vladimir Vukicevic - vladimir@pobox.com" date="22 Nov 2020" revision="3">Fix param 152 size.</Entry>
     </ChangeLog>
   </MetaData>
   <!-- Zooz ZEN15 Power Switch 
@@ -98,7 +99,7 @@ Press and HOLD the Z-Wave button for at least 3 seconds
     <Value genre="config" index="151" label="Power Report Value Threshold" max="65535" min="1" size="2" type="short" units="watts" value="0">
       <Help>Number of Watts the appliance needs to go over for the change to be reported</Help>
     </Value>
-    <Value genre="config" index="152" label="Power Report Percentage Threshold" max="255" min="1" size="4" type="int" units="%" value="10">
+    <Value genre="config" index="152" label="Power Report Percentage Threshold" max="255" min="1" size="1" type="byte" units="%" value="10">
       <Help>Percentage in power usage change the appliance needs to go over for the event to be reported (Default 10)</Help>
     </Value>
     <Value genre="config" index="171" label="Power Report Frequency" max="2678400" min="5" size="4" type="int" value="0">
diff --git a/config/zooz/zen16.xml b/config/zooz/zen16.xml
new file mode 100644
index 0000000000..82e4f79f48
--- /dev/null
+++ b/config/zooz/zen16.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Multirelay</MetaDataItem>
+    <MetaDataItem name="Description">PRODUCT FEATURES:
+- Powerful dry contact relays to control loads up to 15 A and 20 A
+- Perfect for outdoor lighting, pool pumps, garage door, or gas fireplace
+- Control up to 3 connected loads independently or together
+- Z-Wave or optional wall switch control (toggle or momentary type)
+- Built-in timers for each relay to simplify automation
+- Remembers and restores on/off status after power failure
+- Powered by 12-24 V DC/AC or USB C port for easy set-up
+- Wall mounting and minimal design for clean installation
+- S2 security protocol and the latest 500 Z-Wave chip
+
+SPECIFICATIONS:
+- Model Number: ZEN16
+- Z-Wave Signal Frequency: 908.42 MHz
+- Power: 12-24 V DC/AC or USB C
+- Maximum Load: Relay 1: 15A (1/3 HP), Relay 2: 15A (1/3 HP),Relay 3: 20A (3/4 HP)
+    </MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:a00a:a000</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.getzooz.com/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.support.getzooz.com/home/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen16.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3788/zooz-s2-multirelay-zen16-ver1.0-manual-online.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub.  2. Finalize inclusion at the device.  Click the Z-Wave button 3 times quickly to add the MultiRelay to your network.  The LED indicator will blink to signal communication and remain on for 2 seconds to confirm inclusion.
+    </MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Bring your MultiRelay close to the Z-Wave gateay (hub) and power it.
+2. Put the Z-Wave hub into exclusion mode (not sure how to do that?  ask@getzooz.com
+3. Click the Z-Wave button 3 times quickly
+4. Your hub will confirm exclusion and the device will disappear from your controller's device list</MetaDataItem>
+    <MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, click the Z-Wave button 4 times quickly, the LED indicator will light up, then quickly click the Z-Wave button 4 times again.  The LED indicator will flash 3 times to confirm successful reset and will then turn off.
+    </MetaDataItem>
+    <MetaDataItem id="A00A" name="ZWProductPage" type="A000">https://products.z-wavealliance.org/products/3788</MetaDataItem>
+    <MetaDataItem id="A00A" name="FrequencyName" type="A000">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="A00A" name="Identifier" type="A000">ZEN16</MetaDataItem>
+    <ChangeLog>
+      <Entry author="David Alden - dave@alden.name" date="16 Feb 2020" revision="2">Initial Metadata Import</Entry>
+      <Entry author="Brad Parker - https://github.com/bepsoccer" date="6 May 2020" revision="3">Updated for firmware version 1.02</Entry>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="20 January 2021" revision="4">Updated for firmware version 1.03</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- https://products.z-wavealliance.org/products/3788 -->
+
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" index="1" label="On Off Status After Power Failure" size="1" min="0" max="4" value="1">
+      <Help>On Off Status After Power Failure.  Default: all relays restore to previous state</Help>
+      <Item label="all relays forced off" value="0"/>
+      <Item label="all relays restore to previous state" value="1"/>
+      <Item label="all relays forced on" value="2"/>
+      <Item label="relays 1/2 restore, 3/4 forced off" value="3"/>
+      <Item label="relays 1/2 restore, 3/4 forced on" value="4"/>
+    </Value>
+    <Value type="list" genre="config" index="2" label="Switch Type for Relay 1 (Sw1)" size="1" min="0" max="3" value="2">
+      <Help>Switch Type for Relay 1 (Sw1).  Choose the wall switch type you want to connect to the Sw1 terminal.  Default: toggle switch (state changes whenever the switch is toggled)</Help>
+      <Item label="momentary switch" value="0"/>
+      <Item label="toggle switch (light on when switch is up/off when down)" value="1"/>
+      <Item label="toggle switch (state changes whenever the switch is toggled)" value="2"/>
+      <Item label="garage door (momentary mode for Z-Wave control)" value="3"/>
+    </Value>
+    <Value type="list" genre="config" index="3" label="Switch Type for Relay 2 (Sw2)" size="1" min="0" max="3" value="2">
+      <Help>Switch Type for Relay 2 (Sw2).  Choose the wall switch type you want to connect to the Sw2 terminal.  Default: toggle switch (state changes whenever the switch is toggled)</Help>
+      <Item label="momentary switch" value="0"/>
+      <Item label="toggle switch (light on when switch is up/off when down)" value="1"/>
+      <Item label="toggle switch (state changes whenever the switch is toggled)" value="2"/>
+      <Item label="garage door (momentary mode for Z-Wave control)" value="3"/>
+    </Value>
+    <Value type="list" genre="config" index="4" label="Switch Type for Relay 3 (Sw3)" size="1" min="0" max="3" value="2">
+      <Help>Switch Type for Relay 3 (Sw3).  Choose the wall switch type you want to connect to the Sw3 terminal.  Default: toggle switch (state changes whenever the switch is toggled)</Help>
+      <Item label="momentary switch" value="0"/>
+      <Item label="toggle switch (light on when switch is up/off when down)" value="1"/>
+      <Item label="toggle switch (state changes whenever the switch is toggled)" value="2"/>
+      <Item label="garage door (momentary mode for Z-Wave control)" value="3"/>
+    </Value>
+    <Value type="list" genre="config" index="5" label="LED Indicator Control" size="1" min="0" max="3" value="0">
+      <Help>LED Indicator Control.  Choose if you want the LED indicator to turn on when any of the relays are on or if all of them are off, or if you want it to remain on or off at all times.  Default: On when all relays are off</Help>
+      <Item label="On when all relays are off" value="0"/>
+      <Item label="On when any relays are on" value="1"/>
+      <Item label="Always Off" value="2"/>
+      <Item label="Always On" value="3"/>
+    </Value>
+    <Value type="int" genre="config" index="6" label="Auto Turn-Off Timer for Relay 1" size="4" min="0" max="65535" value="0" units="minutes">
+      <Help>Auto Turn-Off Timer for Relay 1.  Sets the time (in minutes) after which you want relay 1 to automatically turn off once it has been turned on.  Range: 1-65535.  Default: 0 (disabled)</Help>
+    </Value>
+    <Value type="int" genre="config" index="7" label="Auto Turn-On Timer for Relay 1" size="4" min="0" max="65535" value="0" units="minutes">
+      <Help>Auto Turn-On Timer for Relay 1.  Sets the time (in minutes) after which you want relay 1 to automatically turn on once it has been turned off.  Range: 1-65535.  Default: 0 (disabled)</Help>
+    </Value>
+    <Value type="int" genre="config" index="8" label="Auto Turn-Off Timer for Relay 2" size="4" min="0" max="65535" value="0" units="minutes">
+      <Help>Auto Turn-Off Timer for Relay 2.  Sets the time (in minutes) after which you want relay 2 to automatically turn off once it has been turned on.  Range: 1-65535.  Default: 0 (disabled)</Help>
+    </Value>
+    <Value type="int" genre="config" index="9" label="Auto Turn-On Timer for Relay 2" size="4" min="0" max="65535" value="0" units="minutes">
+      <Help>Auto Turn-On Timer for Relay 2.  Sets the time (in minutes) after which you want relay 2 to automatically turn on once it has been turned off.  Range: 1-65535.  Default: 0 (disabled)</Help>
+    </Value>
+    <Value type="int" genre="config" index="10" label="Auto Turn-Off Timer for Relay 3" size="4" min="0" max="65535" value="0" units="minutes">
+      <Help>Auto Turn-Off Timer for Relay 3.  Sets the time (in minutes) after which you want relay 3 to automatically turn off once it has been turned on.  Range: 1-65535.  Default: 0 (disabled)</Help>
+    </Value>
+    <Value type="int" genre="config" index="11" label="Auto Turn-On Timer for Relay 3" size="4" min="0" max="65535" value="0" units="minutes">
+      <Help>Auto Turn-On Timer for Relay 3.  Sets the time (in minutes) after which you want relay 3 to automatically turn on once it has been turned off.  Range: 1-65535.  Default: 0 (disabled)</Help>
+    </Value>
+    <Value type="list" genre="config" index="12" label="Enable/Disable Manual Control for SW1" size="1" min="0" max="2" value="1">
+      <Help>Enable/Disable Manual Control for SW1.  Default: enabled</Help>
+      <Item label="disabled" value="0"/>
+      <Item label="enabled" value="1"/>
+      <Item label="local control disabled with enable on/off reports" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="13" label="Enable/Disable Manual Control for SW2" size="1" min="0" max="2" value="1">
+      <Help>Enable/Disable Manual Control for SW2.  Default: enabled</Help>
+      <Item label="disabled" value="0"/>
+      <Item label="enabled" value="1"/>
+      <Item label="local control disabled with enable on/off reports" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="14" label="Enable/Disable Manual Control for SW3" size="1" min="0" max="2" value="1">
+      <Help>Enable/Disable Manual Control for SW3.  Default: enabled</Help>
+      <Item label="disabled" value="0"/>
+      <Item label="enabled" value="1"/>
+      <Item label="local control disabled with enable on/off reports" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="15" label="Auto Turn-Off Timer Unit for Relay 1" size="1" min="0" max="2" value="0">
+      <Help>Choose between second, minutes, and hours as the unit for Auto Turn-Off time for Relay 1.  Default: minutes</Help>
+      <Item label="minutes" value="0"/>
+      <Item label="seconds" value="1"/>
+      <Item label="hours" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="16" label="Auto Turn-On Timer Unit for Relay 1" size="1" min="0" max="2" value="0">
+      <Help>Choose between second, minutes, and hours as the unit for Auto Turn-On time for Relay 1.  Default: minutes</Help>
+      <Item label="minutes" value="0"/>
+      <Item label="seconds" value="1"/>
+      <Item label="hours" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="17" label="Auto Turn-Off Timer Unit for Relay 2" size="1" min="0" max="2" value="0">
+      <Help>Choose between second, minutes, and hours as the unit for Auto Turn-Off time for Relay 2.  Default: minutes</Help>
+      <Item label="minutes" value="0"/>
+      <Item label="seconds" value="1"/>
+      <Item label="hours" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="18" label="Auto Turn-On Timer Unit for Relay 2" size="1" min="0" max="2" value="0">
+      <Help>Choose between second, minutes, and hours as the unit for Auto Turn-On time for Relay 2.  Default: minutes</Help>
+      <Item label="minutes" value="0"/>
+      <Item label="seconds" value="1"/>
+      <Item label="hours" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="19" label="Auto Turn-Off Timer Unit for Relay 3" size="1" min="0" max="2" value="0">
+      <Help>Choose between second, minutes, and hours as the unit for Auto Turn-Off time for Relay 3.  Default: minutes</Help>
+      <Item label="minutes" value="0"/>
+      <Item label="seconds" value="1"/>
+      <Item label="hours" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="20" label="Auto Turn-On Timer Unit for Relay 3" size="1" min="0" max="2" value="0">
+      <Help>Choose between second, minutes, and hours as the unit for Auto Turn-On time for Relay 3.  Default: minutes</Help>
+      <Item label="minutes" value="0"/>
+      <Item label="seconds" value="1"/>
+      <Item label="hours" value="2"/>
+    </Value>
+     <Value type="list" genre="config" index="21" label="Normally open/close for Relay 1" size="1" min="0" max="2" value="0">
+      <Help>Decide whether you'd like Relay 1 to be normally open (NO) or normally closed (NC). Default normally open.</Help>
+      <Item label="normally open (relay reports off when it's open / switch is off and on when it's closed / switch is on)" value="0"/>
+      <Item label="normally closed (relay reports off when it's open / switch is on and on when it's closed / switch is off)" value="1"/>
+      <Item label="normally closed (relay reports off when it's closed / switch is off and on when it's open / switch is on)" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="22" label="Normally open/close for Relay 2" size="1" min="0" max="2" value="0">
+      <Help>Decide whether you'd like Relay 2 to be normally open (NO) or normally closed (NC). Default normally open.</Help>
+      <Item label="normally open (relay reports off when it's open / switch is off and on when it's closed / switch is on)" value="0"/>
+      <Item label="normally closed (relay reports off when it's open / switch is on and on when it's closed / switch is off)" value="1"/>
+      <Item label="normally closed (relay reports off when it's closed / switch is off and on when it's open / switch is on)" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="23" label="Normally open/close for Relay 3" size="1" min="0" max="2" value="0">
+      <Help>Decide whether you'd like Relay 3 to be normally open (NO) or normally closed (NC). Default normally open.</Help>
+      <Item label="normally open (relay reports off when it's open / switch is off and on when it's closed / switch is on)" value="0"/>
+      <Item label="normally closed (relay reports off when it's open / switch is on and on when it's closed / switch is off)" value="1"/>
+      <Item label="normally closed (relay reports off when it's closed / switch is off and on when it's open / switch is on)" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="24" label="DC Motor Mode" size="1" min="0" max="1" value="0">
+      <Help>Sync Relay 1 and Relay 2 together to prevent them from being activated at the same time. Default disabled.</Help>
+      <Item label="DC motor mode disabled (relays will always turn on whenever activated)" value="0"/>
+      <Item label="DC motor mode enabled (relay checks the status of the other relay after being triggered and shuts the other relay off before activating so that only one of the relays is on at a time)" value="1"/>
+    </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="Relay 1 Status"/>
+      <Group index="3" max_associations="5" label="Relay 2 Status"/>
+      <Group index="4" max_associations="5" label="Relay 3 Status"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/zooz/zen17.xml b/config/zooz/zen17.xml
new file mode 100644
index 0000000000..1784b85e27
--- /dev/null
+++ b/config/zooz/zen17.xml
@@ -0,0 +1,132 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Zooz ZEN17 Universal Relay</MetaDataItem>
+    <MetaDataItem name="Description"></MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:a00a:7000</MetaDataItem>
+    <MetaDataItem name="ProductPage"></MetaDataItem>
+    <MetaDataItem name="ProductSupport"></MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen17.png</MetaDataItem>
+    <MetaDataItem name="ProductManual"></MetaDataItem>
+    <MetaDataItem name="WakeupDescription"></MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Click the button on top of the device 3x quickly</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Click the button on top of the device 3x quickly</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Click the button on top of the device 4x quickly, the LED indicator will light up, then quickly click the button 4x again. The LED indicator will flash 3x to confirm successful reset and will then turn off.</MetaDataItem>
+    <MetaDataItem id="a00a" name="ZWProductPage" type="7000"><!-- url to https://products.z-wavealliance.org/products/XXXX/ page for this specific version of the device --></MetaDataItem>
+	  <!--product page not available as of March 2, 2021 -->
+    <MetaDataItem id="a00a" name="FrequencyName" type="7000">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="a00a" name="Identifier" type="7000">ZEN17</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="2 March 2021" revision="1">Initial configuration from Zooz</Entry>
+	  <Entry author="Jean-Francois Auger - nechry@gmail.com" date="4 feb 2021" revision="2">fix param size error</Entry>
+    </ChangeLog>
+  </MetaData>
+  
+    <!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="On Off status after power failure" size="1" min="0" max="4" value="1">
+			<Help>Set the on off status for the relays after power failure</Help>
+			<Item label="All relays forced to off" value="0"/>
+			<Item label="All relays remember and restore on/off status after power failure" value="1"/>
+			<Item label="All relays forced to on" value="2"/>
+			<Item label="Relay 1 remembers and restores on/off status after power failure, Relay 2 forced to on" value="3"/>
+			<Item label="Relay 2 remembers and restores on/off status after power failure, Relay 1 forced to on" value="4"/>
+		</Value>
+		<Value type="list" genre="config" index="2" label="Input type for relay 1" size="1" min="0" max="10" value="2">
+			<Help>Choose the wall switch or input type you want to connect to the S1 C terminals. Important: If you set this parameter to value 4-10, you'll need to exclude and re-include the device (without changing any settings) so that a child device is created for the input of your choice)</Help>
+			<Item label="momentary for lights only" value="0"/>
+			<Item label="toggle switch (light on when the switch is toggled up, light off when the switch is toggled down)" value="1"/>
+			<Item label="toggle switch (state changes whenever the switch is toggled)" value="2"/>
+			<Item label="garage door (momentary mode for Z-Wave control)" value="3"/>
+			<Item label="leak alarm (water sensor)" value="4"/>
+			<Item label="heat alarm" value="5"/>
+			<Item label="motion alert" value="6"/>
+			<Item label="open/close alert (door sensor)" value="7"/>
+			<Item label="CO alarm" value="8"/>
+			<Item label="CO2 alarm" value="9"/>
+			<Item label="on/off report (dry contact sensor/switch)" value="10"/>
+		</Value>
+		<Value type="list" genre="config" index="3" label="Input type for relay 2" size="1" min="0" max="10" value="2">
+			<Help>Choose the wall switch or input type you want to connect to the S1 C terminals. Important: If you set this parameter to value 4-10, you'll need to exclude and re-include the device (without changing any settings) so that a child device is created for the input of your choice)</Help>
+			<Item label="momentary for lights only" value="0"/>
+			<Item label="toggle switch (light on when the switch is toggled up, light off when the switch is toggled down)" value="1"/>
+			<Item label="toggle switch (state changes whenever the switch is toggled)" value="2"/>
+			<Item label="garage door (momentary mode for Z-Wave control)" value="3"/>
+			<Item label="leak alarm (water sensor)" value="4"/>
+			<Item label="heat alarm" value="5"/>
+			<Item label="motion alert" value="6"/>
+			<Item label="open/close alert (door sensor)" value="7"/>
+			<Item label="CO alarm" value="8"/>
+			<Item label="CO2 alarm" value="9"/>
+			<Item label="on/off report (dry contact sensor/switch)" value="10"/>
+		</Value>
+		<Value type="list" genre="config" index="5" label="LED indicator control" size="1" min="0" max="3" value="0">
+			<Help>Choose if you want the LED indicator to turn on when any of the relays are on or if all of them are off, or if you want it to remain on or off at all times.</Help>
+			<Item label="LED on when all relays off, LED off when any relay is on" value="0"/>
+			<Item label="LED off when all relays on, LED off when all relays are off" value="1"/>
+			<Item label="LED always off" value="2"/>
+			<Item label="LED always on" value="3"/>
+		</Value>
+		<Value type="int" genre="config" index="6" label="Auto turn-off timer for relay 1" size="4" min="0" max="65535" value="0" units="">
+			<Help>Use this parameter to set the time after which you want the device connected to relay 1 to automatically turn off once it has been turned on. The number entered as value corresponds to the unit type set by parameter 15 (minutes, seconds or hours)</Help>
+		</Value>
+		<Value type="int" genre="config" index="7" label="Auto turn-on timer for relay 1" size="4" min="0" max="65535" value="0" units="">
+			<Help>Use this parameter to set the time after which you want the device connected to relay 1 to automatically turn on once it has been turned off. The number entered as value corresponds to the unit type set by parameter 16 (minutes, seconds or hours)</Help>
+		</Value>
+		<Value type="int" genre="config" index="8" label="Auto turn-off timer for relay 2" size="4" min="0" max="65535" value="0" units="">
+			<Help>Use this parameter to set the time after which you want the device connected to relay 2 to automatically turn off once it has been turned on. The number entered as value corresponds to the unit type set by parameter 17 (minutes, seconds or hours)</Help>
+		</Value>
+		<Value type="int" genre="config" index="9" label="Auto turn-on timer for relay 2" size="4" min="0" max="65535" value="0" units="">
+			<Help>Use this parameter to set the time after which you want the device connected to relay 2 to automatically turn on once it has been turned off. The number entered as value corresponds to the unit type set by parameter 18 (minutes, seconds or hours)</Help>
+		</Value>
+		<Value type="list" genre="config" index="10" label="Input trigger for relay 1" size="1" min="0" max="1" value="1">
+			<Help>Choose if you'd like the connected input(switch) on S1 C / VC C to trigger the load connected to R1 or if you want to use the input reports for monitoring only and separate the output from the input.</Help>
+			<Item label="input trigger disabled" value="0"/>
+			<Item label="input trigger enabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="11" label="Input trigger for relay 2" size="1" min="0" max="1" value="1">
+			<Help>Choose if you'd like the connected input(switch) on S2 C / VC C to trigger the load connected to R2 or if you want to use the input reports for monitoring only and separate the output from the input.</Help>
+			<Item label="input trigger disabled" value="0"/>
+			<Item label="input trigger enabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="15" label="Auto turn-off timer unit for relay 1" size="1" min="0" max="2" value="0">
+			<Help>Choose between seconds, minutes and hours as the unit for the auto turn-off timer for relay 1 (parameter 6)</Help>
+			<Item label="minutes" value="0"/>
+			<Item label="seconds" value="1"/>
+			<Item label="hours" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="16" label="Auto turn-on timer unit for relay 1" size="1" min="0" max="2" value="0">
+			<Help>Choose between seconds, minutes and hours as the unit for the auto turn-on timer for relay 1 (parameter 7)</Help>
+			<Item label="minutes" value="0"/>
+			<Item label="seconds" value="1"/>
+			<Item label="hours" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="17" label="Auto turn-off timer unit for relay 2" size="1" min="0" max="2" value="0">
+			<Help>Choose between seconds, minutes and hours as the unit for the auto turn-off timer for relay 2 (parameter 8)</Help>
+			<Item label="minutes" value="0"/>
+			<Item label="seconds" value="1"/>
+			<Item label="hours" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="18" label="Auto turn-on timer unit for relay 2" size="1" min="0" max="2" value="0">
+			<Help>Choose between seconds, minutes and hours as the unit for the auto turn-on timer for relay 2 (parameter 9)</Help>
+			<Item label="minutes" value="0"/>
+			<Item label="seconds" value="1"/>
+			<Item label="hours" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="24" label="DC motor mode" size="1" min="0" max="1" value="0">
+			<Help>Sync R1 and R2 together to prevent them from being activated at the same time.</Help>
+			<Item label="DC motor mode disabled" value="0"/>
+			<Item label="DC motor mode enabled (relay will check the status of the other relay after being triggered and will shut the other relay off before activating so that only one of the relays is on at the same time)" value="1"/>
+			<Item label="hours" value="2"/>
+		</Value>
+	</CommandClass>
+	
+    <!-- Association Groups -->
+    <CommandClass id="133">
+      <Associations num_groups="3">
+        <Group index="1" label="Lifeline" max_associations="1"/>
+        <Group index="2" label="Group 2" max_associations="5"/>
+	    <Group index="3" label="Group 3" max_associations="5"/>
+      </Associations>
+    </CommandClass>
+	
+</Product>
\ No newline at end of file
diff --git a/config/zooz/zen20v2.xml b/config/zooz/zen20v2.xml
index 248dc86679..d8e5c066ce 100644
--- a/config/zooz/zen20v2.xml
+++ b/config/zooz/zen20v2.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027A:A004:A000</MetaDataItem>
     <MetaDataItem name="ProductPic">images/zooz/zen20v2.png</MetaDataItem>
@@ -37,6 +37,8 @@ NOTE: All previously recorded activity and custom settings EXCEPT for the kWh re
 4. You will see 7 or 8 new on/off devices in your app: 5 channels or on/off control, 2 channels for on/off monitoring (USB ports reporting charging/ charged status, no control), and possibly one master node to access and adjust advanced settings in.</MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3158/xml</Entry>
+      <Entry author="Brett Daugherty" date="22 Jul 2020" revision="3">Update parameters for firmware 2.0.3</Entry>
+
     </ChangeLog>
   </MetaData>
   <!-- https://products.z-wavealliance.org/products/3158 -->
@@ -152,6 +154,47 @@ NOTE: All previously recorded activity and custom settings EXCEPT for the kWh re
       <Item label="Normal" value="1"/>
       <Item label="Always Off" value="2"/>
     </Value>
+    <Value genre="config" index="28" label="Enable/Disable Energy Monitoring Reports" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Disable or enable energy monitoring for the entire devie. None of the outlets will send any power or energy related reports back to the hub if energy monitoring is disabled. Use this optoin to minimize the amount or reports you want to receive from the Power Strip. (Firmware > 2.0.3)</Help>
+      <Item label="Energy monitoring reports disabled" value="0"/>
+      <Item label="Energy monitoring reports enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="29" label="Enable/Disable Energy Monitoring Reports for CH1" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Disable or enabled energy monitoring for CH1. (Firmware > 2.03)</Help>
+      <Item label="Energy monitoring reports disabled" value="0"/>
+      <Item label="Energy monitoring reports enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="30" label="Enable/Disable Energy Monitoring Reports for CH2" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Disable or enabled energy monitoring for CH2. (Firmware > 2.03)</Help>
+      <Item label="Energy monitoring reports disabled" value="0"/>
+      <Item label="Energy monitoring reports enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="31" label="Enable/Disable Energy Monitoring Reports for CH3" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Disable or enabled energy monitoring for CH3. (Firmware > 2.03)</Help>
+      <Item label="Energy monitoring reports disabled" value="0"/>
+      <Item label="Energy monitoring reports enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="32" label="Enable/Disable Energy Monitoring Reports for CH4" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Disable or enabled energy monitoring for CH4. (Firmware > 2.03)</Help>
+      <Item label="Energy monitoring reports disabled" value="0"/>
+      <Item label="Energy monitoring reports enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="33" label="Enable/Disable Energy Monitoring Reports for CH5" max="1" min="0" size="1" type="list" units="" value="1">
+      <Help>Disable or enabled energy monitoring for CH5. (Firmware > 2.03)</Help>
+      <Item label="Energy monitoring reports disabled" value="0"/>
+      <Item label="Energy monitoring reports enabled" value="1"/>
+    </Value>
+    <Value genre="config" index="34" label="Enable/Disable USB Reports" max="1" min="0" size="1" type="list" units="" value="0">
+      <Help>Disable or enable on/off reports send from the USB ports when a connected device is charging (drawing power) or not charging (not drawing power). (Firmware > 2.03)</Help>
+      <Item label="USB Reports Enabled" value="0"/>
+      <Item label="USB Reports Disabled" value="1"/>
+    </Value>
+    <Value genre="config" index="35" label="Electrical Current (A) Report Frequency" max="2678400" min="0" size="4" type="int" units="seconds" value="0">
+      <Help>0 = disabled; 30-2678400 = time in seconds to send current (A) report (Firmware > 2.03)</Help>
+    </Value>
+    <Value genre="config" index="36" label="Voltage (V) Report Frequency" max="2678400" min="0" size="4" type="int" units="seconds" value="2678400">
+      <Help>0 = disabled; 30-2678400 = time in seconds to send voltage (v) report (Firmware > 2.03)</Help>
+    </Value>
   </CommandClass>
   <!-- Association Groups -->
   <CommandClass id="133">
diff --git a/config/zooz/zen21v2.xml b/config/zooz/zen21v2.xml
deleted file mode 100644
index ee5ecd388c..0000000000
--- a/config/zooz/zen21v2.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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/zen21v3.xml b/config/zooz/zen21v3.xml
new file mode 100644
index 0000000000..ca3c9cd925
--- /dev/null
+++ b/config/zooz/zen21v3.xml
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="4">
+	<MetaData>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:1e1c:b111</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/zooz/zen21v3.png</MetaDataItem>
+		<MetaDataItem id="1e1c" name="ZWProductPage" type="b111">https://products.z-wavealliance.org/products/3667?selectedFrequencyId=2</MetaDataItem>
+		<MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, tap-tap-tap’n’hold the upper paddle for at least 10 seconds. The LED indicator will flash to confirm successful reset.
+NOTE: All previously recorded activity and custom settings will be erased from the device’s memory.</MetaDataItem>
+		<MetaDataItem name="ExclusionDescription">1. Bring your Z-Wave gateway (hub) close to the switch if possible
+2. Put the Z-Wave hub into exclusion mode (not sure how to do that?
+ask@getzooz.com)
+3. Tap the lower paddle on the switch 3 times quickly</MetaDataItem>
+		<MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub.
+2. Tap the upper paddle on the switch 3 times quickly.</MetaDataItem>
+		<MetaDataItem id="1e1c" name="FrequencyName" type="b111">U.S. / Canada / Mexico</MetaDataItem>
+		<MetaDataItem id="1e1c" name="Identifier" type="b111">ZEN21</MetaDataItem>
+		<MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3667/zooz-z-wave-plus-on-off-switch-zen21-ver3.1-manual.pdf</MetaDataItem>
+		<MetaDataItem name="Name">Z-WAVE PLUS ON / OFF LIGHT SWITCH</MetaDataItem>
+		<MetaDataItem name="Description">FEATURES:
+- Manual and remote on/off control for lights and small appliances
+- Unique Direct 3-Way Solution: no add-on switch needed, extra savings! (Neutral wire required, use in 4-Way only if direct connection to load and line are in the same box)
+- Scene control on selected hubs
+- Reports on/off status to your controller instantly
+- NEW VERSION: more advanced settings (timer, turn switch on/off with any paddle, choose state after power failure), improved manual and packaging
+- White (no other color available)
+- Restores on/off status after power failure
+- Can be associated with other Z-Wave devices by scheduling scenes and customizing events
+- Compatible with LED, CFL, and incandescent bulbs
+- Screw terminal installation - requires Line (Hot), Load, Neutral, and Ground wires
+- New and improved Z-Wave Plus 500 series chip for faster, stronger wireless connectivity
+- Built-in repeater that strengthens your Z-Wave network
+- Blue LED indicator to easily locate the switch in the dark and signal Z-Wave communication
+- Use a standard-size wall plate for single gang installations (wall plate not included)
+- UL-listed and Z-Wave Plus certified
+
+SPECIFICATIONS:
+- Model Number: ZEN21
+
+- Z-Wave Frequency: 908.42 MHz (US)
+- Power: 120 VAC, 60 Hz
+- Maximum Loads: 960W Incandescent, 150W LED and CFL bulbs, 1800W (15A) Resistive
+- Z-Wave Range: Up to 100 feet line of sight between the Wireless Controller and the closest Z-Wave receiver module
+- Operating Temperature: 32-104° F (0-40° C)
+- Installation: Indoor use only
+
+https://www.support.getzooz.com/kb/article/316-zooz-on-off-switch-zen21-ver-3-04-advanced-settings/
+MANUAL CONTROL
+Upper Paddle:
+1 x tap: load on; Scene 1, attribute 00 (button 1)
+2 x tap: Scene 1, attribute 03 (button 3)
+3 x tap: enter inclusion (pairing) mode; Scene 1, attribute 04 (button 5)
+4 x tap: Scene 1, attribute 05 (button 7)
+6 x tap: change LED indicator mode (see parameter 2)
+10 x tap: change physical / Z-Wave control mode (see parameter 11)
+tap-tap-tap-and-hold: factory reset
+
+Lower Paddle:
+1 x tap: load off; Scene 2, attribute 00 (button 2)
+2 x tap: Scene 2, attribute 03 (button 4)
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04 (button 6)
+4 x tap: Scene 2, attribute 05 (button 8)
+tap-tap-tap-and-hold: factory reset
+	</MetaDataItem>
+		<ChangeLog>
+			<Entry author="Brad Parker - https://github.com/bepsoccer" date="13 April 2020" revision="2">Updated for firmware version 3.04</Entry>
+			<Entry author="Matthew Grimes" date="12 June 2020" revision="3">Rename XML for correct hardware version</Entry>
+			<Entry author="Matthew Grimes" date="18 June 2020" revision="4">Update parameter 12 description</Entry>
+		</ChangeLog>
+	</MetaData>
+	<!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="Paddle Control" size="1" min="0" max="2" value="0">
+			<Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off.  Reverse mode: Upper paddle turns the light off, lower paddle turns the light on.  Toggle mode: Either paddle toggles the light.</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Toggle" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
+			<Help>LED Indication light function.  Normal has the LED Indication on when the switch is off, off when the switch is on. </Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Always Off" value="2"/>
+			<Item label="Always On" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="3" label="Enable Auto Turn-Off Timer" size="1" min="0" max="1" value="0">
+			<Help></Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="int" genre="config" index="4" label="Auto Turn-Off Timer Duration" size="4" min="1" max="65535" value="60" units="minutes">
+			<Help>Time, in minutes, for auto-off timer delay.</Help>
+		</Value>
+		<Value type="list" genre="config" index="5" label="Enable Auto Turn-On Timer" size="1" min="0" max="1" value="0">
+			<Help></Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="int" genre="config" index="6" label="Auto Turn-On Timer Duration" size="4" min="1" max="65535" value="60" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="7" label="Association Reports" units="" min="0" max="15" value="15" size="1">
+			<Help>Choose which physical and Z-Wave triggers should prompt the switch to send a status change report to associated devices.</Help>
+			<Item label="none" value="0" />
+			<Item label="physical tap on ZEN21 only" value="1" />
+			<Item label="physical tap on connected 3-way switch only" value="2" />
+			<Item label="physical tap on ZEN21 or connected 3-way switch" value="3" />
+			<Item label="Z-Wave command from hub" value="4" />
+			<Item label="physical tap on ZEN21 or Z-Wave command from hub" value="5" />
+			<Item label="physical tap on connected 3-way switch or Z-Wave command from hub" value="6" />
+			<Item label="physical tap on ZEN21 / connected 3-way switch or Z-Wave command from hub" value="7" />
+			<Item label="timer only" value="8" />
+			<Item label="physical tap on ZEN21 or timer" value="9" />
+			<Item label="physical tap on connected 3-way switch or timer" value="10" />
+			<Item label="physical tap on ZEN21 / connected 3-way switch or timer" value="11" />
+			<Item label="Z-Wave command from hub or timer" value="12" />
+			<Item label="physical tap on ZEN21, Z-Wave command from hub, or timer" value="13" />
+			<Item label="physical tap on ZEN21 / connected 3-way switch, Z-Wave command from hub, or timer" value="14" />
+			<Item label="all of the above. (default)" value="15" />
+		</Value>
+		<Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
+			<Help>Status after power failure.  Off: always turn light off.  On: always turn light on.  Restore: remember the latest state and restore that state.</Help>
+			<Item label="Off" value="0"/>
+			<Item label="On" value="1"/>
+			<Item label="Restore" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="9" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
+			<Help>Enable or Disable scene control functionality for quick double tap triggers (Available for select hubs only).</Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="11" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" min="0" max="2" value="1" size="1">
+			<Help>Enable or disable local on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through paddles.</Help>
+			<Item label="physical paddle control disabled" value="0" />
+			<Item label="physical paddle control enabled (default)" value="1" />
+			<Item label="physical paddle and Z-Wave control disabled" value="2" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="12" label="3-Way Switch Type" units="" min="0" max="1" value="0" size="1">
+			<Help>Choose the type of 3-way switch you want to use with this switch in a 3-way set-up.</Help>
+			<Item label="regular mechanical 3-way on/off switch(default)" value="0" />
+			<Item label="momentary switch, click once to change status (light on or off)" value="1" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="13" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+			<Help>Set reporting behavior for disabled physical control.</Help>
+			<Item label="switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0" />
+			<Item label="switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" value="1" />
+		</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/zen22v2.xml b/config/zooz/zen22v2.xml
index 70170f17ac..6b88e43a2f 100644
--- a/config/zooz/zen22v2.xml
+++ b/config/zooz/zen22v2.xml
@@ -1,34 +1,195 @@
 <?xml version="1.0" encoding="utf-8"?>
-<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">
-      <Help>Controls the on/off orientation of the rocker switch</Help>
-      <Item value="0" label="Normal"/>
-      <Item value="1" label="Inverted"/>
-    </Value>
-    <Value genre="config" index="2" value="0" label="LED Indicator Control" units="" size="1" min="0" max="255" type="list">
-      <Help>Choose if you want the LED indicator to turn on when switch is on or off</Help>
-      <Item value="0" label="LED on when switch is off"/>
-      <Item value="1" label="LED on when switch is on"/>
-    </Value>
-    <Value genre="config" index="3" value="0" label="Enable/Disable LED Indicator" units="" size="1" min="0" max="255" type="list">
-      <Help>Enable or disable LED indicator so it stays off at all times</Help>
-      <Item value="0" label="Enabled"/>
-      <Item value="1" label="Disabled"/>
-    </Value>
-    <Value genre="config" index="4" value="0" label="Ramp Rate Control" units="" size="1" min="0" max="255" type="list">
-      <Help>Choose how fast you want to turn the light on and off</Help>
-      <Item value="0" label="Slow"/>
-      <Item value="1" label="Fast"/>
-    </Value>
-  </CommandClass>
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
+	<MetaData>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:1f1c:b112</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/zooz/zen22.png</MetaDataItem>
+		<MetaDataItem id="1f1c" name="ZWProductPage" type="b112">https://products.z-wavealliance.org/products/1946?selectedFrequencyId=2</MetaDataItem>
+		<MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, tap-tap-tap’n’hold the upper paddle for at least 10 seconds. The LED indicator will flash to confirm successful reset.
+NOTE: All previously recorded activity and custom settings will be erased from the device’s memory.</MetaDataItem>
+		<MetaDataItem name="ExclusionDescription">1. Bring your Z-Wave gateway (hub) close to the switch if possible
+2. Put the Z-Wave hub into exclusion mode (not sure how to do that?
+ask@getzooz.com)
+3. Tap the lower paddle on the switch 3 times quickly</MetaDataItem>
+		<MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub.
+2. Tap the upper paddle on the switch 3 times quickly.</MetaDataItem>
+		<MetaDataItem id="1f1c" name="FrequencyName" type="b112">U.S. / Canada / Mexico</MetaDataItem>
+		<MetaDataItem id="1f1c" name="Identifier" type="b112">ZEN22</MetaDataItem>
+		<MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/1946/zooz-z-wave-plus-dimmer-switch-zen22-manual.pdf</MetaDataItem>
+		<MetaDataItem name="Name">Zooz Z-Wave Dimmer Light Switch</MetaDataItem>
+		<MetaDataItem name="Description">FEATURES:
+- Manual and wireless control from your smart phone or computer (when synced with a Z-Wave gateway controller)
+- Direct 3-Way Solution: connects to an existing light switch for 2-point control, no special companion switch needed! (Neutral wire required, on/off control only from slave switch, use in 4-Way only if direct connection to load and line are in the same box)
+- NEW IN VER. 3.0: Double tap to full brightness, fully adjustable ramp rate, scene control on select hubs, and more!
+- White (no other color available)
+- Extended LED bulb compatibility - works with most popular dimmable LED's (including Cree, Ecosmart, Philips, GE, Sylvania, Sunco, and others. NOT COMPATIBLE WITH LUMINUS BULBS.)
+- Quick status reports to your hub when operated manually
+- Based on universal command classes - supported by all certified Z-Wave gateway controllers
+- Capable of advanced automation and association with other Z-Wave devices — schedule custom scenes and events
+- Upgraded Z-Wave Plus 500 series chip for stronger and faster wireless connectivity
+- Built-in signal repeater for a more reliable Z-Wave network 
+- Blue LED indicator to help locate the switch in the dark (now configurable straight from the switch!)
+- Fits a standard-size face plate for single and multi gang installations (face plate not included)
+- UL-listed and Z-Wave Plus certified
 
-  <!-- Association Groups -->
-  <CommandClass id="133">
-    <Associations num_groups="1">
-      <Group index="1" label="Lifeline" max_associations="5" />
-    </Associations>
-  </CommandClass>
+SPECIFICATIONS:
+- Model Number: ZEN22
+
+- Z-Wave Signal Frequency: 908.42 MHz
+- Power: 120 VAC, 60 Hz
+- Maximum Load: 500W Single-gang, 400W Double-gang, 300W Triple-gang Incandescent, 150W CFL or LED
+- Range: Up to 100 feet line of sight
+- Operating Temperature: 32-104° F (0-40° C)
+- Installation and Use: Indoor only
+
+https://www.support.getzooz.com/kb/article/319-zooz-dimmer-zen22-ver-3-07-advanced-settings/
+MANUAL CONTROL
+Upper Paddle: 
+1 x tap: load on to last / custom brightness; Scene 1, attribute 00 (button 1)
+2 x tap: on to full / max brightness; Scene 1, attribute 03 (button 3)
+3 x tap: enter inclusion (pairing) mode; Scene 1, attribute 04 (button 5)
+4 x tap: Scene 1, attribute 05 (button 7)
+6 x tap: change LED indicator mode (see parameter 2)
+10 x tap: change physical / Z-Wave control mode (see parameter 15)
+press and hold: increase brightness level
+tap-tap-tap-and-hold: factory reset
+
+Lower Paddle: 
+1 x tap: load off; Scene 2, attribute 00 (button 2)
+2 x tap: Scene 2, attribute 03 (button 4)
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04 (button 6)
+4 x tap: Scene 2, attribute 05 (button 8)
+press and hold: decrease brightness level
+tap-tap-tap-and-hold: factory reset
+	</MetaDataItem>
+		<ChangeLog>
+			<Entry author="Brad Parker - https://github.com/bepsoccer" date="6 April 2020" revision="3">Updated for firmware version 3.07</Entry>
+		</ChangeLog>
+	</MetaData>
+	<!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="Paddle Control" size="1" min="0" max="2" value="0">
+			<Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off.  Reverse mode: Upper paddle turns the light off, lower paddle turns the light on.  Toggle mode: Either paddle toggles the light.</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Toggle" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
+			<Help>LED Indication light function.  Normal has the LED Indication on when the switch is off, off when the switch is on. </Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Always Off" value="2"/>
+			<Item label="Always On" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="3" label="Enable Auto Turn-Off Timer" size="1" min="0" max="1" value="0">
+			<Help></Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="int" genre="config" index="4" label="Auto Turn-Off Timer Duration" size="4" min="1" max="65535" value="60" units="minutes">
+			<Help>Time, in minutes, for auto-off timer delay.</Help>
+		</Value>
+		<Value type="list" genre="config" index="5" label="Enable Auto Turn-On Timer" size="1" min="0" max="1" value="0">
+			<Help></Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="int" genre="config" index="6" label="Auto Turn-On Timer Duration" size="4" min="1" max="65535" value="60" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="7" label="Association Reports" units="" min="0" max="15" value="15" size="1">
+			<Help>Choose which physical and Z-Wave triggers should prompt the switch to send a status change report to associated devices.</Help>
+			<Item label="none" value="0" />
+			<Item label="physical tap on ZEN22 only" value="1" />
+			<Item label="physical tap on connected 3-way switch only" value="2" />
+			<Item label="physical tap on ZEN22 or connected 3-way switch" value="3" />
+			<Item label="Z-Wave command from hub" value="4" />
+			<Item label="physical tap on ZEN22 or Z-Wave command from hub" value="5" />
+			<Item label="physical tap on connected 3-way switch or Z-Wave command from hub" value="6" />
+			<Item label="physical tap on ZEN22 / connected 3-way switch or Z-Wave command from hub" value="7" />
+			<Item label="timer only" value="8" />
+			<Item label="physical tap on ZEN22 or timer" value="9" />
+			<Item label="physical tap on connected 3-way switch or timer" value="10" />
+			<Item label="physical tap on ZEN22 / connected 3-way switch or timer" value="11" />
+			<Item label="Z-Wave command from hub or timer" value="12" />
+			<Item label="physical tap on ZEN22, Z-Wave command from hub, or timer" value="13" />
+			<Item label="physical tap on ZEN22 / connected 3-way switch, Z-Wave command from hub, or timer" value="14" />
+			<Item label="all of the above. (default)" value="15" />
+		</Value>
+		<Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
+			<Help>Status after power failure.  Off: always turn light off.  On: always turn light on.  Restore: remember the latest state and restore that state.</Help>
+			<Item label="Off" value="0"/>
+			<Item label="On" value="1"/>
+			<Item label="Restore" value="2"/>
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="9" label="Ramp Rate Control" units="" min="0" max="99" value="1">
+			<Help>Adjust the physical ramp rate for your dimmer (fade-in / fade-out effect for on / off operation). Values correspond to the number of seconds it take for the dimmer to reach full brightness or turn off when operated manually. This setting is for physical taps only, see parameter 17 to adjust Z-Wave ramp rate. Values: 1 – 99 (seconds). 0 – instant on/off. Default: 1</Help>
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="10" label="Minimum Brightness" units="" min="1" max="99" value="1">
+			<Help>Set the minimum brightness level (in %) for your dimmer. You won’t be able to dim the light below the set value. Default: 1</Help>
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="11" label="Maximum Brightness" units="" min="1" max="99" value="99">
+			<Help>Set the maximum brightness level (in %) for your dimmer. You won’t be able to add brightness to the light beyond the set value. Note: if Parameter 12 is set to value 0, Parameter 11 is automatically disabled. Default: 99</Help>
+		</Value>
+		<Value type="list" genre="config" index="12" label="Double Tap Function" size="1" min="0" max="1" value="0">
+			<Help>Double Tap action.  When set to Full, turns light on to 100%.  If set to Maximum Level, turns light on to % set in Parameter 11.</Help>
+			<Item label="Full" value="0"/>
+			<Item label="Maximum Level" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="13" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
+			<Help>Enable or Disable scene control functionality for quick double tap triggers.</Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="14" label="Enable/Disable Double-tap" size="1" min="0" max="2" value="0">
+			<Help>Enables/Disables the double-tap function and assign brightness to single tap.  Last level: single tap returns to last brightness level.  Full/Max level: single tap returns to full/max level</Help>
+			<Item label="Enabled" value="0"/>
+			<Item label="Disabled (last level)" value="1"/>
+			<Item label="Disabled (full/max level)" value="2"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="15" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" min="0" max="2" value="1" size="1">
+			<Help>Enable or disable local on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through paddles.</Help>
+			<Item label="physical paddle control disabled" value="0" />
+			<Item label="physical paddle control enabled (default)" value="1" />
+			<Item label="physical paddle and Z-Wave control disabled" value="2" />
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="16" label="Physical Dimming Speed" units="" min="1" max="99" value="4">
+			<Help>Set the time it takes to get from 0% to 100% brightness when pressing and holding the paddle (physical dimming). The number entered as value corresponds to the number of seconds. Default: 4</Help>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="17" label="Zwave Ramp Rate Control" units="" min="0" max="1" value="1" size="1">
+			<Help>Choose if you want to set the Z-Wave ramp rate independently of the physical ramp rate (using an appropriate command in your hub) or if you want them to match.</Help>
+			<Item label="Z-Wave ramp rate matches the physical ramp rate set in parameter 9" value="0" />
+			<Item label="Z-Wave ramp rate is set independently using appropriate Z-Wave commands (default)" value="1" />
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="18" label="Custom Brightness Level On" units="" min="0" max="99" value="0">
+			<Help>Set the custom brightness level (instead of the last set brightness level) you want the dimmer to come on to when you single tap the upper paddle. Default: 0 - last brightness level</Help>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="19" label="3-Way Switch Type" units="" min="0" max="3" value="0" size="1">
+			<Help>Choose the type of 3-way switch you want to use with this dimmer in a 3-way set-up. Changing this setting can allow you to control brightness and dim the light from both 3-way locations. Use a regular momentary switch (like the Zooz ZAC99 accessory switch) if value is set to 2.</Help>
+			<Item label="regular mechanical 3-way on/off switch, use the connected 3-way switch to turn the light off or on to the last brightness level, dimming only available from the Zooz Z-Wave dimmer and from the hub (or through voice control if smart speaker is integrated with your Z-Wave hub) (default)" value="0" />
+			<Item label="regular mechanical 3-way on/off switch, tap the paddles once to change state (light on or off), tap the paddles twice quickly to turn light on to full brightness, tap the paddles quickly 3 times to enable a dimming sequence (the light will start dimming up and down in a loop) and tap the switch again to set the selected brightness level" value="1" />
+			<Item label="momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence)" value="2" />
+			<Item label="momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence but always reduce brightness after double click)" value="3" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="20" label="Zwave tap and hold Control" units="" min="0" max="1" value="0" size="1">
+			<Help>Choose how you'd like the dimmer to report when paddles are tapped and held and physical / Z-Wave control is enabled or disabled.</Help>
+			<Item label="report each brightness level to hub when physical / Z-Wave control is disabled for physical dimming (final level only reported if physical / Z-Wave control is enabled)" value="0" />
+			<Item label="report final brightness level only for physical dimming, regardless of the physical / Z-Wave control mode" value="1" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="21" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+			<Help>Set reporting behavior for disabled physical control.</Help>
+			<Item label="switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0" />
+			<Item label="switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" value="1" />
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="22" label="Night Light Mode" units="" min="0" max="99" value="20">
+			<Help>Set the brightness level the dimmer will turn on to when off and when lower paddle is held DOWN for a second. Default: 20</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/zooz/zen23v3.xml b/config/zooz/zen23v3.xml
new file mode 100644
index 0000000000..5ab2bb29ae
--- /dev/null
+++ b/config/zooz/zen23v3.xml
@@ -0,0 +1,138 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">ZEN23 Toggle Switch V3</MetaDataItem>
+    <MetaDataItem name="Description">Product features:
+- Manual or remote on/off control from your mobile device or computer (when included to a Z-Wave gateway controller)
+- Z-Wave Plus with improved 500 chip for faster and safer wireless communication
+- Works with LED, CFL, and incandescent bulbs (minimum 15Watts on load required)
+- Based on simple and universal binary switch command class - supported by most Z-Wave controllers
+- May be associated and grouped with other Z-Wave devices for advanced home automation
+- Built-in Z-Wave signal repeater for a stronger and more reliable network 
+
+Specifications:
+- Z-Wave Signal Frequency: 908.42 MHz
+- Power: 120 V, 60 Hz
+- Maximum Load: 960W Incandescent, 150W LED and CFL bulbs, 1800W (15A) Resistive
+- Range: Up to 100 feet line of sight
+- Installation and Use: Indoor Only
+- Operating Temperature: 32-104° F (0-40° C)
+- Dimensions: 4 1/8" tall x 2 1/8" wide (with heat sink tabs,1 3/4" without the tabs) x 1 3/8" deep
+- Weight: 10 oz
+
+
+https://www.support.getzooz.com/kb/article/301-zen23-toggle-switch-change-log/
+https://www.support.getzooz.com/kb/article/317-zen23-on-off-toggle-switch-ver-3-05-advanced-settings/
+MANUAL CONTROL
+Toggle Up: 
+1 x tap: load on; Scene 1, attribute 00 (button 1)
+2 x tap: Scene 1, attribute 03 (button 3)
+3 x tap: enter inclusion (pairing) mode; Scene 1, attribute 04 (button 5)
+4 x tap: Scene 1, attribute 05 (button 7)
+6 x tap: change LED indicator mode (see parameter 2)
+10 x tap: change physical / Z-Wave control mode (see parameter 11)
+tap-tap-tap-and-hold: factory reset
+
+Toggle Down: 
+1 x tap: load off; Scene 2, attribute 00 (button 2)
+2 x tap: Scene 2, attribute 03 (button 4)
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04 (button 6)
+4 x tap: Scene 2, attribute 05 (button 8)
+tap-tap-tap-and-hold: factory reset</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:251c:b111</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://getzooz.com/zooz-zen23-24-toggle-switch.html</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.support.getzooz.com/kb/tag/3/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen23v3.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://cdn.shopify.com/s/files/1/0218/7704/files/zooz-z-wave-plus-toggle-switch-zen23-ver3-manual.pdf?26</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Initiate inclusion at your hub. 2. Toggle up 3 times very quickly at the switch.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Put the Z-Wave hub into exclusion mode. 2. Toggle the switch down 3 times quickly.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, toggle-toggle-toggle’n’hold down for at least 10 seconds.</MetaDataItem>
+    <MetaDataItem id="251c" name="FrequencyName" type="b111">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="251c" name="Identifier" type="b111">ZEN23v3</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="14 June 2020" revision="1">Initial configuration from Zooz product help pages</Entry>
+      <Entry author="FuzzyMistborn - https://github.com/FuzzyMistborn" date="09 February 2021" revision="2">Correct typo of Parameter 19 to Parameter 12</Entry>
+    </ChangeLog>
+  </MetaData>
+ 
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="0" label="On/Off Toggle Orientation" units="" size="1" min="0" max="2" type="list">
+      <Help>Normal mode: Toggle up turns the light on, toggle down turns the light off. Reverse mode: Toggle up turns the light off, toggle down turns the light on. Toggle mode: Either direction toggles the light.</Help>
+      <Item value="0" label="Toggle up to turn the light on, toggle down to turn it off (default)"/>
+      <Item value="1" label="Toggle up to turn the light off, toggle down to turn it on"/>
+	  <Item value="2" label="Toggle up or down to turn light on/off (change state)"/>
+    </Value>
+    <Value genre="config" instance="1" 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="Timer disabled (default)"/>
+      <Item value="1" label="Timer enabled"/>
+    </Value>
+    <Value genre="config" instance="1" index="4" value="60" label="Auto Turn-Off Timer Duration" units="minutes" size="4" min="1" max="65535" type="int">
+      <Help>Time, in minutes, for auto-off timer delay.</Help>
+    </Value>
+    <Value genre="config" instance="1" 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-on timer function.</Help>
+      <Item value="0" label="Timer disabled (default)"/>
+      <Item value="1" label="Timer enabled"/>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="60" label="Auto Turn-On Timer Duration" units="minutes" size="4" min="1" max="65535" type="int">
+      <Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+    </Value>
+	<Value type="list" genre="config" instance="1" index="7" label="Association Reports" units="" min="0" max="15" value="15" size="1">
+	  <Help>Choose which physical and Z-Wave triggers should prompt the switch to send a status change report to associated devices.</Help>
+	  <Item label="None" value="0" />
+	  <Item label="Physical tap on ZEN23 only" value="1" />
+	  <Item label="Physical tap on connected 3-way switch only" value="2" />
+	  <Item label="Physical tap on ZEN23 or connected 3-way switch" value="3" />
+	  <Item label="Z-Wave command from hub" value="4" />
+	  <Item label="Physical tap on ZEN23 or Z-Wave command from hub" value="5" />
+	  <Item label="Physical tap on connected 3-way switch or Z-Wave command from hub" value="6" />
+	  <Item label="Physical tap on ZEN23 / connected 3-way switch or Z-Wave command from hub" value="7" />
+	  <Item label="Timer only" value="8" />
+	  <Item label="Physical tap on ZEN23 or timer" value="9" />
+	  <Item label="Physical tap on connected 3-way switch or timer" value="10" />
+	  <Item label="Physical tap on ZEN23 / connected 3-way switch or timer" value="11" />
+	  <Item label="Z-Wave command from hub or timer" value="12" />
+	  <Item label="Physical tap on ZEN23, Z-Wave command from hub, or timer" value="13" />
+	  <Item label="Physical tap on ZEN23 / connected 3-way switch, Z-Wave command from hub, or timer" value="14" />
+	  <Item label="All of the above. (default)" value="15" />
+	</Value>
+    <Value genre="config" instance="1" index="8" value="2" label="On Off Status After Power Failure" units="" size="1" min="0" max="2" type="list">
+      <Help>Status after Power Failure</Help>
+      <Item value="0" label="Off"/>
+      <Item value="1" label="On"/>
+      <Item value="2" label="Restore"/>
+    </Value>
+    <Value genre="config" instance="1" index="9" value="0" label="Enable/Disable Scene Control" units="" size="1" min="0" max="1" type="list">
+      <Help>Enable or disable scene control functionality for quick double tap triggers.</Help>
+      <Item value="0" label="Scene control disabled (default)."/>
+      <Item value="1" label="Scene Control enabled"/>
+    </Value>
+    <Value genre="config" instance="1" index="11" value="1" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" size="1" min="0" max="2" type="list">
+      <Help>Enable or disable manual on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through the physical switch.</Help>
+      <Item value="0" label="Physical toggle control disabled."/>
+      <Item value="1" label="Physical toggle control enabled (default)."/>
+      <Item value="2" label="Physical toggle and Z-Wave control disabled. NOTE: toggle the switch up 10 times quickly to change this mode."/>
+    </Value>
+	<Value type="list" genre="config" instance="1" index="13" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+      <Help>Set reporting behavior for disabled physical control.</Help>
+	  <Item label="Switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0" />
+	  <Item label="Switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" value="1" />
+	</Value>
+	<Value type="list" genre="config" instance="1" index="12" label="3-Way Switch Type" units="" min="0" max="1" value="0" size="1">
+	  <Help>Choose the type of 3-way switch you want to use in a 3-way set-up.</Help>
+	  <Item label="Regular mechanical 3-way on/off switch, use the connected 3-way switch to turn the light on or off (default)" value="0" />
+	  <Item label="Momentary switch, click once to change status (light on or off)." 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="Group 2" max_associations="5" />
+      <Group index="3" label="Group 3" max_associations="5" />
+    </Associations>
+  </CommandClass>
+ 
+</Product>
diff --git a/config/zooz/zen24v2.xml b/config/zooz/zen24v2.xml
new file mode 100644
index 0000000000..3fc6437a7e
--- /dev/null
+++ b/config/zooz/zen24v2.xml
@@ -0,0 +1,182 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">ZEN24 Dimmer Switch V2</MetaDataItem>
+    <MetaDataItem name="Description">Product features:
+- Manual or remote on/off control and dimming from your mobile device or computer (when included to a Z-Wave gateway controller)
+- Z-Wave Plus with improved 500 chip for faster and safer wireless communication
+- Works with most high-quality DIMMABLE LED, CFL, and incandescent bulbs (20 Watts minimum required)
+- Based on universal command classes - supported by most Z-Wave controllers
+- May be associated and grouped with other Z-Wave devices for advanced home automation
+- Air-gap switch to power the dimmer off when changing light bulbs
+- Built-in Z-Wave signal repeater for a stronger and more reliable network
+
+Specifications:
+- Z-Wave Signal Frequency: 908.42 MHz
+- Power: 120 V, 60 Hz
+- Maximum Load: 500W Single-gang, 400W Double-gang, 300W Triple-gang Incandescent, 150W CFL or LED
+- Range: Up to 100 feet line of sight
+- Installation and Use: Indoor Only
+- Operating Temperature: 32-104° F (0-40° C)
+- Dimensions: 4 1/8" tall x 2 1/8" wide (with heat sink tabs,1 3/4" without the tabs) x 1 3/8" deep
+- Weight: 10 oz
+
+https://www.support.getzooz.com/kb/article/298-zen24-toggle-dimmer-change-log/
+https://www.support.getzooz.com/kb/article/318-zen24-toggle-dimmer-ver-3-08-advanced-settings/
+MANUAL CONTROL
+Toggle Up: 
+1 x tap: load on to last / custom brightness; Scene 1, attribute 00 (button 1)
+2 x tap: on to full / max brightness; Scene 1, attribute 03 (button 3)
+3 x tap: enter inclusion (pairing) mode; Scene 1, attribute 04 (button 5)
+4 x tap: Scene 1, attribute 05 (button 7)
+6 x tap: change LED indicator mode (see parameter 2)
+10 x tap: change physical / Z-Wave control mode (see parameter 15)
+press and hold: increase brightness level
+tap-tap-tap-and-hold: factory reset
+
+Toggle Down: 
+1 x tap: load off; Scene 2, attribute 00 (button 2)
+2 x tap: Scene 2, attribute 03 (button 4)
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04 (button 6)
+4 x tap: Scene 2, attribute 05 (button 8)
+press and hold: decrease brightness level
+tap-tap-tap-and-hold: factory reset</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:261c:b112</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://getzooz.com/zooz-zen23-24-toggle-switch.html</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.support.getzooz.com/kb/tag/4/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen24v2.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://cdn.shopify.com/s/files/1/0218/7704/files/zooz-z-wave-plus-toggle-dimmer-zen24-ver3-manual_889b0743-e025-445a-ac13-0f7742ba0675.pdf?100</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Initiate inclusion at your hub. 2. Toggle up 3 times very quickly at the switch.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Put the Z-Wave hub into exclusion mode. 2. Toggle the switch down 3 times quickly.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, toggle-toggle-toggle’n’hold down for at least 10 seconds.</MetaDataItem>
+    <MetaDataItem id="261c" name="FrequencyName" type="b112">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="261c" name="Identifier" type="b112">ZEN24v2</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="14 June 2020" revision="1">Initial configuration from Zooz product help pages</Entry>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="10 Feb 2021" revision="2">Fix minimum value for parameter 9</Entry>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="28 Feb 2021" revision="3">Fix maximum value for parameter 15</Entry>
+    </ChangeLog>
+  </MetaData>
+ 
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value genre="config" instance="1" index="1" value="0" label="On/Off Toggle Orientation" units="" size="1" min="0" max="2" type="list">
+      <Help>Normal mode: Toggle up turns the light on, toggle down turns the light off. Reverse mode: Toggle up turns the light off, toggle down turns the light on. Toggle mode: Either direction toggles the light.</Help>
+      <Item value="0" label="Toggle up to turn the light on, toggle down to turn it off (default)"/>
+      <Item value="1" label="Toggle up to turn the light off, toggle down to turn it on"/>
+	  <Item value="2" label="Toggle up or down to turn light on/off (change state)"/>
+    </Value>
+    <Value genre="config" instance="1" 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="Timer disabled (default)"/>
+      <Item value="1" label="Timer enabled"/>
+    </Value>
+    <Value genre="config" instance="1" index="4" value="60" label="Auto Turn-Off Timer Duration" units="minutes" size="4" min="1" max="65535" type="int">
+      <Help>Time, in minutes, for auto-off timer delay.</Help>
+    </Value>
+    <Value genre="config" instance="1" 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-on timer function.</Help>
+      <Item value="0" label="Timer Disabled"/>
+      <Item value="1" label="Timer Enabled"/>
+    </Value>
+    <Value genre="config" instance="1" index="6" value="60" label="Auto Turn-On Timer Duration" units="minutes" size="4" min="1" max="65535" type="int">
+      <Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+    </Value>
+	<Value type="list" genre="config" instance="1" index="7" label="Association Reports" units="" min="0" max="15" value="15" size="1">
+	  <Help>Choose which physical and Z-Wave triggers should prompt the switch to send a status change report to associated devices.</Help>
+	  <Item label="None" value="0" />
+	  <Item label="Physical tap on ZEN24 only" value="1" />
+	  <Item label="Physical tap on connected 3-way switch only" value="2" />
+	  <Item label="Physical tap on ZEN24 or connected 3-way switch" value="3" />
+	  <Item label="Z-Wave command from hub" value="4" />
+	  <Item label="Physical tap on ZEN24 or Z-Wave command from hub" value="5" />
+	  <Item label="Physical tap on connected 3-way switch or Z-Wave command from hub" value="6" />
+	  <Item label="Physical tap on ZEN24 / connected 3-way switch or Z-Wave command from hub" value="7" />
+	  <Item label="Timer only" value="8" />
+	  <Item label="Physical tap on ZEN24 or timer" value="9" />
+	  <Item label="Physical tap on connected 3-way switch or timer" value="10" />
+	  <Item label="Physical tap on ZEN24 / connected 3-way switch or timer" value="11" />
+	  <Item label="Z-Wave command from hub or timer" value="12" />
+	  <Item label="Physical tap on ZEN24, Z-Wave command from hub, or timer" value="13" />
+	  <Item label="Physical tap on ZEN24 / connected 3-way switch, Z-Wave command from hub, or timer" value="14" />
+	  <Item label="All of the above. (default)" value="15" />
+	</Value>
+    <Value genre="config" instance="1" index="8" value="2" label="On Off Status After Power Failure" units="" size="1" min="0" max="2" type="list">
+      <Help>Status after Power Failure</Help>
+      <Item value="0" label="Off"/>
+      <Item value="1" label="On"/>
+      <Item value="2" label="Restore"/>
+    </Value>
+    <Value genre="config" instance="1" index="9" value="1" label="Ramp Rate Control" units="seconds" size="1" min="0" max="99" type="byte">
+      <Help>Adjust the physical ramp rate for your dimmer (fade-in / fade-out effect for on / off operation). Values correspond to the number of seconds it take for the dimmer to reach full brightness or turn off when operated manually. This setting is for physical taps only, see parameter 17 to adjust Z-Wave ramp rate. Values: 1 – 99 (seconds). 0 – instant on/off. Default: 1</Help>
+    </Value>
+    <Value genre="config" instance="1" index="10" value="1" label="Minimum Brightness" units="percent" size="1" min="1" max="99" type="byte">
+      <Help>Set the minimum brightness level (in %) for your dimmer. You won’t be able to dim the light below the set value. Default: 1</Help>
+    </Value>
+    <Value genre="config" instance="1" index="11" value="99" label="Maximum Brightness" units="percent" size="1" min="1" max="99" type="byte">
+      <Help>Set the maximum brightness level (in %) for your dimmer. You won’t be able to add brightness to the light beyond the set value. Note: if Parameter 12 is set to value 0, Parameter 11 is automatically disabled. Default: 99</Help>
+    </Value>
+    <Value genre="config" instance="1" index="12" value="0" label="Double Tap Function" units="" size="1" min="0" max="1" type="list">
+      <Help>Choose if you want the dimmer to turn on to full brightness or custom brightness level after you toggle the switch up twice quickly.</Help>
+      <Item value="0" label="Full Brightness"/>
+      <Item value="1" label="Maximum Brightness Level (Parameter 11)"/>
+    </Value>
+    <Value genre="config" instance="1" index="13" value="0" label="Enable/Disable Scene Control" units="" size="1" min="0" max="1" type="list">
+      <Help>Enable or disable scene control functionality for quick double tap triggers.</Help>
+      <Item value="0" label="Scene control disabled (default)."/>
+      <Item value="1" label="Scene Control enabled"/>
+    </Value>
+    <Value genre="config" instance="1" index="14" value="0" label="Enable/Disable Double-tap" units="" size="1" min="0" max="2" type="list">
+      <Help>Enable or disable the double tap function and assign brightness level to single tap.</Help>
+      <Item value="0" label="Double tap to full / maximum brightness level enabled (default)."/>
+      <Item value="1" label="Double tap to full / maximum brightness level disabled, single tap turns light on to last brightness level."/>
+      <Item value="2" label="Double tap to full / maximum brightness level disabled, single tap turns light on to full / maximum brightness level."/>
+    </Value>
+    <Value genre="config" instance="1" index="15" value="1" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" size="1" min="0" max="2" type="list">
+      <Help>Enable or disable manual on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through the physical switch.</Help>
+      <Item value="0" label="Physical toggle control disabled."/>
+      <Item value="1" label="Physical toggle control enabled (default)."/>
+      <Item value="2" label="Physical toggle and Z-Wave control disabled. NOTE: toggle the switch up 10 times quickly to change this mode."/>
+    </Value>
+	<Value type="byte" genre="config" instance="1" index="16" label="Physical Dimming Speed" units="" min="1" max="99" value="4">
+	  <Help>Set the time it takes to get from 0% to 100% brightness when pressing and holding the toggle (physical dimming). The number entered as value corresponds to the number of seconds. Default 4.</Help>
+	</Value>
+	<Value type="list" genre="config" instance="1" index="17" label="Zwave Ramp Rate Control" units="" min="0" max="1" value="1" size="1">
+	  <Help>Choose if you want to set the Z-Wave ramp rate independently of the physical ramp rate (using an appropriate command in your hub) or if you want them to match.</Help>
+	  <Item label="Z-Wave ramp rate matches the physical ramp rate set in parameter 9" value="0" />
+	  <Item label="Z-Wave ramp rate is set independently using appropriate Z-Wave commands (default)" value="1" />
+	</Value>
+	<Value type="byte" genre="config" instance="1" index="18" label="Custom Brightness Level On" units="" min="0" max="99" value="0">
+	  <Help>Set the custom brightness level (instead of the last set brightness level) you want the dimmer to come on to when you toggle the switch up once. Default: 0 - last brightness level</Help>
+	</Value>
+	<Value type="list" genre="config" instance="1" index="19" label="3-Way Switch Type" units="" min="0" max="3" value="0" size="1">
+	  <Help>Choose the type of 3-way switch you want to use with this dimmer in a 3-way set-up. Changing this setting can allow you to control brightness and dim the light from both 3-way locations. Use a regular momentary switch (like the Zooz ZAC99 accessory switch) if value is set to 2.</Help>
+	  <Item label="Toggle switch, use the connected 3-way switch to turn the light off or on to the last brightness level, dimming only available from the Zooz Z-Wave dimmer and from the hub (or through voice control if smart speaker is integrated with your Z-Wave hub)" value="0" />
+	  <Item label="Toggle switch, toggle up or down once to change state (light on or off), toggle twice quickly to turn light on to full brightness, toggle 3 times quickly to enable a dimming sequence (the light will start dimming up and down in a loop) and toggle the switch again to set the selected brightness level" value="1" />
+	  <Item label="Momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence)" value="2" />
+	  <Item label="Momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence but always reduce brightness after double click). Default: 0." value="3" />
+	</Value>
+	<Value type="list" genre="config" instance="1" index="20" label="Zwave tap and hold Control" units="" min="0" max="1" value="0" size="1">
+	  <Help>Choose how you'd like the dimmer to report when the toggle is held and physical / Z-Wave control is enabled or disabled.</Help>
+	  <Item label="Report each brightness level to hub when physical / Z-Wave control is disabled for physical dimming (final level only reported if physical / Z-Wave control is enabled)" value="0" />
+	  <Item label="Report final brightness level only for physical dimming, regardless of the physical / Z-Wave control mode" value="1" />
+	</Value>
+	<Value type="list" genre="config" instance="1" index="21" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+      <Help>Set reporting behavior for disabled physical control.</Help>
+	  <Item label="Switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0" />
+	  <Item label="Switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" value="1" />
+	</Value>
+	<Value type="byte" genre="config" instance="1" index="22" label="Night Light Mode" units="" min="0" max="99" value="20">
+	  <Help>Set the brightness level the dimmer will turn on to when off and when lower paddle is held DOWN for a second. Default: 20</Help>
+	</Value>
+  </CommandClass>
+ 
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="3">
+      <Group index="1" label="Lifeline" max_associations="1" />
+      <Group index="2" label="Group 2" max_associations="5" />
+      <Group index="3" label="Group 3" max_associations="5" />
+    </Associations>
+  </CommandClass>
+ 
+</Product>
diff --git a/config/zooz/zen26.xml b/config/zooz/zen26.xml
index 5d1162b8c2..891766d1fc 100644
--- a/config/zooz/zen26.xml
+++ b/config/zooz/zen26.xml
@@ -1,24 +1,24 @@
-<!-- 
-Zooz ZEN26 S2 On Off Wall Switch 
+<!--
+Zooz ZEN26 S2 On Off Wall Switch
 https://products.z-wavealliance.org/products/3147
---><Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
-  <MetaData>
-    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027A:A001:A000</MetaDataItem>
-    <MetaDataItem name="ProductPic">images/zooz/zen26.png</MetaDataItem>
-    <MetaDataItem id="A001" name="ZWProductPage" type="A000">https://products.z-wavealliance.org/products/3147/</MetaDataItem>
-    <MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, tap-tap-tap’n’hold the upper paddle for at least 10 seconds. The LED indicator will flash to confirm successful reset.
+--><Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+	<MetaData>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027A:A001:A000</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/zooz/zen26.png</MetaDataItem>
+		<MetaDataItem id="A001" name="ZWProductPage" type="A000">https://products.z-wavealliance.org/products/3147/</MetaDataItem>
+		<MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, tap-tap-tap’n’hold the upper paddle for at least 10 seconds. The LED indicator will flash to confirm successful reset.
 NOTE: All previously recorded activity and custom settings will be erased from the device’s memory.</MetaDataItem>
-    <MetaDataItem name="ExclusionDescription">1. Bring your Z-Wave gateway (hub) close to the switch if possible
+		<MetaDataItem name="ExclusionDescription">1. Bring your Z-Wave gateway (hub) close to the switch if possible
 2. Put the Z-Wave hub into exclusion mode (not sure how to do that?
 ask@getzooz.com)
 3. Tap the lower paddle on the switch 3 times quickly</MetaDataItem>
-    <MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub.
+		<MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub.
 2. Tap the upper paddle on the switch 3 times quickly.</MetaDataItem>
-    <MetaDataItem id="A001" name="FrequencyName" type="A000">U.S. / Canada / Mexico</MetaDataItem>
-    <MetaDataItem id="A001" name="Identifier" type="A000">ZEN26</MetaDataItem>
-    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3147/zooz-z-wave-plus-s2-on-off-switch-zen26-manual.pdf</MetaDataItem>
-    <MetaDataItem name="Name">S2 On Off Switch</MetaDataItem>
-    <MetaDataItem name="Description">FEATURES:
+		<MetaDataItem id="A001" name="FrequencyName" type="A000">U.S. / Canada / Mexico</MetaDataItem>
+		<MetaDataItem id="A001" name="Identifier" type="A000">ZEN26</MetaDataItem>
+		<MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3147/zooz-z-wave-plus-s2-on-off-switch-zen26-manual.pdf</MetaDataItem>
+		<MetaDataItem name="Name">S2 On Off Switch</MetaDataItem>
+		<MetaDataItem name="Description">FEATURES:
 - Manual or Z-Wave on/off control with instant status updates
 - Simple Direct 3-Way: connect with existing on/off switches in 3-way, 4-way, and 5-way set-ups, no add-on needed (neutral wire required)
 - Remembers and restores on/off status after power failure
@@ -35,65 +35,110 @@ SPECIFICATIONS:
 - Maximum Load: 8 A, 150 W LED/CFL, 600 W incandescent, 1200 W resistive
 - Range: Up to 100 feet line of sight
 - Operating Temperature: 32-104° F (0-40° C)
-- Installation and Use: Indoor only</MetaDataItem>
-    <ChangeLog>
-      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3147/xml</Entry>
-      <Entry author="David Alden - dave@alden.name" date="23 Oct 2019" revision="3">Updated for firmware version 2.0</Entry>
-    </ChangeLog>
-  </MetaData>
-  <!-- Configuration Parameters -->
-  <CommandClass id="112">
-    <Value type="list" genre="config" index="1" label="Paddle Control" size="1" min="0" max="2" value="0">
-      <Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off.  Reverse mode: Upper paddle turns the light off, lower paddle turns the light on.  Toggle mode: Either paddle toggles the light.</Help>
-      <Item label="Normal" value="0"/>
-      <Item label="Reverse" value="1"/>
-      <Item label="Toggle" value="2"/>
-    </Value>
-    <Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
-      <Help>LED Indication light function.  Normal has the LED Indication on when the switch is off, off when the switch is on. </Help>
-      <Item label="Normal" value="0"/>
-      <Item label="Reverse" value="1"/>
-      <Item label="Always Off" value="2"/>
-      <Item label="Always On" value="3"/>
-    </Value>
-    <Value type="list" genre="config" index="3" label="Enable Auto Turn-Off Timer" size="1" min="0" max="1" value="0">
-      <Help></Help>
-      <Item label="Disabled" value="0"/>
-      <Item label="Enabled" value="1"/>
-    </Value>
-    <Value type="short" genre="config" index="4" label="Auto Turn-Off Timer Duration" size="2" min="1" max="65535" value="60" units="minutes">
-      <Help>Time, in minutes, for auto-off timer delay.</Help>
-    </Value>
-    <Value type="list" genre="config" index="5" label="Enable Auto Turn-On Timer" size="1" min="0" max="1" value="0">
-      <Help></Help>
-      <Item label="Disabled" value="0"/>
-      <Item label="Enabled" value="1"/>
-    </Value>
-    <Value type="short" genre="config" index="6" label="Auto Turn-On Timer Duration" size="2" min="1" max="65535" value="60" units="minutes">
-      <Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
-    </Value>
-    <Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
-      <Help>Status after power failure.  Off: always turn light off.  On: always turn light on.  Restore: remember the latest state and restore that state.</Help>
-      <Item label="Off" value="0"/>
-      <Item label="On" value="1"/>
-      <Item label="Restore" value="2"/>
-    </Value>
-    <Value type="list" genre="config" index="10" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
-      <Help>Enable or Disable scene control functionality for quick double tap triggers (Available for select hubs only).</Help>
-      <Item label="Disabled" value="0"/>
-      <Item label="Enabled" value="1"/>
-    </Value>
-    <Value type="list" genre="config" index="11" label="Enable/Disable Paddle Control" size="1" min="0" max="1" value="1">
-      <Help>If enabled, you'll only be able to control the connected light via Z-Wave.  Scenes and other functionality will still be available through paddles.</Help>
-      <Item label="Disabled" value="0"/>
-      <Item label="Enabled" 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="Status" max_associations="5"/>
-    </Associations>
-  </CommandClass>
+- Installation and Use: Indoor only
+
+https://www.support.getzooz.com/kb/article/315-zooz-s2-on-off-switch-zen26-ver-2-03-advanced-settings/
+MANUAL CONTROL
+Upper Paddle:
+1 x tap: load on; Scene 1, attribute 00 (button 1)
+2 x tap: Scene 1, attribute 03 (button 3)
+3 x tap: enter inclusion (pairing) mode; Scene 1, attribute 04 (button 5)
+4 x tap: Scene 1, attribute 05 (button 7)
+6 x tap: change LED indicator mode (see parameter 2)
+10 x tap: change physical / Z-Wave control mode (see parameter 11)
+tap-tap-tap-and-hold: factory reset
+
+Lower Paddle: 
+1 x tap: load off; Scene 2, attribute 00 (button 2)
+2 x tap: Scene 2, attribute 03 (button 4)
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04 (button 6)
+4 x tap: Scene 2, attribute 05 (button 8)
+tap-tap-tap-and-hold: factory reset
+	</MetaDataItem>
+		<ChangeLog>
+			<Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3147/xml</Entry>
+			<Entry author="David Alden - dave@alden.name" date="23 Oct 2019" revision="3">Updated for firmware version 2.0</Entry>
+			<Entry author="Brad Parker - https://github.com/bepsoccer" date="13 April 2020" revision="4">Updated for firmware version 2.03</Entry>
+		</ChangeLog>
+	</MetaData>
+	<!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="Paddle Control" size="1" min="0" max="2" value="0">
+			<Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off.  Reverse mode: Upper paddle turns the light off, lower paddle turns the light on.  Toggle mode: Either paddle toggles the light.</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Toggle" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
+			<Help>LED Indication light function.  Normal has the LED Indication on when the switch is off, off when the switch is on. </Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Always Off" value="2"/>
+			<Item label="Always On" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="3" label="Enable Auto Turn-Off Timer" size="1" min="0" max="1" value="0">
+			<Help></Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="int" genre="config" index="4" label="Auto Turn-Off Timer Duration" size="4" min="1" max="65535" value="60" units="minutes">
+			<Help>Time, in minutes, for auto-off timer delay.</Help>
+		</Value>
+		<Value type="list" genre="config" index="5" label="Enable Auto Turn-On Timer" size="1" min="0" max="1" value="0">
+			<Help></Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="int" genre="config" index="6" label="Auto Turn-On Timer Duration" size="4" min="1" max="65535" value="60" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="7" label="Association Reports" units="" min="0" max="15" value="15" size="1">
+			<Help>Choose which physical and Z-Wave triggers should prompt the switch to send a status change report to associated devices.</Help>
+			<Item label="none" value="0" />
+			<Item label="physical tap on ZEN26 only" value="1" />
+			<Item label="physical tap on connected 3-way switch only" value="2" />
+			<Item label="physical tap on ZEN26 or connected 3-way switch" value="3" />
+			<Item label="Z-Wave command from hub" value="4" />
+			<Item label="physical tap on ZEN26 or Z-Wave command from hub" value="5" />
+			<Item label="physical tap on connected 3-way switch or Z-Wave command from hub" value="6" />
+			<Item label="physical tap on ZEN26 / connected 3-way switch or Z-Wave command from hub" value="7" />
+			<Item label="timer only" value="8" />
+			<Item label="physical tap on ZEN26 or timer" value="9" />
+			<Item label="physical tap on connected 3-way switch or timer" value="10" />
+			<Item label="physical tap on ZEN26 / connected 3-way switch or timer" value="11" />
+			<Item label="Z-Wave command from hub or timer" value="12" />
+			<Item label="physical tap on ZEN26, Z-Wave command from hub, or timer" value="13" />
+			<Item label="physical tap on ZEN26 / connected 3-way switch, Z-Wave command from hub, or timer" value="14" />
+			<Item label="all of the above. (default)" value="15" />
+		</Value>
+		<Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
+			<Help>Status after power failure.  Off: always turn light off.  On: always turn light on.  Restore: remember the latest state and restore that state.</Help>
+			<Item label="Off" value="0"/>
+			<Item label="On" value="1"/>
+			<Item label="Restore" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="10" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
+			<Help>Enable or Disable scene control functionality for quick double tap triggers (Available for select hubs only).</Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="11" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" min="0" max="2" value="1" size="1">
+			<Help>Enable or disable local on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through paddles.</Help>
+			<Item label="physical paddle control disabled" value="0" />
+			<Item label="physical paddle control enabled (default)" value="1" />
+			<Item label="physical paddle and Z-Wave control disabled" value="2" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="13" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+			<Help>Set reporting behavior for disabled physical control.</Help>
+			<Item label="switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0" />
+			<Item label="switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" 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="Status" max_associations="5"/>
+		</Associations>
+	</CommandClass>
 </Product>
diff --git a/config/zooz/zen27.xml b/config/zooz/zen27.xml
index b81b58814a..ebdbe66c45 100644
--- a/config/zooz/zen27.xml
+++ b/config/zooz/zen27.xml
@@ -1,10 +1,21 @@
 <?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/027a:a002:a000</MetaDataItem>
-    <MetaDataItem name="ProductPic">images/zooz/zen27.png</MetaDataItem>
-    <MetaDataItem id="000A" name="ZWProductPage" type="0101">https://products.z-wavealliance.org/products/3148</MetaDataItem>
-    <MetaDataItem name="Description">Product features:
+<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
+	<MetaData>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:a002:a000</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/zooz/zen27.png</MetaDataItem>
+		<MetaDataItem id="000A" name="ZWProductPage" type="0101">https://products.z-wavealliance.org/products/3148</MetaDataItem>
+		<MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, tap-tap-tap’n’hold the upper paddle for at least 10 seconds. The LED indicator will flash to confirm successful reset.
+		NOTE: All previously recorded activity and custom settings will be erased from the device’s memory.</MetaDataItem>
+		<MetaDataItem name="ExclusionDescription">1. Bring your Z-Wave gateway (hub) close to the switch if possible
+2. Put the Z-Wave hub into exclusion mode (not sure how to do that?
+ask@getzooz.com)
+3. Tap the lower paddle on the switch 3 times quickly</MetaDataItem>
+		<MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub.  2. Tap the upper paddle on the switch 3 times quickly.</MetaDataItem>
+		<MetaDataItem id="A002" name="FrequencyName" type="A000">U.S. / Canada / Mexico</MetaDataItem>
+		<MetaDataItem id="A002" name="Identifier" type="A000">ZEN27</MetaDataItem>
+		<MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3148/zooz-z-wave-plus-s2-dimmer-switch-zen27-manual.pdf</MetaDataItem>
+		<MetaDataItem name="Name">S2 Dimmer</MetaDataItem>
+		<MetaDataItem name="Description">Product features:
 - Manual or Z-Wave on/off and brightness control
 - Simple Direct 3-Way: connect with existing on/off switches in 3-way, 4-way, and 5-way set-ups, no add-on needed (neutral wire required)
 - Fully adjustable ramp rate for just the right on/off speed
@@ -25,101 +36,154 @@ both sides of heat sink tabs off)
 - Range: Up to 100 feet line of sight
 - Operating Temperature: 32-104° F (0-40° C)
 - Installation and Use: Indoor only
-    </MetaDataItem>
-    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/3148/zooz-z-wave-plus-s2-dimmer-switch-zen27-manual.pdf</MetaDataItem>
-    <MetaDataItem id="A002" name="FrequencyName" type="A000">U.S. / Canada / Mexico</MetaDataItem>
-    <MetaDataItem name="Name">S2 Dimmer</MetaDataItem>
-    <MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub.  2. Tap the upper paddle on the switch 3 times quickly.
-    </MetaDataItem>
-    <MetaDataItem id="A002" name="Identifier" type="A000">ZEN27</MetaDataItem>
-    <MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, tap-tap-tap’n’hold the upper paddle for at least 10 seconds. The LED indicator will flash to confirm successful reset.
-    NOTE: All previously recorded activity and custom settings will be erased from the device’s memory.
-    </MetaDataItem>
-    <MetaDataItem name="ExclusionDescription">1. Bring your Z-Wave gateway (hub) close to the switch if possible
-2. Put the Z-Wave hub into exclusion mode (not sure how to do that?
-ask@getzooz.com)
-3. Tap the lower paddle on the switch 3 times quickly</MetaDataItem>
-    <ChangeLog>
-      <Entry author="David Alden - dave@alden.name" date="23 Oct 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3148/xml - this requires v2.0 (or newer) firmware</Entry>
-    </ChangeLog>
-  </MetaData>
 
-  <!-- https://products.z-wavealliance.org/products/3148 -->
+https://www.support.getzooz.com/kb/article/314-zooz-s2-dimmer-zen27-ver-2-08-advanced-settings/
+MANUAL CONTROL
+Upper Paddle:
+1 x tap: load on to last / custom brightness; Scene 1, attribute 00 (button 1)
+2 x tap: on to full / max brightness; Scene 1, attribute 03 (button 3)
+3 x tap: enter inclusion (pairing) mode; Scene 1, attribute 04 (button 5)
+4 x tap: Scene 1, attribute 05 (button 7)
+6 x tap: change LED indicator mode (see parameter 2)
+10 x tap: change physical / Z-Wave control mode (see parameter 15)
+press and hold: increase brightness level
+tap-tap-tap-and-hold: factory reset
+
+Lower Paddle:
+1 x tap: load off; Scene 2, attribute 00 (button 2)
+2 x tap: Scene 2, attribute 03 (button 4)
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04 (button 6)
+4 x tap: Scene 2, attribute 05 (button 8)
+press and hold: decrease brightness level
+tap-tap-tap-and-hold: factory reset
+		</MetaDataItem>
+		<ChangeLog>
+			<Entry author="David Alden - dave@alden.name" date="23 Oct 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3148/xml - this requires v2.0 (or newer) firmware</Entry>
+			<Entry author="Brad Parker - https://github.com/bepsoccer" date="13 April 2020" revision="3">Updated for firmware version 2.08</Entry>
+			<Entry author="Brad Parker - https://github.com/bepsoccer" date="28 May 2020" revision="4">Updated for param 9 min value</Entry>
+		</ChangeLog>
+	</MetaData>
+
+	<!-- https://products.z-wavealliance.org/products/3148 -->
 
-  <!-- Configuration Parameters -->
-  <CommandClass id="112">
-    <Value type="list" genre="config" index="1" label="Paddle Control" size="1" min="0" max="2" value="0">
-      <Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off.  Reverse mode: Upper paddle turns the light off, lower paddle turns the light on.  Toggle mode: Either paddle toggles the light.</Help>
-      <Item label="Normal" value="0"/>
-      <Item label="Reverse" value="1"/>
-      <Item label="Toggle" value="2"/>
-    </Value>
-    <Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
-      <Help>LED Indication light function.  Normal has the LED Indication on when the switch is off, off when the switch is on. </Help>
-      <Item label="Normal" value="0"/>
-      <Item label="Reverse" value="1"/>
-      <Item label="Always Off" value="2"/>
-      <Item label="Always On" value="3"/>
-    </Value>
-    <Value type="list" genre="config" index="3" label="Enable Auto Turn-Off Timer" size="1" min="0" max="1" value="0">
-      <Help></Help>
-      <Item label="Disabled" value="0"/>
-      <Item label="Enabled" value="1"/>
-    </Value>
-    <Value type="short" genre="config" index="4" label="Auto Turn-Off Timer Duration" size="2" min="1" max="65535" value="60" units="minutes">
-      <Help>Time, in minutes, for auto-off timer delay.</Help>
-    </Value>
-    <Value type="list" genre="config" index="5" label="Enable Auto Turn-On Timer" size="1" min="0" max="1" value="0">
-      <Help></Help>
-      <Item label="Disabled" value="0"/>
-      <Item label="Enabled" value="1"/>
-    </Value>
-    <Value type="short" genre="config" index="6" label="Auto Turn-On Timer Duration" size="2" min="1" max="65535" value="60" units="minutes">
-      <Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
-    </Value>
-    <Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
-      <Help>Status after power failure.  Off: always turn light off.  On: always turn light on.  Restore: remember the latest state and restore that state.</Help>
-      <Item label="Off" value="0"/>
-      <Item label="On" value="1"/>
-      <Item label="Restore" value="2"/>
-    </Value>
-    <Value type="byte" genre="config" index="9" label="Ramp Rate Control" size="1" min="1" max="99" value="1" units="seconds">
-      <Help>Adjust the ramp rate for your dimmer (fade-in / fade-out effect for on / off operation). Values correspond to the number of seconds it take for the dimmer to reach full brightness or turn off when operated manually.</Help>
-    </Value>
-    <Value type="byte" genre="config" index="10" label="Minimum Brightness" size="1" min="1" max="99" value="1" units="%">
-      <Help>Set the minimum brightness level (in %) for your dimmer. You won't be able to dim the light below the set value.</Help>
-    </Value>
-    <Value type="byte" genre="config" index="11" label="Maximum Brightness" size="1" min="1" max="99" value="99" units="%">
-      <Help> Set the maximum brightness level (in %) for your dimmer. You won't be able to add brightness to the light beyond the set value. Note: if Parameter 12 is set to value "Full", Parameter 11 is automatically disabled.</Help>
-    </Value>
-    <Value type="list" genre="config" index="12" label="Double Tap Function" size="1" min="0" max="1" value="0">
-      <Help>Double Tap action.  When set to Full, turns light on to 100%.  If set to Maximum Level, turns light on to % set in Parameter 11.</Help>
-      <Item label="Full" value="0"/>
-      <Item label="Maximum Level" value="1"/>
-    </Value>
-    <Value type="list" genre="config" index="13" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
-      <Help>Enable or Disable scene control functionality for quick double tap triggers.</Help>
-      <Item label="Disabled" value="0"/>
-      <Item label="Enabled" value="1"/>
-    </Value>
-    <Value type="list" genre="config" index="14" label="Enable/Disable Double-tap" size="1" min="0" max="2" value="0">
-      <Help>Enables/Disables the double-tap fucntion and assign brightness to single tap.  Last level: single tap returns to last brightness level.  Full/Max level: single tap returns to full/max level</Help>
-      <Item label="Enabled" value="0"/>
-      <Item label="Disabled (last level)" value="1"/>
-      <Item label="Disabled (full/max level)" value="2"/>
-    </Value>
-    <Value type="list" genre="config" index="15" label="Enable/Disable Paddle Control" size="1" min="0" max="1" value="1">
-      <Help>If enabled, you'll only be able to control the connected light via Z-Wave.  Scenes and other functionality will still be available through paddles.</Help>
-      <Item label="Disabled" value="0"/>
-      <Item label="Enabled" value="1"/>
-    </Value>
-  </CommandClass>
+	<!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="Paddle Control" size="1" min="0" max="2" value="0">
+			<Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off.  Reverse mode: Upper paddle turns the light off, lower paddle turns the light on.  Toggle mode: Either paddle toggles the light.</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Toggle" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
+			<Help>LED Indication light function.  Normal has the LED Indication on when the switch is off, off when the switch is on. </Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Always Off" value="2"/>
+			<Item label="Always On" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="3" label="Enable Auto Turn-Off Timer" size="1" min="0" max="1" value="0">
+			<Help></Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="int" genre="config" index="4" label="Auto Turn-Off Timer Duration" size="4" min="1" max="65535" value="60" units="minutes">
+			<Help>Time, in minutes, for auto-off timer delay.</Help>
+		</Value>
+		<Value type="list" genre="config" index="5" label="Enable Auto Turn-On Timer" size="1" min="0" max="1" value="0">
+			<Help></Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="int" genre="config" index="6" label="Auto Turn-On Timer Duration" size="4" min="1" max="65535" value="60" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="7" label="Association Reports" units="" min="0" max="15" value="15" size="1">
+			<Help>Choose which physical and Z-Wave triggers should prompt the switch to send a status change report to associated devices.</Help>
+			<Item label="none" value="0" />
+			<Item label="physical tap on ZEN27 only" value="1" />
+			<Item label="physical tap on connected 3-way switch only" value="2" />
+			<Item label="physical tap on ZEN27 or connected 3-way switch" value="3" />
+			<Item label="Z-Wave command from hub" value="4" />
+			<Item label="physical tap on ZEN27 or Z-Wave command from hub" value="5" />
+			<Item label="physical tap on connected 3-way switch or Z-Wave command from hub" value="6" />
+			<Item label="physical tap on ZEN27 / connected 3-way switch or Z-Wave command from hub" value="7" />
+			<Item label="timer only" value="8" />
+			<Item label="physical tap on ZEN27 or timer" value="9" />
+			<Item label="physical tap on connected 3-way switch or timer" value="10" />
+			<Item label="physical tap on ZEN27 / connected 3-way switch or timer" value="11" />
+			<Item label="Z-Wave command from hub or timer" value="12" />
+			<Item label="physical tap on ZEN27, Z-Wave command from hub, or timer" value="13" />
+			<Item label="physical tap on ZEN27 / connected 3-way switch, Z-Wave command from hub, or timer" value="14" />
+			<Item label="all of the above. (default)" value="15" />
+		</Value>
+		<Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
+			<Help>Status after power failure.  Off: always turn light off.  On: always turn light on.  Restore: remember the latest state and restore that state.</Help>
+			<Item label="Off" value="0"/>
+			<Item label="On" value="1"/>
+			<Item label="Restore" value="2"/>
+		</Value>
+		<Value type="byte" genre="config" index="9" label="Ramp Rate Control" size="1" min="0" max="99" value="1" units="seconds">
+			<Help>Adjust the physical ramp rate for your dimmer (fade-in / fade-out effect for on / off operation). Values correspond to the number of seconds it take for the dimmer to reach full brightness or turn off when operated manually. This setting is for physical taps only, see parameter 17 to adjust Z-Wave ramp rate. Values: 1 – 99 (seconds). 0 – instant on/off. Default: 1</Help>
+		</Value>
+		<Value type="byte" genre="config" index="10" label="Minimum Brightness" size="1" min="1" max="99" value="1" units="%">
+			<Help>Set the minimum brightness level (in %) for your dimmer. You won't be able to dim the light below the set value.</Help>
+		</Value>
+		<Value type="byte" genre="config" index="11" label="Maximum Brightness" size="1" min="1" max="99" value="99" units="%">
+			<Help> Set the maximum brightness level (in %) for your dimmer. You won't be able to add brightness to the light beyond the set value. Note: if Parameter 12 is set to value "Full", Parameter 11 is automatically disabled.</Help>
+		</Value>
+		<Value type="list" genre="config" index="12" label="Double Tap Function" size="1" min="0" max="1" value="0">
+			<Help>Double Tap action.  When set to Full, turns light on to 100%.  If set to Maximum Level, turns light on to % set in Parameter 11.</Help>
+			<Item label="Full" value="0"/>
+			<Item label="Maximum Level" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="13" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
+			<Help>Enable or Disable scene control functionality for quick double tap triggers.</Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="14" label="Enable/Disable Double-tap" size="1" min="0" max="2" value="0">
+			<Help>Enables/Disables the double-tap function and assign brightness to single tap.  Last level: single tap returns to last brightness level.  Full/Max level: single tap returns to full/max level</Help>
+			<Item label="Enabled" value="0"/>
+			<Item label="Disabled (last level)" value="1"/>
+			<Item label="Disabled (full/max level)" value="2"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="15" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" min="0" max="2" value="1" size="1">
+			<Help>Enable or disable local on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through paddles.</Help>
+			<Item label="physical paddle control disabled" value="0" />
+			<Item label="physical paddle control enabled (default)" value="1" />
+			<Item label="physical paddle and Z-Wave control disabled" value="2" />
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="16" label="Physical Dimming Speed" units="" min="1" max="99" value="4">
+			<Help>Set the time it takes to get from 0% to 100% brightness when pressing and holding the paddle (physical dimming). The number entered as value corresponds to the number of seconds. Default: 4</Help>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="17" label="Zwave Ramp Rate Control" units="" min="0" max="1" value="1" size="1">
+			<Help>Choose if you want to set the Z-Wave ramp rate independently of the physical ramp rate (using an appropriate command in your hub) or if you want them to match.</Help>
+			<Item label="Z-Wave ramp rate matches the physical ramp rate set in parameter 9" value="0" />
+			<Item label="Z-Wave ramp rate is set independently using appropriate Z-Wave commands (default)" value="1" />
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="18" label="Custom Brightness Level On" units="" min="0" max="99" value="0">
+			<Help>Set the custom brightness level (instead of the last set brightness level) you want the dimmer to come on to when you single tap the upper paddle. Default: 0 - last brightness level</Help>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="20" label="Zwave tap and hold Control" units="" min="0" max="1" value="0" size="1">
+			<Help>Choose how you'd like the dimmer to report when paddles are tapped and held and physical / Z-Wave control is enabled or disabled.</Help>
+			<Item label="report each brightness level to hub when physical / Z-Wave control is disabled for physical dimming (final level only reported if physical / Z-Wave control is enabled)" value="0" />
+			<Item label="report final brightness level only for physical dimming, regardless of the physical / Z-Wave control mode" value="1" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="21" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+			<Help>Set reporting behavior for disabled physical control.</Help>
+			<Item label="switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0" />
+			<Item label="switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" value="1" />
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="22" label="Night Light Mode" units="" min="0" max="99" value="20">
+			<Help>Set the brightness level the dimmer will turn on to when off and when lower paddle is held DOWN for a second. Default: 20</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="5" label="Status"/>
-    </Associations>
-  </CommandClass>
+	<!-- Association Groups -->
+	<CommandClass id="133">
+		<Associations num_groups="2">
+			<Group index="1" max_associations="1" label="Lifeline"/>
+			<Group index="2" max_associations="5" label="Status"/>
+		</Associations>
+	</CommandClass>
 </Product>
diff --git a/config/zooz/zen30.xml b/config/zooz/zen30.xml
new file mode 100644
index 0000000000..ff3add27e3
--- /dev/null
+++ b/config/zooz/zen30.xml
@@ -0,0 +1,183 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+	<MetaData>
+		<MetaDataItem name="Name">Double Switch</MetaDataItem>
+		<MetaDataItem name="Description">PRODUCT FEATURES:
+- Manual or Z-Wave control of 2 separate loads (dimmer + relay)
+- Perfect replacement for a fan / light combo (neutral wire required)
+- Scene control for multi-tap scenarios on select hubs
+- Quick and easy pigtail wire installation (single pole only)
+- 4-color LED indicator and air-gap switch for added safety
+- Fully customizable dimming features including ramp rate, on
+brightness level, and double tap to full brightness
+- Remembers and restores on/off status after power failure
+- Built-in Z-Wave Plus signal repeater to extend network range
+- S2 security protocol and 500 Z-Wave chip
+
+SPECIFICATIONS:
+- Model Number: ZEN30
+- Z-Wave Signal Frequency: 908.42 MHz
+- Power: 120 VAC, 60 Hz
+- Dimmer Max Load: 75 W LED, 250 W incandescent; DON’T use with tube lights, DC powered fixtures, or chandeliers
+- Relay Max Load: 15 A (1/2 HP)
+- Operating Temperature: 32-104° F (0-40° C)
+- Installation and Use: Indoor only
+		</MetaDataItem>
+		<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:a008:a000</MetaDataItem>
+		<MetaDataItem name="ProductPage">http://www.getzooz.com/</MetaDataItem>
+		<MetaDataItem name="ProductSupport">http://www.support.getzooz.com/kb/section/134</MetaDataItem>
+		<MetaDataItem name="ProductPic">images/zooz/zen30.png</MetaDataItem>
+		<MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3791/zooz-s2-double-switch-zen30-ver1-manual-online.pdf</MetaDataItem>
+		<MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub.  2. Tap the upper paddle on the switch 3 times quickly.</MetaDataItem>
+		<MetaDataItem name="ExclusionDescription">1. Bring your Z-Wave gateway (hub) close to the switch if possible.
+2. Put the Z-Wave hub into exclusion mode (not sure how to do that?	ask@getzooz.com)
+3. Tap the lower paddle on the switch 3 times quickly
+4. Your hub will confirm exclusion and the device will disappear from your controller's device list</MetaDataItem>
+		<MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, press and hold the lower paddle on the dimmer for at least 15 seconds until the LED indicators start flashing, then release.  Then immediately press and hold the upper paddle on the dimmer for at least 15 seconds.  The LED indicators will flash again to confirm successful reset.</MetaDataItem>
+		<MetaDataItem id="A008" name="ZWProductPage" type="A000">https://products.z-wavealliance.org/products/3791</MetaDataItem>
+		<MetaDataItem id="A008" name="FrequencyName" type="A000">U.S. / Canada / Mexico</MetaDataItem>
+		<MetaDataItem id="A008" name="Identifier" type="A000">ZEN30</MetaDataItem>
+		<ChangeLog>
+			<Entry author="David Alden - dave@alden.name" date="16 Feb 2020" revision="2">Initial Metadata Import</Entry>
+			<Entry author="Brad Parker - https://github.com/bepsoccer" date="21 April 2020" revision="3">Updated for firmware version 1.04</Entry>
+		</ChangeLog>
+	</MetaData>
+
+	<!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="LED Indicator Mode for Dimmer" size="1" min="0" max="3" value="0">
+			<Help>LED Indicator Mode for Dimmer.  Normal has the dimmer (top) LED indication on when the switch is off, off when the switch is on.  Default: Normal</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Always Off" value="2"/>
+			<Item label="Always On" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="2" label="LED Indicator Mode for Relay" size="1" min="0" max="3" value="0">
+			<Help>LED Indicator Mode for Relay.  Normal has the relay (bottom) LED indication on when the switch is off, off when the switch is on.  Default: Normal</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Always Off" value="2"/>
+			<Item label="Always On" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="3" label="LED Indicator Color for Dimmer" size="1" min="0" max="3" value="0">
+			<Help>LED Indicater color for Dimmer.  White, Blue, Green or Red.  Default: White</Help>
+			<Item label="white" value="0"/>
+			<Item label="blue" value="1"/>
+			<Item label="green" value="2"/>
+			<Item label="red" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="4" label="LED Indicator Color for Relay" size="1" min="0" max="3" value="0">
+			<Help>LED Indicater color for Relay.  White, Blue, Green or Red.  Default: White</Help>
+			<Item label="white" value="0"/>
+			<Item label="blue" value="1"/>
+			<Item label="green" value="2"/>
+			<Item label="red" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="5" label="LED Indicator Brightness for Dimmer" size="1" min="0" max="2" value="1">
+			<Help>LED Indicater Brightness for Dimmer.  Bright (100%), Medium (60%) or Low (30%).  Default: Medium</Help>
+			<Item label="bright" value="0"/>
+			<Item label="medium" value="1"/>
+			<Item label="low" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="6" label="LED Indicator Brightness for Relay" size="1" min="0" max="2" value="1">
+			<Help>LED Indicater Brightness for Relay.  Bright (100%), Medium (60%) or Low (30%).  Default: Medium</Help>
+			<Item label="bright" value="0"/>
+			<Item label="medium" value="1"/>
+			<Item label="low" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="7" label="LED Indicator Mode for Scene Control" size="1" min="0" max="1" value="1">
+			<Help>LED Indicator Mode for Scene Control.  Enable/Disable LED indicators next to the dimmer lighting up when a scene is selected.  Default: disabled</Help>
+			<Item label="enabled" value="0"/>
+			<Item label="disabled" value="1"/>
+		</Value>
+		<Value type="int" genre="config" index="8" label="Auto Turn-Off Timer for Dimmer" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Auto Turn-Off Timer for Dimmer.  Sets the time (in minutes) after which you want the dimmer to automatically turn off once it has been turned on.  Range: 1-65535.  Default: 0 (disabled)</Help>
+		</Value>
+		<Value type="int" genre="config" index="9" label="Auto Turn-On Timer for Dimmer" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Auto Turn-On Timer for Dimmer.  Sets the time (in minutes) after which you want the dimmer to automatically turn on once it has been turned off.  Range: 1-65535.  Default: 0 (disabled)</Help>
+		</Value>
+		<Value type="int" genre="config" index="10" label="Auto Turn-Off Timer for Relay" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Auto Turn-Off Timer for Relay.  Sets the time (in minutes) after which you want the relay to automatically turn off once it has been turned on.  Range: 1-65535.  Default: 0 (disabled)</Help>
+		</Value>
+		<Value type="int" genre="config" index="11" label="Auto Turn-On Timer for Relay" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Auto Turn-On Timer for Relay.  Sets the time (in minutes) after which you want the relay to automatically turn on once it has been turned off.  Range: 1-65535.  Default: 0 (disabled)</Help>
+		</Value>
+		<Value type="list" genre="config" index="12" label="On Off Status After Power Failure" size="1" min="0" max="8" value="3">
+			<Help>On Off Status After Power Failure.  Default: Restore both to prior state</Help>
+			<Item label="Both forced off" value="0"/>
+			<Item label="Dimmer off/Relay on" value="1"/>
+			<Item label="Dimmer on/Relay off" value="2"/>
+			<Item label="Restore both to prior state" value="3"/>
+			<Item label="Restore Dimmer/Relay On" value="4"/>
+			<Item label="Restore Dimme/Relay Off" value="5"/>
+			<Item label="Dimmer On/Restore Relay" value="6"/>
+			<Item label="Dimmer Off/Restore Relay" value="7"/>
+			<Item label="Both forced on" value="8"/>
+		</Value>
+		<Value type="byte" genre="config" index="13" label="Ramp Rate Control for Dimmer" size="1" min="0" max="99" value="1" units="seconds">
+			<Help>Ramp Rate Control for Dimmer.  Adjust the ramp rate for your dimmer (fade-in / fade-out effect for on / off operation). Values correspond to the number of seconds it take for the dimmer to reach full brightness or turn off when operated manually. Note that 0 is instant.  Default: 1</Help>
+		</Value>
+		<Value type="byte" genre="config" index="14" label="Minimum Brightness" size="1" min="1" max="99" value="1" units="%">
+			<Help>Minimum Brightness.  Set the minimum brightness level (in %) for your dimmer. You won't be able to dim the light below the set value.  Default: 1</Help>
+		</Value>
+		<Value type="byte" genre="config" index="15" label="Maximum Brightness" size="1" min="1" max="99" value="99" units="%">
+			<Help>Maximum Brightness.  Set the maximum brightness level (in %) for your dimmer. You won't be able to add brightness to the light beyond the set value.  Default: 99</Help>
+		</Value>
+		<Value type="list" genre="config" index="17" label="Double Tap Function for Dimmer" size="1" min="0" max="1" value="0">
+			<Help>Double Tap Function for Dimmer.  When set to full, turns light on to 100%.  If set to maximum level, turns light on to % set in Parameter 15.  Default: full</Help>
+			<Item label="full" value="0"/>
+			<Item label="maximum level" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="18" label="Enable/Disable Double-tap for Dimmer" size="1" min="0" max="2" value="0">
+			<Help>Enable/Disable Double-tap for Dimmer.  Enables/Disables the double-tap fucntion and assign brightness to single tap.  enabled: single tap turns on to maximum brightness level.  disabled (last level): single tap returns to last brightness level.  disabled (full/max level): single tap returns to full brightmess.  Default: enabled</Help>
+			<Item label="enabled" value="0"/>
+			<Item label="disabled (last level)" value="1"/>
+			<Item label="disabled (full/max level)" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="19" label="Enable/Disable Load Control for Dimmer" size="1" min="0" max="2" value="1">
+			<Help>Enable/Disable Load Control for Dimmer (Smart Bulb Setting).  Enable or disable direct manual and Z-Wave control of the connected light (works great for smart bulb control).  If disabled, the dimmer will no longer control the connected bulb directly but will still send on/off and brightness reports to the hub so you cn use them to create automations for your smart bulbs or other switches.  Scenes and other functionality will still be available through the paddles.  Default: manual disabled</Help>
+			<Item label="manual disabled" value="0"/>
+			<Item label="manual enabled" value="1"/>
+			<Item label="manual and z-wave disabled" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="20" label="Enable/Disable Load Control for Relay" size="1" min="0" max="2" value="1">
+			<Help>Enable/Disable Load Control for Relay (Smart Bulb Setting).  Enable or disable direct manual and Z-Wave control of the connected light (works great for smart bulb control).  If disabled, the relay will no longer control the connected bulb directly but will still send on/off and brightness reports to the hub so you cn use them to create automations for your smart bulbs or other switches.  Scenes and other functionality will still be available through the paddles.  Default: manual disabled</Help>
+			<Item label="manual disabled" value="0"/>
+			<Item label="manual enabled" value="1"/>
+			<Item label="manual and z-wave disabled" value="2"/>
+		</Value>
+		<Value type="byte" genre="config" index="21" label="Manual Dimming Speed" size="1" min="1" max="99" value="4" units="seconds">
+			<Help>Choose how many seconds it takes for the dimmer to go from 0% to 100% brightness when pressing and holding the paddle.  Default: 4.</Help>
+		</Value>
+		<Value type="byte" genre="config" index="23" label="Default Brightness Level On for Dimmer" size="1" min="0" max="99" value="0" units="%">
+			<Help>Default Brightness Level On for Dimmer.  Set custom brightness level (in %) for the dimmer to come on to at single tap.  Choose 0 for last brightness level.  Default: 0.</Help>
+		</Value>
+		<Value type="list" genre="config" index="24" label="Behavior of the dimmer when physical control is disabled" size="1" min="0" max="1" value="0">
+			<Help>Sets behavior of the dimmer when physical control is disabled</Help>
+			<Item label="Reports on/off and multilevel values back to the hub when buttons are pressed, changes LED indicator to indicate status (default)" value="0"/>
+			<Item label="Doesn't report on/off or multilevel status back to the hub and doesn't change LED indicator status when physical control for the dimmer is disabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="25" label="Behavior of the relay when physical control is disabled" size="1" min="0" max="1" value="0">
+			<Help>Sets behavior of the relay when physical control is disabled</Help>
+			<Item label="Reports on/off and multilevel values back to the hub when buttons are pressed, changes LED indicator to indicate status (default)" value="0"/>
+			<Item label="Doesn't report on/off or multilevel status back to the hub and doesn't change LED indicator status when physical control for the dimmer is disabled" value="1"/>
+		</Value>
+		<Value type="byte" genre="config" index="26" label="Night Light Mode" units="" min="0" max="99" value="20">
+			<Help>Set the brightness level the dimmer will turn on to when off and when lower paddle is held DOWN for a second. Default: 20</Help>
+		</Value>
+		<Value type="list" genre="config" index="27" label="Paddle Control" size="1" min="0" max="2" value="0">
+			<Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off.  Reverse mode: Upper paddle turns the light off, lower paddle turns the light on.  Toggle mode: Either paddle toggles the light.</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Toggle" value="2"/>
+		</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="Dimmer Status"/>
+			<Group index="3" max_associations="5" label="Relay Status"/>
+		</Associations>
+	</CommandClass>
+</Product>
diff --git a/config/zooz/zen31.xml b/config/zooz/zen31.xml
new file mode 100644
index 0000000000..99d417662d
--- /dev/null
+++ b/config/zooz/zen31.xml
@@ -0,0 +1,206 @@
+<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">RGBW Dimmer</MetaDataItem>
+    <MetaDataItem name="Description">FEATURES:
+- Manual or Z-Wave on/off, brightness, and RGBW color control
+- Perfect for programming your existing RGBW LED strip
+- Energy monitoring in live mode and over time
+- Double tap to full brightness feature + optional scene control
+- Remembers and restores on/off status after power failure
+- Built-in Z-Wave Plus signal repeater to extend network range
+- S2 security protocol and AES-128 bank-grade encryption
+
+SPECIFICATIONS:
+- Model Number: ZEN31
+- Z-Wave Signal Frequency: 908.42 MHz
+- Power: 12 / 24 V DC (Do NOT connect to 120 V AC high-voltage power!)
+- Maximum Load: 10 A total between all channels (6 A per channel max); 120 W total when powered by 12 V DC / 240 W total when powered by 24 V DC
+- Range: Up to 100 feet line of sight
+- Operating Temperature: 32-104° F (0-40° C)
+- Installation and Use: Indoor only
+- Dimensions: 1.67” x 1.5” x 0.69”</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:2000:0902</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.getzooz.com/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.support.getzooz.com/kb/section/135</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen31.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=product_documents/3720/zooz-s2-rgbw-dimmer-zen31-manual-online.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub.  If you're using an S2 hub, it may ask you to enter the DSK key printed on the back cover sticker or scan the QR code next to it to complete secure inclusion.
+2. Activate the dimmer.  Make sure the RGBW Dimmer is powered up.  Click the Z-Wave button 3 times quickly to include the device.  The LED will blink yellow to indicate communication with the hub.  It will blink green (for non-secure, S0, or S2 unauthenticated inclusion) or magenta (for S2 authenticated) once the device is successfully included to your network.  It will blink red if inclusion is not successful.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">1. Bring your Z-Wave gateway (hub) close to the RGBW dimmer if possible.
+2. Put the Z-Wave hub into exclusion mode (not sure how to do that?  ask@getzooz.com)
+3. Click the Z-Wave button on the device 3 times quickly
+4. Your hub will confirm exclusion, the LED indicator on the RGBW Dimmer will light up in red, and the device will disappear from your controller's device list.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, press and hold the Z-Wave button to enter reset mode.  Release the button when the LED indicator glows yellow.  Then quickly click the Z-Wave button again to confirm factory reset.  Wait a few seconds until the device resets and restarts - the LED indicator will light up in red when it's ready.</MetaDataItem>
+    <MetaDataItem id="2000" name="ZWProductPage" type="0902">https://products.z-wavealliance.org/products/3720</MetaDataItem>
+    <MetaDataItem id="2000" name="FrequencyName" type="0902">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="2000" name="Identifier" type="0902">ZEN-31</MetaDataItem>
+    <ChangeLog>
+      <Entry author="David Alden - dave@alden.name" date="26 Jan 2020" revision="2">Initial Metadata Import</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- https://products.z-wavealliance.org/products/3720 -->
+
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value type="list" genre="config" index="1" label="On Off Status After Power Failure" size="1" min="0" max="2" value="0">
+      <Help>On Off Status After Power Failure.  Default: forced to OFF</Help>
+      <Item label="forced to OFF" value="0"/>
+      <Item label="restore to previous state" value="1"/>
+      <Item label="forced to on" value="2"/>
+    </Value>
+    <Value type="list" genre="config" index="20" label="Switch / Input Type for IN1" size="1" min="0" max="4" value="2">
+      <Help>Switch / Input Type for IN1.  Choose the input/switch type you want to connect to the IN1 terminal.  Default: momentary switch</Help>
+      <Item label="analog sensor w/no pullup" value="0"/>
+      <Item label="analog sensor with pull-up" value="1"/>
+      <Item label="momentary switch" value="2"/>
+      <Item label="toggle switch (on when swithc is on)" value="3"/>
+      <Item label="toggle switch (toggles with switch toggle)" value="4"/>
+    </Value>
+    <Value type="list" genre="config" index="21" label="Switch / Input Type for IN2" size="1" min="0" max="4" value="2">
+      <Help>Switch / Input Type for IN2.  Choose the input/switch type you want to connect to the IN2 terminal.  Default: momentary switch</Help>
+      <Item label="analog sensor w/no pullup" value="0"/>
+      <Item label="analog sensor with pull-up" value="1"/>
+      <Item label="momentary switch" value="2"/>
+      <Item label="toggle switch (on when swithc is on)" value="3"/>
+      <Item label="toggle switch (toggles with switch toggle)" value="4"/>
+    </Value>
+    <Value type="list" genre="config" index="22" label="Switch / Input Type for IN3" size="1" min="0" max="4" value="2">
+      <Help>Switch / Input Type for IN3.  Choose the input/switch type you want to connect to the IN3 terminal.  Default: momentary switch</Help>
+      <Item label="analog sensor w/no pullup" value="0"/>
+      <Item label="analog sensor with pull-up" value="1"/>
+      <Item label="momentary switch" value="2"/>
+      <Item label="toggle switch (on when swithc is on)" value="3"/>
+      <Item label="toggle switch (toggles with switch toggle)" value="4"/>
+    </Value>
+    <Value type="list" genre="config" index="23" label="Switch / Input Type for IN4" size="1" min="0" max="4" value="2">
+      <Help>Switch / Input Type for IN4.  Choose the input/switch type you want to connect to the IN4 terminal.  Default: momentary switch</Help>
+      <Item label="analog sensor w/no pullup" value="0"/>
+      <Item label="analog sensor with pull-up" value="1"/>
+      <Item label="momentary switch" value="2"/>
+      <Item label="toggle switch (on when swithc is on)" value="3"/>
+      <Item label="toggle switch (toggles with switch toggle)" value="4"/>
+    </Value>
+    <Value type="bitset" genre="config" index="40" label="Scene Control for IN1" size="1" bitmask="255" units="" value="15">
+      <Help>Assign scene activation trigger for IN1 terminal.  Default: Everything</Help>
+      <BitSet id="1">
+        <Label>click/toggle 1 time to trigger</Label>
+	<Help>Click/toggle the connected switch 1 time to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>click/toggle 2 times to trigger</Label>
+	<Help>Click/toggle the connected switch 2 times to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>click/toggle 3 times to trigger</Label>
+	<Help>Click/toggle the connected switch 3 times to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="4">
+        <Label>click/toggle 4 times to trigger</Label>
+	<Help>Click/toggle the connected switch 4 times to trigger a scene.</Help>
+      </BitSet>
+    </Value>
+    <Value type="bitset" genre="config" index="41" label="Scene Control for IN2" size="1" bitmask="255" units="" value="15">
+      <Help>Assign scene activation trigger for IN2 terminal.  Default: Everything</Help>
+      <BitSet id="1">
+        <Label>click/toggle 1 time to trigger</Label>
+	<Help>Click/toggle the connected switch 1 time to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>click/toggle 2 times to trigger</Label>
+	<Help>Click/toggle the connected switch 2 times to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>click/toggle 3 times to trigger</Label>
+	<Help>Click/toggle the connected switch 3 times to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="4">
+        <Label>click/toggle 4 times to trigger</Label>
+	<Help>Click/toggle the connected switch 4 times to trigger a scene.</Help>
+      </BitSet>
+    </Value>
+    <Value type="bitset" genre="config" index="42" label="Scene Control for IN3" size="1" bitmask="255" units="" value="15">
+      <Help>Assign scene activation trigger for IN3 terminal.  Default: Everything</Help>
+      <BitSet id="1">
+        <Label>click/toggle 1 time to trigger</Label>
+	<Help>Click/toggle the connected switch 1 time to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>click/toggle 2 times to trigger</Label>
+	<Help>Click/toggle the connected switch 2 times to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>click/toggle 3 times to trigger</Label>
+	<Help>Click/toggle the connected switch 3 times to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="4">
+        <Label>click/toggle 4 times to trigger</Label>
+	<Help>Click/toggle the connected switch 4 times to trigger a scene.</Help>
+      </BitSet>
+    </Value>
+    <Value type="bitset" genre="config" index="43" label="Scene Control for IN4" size="1" bitmask="255" units="" value="15">
+      <Help>Assign scene activation trigger for IN4 terminal.  Default: Everything</Help>
+      <BitSet id="1">
+        <Label>click/toggle 1 time to trigger</Label>
+	<Help>Click/toggle the connected switch 1 time to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="2">
+        <Label>click/toggle 2 times to trigger</Label>
+	<Help>Click/toggle the connected switch 2 times to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="3">
+        <Label>click/toggle 3 times to trigger</Label>
+	<Help>Click/toggle the connected switch 3 times to trigger a scene.</Help>
+      </BitSet>
+      <BitSet id="4">
+        <Label>click/toggle 4 times to trigger</Label>
+	<Help>Click/toggle the connected switch 4 times to trigger a scene.</Help>
+      </BitSet>
+    </Value>
+    <Value type="short" genre="config" index="62" label="Power Report Frequency" size="2" min="0" max="32400" value="3600" units="seconds">
+      <Help>Power Report Frequency. Choose how often you want your RGBW Dimmer to report power consumption (W) to your controller.  NOTE: must be 0, or an increment of 30.  Default: 3600</Help>
+    </Value>
+    <Value type="short" genre="config" index="65" label="Energy Report Threshold" size="2" min="0" max="500" value="10">
+      <Help>Energy Report Threshold.  Choose how you want your RGBW Dimmer to report energy use (kWh) to your hub.  The number entered as value corresponds to decimal values in energy useage change. So if 10 is entered by default, the RGBW Dimmer will report any change in energy use over 0.1 kWh. Energy reports are sent in t least 30-second intervals.</Help>
+    </Value>
+    <Value type="short" genre="config" index="66" label="Energy Report Frequency" size="2" min="0" max="32400" value="3600" units="seconds">
+      <Help>Energy Report Frequency. Choose how often you want your RGBW Dimmer to report energy (kWh) to your controller.  NOTE: must be 0, or an increment of 30.  Default: 3600</Help>
+    </Value>
+    <Value type="list" genre="config" index="150" label="RGBW/HSB Wall Switch Mode" size="1" min="0" max="1" value="0">
+      <Help>RGBW/HSB Wall Switch Mode.  Choose how switches connected to the input terminals control your LED strip. In the default RGBW mode, each switch connected to each input terminal controls the RGBW chnnels separately (so IN1 for red, IN2 for green, etc.) with a single click for ON/OFF, double click to full brightness, and press-and-hold to dim (momentary switches only). In the HSB, IN1 controls hue, IN2 - saturation, IN3 - brightness, IN4 - white with single click for last set value or value 0, double click to max value, and press-and-hold to set custom value.  Default: RGBW mode</Help>
+      <Item label="RGBW mode" value="0"/>
+      <Item label="HSB mode" value="1"/>
+    </Value>
+    <Value type="short" genre="config" index="151" label="Ramp Rate (switch)" size="2" min="0" max="127" value="3" units="seconds">
+      <Help>Ramp Rate (switch).  Adjust the ramp rate for your RGBW dimmer (fade-in/fade-out effect for on/off operation).  Values correspond to the number of seconds it takes for the dimmer to reach full brightness or turn off when operated from the connected wall switch.  Note that 0 is instant on/off.  Default : 3 seconds</Help>
+    </Value>
+    <Value type="short" genre="config" index="152" label="Ramp Rate (Z-Wave)" size="2" min="0" max="127" value="3" units="seconds">
+      <Help>Ramp Rate (Z-Wave).  Adjust the ramp rate for your RGBW dimmer (fade-in/fade-out effect for on/off operation).  Values correspond to the number of seconds it takes for the dimmer to reach full brightness or turn off when operated remotely from the Z-Wave hub  Note that 0 is instant on/off.  Default : 3 seconds</Help>
+    </Value>
+    <Value type="list" genre="config" index="157" label="Preset Programs" size="1" min="0" max="10" value="0">
+      <Help>Enable one of the preset animated color programs to set the mood with a click.  Default: preset programs disabled</Help>
+      <Item label="preset programs disabled" value="0"/>
+      <Item label="fireplace" value="6"/>
+      <Item label="storm" value="7"/>
+      <Item label="rainbow" value="8"/>
+      <Item label="polar lights" value="9"/>
+      <Item label="police" value="10"/>
+    </Value>
+  </CommandClass>
+
+  <!-- Association Groups -->
+  <CommandClass id="133">
+    <Associations num_groups="10">
+      <Group index="1" max_associations="1" label="Lifeline"/>
+      <Group index="2" max_associations="5" label="Zooz RGBW Dimmers only"/>
+      <Group index="3" max_associations="5" label="IN1 on/off sync"/>
+      <Group index="4" max_associations="5" label="IN1 Brightness sync"/>
+      <Group index="5" max_associations="5" label="IN2 on/off sync"/>
+      <Group index="6" max_associations="5" label="IN2 Brightness sync"/>
+      <Group index="7" max_associations="5" label="IN3 on/off sync"/>
+      <Group index="8" max_associations="5" label="IN3 Brightness sync"/>
+      <Group index="9" max_associations="5" label="IN4 on/off sync"/>
+      <Group index="10" max_associations="5" label="IN4 Brightness sync"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/zooz/zen32.xml b/config/zooz/zen32.xml
new file mode 100644
index 0000000000..3bbe69712c
--- /dev/null
+++ b/config/zooz/zen32.xml
@@ -0,0 +1,172 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Zooz ZEN32 Scene Controller</MetaDataItem>
+    <MetaDataItem name="Description"></MetaDataItem>
+	<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:a008:7000</MetaDataItem>
+    <MetaDataItem name="ProductPage"></MetaDataItem>
+    <MetaDataItem name="ProductSupport"></MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen32.png</MetaDataItem>
+    <MetaDataItem name="ProductManual"></MetaDataItem>
+    <MetaDataItem name="WakeupDescription"></MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Click the large button 3 times quickly.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Click the large button 3 times quickly.</MetaDataItem>
+    <MetaDataItem name="ResetDescription"></MetaDataItem>
+    <MetaDataItem id="a008" name="ZWProductPage" type="7000"><!-- url to https://products.z-wavealliance.org/products/XXXX/ page for this specific version of the device --></MetaDataItem>
+	  <!--product page not available as of March. 1, 2021 -->
+    <MetaDataItem id="a008" name="FrequencyName" type="7000">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="a008" name="Identifier" type="7000">ZEN32</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="1 March 2021" revision="1">Initial configuration from Zooz</Entry>
+    </ChangeLog>
+  </MetaData>
+
+    <!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="LED indicator mode for relay" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="LED on when relay off, LED off when relay on" value="0"/>
+			<Item label="LED on when relay on, LED off when relay off" value="1"/>
+			<Item label="LED always off" value="2"/>
+			<Item label="LED always on" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="2" label="LED indicator mode for Button 1" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="LED on when dimmer off, LED off when dimmer on" value="0"/>
+			<Item label="LED on when dimmer on, LED off when dimmer off" value="1"/>
+			<Item label="LED always off" value="2"/>
+			<Item label="LED always on" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="3" label="LED indicator mode for Button 2" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="LED on when dimmer off, LED off when dimmer on" value="0"/>
+			<Item label="LED on when dimmer on, LED off when dimmer off" value="1"/>
+			<Item label="LED always off" value="2"/>
+			<Item label="LED always on" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="4" label="LED indicator mode for Button 3" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="LED on when dimmer off, LED off when dimmer on" value="0"/>
+			<Item label="LED on when dimmer on, LED off when dimmer off" value="1"/>
+			<Item label="LED always off" value="2"/>
+			<Item label="LED always on" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="5" label="LED indicator mode for Button 4" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="LED on when dimmer off, LED off when dimmer on" value="0"/>
+			<Item label="LED on when dimmer on, LED off when dimmer off" value="1"/>
+			<Item label="LED always off" value="2"/>
+			<Item label="LED always on" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="6" label="LED indicator color for relay" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="white" value="0"/>
+			<Item label="blue" value="1"/>
+			<Item label="green" value="2"/>
+			<Item label="red" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="7" label="LED indicator color for Button 1" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="white" value="0"/>
+			<Item label="blue" value="1"/>
+			<Item label="green" value="2"/>
+			<Item label="red" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="8" label="LED indicator color for Button 2" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="white" value="0"/>
+			<Item label="blue" value="1"/>
+			<Item label="green" value="2"/>
+			<Item label="red" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="9" label="LED indicator color for Button 3" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="white" value="0"/>
+			<Item label="blue" value="1"/>
+			<Item label="green" value="2"/>
+			<Item label="red" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="10" label="LED indicator color for Button 4" size="1" min="0" max="3" value="0">
+			<Help></Help>
+			<Item label="white" value="0"/>
+			<Item label="blue" value="1"/>
+			<Item label="green" value="2"/>
+			<Item label="red" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="11" label="LED indicator brightness for relay" size="1" min="0" max="2" value="0">
+			<Help></Help>
+			<Item label="bright (100%)" value="0"/>
+			<Item label="medium (60%)" value="1"/>
+			<Item label="low (30%)" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="12" label="LED indicator brightness for Button 1" size="1" min="0" max="2" value="0">
+			<Help></Help>
+			<Item label="bright (100%)" value="0"/>
+			<Item label="medium (60%)" value="1"/>
+			<Item label="low (30%)" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="13" label="LED indicator brightness for Button 2" size="1" min="0" max="2" value="0">
+			<Help></Help>
+			<Item label="bright (100%)" value="0"/>
+			<Item label="medium (60%)" value="1"/>
+			<Item label="low (30%)" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="14" label="LED indicator brightness for Button 3" size="1" min="0" max="2" value="0">
+			<Help></Help>
+			<Item label="bright (100%)" value="0"/>
+			<Item label="medium (60%)" value="1"/>
+			<Item label="low (30%)" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="15" label="LED indicator brightness for Button 4" size="1" min="0" max="2" value="0">
+			<Help></Help>
+			<Item label="bright (100%)" value="0"/>
+			<Item label="medium (60%)" value="1"/>
+			<Item label="low (30%)" value="2"/>
+		</Value>
+		<Value type="int" genre="config" index="16" label="Auto turn-off timer for relay" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn off once it has been turned on.</Help>
+		</Value>
+		<Value type="int" genre="config" index="17" label="Auto turn-on timer for relay" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+		</Value>
+		<Value type="list" genre="config" index="18" label="State after power failure" size="1" min="0" max="2" value="0">
+			<Help></Help>
+			<Item label="Relay and buttons remember and restore last state" value="0"/>
+			<Item label="Relay and buttons forced to off after power failure" value="1"/>
+			<Item label="Relay and buttons forced to on after power failure" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="19" label="Disable / enable control on the relay" size="1" min="0" max="2" value="1">
+			<Help></Help>
+			<Item label="Disable local / physical control (from the button), enable Z-Wave control" value="0"/>
+			<Item label="Enable local / physical control (from the button), enable Z-Wave control" value="1"/>
+			<Item label="Disable local / physical control (from the button), disable Z-Wave control" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="20" label="Relay behavior with disabled local / Z-Wave control" size="1" min="0" max="1" value="1">
+			<Help></Help>
+			<Item label="report on/off status when button is pressed and change LED indicator status if Parameter 19 is set to value 0 or 2" value="0"/>
+			<Item label="DON’T report on/off status when button is pressed and DON’T change LED indicator status if Parameter 19 is set to value 0 or 2 (but the relay will always send central scene command)" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="21" label="3-way switch type" size="1" min="0" max="1" value="0">
+			<Help>Choose the type of 3-way switch you want to use with this switch in a 3-way set-up.</Help>
+			<Item label="regular mechanical 3-way on/off switch, use the connected 3-way switch to turn the light on or off (default)" value="0"/>
+			<Item label="momentary switch, click once to change status (light on or off)" value="1"/>
+		</Value>
+	</CommandClass>
+	
+    <!-- Association Groups -->
+    <CommandClass id="133">
+      <Associations num_groups="11">
+        <Group index="1" label="Group 1: Main button binary switch (Z-Wave) / basic set (button) lifeline to hub" max_associations="1"/>
+        <Group index="2" label="Group 2: Main button basic set (pressed only, doesn’t send anything when switch turned on via hub)" max_associations="5"/>
+	    <Group index="3" label="Group 3: Main button multilevel (held)" max_associations="5"/>
+		<Group index="4" label="Group 4: Small button #1 basic set (pressed)" max_associations="5"/>
+		<Group index="5" label="Group 5: Small button #1 multilevel (held) > in sequence > held = increase brightness, release = stop level, held = decrease brightness, release = stop level" max_associations="5"/>
+		<Group index="6" label="Group 6: Small button #2 basic set (pressed)" max_associations="5"/>
+		<Group index="7" label="Group 7: Small button #2 multilevel (held) > in sequence > held = increase brightness, release = stop level, held = decrease brightness, release = stop level" max_associations="5"/>
+		<Group index="8" label="Group 8: Small button #3 basic set (pressed)" max_associations="5"/>
+		<Group index="9" label="Group 9: Small button #3 multilevel (held) > in sequence > held = increase brightness, release = stop level, held = decrease brightness, release = stop level" max_associations="5"/>
+		<Group index="10" label="Group 10: Small button #4 basic set (pressed)" max_associations="5"/>
+		<Group index="11" label="Group 11: Small button #4 multilevel (held) > in sequence > held = increase brightness, release = stop level, held = decrease brightness, release = stop level" max_associations="5"/>
+      </Associations>
+    </CommandClass>
+	
+</Product>
diff --git a/config/zooz/zen34.xml b/config/zooz/zen34.xml
new file mode 100644
index 0000000000..2a0e655e9d
--- /dev/null
+++ b/config/zooz/zen34.xml
@@ -0,0 +1,86 @@
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">ZEN34 Remote Switch</MetaDataItem>
+    <MetaDataItem name="Description">FEATURES:
+- Control Z-Wave devices or activate scenes with the multi-tap feature
+- Wire-free: the perfect add-on switch to put in an existing switch box or install on any flat surface
+- Scene Control (select hubs only): trigger up to 8 scenes or control up to 8 devices with multi-tap control.*
+- Smart bulb control: use scene control or direct association (for Z-Wave bulbs only) to turn your smart bulbs on and off through wireless signal instead of cutting power to them
+- New 700 Z-Wave chip: more range and faster speed than ever
+- Adjustable LED indicator: choose from 4 colors and 3 brightness levels
+- S2 security protocol and AES-128 bank-grade encryption
+
+SPECIFICATIONS:
+- Model Number: ZEN34
+- Z-Wave Signal Frequency: 908.42 MHz
+- Power: 2 x CR2032 batteries
+- Range: Up to 250 feet line of sight
+- Operating Temperature: 32-104° F (0-40° C)
+- Installation and Use: Indoor only</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:F001:0004</MetaDataItem>
+    <MetaDataItem name="ProductPage">http://www.getzooz.com/</MetaDataItem>
+    <MetaDataItem name="ProductSupport">http://www.support.getzooz.com/kb/section/185</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen34.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://opensmarthouse.org/zwavedatabase/1310/reference/zooz-zen34-manual-curves.pdf</MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Put the primary controller into inclusion mode and click the upper paddle 6 times quickly. The LED indicator will blink blue during the process and light up green once added successfully. It will light up red if failed.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Put the primary controller into exclusion mode and click the lower paddle 6 times quickly.</MetaDataItem>
+	<MetaDataItem name="WakeupDescription">Click the upper paddle 7 times quickly. The LED indicator will stay solid blue during wakeup and will turn off when the device turns the Z-Wave radio off again.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">When your network's primary controller is missing or otherwise inoperable, you may need to reset the device to factory settings manually. In order to complete the process, make sure the device is powered, then taptap- tap'and'hold the upper paddle. The LED indicator will blink red 5 times to indicate successful reset.</MetaDataItem>
+    <MetaDataItem id="F001" name="Identifier" type="0004">ZEN34</MetaDataItem>
+    <MetaDataItem id="F001" name="FrequencyName" type="0004">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="F001" name="ZWProductPage" type="0004">https://products.z-wavealliance.org/products/xxxx</MetaDataItem>
+	  <!--product page not available as of 11/17/20 -->
+    <MetaDataItem id="F001" name="Identifier" type="7000">ZEN34</MetaDataItem>
+    <MetaDataItem id="F001" name="FrequencyName" type="7000">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="F001" name="ZWProductPage" type="7000">https://products.z-wavealliance.org/products/xxxx</MetaDataItem>
+	  <!--still unable to locate a product page as of Jan. 31, 2021 -->
+    <ChangeLog>
+      <Entry author="momo" date="16 Nov 2020" revision="1">Initial Metadata Import</Entry>
+      <Entry author="Matthew Grimes, https://github.com/cybergrimes" date="31 Jan 2021" revision="2">Update to include hardware run with different type code</Entry>
+      <Entry author="Matthew Grimes, https://github.com/cybergrimes" date="9 Feb 2021" revision="3">Fix small typo</Entry>
+    </ChangeLog>
+  </MetaData>
+
+  <!-- https://products.z-wavealliance.org/products/xxxx not yet available-->
+
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+	
+    <Value genre="config" index="1" value="1" label="LED Indicator Mode" size="1" min="0" max="3" type="list">
+      <Help>Choose the LED indicator mode for your Remote Switch</Help>
+      <Item value="0" label="LED always off"/>
+      <Item value="1" label="LED on when button is pressed"/>
+      <Item value="2" label="LED always on in color specified in parameter 2"/>
+      <Item value="3" label="LED always on in color specified in parameter 3"/>    
+	</Value>
+    <Value genre="config" index="2" value="1" label="LED color for UPPER paddle" size="1" min="0" max="6" type="list">
+      <Help>Choose the LED indicator color for the UPPER paddle remote control triggers</Help>
+      <Item value="0" label="white"/>
+      <Item value="1" label="blue"/>
+      <Item value="2" label="green"/>
+      <Item value="3" label="red"/>
+      <Item value="4" label="magenta"/>
+      <Item value="5" label="yellow"/>
+	  <Item value="6" label="cyan"/>
+	</Value>
+    <Value genre="config" index="3" value="1" label="LED color for LOWER paddle" size="1" min="0" max="6" type="list">
+      <Help>Choose the LED indicator color for the LOWER paddle remote control triggers</Help>
+      <Item value="0" label="white"/>
+      <Item value="1" label="blue"/>
+      <Item value="2" label="green"/>
+      <Item value="3" label="red"/>
+      <Item value="4" label="magenta"/>
+      <Item value="5" label="yellow"/>
+	  <Item value="6" label="cyan"/>
+	</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="Switch Multilevel"/>
+    </Associations>
+  </CommandClass>
+</Product>
diff --git a/config/zooz/zen71.xml b/config/zooz/zen71.xml
new file mode 100644
index 0000000000..5b8c7e5089
--- /dev/null
+++ b/config/zooz/zen71.xml
@@ -0,0 +1,142 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Zooz ZEN71 On Off Switch</MetaDataItem>
+    <MetaDataItem name="Description">FEATURES:
+- Control lights from the wall switch or wirelessly with Z-Wave 
+- On / off only for instant switching (get the dimmer here)
+- NEW in 700 series: smaller profile (just 1.1" deep) to fit easily in a crowded or shallow box; replaceable paddles (almond, brown, and black paddle kits available)
+- 700 chip: more range, faster signal, SmartStart inclusion + S2 security
+- Direct 3-Way Solution: no add-on switch needed, wires just like the ZEN21 model (Neutral required, 4-Way wiring possible if direct connection to load and line are in the same box, check before buying)
+- Works well in simple single pole installations
+- Adjustable LED indicator: choose the color and brightness that works for you!
+- Built-in range test tool: diagnose network issues straight from your switch
+- Scene control available on hubs that support multi-tap triggers*
+- Smart bulb mode: disable the relay for truly wireless control or use as a remote control / smart add-on switch
+- Restores on/off status after power failure
+- Compatible with LED, CFL, and incandescent bulbs (don't connect to tube lights or fans over 3A / 5 years old)
+- Stronger repeater to boost your Z-Wave network
+
+SPECIFICATIONS:
+- Z-Wave Frequency: 908.42 MHz (US)
+- Power: 120 VAC, 60 Hz
+- Maximum Loads: 960W Incandescent, 150W LED and CFL bulbs, 1800W (15A) Resistive, 3A fan motors
+- Z-Wave Range: Up to 200 feet line of sight between the Wireless Controller and the closest Z-Wave receiver module
+- Operating Temperature: 32-104° F (0-40° C)
+- Installation: Indoor use only
+
+MANUAL CONTROL:
+Upper Paddle: 
+1 x tap: load on; Scene 1, attribute 00
+2 x tap: Scene 1, attribute 03
+3 x tap: enter inclusion (pairing) mode (only if the switch is not included to the hub); Scene 1, attribute 04
+4 x tap: Scene 1, attribute 05
+5 x tap: Scene 1, attribute 06
+6 x tap: change LED indicator mode (see parameter 2)
+held: Scene 1, attribute 01
+released: Scene 1, attribute 02
+
+Lower Paddle: 
+1 x tap: load off; Scene 2, attribute 00
+2 x tap: Scene 2, attribute 03
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04
+4 x tap: Scene 2, attribute 05
+5 x tap: Scene 2, attribute 06
+held: Scene 2, attribute 01
+released: Scene 2, attribute 02
+held for 10 seconds (LED indicator starts blinking): enter the setting menu >> 5 x tap down for factory reset; 5 x tap up to change LED bulb mode (see parameter 11); 2 x tap down to enable the range test tool.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:a001:7000</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.thesmartesthouse.com/products/zooz-700-series-z-wave-plus-on-off-light-switch-zen71</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.support.getzooz.com/kb/section/190/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen71.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://cdn.shopify.com/s/files/1/0218/7704/files/zooz-700-series-switch-zen71-manual.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription"></MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Click the upper paddle 3 times quickly. The LED indicator will blink blue during the process and light up green once added successfully. It will light up red if failed.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Click the lower paddle 3 times very quickly.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the lower paddle for 10 seconds until the LED indicator starts blinking. Release paddle, and immediately after, tap the lower paddle 5 times to complete the reset. The LED indicator will flash blue 3 times and turn red for 3 seconds to confirm successful reset.</MetaDataItem>
+    <MetaDataItem id="a001" name="ZWProductPage" type="7000"><!-- url to https://products.z-wavealliance.org/products/XXXX/ page for this specific version of the device --></MetaDataItem>
+	  <!--product page not available as of Feb. 12, 2021 -->
+    <MetaDataItem id="a001" name="FrequencyName" type="7000">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="a001" name="Identifier" type="7000">ZEN71</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="12 February 2021" revision="1">Initial configuration from Zooz (firmware 1.01)</Entry>
+    </ChangeLog>
+  </MetaData>
+  
+    <!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="On/Off Paddle Orientation" size="1" min="0" max="2" value="0">
+			<Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off.  Reverse mode: Upper paddle turns the light off, lower paddle turns the light on.  Toggle mode: Either paddle toggles the light.</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Toggle" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
+			<Help>LED Indication light function.  Normal has the LED Indication on when the switch is off, off when the switch is on.</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Always Off" value="2"/>
+			<Item label="Always On" value="3"/>
+		</Value>
+		<Value type="int" genre="config" index="3" label="Auto Turn-Off Timer" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn off once it has been turned on.</Help>
+		</Value>
+		<Value type="int" genre="config" index="5" label="Auto Turn-On Timer" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+		</Value>
+		<Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
+			<Help>Status after power failure.  Off: always turn light off.  On: always turn light on.  Restore: remember the latest state and restore that state.</Help>
+			<Item label="Off" value="0"/>
+			<Item label="On" value="1"/>
+			<Item label="Restore" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="9" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
+			<Help>Enable or disable scene control functionality for quick double tap triggers.</Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="11" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" min="0" max="2" value="1" size="1">
+			<Help>Enable or disable local on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through paddles.</Help>
+			<Item label="physical paddle control disabled" value="0" />
+			<Item label="physical paddle control enabled (default)" value="1" />
+			<Item label="physical paddle and Z-Wave control disabled" value="2" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="12" label="3 Way Switch Type" units="" min="0" max="1" value="0" size="1">
+			<Help>Choose the type of 3-way switch you want to use with this switch in a 3-way set-up.</Help>
+			<Item label="Regular mechanical 3-way on/off switch, use the connected 3-way switch to turn the light on or off (default)" value="0"/>
+			<Item label="Momentary switch, click once to change status (light on or off)" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="13" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+			<Help>Set reporting behavior for disabled physical control.</Help>
+			<Item label="Switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0"/>
+			<Item label="Switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="14" label="LED Indicator Color" size="1" min="0" max="3" value="0">
+			<Help>Choose the color of the LED indicator.</Help>
+			<Item label="White" value="0"/>
+			<Item label="Blue (default)" value="1"/>
+			<Item label="Green" value="2"/>
+			<Item label="Red" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="15" label="LED Indicator Brightness" size="1" min="0" max="2" value="1">
+			<Help>Choose the LED indicator's brightness level.</Help>
+			<Item label="Bright (100%)" value="0"/>
+			<Item label="Medium (60%)" value="1"/>
+			<Item label="Low (30%)" value="2"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="16" label="Association Reports" units="" min="0" max="1" value="1" size="1">
+			<Help>Choose how the switch reports its status back to the hub.</Help>
+			<Item label="Binary switch report for Z-Wave control, basic set report for paddle control" value="0"/>
+			<Item label="Binary switch report for both Z-Wave and paddle control (default)" 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="Group 2" max_associations="5"/>
+	    <Group index="3" label="Group 3" max_associations="5"/>
+      </Associations>
+    </CommandClass>
+	
+</Product>
\ No newline at end of file
diff --git a/config/zooz/zen72.xml b/config/zooz/zen72.xml
new file mode 100644
index 0000000000..0b861b3860
--- /dev/null
+++ b/config/zooz/zen72.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
+    <MetaData>
+      <MetaDataItem name="Name">Zooz ZEN72 Dimmer Switch</MetaDataItem>
+      <MetaDataItem name="Description">Product features:
+- Full brightness control of your lights, from the physical dimmer and via Z-Wave when added to your smart home hub (sold separately)
+- Works with any dimmable LED bulb that accepts triac (forward-phase) dimmers up to 150 W total and with any incandescent bulbs up to 500 W. NOT COMPATIBLE WITH LUMINUS, LITHONIA, OR FEIT BULBS.
+- NEW in 700 series: smaller in the back so it fits easier in shallow or crowded boxes; replace the standard white paddles with almond, brown, or black paddles (sold separately).
+- NEW 700 chip: the latest S2 security, SmartStart for instant pairing and more Z-Wave coverage than ever!
+- Direct 3-Way Solution: connects to an existing light switch for 2-point control, no add-on switch necessary! Wires just like the ZEN22 model. Neutral wire required, on/off control only from the secondary switch, use in 4-way installations only if you have direct connection to load and line in one box.
+- Scene control: multi-tap triggers available on select hubs*
+- Night Light Mode: press and hold the lower paddle when dimmer is off to turn the light on to low brightness
+- Double tap to full brightness: now fully adjustable double tap and single tap behavior*
+- Fully adjustable ramp rate*
+- Don't use with fan motors, receptacles, or tube lights!
+- Stronger signal repeater for a more reliable Z-Wave network
+- Choose the color and brightness level of the LED indicator*
+SPECIFICATIONS:
+- Model Number: ZEN72
+- Z-Wave Frequency: 908.42 MHz (US)
+- Power: 120 VAC, 60 Hz
+- Maximum Loads: 500W Incandescent, 150W LED
+- Range: Up to 200 feet line of sight
+- Operating Temperature: 32-104° F (0-40° C)
+- Installation and Use: Indoor only
+https://www.support.getzooz.com/kb/article/538-zen72-dimmer-switch-700-ver-1-02-advanced-settings/
+          
+MANUAL CONTROL
+Upper Paddle:
+1 x tap: load on to last / custom / full / max brightness; Scene 1, attribute 00
+2 x tap: on to full / max / custom brightness; Scene 1, attribute 03
+3 x tap: enter inclusion (pairing) mode (only if not included to Z-Wave network); Scene 1, attribute 04
+4 x tap: Scene 1, attribute 05
+5 x tap: Scene 1, attribute 06
+6 x tap: change LED indicator mode (see parameter 2)
+press and hold: increase brightness level; Scene 1, attribute 01
+release: Scene 1, attribute 02
+Lower Paddle:
+1 x tap: load off; Scene 2, attribute 00
+2 x tap: Scene 2, attribute 03
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04
+4 x tap: Scene 2, attribute 05
+5 x tap: Scene 2, attribute 06
+press and hold: decrease brightness level; Scene 2, attribute 01
+press and hold when off: turn on to 20% brightness (night light mode)
+release: Scene 2, attribute 02
+held for 10 seconds (LED indicator starts blinking): enter the setting menu, 5 x tap down for factory reset; 5 x tap up to change LED bulb mode (see parameter 11); 2 x tap down to enable the range test tool.</MetaDataItem>    
+        <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:a002:7000</MetaDataItem>
+        <MetaDataItem name="ProductPage">https://www.thesmartesthouse.com/collections/light-switches/products/zooz-700-series-z-wave-plus-dimmer-zen72</MetaDataItem>
+        <MetaDataItem name="ProductSupport">https://www.support.getzooz.com/kb/section/195/</MetaDataItem>
+        <MetaDataItem name="ProductPic">images/zooz/zen72.png</MetaDataItem>
+        <MetaDataItem name="ProductManual">https://cdn.shopify.com/s/files/1/0218/7704/files/zooz-700-series-z-wave-dimmer-zen72-manual.pdf</MetaDataItem>
+        <MetaDataItem name="InclusionDescription">1. Initiate inclusion (pairing) in the app (or web interface) of your hub. 2. Tap the upper paddle on the switch 3 times quickly.</MetaDataItem>
+        <MetaDataItem name="ExclusionDescription">1. Bring your Z-Wave gateway (hub) close to the switch if possible 2. Put the Z-Wave hub into exclusion mode (not sure how to do that? ask@getzooz.com) 3. Tap the lower paddle on the switch 3 times quickly</MetaDataItem>
+        <MetaDataItem name="ResetDescription">If your primary controller is missing or inoperable, you may need to reset the device to factory settings. To complete the reset process manually, tap-tap-tap’n’hold the upper paddle for at least 10 seconds. The LED indicator will flash to confirm successful reset. NOTE: All previously recorded activity and custom settings will be erased from the device’s memory.</MetaDataItem>
+        <MetaDataItem id="A002" name="FrequencyName" type="A000">U.S. / Canada / Mexico</MetaDataItem>
+        <MetaDataItem id="A002" name="Identifier" type="7000">ZEN72</MetaDataItem>
+        <ChangeLog>
+            <Entry author="shbatm - support@shbatm.com" date="31 Jan 2021" revision="1">Initial Copy from ZEN27, not yet available on ZWAlliance website</Entry>
+            <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="9 Feb 2021" revision="2">Reorganize metadataitem entries, correct ProductPic, add missing metadataitems and start revision at 1</Entry>
+            <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="12 Feb 2021" revision="3">Fix a few configuration parameters for auto off/on timer.</Entry>
+        </ChangeLog>
+    </MetaData>
+    <!-- Configuration Parameters -->
+    <CommandClass id="112">
+        <Value type="list" genre="config" index="1" label="On/Off Paddle Orientation" size="1" min="0" max="2" value="0">
+            <Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off. Reverse mode: Upper paddle turns the light off, lower paddle turns the light on. Toggle mode: Either paddle toggles the light.</Help>
+            <Item label="Normal" value="0" />
+            <Item label="Reverse" value="1" />
+            <Item label="Toggle" value="2" />
+        </Value>
+        <Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
+            <Help>LED Indication light function. Normal has the LED Indication on when the switch is off, off when the switch is on. </Help>
+            <Item label="Normal" value="0" />
+            <Item label="Reverse" value="1" />
+            <Item label="Always Off" value="2" />
+            <Item label="Always On" value="3" />
+        </Value>
+        <Value type="list" genre="config" instance="1" index="23" label="LED Indicator Color" size="1" min="0" max="3" value="1">
+            <Help>Choose the color of the LED indicator. Default: Blue</Help>
+            <Item label="White" value="0" />
+            <Item label="Blue" value="1" />
+            <Item label="Green" value="2" />
+            <Item label="Red" value="3" />
+        </Value>
+        <Value type="list" genre="config" instance="1" index="24" label="LED Indicator Brightness" size="1" min="0" max="2" value="1">
+            <Help>Choose the brightness of the LED indicator. Default: Medium</Help>
+            <Item label="Bright" value="0" />
+            <Item label="Medium" value="1" />
+            <Item label="Low" value="2" />
+        </Value>
+        <Value type="int" genre="config" index="3" label="Auto Turn-Off Timer" size="4" min="0" max="65535" value="0" units="minutes">
+            <Help>Set the time (in minutes) after which you want the switch to automatically turn off once it has been turned on.</Help>
+        </Value>
+        <Value type="int" genre="config" index="5" label="Auto Turn-On Timer" size="4" min="0" max="65535" value="60" units="minutes">
+            <Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+        </Value>
+        <Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
+            <Help>Status after power failure. Off: always turn light off. On: always turn light on. Restore: remember the latest state and restore that state.</Help>
+            <Item label="Off" value="0" />
+            <Item label="On" value="1" />
+            <Item label="Restore" value="2" />
+        </Value>
+        <Value type="byte" genre="config" index="9" label="Ramp Rate Control" size="1" min="0" max="99" value="1" units="seconds">
+            <Help>Adjust the physical ramp rate for your dimmer (fade-in / fade-out effect for on / off operation). Values correspond to the number of seconds it take for the dimmer to reach full brightness or turn off when operated manually. This setting is for physical taps only, see parameter 17 to adjust Z-Wave ramp rate. Values: 1 – 99 (seconds). 0 – instant on/off. Default: 1</Help>
+        </Value>
+        <Value type="byte" genre="config" index="10" label="Minimum Brightness" size="1" min="1" max="99" value="1" units="%">
+            <Help>Set the minimum brightness level (in %) for your dimmer. You won't be able to dim the light below the set value.</Help>
+        </Value>
+        <Value type="byte" genre="config" index="11" label="Maximum Brightness" size="1" min="1" max="99" value="99" units="%">
+            <Help> Set the maximum brightness level (in %) for your dimmer. You won't be able to add brightness to the light beyond the set value. Note: if Parameter 12 is set to value "Full", Parameter 11 is automatically disabled.</Help>
+        </Value>
+        <Value type="list" genre="config" index="12" label="Double-Tap Function" size="1" min="0" max="3" value="0">
+            <Help>Upper Paddle Double-Tap action. When set to Full, turns light on to 100%. When set to Custom Level, the light will turn on to custom brightness elvel set in Parameter 18. If set to Maximum Level, turns light on to % set in Parameter 11. Disable will disable the double tap feature.</Help>
+            <Item label="Full" value="0" />
+            <Item label="Custom Level" value="1" />
+            <Item label="Maximum Level" value="2" />
+            <Item label="Disable" value="3" />
+        </Value>
+        <Value type="list" genre="config" index="25" label="Single-Tap Function" size="1" min="0" max="3" value="0">
+            <Help>Upper Paddle Single-Tap action. When set to Full, turns light on to 100%. When set to Custom Level, the light will turn on to custom brightness elvel set in Parameter 18. If set to Maximum Level, turns light on to % set in Parameter 11. If set to Last, turns light on to last brightness level (default).</Help>
+            <Item label="Last" value="0" />
+            <Item label="Custom Level" value="1" />
+            <Item label="Maximum Level" value="2" />
+            <Item label="Full" value="3" />
+        </Value>
+        <Value type="list" genre="config" index="13" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
+            <Help>Enable or Disable scene control functionality for quick double tap triggers.</Help>
+            <Item label="Disabled" value="0" />
+            <Item label="Enabled" value="1" />
+        </Value>
+        <Value type="list" genre="config" instance="1" index="15" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" min="0" max="2" value="1" size="1">
+            <Help>Enable or disable local on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through paddles. NOTE: hold the lower paddle for 10 seconds until the LED indicator starts blinking, then within 2 seconds, tap the upper paddle 5 times quickly to change this mode. The LED indicator will stay solid green for 3 seconds to confirm the change.</Help>
+            <Item label="physical paddle control disabled" value="0" />
+            <Item label="physical paddle control enabled (default)" value="1" />
+            <Item label="physical paddle and Z-Wave control disabled" value="2" />
+        </Value>
+        <Value type="byte" genre="config" instance="1" index="16" label="Physical Dimming Speed" units="" min="1" max="99" value="4">
+            <Help>Set the time it takes to get from 0% to 100% brightness when pressing and holding the paddle (physical dimming). The number entered as value corresponds to the number of seconds. Default: 4</Help>
+        </Value>
+        <Value type="byte" genre="config" instance="1" index="18" label="Custom Brightness Level On" units="" min="0" max="99" value="0">
+            <Help>Set the custom brightness level (instead of the last set brightness level) you want the dimmer to come on to when you single tap the upper paddle. Default: 0 - last brightness level</Help>
+        </Value>
+        <Value type="list" genre="config" instance="1" index="20" label="Z-Wave tap and hold Control" units="" min="0" max="1" value="0" size="1">
+            <Help>Choose how you'd like the dimmer to report when paddles are tapped and held and physical / Z-Wave control is enabled or disabled.</Help>
+            <Item label="report each brightness level to hub when physical / Z-Wave control is disabled for physical dimming (final level only reported if physical / Z-Wave control is enabled)" value="0" />
+            <Item label="report final brightness level only for physical dimming, regardless of the physical / Z-Wave control mode" value="1" />
+        </Value>
+        <Value type="list" genre="config" instance="1" index="19" label="3-Way Switch Type" units="" min="0" max="3" value="0" size="1">
+            <Help>Choose the type of 3-way switch you want to use with this dimmer in a 3-way set-up. Changing this setting can allow you to control brightness and dim the light from both 3-way locations. Use a regular momentary switch (like the Zooz ZAC99 accessory switch) if value is set to 2.</Help>
+            <Item label="regular mechanical 3-way on/off switch, use the connected 3-way switch to turn the light off or on to the last brightness level, dimming only available from the Zooz Z-Wave dimmer and from the hub (or through voice control if smart speaker is integrated with your Z-Wave hub)" value="0" />
+            <Item label="regular mechanical 3-way on/off switch, tap the paddles once to change state (light on or off), tap the paddles twice quickly to turn light on to full brightness, tap the paddles quickly 3 times to enable a dimming sequence (the light will start dimming up and down in a loop) and tap the switch again to set the selected brightness level" value="1" />
+            <Item label="momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence)" value="2" />
+            <Item label="momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence but always reduce brightness after double click)" value="2" />
+        </Value>
+        <Value type="list" genre="config" instance="1" index="21" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+            <Help>Set reporting behavior for disabled physical control.</Help>
+            <Item label="switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0" />
+            <Item label="switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" value="1" />
+        </Value>
+        <Value type="byte" genre="config" instance="1" index="22" label="Night Light Mode" units="" min="0" max="99" value="20">
+            <Help>Set the brightness level the dimmer will turn on to when off and when lower paddle is held DOWN for a second. Default: 20</Help>
+        </Value>
+    </CommandClass>
+    <!-- Association Groups -->
+    <CommandClass id="133">
+        <Associations num_groups="3">
+          <Group index="1" label="Lifeline" max_associations="1"/>
+          <Group index="2" label="Group 2" max_associations="5"/>
+	  <Group index="3" label="Group 3" max_associations="5"/>
+        </Associations>
+    </CommandClass>
+</Product>
diff --git a/config/zooz/zen76.xml b/config/zooz/zen76.xml
new file mode 100644
index 0000000000..5de4dd3a96
--- /dev/null
+++ b/config/zooz/zen76.xml
@@ -0,0 +1,140 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Zooz ZEN76 S2 On Off Switch</MetaDataItem>
+    <MetaDataItem name="Description">FEATURES:
+- Control your lights from the switch and via Z-Wave
+- Use with LED or incandescent lighting only: do NOT connect to switched receptacles, fans, or tube lights
+- NEW in 700 series: slimmer switch to fit shallow and crowded boxes (just 1.1" deep); almond, brown, and black paddles available (basic version comes in white)
+- NEW 700 chip: SmartStart inclusion, S2 security, more range than ever and super fast communication!
+- Simple Direct 3-Way or 4-Way: Still no add-on and use it in larger set-ups for multi-point control. Wires like the ZEN26 model with quicker and easy installation guaranteed. (Neutral wire required)
+- Scene Control on hubs that support multi-tap triggers*
+- Program the LED indicator with custom color and brightness level that fits your needs*
+- Smart range test mode: troubleshoot communication issues right from your switch
+- Immediate on/off status reports
+- Smart LED indicator makes pairing and set-up more intuitive (now control the LED mode with 6 clicks of any paddle!)
+- Restores status after power failure
+
+SPECIFICATIONS:
+- Model Number: ZEN76
+- Z-Wave Signal Frequency: 908.42 MHz (US)
+- Power: 120 VAC, 60 Hz
+- Range: Up to 200 feet line of sight
+- Operating Temperature: 32-104° F (0-40° C)
+- Installation: Indoor use only
+
+MANUAL CONTROL:
+Upper Paddle: 
+1 x tap: load on; Scene 1, attribute 00
+2 x tap: Scene 1, attribute 03
+3 x tap: enter inclusion (pairing) mode (only if the switch is not included to the hub); Scene 1, attribute 04
+4 x tap: Scene 1, attribute 05
+5 x tap: Scene 1, attribute 06
+6 x tap: change LED indicator mode (see parameter 2)
+held: Scene 1, attribute 01
+released: Scene 1, attribute 02
+
+Lower Paddle: 
+1 x tap: load off; Scene 2, attribute 00
+2 x tap: Scene 2, attribute 03
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04
+4 x tap: Scene 2, attribute 05
+5 x tap: Scene 2, attribute 06
+held: Scene 2, attribute 01
+released: Scene 2, attribute 02
+held for 10 seconds (LED indicator starts blinking): enter the setting menu >> 5 x tap down for factory reset; 5 x tap up to change LED bulb mode (see parameter 11); 2 x tap down to enable the range test tool.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:a006:7000</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.thesmartesthouse.com/products/zooz-700-series-z-wave-plus-s2-on-off-wall-switch-zen76</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.support.getzooz.com/kb/section/207</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen76.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://cdn.shopify.com/s/files/1/0218/7704/files/zooz-700-series-z-wave-plus-s2-switch-zen76-manual.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription"></MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Click the upper paddle 3 times quickly. The LED indicator will blink blue during the process and light up green once added successfully. It will light up red if failed.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Click the lower paddle 3 times very quickly.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the lower paddle for 10 seconds until the LED indicator starts blinking. Release paddle, and immediately after, tap the lower paddle 5 times to complete the reset. The LED indicator will flash blue 3 times and turn red for 3 seconds to confirm successful reset.</MetaDataItem>
+    <MetaDataItem id="a006" name="ZWProductPage" type="7000"><!-- url to https://products.z-wavealliance.org/products/XXXX/ page for this specific version of the device --></MetaDataItem>
+	  <!--product page not available as of Feb. 9, 2021 -->
+    <MetaDataItem id="a006" name="FrequencyName" type="7000">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="a006" name="Identifier" type="7000">ZEN76</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="9 February 2021" revision="1">Initial configuration from Zooz; firmware 1.01</Entry>
+    </ChangeLog>
+  </MetaData>
+  
+    <!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Value type="list" genre="config" index="1" label="On/Off Paddle Orientation" size="1" min="0" max="2" value="0">
+			<Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off.  Reverse mode: Upper paddle turns the light off, lower paddle turns the light on.  Toggle mode: Either paddle toggles the light.</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Toggle" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
+			<Help>LED Indication light function.  Normal has the LED Indication on when the switch is off, off when the switch is on.</Help>
+			<Item label="Normal" value="0"/>
+			<Item label="Reverse" value="1"/>
+			<Item label="Always Off" value="2"/>
+			<Item label="Always On" value="3"/>
+		</Value>
+		<Value type="int" genre="config" index="3" label="Auto Turn-Off Timer" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn off once it has been turned on.</Help>
+		</Value>
+		<Value type="int" genre="config" index="5" label="Auto Turn-On Timer" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+		</Value>
+		<Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
+			<Help>Status after power failure.  Off: always turn light off.  On: always turn light on.  Restore: remember the latest state and restore that state.</Help>
+			<Item label="Off" value="0"/>
+			<Item label="On" value="1"/>
+			<Item label="Restore" value="2"/>
+		</Value>
+		<Value type="list" genre="config" index="9" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
+			<Help>Enable or disable scene control functionality for quick double tap triggers.</Help>
+			<Item label="Disabled" value="0"/>
+			<Item label="Enabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="11" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" min="0" max="2" value="1" size="1">
+			<Help>Enable or disable local on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through paddles.</Help>
+			<Item label="physical paddle control disabled" value="0" />
+			<Item label="physical paddle control enabled (default)" value="1" />
+			<Item label="physical paddle and Z-Wave control disabled" value="2" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="12" label="3 Way Switch Type" units="" min="0" max="1" value="0" size="1">
+			<Help>Choose the type of 3-way switch you want to use with this switch in a 3-way set-up.</Help>
+			<Item label="Regular mechanical 3-way on/off switch, use the connected 3-way switch to turn the light on or off (default)" value="0"/>
+			<Item label="Momentary switch, click once to change status (light on or off)" value="1"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="13" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+			<Help>Set reporting behavior for disabled physical control.</Help>
+			<Item label="Switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0"/>
+			<Item label="Switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" value="1"/>
+		</Value>
+		<Value type="list" genre="config" index="14" label="LED Indicator Color" size="1" min="0" max="3" value="0">
+			<Help>Choose the color of the LED indicator.</Help>
+			<Item label="White" value="0"/>
+			<Item label="Blue (default)" value="1"/>
+			<Item label="Green" value="2"/>
+			<Item label="Red" value="3"/>
+		</Value>
+		<Value type="list" genre="config" index="15" label="LED Indicator Brightness" size="1" min="0" max="2" value="1">
+			<Help>Choose the LED indicator's brightness level.</Help>
+			<Item label="Bright (100%)" value="0"/>
+			<Item label="Medium (60%)" value="1"/>
+			<Item label="Low (30%)" value="2"/>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="16" label="Association Reports" units="" min="0" max="1" value="1" size="1">
+			<Help>Choose how the switch reports its status back to the hub.</Help>
+			<Item label="Binary switch report for Z-Wave control, basic set report for paddle control" value="0"/>
+			<Item label="Binary switch report for both Z-Wave and paddle control (default)" 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="Group 2" max_associations="5"/>
+	<Group index="3" label="Group 3" max_associations="5"/>
+      </Associations>
+    </CommandClass>
+	
+</Product>
diff --git a/config/zooz/zen77.xml b/config/zooz/zen77.xml
new file mode 100644
index 0000000000..e1e515966d
--- /dev/null
+++ b/config/zooz/zen77.xml
@@ -0,0 +1,177 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="Name">Zooz ZEN77 S2 Dimmer Switch</MetaDataItem>
+    <MetaDataItem name="Description">FEATURES:
+- Use with LED bulbs up to 100 W or incandescent bulbs up to 300 W (do NOT connect to tube lights, fans, switched receptacles, or CFL bulbs)
+- NEW in 700 series: smaller form factor, fits better in shallow or crowded boxes (just 1.1" deep); get it with almond, brown, or black paddles (sold separately, basic version comes in white)
+- NEW 700 chip: the latest S2 security, SmartStart for easy pairing and faster communication with better Z-Wave range!
+- Simple Direct 3-Way or 4-Way: Less rewiring for more multi-point control scenarios like 4-ways and 5-ways where load and line are in separate boxes. Use it the same way as the ZEN27 dimmer. Neutral wire required.
+- Night Light Mode: press and hold the lower paddle when dimmer is off to turn the light on to low brightness
+- Scene Control (select hubs only): activate scenes and trigger other devices with multi-tap*
+- You choose the color and brightness level of the LED indicator*
+- Programmable double tap and single tap for truly customized control*
+- Adjustable ramp rate and maximum/minimum brightness levels*
+- OTA firmware updates for a future-proof device
+- Signal repeater will make your Z-Wave network more reliable
+
+SPECIFICATIONS:
+- Z-Wave Frequency: 908.42 MHz (US)
+- Power: 120 VAC, 60 Hz
+- Maximum Load: 100 W LED/CFL, 300 W incandescent
+- Z-Wave Range: Up to 200 feet line of sight
+- Operating Temperature: 32-104° F (0-40° C)
+- Installation: Indoor use only
+https://www.support.getzooz.com/kb/article/550-zen77-s2-dimmer-700-advanced-settings/
+
+MANUAL CONTROL:
+Upper Paddle: 
+1 x tap: load on to last / custom / full / max brightness; Scene 1, attribute 00
+2 x tap: on to full / max / custom brightness; Scene 1, attribute 03
+3 x tap: enter inclusion (pairing) mode (only if not included to Z-Wave network); Scene 1, attribute 04
+4 x tap: Scene 1, attribute 05
+5 x tap: Scene 1, attribute 06
+6 x tap: change LED indicator mode (see parameter 2)
+press and hold: increase brightness level; Scene 1, attribute 01
+release: Scene 1, attribute 02
+
+Lower Paddle: 
+1 x tap: load off; Scene 2, attribute 00
+2 x tap: Scene 2, attribute 03
+3 x tap: enter exclusion (unpairing) mode; Scene 2, attribute 04
+4 x tap: Scene 2, attribute 05
+5 x tap: Scene 2, attribute 06
+press and hold: decrease brightness level; Scene 2, attribute 01
+press and hold when off: turn on to 20% brightness (night light mode)
+release: Scene 2, attribute 02
+held for 10 seconds (LED indicator starts blinking): enter the setting menu >> 5 x tap down for factory reset; 5 x tap up to change LED bulb mode (see parameter 11); 2 x tap down to enable the range test tool.</MetaDataItem>
+    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027a:a007:7000</MetaDataItem>
+    <MetaDataItem name="ProductPage">https://www.thesmartesthouse.com/products/zooz-700-series-z-wave-plus-s2-dimmer-switch-zen77</MetaDataItem>
+    <MetaDataItem name="ProductSupport">https://www.support.getzooz.com/kb/section/208/</MetaDataItem>
+    <MetaDataItem name="ProductPic">images/zooz/zen77.png</MetaDataItem>
+    <MetaDataItem name="ProductManual">https://cdn.shopify.com/s/files/1/0218/7704/files/zooz-700-series-z-wave-plus-s2-dimmer-zen77-manual.pdf</MetaDataItem>
+    <MetaDataItem name="WakeupDescription"></MetaDataItem>
+    <MetaDataItem name="InclusionDescription">Click the upper paddle 3 times quickly. The LED indicator will blink blue during the process and light up green once added successfully. It will light up red if failed.</MetaDataItem>
+    <MetaDataItem name="ExclusionDescription">Click the lower paddle 3 times very quickly.</MetaDataItem>
+    <MetaDataItem name="ResetDescription">Press and hold the lower paddle for 10 seconds until the LED indicator starts blinking. Release paddle, and immediately after, tap the lower paddle 5 times to complete the reset. The LED indicator will flash blue 3 times and turn red for 3 seconds to confirm successful reset.</MetaDataItem>
+    <MetaDataItem id="a007" name="ZWProductPage" type="7000"><!-- url to https://products.z-wavealliance.org/products/XXXX/ page for this specific version of the device --></MetaDataItem>
+	  <!--product page not available as of Feb. 12, 2021 -->
+    <MetaDataItem id="a007" name="FrequencyName" type="7000">U.S. / Canada / Mexico</MetaDataItem>
+    <MetaDataItem id="a007" name="Identifier" type="7000">ZEN77</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Matthew Grimes - https://github.com/cybergrimes" date="12 February 2021" revision="1">Initial configuration from Zooz; firmware 1.02</Entry>
+    </ChangeLog>
+  </MetaData>
+  
+   <!-- Configuration Parameters -->
+	<CommandClass id="112">
+		<Instance index="1" />
+		<Value type="list" genre="config" index="1" label="On/Off Paddle Orientation" size="1" min="0" max="2" value="0">
+			<Help>Normal mode: Upper paddle turns the light on, lower paddle turns the light off. Reverse mode: Upper paddle turns the light off, lower paddle turns the light on. Toggle mode: Either paddle toggles the light.</Help>
+			<Item label="Normal" value="0" />
+			<Item label="Reverse" value="1" />
+			<Item label="Toggle" value="2" />
+		</Value>
+		<Value type="list" genre="config" index="2" label="LED Indication Control" size="1" min="0" max="3" value="0">
+			<Help>LED Indication light function. Normal has the LED Indication on when the switch is off, off when the switch is on. </Help>
+			<Item label="Normal" value="0" />
+			<Item label="Reverse" value="1" />
+			<Item label="Always Off" value="2" />
+			<Item label="Always On" value="3" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="23" label="LED Indicator Color" size="1" min="0" max="3" value="1">
+			<Help>Choose the color of the LED indicator. Default: Blue</Help>
+			<Item label="White" value="0" />
+			<Item label="Blue" value="1" />
+			<Item label="Green" value="2" />
+			<Item label="Red" value="3" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="24" label="LED Indicator Brightness" size="1" min="0" max="2" value="1">
+			<Help>Choose the brightness of the LED indicator. Default: Medium</Help>
+			<Item label="Bright" value="0" />
+			<Item label="Medium" value="1" />
+			<Item label="Low" value="2" />
+		</Value>
+		<Value type="int" genre="config" index="3" label="Auto Turn-Off Timer" size="4" min="0" max="65535" value="0" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn off once it has been turned on.</Help>
+		</Value>
+		<Value type="int" genre="config" index="5" label="Auto Turn-On Timer" size="4" min="0" max="65535" value="60" units="minutes">
+			<Help>Set the time (in minutes) after which you want the switch to automatically turn on once it has been turned off.</Help>
+		</Value>
+		<Value type="list" genre="config" index="8" label="On Off Status After Power Failure" size="1" min="0" max="2" value="2">
+			<Help>Status after power failure. Off: always turn light off. On: always turn light on. Restore: remember the latest state and restore that state.</Help>
+			<Item label="Off" value="0" />
+			<Item label="On" value="1" />
+			<Item label="Restore" value="2" />
+		</Value>
+		<Value type="byte" genre="config" index="9" label="Ramp Rate Control" size="1" min="0" max="99" value="1" units="seconds">
+			<Help>Adjust the physical ramp rate for your dimmer (fade-in / fade-out effect for on / off operation). Values correspond to the number of seconds it take for the dimmer to reach full brightness or turn off when operated manually. This setting is for physical taps only, see parameter 17 to adjust Z-Wave ramp rate. Values: 1 – 99 (seconds). 0 – instant on/off. Default: 1</Help>
+		</Value>
+		<Value type="byte" genre="config" index="10" label="Minimum Brightness" size="1" min="1" max="99" value="1" units="%">
+			<Help>Set the minimum brightness level (in %) for your dimmer. You won't be able to dim the light below the set value.</Help>
+		</Value>
+		<Value type="byte" genre="config" index="11" label="Maximum Brightness" size="1" min="1" max="99" value="99" units="%">
+			<Help> Set the maximum brightness level (in %) for your dimmer. You won't be able to add brightness to the light beyond the set value. Note: if Parameter 12 is set to value "Full", Parameter 11 is automatically disabled.</Help>
+		</Value>
+		<Value type="list" genre="config" index="12" label="Double-Tap Function" size="1" min="0" max="3" value="0">
+			<Help>Upper Paddle Double-Tap action. When set to Full, turns light on to 100%. When set to Custom Level, the light will turn on to custom brightness elvel set in Parameter 18. If set to Maximum Level, turns light on to % set in Parameter 11. Disable will disable the double tap feature.</Help>
+			<Item label="Full" value="0" />
+			<Item label="Custom Level" value="1" />
+			<Item label="Maximum Level" value="2" />
+			<Item label="Disable" value="3" />
+		</Value>
+		<Value type="list" genre="config" index="25" label="Single-Tap Function" size="1" min="0" max="3" value="0">
+			<Help>Upper Paddle Single-Tap action. When set to Full, turns light on to 100%. When set to Custom Level, the light will turn on to custom brightness elvel set in Parameter 18. If set to Maximum Level, turns light on to % set in Parameter 11. If set to Last, turns light on to last brightness level (default).</Help>
+			<Item label="Last" value="0" />
+			<Item label="Custom Level" value="1" />
+			<Item label="Maximum Level" value="2" />
+			<Item label="Full" value="3" />
+		</Value>
+		<Value type="list" genre="config" index="13" label="Enable/Disable Scene Control" size="1" min="0" max="1" value="0">
+			<Help>Enable or Disable scene control functionality for quick double tap triggers.</Help>
+			<Item label="Disabled" value="0" />
+			<Item label="Enabled" value="1" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="15" label="Smart Bulb Mode: Enable/Disable Paddle / Z-Wave Control" units="" min="0" max="2" value="1" size="1">
+			<Help>Enable or disable local on/off control. If enabled, you’ll only be able to control the connected light via Z-Wave. Scenes and other functionality will still be available through paddles. NOTE: hold the lower paddle for 10 seconds until the LED indicator starts blinking, then within 2 seconds, tap the upper paddle 5 times quickly to change this mode. The LED indicator will stay solid green for 3 seconds to confirm the change.</Help>
+			<Item label="physical paddle control disabled" value="0" />
+			<Item label="physical paddle control enabled (default)" value="1" />
+			<Item label="physical paddle and Z-Wave control disabled" value="2" />
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="16" label="Physical Dimming Speed" units="" min="1" max="99" value="4">
+			<Help>Set the time it takes to get from 0% to 100% brightness when pressing and holding the paddle (physical dimming). The number entered as value corresponds to the number of seconds. Default: 4</Help>
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="18" label="Custom Brightness Level On" units="" min="0" max="99" value="0">
+			<Help>Set the custom brightness level (instead of the last set brightness level) you want the dimmer to come on to when you single tap the upper paddle. Default: 0 - last brightness level</Help>
+		</Value>
+		<Value type="list" genre="config" instance="1" index="20" label="Z-Wave tap and hold Control" units="" min="0" max="1" value="0" size="1">
+			<Help>Choose how you'd like the dimmer to report when paddles are tapped and held and physical / Z-Wave control is enabled or disabled.</Help>
+			<Item label="report each brightness level to hub when physical / Z-Wave control is disabled for physical dimming (final level only reported if physical / Z-Wave control is enabled)" value="0" />
+			<Item label="report final brightness level only for physical dimming, regardless of the physical / Z-Wave control mode" value="1" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="19" label="3-Way Switch Type" units="" min="0" max="3" value="0" size="1">
+			<Help>Choose the type of 3-way switch you want to use with this dimmer in a 3-way set-up. Changing this setting can allow you to control brightness and dim the light from both 3-way locations. Use a regular momentary switch (like the Zooz ZAC99 accessory switch) if value is set to 2.</Help>
+			<Item label="regular mechanical 3-way on/off switch, use the connected 3-way switch to turn the light off or on to the last brightness level, dimming only available from the Zooz Z-Wave dimmer and from the hub (or through voice control if smart speaker is integrated with your Z-Wave hub)" value="0" />
+			<Item label="regular mechanical 3-way on/off switch, tap the paddles once to change state (light on or off), tap the paddles twice quickly to turn light on to full brightness, tap the paddles quickly 3 times to enable a dimming sequence (the light will start dimming up and down in a loop) and tap the switch again to set the selected brightness level" value="1" />
+			<Item label="momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence)" value="2" />
+			<Item label="momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence but always reduce brightness after double click)" value="2" />
+		</Value>
+		<Value type="list" genre="config" instance="1" index="21" label="Reporting behavior with disabled physical control" units="" min="0" max="1" value="0" size="1">
+			<Help>Set reporting behavior for disabled physical control.</Help>
+			<Item label="switch reports on/off status and changes LED indicator state even if physical and Z-Wave control is disabled (default)" value="0" />
+			<Item label="switch doesn't report on/off status or change LED indicator state when physical (and Z-Wave) control is disabled" value="1" />
+		</Value>
+		<Value type="byte" genre="config" instance="1" index="22" label="Night Light Mode" units="" min="0" max="99" value="20">
+			<Help>Set the brightness level the dimmer will turn on to when off and when lower paddle is held DOWN for a second. Default: 20</Help>
+		</Value>
+	</CommandClass>
+	
+    <!-- Association Groups -->
+    <CommandClass id="133">
+      <Associations num_groups="3">
+        <Group index="1" label="Lifeline" max_associations="1"/>
+        <Group index="2" label="Group 2" max_associations="5"/>
+	    <Group index="3" label="Group 3" max_associations="5"/>
+      </Associations>
+    </CommandClass>
+	
+</Product>
diff --git a/config/zooz/zse29.xml b/config/zooz/zse29.xml
index 532413e484..b6a439e906 100644
--- a/config/zooz/zse29.xml
+++ b/config/zooz/zse29.xml
@@ -1,4 +1,4 @@
-<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
+<Product Revision="3" xmlns="https://github.com/OpenZWave/open-zwave">
   <MetaData>
     <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/027A:0005:0001</MetaDataItem>
     <MetaDataItem name="ProductPic">images/zooz/zse29.png</MetaDataItem>
@@ -46,9 +46,45 @@ NOTE: All previously recorded activity and custom settings will be erased from t
     <MetaDataItem id="0005" name="Identifier" type="0001">ZSE29</MetaDataItem>
     <ChangeLog>
       <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="2">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3081/xml</Entry>
+      <Entry author="Brad Parker - https://github.com/bepsoccer" date="27 May 2020" revision="3">Updated for firmware version 2.0</Entry>
     </ChangeLog>
   </MetaData>
-  <!-- Zooz ZSE29 Outdoor Motion Sensor -->
+
+  <!-- Configuration Parameters -->
+  <CommandClass id="112">
+    <Value type="byte" genre="config" index="1" label="Basic Set Report Value Sent to Associated Devices" size="1" min="0" max="99" value="99">
+      <Help> Set the value of basic set report sent to the light associated with the sensor in Group 2 (so the light turns on to the selected brightness level). 99 is the equivalent of full brightness in Z-Wave terms.
+      default: 99
+      </Help>
+    </Value>
+    <Value type="list" genre="config" index="2" label="Enable / Disable Motion Reports" size="1" min="0" max="1" value="1">
+      <Help>Enable or disable motion reports completely. If motion sensor is disabled, the device will not report motion at all to your hub.</Help>
+      <Item label="Disabled" value="0"/>
+      <Item label="Enabled (default)" value="1"/>
+    </Value> 
+    <Value type="byte" genre="config" index="3" label="Motion Sensativity" size="1" min="1" max="10" value="10">
+      <Help>Adjust motion sensitivity where 10 is the most sensative setting.
+      default: 10
+      </Help>
+    </Value>
+    <Value type="short" genre="config" index="4" label="Lux Level Trigger" size="2" min="0" max="900" value="0">
+      <Help>Set lux level trigger with 10 being the lowest reported value.  The sensor will report motion to the hub and associated devices only if lux level is below the set value.
+      0 - set manually by lux knob; (default)
+      1 - ignore lux and always report motion;
+      </Help>
+    </Value>
+    <Value type="short" genre="config" index="5" label="Motion Re-trigger Time" size="2" min="0" max="720" value="0" units="seconds">
+      <Help>Set motion re-trigger time for the delay before the sensor reports no motion to the hub and associated devices after detecting the last motion activity.
+      0 - set manually by timer knob; (default)
+      5-720 (seconds) - set customer re-trigger time;
+      </Help>
+    </Value>
+    <Value type="short" genre="config" index="6" label="Lux Reporting Frequency" size="2" min="1" max="1440" value="30" units="minutes">
+      <Help>Set lux reporting frequency to decide how often the snesor will measure and send brightness level data to the hub and associated devices.
+      default: 30 (minutes)
+      </Help>
+    </Value>
+  </CommandClass>
 
     <!-- Association Groups -->
   <CommandClass id="133">
diff --git a/config/zwave.me/ZME_WALLC-S.xml b/config/zwave.me/ZME_WALLC-S.xml
index 6103809157..b8ccb2c03c 100644
--- a/config/zwave.me/ZME_WALLC-S.xml
+++ b/config/zwave.me/ZME_WALLC-S.xml
@@ -1,8 +1,29 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
+<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
 
 <!-- Z-Wave.Me: ZME_WALLC-S Secure Wall Controller -->
+<MetaData>
+	<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0115:0101:0100</MetaDataItem>
+	<MetaDataItem name="ProductPic">images/zwave.me/zme_wallc_s.png</MetaDataItem>
+	<MetaDataItem id="0101" name="ZWProductPage" type="0100">https://products.z-wavealliance.org/products/1086/</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">ZME_WALLC-S</MetaDataItem>
+	<MetaDataItem name="ProductManual">https://products.z-wavealliance.org/ProductManual/File?folder=&amp;filename=MarketCertificationFiles/1086/ZME_WALLC-S-Manual.pdf</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 Z-Wave.Me Wall Controller 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">ZME_WALLC-S Secure Wall Controller</MetaDataItem>
+	<ChangeLog>
+		<Entry author="Nouknouk - nouknouk@gmail.com" date="08 Dec 2020" revision="3">Initial Metadata</Entry>
+	</ChangeLog>
+</MetaData>
 	<!-- 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">
@@ -94,4 +115,3 @@
 	</CommandClass>
 
 </Product>
-		
diff --git a/config/zwave.me/razberry.xml b/config/zwave.me/razberry.xml
new file mode 100644
index 0000000000..0d9b4048f1
--- /dev/null
+++ b/config/zwave.me/razberry.xml
@@ -0,0 +1,8 @@
+<Product Revision="1" xmlns="https://github.com/OpenZWave/open-zwave">
+  <MetaData>
+    <MetaDataItem name="ProductPic">images/zwave.me/razberry.png</MetaDataItem>
+    <ChangeLog>
+      <Entry author="Daniel Brunt - daniel@brunt.ca" date="30 Jul 2020" revision="1">Initial metadata to add pic</Entry>
+    </ChangeLog>
+  </MetaData>
+</Product>
diff --git a/cpp/build/Makefile b/cpp/build/Makefile
index 6eed2929f1..27ffa33819 100644
--- a/cpp/build/Makefile
+++ b/cpp/build/Makefile
@@ -155,7 +155,7 @@ clean:
 	@rm -rf $(DEPDIR) $(OBJDIR) $(LIBDIR)/libopenzwave.so* $(LIBDIR)/libopenzwave*.dylib $(LIBDIR)/libopenzwave.a $(top_builddir)/libopenzwave.pc $(top_builddir)/docs/api $(top_builddir)/Doxyfile $(top_srcdir)/cpp/src/vers.cpp
 
 printversion:
-	@echo "Building OpenZWave Version $(GITVERSION)"	
+	@echo "Building OpenZWave Version $(GITVERSION) - $(VERSION).$(VERSION_REV)"	
 
 
 -include $(patsubst %.cpp,$(DEPDIR)/%.d,$(tinyxml))
diff --git a/cpp/build/support.mk b/cpp/build/support.mk
index babb23b4da..1c93f8336e 100644
--- a/cpp/build/support.mk
+++ b/cpp/build/support.mk
@@ -40,20 +40,31 @@ TMP     := /tmp
 PKGCONFIG := $(shell which pkg-config)
 #git binary for doing a make dist export
 GIT		:= $(shell which git)
-# if git is not installed, then set the revision to 0
-ifeq ($(GIT),)
-$(warning  git executable not found, setting VERSION_REV to 0)
-VERSION_REV ?= 0
+#check if this is a Git Checkout, or a Distribution File
+GITDIR  := $(wildcard $(top_srcdir)/.git/)
+ifneq ($(GITDIR),)
+ifneq ($(GIT),0)
+GITCO	:= 1
+else 
+GITCO	:= 0
+endif
 else
+GITCO	:= 0
+endif
+
+ifeq ($(GITCO), 1)
+
 _ := $(shell $(GIT) -C $(top_srcdir) update-index --assume-unchanged dist/openzwave.spec 2>&1)
 ifneq ($(_),)
 $(warning  git update-index returned: $(_))
 endif
+
 GITVERSION	:= $(shell $(GIT) -C $(top_srcdir) describe --long --tags --dirty 2>/dev/null | sed s/^v//)
 _ := $(shell $(GIT) -C $(top_srcdir) update-index --no-assume-unchanged dist/openzwave.spec 2>&1)
 ifneq ($(_),)
 $(warning  git update-index returned: $(_))
 endif
+
 ifeq ($(GITVERSION),)
 $(warning  git describe returned an empty result, setting GITVERSION to VERSION_MAJ.VERSION_MIN.-1 and VERSION_REV to 0)
 GITVERSION	:= $(VERSION_MAJ).$(VERSION_MIN).-1
@@ -61,13 +72,25 @@ VERSION_REV	:= 0
 else
 VERSION_REV 	?= $(shell echo $(GITVERSION) | awk '{split($$0,a,"-"); print a[2]}')
 endif
+
+else 
+ifeq ($(VERSION_REV),)
+VERFILE	:= $(wildcard $(top_srcdir)/cpp/src/vers.cpp)
+ifneq ($(VERFILE),)
+VERSION_REV := $(shell sed -n 's/uint16_t ozw_vers_revision = \(.*\);$$/\1/p' $(VERFILE))
+else
+$(warning Missing Either Git Binary, Not a Source Checkout or doesn't have a vers.cpp)
+endif
 endif
+endif
+
 ifeq ($(VERSION_REV),)
 VERSION_REV ?= 0
 endif
 # version number to use on the shared library
 VERSION := $(VERSION_MAJ).$(VERSION_MIN)
 
+
 # using seting from bitbake
 ifeq ($(BITBAKE_ENV),1)
 CC     := $(CC)
diff --git a/cpp/build/testconfig.pl b/cpp/build/testconfig.pl
index 53c25ae915..3cf2817939 100755
--- a/cpp/build/testconfig.pl
+++ b/cpp/build/testconfig.pl
@@ -68,13 +68,13 @@ sub CheckConfig {
 foreach my $rev ($data)
 {
 	#print $_[0]."-".Dumper($rev->{Revision});
+	my $fr = int $rev->{Revision};
 	my $md5 = digest_file_hex($_[0], "SHA-512");
 	if (defined($CFG::versiondb{$_[0]}))
 	{
 		if ($CFG::versiondb{$_[0]}{md5} ne $md5) 
 		{
 			my $dbr = int $CFG::versiondb{$_[0]}->{Revision};
-			my $fr = int $rev->{Revision};
 			if ($dbr >= $fr )
 			{
 				print $_[0]." - md5 does not match Database - Database Revision:";
@@ -84,7 +84,7 @@ sub CheckConfig {
 			} else {
 				my %versions;
 				$versions{md5} = $md5;
-				$versions{Revision} = $rev->{Revision};
+				$versions{Revision} = $fr;
 				$CFG::versiondb{$_[0]} = \%versions;
 				print($_[0]." - Updating Database\n");
 			}			
@@ -92,7 +92,7 @@ sub CheckConfig {
 	} else { 
 		my %versions;
 		$versions{md5} = $md5;
-		$versions{Revision} = $rev->{Revision};
+		$versions{Revision} = $fr;
 		$CFG::versiondb{$_[0]} = \%versions;
 		print($_[0]." - Adding new file to Database\n");
 	}
@@ -134,12 +134,16 @@ sub CheckConfig {
 				if ($data->{Revision} == $changelog->{'revision'}) {
 					$gotrev = 1;
 				}
+				if (!length($changelog->{'content'})) {
+					LogError($_[0], 9, "No Text in Entry for ChangeLog Revision $changelog->{revision}");
+				}
 			}
 			if ($gotrev == 0) {
 				LogError($_[0], 9, "No Change Log Entry for this revision");
 			}
 			#now make sure required attributes have type/id entries
 			my %params = map { $_ => 1 } @metadatatypeneeded;
+			my $gotpic = 0;
 			foreach my $mdi (@{$metadataitem->{MetaDataItem}}) {
 				if (exists $params{$mdi->{name}}) {
 					if (!defined($mdi->{type})) {
@@ -149,8 +153,21 @@ sub CheckConfig {
 						LogError($_[0], 11, "ID Identifier Required for $mdi->{name}");
 					}
 				}
+				if ($mdi->{name} eq 'ProductPic') {
+					$gotpic = 1;
+					if (defined($mdi->{content})) { 
+						if (!-e "config/$mdi->{content}" ) {
+							LogError($_[0], 12, "Image File Missing - config/$mdi->{content}");
+						}
+					} else {
+						LogError($_[0], 13, "Empty ProductPic Entry");
+					}
+					
+				}
+			}
+			if ($gotpic == 0) {
+				LogError($_[0], 13, "No ProductPic Entry in MetaData");
 			}
-			
 		}
 	}
      $data = $xml->XMLin($_[0], ForceArray => [ 'Value', 'MetaDataItem' ], KeyAttr => { CommandClass=>"id"});
@@ -250,22 +267,22 @@ sub CheckFileExists {
 my $data = $xml->XMLin("config/manufacturer_specific.xml", KeyAttr => "", ForceArray => [ 'Product' ] );
 # do a check of MFS Revision etc 
 my $md5 = digest_file_hex("config/manufacturer_specific.xml", "SHA-512");
+my $fr = int $data->{Revision};
 if (defined($CFG::versiondb{"config/manufacturer_specific.xml"}))
 	{
 	if ($CFG::versiondb{"config/manufacturer_specific.xml"}{md5} != $md5) 
 		{
 		my $dbr = $CFG::versiondb{"config/manufacturer_specific.xml"}->{Revision};
-		my $fr = $data->{Revision};
 		if ($dbr ge $fr )
 		{
 			print "config/manufacturer_specific.xml"." - md5 does not match Database - Database Revision:";
-			print $CFG::versiondb{"config/manufacturer_specific.xml"}->{Revision}." File Revision:".int $data->{Revision};
+			print $CFG::versiondb{"config/manufacturer_specific.xml"}->{Revision}." File Revision:".$fr;
 			print "\n";
 			LogError("config/manufacturer_specific.xml", 8, "Revision Number Was Not Bumped");	
 		} else {
 			my %versions;
 			$versions{md5} = $md5;
-			$versions{Revision} = $data->{Revision};
+			$versions{Revision} = $fr;
 			$CFG::versiondb{"config/manufacturer_specific.xml"} = \%versions;
 			print("config/manufacturer_specific.xml"." - Updating Database\n");
 		}			
@@ -273,7 +290,7 @@ sub CheckFileExists {
 } else { 
 	my %versions;
 	$versions{md5} = $md5;
-	$versions{Revision} = $data->{Revision};
+	$versions{Revision} = $fr;
 	$CFG::versiondb{"config/manufacturer_specific.xml"} = \%versions;
 	print("config/manufacturer_specific.xml"." - Adding new file to Database\n");
 }
@@ -314,22 +331,22 @@ sub CheckLocalization {
 my $data = $xml->XMLin("config/Localization.xml", KeyAttr => "", ForceArray => [ 'Localization' ] );
 # do a check of MFS Revision etc 
 my $md5 = digest_file_hex("config/Localization.xml", "SHA-512");
+my $fr = int $data->{Revision};
 if (defined($CFG::versiondb{"config/Localization.xml"}))
 	{
 	if ($CFG::versiondb{"config/Localization.xml"}{md5} != $md5) 
 		{
 		my $dbr = $CFG::versiondb{"config/Localization.xml"}->{Revision};
-		my $fr = $data->{Revision};
 		if ($dbr ge $fr )
 		{
 			print "config/Localization.xml"." - md5 does not match Database - Database Revision:";
-			print $CFG::versiondb{"config/Localization.xml"}->{Revision}." File Revision:".int $data->{Revision};
+			print $CFG::versiondb{"config/Localization.xml"}->{Revision}." File Revision:".$fr;
 			print "\n";
 			LogError("config/Localization.xml", 8, "Revision Number Was Not Bumped");	
 		} else {
 			my %versions;
 			$versions{md5} = $md5;
-			$versions{Revision} = $data->{Revision};
+			$versions{Revision} = $fr;
 			$CFG::versiondb{"config/Localization.xml"} = \%versions;
 			print("config/Localization.xml"." - Updating Database\n");
 		}			
@@ -337,7 +354,7 @@ sub CheckLocalization {
 } else { 
 	my %versions;
 	$versions{md5} = $md5;
-	$versions{Revision} = $data->{Revision};
+	$versions{Revision} = $fr;
 	$CFG::versiondb{"config/Localization.xml"} = \%versions;
 	print("config/Localization.xml"." - Adding new file to Database\n");
 }
@@ -350,6 +367,7 @@ sub CheckNotificationCCTypes {
 my $data = $xml->XMLin("config/NotificationCCTypes.xml", KeyAttr => "", ForceArray => [ 'NotificationTypes' ] );
 # do a check of MFS Revision etc 
 my $md5 = digest_file_hex("config/NotificationCCTypes.xml", "SHA-512");
+my $fr = int $data->{Revision};
 if (defined($CFG::versiondb{"config/NotificationCCTypes.xml"}))
 	{
 	if ($CFG::versiondb{"config/NotificationCCTypes.xml"}{md5} != $md5) 
@@ -359,13 +377,13 @@ sub CheckNotificationCCTypes {
 		if ($dbr ge $fr )
 		{
 			print "config/NotificationCCTypes.xml"." - md5 does not match Database - Database Revision:";
-			print $CFG::versiondb{"config/NotificationCCTypes.xml"}->{Revision}." File Revision:".int $data->{Revision};
+			print $CFG::versiondb{"config/NotificationCCTypes.xml"}->{Revision}." File Revision:".$fr;
 			print "\n";
 			LogError("config/NotificationCCTypes.xml", 8, "Revision Number Was Not Bumped");	
 		} else {
 			my %versions;
 			$versions{md5} = $md5;
-			$versions{Revision} = $data->{Revision};
+			$versions{Revision} = $fr;
 			$CFG::versiondb{"config/NotificationCCTypes.xml"} = \%versions;
 			print("config/NotificationCCTypes.xml"." - Updating Database\n");
 		}			
@@ -373,7 +391,7 @@ sub CheckNotificationCCTypes {
 } else { 
 	my %versions;
 	$versions{md5} = $md5;
-	$versions{Revision} = $data->{Revision};
+	$versions{Revision} = $fr;
 	$CFG::versiondb{"config/NotificationCCTypes.xml"} = \%versions;
 	print("config/NotificationCCTypes.xml"." - Adding new file to Database\n");
 }
@@ -386,6 +404,7 @@ sub CheckSensorMultiLevelCCTypes {
     my $data = $xml->XMLin("config/SensorMultiLevelCCTypes.xml", KeyAttr => "", ForceArray => [ 'SensorTypes' ] );
     # do a check of MFS Revision etc
     my $md5 = digest_file_hex("config/SensorMultiLevelCCTypes.xml", "SHA-512");
+	my $fr = int $data->{Revision};
     if (defined($CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"}))
     {
         if ($CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"}{md5} != $md5)
@@ -395,13 +414,13 @@ sub CheckSensorMultiLevelCCTypes {
             if ($dbr ge $fr )
             {
                 print "config/SensorMultiLevelCCTypes.xml"." - md5 does not match Database - Database Revision:";
-                print $CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"}->{Revision}." File Revision:".int $data->{Revision};
+                print $CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"}->{Revision}." File Revision:".$fr;
                 print "\n";
                 LogError("config/SensorMultiLevelCCTypes.xml", 8, "Revision Number Was Not Bumped");
             } else {
                 my %versions;
                 $versions{md5} = $md5;
-                $versions{Revision} = $data->{Revision};
+                $versions{Revision} = $fr;
                 $CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"} = \%versions;
                 print("config/SensorMultiLevelCCTypes.xml"." - Updating Database\n");
             }
@@ -409,7 +428,7 @@ sub CheckSensorMultiLevelCCTypes {
     } else {
         my %versions;
         $versions{md5} = $md5;
-        $versions{Revision} = $data->{Revision};
+        $versions{Revision} = $fr;
         $CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"} = \%versions;
         print("config/SensorMultiLevelCCTypes.xml"." - Adding new file to Database\n");
     }
@@ -635,4 +654,6 @@ sub CheckSuppression
 	open my $FH, '>', 'cpp/build/testconfigversions.cfg';
 	print $FH Data::Dumper->Dump([\%CFG::versiondb], ['*versiondb']);
 	close $FH;	
+} else {
+	exit 1;
 }
diff --git a/cpp/build/testconfigversions.cfg b/cpp/build/testconfigversions.cfg
index 4a7226f296..d52e77c7a8 100644
--- a/cpp/build/testconfigversions.cfg
+++ b/cpp/build/testconfigversions.cfg
@@ -1,58 +1,62 @@
 %versiondb = (
                'config/2gig/ct100.xml' => {
-                                            'Revision' => '6',
+                                            'Revision' => 6,
                                             'md5' => '4fe343964064e151aac9e1b2ce76574da4b2d1ba9e9cb86b7986a27e611ab5d88a7df0005f4d04b43c39aa64e08c299ac077f9f6c85cfe5af5b46c4f3c622e77'
                                           },
                'config/2gig/ct101.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => 'b2c96148fd6c97c1e7a0d07126d2a7a497b49b56105e00d311dcf885d204f44bbd0673a15b0041c894098cca56b8ccfdcb072946557bbd64877552beeb0e21c0'
                                           },
+               'config/2gig/ct200.xml' => {
+                                            'Revision' => 1,
+                                            'md5' => '7822e83cf1aa215d3ccad4d0103cc72a7a81c9a4501a068572bc65d3e7dd3631c3801dc3d554a4677d6b8b57758e42946b9cd2a5c614318c085f4ef6ade6d947'
+                                          },
                'config/2gig/ct30.xml' => {
-                                           'Revision' => '4',
+                                           'Revision' => 4,
                                            'md5' => '783218e85cb8eadbb47fd3dfd1d9dc60ccd7f1bf63fd585d8fd1701cab9f3460b78afd48c30ff88bd1e6754e0f215a1f607e6a8d838b92b25fe8dad5c106ea9f'
                                          },
                'config/2gig/ct32.xml' => {
-                                           'Revision' => 5,
-                                           'md5' => '3212843be3b66c1e1fee24ad77115918c2aa71a03a72bed86911fb545e84eb8c13e5d72e2019fb632a4f8f4de040faa4a3b516649735b90fc585438339ae1065'
+                                           'Revision' => 6,
+                                           'md5' => '3fc0dc93e116998e2d5d3e33d26dc182611a8c0c0ca031503b66fa45e88d39a6be0d53bdc0d7efcb6f371338ae70c393d5378f1e06dc58ec8b1ebf3fe17d44e2'
                                          },
                'config/2gig/ct50e.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => '9c53edcf0c9718202fb57582c4f292dbd8d754b90c3bb06680aa4a03f7d981be96636035134c680f33d99ab5b3341698a05f8f70652e2489715606287f8ca221'
                                           },
                'config/2gig/ct80.xml' => {
-                                           'Revision' => '2',
+                                           'Revision' => 2,
                                            'md5' => '8d38a290a107a1777a2b4d319ae9a393ed0e2b44ec2720e9ff778088a1bc9a417d3a128ef557b9ad568246754bcdd41c19c90c3cb6775a48e16544f787ed54b7'
                                          },
                'config/BeNext/1poleswitch.xml' => {
-                                                    'Revision' => '2',
+                                                    'Revision' => 2,
                                                     'md5' => '3b76f4656bc5d544507eec34e0fff51472a363b55d07b10ec06208d46be9bb8ced3f4baed01cd4ed97fd5f9187048eef62963c95c03134b2104f158b09592cdb'
                                                   },
                'config/BeNext/2poleswitch.xml' => {
-                                                    'Revision' => '2',
+                                                    'Revision' => 2,
                                                     'md5' => '85a950d189684ef3797d9b043572e82f9661a29af90dff49a62a6e8e0672952442b13f113e6b9dfe69ac19141addd097e6664e8f02006f553960cc9a3add3860'
                                                   },
                'config/BeNext/AlarmSound.xml' => {
-                                                   'Revision' => '4',
+                                                   'Revision' => 4,
                                                    'md5' => '8aa7047af5db54a1a47792a5a5cc63148f83a6b7dbe9e592a8a99bf5ebac4313528ec089346aea61438ff7ecb420273838f11ecd7fed7b97092b5f5eef97463b'
                                                  },
                'config/BeNext/BuiltinDimmer.xml' => {
-                                                      'Revision' => '2',
+                                                      'Revision' => 2,
                                                       'md5' => '748984dd23e65d0e9ba5e3a392cc3d85ad892d2ba1d19cfa7dcf73097dcf03aa0cc64b5a424619d0a04c6533a448698d81e3c6b0ace5fe1ced9e0deb08542da2'
                                                     },
                'config/BeNext/DoorSensor.xml' => {
-                                                   'Revision' => '4',
+                                                   'Revision' => 4,
                                                    'md5' => '8ebfe57d88e12b732d66a18dd5c1bdfe31eda56ba4a174f09a7ccfae12eae2e378c74c4050d3b59b3a3323e312c7286fa80ef25406c721d0bace170c30c6ee9d'
                                                  },
                'config/BeNext/EnergySwitch.xml' => {
-                                                     'Revision' => '2',
+                                                     'Revision' => 2,
                                                      'md5' => '5f21579b7171abadad0c495552ac171378e4530f0d54ec0c1440e1b019288234e6ebde6c210a132f355435959c3082ead05a559c8277b1dd7e01513c60b0c970'
                                                    },
                'config/BeNext/HeatingControl.xml' => {
-                                                       'Revision' => '4',
+                                                       'Revision' => 4,
                                                        'md5' => 'd1f4f2efc1544b406b40cd4a8d7d45ab2f15cacbb1f35b484a4b3dffd2d18beae46abf14970993d246799fb2df26109893b6f824304fede8ac38d2fb2c51fc16'
                                                      },
                'config/BeNext/Molite.xml' => {
-                                               'Revision' => '6',
+                                               'Revision' => 6,
                                                'md5' => '45ba6a2c4525a2609e843cf21e186762f30f9d4c0e1d3ce57da5685c55127df5a66987ea00c44364a543be57a30025c3d125e091bb03ea06e1528adf54325611'
                                              },
                'config/BeNext/P1dongle.xml' => {
@@ -60,1931 +64,2335 @@
                                                  'md5' => '8c0e0f218bb6fcece9001601875ec97de1db64456c1c1126c539499dbf73539afdb8fe7549ebfbc186158f4c246a30e523a9905962eb195cc2ad7a7605acf095'
                                                },
                'config/BeNext/PanicButton.xml' => {
-                                                    'Revision' => '3',
+                                                    'Revision' => 3,
                                                     'md5' => 'a28d1e807284459bc308026d21eb66b83b5f010ad8d155d1c729a1c1106389ee9f591ba7b633097f495d33bed8559e79aa8db822ac0ccb7f09ee4fd9705716a2'
                                                   },
                'config/BeNext/PanicWatch.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => 'ac6e5f893d44d59a9d583ac9cdd8d3ea8a96a9f27b3ad288cc87a9634c00e68339bfeac1e855cba5a94b2b6e0f1b39fe38240d0911e78d9d8374f2368b260ee5'
                                                  },
                'config/BeNext/PluginDimmer.xml' => {
-                                                     'Revision' => '2',
+                                                     'Revision' => 2,
                                                      'md5' => '3f2f85b719e0ca2f87f0e95eb3bf1968de6416a369fb3eded5ee92f97ad8935ba4a76585b163c41778707ae1af73e6919230c93614c4e7d049e388d864773157'
                                                    },
                'config/BeNext/SceneController.xml' => {
-                                                        'Revision' => '2',
+                                                        'Revision' => 2,
                                                         'md5' => 'f8a6cd6c2b4a7dcca25543b18a26301f0fb717671a779e937988428da8d40bb957af81c8e3011adef397ed3416a89c8d910f6c374b9ecc0e1968e88a3f0a3723'
                                                       },
                'config/BeNext/TagReader.xml' => {
-                                                  'Revision' => '5',
+                                                  'Revision' => 5,
                                                   'md5' => '86e9af8a741a2a97cef4a2fbe8b46b558fd9903fa845cc6a09f3002b6e8d8593fbf1d89b9bd899a4cf5749411af35141ebb1fe7ddaad965eb4b8dbe49172bf42'
                                                 },
                'config/BeNext/TagReader500.xml' => {
-                                                     'Revision' => '5',
+                                                     'Revision' => 5,
                                                      'md5' => 'e67743d1ac01fe4c07366f15806a7209a2ad458411b7a4c3dbfe0dc2e350c87b39dd72bcd7d676656d85b4fc13771aba34cf7690fc8eec0bbde116e19ca90a0e'
                                                    },
                'config/BeNext/mydisplay.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => '5930fbe8cce26fd6dd82e44ab57aec2db4cc1d0e2d2715af28cad9f35ca3b022fd94c5e3d2c1ab14b127a75886da4f295fb16ff4cfe5f5f5b985a02eefc4f009'
                                                 },
                'config/BeNext/mygate.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => 'eb39290e2085eb7493a88fba0f53782a588539d81810442fd1575d5065263e24b23e4711a2fd5df0bf7cae7ff380c605d785399e87aa658cac3f155a1d2ae667'
                                              },
                'config/Localization.xml' => {
-                                              'Revision' => '8',
-                                              'md5' => 'cb17fb84342208b79eaa2cf41563f96e50e07362708d04eb468598c1c0567fe8d3954d15b3120a79478f9639202df168a2b11fd8424aeaa170aa9a39a923b631'
+                                              'Revision' => 12,
+                                              'md5' => '3947ce48694ec51a18c15b5ffe9b02906df9929c44fd5ba2c4d3a860ea1f125e3255b7cf85f8a1be7334a5335b8f3615429a1a0a3fdef78157c00935eaa98a5b'
                                             },
                'config/NotificationCCTypes.xml' => {
-                                                     'Revision' => '9',
-                                                     'md5' => 'fe343cf0b94ab320774f1a8c161bc4ec5c0b3193f83067c8810cfdac36148c4c68ecad20a940514562158afdae22543fbb54f710406b070114f53606cfba4e94'
+                                                     'Revision' => 11,
+                                                     'md5' => '219e944370bea857e14dc25789bca29dde4a65f72b9d9b39a9ab187437cf80c70a876b399a45fd89f90b4da27f2ce3359f61f90d5605c4d53a14effb3ca28343'
                                                    },
                'config/SensorMultiLevelCCTypes.xml' => {
-                                                         'Revision' => '3',
-                                                         'md5' => '0feafdbf1cc9dcd47c31ec4d2b380e57c6c84d8bf5819a6cc60da8cf88a80ece35a392f40cd1564e32c253be6df2e16b140cab51d1a2bf551663a01110e640f1'
+                                                         'Revision' => 4,
+                                                         'md5' => '36aee27cf7888627f6d7a35604f782976d043aceda82cf1c90a830e19e297fae5ad7ac36de480a4c36af71c5ad94a5c7db52b2817cfc84cb760fcbb83bcba6f8'
                                                        },
+               'config/abus/SHRM10000.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => '65df614d199c1b62a17a141801d6723803af54ecb5fd0fd591a731ef8a80695f61532a484469dad55c100373d188816bb1642cb48f5dda8e1e9e81c40edfa66f'
+                                              },
                'config/act/lfm20.xml' => {
-                                           'Revision' => '2',
+                                           'Revision' => 2,
                                            'md5' => 'f4c1366e3f7ee171137d2688de970a6e4ae2d4939c22267eda205405ce5e397c731cda516bd76225bab830e0c4cb998a4da44e249d468e88593a0151c41157eb'
                                          },
                'config/act/zdm230.xml' => {
-                                            'Revision' => '3',
+                                            'Revision' => 3,
                                             'md5' => '32b87c4f243f83783ca721429e0722ec0b8e502996dd8cba17afccab11a6d73c4b5b4b4e6fbf11146e6998d1ed714565a6ec3461ad6b0a9ca05e28e65645cb06'
                                           },
                'config/act/zdp100.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => '326fce3252167b44133df2be23528b4aca1586c30fc4c028abda4eb8725d0a1f8705f5a17369ad3303de4684b713c638b1b7e50b0aa2d4e8867d6d0c8027068a'
                                           },
                'config/act/zdw103.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => 'd62d1c261b6d4b002cf4897f486c11959c877c46b7f8e40b5d3d36161e394eb9a88a45ca04b6726fae366adef1a30cd508dd2c9c58da282caf48e29762798591'
                                           },
                'config/act/zdw232.xml' => {
-                                            'Revision' => '3',
+                                            'Revision' => 3,
                                             'md5' => '11bce1049e1a2d8e6404d7bed073cb7621ed522d24f4cb5418399ed2f33b614d928cab6eb856722de1cc4a251d7ec0fe78b3a3cf3076c4b074dc344dee8a3da7'
                                           },
                'config/act/zir010.xml' => {
-                                            'Revision' => '5',
+                                            'Revision' => 5,
                                             'md5' => 'baa9da225651ef1a50f889aed86ac6f136b1fc54bbed8c43326559eaf65521b4b098e51c4f870c41c2da057b482a86969095daac30aad0667225b10b5498721d'
                                           },
                'config/act/zrm230.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => '91e81981210fcc70fb877270b991ca31fce51b9c7b6b572b7db02b28ad033f30173803e9aead08998dd5adbe90a94af6fae55bad09b50850d71f133615223c69'
                                           },
                'config/act/zrp100.xml' => {
-                                            'Revision' => '3',
+                                            'Revision' => 3,
                                             'md5' => '9ea2450a9c6bb7f1b871d020a04abf8c8c1907884b93bb2c8433226d5ee3fc5915022b9229c040c65e9ec34387f1ceb6590f6299d08d5ca76e6a4f6b94d0508e'
                                           },
                'config/act/zrp110.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => '53777acb25cebd3379f8d7a06057d6fe0b52354e71679e105e2a4ff66aa046a8b4a9cd853c3ea7249a87d3dfec36d015cf18a75a0a416a5c60e1dc14ef81464d'
                                           },
                'config/act/zrw103.xml' => {
-                                            'Revision' => '3',
+                                            'Revision' => 3,
                                             'md5' => '56be44ee933cb0e4fcd59758fb49af06aadf0536c7a372ba665037092b628c5888783b45411aa4c1cd92ac99ba450b0130955598f8846b534598864f333d1db7'
                                           },
                'config/act/zrw230.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => '8396a52fa0dda4e5d29b7a8a218f2fc07c8fdf734c43d916e9db558216450d435660aa7a3f0a432801108541095634dfb193720ac2fe005d895e602734dc121a'
                                           },
                'config/aeotec/dsa03202.xml' => {
-                                                 'Revision' => '5',
+                                                 'Revision' => 5,
                                                  'md5' => '0979e94319ead0dac6c7a9cdd7907b40202785de948535b5bb73ae2cd46c4d29ad97fd5d363dca65a6b080c0a9ede2390d015db935faaffeec84987f9e4eedfa'
                                                },
                'config/aeotec/dsa22.xml' => {
-                                              'Revision' => '1',
+                                              'Revision' => 1,
                                               'md5' => '3ddb4ae3f695f1952b10592611eb98cc4c261ef4224cd681344d462283bb4732bc46bf103048708cbc43cd5fd5d9668148aa60d242dc35664973b555f14520d3'
                                             },
                'config/aeotec/dsa38.xml' => {
-                                              'Revision' => '4',
+                                              'Revision' => 4,
                                               'md5' => 'f174aec88220486aa47af5d8fead4efbdf26c1ccdd8f5a6d6bc18609350d859589fdced0cfb1a07a949c3a227fbc2807ccd6328e74ee2d3368cf6d7e87ceed8d'
                                             },
                'config/aeotec/dsb04100.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => '20fd36afaf508a5224785de53c4a5fbd252cd07b37ebc12fea5393c90fb3a3191bc60f2ef712d2e32a3236e2b435b5e2e38c10ed4172eb2970fa88f9da96caeb'
                                                },
                'config/aeotec/dsb05.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => '7937693b67248dd6edfb79483fb99d1bc6dfedac63c4b143ecbb775435ef2bdf4676c885a5f4796e0ff0a7af8124b21c6bdf4015d2fdb9db9ab7699d4b7023be'
                                             },
                'config/aeotec/dsb09104.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => 'fb7263fd5cfd5c64567cd8740930ae30a0f2529f24c851c2f98c851ab8f1e643f187a3ed345567300ce4dcc7f6137f9c6894ee07aa58959c0aed5401771451c6'
                                                },
                'config/aeotec/dsb28-zweu.xml' => {
-                                                   'Revision' => '3',
+                                                   'Revision' => 3,
                                                    'md5' => '378e85fb9fd12363865dc1fea1be23ea2d3699896e178c4a9ed32a0346c5aacec4ea25eda557365bd93373734bd389dc9278bbcfdceed4b1fdc0c518998c446a'
                                                  },
                'config/aeotec/dsb28.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => 'cf1a42993bccbece425f82a4c38b2ea9afc25c815c20e9d6910616007135e15df7e542dc3ec025d040273f2c0056709d20819d6171ea72dab452b38ff94c4837'
                                             },
                'config/aeotec/dsb29.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => '8cf1f981a5cf9607e560d3b3f3b23ee9145a16361fb97dbad6d32fb3428167bf73d76562942092eaab26f6970d6ec943e2779d434ed188d8a3d7531a445e089b'
                                             },
                'config/aeotec/dsb45.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => '16f6b34bcf084cd4febdae147093a2456f65bb5a999c98eb19006664a1e2d30dbb6c76f785d340da40bb1abace3161243f53669e109102b80c30b92f311839b6'
                                             },
                'config/aeotec/dsb54.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => 'f7be82de3668551d30335226875e9f899b80c2f9ace847f8391586b77856828f1737992b711fea1dfcdf198acc32468c695ef00a7e37f1a308ef6fb6950e57ac'
                                             },
                'config/aeotec/dsc06106.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '052dee67375c3d6a155197019da3dee753ccd485d419e85e4071ee5bd43cde8f79e397df4c3b951a19c5f13059a2ff3091f8ae82dfe82b406a6ab88f3d0fa5c8'
                                                },
                'config/aeotec/dsc08101.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => '09e3b194689ed0e6299999897f6abf295ec66ec3c63bc58cc04745ef0c0bb64c378cbcd828609741241aa3fb822baec07435a3dcd5efb7575e390be780e010c9'
                                                },
                'config/aeotec/dsc10.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => 'a408eb0f1de9aefebd3b47fbb18ac37d6cdecb279379d33a009f8625eb398eeb15dcaa70135ea32e6097ec08e796b5e47a40552ccba49b73fac9948fc3caca5b'
                                             },
                'config/aeotec/dsc11.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => '442bf8b1c4eb469d23faf31cf4f7615b97bc3f809f96e888ffbe2a058cede252fa47703493ea1628f21d12df606528cb3e4b2f28562c9b1960b29c35fcfc66cf'
                                             },
                'config/aeotec/dsc12104.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => 'b87f4a6edcaacab02edf19bfd695ef33639634b5bdaed27e6627ac2125999825ee722e7b621aa25da10523676f958cf2665c66970656bc3a41449ffe5f242614'
                                                },
                'config/aeotec/dsc13104.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => 'ef5dd72ffeeff633a1c3e4f800b030d15d08aee39f8d986b38b1b62dec3be5b86239d86c9bd68900b415181b3f80dcd39359719229d31e4def3025a21c61a9a4'
                                                },
                'config/aeotec/dsc14104.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => '17a2282e85a8c55c9594ebcabf655e639e05c6ff9c5fc34d735212d107cd5bb2f02de79a9d9208116a8233ee93283e5e06e56a582e225162be1745560e2ebdfd'
                                                },
                'config/aeotec/dsc18103.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => '32d7bfcef911dbd9809a4acd2edc9ee0d024467b2f976f43e7c48ced7fbe00091ce325cbd31a09229e210e0ecc0723120e9781ec4ca8f29cebe80c1cb1b41d5f'
                                                },
                'config/aeotec/dsc19103.xml' => {
-                                                 'Revision' => '5',
+                                                 'Revision' => 5,
                                                  'md5' => '7515c93b6868543dffcae100ead92a9e6d9f9627a6673bb69c57099ceece2f3e8c8c93afa5031e8b7fb1b3f29c33cb4d6573913ee59efa2336fad2f86420a100'
                                                },
                'config/aeotec/dsc24.xml' => {
-                                              'Revision' => '4',
+                                              'Revision' => 4,
                                               'md5' => '341394bce4e1c61175b6acf0fd8f9b299661db2c40f93d4138e897084b3afc3ad04798cd074d8bfa910e35a2b7629acff05479577c9c3cf7f764833233f4fcf5'
                                             },
                'config/aeotec/dsc26103.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => '9adb08a2bc7b6d2b24d9e120c78e77a6d686bd6191dfb41b80fdd2da2a2d151a48c3b63c9f43cb09ce25b2acd9853b89d980570fbed3b5f2d8663773388cf3d4'
                                                },
                'config/aeotec/dsc27103.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => '7dbc08625869c04da00c72444804e053bae36ee28f3207413fcc40591929001a69e59dfeed59eb80482c5fa5ef55d490efcf945dfd339fcf911700ec5f2a1f92'
                                                },
                'config/aeotec/dsc35103.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => 'f5d464374a3466fc7bbf7a53858afc26224007de129cdc115171ddbf609a12282bae1fcac01f33554d9029918ba37a63b89d84f935160214e5d84b178b4715af'
                                                },
                'config/aeotec/dsd37.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => '85d86525fac9158fc4fa41da95217e52dbb19eafe45a5fc02ae36f63e6ab0b7e1d7967441de798ab36f223b41f672395d6012e53ddecf25f06b7a6ff9225c256'
                                             },
                'config/aeotec/zw056.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => 'd84b9d33348e972fbc0e9d7afcccf8a9baf3ab216600a93461ba27276a16d93f2749b909640942ab4e9b9c5e6aca977df9d73a84851d25055c08973560b3b70c'
                                             },
                'config/aeotec/zw062.xml' => {
-                                              'Revision' => '7',
+                                              'Revision' => 7,
                                               'md5' => '216ceb7f2224557a2c6cfd8b7e35a14c42777eaf9aa14e266c3ccdf3791c2020c3038bd4d9198bbf56d309f537004c6a9380511de115474efc371652c55193af'
                                             },
                'config/aeotec/zw074.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => 'cc2f4eaea28d3c4eca92e8d354890f4dabc5f2b6bc93f92e82237a7ea243bba0e0bdfe1aa154f6b0775f846a14c0e8fe86ec9e634c1e8339c357eea80b150a60'
                                             },
                'config/aeotec/zw075.xml' => {
-                                              'Revision' => '4',
+                                              'Revision' => 4,
                                               'md5' => '437c6d307461be670fce0b2f16f0e1634890cdbf4f5ccd43f34ff237bd68410b1bf6cf8e6a6eb029e2deb3af565a6d5c61dea6543920b20845a84dc9b8229de6'
                                             },
                'config/aeotec/zw078.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => '09020a57df80e03f421bf3df6603ec5fa6e0fd50242faa53e2e8f9b3ac8e966e5735eeebad82106b458ed21a3bf8e40263cf8e6469d3c452f62a55e0a6e021f0'
                                             },
                'config/aeotec/zw080.xml' => {
-                                              'Revision' => '6',
+                                              'Revision' => 6,
                                               'md5' => '78618600d24ec5b5079f23575d0559b863626162259177a93e31ff1f78540764f54ff9d4e38e84195de1709798d4a44f3efcd5c4e6cae7aff564e1c26255dfd0'
                                             },
                'config/aeotec/zw088.xml' => {
-                                              'Revision' => '4',
+                                              'Revision' => 4,
                                               'md5' => '76a90cace1499ce28ec2cb7334fe3a4e1baf890732f2b272c60b5b0627c15c89ec72bf3e86ba1394aab8e0ebe6eb39e86677540af28579016430c85baeb3d311'
                                             },
                'config/aeotec/zw089.xml' => {
-                                              'Revision' => '6',
+                                              'Revision' => 6,
                                               'md5' => 'e7839e6376516c3a932c2f8d32ad64d60df5a890cd5e669cacb10fb75ae0621947e3d9cb00e00de7b4bb026f8c7e4be1cc25b59336568fa1d23dd1885126b1e5'
                                             },
                'config/aeotec/zw090.xml' => {
-                                              'Revision' => '6',
+                                              'Revision' => 6,
                                               'md5' => 'eda5882a0b1e3f78c95e51496307d1867a1b3dc756a0b24f705155a3a1996659e67b6af65e60bd4b800548b4b1b6bb57ff591140f2062027545612efbf2a3cfa'
                                             },
                'config/aeotec/zw095.xml' => {
-                                              'Revision' => '5',
-                                              'md5' => '64029aa66434ff853d0f5b54dbab6c5ab5039f9307474a6a28bd2405fe318c98f4d3fda8a718fdbc9d8765f8ce7625f6b0f9d245491f90b3559144dc9535fe0b'
+                                              'Revision' => 6,
+                                              'md5' => '2e61f67c818ce40e29881dfc21ac53d6fc51b650d8394a615c02221664d47d53882a967581943faf9fd1b67f9c64ead25d0dee1d50ffc4893876c328ef449f35'
                                             },
                'config/aeotec/zw096.xml' => {
-                                              'Revision' => '8',
+                                              'Revision' => 8,
                                               'md5' => '6d1e18b9e7a418ff6eefd323b2928fc1320f034cbf93d5c10be66a2794f99f57941c67364ee5e7d0b8a15491fe5bcbc856e859be16735ec6781899f1fc1d22d7'
                                             },
                'config/aeotec/zw097.xml' => {
-                                              'Revision' => '3',
+                                              'Revision' => 3,
                                               'md5' => 'f9cdfc4713dd0352b3e5069a21cf8a6a6d36014611b3ba482fe059195016111c6ec43d9ed99d1874381424970e5939e0fff6796bf8412e8c06bf9c16add43919'
                                             },
                'config/aeotec/zw098.xml' => {
-                                              'Revision' => '10',
+                                              'Revision' => 10,
                                               'md5' => 'adf310294cf46f0d5e1a833017eea6039c841b500479bc57176648e13dc27e4525591d226b60ad2ff6461483b7168229fea7885bf0d84e8c3a5169e17668dd7c'
                                             },
                'config/aeotec/zw099.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => 'c4775cc1e44d3580cf6cadede3c1dca34dc94d9cb573888775ded7da5f224035853690d715ce8c7de0031d1e5df637d0da1ff7c1c86957755f09b65bcd4677f5'
                                             },
                'config/aeotec/zw100.xml' => {
-                                              'Revision' => '24',
-                                              'md5' => 'd7844707b29f8fe526d94aca4b1a47a26a3639e8d4a681199bb2775024d2f273c7be634cba65062d1ba2000803491af6aa654bcf33969e7ab870ffc80ce6f673'
+                                              'Revision' => 25,
+                                              'md5' => '3260a03fd6b6656d02ce4d70755e72cd7af35b0e1ed1c95efed230c8ee7d5bc13443092e031977d114efad81e43b35af53ba965b9c12b6a8e5c30b1e4fc59b02'
                                             },
                'config/aeotec/zw111.xml' => {
-                                              'Revision' => '6',
-                                              'md5' => '8b12f9898911caa9368f6086a5c113b787bd6d14bf3101af07d187f8f1be8acd7b9f060e5de6355e0b1eb5d1582ca8f1fd2643a9bb3f530a04aa25077ba0d6b3'
+                                              'Revision' => 8,
+                                              'md5' => 'bdada4079cb3fe4bcc7bca5d831abc450e27f9ee4e38e36709df5e5b7adbb814846b7e660686fefd81f0b5524c382e1efb1ff43f0df77ca1374bbedacd1207c9'
                                             },
                'config/aeotec/zw112.xml' => {
-                                              'Revision' => '6',
+                                              'Revision' => 6,
                                               'md5' => '5e832838a7292144bee049fa0cff287a4de781c55c1afa5a5471d98a00a22c6a796eef7b80bcb6ad6ca15b0e72a78e90ac6d82943aeeccdd8fc78befc3b2358d'
                                             },
                'config/aeotec/zw116.xml' => {
-                                              'Revision' => '6',
-                                              'md5' => 'aa24312b86df1e10ddedd71c0aa874f1e44fb49192b0481e4b973eca5a86d0e12071733ca51ad42f50d3ff09d2955952d3e0c11b2512770046795aa6ec9d7c88'
+                                              'Revision' => 8,
+                                              'md5' => 'acddde85a083a0bdba9a27da88fae9c7605d35cc8ef1109a1a4c8d91abaafd81c8510144cd6ae239a52290403bf73dfe46357e8ba3656ccbb761e7f3f56228d2'
                                             },
                'config/aeotec/zw117.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => 'f06c4a37004d923c5131b5d81da83a3b035f8c4869cf7460e00d709cdf132ca98cda8b6d6c8efe3e123b1abae40ba2b21edb6c43e4d355c8ab0c9a893488d073'
                                             },
                'config/aeotec/zw120.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => 'dc9b411f14b53925f973925c79fe180d7627f605cee4f45dd53c09030b3a4e234d83b2402bf4ed348b522f69b60a02bbc318031013a489853cc2569fbc55c245'
                                             },
                'config/aeotec/zw121.xml' => {
-                                              'Revision' => '4',
+                                              'Revision' => 4,
                                               'md5' => '32a745da8b1a4ad35c19526739550747d4c243b93360ee64045435ad04e45e2e4148e12ed2c4f08c11efd076d39e4831395eda05651efe160fee24457b957bd5'
                                             },
                'config/aeotec/zw122.xml' => {
-                                              'Revision' => '10',
+                                              'Revision' => 10,
                                               'md5' => '4c874a1d73359dd30743161b0665edfd3c7b9b16d5e4781ab13a84b5554ba2d03f9fb9480345f5192637abdde80867c4862388a10b2527c8207041999a4b4626'
                                             },
                'config/aeotec/zw129.xml' => {
-                                              'Revision' => '6',
+                                              'Revision' => 6,
                                               'md5' => '372fa89d8aacf685983efe977fdafeb25715d5397d44922ae8075b5fd2fa69e74fb4afe45ca365fd0c464aea1bd0651a93e5f0518c25a6bab98d86edf21f3861'
                                             },
                'config/aeotec/zw130.xml' => {
-                                              'Revision' => '7',
+                                              'Revision' => 7,
                                               'md5' => '9e98b12590da0c343fc75ebc18b1343e4df9120f292d46700666ba53e41ee99e6a6b196a2cf4e3b5a567a844499264e015381638c418d1d9adeda9e7117e599b'
                                             },
                'config/aeotec/zw132.xml' => {
-                                              'Revision' => '5',
-                                              'md5' => 'c3a5e7f00a8b3514fb9de7b12ecfba5f2c4f85529ef5266290adcc4c01be9e5009602fa3dee17d5787715aaf57a04434b8d6f6f49d49e9279ad5b21becf549b2'
+                                              'Revision' => 7,
+                                              'md5' => 'db49147ea64a88bc8106c1e88975523edf85c2e7e0b5ccccafb53ab438466f6a9cb6af75c4c17b7f5bf5cf10e6155cfa6f662d9b0b23726549d38f6d7c8e51a3'
                                             },
                'config/aeotec/zw139.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => '971cf4eb4f6323c3f983c171b744af227d2f59a13665303b1cd3b76f62111cf5cb179bb196b0fdc33d90d608716490106cc9d75946a715c35140400f628f64b6'
                                             },
                'config/aeotec/zw140.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => 'b64f170b079ae1340bd4a74ef3a88f0cdf66281fa28d656b46f408b183d04c8e6a67f584f90dd6f8b2aa1fc2b2039e32b936f6f947394d28002b3d3a2a47cadb'
                                             },
                'config/aeotec/zw141.xml' => {
-                                              'Revision' => '5',
-                                              'md5' => '53578d60043ed4ec1135724de795e1db8069d3a478e7caa4585ae82db0bf910f444b36cd3f10735fcc1c93e4fa307f9ed4b71a2d6ddcf6eb617b637b16adb0fc'
+                                              'Revision' => 8,
+                                              'md5' => '06b71d604f18c6a9a1dc5f7dd9ed31e561ad406814d96e2b2cf5d7242db12fc19ca5cea9d15901f8d22050fbdf9eb33c21099feacf53f692418d3f517fb27961'
                                             },
                'config/aeotec/zw162.xml' => {
-                                              'Revision' => '6',
-                                              'md5' => '0498367a6227644ecf6dff8143c11f411f5cbaa9fa6018e234d4dbe75e5e3fdefb888d5e5032ebd1c4aec52c1842a110ea013f083d931de602dfd205b094917d'
+                                              'Revision' => 8,
+                                              'md5' => 'e64095e89500ff3b42d49c0cd92dae23d278091eb4eaf536d593d0cf1d887eb28f39c90963775341a7a72599de22b20ed96da31a29b328bb1328f13f69c425fe'
                                             },
                'config/aeotec/zw164.xml' => {
-                                              'Revision' => '1',
-                                              'md5' => '37a2261b83bfc532e64b2aafe3b14be371f2ed9987406bc84588063bc8c0fae1b695325ad5d59bc6618db116504c4a68c74c31b231cca193a9da828ba9445c00'
+                                              'Revision' => 2,
+                                              'md5' => 'ccfd9832b957c32bcdfeee2ad8802dc577e621df4d71ebfcdc3f166d67a5af5da9b789ffc53163fa2f62183ac463b29a8845fb7a8c3e7845d264bb8f7f6c2828'
                                             },
                'config/aeotec/zw175.xml' => {
-                                              'Revision' => '2',
-                                              'md5' => '0c55631d8012d5c723cac19568a743397fa6dcfcdba9b30e9bd062eceec9c5eafd21690fc0fbca9b15f04c570add037f0f67c4053355fd6db994f631fbb0a04c'
+                                              'Revision' => 3,
+                                              'md5' => '1ea7de2ad02c49d24bb0c5d86ddf91cb09d37e3d9b3f64d9802f33f6d5626cd8cf33a18c1d0775f5622f075979415c461a846630ad40212d41998e8a4a970b8d'
                                             },
                'config/aeotec/zw187.xml' => {
-                                              'Revision' => '1',
-                                              'md5' => '146f79310f6da41585d36c8447e28fefc9686a7ad39e908f3f7dde56c22cfa00f199b647b910a1835010af94dbfafb54ad1eebc2f2789f31f64d1ed466714e68'
+                                              'Revision' => 2,
+                                              'md5' => '154d350bd8009ee6af5e6a28515bf9e2255e9f91a61c2c69108af544307d2291164ee819e333ea7f1064ae21507037c99a0550dbc2540c1106e973c204367ce0'
                                             },
                'config/aeotec/zw189.xml' => {
-                                              'Revision' => '1',
+                                              'Revision' => 1,
                                               'md5' => '9fce017a9280d9419cdb71e47867fb849ae88873930e5edd6eedeadd317e6cd71953c3db3e1944c90ecd298ae1c19164e688412e7a163611375848b8625d664f'
                                             },
                'config/aeotec/zwa001.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => 'e63fd65924332e173ce34701ba86502affcfe1e5088cac0aeaa5755a0c1e73e335727b5bdc4730784c407f8022766fc0c220e8f07e36df8e6a44ca636abf67a8'
                                              },
                'config/aeotec/zwa002.xml' => {
-                                               'Revision' => '3',
-                                               'md5' => 'f8ae29516711f6eca7237df4095354a8ad6b69812f8032b157d875d6ec6a09cebdc03feb81e3933ddb6f7d41454b34f79b2f9b876601665c4c761f52d33da8dc'
+                                               'Revision' => 4,
+                                               'md5' => 'c32dbf9c909ee50b3d38f14594f163cb2e5b49873cf1cd551c3d1a0fdbfb7223466c2e70d14d1b95de5467797f6fc2141b0e8859fe6c3e2fe3231abd0aae1dce'
                                              },
                'config/aeotec/zwa003.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => 'a02624ebe5092fa4bb9514c85ceb1b0e43dbc91203ab48c0608d13f3276bd48f331fed785d8b5ef2cae1a2af2ce40fb3d258b9c1aa9d36eb808b584e2383ecb2'
                                              },
                'config/aeotec/zwa004.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => '0626cc10287e159e0a8b597dc07e7f092d1ae9af4c1b8ce796ddc12370981ba4c71589d04b4549936c58f690ee8b614619208bf3268f915f32602d1e2d6aaf9b'
                                              },
                'config/aeotec/zwa005.xml' => {
-                                               'Revision' => '6',
+                                               'Revision' => 6,
                                                'md5' => '3c3441f59134243043aaefc4f01d1e8478580e03ac82a6a532f721c4d8320e5f8bf5404c93c25bcb853198b590353fb53deb364c39444fe9ca7fe36b64c218fc'
                                              },
                'config/aeotec/zwa006.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '08a55ab00eea7eb0fae63af644359667467bf0e31b22720bd21abb770c3b45cf0c3320039a67c8c6a33b740b8455beb1a67c9d4fa2f440cdc5056fee50f07a01'
                                              },
                'config/aeotec/zwa008.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '12234e354ac9b5378c93c1f5c32d642d29ff45ed6ae907c13d2a51c385f4340a1196a59b3419dd7901b48c592cb1693956e9d6e687b173d9d7a492221bec4a82'
                                              },
+               'config/aeotec/zwa009.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => 'dea1ef33d8f6ee2abbe83a0aabd9c9e22e4a9d86e0715f1ee90c8851ed135ff27521ddd6cc308cd09648e2aca4a498903054fd5ee66f3338098f9ce81fcef2f3'
+                                             },
+               'config/aeotec/zwa011.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => 'a67f8c997e6813f1772b4e980ad1580327d4f993fe007442580b9a37163bf732ddecd431fdd944e8d1f5841f9a55ad8cd43e4a5b5471709748b5974e7171e55e'
+                                             },
+               'config/aeotec/zwa012.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => 'bcfcf5d1a552ab8a8ac6ab7586f3de4cd7189d72a11e60bbad6b0038eb33f1d4acba164b625e7d8343b712aa27752fbe9f17f5ee9294ce82599e7abdf6c675f9'
+                                             },
+               'config/aeotec/zwa019.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => '5238b4e34afaa58b71c9b6c6e857b5b1a63e4645322cf0324cdc3556202dfc5d08979f5cdecc7989b851eb7db9aae6c2308bf7c3e7f56adb264c1f395d05e4cf'
+                                             },
+               'config/aeotec/zwa021.xml' => {
+                                               'Revision' => 2,
+                                               'md5' => '1337565d4bb52206d7c29f16a04957d09e9f800da716907a5190841f6b69901f5fde754d7e9713d0ac97f2ef6ab7b563edb3f3fda6981e58757e5f2202ab50e0'
+                                             },
+               'config/aeotec/zwa023.xml' => {
+                                               'Revision' => 2,
+                                               'md5' => '55f789365f3b8a4f1c84a44dc93cac26f2afff40963a4ea6dee8a69f9ca5b40d71d0ca73e5b9f6dd6a420d9f38c75bec5bd2b7800256d9d1169035b88e114315'
+                                             },
                'config/airlinemechanical/zds-ud10.xml' => {
-                                                            'Revision' => '1',
+                                                            'Revision' => 1,
                                                             'md5' => '028c79db0efa85f50283cb57a22462dac7d2e7024851b5d715ddb7f715d0012b8f993829ad542639294ab266b3017fb31a62ed8fec929dde8f401dd276dde67f'
                                                           },
                'config/alfred/DB2.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => '3277bc3318fabba8c77c47592c791a2679fb4e96a0f1e9b21c38561d2fb624452d9397b89ce9a51c3eb6d39d20444a3cc8af06cf46cbca218a52c2c7d82dc8da'
                                           },
                'config/assa_abloy/ConexisL1.xml' => {
-                                                      'Revision' => '3',
+                                                      'Revision' => 3,
                                                       'md5' => '87fb792063b7985b730a185e5be07e8f98d3662069b8055cd4cdd1a5f7623edd9d18f25ef5ca9c45c5489d48a91f97da914026b845ba9ed57bdd99752d985ff9'
                                                     },
                'config/assa_abloy/KeyfreeConnected-plus.xml' => {
-                                                                  'Revision' => '4',
+                                                                  'Revision' => 4,
                                                                   'md5' => '800ecddc35ebfbd336d3bcf8880b769d4c1bf5e333085d24a38ed64fe372bd128c2bac8ad3fe6cc7929e2531c8a0d0672b2c02276e57b547c70599810ca73ef9'
                                                                 },
                'config/assa_abloy/KeyfreeConnected.xml' => {
-                                                             'Revision' => '2',
+                                                             'Revision' => 2,
                                                              'md5' => '4252c298eacb7e31a79c7c8fcee5e2d40b56d9bf865c8eeed53e3a29e8695508d38ffb83f558a41871e13af346c65cbdbc8a7de6caf7c5a1a67af59b5fb384b3'
                                                            },
+               'config/assa_abloy/ProSLKey-FreeDeadbolt.xml' => {
+                                                                  'Revision' => 2,
+                                                                  'md5' => '7a6771adb77b2bbcb11fa6e74733ff064b87311b1530dbfb048bb167d03e5a1b3880ad2d5fa59977080cc3c3b37f3624f457095ebc5770d97d4cf258d68cf0fd'
+                                                                },
                'config/assa_abloy/PushButtonDeadbolt.xml' => {
-                                                               'Revision' => '6',
-                                                               'md5' => 'eab93127aa1423d943e6e4bc2650b76a4a8d029d9c138011c5a713e919b4fd3e27981a73a87f35ddd2089775b925e6fb5d85976e318ccca676208bf5502570d1'
+                                                               'Revision' => 7,
+                                                               'md5' => 'a39dc67ada1bb3ea32c5be977f635cb4e5758e5006d54b84ef8cb9c8bb91a830718e94758b5701d07af4c17ec3c83a68af34069aaded0e9096f70311e15ae2c5'
                                                              },
                'config/assa_abloy/PushButtonLever.xml' => {
-                                                            'Revision' => '1',
+                                                            'Revision' => 1,
                                                             'md5' => '20533ba6551380cfb41ec7ef2e1dcec8c1b2d5e23b5ffcd87285c5a0945556989200c7bf25031cf8bdd3b39ae2c6a514565698acb3443c6bd6a3ed7ba583dbf6'
                                                           },
                'config/assa_abloy/TouchDeadbolt.xml' => {
-                                                          'Revision' => '12',
-                                                          'md5' => '5549c51c360f1f4c27305d6c1bda951e1a48d1072b1b1c6b3ddcbc1be8ab922fde48c3c633d58d44b64d42297da9c8093e0f475be98282745dc6d0f611d5b936'
+                                                          'Revision' => 13,
+                                                          'md5' => 'c29a547f859db492054de260d6d575cedfcaecd00aa612974e848e317cfe498eea5e95723e0e01f90ac8ddd8179144b83fe744b248cf54d2e19fc97a52cbfc68'
                                                         },
                'config/assa_abloy/TouchLever.xml' => {
-                                                       'Revision' => '2',
-                                                       'md5' => '922bb2b622dcc7c728da2fdca4d8e9bac4f3db7af115b259dcdf616addedd5a6b67dbecd5400d0a11335d8bc86b4444c25bfa755e84854988c7476c34ef986fd'
+                                                       'Revision' => 3,
+                                                       'md5' => 'f8ce232d1d46aadcc867c736a54218bd1cd15b54d2f2f819d190315cde7302e887ce23f0d111c4478bed6c3b0af9df91eabd9973313e9399e0516ca3cb66dbe9'
                                                      },
                'config/assa_abloy/nexTouch.xml' => {
-                                                     'Revision' => '5',
+                                                     'Revision' => 5,
                                                      'md5' => '56cacadad65e06642795966771dc7ab7058c34207ca34acd340e593156db7c10de265fbadb75c0f31574b696ebc74e4329d661f98e8e246ab16c91a55ab38e0e'
                                                    },
+               'config/assa_abloy/yrd1x0.xml' => {
+                                                   'Revision' => 14,
+                                                   'md5' => '72b0c1a02e59692b581f0f242a36b9c0c96f97d94217e7f391d219130f73df398abdc8370dcdffd74462d41b9aa1bf69498d0d04c3c147ed89a093970d25fef7'
+                                                 },
+               'config/assa_abloy/yrm276.xml' => {
+                                                   'Revision' => 1,
+                                                   'md5' => '85f0bb84ad6fc350a6e916a4931d91adc77427366f8394bf07de3c9ca1394bf5a5dce576d6a4dd107097017454e4397f800ac597bec7fee8047a69a1709b2d12'
+                                                 },
                'config/august/asl-03.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => 'c20731a4c1ed5261983c163c619c36085cab448344caa87203a45f89938678cd755708bf67bb0bc997bc61120051ae0355e4465f7e50a83420f4fc12e9752ac0'
                                              },
                'config/buffalo/hw-100v15a-zw.xml' => {
-                                                       'Revision' => '1',
+                                                       'Revision' => 1,
                                                        'md5' => '700da33bf896ed7250ae6e75b8f06885935c0398a3b60fcb96c28f0e8b61aec82bb83811a458893679da00db0864dea000f831b9128ff17a911e020bc93bf3ac'
                                                      },
+               'config/building36/b36-t10.xml' => {
+                                                    'Revision' => 2,
+                                                    'md5' => 'af740c48ea2d7fbd46bbcb97ae6605dcf3f16bfcb8c8f785339a9baf3c4c41206310d309d85c9df803fee06bf1d958110cbb3a90d7088d945de39d46d430c852'
+                                                  },
                'config/comfort/ucm.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => '343e23824152ce111beb412a9b5ce0b40f90e12cad4fdc3b9e91267143e7dfa48f3b5901513401eb1b55bd986188c36d121c2fdd058f6ff91fcbb2c19f6fbfaf'
                                            },
+               'config/connecthome/ch-201.xml' => {
+                                                    'Revision' => 2,
+                                                    'md5' => 'a0ca60110b50b83dd53ed869fbe3cfafef1bbb1aa22c5cf96a85208370c55554d7af20b5a24eab3f2c81e333b9dea81a1134596def6254d9067a6f7de45d2e99'
+                                                  },
                'config/cooper/RF9501.xml' => {
-                                               'Revision' => '2',
-                                               'md5' => '0d6d2fd4e186dce9e6883597e539ee7f7836eca827e561afd80952ba6d4da16a074670fa8e1415470d1a258de2ef006130002d320cc01da83b0508defd10f2b1'
+                                               'Revision' => 3,
+                                               'md5' => '3607a09ae6cfb895c99875d96250165cc78a6072c12bc381ffa206792599f0a646e835ef535084c128e528453e4a23430d2ac0a6797aab7e6f1c56b0103ae28b'
                                              },
                'config/cooper/RF9505-T.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => 'e66799ca1eb28d18fdde9ece6bdab8a00b583fed2f921e652dd6ac4e2f27f80c71ce1ba14316057314ae79a2bc6b4e31ff4e012242d996e905134f1c59123598'
                                                },
                'config/cooper/RF9517.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '79e0f21a4292d455896bdb3b87401bfd6f405a6a2a795c8b77a4a01513aefeb17b72ed4595f3f84c2463f17b386bd1ecea67ebbe547e5f39472abeb3d831b805'
                                              },
                'config/cooper/RF9540-N.xml' => {
-                                                 'Revision' => '3',
-                                                 'md5' => 'fdd961e3e81614537798f94194860876637b8ecc4274f9725bbbe1fa6827b1fc60e4dad7ba4f5178dade79fa9950cae8ad91a9f0599d922c140c59711a9612a7'
+                                                 'Revision' => 5,
+                                                 'md5' => 'ee02b6f5fdaac0c1eabb44e093fa59d4962443a5d0c1f151ee4f00e9bc219d4224dc93e423f7fb6ff7a1342717644f71a689b301cbf29aec4eef49879f5a51c1'
                                                },
                'config/cooper/RF9542-Z.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => '9b2bcec41e4a46a2a2558960b03f5a3e66db60d40832542bffa053f49c0f08c70e64151d2619f1328df23089028a83ed70dc17af9125b2299443e237957ebbee'
                                                },
+               'config/cooper/RF9601.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => '086da7deb18b8df7738a637822279549d2fe9618ebe7965c1d190fc83e0120e8050e1a2f9ec082b0b36bd5ee5589ce2d93e54d04c768238c5be40d88dd3dbd5e'
+                                             },
                'config/cooper/RFWC5.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => '5e94896a472f7be22fe176de80f784d333bbf9a1afdcbed80094ecc1ae89c0b5cfcf47dc57731aa5312a87120b4d04934060ac3bf78aa39133118c6f1dc6d3a7'
                                             },
                'config/cooper/rf9534.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '3a127a530e1704602f95b10301cad6ec6fb7aa5eebeabae85610b3435d97242bc011435d8e0e603e3a4856f7b91ea29a6365593bb789fcf880efdffced4b1a28'
                                              },
                'config/danfoss/living.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'e896b83443f6776d1a9e9ad52ccbd4294c0905d2c61f1f1029c0d51316e33278efa0586fabde67562e2ed1db7dd5f98b12580b43575d8ba167041b9b80dfb605'
                                               },
                'config/danfoss/rsroom.xml' => {
-                                                'Revision' => '9',
+                                                'Revision' => 9,
                                                 'md5' => '8670ab88a1a580c94bd5cba9bdfe217ba8cf980ceb15ec2fe28f8def9e6bb53131e019b4029b4cf193622775a68cbe63e147c83ccd39d1da981e550870448ad3'
                                               },
                'config/danfoss/z.xml' => {
-                                           'Revision' => '10',
+                                           'Revision' => 10,
                                            'md5' => '67829f0390c36d3ce36ab30b108b1c470a3e233c81bc982758f8707c0872e27cc926ed27c2587fd65656c22b551a3c0421dbe4dacca16be6bc4f8079f176572b'
                                          },
                'config/devolo/connectz.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '61e265fb8396c5b7ca94019ec7c9912fb26d975f30a8bdc286f2d2b7eb63d75be28a9f2266d06d2a7d1fc222430b74e25a330246614141ddac617145ba08af00'
                                                },
                'config/devolo/mt02648.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => '90a9dd3e7ad3fba28b73ac65425ca48640ffa0962c7bcb87e3a6b56661dd5fda87a89ca9e0c3fdf09bfc96f8319b8793e9cb8089932b0c8dc65c26e7131a8c99'
                                               },
                'config/devolo/mt02755.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '8b039195599ad62f4f511f07643743f7bde06359acadbc29790328483fab0ab0d5601156735849e1542e1b2f08fa5c90a241d1a7c366d773ec86f7c9756bd711'
                                               },
                'config/devolo/mt02758.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => '14ff0b2c38401d34c8ee73b3070264d9dc5f7a8e2e0433df136b84e9590a718840b2aa4b18726eec7e40598b8f1bddb7a9f125ca17ffe1ed8f5eb3cc20661257'
                                               },
                'config/devolo/mt02792.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => 'd61db8b2dd5102245fb5e73208c40af5431512b7e60e6d3cff8b98b35b4a1d1744542f5beda0eb8a4b15606e4004f111454504e6fe4dec070ac4a8ccfe07d113'
                                               },
                'config/devolo/mt2646.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => 'f8715a93ad04fc6fca58e8f98d7d6d4608f62692cd825a61fbdc0bcf238e78845818fa848f33788f8d5ad3c031d969e403f96c49fa134921ed695cef73685940'
                                              },
                'config/devolo/mt2647.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => 'c8591779bcb81c1861d4b1009450cd600b7c21dc11ba0660efb16ef725686dbccf2f5dda3a78abf66c0d84ed834280e99d29b0cbfd229b3741e1a5ce4f585ca2'
                                              },
                'config/devolo/mt2651.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => 'bf1c18dbad944110d0b9cd6d4d796c77c7baaca3e51b7650f11ba84e981dc6e8de2d8a4be54e148592aeef2cb66b6751b39db4f11db5c31009de4804b51e6d05'
                                              },
                'config/devolo/mt2652.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => 'a8f15a647bc553fe25af1f6dd85a43915880514e90991e3ca1dad164801b86aa2ec738f78de7e20967eac39851d34decb3e437ba083a22ca102da399bc8b6e3e'
                                              },
                'config/devolo/mt2653.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '54999716088a16dfb9e197b14af98c726c1f2e709cb4fb15aa29dbaf6bfd9247e236fb0e389398c25d4e74c87a488c2dbe29c0f19a8fadcf3998a7e890e9d053'
                                              },
                'config/devolo/mt2756.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => '2907005d8044e82669ec68cedefc5b7bfa93e688221a55c8b1d3b41e387579aaf90126c60ee2fe2253a8b0ee014a8e0fb4ebe325653dce4f2a3759079570337b'
                                              },
+               'config/devolo/mt2759.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => '5c8c1066314553f11e30aaa335e19d366c1d222def7a6cd6487a0e634dbac718d0e2d86de21906a0c24dd077a6e847295a55243683e45f1a5f2dacdf22cb71ee'
+                                             },
+               'config/devolo/mt2760.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => '1dbd17cf896b8241471c094ec0d450792a36af2e0f23d92cb82d2875253beb05e5bd909a43ee29c6c386b5b60a0e604c830e38a5d6828045224064138369e7d0'
+                                             },
+               'config/devolo/mt2761.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => 'f5ec076e52b23e4ac0c0c9132f92d3315f20c752c024e60de4a05d1fc6caed280fa285b4f8f332f3d17c90124e1e84f3d42f50808419e0c2ebb8d38a7e356351'
+                                             },
                'config/devolo/rs014G0159.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => '5a998e36359d0db43cf66cfbd59ef3b41281d12f535cb7aa57d704abd77e4e771cea236e82c8eead4ba9fb74962b536cd4431c7f6b5482f8900ba58496cfb9d9'
                                                  },
                'config/diehlcontrols/766366.xml' => {
-                                                      'Revision' => '2',
+                                                      'Revision' => 2,
                                                       'md5' => '19811a36d8b2b054f026486178497b34b6c6e7819533aea8e865a57fea7bea01a39731cae1c407a7d983199ea8dae2eae7cd5ead407662ac79d35e25977c57e1'
                                                     },
                'config/dlink/dch-z110.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '573c19c68df079fae58fcb4a318be9e269dfa618c38357a65ff80365a47840b9fb0f703370bd3c6d5a7409d1155472564291720169824c6e3bacfecadce05294'
                                               },
                'config/dlink/dch-z120.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '057ea9034b5751fe492a27bf4deef6c5b73fd53406649552f8817fee341be6001bb776cb5012ae6f7d8f319ada161faa29243d32c8efef9d508b18ed80cf41f8'
                                               },
+               'config/dlink/dch-z210.xml' => {
+                                                'Revision' => 2,
+                                                'md5' => '738b1bfcaa5f34d23eece8c2d95284c113abb0807197638d881f33afc49fe169036e68a702989bba4d64c49bdb038f6a764ff76e241884c25c339d251c4201c0'
+                                              },
                'config/dlink/dch-z510.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '0168efb962c2470418b5fb8ff1f274b5619054523605eb79341ac32e8e1e09ca817cee00c4a30fd0df2e0caa74de7740469cc32514ed0f2e3266e0dbc499789c'
                                               },
                'config/dome/0002.xml' => {
-                                           'Revision' => '2',
+                                           'Revision' => 2,
                                            'md5' => '67ed823369ab3c2446449ecd98206ac0f1c427ac66ac86b471866e3a879460f373ef33d7629a7a9bb045793894140b585c1b3079b6e8661f85ce55865151edc2'
                                          },
                'config/dome/0083.xml' => {
-                                           'Revision' => '1',
+                                           'Revision' => 1,
                                            'md5' => 'df800a068d84b8f3615b232fafe6190ef9bea776c5c41f801ed127d1d76ee2decd5254b98966a2ea2b0b560a489d6279a61eafe1bfe7cc87b3e6335206fea102'
                                          },
                'config/dome/0085.xml' => {
-                                           'Revision' => '2',
+                                           'Revision' => 2,
                                            'md5' => 'f02b0adcd4abb200640525a406f1eba3e246a5e8db82bdfd3f9f80531fa2cdec0e42d0a6ce140c3876a8e038d56f3a1e51ef9d1f5b4ae4cbec0160c958e5eaec'
                                          },
                'config/dome/0086.xml' => {
-                                           'Revision' => '3',
+                                           'Revision' => 3,
                                            'md5' => '0f86f2e63e4c1695f4cd159ada100514fcd979a5d06f3e6c9b0095ba5716a2de68d5f4dcf20bc82383d9da30050e3254251a3005fb7b14c8c1e324b329a5fb6c'
                                          },
                'config/dome/0087.xml' => {
-                                           'Revision' => '1',
+                                           'Revision' => 1,
                                            'md5' => '8cbb65b02e93448094240c732e1807d0a701372d94690a90fa410f75b0b9f8eec748d7e1f190f3250d271d972de4353eb507f30221678b597141caf4134326c7'
                                          },
                'config/dome/0088.xml' => {
-                                           'Revision' => '2',
+                                           'Revision' => 2,
                                            'md5' => 'cd876175a0f5f4fad952b2bc97abdb39e82ef1b606f9f7f7303124295ee375dab7957e73535a750f9e6551479e4f48a8d55845b79a889dbed8d28e0218acd705'
                                          },
                'config/dome/0101.xml' => {
-                                           'Revision' => '1',
+                                           'Revision' => 1,
                                            'md5' => '5ccce24dbb0b56cc6e5e5bbebc24e05da07750a24f64dd66a6a5cd5aec7d79a0ae59f854af5f4b40cc60806706f54cc007bb1c844346db0f91ac10c8e3b49a7e'
                                          },
+               'config/dome/0104.xml' => {
+                                           'Revision' => 3,
+                                           'md5' => 'e4121145912464763ef4ece86fb7f2ff8edc0c547329b1dc7d36e81717202be5b0b84ed5214bcaa31d8a2f5882b9f762d0892402dfb421f3bd80b8f81b4577e6'
+                                         },
                'config/dome/0201.xml' => {
-                                           'Revision' => '4',
+                                           'Revision' => 4,
                                            'md5' => 'fee61cf3301b50c77758714649fa35f6d3bc3f1614124608577e3b47b897fc546fefb1a31520307f853c28726c5758cc3656d3ebe290b6ad858b43d4e99d7a64'
                                          },
+               'config/dome/dmex1.xml' => {
+                                            'Revision' => 1,
+                                            'md5' => '70b90962ec3fc43b50b827f6ac2fd8b9d112b8c979e6e42588dd5fa19eaa909fb4a9f66da21f3f9200358f4343785c41d6d561f6d1933a0a6587403421380627'
+                                          },
                'config/domitech/zb22uk.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '90c85ebfbaf16201c99bd09c957a408b944034a3626a5a5c2eced093e27e6e0a8afca3d8516d7f6ace2e3889b57e5fbe585219c74ecf7c8a127d3b860970c425'
                                                },
                'config/domitech/ze27eu.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => 'b198727272486c632dbaf5b9c4df7dac0fb4c8c743d63f223980b764c75b747078d2754959d2a15281de83972275b0062cf6fad1ab2b83dc1a7788b2d74e0e74'
                                                },
                'config/domux/DX1CA-Z.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '7bc16a7dbe5ba0591fd65015e168075a191131d6ed80882d4e986dac2f0db163988f8b7dea228dd9b1cbbec994ae78eb60f7ee302f716ab3647d3e304357656c'
                                              },
                'config/domux/DX1CG-Z.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '431f30aa51b7c02581e67d94ff80f901e03436759cca0d1ebd4312445fbebc4904f3003298994d3b31fb7271edb78b0de5eab1c612898925549b702a150cbaf7'
                                              },
                'config/domux/DX1DS-Z.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => 'a23fbfbb8197142d739590d81e1efc2e6540d6a3b0d061d7aeb33e2186e2fc544f6f9e8287b56fc9e33fee74b542fbc7cdb2c859c869d8043ba5ad8da45e3173'
                                              },
                'config/domux/DX1HT-Z.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '8a2954363a09e06ff6dbe2688482a16987af0794aff080fe25229786387efe805ad42e46dd8a5b2a59c205f4e9b9eef2dbe5e30f015dffc348b22f73f08d28d4'
                                              },
                'config/domux/DX1MS-Z.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => 'afd42f05719619ee61728d7707cfb7f5ae0a26317c3c2b91a06d6c8f6d9ca66709e21f5dfe05825ed24e1adbb3597f9785d4395ea1419ab1a1ec25780bf7f5e2'
                                              },
                'config/domux/DX1SA-Z.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '4c57c0102cfae7a0a3d99c4a876c010ea600ff68267d8f3af9d6d93c4b23eba3eb6022edd26f0c3ed901ee69e83938c0dfc913ceb2e2e50f1d55ac015243b6bf'
                                              },
                'config/domux/DX1WL-Z.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '5e533a29c1e3da4b6c739cb95c4e8ecbbfb269280c45c3c826a5429c8ed0ed0b50d142914354a1e9c660d825b144e2d595621126b34f4d29acf885bd1ced5204'
                                              },
                'config/domux/DX2SK-Z.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => 'db469a75eb48481db6cc3ffcfb6590a58e531b1090cb215b3db12b8492bedd270d6068d1d716b5eec26a0fcb201694d269c106bd22095dc4190e50c8f30f016c'
                                              },
                'config/dragontech/wd-100.xml' => {
-                                                   'Revision' => '5',
+                                                   'Revision' => 5,
                                                    'md5' => '4d7a77c213b0dea753512dcd30e3f6723f7d751d13801af9a0584a04f4182043275e3e47f268299ab44f91958356119c571a34d1022b70bf8bafc08fd717c67e'
                                                  },
+               'config/duco/DucoBox.xml' => {
+                                              'Revision' => 2,
+                                              'md5' => '7911f42a45b59bf2081ccf0dde356696d7586388f69e660e80ef72ef17516888ef9d74bff4deea0f03d721e27e43c2ac31ccea40bcdbe178a2a8163ce5bdbc3b'
+                                            },
+               'config/duco/Ducotronic_CO-RH_sensor.xml' => {
+                                                              'Revision' => 2,
+                                                              'md5' => '506b64e578667ead9c2ad64c896c0e44fe30efb228e6daa0144995f7ddaee1f0b7692e1447ddccb16d55bd9a2589a57afdfe164ca04873e7faf8db9cc598fcb7'
+                                                            },
                'config/duwi/05458.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => 'aae2fb7ecd70a8670daf1f9a74a78e4a337da5e4477480607909a727385572371e7708e4cfcba1962c31231f23960db30dc182a74143f291366ddf9317b51e22'
                                           },
                'config/duwi/ZWES1000.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => 'a2068646341b2563717c6a9ed279b56010de4ad2b8420105d2318020fd4ab35f97975ffbdfa69fb7167855287ad2f54cb402705ea30437ba86b6f3598ce25b52'
                                              },
                'config/duwi/ZWESJ300.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '180a94924d5a26af131b684cd2a55a9b529563a852d22be1b1d4e67fbf89b9052113789ced43d8d1ec2980fb6c03a135e6ae384c66dcc49128cd0d494ea9cfd0'
                                              },
                'config/duwi/zw-edan-300.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => '558abcae454f44ba9d0de9f04903672e77492bb1f2a67b9d399755c93ef71a6326ff261fbbf42f887ea2db0336d578220de8bf36028b3337f970d6d3313b1bf6'
                                                 },
                'config/duwi/zw-zdan-300.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => '4a87e60d6056dc202812887a8c896b089bd439e259924b724abc2ceb4cd9afbd2c72226320ef4130a55bc79c6d1c5946fc6feca04e0a71b52f4bc50a698d0a7d'
                                                 },
                'config/duwi/zwfb.xml' => {
-                                           'Revision' => '1',
+                                           'Revision' => 1,
                                            'md5' => 'aba223dd3409990a731e8773259e6a68a893b862adcd3a99e008214c57771416120d42845bbbc5a99d4044819aac3121fc81c6610f0e48053676ff2c9888d91e'
                                          },
                'config/duwi/zwws.xml' => {
-                                           'Revision' => '2',
+                                           'Revision' => 2,
                                            'md5' => '29a2b8e9eadf09ee7af8441cdf46d97ab8df6271d2f1cc981acc73a9f4bd7dbf1f53449c6f71d052fa130fed9c1347a5b611b81adc46f305d704943472f54b87'
                                          },
+               'config/ecodim/0.7.xml' => {
+                                            'Revision' => 2,
+                                            'md5' => 'e334fccc67d01e2b271314e4749dfbfef299dee1dac04af6bfbc253b9fd676e43c0711322226c936ef6fdc026cca4c291ecf943fa7a6419fec816d5533e0abbe'
+                                          },
                'config/ecolink/doorwindow.xml' => {
-                                                    'Revision' => '6',
-                                                    'md5' => '8e9343a7dfd2aa2e38539833b88c9240607d168c9345686946c0d509584550130b40a40ffdeef5e8c86ea1561a138106345459ac034e7f98dcc67ea418a0a859'
+                                                    'Revision' => 8,
+                                                    'md5' => 'f328fc950eaa4b3055fff82625da805bcdc8708115a79f926b623432ac30d3482fd933e0e8a252086a61b3f48fd27cdd850aaa828f74f5a774e7e6b2ee272bfe'
                                                   },
                'config/ecolink/firefighter.xml' => {
-                                                     'Revision' => '3',
+                                                     'Revision' => 3,
                                                      'md5' => 'bb3c0c3231ab9eb0a0a015140702edde90edd4f0a16794efbc10a9feb286d9573642c5411ebbf5cf917ef2ecc7eda16725b95e9106032bf2ddc885e4c478ac4e'
                                                    },
                'config/ecolink/floodfreeze.xml' => {
-                                                     'Revision' => '1',
+                                                     'Revision' => 1,
                                                      'md5' => 'affa47443b792317e413a8bc124477f533173a259ef9bb9e820ee9977db7cc75ec58d21332f912d65f015b46b4ed5ca0df8ea157ca03f91b483f07b6d0d4649d'
                                                    },
                'config/ecolink/motion.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => 'abde9dec922634817550f559909091b5806e1f0d42f7aa400292ed8c9e6cf6ca0aaed1bb6bab30327053643ec7883333010783b2c3e7263e45421da8dbbe31bf'
                                               },
                'config/ecolink/sensor.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'd1897bb925a8c3c1f94ee31c3ad8cb8532be3690331fcc477444035e16c9a4b6496be1fd621f1c6c7be7575d72e55229c77234eedd956c9cb9817139ef317c51'
                                               },
                'config/ecolink/tiltsensor.xml' => {
-                                                    'Revision' => '4',
+                                                    'Revision' => 4,
                                                     'md5' => '59094a94ac42598b888a8a6edc2d87f08b0d47b174246fd4d22f46a71ebc1951edde9ae30a094d5502916e8381bfecb1d67d86fb9d54c9bbf91968585cf6ff3d'
                                                   },
+               'config/econet/ezw1204.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => 'fcbf2492b919363361339a98d7a9bdfd67618b9655cbf1795d8688924abf331ccb31ccc9169d05d5a541baf40e73e753f5d9a5e30a8cfd7f7149d69484038aee'
+                                              },
                'config/electronicsolutions/dbmz.xml' => {
-                                                          'Revision' => '4',
+                                                          'Revision' => 4,
                                                           'md5' => 'a73eed69c4692edfa8c192c3ff82849c84585689ff73f07d7497d1abbb5c8dc77a249c4e090f366d0ec8cbb8da63a4727758685e3c0012821f0918fe78b8ac5a'
                                                         },
                'config/enblink/ss201-us-w_1308.xml' => {
-                                                         'Revision' => '2',
+                                                         'Revision' => 2,
                                                          'md5' => '461fae3791a15189acc997f64255566573dcd51612028cb8d0bb9d189a249182d86336f977b62e434bfc26e0c89f15ef839ea0786ceda7d6cb32d8b452a05071'
                                                        },
                'config/enerwave/zw15rmplus.xml' => {
-                                                     'Revision' => '3',
+                                                     'Revision' => 3,
                                                      'md5' => '0089cbf9a8c7f27a9ed4b7af8e84e594d6be66a70e1c92f0b0d85fd222355f8b8c7a03b5c584f22e99ee7c65776122a92dc74a50bd156be616327774602ae805'
                                                    },
                'config/enerwave/zw15s.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '1300de4b8f914d8b1d2098cfb6cde5c5ba4f8ddfbb60d3a303b4301d7971001b7f088ee05aed4dd31b7138374fc14f07f322ea8b9b18889bf692e5891e944cf3'
                                               },
                'config/enerwave/zw20r.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '649faf0c076c9d76140c6d8e029addea7b2a82a0570b45780925d6ef435ff6478d0b86bad01078e1acb4761c71bae0ef85fbff28a8e1e1f18a587069ff7111bb'
                                               },
                'config/enerwave/zw20rm.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => 'd1d8e3db4d73e61674548aaaad10ff1543cd19339b5888fe2a9885e932d3a2f09a88f9d93ff62f0ba036e8a5cc191102683af39ea665f10de43ab1f31e56f2f3'
                                                },
                'config/enerwave/zw500d.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => '7d6d24d8557afcfed2d1fb8620772546730f5ec5d6dac0115f5461d3565d6890403783455e5e7d8010e326098b5cb7eb03b816df9d6557f46b6447e893c075a1'
                                                },
                'config/enerwave/zwn-bpc.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => '39b03cf30d1e29f45854d2328f661abf76754e635e4b1f6279d90ace3b4b5c57fb8d883384520617a70e499b79390bbbb3bac3d53260da19eefda686baf0bab5'
                                                 },
                'config/enerwave/zwn-sc7.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => '96404c642f3741b36f865b0486bf7ca0dbebdea208da28cace87d10181be77c14d69b455aa0cecdd2a3864d9b0b741c999da786f1b5daf75e2c906da568084b8'
                                                 },
                'config/enerwave/zwnrsm1plus.xml' => {
-                                                      'Revision' => '3',
+                                                      'Revision' => 3,
                                                       'md5' => '6725ee78062fb147fca3f41f1868bb520abf637684dee1a2cf39c2257fde1d98d90eaa6a2a35f54f768e013557889552b2458e72f37b81079e39b84053b39182'
                                                     },
                'config/enerwave/zwnrsm2plus.xml' => {
-                                                      'Revision' => '1',
-                                                      'md5' => '88a742755d7eb4a455adf6378c70430bb73ef68deeb3099cc280087eb015eac40e426c7f8667cf073009a3c9abc92e695ed4933142726c28c7a24324f25f54ce'
+                                                      'Revision' => 2,
+                                                      'md5' => 'f89f47cf55c773b388c2694738955d138ae819b3962a6a2fab1c1a41039bdce7d474a7fac4503a42f4ca3b35040ae0c7795cb790379ba963b188272a4d2225e1'
                                                     },
+               'config/eurotronic/eur_airquality.xml' => {
+                                                           'Revision' => 2,
+                                                           'md5' => 'b5f0d3da21fb410fa81dd9f6863746cdb62037fdb750b0a8e0e6f1f73637581ad6ad330ceb6f7a4d4f774a5fd1602f55e410df66242e1e87245ee029b84ee5a3'
+                                                         },
                'config/eurotronic/eur_cometz.xml' => {
-                                                       'Revision' => '6',
+                                                       'Revision' => 6,
                                                        'md5' => 'fecc7214a3cb7334806e38686fa9e4635caefff7a7bac8cf98af1b1a6dedefaa33a7a943f6435d5ae8d2286d39a69c08b3fab173ed29fd367de5fba6b321886b'
                                                      },
                'config/eurotronic/eur_spiritz.xml' => {
-                                                        'Revision' => '5',
-                                                        'md5' => '0aa11f27796457c03ca1de6842ffb31d7727edb6ceebc689fe7c03a71b29445807e331a6cac4f2140ae1e0cde9355bfed6a52312afe84c25c1f2b61004021776'
+                                                        'Revision' => 6,
+                                                        'md5' => '0dd6650679d4f3fb99fd10c0d3e125fd2c3320edf88c3a808a6fdc0c5e3301034335c9469c2b278e1858dbef381c885a442e816b3a2d40aae119ac1bcadfebcc'
                                                       },
                'config/eurotronic/eur_stellaz.xml' => {
-                                                        'Revision' => '4',
+                                                        'Revision' => 4,
                                                         'md5' => 'c0756aa51169958ecfd63418b44423f557f31c1399f8cc5933dd487012272b8c9c92a8fb5a27fe87d78675b8a115c2ad00ad76dbbdd362c8f1da39050b4a4ed0'
                                                       },
+               'config/eurotronic/eur_temphumin.xml' => {
+                                                          'Revision' => 2,
+                                                          'md5' => '53ac26d6eec78e7886ac95a6481bbd1d14f7fed6ad060a1aa2c5a6977a374ab2c395b592bef9ae4eac3fbe7e4af934dc31c45ba45fe39a19e94816f06e3db9a7'
+                                                        },
                'config/everspring/ad146.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => 'aadcf1eadebff5fa7d508e5970dbdb043632d9b9f1c106ae4d872b11127e8bbd67755114c016f52aa4961ca92069eafcb42c099ad8f919578b334015bcedb6d6'
                                                 },
                'config/everspring/ad147.xml' => {
-                                                  'Revision' => '4',
+                                                  'Revision' => 4,
                                                   'md5' => 'c48e9fa3f0a31c8f082ed9fb16a08787251621b3902f15a13c78c7e319ff254c8001b4883f3721ee44bd0b5584679e2a98a68d7ec005562b08623ad5c7f1630e'
                                                 },
                'config/everspring/an145.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => '30235407eb3b18cf27ff7e105c0d87341dec592d5c05e217b6d4deec470066afc37e95f773c021ab9f6f85874da9b349bcada1f9be56f9377923b9767753fe62'
                                                 },
                'config/everspring/an157.xml' => {
-                                                  'Revision' => '8',
+                                                  'Revision' => 8,
                                                   'md5' => 'f7afa8e9d7fbf522812deba0c11a1b5b15479e2896f7bb55df1099f83a4c1aabc64e08cb84b40849b0cb673c239501af20eff0672e63216794baf6eb3ad22740'
                                                 },
                'config/everspring/an158.xml' => {
-                                                  'Revision' => '5',
+                                                  'Revision' => 5,
                                                   'md5' => 'beffd93d68274c31d2583838aa4fc014fdc1bf980bce07f98b8bf7fa6d8fef44bae85d1a06f24c5362f26e67a82022d842f545346d2e8c9fc3d7885d26d1dfc6'
                                                 },
                'config/everspring/an163.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => '36f97e69383ccb3b6428b9d0935d5feee86598483267e35bd1b0b9a54ecf4f112a92f35ef01cf5be79abdd81b0a401fecbe09ea2f639adbaf0e1a78d7afdc0d3'
                                                 },
                'config/everspring/an179.xml' => {
-                                                  'Revision' => '4',
+                                                  'Revision' => 4,
                                                   'md5' => 'e39532bf66154389eb31e6f1f6da5915c40cd8dbb682152eaaf60931dd8ea4992be1a11a1b9ac58fadf40f965e3ea7de03e9deb34b7b1ba63bad9485dab53877'
                                                 },
                'config/everspring/an180.xml' => {
-                                                  'Revision' => '5',
+                                                  'Revision' => 5,
                                                   'md5' => 'c1118724c848e37cb666af3cc4338314075f9013e1fb47caa2f8eef00420e80fe808c0335828154bda037891e0dc7b9769236c28dbea8e73240fd6d2daf9139e'
                                                 },
                'config/everspring/an181.xml' => {
-                                                  'Revision' => '4',
+                                                  'Revision' => 4,
                                                   'md5' => '29ccf218506eefa4204ff5293d190a32026e9cd57e083a85131b29d575f1ff89a8991b4dd7eb79136abd58d42107fab32093f9b610f2b158b2e0a1aee3be92b0'
                                                 },
                'config/everspring/hac01.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => '83858d1a26350a75ee01bc46c2ba6bd0cd6ff281d549a22fdd9784f88a7bc8e60467e235e638fec024222252414ca151f0a5a3c0a0d1efa05f02a851cef5025d'
                                                 },
                'config/everspring/han01.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => '41d5fcf2548e675012a7d5510c5edd0489accd9429f7c4710dcec46678e95bd3ecae692242bb9da11618baf2fbbf1fb5e3373fc2ee5ca065be954a9ced07060d'
                                                 },
                'config/everspring/han02-1.xml' => {
-                                                    'Revision' => '1',
+                                                    'Revision' => 1,
                                                     'md5' => '3ac5a3938d6536d9b99a260cc4c1fe9587290ea6e6aa38e93158df05c22d17d9a41ab3f5db639a653e1b57e6c701c234784ba366f79ec1d81ea1f9bb42280184'
                                                   },
                'config/everspring/hsp02.xml' => {
-                                                  'Revision' => '7',
+                                                  'Revision' => 7,
                                                   'md5' => '6579098c7dbeb3ba683016cfe27ef08805ee7dee2d9cc5e3b94e4df010d8672e0811d61fa70533061c822d766a849daf3fb66b1f18e87e90ad02862ed76ef8a0'
                                                 },
                'config/everspring/lptdm1u.xml' => {
-                                                    'Revision' => '9',
+                                                    'Revision' => 9,
                                                     'md5' => '8cbffa88913207a3a149123dadfb6f9db9686886795862237723dd73cf75ca28f0e85eb57aa66ceffc21974ca40fe06f0a877605096cd5aa65e351a797af9d23'
                                                   },
                'config/everspring/se812.xml' => {
-                                                  'Revision' => '6',
+                                                  'Revision' => 6,
                                                   'md5' => 'ddbdd0af88bc20428667e30ba0e423e963d0d53c5fb741a5d9f0e2a962c7e833586ec3f19bbfb6571ce9475b26041c865a7818ec45fdbb25fb1b5021a6e5b7c1'
                                                 },
                'config/everspring/sf812.xml' => {
-                                                  'Revision' => '4',
+                                                  'Revision' => 4,
                                                   'md5' => 'ae3e1c1ea273b60314aaf34a828efd3d7cc4e1c1c9c2144353f1d7340af646a12651d18689a48e96a3e3045dd5eb3591e053df56ead016077d50b284e305bab3'
                                                 },
                'config/everspring/sm103.xml' => {
-                                                  'Revision' => '5',
+                                                  'Revision' => 5,
                                                   'md5' => 'b4db68039d5c8b96246750b126efd8f526bc8ed1a502fee3b0f5bc299076165cc26a727ffad606c3c5913900196e8a4119903b56052e8ffd9f98f64338519eb2'
                                                 },
                'config/everspring/sp103.xml' => {
-                                                  'Revision' => '4',
+                                                  'Revision' => 4,
                                                   'md5' => 'b7005e1785178e4def11ba6d4148b7c3ecdf82cf3205f6c7752d8ca5e5ba46e2efe1dac837cd99f21963837e95a396bf2698640eb71f086745c3655348940355'
                                                 },
                'config/everspring/sp814.xml' => {
-                                                  'Revision' => '8',
+                                                  'Revision' => 8,
                                                   'md5' => '1eb7a9708bd399b1d76a9b91b48e82367b141fdba05c99200038ecc3a425bc459c320bdce5ebbe8ac9496e1eddb5d9faac0119ff5cbe4046ae4553ac8ef397aa'
                                                 },
                'config/everspring/sp815.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => 'e8ca9d3c02c9b238f2a8198eb349389cc8b83fe9c95639abd361672a27b32fd901690c03ebdfffa6baf3f9dbbe76d8090fc7ff6baeb955d5775211f0e84a27da'
                                                 },
                'config/everspring/sp816.xml' => {
-                                                  'Revision' => '5',
+                                                  'Revision' => 5,
                                                   'md5' => '2a6bb41379abd9b55599ad5bdc59c756c24ec41136f5fb797f8c69f35d32b04f81c1e79acae22567d58e2eb5cfd79678b13185b9762217733e41b04ba453bb09'
                                                 },
                'config/everspring/st812.xml' => {
-                                                  'Revision' => '5',
+                                                  'Revision' => 5,
                                                   'md5' => '1c44712463c9a810bf6bf9dc55eb4427d76fd0370148bca22798bcc19a10939ab6e4ad04204a300a800d40c9e72a4df1dd5326497a78517324e22b7a5b8c7201'
                                                 },
                'config/everspring/st814.xml' => {
-                                                  'Revision' => '8',
+                                                  'Revision' => 8,
                                                   'md5' => '92bdd7c1bfd0febe8e67fc4f0e156456ed98fd12a3e118346416527536faa79a77ce207bfdd056e809e76218a65483f6b227ed2b3748a7090605fdcd1ed30036'
                                                 },
                'config/everspring/st815.xml' => {
-                                                  'Revision' => '5',
+                                                  'Revision' => 5,
                                                   'md5' => '1dd35980d8278ca67d8d81d9501d299dee9c3362797f4cd0614b9570ca39264e7d6ab20ab0823ad130449d361249b57c31e0c99d6e9ad6dc1a8f57f8df4f74ed'
                                                 },
                'config/everspring/tse03.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => 'ffe2ea7bb8e42515f36eae34c2911ce3a7130c07065088559a1766895eb95bf3e324a3cea09f3009c490d5a6b09a960581244700a662b37942d7a0389162bb06'
                                                 },
                'config/everspringct/hsm02.xml' => {
-                                                    'Revision' => '6',
+                                                    'Revision' => 6,
                                                     'md5' => 'e131dbb42620861a8f91b6a2146b83ab32d0f721f733529bf11bf4d4961251c7d11fd2df79e288145cd2a5ba92dc761fe9b98c6c9b76e0f8beac4bfc7053fc68'
                                                   },
                'config/evolve/lfm-20.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => 'e0e7192e0013c6280d2dc866cc5db6e4f4746fcc2457e13cf2f0fdc7d454e3924c790b5e832876015a11ca3fca6bf25dc979bd49d99e68575f9c17f442c498c3'
                                              },
                'config/evolve/lrm-as.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '648bb59f6ccc9fe8d61207f67a46898eb22315463b138c410ab5e20bf3a23c48154e50039d23cdc106bb1226ada35875072988e84227c767d1c475dda329d35c'
                                              },
                'config/evolve/lsm-15.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '375c317a73b812f1766db89385ea6810cef5eb5374ae5e68c01a00dd5f9ed6954b33150a55dd1950ee2c547d95cf0cb3eeeb5f1400c08cbfe399cdf58adb0dde'
                                              },
                'config/evolve/ltm-5.xml' => {
-                                              'Revision' => '3',
+                                              'Revision' => 3,
                                               'md5' => 'c0dc3a85b7da4e3bd36a877f968ebe8f4315376349793d6d0f7e0d9b8bbbe1a888473c0261ba67dbbf6ada1f65459ef273e29e48643a30696a4ed0e2c0a674f8'
                                             },
+               'config/evolve/t-100.xml' => {
+                                              'Revision' => 1,
+                                              'md5' => '7f807187a53ec217bab2de7a8401670593d02226802cc5ef897fc7f7e5db58925deaa2c3ce12353305c8029b67aca240c0f03c55673f0c39265359b7f2f8e3ed'
+                                            },
                'config/fakro/arz.xml' => {
-                                           'Revision' => '1',
+                                           'Revision' => 1,
                                            'md5' => '5983b72ce936031edbf95af40b9a1141b1a4b902d85387d1c93878a227cb850eba1616606f4acf2bb71d77d6d53943b43312ef960dd98586f6fa54c6765ecb0e'
                                          },
+               'config/fakro/arzsolar.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => '45ea7e674b111811160d58f2677a643e67e1c0e95baceb3f05b6256f4621f5efdf22740644e347689fddfbdefe9c024bc1fae47ce4411c194af79598e8ea2688'
+                                              },
+               'config/fakro/zrh12.xml' => {
+                                             'Revision' => 1,
+                                             'md5' => '27769984df864ecddd0076acd107085bf13267952adb28bd00c1b33b3a00556f935eb740adaedbcc2d74a20bb34af26e68390788e29012befc9485c08744c5f0'
+                                           },
                'config/fakro/zwp10.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => 'c841afafac7b5636e538cf14bcc2c6ae28e30ee68aa865887559cc46a94a628d091fdeab1af02fe2b6068baddfc64c9689c70948a604985515d96efaca5c7d71'
                                            },
                'config/fakro/zwrs.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => '08b86b5d4ec15f2f1eb34441beea264589f7503a88213db36e02619cac3b191ce77dab68ea21c683fd6a6caae25cd5886c49b1b85452663c6dd2bc2c757a1843'
                                           },
                'config/fakro/zws12.xml' => {
-                                             'Revision' => '4',
+                                             'Revision' => 4,
                                              'md5' => '2244930ec5075941e48029016e4d03f4003ed2c4f354dbe14422b067fcb09d2d083716e1ed583b5bec8851758cdd2f7c634c926280dcf4c97521a3983f19469b'
                                            },
                'config/fakro/zws230.xml' => {
-                                              'Revision' => '3',
+                                              'Revision' => 3,
                                               'md5' => '38d4216b7e3fef3900f637ee4e173c241ccc734de5e1ae85fd5eed95e4ff8d2aef08ec5229aaeb3712905e81ce5fd725b45ddd8a8b959bea21d756cf72b9b5f0'
                                             },
                'config/fibaro/fgbs001.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => 'addfa55daf406a745a852792ea34a1a6e83995d7ed3755789a7f29081833e1c12b5599b537dbf3cd36dd2d0d41d145f6174fda43fcc22b02361fd6dda7e1d425'
                                               },
                'config/fibaro/fgbs222.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => '9e7a4798a3f538dd041de9528ae8d948b6852131b8f73f7b9db0443a3eea9eba5b3fa16ad3282b23a4d817f44c470258938282c402f2c079a0853d2a18052231'
                                               },
                'config/fibaro/fgcd001.xml' => {
-                                                'Revision' => '5',
+                                                'Revision' => 5,
                                                 'md5' => '94e7567c5a4c746afb36a90bd8f5879df6d8f95f6e2241d3fd50accd32b3c363aa2cc6454e51facfa5b17469385e9774622f7605566577692c02f40ec3eca2d5'
                                               },
                'config/fibaro/fgd211.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => 'e579604d1d754bab281b4f701ca02b7f08a4b89692f4122defcd1bed87acabd1d73aa00d1f76986c6d4bd01ad2646a1369f305e793ddbcbc9e212cbe920de42a'
                                              },
                'config/fibaro/fgd212.xml' => {
-                                               'Revision' => '14',
+                                               'Revision' => 14,
                                                'md5' => '21d87779df4aaf0c9619b9d3260b2e1500cda54534f89ebf272f154afdfb1fe2163107968376d9de8f43203e4a9ca45f0ffd1f5226d4690c443ca87edee630bb'
                                              },
                'config/fibaro/fgdw2.xml' => {
-                                              'Revision' => '4',
-                                              'md5' => '722542ab5ea6086a921290c5d01d7554e05fe93bc5bb467e562913ae6e1b989c807bb2eb6b172db4875e30fb8b68980395995c16626f7fb0a4f3af715fd5f687'
+                                              'Revision' => 5,
+                                              'md5' => 'bf766ffd85bf105faf0aa1e391d5d747d9fae52479fd52a3bb43dea64e5634113c730066ba200bd03e28922b7a1e04933edd53dc9c84d7f17164cbc378694597'
                                             },
                'config/fibaro/fgfs101.xml' => {
-                                                'Revision' => '3',
-                                                'md5' => '12015e24fc0e3ed9a40a9a36e372629d7a858917668b531852d52206ef0c52f438b70ae0c91310304ce004fbad8e0115fd875da1eb9ffef5c9323416f9d71cd3'
+                                                'Revision' => 4,
+                                                'md5' => 'e5e06eb03490aeeb0e25703fe67cb02cfca4046b8ac618012f3019c5b3468c74aab0daec6017b0265eb75ed637d229d9d1849aae8fa4b95b1b5f9c6c7b9b6f43'
                                               },
                'config/fibaro/fgfs101zw5.xml' => {
-                                                   'Revision' => '8',
+                                                   'Revision' => 8,
                                                    'md5' => '28385ab08db45cb56171e3f9130f275fa3e68fae413150a8fe274e45988092e4316e8a727e208a9a75523719d66a187ba8387c1567ccd5e19fe7fe72a5ee7882'
                                                  },
                'config/fibaro/fggc001.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '050a8006717af518041d68f2055eb5adcc759c077a0ff55ec66218b7f049151189d0e7896b66e1bd72ce6e6bd42eb7a071f300096e02a3e92feda34a7ac588d4'
                                               },
                'config/fibaro/fgk001.xml' => {
-                                               'Revision' => '6',
+                                               'Revision' => 6,
                                                'md5' => '675408571e8f8fc679fa60b304c79a103c12b4dd4880d896e45829387998ceed01379216c916bddea2eb7d9d5d1d4fa4cc0315e979a8275e6fce25b179535c26'
                                              },
                'config/fibaro/fgk10x.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '15b64a691b43a5c3a24753849d6721aa3241ccbcb6a6d8e5d43d2222ada1dc1fa0b08f5bdded9efc5de56391825be228435aacd6f7859b419ebfb4f317f0cf56'
                                              },
                'config/fibaro/fgkf601.xml' => {
-                                                'Revision' => '5',
+                                                'Revision' => 5,
                                                 'md5' => 'b477def6a8d30e0399f8b4917b6c8317fcb2658b24f702bf8c1591b54b8a3d0ff4bbeb9e9790227d1edf2341efa9e123669644e9ee39cda91e869d42f5f14642'
                                               },
                'config/fibaro/fgms.xml' => {
-                                             'Revision' => '6',
+                                             'Revision' => 6,
                                              'md5' => '76242fb913189103b1a368f5a5e4329cd443136b0b38e67286867e4170cc75527549130b1683015b93fbce90a7c9f7a95b3a22d3913c322e4730f44078b1e1f9'
                                            },
                'config/fibaro/fgmszw5.xml' => {
-                                                'Revision' => '10',
-                                                'md5' => '47c434a0d05848c52c3ec693f491e978086eb90d926a00ffacd7056dd645bb1bc382ee348097e26613665b08429031aa94fe5d600810815431f530791dca9214'
+                                                'Revision' => 11,
+                                                'md5' => '0adefffe86619a91a05a0904132abd3e24c6d367986f082cd08ef0738d340814d209b631c32d1eab4752263f86086c2e0d4110020d1d1be456f12f4abe887ca8'
                                               },
                'config/fibaro/fgpb101.xml' => {
-                                                'Revision' => '6',
+                                                'Revision' => 6,
                                                 'md5' => '4a688fdca007e02f3ae2e13e11745ab591c4dd4e58dcc9f9034c2de91e694a506cdcc99c4059d94b1f154dde6fbef84d6f800c6189a0e11e75429a3e413c9923'
                                               },
                'config/fibaro/fgr221.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => 'b1ac55805cb99bfd01a6f7a553fe9893e83f4bc1a4f299c0dac1a29e931c41c119a0a81522351e8639881c92225e05170134dab379836e40c36c7f3724377622'
                                              },
                'config/fibaro/fgr223.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '10d3acdcfb6738324afa2f6c4c0547f29bf04634fbe774bedeb5c160c547168d5ffa1dbfc8740aa4c12c5b928ff2e9d8ca1ca99c5f7f2a366b6e037371a32e69'
                                              },
+               'config/fibaro/fgrgbw442.xml' => {
+                                                  'Revision' => 1,
+                                                  'md5' => '7e75383774d35228492d543a94cbcd4a9652e8cb6b934bab92dc6b1d5b634d518b70370c61cabe52c1ddcc55b741600e90dbdc0bc7982232b5ab641f2b914093'
+                                                },
                'config/fibaro/fgrgbwm441.xml' => {
-                                                   'Revision' => '5',
+                                                   'Revision' => 5,
                                                    'md5' => '302c58370d2f92b94036178c3c7e09e2506c3cb31ad92b6989a3599de87f80b51d0f33ebabff3a9ce2ae81512be294287265a21c48d0176e5db80eaafd541fd2'
                                                  },
                'config/fibaro/fgrm222.xml' => {
-                                                'Revision' => '5',
-                                                'md5' => '9afa4db8e041a54de279744aa81394c8e00cc17b675ce8212dbe06c3908b2af3065ae4c4f26183abadf9060abe8e04c209d69eb727bd3ad576051553218baf13'
+                                                'Revision' => 6,
+                                                'md5' => 'ce4f42d47c38e5743e77a783d0c1fe86ea66b97e5165b922cbb14d4cb66c5b77b6b28289a5bdbc49e1e4ea4fd1634d9afc57d0be660ac1e0d03e6abce02c049e'
                                               },
                'config/fibaro/fgs211.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => '801ee579a73bf981bd3c4b5000642dfdceef3fb0f4bc1f659dadad7dd2f42f3b234ead1d681bf2d0ab18339dbb6ea683ce65d91aedde49f04f836257e3f13fd2'
                                              },
                'config/fibaro/fgs212.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '6b9c4b6b47544b2acdb0820ae6e914b6f25b322e88b99e48392e6968d0e57203a051870bb87c3345132385e48d18597f829c4790d21e2b270babe9b92d9faea4'
                                              },
                'config/fibaro/fgs213.xml' => {
-                                               'Revision' => '11',
+                                               'Revision' => 11,
                                                'md5' => 'e41844de98b9d3c13bdce42661f3126dd742e92e834255ba4926a69a305a9d6e0f629ff16ad7018b1b299e03294b21a7b2250e68278c3f2e2f8134c46ffa3119'
                                              },
+               'config/fibaro/fgs214.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => '6c14728668387d7e7a905dc8c360966afe1155006a187fdaf27b639980d223d1e351f87a13cc1e1a8b00be318a73b74d4467b695aa40ef5f14b6ddec0e99f3f4'
+                                             },
                'config/fibaro/fgs221.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => 'e0260bbc99a7eab473a1f80f9398602f6316c00f3f2177ea76bbaf240dbb831cfe7f2ce9caddec53a05655ac6e73b5c36db55f1218f8a0d2c2bd0a4c062c8f4b'
                                              },
                'config/fibaro/fgs222.xml' => {
-                                               'Revision' => '5',
-                                               'md5' => '4adea0927515ef9146d48192bf09fceb0132df7a8b770ebd89d5473b92a32c12fe500e47ba31acdfc28cfb520e4d43eba5b1fbe3fa49ef5331d8a433ca83de62'
+                                               'Revision' => 6,
+                                               'md5' => '1d4895013a2282e732c1bcb84c75157043064d95298f1469c54c133f504668ca818f1aa4ae2abada77a0712b7a62abed883f53d9ac81617f2c8e6cc7b6b07067'
                                              },
                'config/fibaro/fgs223.xml' => {
-                                               'Revision' => '14',
+                                               'Revision' => 14,
                                                'md5' => 'a20bca0d2a4fbc249391a9e21197c4481e7d650d90cf6f52a9c10f6783b576b083a7979178ecff6e64e17a6266e197f155105a8b57c5346e404e99db3de395ed'
                                              },
+               'config/fibaro/fgs224.xml' => {
+                                               'Revision' => 2,
+                                               'md5' => '5b877ff52fef4c7db0dc43daf33b157d2a9c17caf310b9631465371d80f81bf73434aa5de944e3ce45349f52b4a4edab88461551ca39c6502f03e9255d0fe416'
+                                             },
                'config/fibaro/fgsd002.xml' => {
-                                                'Revision' => '6',
-                                                'md5' => '1ecd3c58332deff5907969650e409a744494f69abe53cafc61c33421ec8686d6443161dfada159048f47f903df5b260ba4b1afe978c252a664d87cc13df48c1a'
+                                                'Revision' => 7,
+                                                'md5' => 'caf23b9d5714c41757a472148801faff4face27a0b9963b74363bd2fc78827d2073f47f9e0f89745713d19234b48ea80ecdfe3e1c100a156962468403f7dfd6c'
                                               },
                'config/fibaro/fgss101.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => 'b3ddc92e51ee5a0ac5eba30f3cdba72f8c8aa114b2b474f3d7096d0092ccf9ae8ce6042e8f6182f4a07129a891e6dc83517be0d5d67bda91893ec0bb210f0f45'
                                               },
                'config/fibaro/fgt001.xml' => {
-                                               'Revision' => '5',
-                                               'md5' => '64b989c2046a0c572b8e25ee2c3c595e1a5c2eb52e9c6a29d96cbe0c71b33d4a46bd640e551564e6794aeab9a5e7a9a011c0e7430ab2b52de518ba9cac81c3b4'
+                                               'Revision' => 6,
+                                               'md5' => 'dcf003e4bbe58bc3e0e706801a0734095db4ecf5a40c73ce5dd03a2a3ae9cc6e6033c87ae08b6d7c8575de5ee8fb56541496c584d676c6203ca29a98546b98cb'
                                              },
+               'config/fibaro/fgwceu201.xml' => {
+                                                  'Revision' => 2,
+                                                  'md5' => '6da183adf79ba89f7e5c079eb320a2b8ca521d329e110e9f01b99a48bd14d8fb1c5608ec568d6fef648d1ee56ba0cef91257000ec7b2ae4b13b88524cd501391'
+                                                },
                'config/fibaro/fgwd111.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => 'bf6d95da83aad31068f0f62fb3abf1d03481f63dcaa347f8fe6a38cc8d4a2bd9a3031722f9a4e73cd6823dc151fdf30772c4c3b5d4f06bdc6df3120389091057'
                                               },
                'config/fibaro/fgwds221.xml' => {
-                                                 'Revision' => '2',
-                                                 'md5' => 'cf74c8f1c18eb10c407b306c1b8d6faa536f8d9c1a7f21e1bb90c28e1502054b52a0970f820b118be2e235c34b57aeb66050b653255b48ea4aa1f811b4a20c7f'
+                                                 'Revision' => 4,
+                                                 'md5' => '9641565fe4eca688bb3f0b73acf0a425b1f301f68c67e5ec8af0255457e9ded311aa311c15152700e3fdf51363ea8c04ce397e79426b2c01d75ab8193d2aae16'
                                                },
+               'config/fibaro/fgwds221ss.xml' => {
+                                                   'Revision' => 1,
+                                                   'md5' => '044ec0227f23e478e9d8315100cd9a4bb6886f94e5b7dd8077133159ce99a042abb6075ccdd6a03639e2e4681f5a21cf0bc3a6005d143195de829c5b799bff78'
+                                                 },
                'config/fibaro/fgwoe.xml' => {
-                                              'Revision' => '1',
+                                              'Revision' => 1,
                                               'md5' => '117d888dee07fa6b24bf1a69a144e631921c7f06ebdb0e90632560ecf45872eabdc82e2821d734f260585c660dfd47737c5948a44c9ed21674e13b8e1533824f'
                                             },
+               'config/fibaro/fgwpb121.xml' => {
+                                                 'Revision' => 1,
+                                                 'md5' => 'efc9063c630e257e314ab3676517cac800807248d605b92be342b98fcf4562c9cb7a872c71970fa4953950466a29c5b6dfefbc11077a7dd4fb209a99a4d267c6'
+                                               },
                'config/fibaro/fgwpe.xml' => {
-                                              'Revision' => '6',
+                                              'Revision' => 6,
                                               'md5' => 'f099c34442fb3d67723c59cbec6b31d2d383686b583ac013607848e3d8dce2a9628dd96a10751a027cf8d18c4714b0272dab073dda20302b1dc5820f18273643'
                                             },
                'config/fibaro/fgwpfzw5.xml' => {
-                                                 'Revision' => '5',
+                                                 'Revision' => 5,
                                                  'md5' => '61fc9df991d5a091c0a05a92ea37c4f76d18e52d9cc9252418b5525a32f48cc8cb9815a42b05de2fa8cff62665db88094eb4b99114d5c157671337e12a8230af'
                                                },
                'config/fibaro/fgwpg111.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => 'ff622cfe98037421901a2087f85d5d7272f3fc0e1c77c5b357708588cee4f4f47e61141c833c9b7af4734f2ae109dcf2e1e3d44bc6f6d4a39450ec5de8de5ab1'
                                                },
                'config/fibaro/fgwr111.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '14e1efc7dd30097da9adb3b5c69ea5c114ea63806004f553c701cf7833aeea730b4fc1cc30913b1cedcf1e2e88aa2f7785cef3384663df68a879a0a3a5b184e7'
                                               },
+               'config/firstalert/zcombo-g.xml' => {
+                                                     'Revision' => 1,
+                                                     'md5' => '3aafd7c7283dde9c093a55c0c6e0cc0c8f221e9b06f647cc151b97a4bd4296c2715e89d9c62886d275f213376e2e3052a23ce05ed027a181f054459fdef0e3cb'
+                                                   },
                'config/firstalert/zcombo.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => '6550cacd482668a1c7561434bf094255cabe30b5beda26c406e2f9f5a772fb19176f2c0b28824f9015ee64b0d4f737f5f9b35ad2c133852f7286160ee337844d'
                                                  },
+               'config/firstalert/zsmoke.xml' => {
+                                                   'Revision' => 1,
+                                                   'md5' => '419d50ff831000b5b2ad8dccc3841dd89cd1145186c7180d98d3b5071b02dd4b94ce8c12c1471ba7cfa4243a3e46c63779f5e31d1559e95f571f471dcf32c2d2'
+                                                 },
                'config/followgood/swz-1002.xml' => {
-                                                     'Revision' => '1',
+                                                     'Revision' => 1,
                                                      'md5' => '3142c3cc8cd97d218a3f3a31d841d308ab0a51291fa2a57a3c13c3cc45cad79350d958463bd1667d596a99206c5759877a7423692e714437e922f9aba5bee6ee'
                                                    },
                'config/forest/fs2z5232000002.xml' => {
-                                                       'Revision' => '5',
+                                                       'Revision' => 5,
                                                        'md5' => '5d023a7e60f4becae275c45eca40de4772fa5650f13158727dede39a8011ba03000e5ad3941542279978f6348d3f85bfd45ad6b02a0185e612b1662f6a4bb25d'
                                                      },
                'config/fortrezz/fmi.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => '8f7ad8fcf6fdf93c1228bde5f5ad12cdd4f6681ea96e2fba2e59da2b84b9a9ce5fbd288a1f3a859ccc640ad77c362191b3ded331a15c0cd15ba1007c4ca8d4c6'
                                             },
+               'config/fortrezz/fts05p.xml' => {
+                                                 'Revision' => 1,
+                                                 'md5' => 'bd74c940439b0e3c77c83b9bd2a0d4af6744833f3e4dc4ac2726f0b319bec7b12b9ecd19373bf0b0cb8c094f039604e429826e46038043a11cc81023fe78c1fb'
+                                               },
                'config/fortrezz/gdc1_fortrezz_1501.xml' => {
-                                                             'Revision' => '1',
+                                                             'Revision' => 1,
                                                              'md5' => '48bfe2a8c75fd3c17a87bb4405908dc9c835c131d7e8625760b93a8c8d4f3d6895cc8fd8483913bfad697d12811f42c82b9ee41168baf068ef2616d4bec65800'
                                                            },
                'config/fortrezz/mimo2plus.xml' => {
-                                                    'Revision' => '2',
+                                                    'Revision' => 2,
                                                     'md5' => '6016f3d62b2d67fc6c21749852db2bf0f158534a6aedeb5414e2e23b073ec505b86653725ee4ca69b61b0d2577b6c2cbbc09a390e00babc6d813052cd7c6ff84'
                                                   },
                'config/fortrezz/mimolite.xml' => {
-                                                   'Revision' => '5',
+                                                   'Revision' => 5,
                                                    'md5' => 'f8643c66c280f96588067d67f33ae3aee81243fe1ea5677ca8f8b3e0f21282cc968b98af61fe5a1772a6ac02f00ad44d9c130caf15552e49d40879419cb703fe'
                                                  },
                'config/fortrezz/ssa2.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '8b5fb147acc63d0dd5fbbb34acf4efbc4a2fafa63d1ee8970da52a216c912d75b35fee0c624eb97d64e8c8e4fa08998aa193a7b9f2beec6a354a2902309f72d1'
                                              },
                'config/fortrezz/ssa3.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '96196cd391eaf93e6b87da39636f574a4613c0581987f2a680f592b8d4493f967068995df52eb54b33930052392725b563b1c9de2c4acbdfa26895cad24c8f16'
                                              },
                'config/fortrezz/wv01.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => 'e7ef958f3c88e40d69704871967293baa75c03b1118b80cc046c4ac3710b1cd1503a465bd1c9f475caede7a926062c2b72d811f4e26864e45b479983631fb59c'
                                              },
                'config/fortrezz/wwa-01aa.xml' => {
-                                                   'Revision' => '1',
+                                                   'Revision' => 1,
                                                    'md5' => '822a106d8f7d792f2c1f52252ffc941d2c27a17ea182c403b2fb212ab42d18e7083e079f2b250f45f587509c95b6fbce43ddfe1c02f66734084ba5d07a495c1b'
                                                  },
                'config/fortrezz/wwa02.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '4bab32e79691a880d38d91c7501f0cf98b6e2e60b7a2004ad332602bbd0f33bd8fc4861e4048953e2e9c469d765a6f9e6b65c3c212a0e3f6e9f5e1f4126655cc'
                                               },
                'config/frostdale/fdn2311.xml' => {
-                                                   'Revision' => '1',
+                                                   'Revision' => 1,
                                                    'md5' => '79f468d1f50721b8cbc723c77fc9902c727376cfed82099e821901ffb81e402d6e1213486fe9f0c2c6f8e39b3954327c1a87ad21a705036dea8927e84746526c'
                                                  },
                'config/frostdale/fdn2nxx.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => '2cfaf444e663bf9f6bcd25d8c08ef14163ea9c938c106556ecb6bba22641bb47b066c323bba6c7db49f4f731ee12eda16648ab9bd8e0b3f1bf949bce8fd9cfeb'
                                                  },
                'config/ge/12719-plugin-switch.xml' => {
-                                                        'Revision' => '3',
+                                                        'Revision' => 3,
                                                         'md5' => '17ebbde5eba4998fad0e35f252461259606ca8e88d0eaca3437cb3ccabd36797b28671660bb7955349eaff19cf617d86f20318693d0766f7c56a14998d2c43a8'
                                                       },
+               'config/ge/12720.xml' => {
+                                          'Revision' => 1,
+                                          'md5' => 'dad8cc08440a1f5abde69cb6649d45eff1059ed7a8e58ca297192f20e89941f8fd09d2ab491781ae0ea2fe840123f782a0881a2ae75e3d79f7e0de6f63ab9710'
+                                        },
                'config/ge/12724-dimmer.xml' => {
-                                                 'Revision' => 9,
-                                                 'md5' => 'cdb1e185894f7a80aa5bc4e24aa8b0bef64519c19421b27836fc93d8df2107d981fa947801fc84ec312d0bda4048afb12772b478345805a425a101525d8d6a29'
+                                                 'Revision' => 11,
+                                                 'md5' => '6568fb1fe307b61db6b8a4f9f068124bf6dd7a9fae99a2fbdc008bd25a4a2a629e53b379f0ef1e589bda4c871ffbef5d8e48fc9ee4c8fa35a855d4a3fa6493c5'
                                                },
                'config/ge/12727.xml' => {
-                                          'Revision' => '1',
+                                          'Revision' => 1,
                                           'md5' => '2f1fc4587bf2caf5d982f45535996a36bdb93adb7de8f089e9ca8bc042d91e45677bc2f5997d125b3eb1e93f533c00637ef6d7106a9c456878aa8523ac52dc07'
                                         },
+               'config/ge/14280-plugin-dimmer.xml' => {
+                                                        'Revision' => 0,
+                                                        'md5' => '62c479d852b5e22ba57306c3877ca58eb247528829d02022d8796c725a7b4964c5acc4f829ea807fff291182777ae271a29676145933fe78fe80f7873d597e2b'
+                                                      },
                'config/ge/14282-plugin-switch.xml' => {
-                                                        'Revision' => '4',
+                                                        'Revision' => 4,
                                                         'md5' => '72ec968ba6c64f65c48fc8ef9fa33f623717bda452d0685547735dea6240ef4efde6a1da95f683cd5fe1efdfaeea834a13412482a305c05423c21186c7edaa97'
                                                       },
                'config/ge/14284.xml' => {
-                                          'Revision' => '2',
+                                          'Revision' => 2,
                                           'md5' => 'cd3edde334dc3c489b23b3148590077b6e4f3d2a50fd3530fac2e140a956ae6cc41ed1d435ea47388456d955d7fcccf0a399225d76d1e58796c36e406d42491c'
                                         },
+               'config/ge/14285.xml' => {
+                                          'Revision' => 1,
+                                          'md5' => 'f3a27a970ed353ce1eeb8c70a30b9cea0ec86e06fdc2a603291b92139b4ff200ba60af992b156660e7c8237e59b0bc2337ae517e22f821088c3ab1d80e3ee71a'
+                                        },
                'config/ge/14288-outlet.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => 'd9fb1de64ede9d3da8730b73e67149d87f383aa45d878cb1fc54fe59cfc4b636577f35c58823484f3d5d830b0080aa69b4c86a934225c521e11a7f81ca07fb93'
                                                },
                'config/ge/14291-switch.xml' => {
-                                                 'Revision' => '5',
-                                                 'md5' => '341219ad5f6d3fb200034d60733383e2d2499c3486b2389b11984895a8ca577b817c9b986ebf875973424771aca68d1b1800df5d710e3dd4121963ab530c2140'
+                                                 'Revision' => 6,
+                                                 'md5' => '26fbb25b684f516c6ea4b2ec40af67ddd8d2d6870a65f18f4db0fd38b38eb508f8512da9dc96a4e0ffab200ae02be8cab9178a4617ea17fabd0ac63ee5bb2188'
                                                },
                'config/ge/14292-toggle-switch.xml' => {
-                                                        'Revision' => '4',
-                                                        'md5' => '499251768ad6b8c824d1a20f49270d9ecb1bf8681067654ffe6a795aa3a5b8ac314e3a75047fade9bfaa31dd57879b16556fe5c4e04ea82db570f99c0171e177'
+                                                        'Revision' => 5,
+                                                        'md5' => 'a0fa7333db77747a5a5cbc70860b04900739c52c015d8b4d6a45b36a275469285672f70719b7be61de3ee06a1845f9d876b89557aba862c8f3776cd9d67c18be'
                                                       },
                'config/ge/14294-dimmer.xml' => {
-                                                 'Revision' => '5',
-                                                 'md5' => '1328e3b4a3457a0d0627f9842b6a1c47439c98995ab05cd86b1a3bb0228f8051b5839a4e69275635715de08e7c816dd32968c3b6db310b139318e71871a7a24f'
+                                                 'Revision' => 8,
+                                                 'md5' => '0acd274b8f1f60d0c2a8b1a704977f27854a8f4346c97304fa89b90eb71aa1c4bbaf1c96d64d1b3b5b9b4d707c521555a173859d31ac733e9cd9b7fda28c270a'
                                                },
                'config/ge/14295-dimmer-toggle.xml' => {
-                                                        'Revision' => '2',
+                                                        'Revision' => 2,
                                                         'md5' => '936f319de3f6658b448d9c27ee2b6c639a5702fa2669a750ac841e13e2dc5fbfd1c686ae6805cc231b94607c36781d2bd7214ea81fdbdf10f11efd4a7f9c9848'
                                                       },
+               'config/ge/14298.xml' => {
+                                          'Revision' => 1,
+                                          'md5' => '24da4dcaab326eb2aec592f74c6db3e51d05108773b6613a6f415760a93fdd98be579834488335ed3efd2f987c20f316284b39b1a8c659f67e83895f50021044'
+                                        },
+               'config/ge/14322-dimmer-toggle.xml' => {
+                                                        'Revision' => 1,
+                                                        'md5' => '56f3d865b46562564dcf28bafb2449704e0b5df1ed57025d0cc54e0c865d4a7f8b926c03e0c60be4b47f1be0bac25a5e3ff5ab4a8706d0c910b8b710f9ca12a2'
+                                                      },
                'config/ge/26931-motion-switch.xml' => {
-                                                        'Revision' => '2',
-                                                        'md5' => '80cb83a0ed9a932b0fc85f6046fefd92065741aa6d9d764417a0718edf1d528680638842f199888b8c0c2986b7cf3b7930744ca309986668d1d605ce68b59d29'
+                                                        'Revision' => 3,
+                                                        'md5' => 'd29b700b0b98e93829596b71cc1888534dcd18dc13d057a25a6b5daf8792e156f1d1cd39d168cdf5a419ca6c890ce7bdb22fd341e06618a2e1f2456c4fc5426c'
+                                                      },
+               'config/ge/26932-motion-dimmer.xml' => {
+                                                        'Revision' => 3,
+                                                        'md5' => '536b5e0151fd2c4c31478e8da98ee7cd7e3e75233f45f2563f37e5463884d636521b67da7a2af87abab15590c877c2752192147b776cf85114aa4ffe8c0da23d'
                                                       },
                'config/ge/26933-motion-dimmer.xml' => {
                                                         'Revision' => 4,
                                                         'md5' => '0394fce7c7e8b1b3a5181ca36230cf10ccd13c4a34ebaa67f39df0af12316d58ba9bfdace934a02d6bcb4f8d12d86cba5bc113d0660b06fc833c0794c47e9d24'
                                                       },
                'config/ge/28167-plugin-dimmer.xml' => {
-                                                        'Revision' => '3',
+                                                        'Revision' => 3,
                                                         'md5' => '3ee59078343932afcb5732ec56eb15c259f360f3a4adcaee1f632350f057581372ba65a0c33ed51f6b239096db43231fa64a439a9307c3b9c4c9e23da0ca6995'
                                                       },
                'config/ge/28169-plugin-switch.xml' => {
-                                                        'Revision' => '4',
+                                                        'Revision' => 4,
                                                         'md5' => '58980d447abb1f8c82167ba043aec5546a8ace8e6ea9f4129c521b363ae3aa3d7c723c64901af5c6bec6695d7f0aa85e4975ca318da9016deeb83cbe6aaf5e59'
                                                       },
                'config/ge/45604.xml' => {
-                                          'Revision' => '2',
+                                          'Revision' => 2,
                                           'md5' => '1a651b322ebaf4de9f8b5a03c9604cf55e6140cd1a64f45814e6e8818d83dc4e0988f7f8ffcd318ca3d9424f24e78250b742fa87025f682e22560e1774d18df8'
                                         },
                'config/ge/46201-switch.xml' => {
-                                                 'Revision' => '1',
-                                                 'md5' => '3ae4ec70a396a21c7b8e72f979c343f715f133b2a53d827b31f88ed45e17fd457dfef597c64b13bf36b688d21caf42c1e488971c2128a3baa8a5d9d4b887da13'
+                                                 'Revision' => 2,
+                                                 'md5' => '1ecb7e32a13de469936cf4bcb1fe12da5808a7a431caafe2687632755a8c7b031c6a14a8848ac11115fc2589c45ed408f7cb7bb0779133b028c5f66e201fd835'
+                                               },
+               'config/ge/46202-switch.xml' => {
+                                                 'Revision' => 1,
+                                                 'md5' => '0b52e54d014cf6ca5f94d2f0ac130236625b2ba575d8edb955a0a682b358a1c30b481f23b598c31349068aaa95a5a02ba76d074f7c0ac1ace38dc3134b584a3e'
                                                },
                'config/ge/46203-dimmer.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => 'e66fa46f950b4533040b0bf24df89bde1fd624c7cd4ce92cd88721e31445e8cd41676f4dd0bc4587dbacd37a462bf9967651cc0bda71f1d7a6c089893c50fd92'
                                                },
+               'config/ge/46204-dimmer-toggle.xml' => {
+                                                        'Revision' => 1,
+                                                        'md5' => '3fc29dc416cf95fa427f0dadb5c5676bc42cdcf148072b0d4a7d37c1034180410c60ba767bfe27fb262a36c276de262e2ebdfd70ab0301fdcf2dd38e655250f0'
+                                                      },
                'config/ge/dimmer.xml' => {
-                                           'Revision' => '15',
+                                           'Revision' => 15,
                                            'md5' => '69d688ae37c8887da28d801b24305f9bd81ee1f9b1cea214c492340ded4144263955f4325a229b33c22d5ac0a7f327b358cd0bf2100e4d096e9772822a0960a1'
                                          },
                'config/ge/dimmer_module.xml' => {
-                                                  'Revision' => '6',
+                                                  'Revision' => 6,
                                                   'md5' => 'f917273cfc180539f9dde977978e68e7ec54f30d2ef2378a2795f7c4519f93d52d9af4b860c190ef059363a562bd105899e3d5464b84b07e52af6ae417216112'
                                                 },
                'config/ge/hinge-pin.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => '195127b7310facea584641c8c4b0de9f80c787db87f65ac10a0b0f876fd061014828d7cd32e72d2f9f2eb146deb09e3278ec5cfac299ad1a5586325611a3f52e'
                                             },
                'config/ge/receptacle.xml' => {
-                                               'Revision' => '7',
+                                               'Revision' => 7,
                                                'md5' => '3d226b9b6330953a94b786a712451067c0df84cd688feee5d156ae43ef847d490890db44629aff06771a4edad590ec0e12983de15ecdcf64400c499c8b956c8e'
                                              },
                'config/ge/relay.xml' => {
-                                          'Revision' => '10',
+                                          'Revision' => 10,
                                           'md5' => '2796184b6ac7fe9f8aceb1a09221cc6a1c8c3844a039a484057dfa71f704ddca8c05b038cb6352f1df9d10972b328dcac6277749d8dc2b0197b4548760db213d'
                                         },
                'config/ge/ze26i.xml' => {
-                                          'Revision' => '3',
+                                          'Revision' => 3,
                                           'md5' => '48668adae273d804358eb6ed626833f2576e08b25484914c8b3b5704fe2918392ff77467390677596b541f558779e9cc07b56dd1907f866ac4c1f858800b6f4e'
                                         },
                'config/ge/zw4001-switch.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => '56d8b8c8c7c1450298ce238cd73f0e5782812a48a6794e2fb82a65fc32150862c5283294cd90cf9874b0085ca52dbd620710322dd50bf3e38da3d74d70ef0856'
                                                 },
                'config/ge/zw6302.xml' => {
-                                           'Revision' => '3',
-                                           'md5' => '914ca5923b09d0ada05f866efdb91b060b4ac305b5a709facd1133e986c4c5399a242527e2caa0b84cc08c0cfb467e19756a5937dd8d990104c099371b0bcfd8'
+                                           'Revision' => 4,
+                                           'md5' => '6b668bf119e7f0e6aea6c066294bed1be1e7843e67b1223ad2819691cc5c7aac2bf36807eefb29c996eaa4a83ce05abc93abe50873f835b018e563ddc8dc8748'
                                          },
                'config/gocontrol/GC-TBZ48L.xml' => {
-                                                     'Revision' => '2',
+                                                     'Revision' => 2,
                                                      'md5' => '15d627a3d9de686ec39e3cf2cda1adcb335cb6b38ae807106007a69416c45622ccbc9fa06f2b7ea4a9fed73646497f8600cf54e27e879ef90d71fda6fa19d452'
                                                    },
+               'config/goodway/td14010.xml' => {
+                                                 'Revision' => 3,
+                                                 'md5' => 'eb19987dcaa0c672fda5d4e7b340481176b132332a21b745628fd735597b6f88f6c6e2c8e662ac3380c0195dc42ebb4e29741f3b43801e3b0dcccadbefbf79e9'
+                                               },
                'config/gr/gr-302n.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => 'a151aeaebddc3e1b697ea96f455aff329e374662ebb64849067dd74f50caf3a96d32750aeff1005f7df557fdb6a3f75aaf94190ace1566bae5bb25019719b0fd'
                                           },
                'config/gr/gr105.xml' => {
-                                          'Revision' => '2',
+                                          'Revision' => 2,
                                           'md5' => '54bfe047e99c0701d98c2220492a0da6c98d80abb22690916c6de4baad6a0fb473a2ec6f5ec3369e7ea31bcce54828300e43fb752ff5efc867d8e99c2f7be6dd'
                                         },
                'config/gr/gr105n.xml' => {
-                                           'Revision' => '4',
+                                           'Revision' => 4,
                                            'md5' => 'ed10e4f95c410c9a6e9b539bcba6298f052c35867326105777ddd9e19d6d7677ee5ca9d2bf862a837b420fabd8b74e25483b637c7a71e35c6974dfe30e09dcc5'
                                          },
                'config/gr/grb3.xml' => {
-                                         'Revision' => '2',
+                                         'Revision' => 2,
                                          'md5' => 'a03b12da4dc4cd30c564f72efa4ca00dcdac5c7a7dff878dad7ada0a87675fdc271a1408a5187a5f3349eb4809886b1064b2df6f0b4697b068308a57b337e97e'
                                        },
                'config/graber/brz1.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => '20de3c410b7f5e4230670cc72a74a5c0aa055c452538072f17146558addcb823ac1eabe84ed5e3c5b99520a1263f3e2425a53869d1dc5ea714cf323488e88f08'
                                            },
                'config/graber/csz1.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => '536a0b35500ee8ab596c1093763c408e4b7ec61bb808f73495f0c89e25e038522fd4f35d9869fe5dcf54c51109260d35a53bc525c446040110f771a0c4cda308'
                                            },
+               'config/graber/mcz1.xml' => {
+                                             'Revision' => 1,
+                                             'md5' => '3aaf4b40388aa6f23f2b0221f1707c02690cb63ae173fd990604c9456999b75fdaf82f4dacac5f98d2f02e6f21d85c76bc8582a3c728b19465c8d73b7a26a5a6'
+                                           },
                'config/graber/rsz1.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => '598bdd923d527543430b89d86d2f0260c26a59017a3f44d7eeba00ce809bf01f9a0161041d1b9745a339dbab0f7f0d8f984504a74dad89921921454273e666e9'
                                            },
                'config/graber/vcz1.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => '3b1ed59b630c3e890e80900dac25d798c48661a01e7cab554777f51f7bd3acb1e11d5adb0170011576b302f52611ea2489a082481bcacb00cebaf5eccb24f262'
                                            },
                'config/greenwave/gs1110-1-gr-1.xml' => {
-                                                         'Revision' => '1',
+                                                         'Revision' => 1,
                                                          'md5' => '9dd0a66c0191769535bcda4fc90ed9fcd3aa1858016cce795e92c517641a7e72d210946435f88baac53f37178d9283fafbcc94491394f8de6279077963b243d9'
                                                        },
                'config/greenwave/powernode1.xml' => {
-                                                      'Revision' => '6',
+                                                      'Revision' => 6,
                                                       'md5' => 'c96db0c34ebba8459e59ccbaf488c3876b9201235936bbe2410dd2b8777bf3ef674777e7f2dad9e80067d4e2e93b435fd11573a2a3d4938d7144e99df9cee828'
                                                     },
                'config/greenwave/powernode6.xml' => {
-                                                      'Revision' => '6',
+                                                      'Revision' => 6,
                                                       'md5' => '1e575738b3a559c2de13dfc9632fceb800dc03c8ac5691ecb0d0629a57b607d1046316d8ddc3a87db9e4fe1dcae57fab20998845f1b6d699953d555af71d179a'
                                                     },
                'config/guardtec/gkw2000d.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => '280feec2b7433f743ebbacfe437dd6b1423b38777141a11f22433e29177b9280db33d2f15a26da0a9b0940c93c47d29dd874e7ae7b12565de709dd73ab669a9a'
                                                  },
+               'config/hab/iblindsV2.xml' => {
+                                               'Revision' => 2,
+                                               'md5' => '1d8c628927d098803b55085eafd213c946af427b6246eefdcdaf74ea576b17cc72c2d76f0ee6c1a238b509eb0b2dbdcd95fd0924997e760503f115ad65a3b6b7'
+                                             },
+               'config/hab/iblindsV3.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => 'ff25e0ca31e6e7b3a7ef6739e2175eb31b925b1fe663b1697df37710d07a8b7cf5056536b695f4a6c2a874ac2ede66318724d8f3592b8674ddbd2ecd7c0a0878'
+                                             },
                'config/hank/hkzw-dws01.xml' => {
-                                                 'Revision' => '5',
+                                                 'Revision' => 5,
                                                  'md5' => 'b11d36a38e54d9c4f36fde7224db3847a5e0bb09e5828ff9ef8802ef1c67000846513ad3e91b2cedcf19e91b95734b4d2864a4d44a32c32bab7b16e4a5adf46e'
                                                },
                'config/hank/hkzw-fld01.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '02bd96bd02e95491700f0c6efd92fcd89e1c306bacd5d58d7f2f364d0df24bfd034ddd150215419537c7af5edbcf18da75eab1e77a5aff3a8140526fe527a58e'
                                                },
                'config/hank/hkzw-ms01.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '8a04fdaaa929db3866654b4b01329d13e3e32c449f711b6e23d78ab244106238ab73695e9a7002a80e203934bd1db1871dd6e5541dd944ac44ceb72b6c946d2a'
                                               },
                'config/hank/hkzw-ms02-200.xml' => {
-                                                    'Revision' => '2',
-                                                    'md5' => '412110b25652a63fd8fa53a0e8c465f8d73a1f1a8ee3af7c2e989e7446e6ff70c577af28cc953059312bac9dcfadd5801e61f2669d723c0991534084eac07344'
+                                                    'Revision' => 3,
+                                                    'md5' => '5b89e6e05015240d4ffc671f8b880a0c37dcd4e015ba415cb1e73f593bce38af3cf03c629ba543ec797de41a12af504c06f112db7e85716a07605ddf61950d14'
                                                   },
                'config/hank/hkzw-ms02-300.xml' => {
-                                                    'Revision' => '2',
-                                                    'md5' => '7e4f9dcbe624e04301dd0b7363747633902930c2a1f59d832bdaade1b0c76b5f0b22287275db2d2bcd301c69993a2800f4db0c92ce52ad7cb4fa40a680687c97'
+                                                    'Revision' => 3,
+                                                    'md5' => 'fc42fa3347826206318fe37b5283d667abc1257b4cf36084d41b876e90155b342b2773af6bd836954bbbbe14002e1346e5b42f39e412a1a347169dc5c947a782'
                                                   },
                'config/hank/hkzw-rgb01.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => '35476c9eb132e78674d3e0fea1f757dc4508e0c390362b42fac1670fc6398078983b5253de0cafe95c081daacef41896bc760a3c50dd89905f7bf070bb991e01'
                                                },
                'config/hank/hkzw-so01-smartplug.xml' => {
-                                                          'Revision' => '2',
+                                                          'Revision' => 2,
                                                           'md5' => '9c1ab32ee4af6cf8b1d7d3437a9d031861d48952c015fa6fbe2e8c54940c45a718fc669975691a32eb53c78f1acef8dd231faaaca643fd1b22158c5655269f8a'
                                                         },
                'config/hank/hkzw-so03.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '3340deb59e1570b2c07fec06e4b13cf1159a9274f6b87fec2c846388ef9f47ca9a3bf3af2d306202d84e0b24adb226969f9ab6f7f0e7c3a5c916252b1583fea7'
                                               },
                'config/hank/hkzw-so05-smartplug.xml' => {
-                                                          'Revision' => '3',
+                                                          'Revision' => 3,
                                                           'md5' => '6dc4cc5e720bb5c534f25510f20c134baffb3d4b1f68704d397bab9775b6b14397471dee6469f230ecb81afd79363837589a531be926a7d3e789e82b4c1c5a83'
                                                         },
+               'config/hank/hkzw-so08-smartplug.xml' => {
+                                                          'Revision' => 3,
+                                                          'md5' => '825fa7c75df29cad9ad3d2556e2b3c3eed5636ee0a4b2ca3af5eeb0542908373eac082b2db0839ec362d18332842add4fc09aca713629fed8c092e9dcf576fde'
+                                                        },
                'config/hank/scenecontroller1.xml' => {
-                                                       'Revision' => '3',
+                                                       'Revision' => 3,
                                                        'md5' => 'e748ff7ae3bb3358e80b863cdea2103275dbf536edbd538963502c7629aaa623c49b562d092cfbf4db17f7fa2f4b191223ad1e9513c86b58b937eb6504145f7c'
                                                      },
                'config/hank/scenecontroller4.xml' => {
-                                                       'Revision' => '4',
+                                                       'Revision' => 4,
                                                        'md5' => '25e5e4f19385dc44c8d33dd0372837fd2befb1d12b5bab7dc74027a3bc12875e56afdff854c363cb0bdf186aee0f5717af03b6c62f77409bf365176c9e953aed'
                                                      },
                'config/heiman/HS1CA-Z.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '7a20a77d2c2c7633b0a116d68c59325cf1da6cc57f83845d9927212b5864804f0e485775c317ca4728cf901764622507abed325542816aa4ec62b36cdd0db10b'
                                               },
                'config/heiman/HS1CG-Z.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'dfadb2f28046d15b412034c106537d03bff4b224c0f4c4808d4af54f5fe045995cc31b1f289c215c34288ea10a82df5a7d9b26a3a20db67859d346a405a55136'
                                               },
                'config/heiman/HS1DS-Z.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '210a2d51e707e26c6619428919e5e44694c06e15bb2b111a1ef5f499a3f2ad2c4c99fd07482b824ba3dd7d95ab9e2b5219ac1805c1566a52f3ea1a88b6b7fcc2'
                                               },
                'config/heiman/HS1HT-Z.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '1331770135d4050f99c83dee86a0e55f0dc59bf51430f083f2b7ceaad3ea32851b9a915f821fda1fd4b618041bf82c5afbe9cd7f74c0e5b73d0f5d47450008e8'
                                               },
                'config/heiman/HS1MS-Z.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '0dac77cd6892ddce000c77485c595ee219aef2f83b3e7cfa641981b37e1476bea55855120e19ca80c302e566c58c328e94148ea03e734f8f4d40f862c6e6d6f4'
                                               },
                'config/heiman/HS1SA-Z.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => '217ed29fff544fc5a36fc5d1b26334b84725ad6ff6181e7080731f7dd5c37ebc8d079e37e70e5cd50ac87a014066b84978ac3b0d7b080dee55d12fdaeb8db019'
                                               },
                'config/heiman/HS1WL-Z.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => '6821d6247218a026a8832f72df5c2b3f76abd2b3b95b18302201c5bf7e0fe1fbc22659078056f5188a42981304d635088e2018c5bea98565c19a45712524cbd5'
                                               },
                'config/heiman/HS2SK-Z.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => '2717377bdd18d9b510f85c815d842930080a10ee319f64a43241b2cebcb8b7a2a81628ae9b4aafa95719c3d0530eb17e75acac1a444446a14bb829148d7d2bef'
                                               },
                'config/heiman/HS2WD-Z.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => 'c2ce7171aec99ffae507edc6bf9aab24ccd539a25e162c93c410cb83404899bc33956bc3b50aadea0adbc75acbc0e1a655f92b4496d0d2b725b784880e7038c5'
                                               },
+               'config/heltun/he-ft01.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => '3cc642f60cce237779dc4e824780c1d4ed36ef5ac691e3cf338f7821338f939723210c56fe7ee97719697ea903162d11d79ea95400c374281b9ddbf2421b16d7'
+                                              },
+               'config/heltun/he-ht01.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => 'b21edd812c1fb609541f0a740e6d80595aa28b17d8ea09b2ae8337c19bab8d8c1377eb435afbe80b6145bb1923b51f700ce77b354baa050075b8091b2847c1f3'
+                                              },
                'config/heltun/he-zw-sw-5a-1.xml' => {
-                                                      'Revision' => '3',
+                                                      'Revision' => 3,
                                                       'md5' => 'a4f75b095ae18579fda4a9a5d857466ed83fb0d8a3679945aff2ad419c72c5b96960db4aa84168911ff0cfae551151b38e95a4156782854a9ea3a0db5576257d'
                                                     },
                'config/heltun/he-zw-therm-fc1.xml' => {
-                                                        'Revision' => '3',
+                                                        'Revision' => 3,
                                                         'md5' => 'c819a5f9e0f64ab5bbde2ad1754b7e9825564f6a7b2b1e63f209c711b43dc5445021c59f36f0a06d4970ee315ad8df1899c74a7934f94a373448aa2a3cbf5bc0'
                                                       },
                'config/heltun/he-zw-therm-fl2.xml' => {
-                                                        'Revision' => '2',
+                                                        'Revision' => 2,
                                                         'md5' => '1eeee37ed56959421b124f96f69dbed1fe93ed0b230c2b6e0a133bcbb1bc34b4da975ee6f5193e793f46da217a1c0ef81d132f7ec0b8571289e284e98e42c186'
                                                       },
                'config/homeseer/ezmotionplus.xml' => {
-                                                       'Revision' => '3',
+                                                       'Revision' => 3,
                                                        'md5' => '8d4ea274a67cfc24dd3c20205bd4e2fc8133233ed99fbb2596d7162298c0ad4ed07ab327356fb5a07e1424d6634de27227bc03b70c7a9f06754f82360d854537'
                                                      },
                'config/homeseer/hs-ds100plus.xml' => {
-                                                       'Revision' => '1',
+                                                       'Revision' => 1,
                                                        'md5' => 'bf724e9e2f52776c8837b1a46d465d2b20bdab25733b1775d8665e00329c82f1b9a194a5e6c2539df754abc90e3c83b6044388e1e7019b2820f9ea3c63e64aeb'
                                                      },
                'config/homeseer/hs-fc200plus.xml' => {
-                                                       'Revision' => '3',
+                                                       'Revision' => 3,
                                                        'md5' => '2c8076f31efdef00d014a58a4acc35db4e256175c57e2e93c3db183c66f52fe7a47feea880c2cd8723883fa860a540b81bb52cfd17c04072b7b9a5a6e06126c8'
                                                      },
                'config/homeseer/hs-fls100plus.xml' => {
-                                                        'Revision' => '2',
+                                                        'Revision' => 2,
                                                         'md5' => 'cdd48d1045234e40dc257caa0df6eff883426833bb19d55587da53b78e9362eae2699f3cddf4b25f6aefbab24d06c0fe34ded0c7bd12b03853a2c965193a754b'
                                                       },
                'config/homeseer/hs-fs100plus.xml' => {
-                                                       'Revision' => '1',
-                                                       'md5' => 'f22c8e1b51b207c4dedf156b3bfc76e5577dfdd650eaaf96ee51952d5e42a555ab1b827f449be147bfc17fd3979f84356fd19d3ec4ed66c5dc3e639ee99afe34'
+                                                       'Revision' => 2,
+                                                       'md5' => 'a749528efc1e275c53dd5d2dcfac7f005798172775756a54676b25c732cd22db548d4c3ff45118904d08c3d34f6c4195a5528fefe74a98b13395d87f93336bdc'
                                                      },
                'config/homeseer/hs-ls100plus.xml' => {
-                                                       'Revision' => '2',
+                                                       'Revision' => 2,
                                                        'md5' => '05e3aaee1cb368211d1e4867149f1e914bdd7d5da5e558bccfc9bbd60180d212ad0c76b1b95095bebd074e2ad64b52e15e893ef65c73e765873f0e73219d8a25'
                                                      },
                'config/homeseer/hs-ms100plus.xml' => {
-                                                       'Revision' => '2',
+                                                       'Revision' => 2,
                                                        'md5' => '528e313dab27daf86c92e7ecfbf311077842bdff72f662c308d0554a308691b9a9c5830bc08dab5a4860991053c6a73b05d5c21f1cf115a8c70c873adeb27a5d'
                                                      },
                'config/homeseer/hs-wd100plus.xml' => {
-                                                       'Revision' => '7',
-                                                       'md5' => '58dc37e456d17f71693c819806d931e2e71fa36811e384bb225e9fac00539a80aa0df1093c5b48a0b8c58de2bfd6d1e0bf3f20ff9e8aca331d6530962fad0240'
+                                                       'Revision' => 8,
+                                                       'md5' => 'dd1aeca42ff3c3465442a45a0da960632ea52301b5514cceec9e4d58b47a8fc18e7ddbfb1fe06b191ba10f32cb91d6671e125bde7ce8e99e5603703124b29f0b'
                                                      },
                'config/homeseer/hs-wd200plus.xml' => {
-                                                       'Revision' => '2',
+                                                       'Revision' => 2,
                                                        'md5' => '25187da0fac3b2752ece5aa716e0a883577782ece97e6bfb604faee0c2155690ffd837ac0ed19afc00cffcdf2145b260797b3446620e12f4ddf3dcbc7d34d818'
                                                      },
                'config/homeseer/hs-ws100plus.xml' => {
-                                                       'Revision' => '4',
+                                                       'Revision' => 4,
                                                        'md5' => '8dc36ef5c448b933464a3541eb156b4f9bf8c99b87f1e117ac1b881056b2cf03ddd53a7a6535a7f88210956a15c51ebce71dd5bf89daa9daac3ef2e27880e727'
                                                      },
                'config/homeseer/hs-ws200plus.xml' => {
-                                                       'Revision' => '2',
+                                                       'Revision' => 2,
                                                        'md5' => 'a34e0e874f7b7cf55801068535eea231f80ffcb6564c1a6e3ef4fe41c7da677c00340d456f4b79a413e657bce7b8847b6d7f5b293c7a8a0309713f1cd3872214'
                                                      },
                'config/homeseer/hsm100.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => 'd3078946530995d9f5cf1fc432617617466d8d100a3a368f619bf4762c62ba852d20a4c0b9c19321805995f4f3b15d4bdf98efe3e4c1fa7addad3aa6cfbcbdb2'
                                                },
                'config/homeseer/hsm200.xml' => {
-                                                 'Revision' => '5',
+                                                 'Revision' => 5,
                                                  'md5' => '05846519da65becb8e4d36ef93040bb190fc7e599e11dd1a82619a7abde98fc3393d80f08160d74911b0090925c4fe04d419628cb278feab92c586262bcd7be0'
                                                },
                'config/homeseer/ztroller.xml' => {
-                                                   'Revision' => '1',
+                                                   'Revision' => 1,
                                                    'md5' => '46f0c29d16537254242bd4458489767cd57709b2d0c5faf5ea6ba92778d35362c72e998352a92964c67c81b9b819d66cdac55131154028d5928f0842c96f920e'
                                                  },
+               'config/honeywell/2681-plugin-dimmer.xml' => {
+                                                              'Revision' => 1,
+                                                              'md5' => '45efb5ee352873cfb38af888b7cf532cd87108438131ed6b0645c2950a87429b560ae6794d48a58ced064ab46a9a32e5cade299a09bc49c30991df77b19e2f3d'
+                                                            },
+               'config/honeywell/3830-zw3107.xml' => {
+                                                       'Revision' => 1,
+                                                       'md5' => '198e8c84e3e9a1689bc73ba0f35ab36fff0960580f9e78adb75b89af347c834abe53237dce5817a328eb7b7afcb5f4e4ebbf44415e05c2d78749779c04b3d486'
+                                                     },
+               'config/honeywell/39348-ZW4005.xml' => {
+                                                        'Revision' => 2,
+                                                        'md5' => '4d97e53273d973cc3207b3b9e19900a17cb13363ad8e82cfd055ad990604ee19a08128e933ab41be50016a933f83f1b8e4568d562b84d6fd523d76fa8b477861'
+                                                      },
+               'config/honeywell/39348-zw4008.xml' => {
+                                                        'Revision' => 2,
+                                                        'md5' => '9770a4da93a9a3f137296f4d82f7267a3e759c65f02c57c2d7f8a77311ba07f50ca738b94dcdb942183ca924b4629e4e6581971329911113df979fc69552d94f'
+                                                      },
+               'config/honeywell/39349-ZW1002.xml' => {
+                                                        'Revision' => 1,
+                                                        'md5' => 'a2fe0efafeb8f38685cff7e6fe32cbd5e9085c21b3c4901c568e085b56177b555478dc39a5db6668060d4da7bde6c6cfa678f55fa2fdd81e0a1a488d01be662c'
+                                                      },
                'config/honeywell/39351-ZW3005.xml' => {
-                                                        'Revision' => '2',
+                                                        'Revision' => 2,
                                                         'md5' => '9bcbbda3dbd837836905a4d6601aff515eae4bd452f5cde4676c490e04d92eabb04abcde02f5157a3f41fcdc3279ac87ca87b7d73c2b422e5e3432a51f140cf4'
                                                       },
+               'config/honeywell/39351-ZW3010.xml' => {
+                                                        'Revision' => 1,
+                                                        'md5' => '630d49e09812d18cc61f9def5003fca12afef551ae845c537482305c4da9c47990d8c8b15a98d235b9c66e857f2aeb849ed1581c3e8884eb8afd34b1a0903e7c'
+                                                      },
+               'config/honeywell/39357-ZW3004.xml' => {
+                                                        'Revision' => 1,
+                                                        'md5' => '8fbcbc2963a36423b42e7dc2938168c5ae752eee37b35f0205ed4d2162f372e58d646bc8fa794e19221da9d3a0c39659cd4951cb5a30310f9ef7969af1fca9a6'
+                                                      },
+               'config/honeywell/39358-ZW4002.xml' => {
+                                                        'Revision' => 2,
+                                                        'md5' => 'f5b66553b75341237286f46e2c1d7665785f41ceb276a0caf152012ae06957310ae50b52c6caf955c188bceb18ec1ef4b1dda8a440f25624d4c3a668153aed5c'
+                                                      },
+               'config/honeywell/39449-ZW4106.xml' => {
+                                                        'Revision' => 2,
+                                                        'md5' => '63bb116001f13ab496d811c8835018afde8421fd5b4856069d1dc00461d0b6b5e5bd254cc6721dffe5c51023829f64bbb1d41d2e1b2047729a508e1a44b37c94'
+                                                      },
                'config/honeywell/lynx-touch-l5100.xml' => {
-                                                            'Revision' => '2',
+                                                            'Revision' => 2,
                                                             'md5' => '530fd1b4c43248f55ab6bcc788e80bda83eeeafa515f8b812e07b1f507399f163145ab3337d8f26d6bd7313de6028ad13502c7ae2d07f9b4ea8b4ca730cab0c0'
                                                           },
                'config/honeywell/th6320zw2003.xml' => {
-                                                        'Revision' => '3',
-                                                        'md5' => '8a0acbe77f563e0aae7ff5ad345c82d385af65bfa46d4b846209cfc03c49bf6c2895163092c1be788cdd17013cc7cf0dc74d8bb3c8e750546ffe9da63120e2ca'
+                                                        'Revision' => 4,
+                                                        'md5' => 'dfa3a4d3afb7baf806b7c97070e9c654e8a0f022cda21ad9c5755c1d6dc1f36700eb3137a4f77e61ba61a8323cae7c9779ff7a7dde49a84da0d27cb306d76f5b'
                                                       },
                'config/honeywell/th8320zw1000.xml' => {
-                                                        'Revision' => '3',
-                                                        'md5' => 'c834e9fe6e66d30d708b4c1861d2f63fab2a8d43680c9ac9a626be1a87dbccb2c30767fbcd72d0aac4d621df6a0c41e3c7c668e95c95c848a538f6943548cafe'
+                                                        'Revision' => 4,
+                                                        'md5' => '423c31e6fa2354ee987cbe7fa2d8f406ae04162bdeb1852eb8ed4c9f88790cb292fa4429488cc395368ebfa139512e6c4f1d24ad2467ed3adca0313fca5590e9'
                                                       },
                'config/horstmann/asrzw.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => '4972230ffc90010107288b9772b20daaa43d45ed5a3d8bd76fa6c29feeae2922e12a428a4069d0c6de3fde2faf09bcddada6240b545f438f5023ef2cb1489292'
                                                },
                'config/horstmann/hrt4zw.xml' => {
-                                                  'Revision' => '4',
+                                                  'Revision' => 4,
                                                   'md5' => 'd9f875c619feaf1136bc76eada1cd63a3c7396d6fb8d4b50c2515264eca723c0420d7afb58290a8a0e2c4f7b780c154ffddefc411e64cafeeda941494b3702f2'
                                                 },
                'config/horstmann/scsc17.xml' => {
-                                                  'Revision' => '6',
+                                                  'Revision' => 6,
                                                   'md5' => '689b01ced1d29a5cb443a11c222de099c2ea19ab4d355d3274c5610f0c8356940bb3d97df684bbde76186483ffc7e25af3b5c3df173ce9bebd207a9c3509fe1c'
                                                 },
                'config/horstmann/ses301.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => '36f2fdaff9dbb847944983cdd4d542db17602846822d67541265a3bf5d913cbb82b05c7e9c964948a5298e145223820ba029936d990eaf66fe3c2a124ee854eb'
                                                 },
                'config/horstmann/ses302.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => '7b929c04ea087fee4dd1c2ec08385d8587f3c5bc7371c684f1f8cdb5bc42c9140a0fa496cd2742a611301f7231e39780f9f3aa2848d52da5f730eb778926769e'
                                                 },
                'config/horstmann/ses303.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => 'e8ba07277647d361613657702f2c181c3092499e561aafb2c612ad106151609487a39763f477a996952daaf8e5ffb3db810280dac73eb77d2f1cc239d7af6bce'
                                                 },
                'config/horstmann/sir321.xml' => {
-                                                  'Revision' => '5',
+                                                  'Revision' => 5,
                                                   'md5' => 'a3f4c5fe213ca7ceafee96eae84b01c8146f72e3e5715e8a0d9added2bfb6640a868f91c7e743172df177ac6c61d237112c82768419a8ceaee2305efad80776c'
                                                 },
                'config/horstmann/srt321.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => '322c5d1195a2aa4de8a792befc4103f048280c914a6bc0d237a7dbec8d14a4ec26cdea4274082011a041d88ec22fc288b0f856719cf59fe343b9b7094861c386'
                                                 },
                'config/horstmann/srt323.xml' => {
-                                                  'Revision' => '4',
+                                                  'Revision' => 4,
                                                   'md5' => '8585cef3b015848b99920976e699e68bd519bca47fcbd11c6059d04a3629ca99428119965cb060848f1b2eaec49052bd8a4c7a537c083769dd30c132baffdcc4'
                                                 },
                'config/horstmann/ssr302.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => 'b244edf548e853864c9698958e440fa7e4436c63806296e39b2f70ddebeb1dc591e7f13456edd002911ccc5f945a8fd14b2ef9f18f4663816371a17a424b5027'
                                                 },
                'config/horstmann/ssr303.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => '9375b06248963dddbb3bc64fbff19537cc4ef6e4c4e7fe946ebc8a40280ea32217104d2ce4eacc12449e9ea3f943aa9e38447d18215bf2dd1cfd40c242dc73af'
                                                 },
                'config/icare/zw-66.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => 'c35e93e83039a1eb91d700668764769e8117761b626b894f4fe18435db4c12e95934af23cc5983282c49f1cfd55edb397b84ee5ec05fbdbae7805e0df4b42ffb'
                                            },
                'config/idlock/idlock101.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => 'f9fbf4ae903cdd0ee79fd4e11621453ea66777e729e85d437bbe76892984eea29514b93574f11dde87c478c05122c4f125639e44753dca567cc597b0c79d38e0'
                                                 },
                'config/idlock/idlock150.xml' => {
-                                                  'Revision' => 3,
-                                                  'md5' => 'fb0f3c54e2ebb95fa12f98ab7390151b803b89f239dba61fe2cf64a14c8c97de916127408348298e85d5868e981da2919864d6a8d06be23463187d808814ff75'
+                                                  'Revision' => 4,
+                                                  'md5' => '4e8b8082701c3a3137ced8f7636c82058dd9b9942f28125b6dd1d3c3147b7c01ff8c15c982f0781e1fcd4089db341506e318dbf1066d7e780caa2b7a0b3fdf40'
                                                 },
                'config/ingersoll/dwzwave1.xml' => {
-                                                    'Revision' => '2',
+                                                    'Revision' => 2,
                                                     'md5' => '7fe244aa57c478f25638817f015d2d5d9f83a6f971014de80242a25fd94a35c1e98d3bcc0ad26b69a0677df64993614ee58ae7fe60e6c8af1afe713d4a152f71'
                                                   },
                'config/inovelli/lzw30-sn.xml' => {
-                                                   'Revision' => '6',
-                                                   'md5' => '7c5190dbe0d7f2b8afe3830b1d58d0ff9a784b877e2927fd1e6716a6faf092895fcf3b77c1c4942f53e62f815391cd967d9b1d772951ad1c0f5d77a224382715'
+                                                   'Revision' => 10,
+                                                   'md5' => '8b68e4082fda4419b715a2c8f7cf7daf97c9b71303ca5cd30ebe42f856e7d40d076eda2525c0c628e4b07797ad3165e87cbf996a73f29a53e9c53a76862d933e'
                                                  },
                'config/inovelli/lzw30.xml' => {
-                                                'Revision' => '5',
-                                                'md5' => '8208176e7ccc83f4d3844e46f9779deee793a2be79c9b4d67e0106eed0a92c6034165bd008f6df4b6a5c8a0dc2d06e751b2de2904bf603ba70ba6ec7b928de0b'
+                                                'Revision' => 8,
+                                                'md5' => '0287fced6b4962a11846d14f3dae6005ea4e7a530b61bfcda8769cb81878ea2603a9d1207efb8103771ca10f539d3f1daa103f8ebbe8178d9f138b9937202424'
+                                              },
+               'config/inovelli/lzw31-sn.xml' => {
+                                                   'Revision' => 5,
+                                                   'md5' => 'cd2c997d830c5e66cb1f23856e6e60399b811a8489f1ec94a9d3a5edf6f65047d9105d8cf59709db0890c0140562cee4e88f19ba8b6afdf4e2587cf87e5863c4'
+                                                 },
+               'config/inovelli/lzw31.xml' => {
+                                                'Revision' => 4,
+                                                'md5' => '7fa5513084ea2e9c7231c1df9d2e912a6ba0d472115922a1db29f6faae6027b6a4b1ef4aa82eab3f52fc1aa1d49fdb549eb8a2bdfcb40564a9b6ecc6c5798921'
+                                              },
+               'config/inovelli/lzw36.xml' => {
+                                                'Revision' => 9,
+                                                'md5' => 'fc8d2062384870d955f1711fff7c3a3e4207f444da331210e57bac51147af9177bb7f03c2bc89a4c1f4aaa24fb17611fac637bab760a542b9ffd743e68ffe192'
+                                              },
+               'config/inovelli/lzw40.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => 'ed5fb8ad83529a9bf8ec71eab474c84c1816b671ee40b3abf7e8d8438b909e808207d888b6401e28fb1e52a08aa244d5c37dbce11fba6b7cbbd3671261b879f6'
+                                              },
+               'config/inovelli/lzw41.xml' => {
+                                                'Revision' => 2,
+                                                'md5' => 'b21fa3dee3a882e4ff7e95b446fd95f286857da87d83a273cccb03a536fa7df321f37e2f21c51a477b8a900f9e6b7e61a6b1d313315eefe5d8122654b9b315b9'
+                                              },
+               'config/inovelli/lzw42.xml' => {
+                                                'Revision' => 2,
+                                                'md5' => '8a255b9f1762edab6edf809ac54964910f02427f3c215bb1def2741e8737b5479eb7ae3673be4f222558f3d70af66e3394ba16958dd9cb1dfd3e3b0c57122aa1'
+                                              },
+               'config/inovelli/lzw45.xml' => {
+                                                'Revision' => 7,
+                                                'md5' => '06c8a460ef78d26a073341a0561641b98f7bb3b1cdd95e56b1f4ad7a28ab34ca3930a232ba023307090017e1fe85d5d83c8d3a0b0fb93dd4050a81c1f48e972c'
+                                              },
+               'config/inovelli/lzw60.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => 'd279c5b9dee85d2886f21b484af5ebd146c8189e480b6b676da38a0a3545c08194fab6a6c0b6c4de8f3cf145f2906d774af4bc703cb2dab9815f8d53f05c8b01'
                                               },
                'config/inovelli/nzw1201.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => 'f5789891f9adf7716e6dec82b5764c2869b48fc626b54b9d7bc8eb894368b980c6831073858d82a6155297b4349fb415d39fe4e8a9680cf163802d78fa9e6eaa'
                                                 },
                'config/inovelli/nzw30.xml' => {
-                                                'Revision' => '3',
-                                                'md5' => '77be34d9bd689e34ca3922e6b3bbbd05412afcd2a7d72d8d6d0966920213c754a9a5491692a76bdec0ffdaf5bb044fb8b178c942aa5c2cf0ca86c9d0373ba95c'
+                                                'Revision' => 4,
+                                                'md5' => '8f9ed256dc1f56fa42124713e38259ad5ec3a332d51ecc51c99013af7e036cc3b217033a2f9344737282dbddee796fe08975dd15e8e680e619ba21205b1d0f27'
                                               },
                'config/inovelli/nzw31.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '0b7cb44c57753cdb1714aa7c46208531ff22bdca23f6610e2e662f513254936e447ca0e3887be691c31b8f372022a3b76898672267ae1d902131f4b1501611a3'
                                               },
                'config/inovelli/nzw36.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '4e2139c9e4c8625789aa15d8238e35804afa8673d2f8e48397660967b30779a60607ef77a5c76bb72b28be1ee6360bb6e34e5fe8f6a3a391a6379bd49f0f7209'
                                               },
                'config/inovelli/nzw37.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '7c78fc3bf2e50059c24b670adaf755477793fad06821c57b69e6ef554b12bec45940976f6d5a7b4c41d34abacdfd99e5dc2df62154f80f2491ce1935886125b9'
                                               },
                'config/inovelli/nzw39.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '4e2139c9e4c8625789aa15d8238e35804afa8673d2f8e48397660967b30779a60607ef77a5c76bb72b28be1ee6360bb6e34e5fe8f6a3a391a6379bd49f0f7209'
                                               },
                'config/inovelli/nzw96.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '668e2faf59ea80cfa66fab415a51bdc25116458cd9666c3a1b9cbe4931f0e6a4fc22fe48d0009f7d152e194567718f3577f39e78b9593e54fa7cc74400029dd2'
                                               },
                'config/inovelli/nzw97.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'c175f8a9765bd1411d594988c61846d9f77fbd54518f714f94db99ad9214dd4478003dde586a139b59e54011a60a0313967efa0a7bf0736eb5d2dae565a71264'
                                               },
                'config/inovelli/simple_module.xml' => {
-                                                        'Revision' => '7',
+                                                        'Revision' => 7,
                                                         'md5' => '2fb8a975ffe9bacac544ef535b9842f50aee91b1228bd18826b864e6f9d585bf7032c2990714b392d20b3013a04c470edb7922e5f4bedea1756603be824b3650'
                                                       },
                'config/intermatic/ca8900.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => 'b2c96148fd6c97c1e7a0d07126d2a7a497b49b56105e00d311dcf885d204f44bbd0673a15b0041c894098cca56b8ccfdcb072946557bbd64877552beeb0e21c0'
                                                  },
                'config/iris/rangeextender.xml' => {
-                                                    'Revision' => '1',
+                                                    'Revision' => 1,
                                                     'md5' => '771dd895b5d6868c5a2369b1d77f5a567afba312662421b8e9b6430774f7573962fa3a89b2395b48acc6fe9512fd2da3957698af39ffe9196870802b10fa1aeb'
                                                   },
                'config/iwatsu/ne-4ct-2p.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => '76e62021a25d51d9fb8963ff4a6bb5bbdf2409e858c95944320cf3a8d0b2100ee4960a1cd404c75617c7f75805c0b27901c43b36b4358173ece6695cd0df6d7f'
                                                 },
                'config/iwatsu/ne-4ct.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '81f5f32ba61a8f41ba1770f8859e774d36ffb27d3508989e2ce7db5fd3335c202293881459e87d9fd9e48957bb0c1035045937e33489ca9a1ec9e9cc664ef04b'
                                              },
                'config/jasco/45601.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => '1f93ef3a4b052f0280b54d95d2f91b8845be7e683d32cb5410cd6cf8c9928642c66450fd0f1d10a42523b21a2e114f8be667775c52418108d717b369adce0d08'
                                            },
                'config/kaipule/im20.xml' => {
-                                              'Revision' => '3',
+                                              'Revision' => 3,
                                               'md5' => 'a9b5df85ca3414019c366a874650c0dfc9c1f70f85d5ee75be43b07e6d13204239a0be9872be4cefb12cae00b3a209bbe4361cfaa47355f48be4405c1756014d'
                                             },
                'config/kaipule/ix32.xml' => {
-                                              'Revision' => '1',
+                                              'Revision' => 1,
                                               'md5' => '6c73035dfad876c339cd6433337ec8b822da99ec5e4cee641f7c0bea712b18118e58243764df11200aa7745e1ef4fbe38b77f3df17b8a81ec7bc1350d379d57b'
                                             },
+               'config/kwikset/888.xml' => {
+                                             'Revision' => 2,
+                                             'md5' => '8e5c2437c10c94ecf8fb026f9e028a0cbc4b3709ce15d7df37abf9e777478436c2fb1feee5a935d8a41e98f1e9adc52530a2f702d08a8caaa80e33b5bc486f5b'
+                                           },
+               'config/kwikset/910.xml' => {
+                                             'Revision' => 1,
+                                             'md5' => 'fc4d9468508bb971bd24eb0e6b658e08760e04b60e23fbda089a1087e3fd167c92e994ee8c344e8317a5485d81821ed0716f3c2d9dfa21e74ae79785a6eb337b'
+                                           },
+               'config/kwikset/914c.xml' => {
+                                              'Revision' => 2,
+                                              'md5' => '5724dcb1df68c2809fa3136f2fae556df59be5c75af1fe8283b3aec92239a422f36180f55aafe0589333e759e89b5d1d22b02f10fa0caa27d44b8f1b0f5edf18'
+                                            },
+               'config/kwikset/916.xml' => {
+                                             'Revision' => 1,
+                                             'md5' => '4f011b843c8e07c72cd0af17a0b4ec1fa8764fcf8ea9e9106a283cd3afc7aa99d8c890ec0429bdae05fef29af0a4f9ba0172c8cce9faf203e774837d6d4758a4'
+                                           },
                'config/kwikset/smartcode.xml' => {
-                                                   'Revision' => '14',
-                                                   'md5' => 'ebdc34b0bbc28dfe0fba9a646885a4f1311664b85e267dddf02cdcd3f7012ce915f2c4ee8a88fe460e804c8faadfb6e03bbd691fe767547de0be4ce8fc8126a7'
+                                                   'Revision' => 15,
+                                                   'md5' => '25b10ac756242e227b2772b31101c9dd64a27dc5250b9923e8eaa3a56880911455af70bfdf8254d3d349ee9ff5b1f0d4e0339ce3dc143b66f602b0f43f568d0f'
                                                  },
                'config/leviton/dz15s.xml' => {
-                                               'Revision' => '4',
-                                               'md5' => '732a89135dc8ae080edff82c4662d60b69b1e94980c01e6a3201dd91ace0ffc58fd61bf621317410476325f304be2d78688a020a0f89a1d0736893232a6679e7'
+                                               'Revision' => 5,
+                                               'md5' => 'b7a57c24f9a19bc37086084b95a1bc541b8425f1877883e69e19008b41ee08ea0e9dbe854c9a2bb4e72d42f5972eb74eb768513d62a41d5f903e431cdef4bcb8'
                                              },
                'config/leviton/dz6hd.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '48977e685e55b815ff14870d049d84b7046fb76e55afff21055e6374a612971eb43f9ce51aee02f763b17cb77893b33d37abfe838af55b518d045ac2635ff2f0'
                                              },
+               'config/leviton/dzpa1.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => '44eab79bb9fe2c858b333d7e162c4f62258890cfa3ac7751ea5c7256bf2008421faa0bac4651fe03f33cf467fa7f872e3b38c2b5fa97a8dd902451977c793769'
+                                             },
                'config/leviton/dzpd3.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => '56d3f1600de0802f82cc66f25306024d84aab6539f74cc12062304bb9975d5b5d605ce6c88e3b4112a68f2673c76a5a525e91f83a8ae0d6ecc487b7bd16f86c3'
                                              },
                'config/leviton/rzi10.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '2e49f23a2cb4569ac6c8d82cd0d1c1fdd9384c94a9929b4479ed8f2db6fd8c956e96a7d36bf0a32da77957afca5b319b55d5129e973345195b610b21f18a3249'
                                              },
                'config/leviton/vrcpg.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '2e49f23a2cb4569ac6c8d82cd0d1c1fdd9384c94a9929b4479ed8f2db6fd8c956e96a7d36bf0a32da77957afca5b319b55d5129e973345195b610b21f18a3249'
                                              },
                'config/leviton/vrcs2.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => '6163822e432a74e1bbf1114ca11e810e550c4d90ce454b7b3a924af3db6621d047def018dd3f48ff11a91bdaf0e9586c8de34485c884ba6c7f19db7ea64c5752'
                                              },
                'config/leviton/vrcz4.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '496680a38f17174dfd6926dc45208c47f76433505227eb1952aef4d52af714a0b3401ab43a5bd9d57acaee399c4db2209229ef78bb8b5884c9cd15e009c8d8b2'
                                              },
                'config/leviton/vre06.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '2e49f23a2cb4569ac6c8d82cd0d1c1fdd9384c94a9929b4479ed8f2db6fd8c956e96a7d36bf0a32da77957afca5b319b55d5129e973345195b610b21f18a3249'
                                              },
                'config/leviton/vrf01.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => '3a0cab86c66acc518d174cd9d09e4dccc6a7475622fad1b1eb7774840ec4b7e10e3e134c8047a37eab8b2eaaf325f759f18b0f28863a340ed0e3eca82a6f7313'
                                              },
                'config/leviton/vri06.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '2e49f23a2cb4569ac6c8d82cd0d1c1fdd9384c94a9929b4479ed8f2db6fd8c956e96a7d36bf0a32da77957afca5b319b55d5129e973345195b610b21f18a3249'
                                              },
                'config/leviton/vri10.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => '9fa98d67f20fb67b25548993f0d004319d0c2978465226c1ff359a2dbf6a75919484eeaf45ba1a78c7b8ac72191538e5e3ea36e4f8cfa392eb0e2b8bf8a0e0d5'
                                              },
+               'config/leviton/vrpa1.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => '4444a13410fde75516d45b600d68209dcbbb9fcb9f2506a135deac78a9183882768a4511e599282b3a85a0fdb51278053fe1d022332f4d1c84034ba3e8241810'
+                                             },
+               'config/leviton/vrpd3.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => '366fe2489351c4de06bacb6c212861d56959e4b2d9cb455cce9ce3b2efedf7aa1f52c4c6ef22f29f70cc76558ed6e7b92bd349a19dca045f79ce294ca93728d8'
+                                             },
                'config/leviton/vrs15.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => 'd89c5ecc71d6fabce275e8cda97edc9d42ba989269c1d4046ea530280ce5ca5d941956538b1f224030a6f34fb007b25d680c2c7570d6c088dd0e763e04f379f1'
                                              },
+               'config/leviton/zw15r.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => 'd0ba74846bbb01a3c552944cc6e5fd2122479779f26a6e94472c1fdf866342d44cb57ea3fca7134979dbd82fdccfb8a27837dd91fa185f7e7ff804a9d4d1cbea'
+                                             },
+               'config/leviton/zw4sf.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => '4cf229a4bab0b12de915d005488ecf28d388a875266615b94a690442458b98c09967cb8558762065abfb2dd9558e0da294ccb5152b213f7b3958c4593d80ebff'
+                                             },
                'config/linear/GC-TBZ48.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => 'bae62218e942cd6e768c236ca9d90864f53afba4f142fb30d2d399dbc5ac864a6b2ec94f371d4a845774db0463d00d45d6faea7c272b593bd04c706ff578a69a'
                                                },
                'config/linear/LB60Z-1.xml' => {
-                                                'Revision' => '5',
-                                                'md5' => '7af77dcbc2dfec7eda52a38d8cd7042444141b0ad8f48cf29ad69903e4b0f609e6ccdcf042e14651c7485211aea9c07898a09ec9601f68df64f1ebf91fdd9d95'
+                                                'Revision' => 6,
+                                                'md5' => '8696980f7aa7f96a1c5b2be399c0093b306309e668d3be229d64891d2fb19dc3c95dc2f084ca6ed45a2c2d9837c2d77dc1a26211bd25249c55b56fc06a163301'
                                               },
                'config/linear/PD300Z-2.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => 'f1b17e79d26ab0ee49b7928b2bf22c2378ec4fad3b8d4ddf3bca7dd7d52ee640a6f40779be218b2dbbe0c1741fe044e1698644eecfe99c421f35cbeec4119eac'
                                                },
                'config/linear/WA00Z-1.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '3b1d6292b3f7b5a00d0c4f238094abb83e91dc71f0b3c73dcd2e90261598a5aee1912cbb9ec1bc842327278bde870d24c019e0a8a9cbe40ce75ffe7aab22c7c0'
                                               },
                'config/linear/WA105DBZ-1.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => 'fbfc462f83df75cc451fccaaba4e4dd4c3166a6c0cccab7dfda73036bc6a64cdacb48da0964f2e61b1d104685a20b3fd517eee2f35b58661f295ed980a1beb08'
                                                  },
                'config/linear/WADWAZ-1.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => '9c79c9f63bd033188724d48990a39e6a972b7549a4b3fb9a9a7e0eb592d00e405e72ecd81562d08ee21bb50a74072b6fe971991e5eb1e348d5175a9e19621499'
                                                },
                'config/linear/WAPIRZ-1.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => 'dc77298b11a62ae28185db44db822bedfe7b23b9c3f59992003f75dcd816df1970140b905ad6f2ca7bca28feb61f9fc7e2ee6f0bff7f6bc86750c6a58f041107'
                                                },
                'config/linear/WD500Z-1.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => 'd2af4d164e011dd302616cdc29244b66d17d94fc75b2c582af63d39dcbf73cb3e288e8e01e87e09eb67c385ae12e3b90ad0e153effa957a9ce3f774e3b2e87d1'
                                                },
                'config/linear/WD500Z5-1.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => 'e11f2016a1ea920b46f0f727b6c3a4205a0b752db14cbfe27f15abfc4a10ba84762dea5d1aa8b1905afd2ae7f71eae7d74ea06bd989f7c778099e2f0cd090333'
                                                 },
                'config/linear/WS15Z-1.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'e3a8734089a4cd8a592ce7ac844198abe8503f803219ba6c0af1a94fad0fae4264c1bd5114d8d1c7ac5c194ac3e69205d29cf22d2d305dbe7a3b6bd01cd6a6a6'
                                               },
                'config/linear/WT00Z-1.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '4431cdf404d513158d1f7b9f62644ef45818a5cbce27b27a18ab0bfc631c11884996556a41b82c6242dd5c574f005a80e68b8bafe144659d10bde6304aea0a5c'
                                               },
+               'config/linear/WT00Z5-1.xml' => {
+                                                 'Revision' => 1,
+                                                 'md5' => '378756bb646f7f84f3161a324289670142281a97fb074e7dd0123c7182a0b61963ee01f0f0feed71a0f9fcd11d4f2f458ad671710433187eead121085cb242d7'
+                                               },
                'config/linear/gd00z-7.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '48a5f7d3b0d0cafd025fc035680a298e8afce80831940ff003b46cfbd3a8056e781474e5a6d247bcbbd6cd74ce9d4c04475b7445dee870401ee912c3e6056c9e'
                                               },
                'config/linear/ngd00z.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '88bf6abcbe1a82e590f415571cb96d9304ef77fedc43eea98b372142c84f79b94d001b87398f5610290d3c19ba79e59d856874f0b3fd3c65d2ffaea750d7e971'
                                              },
+               'config/logicsoft/ZDB5100.xml' => {
+                                                   'Revision' => 5,
+                                                   'md5' => '3145ca4b1a0d82f196c79590e28841826165c6c0c6a018260d7506c743bb16b424265e3ac56e36da8755385442f27222fc9983c5a4ce5974fe5d215927f623cb'
+                                                 },
                'config/logicsoft/ZHC5002.xml' => {
-                                                   'Revision' => '1',
+                                                   'Revision' => 1,
                                                    'md5' => 'cbd53fd7d938a6086861d26e8214c1c56916b0fa2337366c59b4ea5bb35af9727b1fa1d3b447a733ca269c708f5f5385f7ed3661821e9ec29929828459d35a77'
                                                  },
                'config/logicsoft/ZHC5010.xml' => {
-                                                   'Revision' => '6',
+                                                   'Revision' => 6,
                                                    'md5' => '4d34aeaaea917c229bedbb737e4de1550b2d7db5f9e61566a1c0a39966b6442d381d01f93714e12aae1404797d36854274cc4063dd7424b00d27da238b17a36a'
                                                  },
                'config/manufacturer_specific.xml' => {
-                                                       'Revision' => '61',
-                                                       'md5' => 'fbd64285fe3072411e297ce6ff58dccd3c9bb82e8d410283d6c3ee4210e0dbae04be90b4b904c0b7656addd5da9b01951eef2de479576c33b7e8ff61fede0256'
+                                                       'Revision' => 172,
+                                                       'md5' => '9109b76dd1cc60709e13492d0261bbfe15603474a03ed681591e696f8bc036c9346d7cc01571cc70fc455c8c32d9ca9c121c9510257fc1952eaec3017066b3b2'
                                                      },
                'config/mcohome/a8-9.xml' => {
-                                              'Revision' => '1',
+                                              'Revision' => 1,
                                               'md5' => 'd1809616fec114edc52eab80314654c8644550fecaec881193460099bface47dc976da727f2d2b0ed6b06fdea1560a942ba2bf230752722ec64c210ed8ce95db'
                                             },
+               'config/mcohome/mh10pm25wd.xml' => {
+                                                    'Revision' => 0,
+                                                    'md5' => 'ebef8141b4a35af56a90ca212206de80c39e15825c9f1a1101c24e6432d47644609b5d2d95dc19b7dd656fd3dc103fb487910f56f4bc032870290aba77ad4189'
+                                                  },
                'config/mcohome/mh7h.xml' => {
-                                              'Revision' => '3',
+                                              'Revision' => 3,
                                               'md5' => '03ca338b59a9e520891497741c0c25dd562734b3f6367a4eac65aaa739351a409004c95faab888ae84c523ce1721d9b5842a9f365554dedf6faf6ed9fb6c7cb9'
                                             },
                'config/mcohome/mh8fceu.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => 'adeca64ab2864dedb92249a76413d32feaf0712385a53289c2c8c7778ea4e0b74403a191dc10c6de4aa3bac2a9d5f0b940d214efba597080483d3045ddf2be71'
                                                },
+               'config/mcohome/mh8fceu0803.xml' => {
+                                                     'Revision' => 1,
+                                                     'md5' => '5e41a956638d5e67045b75513486c36b2e439ad3a37e8970125c14009efbb65cc194e5c0e49d78c81b55bd601a8d0739d31d16a8a2a49c26679186485bc3a0e8'
+                                                   },
                'config/mcohome/mh9co2.xml' => {
-                                                'Revision' => '1',
-                                                'md5' => '560591b0be64d37f0f2c8cc50ad516880c773b2bfd4b913d3e7cf9b15e7ac8aa262415914b7331288e22b34dbb03a998b50fe3bcfde862c869fa4934d2219731'
+                                                'Revision' => 2,
+                                                'md5' => '663b2cbf6cbf61244da0704e8882d0d39a5c95be197d7b29f1d9a494f139e4c3cd50a7f6571fbd3815cae78378716652dec606a69a40300e286e4df45995dd5c'
                                               },
+               'config/mcohome/mhdt411.xml' => {
+                                                 'Revision' => 3,
+                                                 'md5' => '5358c4702375567b723991acc1f6b126d1264a09712f6828be6294183d799dfee7d0b66a02bb1b200c2a4f9097c64568a6d6fc0ce04dbf8c4f42f255c10d6fcf'
+                                               },
                'config/mcohome/mhp210.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => 'ef4a59bae64c999292ce1f3307af32bec1203cd74c1bf69a990d036e670c9e02fe75b441e4e58cc52a7f563a6c5aa854c36479c06da46db4a6962d1f8c8648c6'
                                               },
                'config/mcohome/mhp220.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => 'cdd157b8cf327dfa5f4b86e94708b2b4fbc6f749906c4b50908155b7ed54e0f1276e82aedf256772ddfe6c4f0d976ada08e4bd0f60e330ce4d089075132983e6'
                                               },
                'config/mcohome/mhp511.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '3cb80a2f92e58623f3c390ceb6dac6a4195a12bfce6726ea417ac28d2c80b337da8b79047436b1a34bee629b34e5cec6df3193e8acaab4c0866dd0e3ba5471dd'
                                               },
+               'config/mcohome/mhs220.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => 'c44d7297cce33fe821e92f35dd4e27a164db8a2f8ed3be6dba7bafc5e98629f836d92c2c32509de7cad48d4e56c2b4f095a7626e244e523e5f557317c21cb49c'
+                                              },
                'config/mcohome/mhs311.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '4ce93d5bcf48f3a80f31d8293f4b2501f5541c2d74f1d09b35f1a6db7fee94bb14a375c3b443ab0582c325bddc0e0ad343eda1dce9948e16d356a51688980ba0'
                                               },
                'config/mcohome/mhs312.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'e208b5d84f389663806f848bce581d5e20329e5a16efa32ae683ffd99c65078518cee716201f4ede6f3b9034f27f14ae5f6e235efce02f4b6a98fe32eeb39da3'
                                               },
                'config/mcohome/mhs314.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '31033492060277778c0d0272cea5d2dbe3fd507d526d855f8d39f8f1e2cad6b3e43c3e6358229487e6ee7c9ad14e836438ddbd26ff85eb9cbd68bb273e8c62a0'
                                               },
                'config/mcohome/mhs411.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '161506bc23625d36fcb5e4156e180885065c042a141177e118b8d4577b660ccbd64bd3c49e783742a0ba4f299b153f0e4e73c76b54cb832e1149e374c39e6843'
                                               },
                'config/mcohome/mhs412.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '0f893961cd58ae4f3f58e1efadfac230430412427a7fc49d7137cb9fb8d708ed5ad46d74f022db2f651e3490662516366c24666d61545c68e14dd94429ed4bb7'
                                               },
                'config/mcohome/mhs513.xml' => {
-                                                'Revision' => '3',
-                                                'md5' => '23c319ccfdd895d705187b39750010325021be243c639a024a6ade944aacb6820cb3e4c433cf0e4b61fc2da444c3931e5ccfef355f8ec07c61a0a9a0f463971a'
+                                                'Revision' => 4,
+                                                'md5' => '05db47a894784963b58626ccbe4f09ca637e2819b26a0bffa0e7255ab058406eb4563e8aa88f45c09a46b9c15963a01b2c87bbe619463341a8fee64a590ccfb9'
                                               },
                'config/merten/5044xx.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '0210019559c453668d5fd09bda0c3fff573e205820700826e0f7cc2e0326764855958ea1c7883d6fac73a4970777c5e73bc9a68116cc11b4d0a67ee93c701c3e'
                                              },
                'config/merten/5046xx.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '3526849695799ba35286d08503ac441603c0b662ec2311d867aa3759c60497a436a3d5333ec11f55591158c3ef2e9294b98d7e76a335b19eec99b5ee990a06d3'
                                              },
                'config/merten/506004.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '59f056e18cb14239c023886f9d7dd8f06a2de6cea986822f36fed7c3527cc0c73318cae6da71529202770e3ce8a53b88a9d1f7b94ee1af75dbefc0059d68b155'
                                              },
                'config/merten/507801.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '529137173a0a9ce8d2a75e8a19ea81d0367192947ec1fb181777bd7f61c93017d90d6c09841fec15716245ff63ae6545f5c17b477fbbbf469df27fe8f40efad6'
                                              },
                'config/merten/508244.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => 'f2f028a1f81f4d1c3287c230489e9532d82b0013102b57794e19c6b57d2fa210d5ff9cb9aff00e9e3c0b54410d8d10b846e3da4a42d1938097440c7eeab6ee77'
                                              },
                'config/merten/50x5xx.xml' => {
-                                               'Revision' => '5',
+                                               'Revision' => 5,
                                                'md5' => 'e4cff66ac2ed17fd5be4359b90046e6959ce38bf84af0366dfab8e7c4fac65086036f6558c5ae816d502d981cd3d1c256a80576acdb1989c019ccd2d68016813'
                                              },
                'config/miyakawaelectric/me-d101.xml' => {
-                                                          'Revision' => '1',
+                                                          'Revision' => 1,
                                                           'md5' => '702416a0165005b37d576d5fb029a5cf057406bcac8cd0e26092aebdb728a4ffb98da456fae6e06794275b0421444ec20415292300f988d0c19a808f29b41bcc'
                                                         },
+               'config/namron/1402756.xml' => {
+                                                'Revision' => 2,
+                                                'md5' => '97ae44eefb3bf39b5ba125efa3124c040934209a3c61f6815212c41b7ff3fca862454dfd2cc3eba0c6c29dc12d3ede6a97d499dc466863ec74c94c64fa32cd4b'
+                                              },
+               'config/namron/4512710.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => '6bdd47c7a0ba829e89cf2735e720bf2b62020f228a4e80df237c1b454707ea7aa7898e916bcad430ac313d38206e9862b5a51748ec3138368c2b5fb643d93d15'
+                                              },
+               'config/namron/4512712.xml' => {
+                                                'Revision' => 2,
+                                                'md5' => 'a82b5f87b0be78f05917547ca8ca358d6d2ff484a3aab865597fc8fa8d59dac81498693d0768f4aa8aa7fdf45ce115edf96a6ad17cee09d9ef37941f803a2ade'
+                                              },
+               'config/namron/4512714.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => '223ddb325b70ed7abe9898aa74521b6ad263a45e6a4be4f6842af04d0093d300451ca1d9b07e392c129195e425f431b8faf5fadcb7c32ecc74096699419a8446'
+                                              },
+               'config/namron/4512715.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => '601c713a6cef0fa0e5d92bbfe6fa0d6201b60959a5a1d427cf7280d73921d658ee5fdc703b003d42ba2ce3c000848c1cdd507bd9385a435ff93c1888d3fb1ca5'
+                                              },
+               'config/namron/4512720.xml' => {
+                                                'Revision' => 2,
+                                                'md5' => 'c53b0beebcd8ef019da86791c1e6eebf632ed92c9fda51a6881b52dfeadf1b6e0c9809ef6c4072234ed73ee9b679cee5530866bd04916c27441e7d195a4a5c8d'
+                                              },
+               'config/namron/4512724.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => '10edb9b98013bac7754fd68151bef8b684dff2ad17d14b71cd6831f386a1e98aef64ff83138cdd28bf6bd1ab6526ca40b87e310beed25e9ed4a857b21e689b3f'
+                                              },
+               'config/nei/ms11z.xml' => {
+                                           'Revision' => 1,
+                                           'md5' => '798d15de5a67cd238320459d17b73b168fdc269de623ccaf21d84c84d353fdb15efb693c10bf43075e555b7011344200e8111352250bc7bf688f4298d981e8b2'
+                                         },
                'config/nexia/db100z.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => 'a85e3b5dd39faff1bd76dc1f73f3b3527eacea0e1e1c70aa6d6e879533219b9e8034fc872b2553a12c7144152781389f3d055927a62565814695db853b87bf8e'
                                             },
+               'config/nexia/th100nx.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => 'fc72b207417e4c992ceadb75f0b87a6480a6becde57f7ff9e3e625ad066a5fe75bb0f2ba2b8b9e24f12843b04d66f37a599f84a3551956a723ab4eaeb6934fb2'
+                                             },
                'config/nodon/asp3100SmartPlug.xml' => {
-                                                        'Revision' => '4',
+                                                        'Revision' => 4,
                                                         'md5' => '7c24be4705939a05a678db1c9d8a569abd97f9d074abff0cac479f92fd7235bc95439f0371d0767e72220ca1281cb1beb526eb4e0f68184d7ca29fc3fe620259'
                                                       },
                'config/nodon/crc3100OctanRemote.xml' => {
-                                                          'Revision' => '3',
+                                                          'Revision' => 3,
                                                           'md5' => '4c2e1bf3aa0abdda59164b964887b9662a637a852d859baf197f480d9b3959cc796b38fcad3208a63e8592ac533b588cc82943707c1f81acdbf73d8cf08f8cfa'
                                                         },
                'config/nodon/crc360xSofremote.xml' => {
-                                                        'Revision' => '4',
+                                                        'Revision' => 4,
                                                         'md5' => 'c9224c55596b27daf81dc38f5f8f99797a2002bfa7c513161a94c818fdd1d411ec2beeb48209f531c87eb1c8fbb5ed7d71f14d03076cc403c63adea718e720f9'
                                                       },
                'config/nodon/cws3101wallswitch.xml' => {
-                                                         'Revision' => '2',
+                                                         'Revision' => 2,
                                                          'md5' => '3488db5887b2336d0a1bf35b8c81692fb6f899d620598b09de648a3c192780d343ba6edd5444fadd750aa426391037cf1074b503387e8d32c7a6749ec3d2b1e1'
                                                        },
                'config/nodon/msp31xxMicroSmartPlug.xml' => {
-                                                             'Revision' => '2',
+                                                             'Revision' => 2,
                                                              'md5' => '12f715e8f79d0351ded0d6fba4094bd58d0fcbd3ece3eb325ff7ea7e7bf0e47c322e42cb8af4dc89bfc16b657a799768ed21184f2371c2f121cc0febd5fdefaf'
                                                            },
                'config/northq/nq9021.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '865152ea0ebb5adce8ee09f65760f4f43c4010e6059596f346f4b16ca4121cd1cbf810123668009dd4329bb6c93c6c8a39d8d5893454cc03e6c06e555b857fbb'
                                              },
                'config/northq/nq9121.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '414c7fcf570c29c0ee472a80ac17399b47678028fb5b6c52ee13c7dedb570751708152d20a549cdcc0c9b5b7e5068d9119057641a7659c6ecf91ba8e7c46721e'
                                              },
                'config/northq/nq92021.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => 'c1145f7d6cd67f960109fdf04b12952fe4b6255bf703f3826e62512c54c8f4e4f58ef33554f5cb03eedb1b2fd969e5ebe48b03e296dde88b89b9218fc3a6a2e9'
                                               },
                'config/oomi/ft100.xml' => {
-                                            'Revision' => '4',
+                                            'Revision' => 4,
                                             'md5' => '8398a78120575f099e915e4544755bb035a8f9d8dea8caa536d9341baf8140ae82bae017b0556a22f8617dbe5d567422a29c2b8667d6b8a7807fb097ab86dfc6'
                                           },
                'config/oomi/ft111.xml' => {
-                                            'Revision' => '4',
+                                            'Revision' => 4,
                                             'md5' => '1495bc054f8821256e12b70cc4aadd76e55b1d5a15ce26912e2df6a9b7246bab73968e723ae994c7e0ef923a293b46f8f72760e8c3ebb8fb32ffed7fa73e8caf'
                                           },
+               'config/oomi/ft112.xml' => {
+                                            'Revision' => 2,
+                                            'md5' => '3a44eec10683cc26fcd878e9f02c715173f91b7dd37954803f81f1b93460212f6ad0b113261b4afa1150d39df39691a6f27bd74d8fe11a0c8fb459a1acdad2cf'
+                                          },
+               'config/oomi/ft118.xml' => {
+                                            'Revision' => 2,
+                                            'md5' => '3e98d700b6909d74f4e753880a4cae27929a324993943c9b3d6d9070805bc18360631450f2c6ac36e4081fdf5147b717c5163b4c29238e7973c037f50ab38782'
+                                          },
                'config/permundo/psc132zw.xml' => {
-                                                   'Revision' => '1',
+                                                   'Revision' => 1,
                                                    'md5' => 'fdfb1fdc33cbe4dcb02dee460b52941dbf751641a35d80814e50df85a4235f182323a55203948213c7d99d083beb95174ba6acc860f38b41bea65608f227decd'
                                                  },
                'config/permundo/psc234zw.xml' => {
-                                                   'Revision' => '1',
+                                                   'Revision' => 1,
                                                    'md5' => '32cf262b674384dea494dd38e5cde1393f2f0996c1ea42715ec82597af90f59898bbd75e6d37ff4a1d0b491e914a5f28c9b2946713e432f5b598907dcb052cfc'
                                                  },
                'config/philio/pad02.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => '8e1fe2169622ea923aff37663ee762a922dd90d2600fecf6f95808917cd414187d2dcbae6d33a97508b09d5cbfbf91413d3ef0284d875905f2e611e34069e393'
                                             },
                'config/philio/pan03.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => '69ac125e867e1523ba7cd4e7ed1e7e8a4fbce0d48dca53080db404a833c1bd6446ae1014871a60f4756f5fd789dc0f314a2c23ea3467464665e61766778124ff'
                                             },
                'config/philio/pan04.xml' => {
-                                              'Revision' => '7',
-                                              'md5' => 'c9a658764da83f06371d5ddbc57f0ffaf025d6f5f566ce0edea4b0cc003e930d98b7ebcd5b5fe061b2e0db481e96d6c37300c1ce7a264109d04aea72dd750a69'
+                                              'Revision' => 8,
+                                              'md5' => '921f304351c137d6d652cd81d9ec757ff689e4ebec2aa65e31538ff069858619b67f33e663c5ef68901ec47d442ae4a8ed81f84fbd218cb76d6d0f956431c58d'
                                             },
                'config/philio/pan05.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => 'e57f208a8b5d5037bf9a1d1a8991a8936e3302944b6572dab297f15f086654e4a24b059171ca9bbc1f7cf835afadd568000cc6b8cc20a0c7e8de452118817193'
                                             },
                'config/philio/pan06.xml' => {
-                                              'Revision' => '4',
+                                              'Revision' => 4,
                                               'md5' => 'de37b536016da639ee85bf9e1f782e3b1d7458d2f1cbf71c31d851f62cd0617dcab0e481ff787139f8b5bb7d8f8a3aebec61281950c172665616c9fd32e3a767'
                                             },
                'config/philio/pan07.xml' => {
-                                              'Revision' => '3',
+                                              'Revision' => 3,
                                               'md5' => 'd38c538a03cd694dc2c5b55488d947b7e3541c99fb852ca3fd0c2f422aed746626ce34d8387244aaeb353bcbcdfda5087815b8d823839756cfee45c324d7abc0'
                                             },
                'config/philio/pan08.xml' => {
-                                              'Revision' => '7',
+                                              'Revision' => 7,
                                               'md5' => '6f40cd915cbf21b17d229218e374e06931c17679066d5a9b66a3be20fb7f1f126034828484ea0b34493a6bd2f690e0ce79886b563dfe73b7d2d92477cdb96f56'
                                             },
                'config/philio/pan11-1.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => 'aa358cc989d2e2d476bc0229750ad7f963fc07edc0ad9acd9b14f0e08fba41a1ed858d5db360195dd77b34799a610a774c2a5210eff0ae29c5de570ce3e560ae'
                                               },
                'config/philio/pan11.xml' => {
-                                              'Revision' => '4',
+                                              'Revision' => 4,
                                               'md5' => 'bcb431b0960b2c0731437a8c6f88a43a32586c45dea68c43245bd51f1895d5a8b7ee875d77ee07f2ab510a88487f4f910c38aada574cb27396b70617ff1f8757'
                                             },
                'config/philio/pan16.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => 'a7fefd71f6bc5ede497d62d300ecfb3e5700c0cce1c55068349881fd6ad31ce08c19a0760a935033d42ec6407853b65d1d39f49d5047eeb69a6a0d05cd57094a'
                                             },
                'config/philio/phpab01.xml' => {
-                                                'Revision' => '5',
+                                                'Revision' => 5,
                                                 'md5' => 'ee5564aa200257d255d4a630e4a329e33fbc0a202f0e0ed64f3e8933f760f8fdb5d248a94bf21ebcf20affd30fa5fadaa652cb01b1470496cd1b18a1d196740e'
                                               },
                'config/philio/phpat02.xml' => {
-                                                'Revision' => '7',
+                                                'Revision' => 7,
                                                 'md5' => '2934c2c8f14d96e31c6b978a4f0d6514eb40fcbf6bf4cf88b0298661f7aa58a3f552d8d7071bc096f61d2f2d81d7af8e4e3e2a281306c12bfe1957ef210173c0'
                                               },
                'config/philio/phpsg01.xml' => {
-                                                'Revision' => '5',
+                                                'Revision' => 5,
                                                 'md5' => '2fc5c66f6abdfec254f00814927a5de34ac80a32d433781cdcce2f3756726bbd22c5c52e38af2128c0c5d478ae767256c3e257010170d39fae8cf6e8f17a692b'
                                               },
                'config/philio/pse02.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => '2660f6fafc0f5d1929d6fc4896fe7da6da4d1bc420d8f98d1ced1ce5c492819239c1296d18965314b6119e840cadb226677add587e1cc6eab01d7fa4ec312578'
                                             },
                'config/philio/psm02.xml' => {
-                                              'Revision' => '8',
+                                              'Revision' => 8,
                                               'md5' => '61de4f16428eb7b039dc52080318783485c5ef1281f6e8b9b966ba668fa9a34c5155fc94e1a32def1cca869f832c750232608be17c007305386e491177411aaf'
                                             },
                'config/philio/psp05.xml' => {
-                                              'Revision' => '4',
+                                              'Revision' => 4,
                                               'md5' => 'c11ff9ff5577b4b78cf5c9501053be6b23c53ccdcdde42b06b5e042001cbb5f898e855e3d8769bb5af6f5aeff7738f2d955d638d3609caa988b28c8beefcec1e'
                                             },
                'config/philio/psr03-1b.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '47648ede1096a03001221a87b148e05f226dfdc160ab84731c299694b64f5a982503a25c1c5cf2905f0654df08024d05c44010133648ebf5ab4358cbe7e34736'
                                                },
                'config/philio/psr04.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => '02d630345e20cc163797e73a0299c2f1f678854e1bbec6475c694167ba95e38b9dae3933e151a56a0457d7548757bd7ac45b3f4acadde7b671f396f04079f454'
                                             },
                'config/philio/pst02-1c.xml' => {
-                                                 'Revision' => '6',
+                                                 'Revision' => 6,
                                                  'md5' => '464c0b4b141a2574032381b026c8e1a188c7f39f196449a3470de246591c0b75b842f1db09261e7ea8fe78d13718d38614ef2c04b311dfafb4f896772833eb5f'
                                                },
                'config/philio/pst02-b.xml' => {
-                                                'Revision' => '6',
+                                                'Revision' => 6,
                                                 'md5' => '4231162c58f286ebb12b0a6fd65fcfe1cee8d5a41f1a7565648dac2f50f03b327c88bf7932369c76ff17b7b2cabbc3f87e082e2978ee0012b47ba60c0361443a'
                                               },
                'config/philio/pst02.xml' => {
-                                              'Revision' => '11',
+                                              'Revision' => 11,
                                               'md5' => '03450ce5dd6f64055d0ade348357cfae39a7bfde49c15fb94298489f56e303faf669dfc19bf51dd4da2e95d72dc7bbe1fe691848074c339d20377f1de337532b'
                                             },
                'config/polycontrol/doorlock.xml' => {
-                                                      'Revision' => '9',
+                                                      'Revision' => 9,
                                                       'md5' => '41699e435d7d757d17c930c7b6a255218ce13c9c0ffd7c813eb8d1ad9872fd5e10e08497833a96b1d5c8d6d5e6ac7cb4983e62f179930c2fd4963014748ae50c'
                                                     },
                'config/polycontrol/doorlockv3.xml' => {
-                                                        'Revision' => '15',
+                                                        'Revision' => 15,
                                                         'md5' => '470dffd2518ef1de4af71fdd29ead1afef79913651964dd328c2068e8e8d3539e61b5ed5c5ef3bbacd47590a6a800e182a0115f1dff6fb29be6b6bf47e302eeb'
                                                       },
                'config/polycontrol/keypad.xml' => {
-                                                    'Revision' => '2',
+                                                    'Revision' => 2,
                                                     'md5' => '355727d3cae60c0ee5bce2415bfc6f781d3b7ee00caf4b0693d51daac80efae1e5d535f2da189787445a091759d25e01072603476c3645f9e6b78b178d9c9fb4'
                                                   },
                'config/polycontrol/polylock.xml' => {
-                                                      'Revision' => '2',
+                                                      'Revision' => 2,
                                                       'md5' => 'd568bb68a43925c93fa91ae1e90be02a7bd122a96e45976024451d554e30bbbcd4b1c379eb7b929ca09086d6e2a2c3a50235193627b115358f104bb3f78a5861'
                                                     },
                'config/popp/004407.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => '9aef97d5a39d568f37918b440777fd2cd95cb0f094dc1463fc846d3ccfd6a9834b0890409e6ee7c3baf18a058ba90540c03eb04e86b54f30d8ad3183db88daa5'
                                            },
                'config/popp/009105.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => 'f342fff90c90bb58c7b2982fc2ac1c1dbc81a62de8ba5e955714efbacfa2a90950df81bbd5a255771bb43820a5b3e65fa6abf83863ef19787590cb540dba0a99'
                                            },
                'config/popp/009303.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => 'a5d8cc2a490a870b0c4e8bcdaae57d2efc4e2c3cf632da50950a7e16a23cdea02389fe078aab9441eaf29d9312f808d00d6173c78aacaca000693cb88d1a3f28'
                                            },
                'config/popp/009402.xml' => {
-                                             'Revision' => '4',
+                                             'Revision' => 4,
                                              'md5' => '76fb11bdec34c53312c01e694e798cfd05516215f82a6756628b47628a832f9f29852adb0d33f6783e3706bc35b132c44b9be7631049d91077a434ae148d5f41'
                                            },
                'config/popp/009501.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => '749c31c6f0a959da709f13b331f01abe31bdd5c9f93a584cdff75ba40ede6051b777056d01bd42fb4e34e4728ec2f5454fcd8d634ded05209afc66450412e013'
                                            },
                'config/popp/012501.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => '44af7415b92881839701d05860bbd9b1a4f3d1e1a249c2bd0dbceaa4f1e4f704009adf51b33242e8b81ab41a7766c2a0fe3c2b27e71a592c21a659d0c74d24ed'
                                            },
                'config/popp/123580.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => 'e6f1179ca889975925b64d57dabe01c7c9a6ed85c2d904765d3e3b076d9271fe88a8e20512a40119d113ff12660361194668773712af6c57de0d9c6e7b26abb4'
                                            },
                'config/popp/123601.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => 'a62805b4ce498ea1010c49d9379f78bad95599a7acc465f2e829b6d6aacc5c72a5eadf12f357ca86ffbbe86bc241d0d787a0cd2b7d90b24c481ca774dd6944ae'
                                            },
                'config/popp/123658.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => '7a156ae6ee0a11a5a22edd0b0be003173c37f8abfa4e93558c0d78c0c15a48be962a83a797423bd75e2fccf1b6133020ec5886da5cf81721a726fdb525ddd11f'
                                            },
                'config/popp/700045.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => '9f5b536c1f6716e9171b9cb6f6778f0f609ef33321bb8b3ecbd890a66d428048fe05d7cc39b4fcce7a1c2e16273ec76fda322af74e87cb7bb02ec951f342b6be'
                                            },
                'config/popp/700168.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => '1edd75ada9a0c8be1e77b48629a4e07f724a5755f32fa80b0471709043dbdac923a028f3698eeadee2ee948b039560c0e99dc500165e26f1bbb67bf5a4788729'
                                            },
+               'config/popp/700342.xml' => {
+                                             'Revision' => 1,
+                                             'md5' => '8134576c997489d04fd02f62dc94815f2e9ab24ab0110e0632102d24f7e1e2015180abdb8365346bc1607aa27d5e8216e02a151c3501c7b7bd3fa8b33c961817'
+                                           },
                'config/popp/700397.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => '89784ba95b9219c52c8f63826514c480fbbd9fe84910789b0e3c5bd5a10038621fc68c392a8b759ad89a2c43aa34e823af029ff354651b86f65fcc71c098a848'
                                            },
                'config/popp/700793.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => 'caceab22bf95c5e0e3e030befb73d612d94620cb3f11011509a7ac8d85a0b7771d24521385275918054334d7046ab98902f576d8c9d5ea98009e735d0413a331'
                                            },
+               'config/popp/701202.xml' => {
+                                             'Revision' => 1,
+                                             'md5' => '737e201dcc7710e70727ad12ec7e93d77cd3b1a53c4f690a1c18aa343f39f791f56ab7543d18bfe77e10773c8899e7115aeb59e03875657b678d72508d7d1af8'
+                                           },
                'config/popp/dwt.xml' => {
-                                          'Revision' => '1',
+                                          'Revision' => 1,
                                           'md5' => '68638128d2fefdf799548463d04769bf7d911ad2b2d6240ddd4d7a6df7e03875808773e819839c84deb29a5a2fc3474c326e13a9335653f389a5ab211f57f644'
                                         },
                'config/popp/smoke-detector.xml' => {
-                                                     'Revision' => '2',
+                                                     'Revision' => 2,
                                                      'md5' => '5a0047adbd73b8bac7bb78d1a01c4e04a8674b2c6afff325d14b2e83710fa1e9008af3c6650368dd7e9c2694dd601b885cc8a64c1127fd1019ad401d12b35996'
                                                    },
                'config/popp/solar-siren.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => '010d56d45a25cf13b51b1953554f0ae4dddbf52f18dc03a3c1f85a264ebac8d065d7f226c12e2cffcca5b42d0fbda10208ee3156df78c7930b7c8ba023722be8'
                                                 },
                'config/popp/zweather.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '89c31bb70e56b887ec4559b2d4bc450bdf40490fb9b496f37e337265539e638c0bcdcc128f6914c3940f2d58cf51655deb1ea7876c38d74ccc2e89af7e1240df'
                                              },
                'config/prowell/zw-702.xml' => {
-                                                'Revision' => '5',
+                                                'Revision' => 5,
                                                 'md5' => '0f18166b3561a3bc65c5f53f8a26fd2776b6adb2d01367a7be5ef11800cf3bb1877ec2e8ba6db6170c6faa9ce4654ece1259e4d9095354da2595b8ff4b100aa0'
                                               },
+               'config/q-light/q-light_puck.xml' => {
+                                                      'Revision' => 2,
+                                                      'md5' => '0e726ac3a95dade8cef628abc82fe71f6a9b22b6331d6844d548e14106e7c70b8100cbc2e6a9e8b99c70614269da30f15f56d0db8d410e092113a3c7bb284453'
+                                                    },
+               'config/q-light/q-light_zerodim.xml' => {
+                                                         'Revision' => 2,
+                                                         'md5' => '4d7ea7bb60f06aa3a79a1e7327530e5e5ea5cb99213684f09626d8f7204ac5aa03069ec4728b5c8eff44faf7d65dc6a0ce2383e72f386fa0417af1f359141ed3'
+                                                       },
+               'config/q-light/q-light_zerodim_2pol.xml' => {
+                                                              'Revision' => 2,
+                                                              'md5' => '09b34de566e3854dea8839bab6b7c3d45e4732a3c27fc7ed839fb596dc1dc80331019e83822faab3cb46a8abae18b080ef29c328e77f55dc3796455d48fbbcc2'
+                                                            },
                'config/qees/reto-dimmer-plus.xml' => {
-                                                       'Revision' => '8',
+                                                       'Revision' => 8,
                                                        'md5' => '944ab5c363ba7722f0f870782bf9d20bc75040fa21820db080040b538794f8574140ff0960ca218273810e596df193f76a7ee2fb4412f8ba2b2cce7fa18fb431'
                                                      },
                'config/qees/reto-plugin-switch.xml' => {
-                                                         'Revision' => '6',
+                                                         'Revision' => 6,
                                                          'md5' => 'd1f4c2dd9454ae4b1edc810c6d732bf042447334700deb17d9fb82d7330544e376d055c7e96a75a88bd2911cced8337c3d76041946ebb6e011b4b68d3d780dcf'
                                                        },
+               'config/qolsys/qz2140-840.xml' => {
+                                                   'Revision' => 1,
+                                                   'md5' => 'cda505a60a5855fa591303809c3d6e7bb1d471a274522a014fb42571e7e81c551374f5227b8c4e544553f981b8a44d2176786aab59f872ef62791401ed39a902'
+                                                 },
                'config/qubino/ZMNHAA2.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '080174f8dbebe8e5e80bb84601cd153946b7a014450bd04eb52cac0351dcf326b6b5c139385a42c055e1f01a09a41e1baf19586b66fe20e975ab6e7ab5b87e8d'
                                               },
                'config/qubino/ZMNHADx.xml' => {
-                                                'Revision' => '9',
+                                                'Revision' => 9,
                                                 'md5' => '510f98884bd31bfb09f356abcdefcdcb4456fb1edb54c6d20e673878983744d98a06a0b643880e842678bbe76d9272ddae4469606dfa57ab7546f26531f5d64b'
                                               },
                'config/qubino/ZMNHBA2.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '35bde84eae9bf56aae8a8ec8710cd96c066d9caf087ec1356c3fda124e82bed5406af2e72b627a45bc45e1e6c91f8f0d9af9368e80fcf5973d9be2ffb5e191cd'
                                               },
                'config/qubino/ZMNHBDx.xml' => {
-                                                'Revision' => '5',
+                                                'Revision' => 5,
                                                 'md5' => 'e7997e9c51a66d078d37e5501191a2a36bd7faa8b98dc8967043b68e9e97621c5dc5f797640ee4c50a3ae4389d38ed87e6e3a94540911549298f366aa8ac5cd9'
                                               },
                'config/qubino/ZMNHCA2.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '94f11e408312da4a3104d120112bb697bf53a9c5877f3eb73128e480f23e217aa72bac2bc0752f2595a68d26dceb22573beb7f4a98938149e73facd854e21114'
                                               },
                'config/qubino/ZMNHCDx.xml' => {
-                                                'Revision' => '7',
-                                                'md5' => '7133bddad00285e714e0469b6ebb11bdf1bae84de2393fc512520ffcbb93c1d204646327ed6b2e50da1c23fd423361a4550af9ecde4aa587890d8261f09dbf9e'
+                                                'Revision' => 8,
+                                                'md5' => '70c37e94bb435fb029af0b55829db7e244ec7beead5939bc19c25fe525ebebe677a974d1d920699ac74b1a4b62643f5818b317a07b78f00d8ae792cb4da73e11'
                                               },
                'config/qubino/ZMNHDA2.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => '7883b97dc7151ac7c550f56adbafb086a548613a14617da51232bb1e199a97144f89205622555efdac851e2fde437e2e00e65066c591ac1f1d622e7b57a1c59b'
                                               },
                'config/qubino/ZMNHDDx.xml' => {
@@ -1992,739 +2400,963 @@
                                                 'md5' => 'de18029a1539e10dd15fc85ede084182e1cfcbc78325602ca6e5b428884f6db6ce1bebdbea331a8ca0f4ba133828c09f13ce6c1f8486871a5ca9c17258358ba1'
                                               },
                'config/qubino/ZMNHHDx.xml' => {
-                                                'Revision' => '1',
-                                                'md5' => 'd47f8f39a5bdd5d5f5881708761769ccd517dae796e7580f77f8441715a957ed29de74221bff41746b306b461f243dbeaa6ec9d09451b8ba0d97eb2696b465a5'
+                                                'Revision' => 3,
+                                                'md5' => '1670fc7355688ae031018b28e6b3c184b3efa84a964b6d7b435175842e43a1ff445c5cdc7a336f71203fbd4d53ad9169a61968fac2b760db7339d9d5b58538b0'
                                               },
                'config/qubino/ZMNHIA2.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => 'f8dde99fe36b78571b75faf9ee7cb3c2d0112d86a0cfd33a6037ae96811dff066649df14fdf88a76a7b77d3005291ef72704a49f23a7a40e24dc7665d5c185d4'
                                               },
                'config/qubino/ZMNHIDxS1.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => '061416a33033dc5cd68fceb1b06a690fa02c5f6c7804453a8d28173d3869b54b7067f87e30eca380330514ad1c078931c338563cf7af6f3da98916134d97d3af'
                                                 },
                'config/qubino/ZMNHIDxS2.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => '39e39c091d03726768865e889d20390d30af0cf5da390e49adff1928cc79030a2d59d9c1436942140c2ddceab49c70505f2963e2f54397e3cdb751a174cc3122'
                                                 },
                'config/qubino/ZMNHJA2.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '3545c580bbaf7b12b70e0386d13ff196320ce959767de031e2363858ce20d3cc0ade40928d17dc8f1d2be5177a73da2f51efd65c26c85c9a2735bbd23b4c3377'
                                               },
                'config/qubino/ZMNHJD1.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '32b118f0bbf83efcb068a27bdefe63777fe8672e69df478aaa066910ebb5af23cdae79bc9c31eced97abec78ffe0616ba3dd76eeaca86babe2984e6e7c18d523'
                                               },
                'config/qubino/ZMNHKDx.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '9c131e49681ec7db225248b21304ae83faa24bc4b811dad961195757cb70c01127482c12ce480e9778dadfc40357f1c9abe346254edde8848ec9803df9378221'
                                               },
                'config/qubino/ZMNHLAx.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => 'f30b0c98515367bcdb9b5827838268789b8e4167bc0bbfdd3c9b7cf1838e4e8d54c9c1a88c942409175ed9291216a6f3a0d0c19807235283e9ecc8df4829647a'
                                               },
                'config/qubino/ZMNHLDx.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => '5024808b8551691103b25c05fe37ae3b49499a38fe0491bcd492accab0eb346b7e810c3132cd67e1920ed0d971f07dd9303a3b774276aab38ac04610fe5dbd50'
                                               },
+               'config/qubino/ZMNHMDx.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => '10bb3f3f11e86e4ec0e164e74e69f990864cd9fd76a4b407b1c26c54f5bcd5f16c3dc08482988b4f557f244da5cbb61b6555d5b1496d5ce3d7086868cd4ba3bc'
+                                              },
                'config/qubino/ZMNHNDx.xml' => {
-                                                'Revision' => '6',
+                                                'Revision' => 6,
                                                 'md5' => 'a10317520ca58616369d1d7782640ffeb84fb778c781f3bb39e7d6a0f22cfdad7aedb65b781f632e36c2c9837188019d00bb8b6509bc022719a64a77ea2c6277'
                                               },
                'config/qubino/ZMNHODx.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '9e267442a84763403fc4c9ba6088fa59a067e1a5a362300efdcae287697426a53b5b705fde59ae5c106091923fbe51b2856e9c9bdc7bbe9f9601d7dde7878e8c'
                                               },
                'config/qubino/ZMNHQDx.xml' => {
-                                                'Revision' => '1',
-                                                'md5' => '0b359cc2fad436b06e51bbe02e625e12a1bb81854732b062d664634e8059d2e162c6ba3c870723ab32d6f0bb395afc0edd1b0e9459ae302a080d3cd55d9f70dd'
+                                                'Revision' => 4,
+                                                'md5' => 'ecf378103c01da6f196ffc99fdfe30ab93dd71d1b08e89577cc123664dcfa331a9116f2a6dac65b1d75bf76df45b5f44f4f09c041b0d410d1497d00a39d8f4f2'
                                               },
                'config/qubino/ZMNHSDx.xml' => {
-                                                'Revision' => '5',
+                                                'Revision' => 5,
                                                 'md5' => 'a65c7430dcd17dbe5f1932ffece29cec38b684636c2db1931222c7c042e3e6808a049b149db78b9e3a3b12145da078416b8331d72052cfd0a149b8499242d10c'
                                               },
                'config/qubino/ZMNHTDx.xml' => {
-                                                'Revision' => '6',
+                                                'Revision' => 6,
                                                 'md5' => '75568a1a5e7119daf2d493b4ea6e7ceb59e065fa9325f933cd61db7334dfc792343946e0dae62b6bc84f8f598d55890aa9e2392419dce0cfd4eb58b6d23e7801'
                                               },
                'config/qubino/ZMNHTDxS3.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => 'df04a24a50282278c6deb7e885702d97ec98a2b4ac2998212caa7c16ddf961b590168214bee1c4ca76512a4386cf9b3199fe129757e4af5a725cc1a2a3d79090'
                                                 },
                'config/qubino/ZMNHUD1.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'e1b8ae48d7388aefa2464f7e0e51eb23a68f65e8d7d4b35a4c3af29524fb2d53d40e1d861f1d4d798282bd1c916e854f55da894e27dd6ef43ec40c13b3a56610'
                                               },
                'config/qubino/ZMNHVDx.xml' => {
-                                                'Revision' => '5',
+                                                'Revision' => 5,
                                                 'md5' => '84d8b8e248e7494d1b5ef403cc55c84a9c7e32c484b878c7d1103b89ba58fcff3a7dde495bbeb9d85c41dd2a029cd56da45502a4297f5c7897a9b9b2f5ca2af1'
                                               },
                'config/qubino/ZMNHWD1.xml' => {
-                                                'Revision' => '5',
+                                                'Revision' => 5,
                                                 'md5' => 'f5833225b7eacbb94d422c08baf8b5b490425a09b15efedcbb08a92700c9918f926b1ecc1b68fdbc0cf1cd460a26f57806f9ed5a625f3147dd2859091ccf99ed'
                                               },
                'config/qubino/ZMNHXDx.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => '318e982feee6e6df7c03da246678861e51eedf93463e134476af6fe5a0905624db9807b0b961147baf98982fdb4942a7ddf987dfeabb27241a39cf0e61d5d6ab'
                                               },
                'config/qubino/ZMNHYDx.xml' => {
-                                                'Revision' => '2',
-                                                'md5' => '1b5e30e6eddc0ffd67764eb7fcb8a22f86d6d124cfe822b1b7d98c372e268dae78c5b6332ab7fab85bbf8fbbf71c3b98532c8f02dfb95a065992df2dc4e10f60'
+                                                'Revision' => 3,
+                                                'md5' => '16a3c8fd7a16b89e67fd98751b34f133de7058e410eef2ee6ec76f19ca8ab6bfda4e52fd691b453bd64bb9f13768375e438a753c8ff54ef433a9989f1cf58595'
                                               },
                'config/qubino/ZMNHZDx.xml' => {
-                                                'Revision' => '4',
+                                                'Revision' => 4,
                                                 'md5' => 'ca3b0bf60934b0454f40989634f116d0d4c486ff21db65d3cd2e0bedbf68aa1bfb8578337c8dfa250da807b2588b8331cfda2464a9c54fc8b9717d801d866538'
                                               },
+               'config/qubino/ZMNKADx.xml' => {
+                                                'Revision' => 2,
+                                                'md5' => 'ab2ef82408481add2f186cdff6d5316994da84f7d1f25727ec6538909d3b54503c44e90a0ec69f69fd9fa44a6e12fd7cdfa290b52d6b2af30ac5fbb99ca0bde7'
+                                              },
                'config/qubino/ZMNKIDx.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '437e4f7ed4ef2acb48885ad26bb2cdd374994d01e3d6d7f4ebb0003cb61ae6457ce96e4e9b44c96f4e464e9cdce74f0281f5929992054d62de2cf6bf4344d01b'
                                               },
                'config/quby/qb2.xml' => {
-                                          'Revision' => '1',
+                                          'Revision' => 1,
                                           'md5' => '4104820b132cd14a69370bb2fbd53e4efb449066a5af14e34e26aa58e24622b55ae0f9a60227fb41b3f34fd473d07e265072649cd84e580890b081a96b8c92d8'
                                         },
                'config/rcs/em52-zw.xml' => {
-                                             'Revision' => '2',
+                                             'Revision' => 2,
                                              'md5' => '665997cc9ad56208b97ad149daafb416f34794ab75ec470f419acbe7b15c20ca7510f4676f880a1effe8aa5642ebe3e31c84c618ccf3dbcd2c524e8f51dbe9a9'
                                            },
                'config/rcs/pm12-zw.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => '49da27e755cdc5b06ce24bdda26c67bdfb968cb4b3562298b1394129768326bed2b8f9f0d972397c4c1b6bb98e101391f57b51aa47ebcd29e4a119504e98e13a'
                                            },
                'config/rcs/therm0005.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '9ce6aac1e07d1ea8b13f9c654fb9081152b3cb67dfe94a37afb681c1262cbb465e1801b0e2687b724e9cc888cfd35d71b390e4a04cadadabfa2bb3a602a5109c'
                                              },
                'config/rcs/therm0007.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '7c3ab99f982cbca19f26b3600abc65272950e253ed60777f32a501293e5643810b8ba7e172466e675455281c2a35bdea390a589d8d88fa5eac02703d4a6da504'
                                              },
                'config/rcs/therm0009.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => '235f10fcbef7aa54b4bf933a67bcd8009fcdfc9cf66d2b6608f5027901311baa53678ac75506e88493f6027714ea8e9b8fbd42ffa040056428c49bd35a4ed7f4'
                                              },
                'config/remotec/bw8120eu.xml' => {
-                                                  'Revision' => '1',
+                                                  'Revision' => 1,
                                                   'md5' => 'ed31f96f6d1f3b33a38d3ba6030aca32065ffb9a12c3447082a252698fb12753a425f96ee7c7039270cb7783be2686f02dd8e356695eb0d6db27d10385c6b8ac'
                                                 },
                'config/remotec/zfm-80.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'e3b6afb43fa679b8575f94b04caa71d8942ee15ddaf3fc70b15ae194af4d1b38ee710b3f7a0aa2ca9df19f2eebf4611a8927018a98639d3113399614c0704fec'
                                               },
                'config/remotec/zrc-100eu.xml' => {
-                                                   'Revision' => '1',
+                                                   'Revision' => 1,
                                                    'md5' => '5b840b10226c7f8e158623b9939ed2c8eee3aa1516de6a78c3f19ffd89fac6fade7acdd6da5a7aedd6394c019ead43902a586351f233740dfaca13f0e2a291cc'
                                                  },
                'config/remotec/zrc-90.xml' => {
-                                                'Revision' => '2',
+                                                'Revision' => 2,
                                                 'md5' => '98ec165810b4b80a4d1e22957432046b7d61dcd6f4ceed69059d81ef1924124ac0f146a17192564b82011a37943aab7852ca97a512ef2dc8bbd1ce8a06f831dc'
                                               },
                'config/remotec/zts-110.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => 'fbac42632e85ac10571db822206b25d8c793e3a1c5e16783f822b094c68411f3742eea8d7b3657a2937f6c406e8184f624b80967acf3c1e31b8bc881dedc359c'
                                                },
                'config/remotec/zts-500.xml' => {
-                                                 'Revision' => '4',
-                                                 'md5' => '9897b20e553a4979e362a639021215c4377d8212c46de5f6929b37ec4ee810f82c9e4ed6958f3d4ceedee249966e623a21ef84059803e8fb5a68fe73c2df7348'
+                                                 'Revision' => 5,
+                                                 'md5' => 'baf19a0efb011787fe52ba1d4947a9a7affee275b48752084d343bddfcdce9c1e95c1457ba18d56652256d2ec93a9ddcf81c025ec760a3d20e351248b02dfc91'
                                                },
                'config/remotec/zurc.xml' => {
-                                              'Revision' => '4',
+                                              'Revision' => 4,
                                               'md5' => '3ffabe2c9da2cd2f4f625682584003c5cdb4302e09a074783c718526b796eb394ed7dd020594167751f46a18894dd54b39d9c4e3b06c5cf64fcca738b4aaad4b'
                                             },
                'config/remotec/zxt-120.xml' => {
-                                                 'Revision' => '7',
+                                                 'Revision' => 7,
                                                  'md5' => 'e7545d88ab5223f20078134b437c5e4f5c4e85a8201d92537cb159cc829b8b3fa17b84856cbe68a90e10793c155c4c711cf1675136ef82cc524240c44b4711c6'
                                                },
                'config/remotec/zxt-310.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '5de09bb88d9c21d33dca3ba693a7ae886e9a4476e50966861b581d22902636df68981a069debbec830380576f14a6676d7fd302f165553c9ba558a3803b8c991'
                                                },
                'config/remotec/zxt-600.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => '55a6ccde16e43ecdeb440406354d761ae34cc7743d6cae4946e928e82826f8d4aafbfedfa5428cbde8a5eaa216c24b6c4417bb04edc28d118763b3c7defb8c1e'
                                                },
+               'config/ring/PIR-SS.xml' => {
+                                             'Revision' => 1,
+                                             'md5' => '59652dc6da375fc15e84a385f1d90799e3fc7d6a6295d5f2eb6b28d2d965029a6eae376a21e326b3ce9d85dab066a46282db1a7edaeea29344d075d880c87601'
+                                           },
+               'config/ring/contact-sensor-v2.xml' => {
+                                                        'Revision' => 2,
+                                                        'md5' => '1f51fedc85cebb63a19943c3635ef4a33748d37e9c37bda8c0370ae204903ba9325af12ca3b6ef22a32d01d929d02e97bf48c81fdb09b1c003bcf95f171ab479'
+                                                      },
+               'config/ring/motion-detector-v2.xml' => {
+                                                         'Revision' => 1,
+                                                         'md5' => '40691ad61c15ad9d6cf90f46b2e04e707809db8f5db55250dacce93c19bf6c2057d1ba4b190995e40c044bc4f9f6bd2fa226b5b54935d1a6649632da0bc21d4b'
+                                                       },
                'config/schlage/BE468.xml' => {
-                                               'Revision' => '1',
-                                               'md5' => 'b5394f171f4ac0441a01efa1b79945eb4d6a04aff4a7b91a5b25f6214c0d9615a5a88b30e13b523d5cfd252e4b8dd45fa30478cc1fbf78138a1b6ada34594aa2'
+                                               'Revision' => 2,
+                                               'md5' => '4b373a2ecad0691860087e425fea93ca9914330abef2b1b90ee39b4f8b6fd7298a832578640873ba6662383801e04601a8335062f20f4f787eff432c233ac31c'
                                              },
                'config/schlage/BE468ZP.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => 'cf44b4f428c8013422e2acc14b08bff8c2920e01bcaaef16ab7f655f14d38b6aa678d041bcf0910a44a90aea88b700634d6715df434e3870d70cc8226d0d4fa4'
                                                },
                'config/schlage/BE469.xml' => {
-                                               'Revision' => '4',
-                                               'md5' => 'f073cb3e764245fc7678d3b28426fc87008746c7a8e0ec85fdaaf735fa60d32109ca83883fdae89deef484729734faed302ef9ac6b6b506b62822581088f937e'
+                                               'Revision' => 5,
+                                               'md5' => 'aef83d8b45e8e4e4e66a4cac2c15f42bda6b1502dea3eca462854b387720571b11f6bc43b8c2684aa31886ab3c1e29d5e167308907080ecc6cf1e273b020bbf0'
                                              },
                'config/schlage/BE469ZP.xml' => {
-                                                 'Revision' => '2',
-                                                 'md5' => '3cef5311c3333e70360024e65d3d654051062df8493670fc10f81f0a30c5bea705a455ef87c8e606c6e6734bc024b672de22f96ee726472794e194d3263bf509'
+                                                 'Revision' => 3,
+                                                 'md5' => 'b0d05fedf2a1624f715fa0bb19927c29dc57cd3e17dea0697f410c562aece8405f968536f64f6de2a0b4d373ec39aeb13d2de77adcfdfbb7667e5e52b5137d8f'
                                                },
                'config/schlage/fe599.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '43f87fe9fd2b68691706d1cd0e7287c0a0340664071a14d0af6be62594b83ce4f8b0c335faed4201ff06a97745a3609c7df2412cca8394b70b2790346247e18b'
                                              },
                'config/schlagelink/41.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '48cb8a0b222d88bbdae8fe708670cf50f65a2eb412aca5ac01e21b330809a65e917963a63f7a969e5dd0250b2705363a2173f0641b21de44ce3d78f751c01156'
                                               },
                'config/schlagelink/itemp.xml' => {
-                                                   'Revision' => '1',
+                                                   'Revision' => 1,
                                                    'md5' => '4f3be313a7ae86c458518f7269cc51cc1df19d5900ae319c160c060dda74d57439c1d7f4b1ac881caaad1b726c3349a9c03a6c9d88103d864c31512c434908ab'
                                                  },
                'config/schlagelink/minikeypad.xml' => {
-                                                        'Revision' => '3',
+                                                        'Revision' => 3,
                                                         'md5' => '8d4411fdc3a3e9b9f943be980cead9e614c02953c82b6066466db7838da7079c5ffbf000fef4a28d8a52a6286bf9811a9c2dab8c79f3670feeda80cc398df4e7'
                                                       },
                'config/sensative/strips.xml' => {
-                                                  'Revision' => '15',
+                                                  'Revision' => 15,
                                                   'md5' => 'b9d3afd0be617a7a5d87ca36b07dc07ab3fd8dd2e31ffa99a519d4b94ea3ffd87b83e900c97e46a1fdb0dbfbd7b19a388354c1b8734fab5f96b64bad2e222fca'
                                                 },
                'config/sensative/stripscomfort.xml' => {
-                                                         'Revision' => '14',
+                                                         'Revision' => 14,
                                                          'md5' => 'e76c9730441ff8cd2eba5b52bdbee17109157076813bc628b873abfedc23a62d2a44b27e5f2b3919f82cabe4df44f75f1abfd30494edf2198ffb88a23bb55b63'
                                                        },
                'config/sercomm/sw-clp01-eu.xml' => {
-                                                     'Revision' => '1',
+                                                     'Revision' => 1,
                                                      'md5' => 'af10355b77d03b65fadf93f853057ded42d39a421df623b45dec230e9b55b34aef95eeded78e70212c02ae9e71745b45e63978706a3093d14a7f391a9177b560'
                                                    },
                'config/shenzen_neo/ls01ch.xml' => {
-                                                    'Revision' => '1',
-                                                    'md5' => '27118871f8fd4290219a3f2988620725e14515fe70545b90e47940f78cd8f41ab72675a8401848d9899a0f712dafa52d8eb5ece68d633cf3556bb3b2af9f6a19'
+                                                    'Revision' => 2,
+                                                    'md5' => '59404ff10eff881692c709bbcec4717aff3179e546253171970482f37188a1f38f77fc3f6231841b5d1c47d8d7fd8983138a53e98cb3b2532b34f9d31ee8f4b5'
                                                   },
                'config/shenzen_neo/ls02ch.xml' => {
-                                                    'Revision' => '1',
-                                                    'md5' => '54536587d5b748daabf86c94f72a62e6558c67a244f4da46e4c9dd63ba369b8c240a7f5f678ff58ea23dacf11913bfa1a23a11db265e715a089dc2f5e3fd3d7b'
+                                                    'Revision' => 2,
+                                                    'md5' => '9d83ab76ccbac89e559c98979142ead8da4851cff7529fb3ed5cfb9b7cb9f393f7ecb823be8c50e768862449b2310e6facec1c4979e8569c147df21541716d41'
+                                                  },
+               'config/shenzen_neo/ls03ch.xml' => {
+                                                    'Revision' => 2,
+                                                    'md5' => 'a0777d5e97620acc8b2b93df1adf51c848a45c379bd4e900ac3c9d9b8b61446273e2afb917faa71248c5ac467513b75050e0f6fbc5c3dc43f3aeadbd0eb85ca3'
                                                   },
                'config/shenzen_neo/nas-ab01z.xml' => {
-                                                       'Revision' => '4',
+                                                       'Revision' => 4,
                                                        'md5' => '11df6cacff870c04677b5fc3a3828281d6e59506d09c1696ded074a4a607b87f8f96a42277dd409f64d3f8a91ced972f4ada74a32bfd304e07c19a1bef427a2c'
                                                      },
+               'config/shenzen_neo/nas-cs01z.xml' => {
+                                                       'Revision' => 1,
+                                                       'md5' => 'ee9fd5fec7a2c813577ec684901961f3544684b85ad911002798cab563ee5dbab42014cf4ee41f240ae1a2e0095951cc31509a29e9aea602dfaeca8ee323d46d'
+                                                     },
                'config/shenzen_neo/nas-ds01z.xml' => {
-                                                       'Revision' => '4',
+                                                       'Revision' => 4,
                                                        'md5' => 'dfd1992f3edf1e2b0c8e4f4afb6d99575ccfe2ea7c0042668fedccf540993fa39743f9bf969a5038d57dca3e1ab0749d28e1cb0be35272c71248b82625f99c09'
                                                      },
                'config/shenzen_neo/nas-pd01z.xml' => {
-                                                       'Revision' => '5',
+                                                       'Revision' => 5,
                                                        'md5' => 'cbfd1220724bf3a460a69f6f278903ed790a8bf2dfd704e7a3d1e4c6467d1898a636ecd08bff6f8c1b855706268073648e8fb96f015bec3eec2b035c243089ed'
                                                      },
                'config/shenzen_neo/nas-pd02z.xml' => {
-                                                       'Revision' => '2',
-                                                       'md5' => '506ecedfdee089d52ff07117b0208dfaa2aca5a72d71d07ee4ce417a7760a1c8bde3139a5cb82c950b240de0528a3382eb59ec30ed3a4e530f71a7b69f765ba1'
+                                                       'Revision' => 3,
+                                                       'md5' => '2e766627891bbf6bc2a188f6542acbea522b6bb0515c9179fb329a095fcdc9e381efcaa2ec712adfa60bc41f61d7c493ef90f3533760c8cfc0e6cef8bf5bd0bc'
+                                                     },
+               'config/shenzen_neo/nas-pd03z.xml' => {
+                                                       'Revision' => 2,
+                                                       'md5' => '8ffca12a6fe2f5e1d524c36dc327023c29ab75b9f0291e706d449b78b3391d6d05456b330fdf21d0630acc102e8962f58aa615450ee53bcf7c6fdde8e8c3fc6c'
                                                      },
                'config/shenzen_neo/nas-rc01z.xml' => {
-                                                       'Revision' => '1',
+                                                       'Revision' => 1,
                                                        'md5' => 'd11ecf14ca8722b1e59f5cb5b20303be9bf66786e9a1d18038f2f0c760f8aeca673b31b993bda0369ed662cc96dfd3b314e8aff94e6fd8b1f2e981f51d90dbef'
                                                      },
+               'config/shenzen_neo/nas-sc03ze.xml' => {
+                                                        'Revision' => 1,
+                                                        'md5' => '4c3dae5db0aa2bc3141fa3a5a41e94fc8c77988e269dbdc20b9017802e48809fbc0d572418035a913781eb5272d88365ba2bd316bec056a1e1b0459cb0b1e7b6'
+                                                      },
                'config/shenzen_neo/nas-wr01z.xml' => {
-                                                       'Revision' => '5',
-                                                       'md5' => 'b98d36d9c20d3d44f588519b788ee9b58a51361b8185561810bd2e62691955316c46467c1d27ea75b458ea91491bd4c789f05ae4e2cbdf8a24bd03359bf04f11'
+                                                       'Revision' => 6,
+                                                       'md5' => 'ff8d4fa4f5296969721ed7f4a70fb471eca86a227194456a9efb4390b97a365840d171e89d683916e2afd722256e34063dd186f530770d26e110e0c8c3d6de0e'
                                                      },
                'config/shenzen_neo/nas-wr01ze.xml' => {
-                                                        'Revision' => '1',
-                                                        'md5' => 'c17eb0cfba1f1b8f72da898a978fb0dcc0f2293f36c5d06e0967211f8f8d938707a94b1381bbfa9e6b5d6db9ca24240854d0a75e94994ca3a9708ff89643a524'
+                                                        'Revision' => 2,
+                                                        'md5' => '09b5e4644764a9d6fc5482d100ea24d81ec17adc3a436fc7ad0a11259a9b7a770cb7a29b01b6027df1a984ea13a9dde264a49acdb425597260c0699920ecb33d'
                                                       },
                'config/shenzen_neo/nas-ws02z.xml' => {
-                                                       'Revision' => '2',
+                                                       'Revision' => 2,
                                                        'md5' => '7eccf1cbebc601996e0d6a552217c0b1dc8883cc78fdddb088303888d15832f7734d08f43c0991e8c9535a9dccc1e4b6f509802ed972477b4e45d499f45bbd5c'
                                                      },
+               'config/shenzen_saykey/sk-3007-05.xml' => {
+                                                           'Revision' => 1,
+                                                           'md5' => '8f7ab98b4ab3f08f2d56bf834a8dc001973d58b06672ad049426a332b32bfb8072817ff714e22e89f57bcfda113651eb809c8d0e9010f035176feb5050af4bef'
+                                                         },
+               'config/simon/10002020-13X.xml' => {
+                                                    'Revision' => 1,
+                                                    'md5' => 'd2164162991f71803dffa110f7a4c65fc181cb8563b63097f07362a1cac2e2ac4a88ec775dad27c875b82b28ac3197822c1a69e08ac0e21c7bf2aefe04107e22'
+                                                  },
                'config/simon/10002034-13X.xml' => {
-                                                    'Revision' => '3',
+                                                    'Revision' => 3,
                                                     'md5' => '8bb9641949c548b619a32d4169dd3f3b14367fd98bcc0168ffb6402fab467d0821f1a011e5be2987eab93ccad87692aaea9a63ee568722dc05e69c4a22359485'
                                                   },
                'config/simon/10002041-13X.xml' => {
-                                                    'Revision' => '2',
+                                                    'Revision' => 2,
                                                     'md5' => '0235c61b4520955df553e5ff62cefbb1a9afd866c63152503893d7bdcd98e9cf7d3a5f6dba69d3b307508ff5eca5cd33acaaf5e1716b89fdad748a9658af7445'
                                                   },
+               'config/simon/10002080-13X.xml' => {
+                                                    'Revision' => 1,
+                                                    'md5' => '1a3e7b1f9a01b6f74c66c28754902b29aaee0da9ef780f720f5c3a41eab26d41b5998eb96fd94420c291b72331e2f4982cb092277d90d209fb0501ece3c613d7'
+                                                  },
                'config/smartthings/pgc401m.xml' => {
-                                                     'Revision' => '1',
+                                                     'Revision' => 1,
                                                      'md5' => 'a4e6e5c467601d118de320aaba5443876d46288e5eac6a0eda63bda9df4398efeee59385724c9ea007d0e3c91b8f7f6025157257a8995c79193a24938e8b1c7b'
                                                    },
                'config/smartthings/sth-eth200.xml' => {
-                                                        'Revision' => '1',
+                                                        'Revision' => 1,
                                                         'md5' => '96f42e76742addc39b55aedb2c9341e15c3c9b90c6a5640209c5c47e47f93e3be3a2c588f20f7030b0cd83002dae36e207b0361ad320fd91b656638979ec519d'
                                                       },
                'config/somfy/1811265_ZRTSI.xml' => {
-                                                     'Revision' => '1',
+                                                     'Revision' => 1,
                                                      'md5' => '7def694a6414e50226cf75191573d1fbe6a277cefa3170461e7f35301b968e28494cbd9217871ea6808206b9b417c696facf068f7a40892cb790d8b47d916fd8'
                                                    },
                'config/steinel/is140-2.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => 'f5538ee6fa326e3f433ba8ad930b38dd8468db94991e8697555ff64c5546f47bd8fd086347e4c80e7f921206bc11b35238a4c78e73d6ea1e751b2f4c4849a884'
                                                },
                'config/steinel/l810-led-ihf.xml' => {
-                                                      'Revision' => '3',
+                                                      'Revision' => 3,
                                                       'md5' => '87ec6dd62e0f09a1c81645fdf0d54272791232633a2824f7571e2c44817cd418c4a5cd34b32141f36b8faee28eb93c63b22f514eb9d073d6d6055e24b99fa7c4'
                                                     },
                'config/steinel/rs-led-d2.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => '9f3767724904d6ce85e7880dfdfec9c1f851638e0e35045790cc35589d0c9cd653fa176c48a7b818b5b8218c861e2903eb8adeb313a6d4e8bb9a33a61dc90976'
                                                  },
                'config/steinel/xled-home-2.xml' => {
-                                                     'Revision' => '2',
+                                                     'Revision' => 2,
                                                      'md5' => 'abc03eeac10da39b8eb39afb7709ad9b44c819e6e0d43364599702a2d03f31bda2cfa395d72dbb5c4ece0e456370a1d39be41c5f99edc6fe3951fe512fe4162b'
                                                    },
                'config/stelpro/stzw402.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => 'd50042a91f9b2fa3e64d618b8caa2f64ea8ec9c74e7fa82840556dc4d5a8ce1b8d8de840c008ff36619d0cb31393f066dd8a7c286af328ae66ffe0d6b5816221'
                                                },
+               'config/sunricher/srzv9001k12dimz4.xml' => {
+                                                            'Revision' => 1,
+                                                            'md5' => '6b8efae2405b4520f0825ea4959244b607cb52fc20b9b0d288e57626057484089968806e94d85e0bb45b35ddfa24622fbf3a5e9a5653cbae419bf94be56a5572'
+                                                          },
+               'config/sunricher/srzv9001k12dimz5.xml' => {
+                                                            'Revision' => 1,
+                                                            'md5' => 'd14a319efd47406428b3cd0ad80956677c101dc153047aa431883ab88ba949bcdca9bb34a3d8bccaf093e80e4e49938380483f9cec54419138bab69fd9b586c4'
+                                                          },
+               'config/sunricher/srzv9001k2dim.xml' => {
+                                                         'Revision' => 1,
+                                                         'md5' => '41d10f53ad831e0c2fc8f41fbac2c190f16b367c62b26477a2eb14e168e39af1adac020c25a1852544e142baba6e0f459429fb5f9fd05942e368039b08e28a4a'
+                                                       },
+               'config/sunricher/srzv9001k4dim.xml' => {
+                                                         'Revision' => 1,
+                                                         'md5' => 'bf389f5cf7a510d2a12729585ea31ffead4f8a38ff7a4fa75c9aeb9ad7f6b1c748b5846b3e4270e381c266f091294c98431c7e7ffff582b4d8a3f2c73e54f460'
+                                                       },
+               'config/sunricher/srzv9001k4dimg2.xml' => {
+                                                           'Revision' => 1,
+                                                           'md5' => '1885a9182c782e2dc890aba1e3ad0b6b1f7f409aec258809f21dae57e2c52d6e299eb1afc85c7ab86b642d59378fa50a445195b41432239c03c780885a67df25'
+                                                         },
                'config/sunricher/srzv9001k8.xml' => {
-                                                      'Revision' => '1',
+                                                      'Revision' => 1,
                                                       'md5' => '3bac22970afda1d7629827057b92df49076f16258e76ee02674f0aaf0046a847642edb2c794740f2b8b1e9f38d0c2ec3932259b2803ff416f461757214bd0686'
                                                     },
                'config/sunricher/srzv9001t4dimeu.xml' => {
-                                                           'Revision' => '2',
+                                                           'Revision' => 2,
                                                            'md5' => '211998372694c7f418d774c3dab739339f07167bb37faa972ce076e4de2391dcfe369ea1ea335d35a9db66f9dce34ea0ac3dad054f2f734c864e1462cb0f5d1d'
                                                          },
+               'config/sunricher/srzv9001tccteu.xml' => {
+                                                          'Revision' => 1,
+                                                          'md5' => '9d5e9dcce650ab14636ee926ff6fbb2aad0ee2db3d661192c1d438184656b942dd1a68a14eb6c98337bb2fc021ad36e9755c1e9661b631cd83606e708d20212e'
+                                                        },
                'config/sunricher/srzv9003t4rgbweu.xml' => {
-                                                            'Revision' => '1',
+                                                            'Revision' => 1,
                                                             'md5' => 'a8754c4d9762da7d89d509475ce8f495f3e6d8a857c0dd38b10c0afbef1838ef96e417426edafb67403a011bc388c0dc80454fd64de935d9de38f642dc7bb9f6'
                                                           },
+               'config/sunricher/srzv9100aa.xml' => {
+                                                      'Revision' => 1,
+                                                      'md5' => 'ce5b3d47d946173fbb99e491614fae353e440732c22bb7208655c44a7e5374ff49ed2ca8f6e39844e43eae88fde38a0aaa057b9770ad90cc8703355cb61c9706'
+                                                    },
                'config/sunricher/srzv9101sachpeu.xml' => {
-                                                           'Revision' => '2',
+                                                           'Revision' => 2,
                                                            'md5' => 'cfa47e28a8463496354a30d2998b5b11dab834b2ffa1b8e91a687d2ec4e9e41ef73d38d058dd60911aa69cb1164808da94b88d627744250e5abd576ea5f8d1fa'
                                                          },
+               'config/sunricher/srzv9101sachpswitch.xml' => {
+                                                               'Revision' => 1,
+                                                               'md5' => '3851b6d24fdb58fe341d96c8faa16ed3f584e6a76b741ff8623b692082004602199196458bf1c123c5b1a54f1031369d6ab12db18925d240e277b27a1e307fdb'
+                                                             },
+               'config/sunricher/zv2835rac.xml' => {
+                                                     'Revision' => 1,
+                                                     'md5' => 'ab598e4f8d3d9b654023428799d1a381f5fcd8d1cf1c97bde4512b8f310be7f026294f7798eb17cdcd07072058be5c8514fec23f5ef713dfbd3d4a5efaf4129d'
+                                                   },
                'config/sunricher/zv9101.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => 'adb7779262cbea1eb2832f78e67b253cade102bcf7fd24aa14db965dbde11a8ff073ee654c7bf1af0c2c4f44507b97feffdf142ed8261ff163ada4d766b0d906'
                                                 },
+               'config/sunricher/zv9101fa.xml' => {
+                                                    'Revision' => 1,
+                                                    'md5' => '1831cf691c954aa9546e99e5f8218b2d05d2aec3c850ee0bbf543947fbde7bfcf20b8e47fb232b4e43d2c6245aa15c94602b1efe48b1553b5daf75a6adeaa9cc'
+                                                  },
                'config/swiid/swiidinter.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => '66525f843d8663f34af93e65b6979059e294139474aa3f63974f1ddb5e29c431e87ae0deb220a40169028a5e9e7c8553d2b24587afb905703ff14ffb0e6252ab'
                                                 },
                'config/swiid/swiidplug.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '1de9d7c988ff7753ddf936270a4a2abe3e1de1d5e7e546da3f7c02619dec1f875029af669c9607f398f2634833d0b1f40a34e72cf3c8b2898a644e46f980930c'
                                                },
+               'config/technisat/03009496.xml' => {
+                                                    'Revision' => 2,
+                                                    'md5' => '0bd0aad3afe3672049f401e80f8a37579716823e07c924ac161f865a453c2ed1a0013ebf018d841afe915cb95fa582dd74ebe12efae9bf7707d87205d9cc2df7'
+                                                  },
+               'config/technisat/03009497.xml' => {
+                                                    'Revision' => 2,
+                                                    'md5' => '34c5e7919ba864bac4fa474f24c6d345cefb5bab88e0d1799a6001f6bec1d5aa928377ade84b8440aff857a1e1748939bd3c7a81eb3d0f541c98a83e54e48231'
+                                                  },
+               'config/technisat/03009499.xml' => {
+                                                    'Revision' => 2,
+                                                    'md5' => '19371e5b7799c19a07ba4a16bf4d5c546e5fdc8ad9dd728276f415a930cae3c66f0249f310e8e331b4f0a6f9a7551f344cf8c11d699fc6f639c5f6450e356159'
+                                                  },
                'config/telldus/tzdw100.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '00dafcf5a0bb13180d8cae532067dbd8833c65374d800fe02134732413c02ea4361a2597bfe4bb0466d0bdde93216cdea5474b8aecc3a9d644212f989401bbdd'
                                                },
                'config/telldus/tzwp100.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '632f66e9679859f3709bb56fd682d027b4076069e0ffde81fd5c90b01e5d1de5eaa4626a9dcba71257aae8abdc4454b50f4540802a273f4a1fdcd7fb53834d77'
                                                },
                'config/telldus/tzwp102.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => 'f68f1a70eccd43240a3f87b647237abb39a5e66e33be3ad413dab356be16c6a4b6391cdfe3cd62d0bf02a0b4c10ea53d8724981040d7911d29fe3db560418cf7'
                                                },
                'config/there/800z.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => 'b065d0460c3da5e6bab88657b36d0c840db877c3c0c89c26313d7fd4bd12f7f57af2045cf89bcd689449989f0902f3ae3c6487fa9842dc45ca4538931e4a134e'
                                           },
+               'config/thermofloor/heatit-zdim.xml' => {
+                                                         'Revision' => 2,
+                                                         'md5' => '627f5761aa76f8e6046e8f0e82d4d6b50a1395f76afb05936ffc2b42f95fcc15d490b4f33d0083e2300d8de65a9b05e66ceea516776ca911c2473e8f46bdbd10'
+                                                       },
+               'config/thermofloor/heatit021-v1.92.xml' => {
+                                                             'Revision' => 1,
+                                                             'md5' => '9839f51c4a1fd1c63a2d12843f73c341c329222b6032895805026752671aa2d58d7513c3d07cd7a9090e6dc7866faa19f7d7efb20f3e37253de0ad6ac1604dea'
+                                                           },
                'config/thermofloor/heatit021.xml' => {
-                                                       'Revision' => '8',
-                                                       'md5' => 'f95dd11de5275bd29d3ba1f459bb463ab3d1280d82a23a428486abdd6be9244bb79ee66e2c0c1218512402f7acc8aebca81d9acf2ae674173e20b100002c276e'
+                                                       'Revision' => 9,
+                                                       'md5' => 'ccb695b1d42cabdee7c16337e69ddc495f7b7ce6bdb208be7f2158c273c566957299a0406037539830b47cdcc853f20f015a3c91976dbf9a76db672fbfd30faf'
                                                      },
                'config/thermofloor/heatit056.xml' => {
-                                                       'Revision' => '3',
+                                                       'Revision' => 3,
                                                        'md5' => 'd248ea9d79f6da656599bd9237cedde63af5d5789075d9dce1e355980053d8c25d7439a9de79778280f6086588b595f1bb91313e2ca0e42b9bf850c84c78a925'
                                                      },
+               'config/thermofloor/heatit058.xml' => {
+                                                       'Revision' => 1,
+                                                       'md5' => '99b5766881cd43d7ca0bd73e3492c11fbbdbdbfc74a7783ba78e44aa6ec97b84d85ac675bf04ed33403abe4e2a9e741a25264d8a7699261038e7b9f143624336'
+                                                     },
+               'config/thermofloor/heatit204.xml' => {
+                                                       'Revision' => 1,
+                                                       'md5' => '874663630d7aa76d3b5a0c4161cd8ead079ad2fe2dcbc8e9fbf8e6f6cc9acc21083e3441e3b36f6427459ce208cfc209304f3dca22b364e88adec579c79c4174'
+                                                     },
+               'config/thermofloor/heatit20a.xml' => {
+                                                       'Revision' => 3,
+                                                       'md5' => 'c230bb573e64439be9d40720f4c5a72e901018078ab9d778aaac156666e248686706fe9d81f7b19a9ada774d9284a8a05c4ef1ef2aed9fb5a762c5c05ad1547e'
+                                                     },
+               'config/thermofloor/heatitz4.xml' => {
+                                                      'Revision' => 2,
+                                                      'md5' => '2be6250742eb2ed930e0aef28513fb85da3dd37f00824a45c0a7af60797954ec46ccb32df5e4ec15a18e48e8cfe199639f77405d76749455d7850d0869be816b'
+                                                    },
+               'config/thermofloor/heatitz8.xml' => {
+                                                      'Revision' => 2,
+                                                      'md5' => '1fd512de745b166c79f9d16742f87c10b86ef0c259b504f3d2cb9ac081c22ed96c292a68394a5a7be110aafffa67ee82cb54d2f28e6d1c48cf51ff26fc32428f'
+                                                    },
+               'config/thermofloor/heatitzm.xml' => {
+                                                      'Revision' => 2,
+                                                      'md5' => 'f824351dae1ad1ff2401004f06b391c690f5c93a746b5ffec10bbe7e9ae27621144937d27e599d28335b050ed91780d930ac66d45d70b52fa1d4c1bcbc892d52'
+                                                    },
                'config/trane/TZEMT400AB32MAA.xml' => {
-                                                       'Revision' => '3',
+                                                       'Revision' => 3,
                                                        'md5' => '84e5b345ec16db7d5f5c042815674ccc0ed3eba634ff2be99fbbd6b429fb27828a9a2353281bc2979ae43fbe0a86eebab4030b571d1cb03021ffeb678b7a2f04'
                                                      },
                'config/trane/TZEMT400BB32MAA.xml' => {
-                                                       'Revision' => '3',
-                                                       'md5' => 'daac367b1c11b52d9dad3cf8432b9485d818618526b7062b3a6d72b699d473927338a7dffec29dcbaaff5cc90ba9261e361b3240eddaa4b72e7c00529ae69193'
+                                                       'Revision' => 4,
+                                                       'md5' => '79a3d5ac283db2152c07a4ea52077b69ea83ea0b82e01265367130a649bba9c506777ca0d226ce8d8f43d4b296d1315ff4fac3030b90f3b3f9b1419b186c3fc7'
                                                      },
                'config/trane/TZEMT524AA21MA.xml' => {
-                                                      'Revision' => '3',
+                                                      'Revision' => 3,
                                                       'md5' => '46e5a829940d1de88207f121808a62c7526871d0740875ef2976f43eebaad9e629651c266bb458c8843da0b0e880532b59d707f93b3e57f2eec4dfbfd04b5853'
                                                     },
                'config/vera/vera2.xml' => {
-                                            'Revision' => '3',
+                                            'Revision' => 3,
                                             'md5' => 'c50512474aef869c8f849d9ea2d42bd28dd89de9198c3bb6bc95eff66e67ac50567580ac5a3cc9bdfbdb49e9c1fe036d4e6e9a4987a1135dc5d2b3d0d537dbe7'
                                           },
                'config/vision/1701.xml' => {
-                                             'Revision' => '1',
+                                             'Revision' => 1,
                                              'md5' => '2e37f21db47a1c100f6631e34105942ae05691ac224e955e9e46352ef8560e6890a59028573d202d8283684d5851b82be04e7b7d6baa2160489f2068c44b43c8'
                                            },
                'config/vision/brg1-433.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => '7f9cdf21fd4ffcc3b7827c024564774932878b74faf99090321c4c9ee4f33c3326a66fc07a233e35ca058198af676a588f6f41e31506bbd1fdf14c59c2459a22'
                                                },
                'config/vision/zd2102.xml' => {
-                                               'Revision' => '11',
+                                               'Revision' => 11,
                                                'md5' => 'd7308c12bd68905b955e4c729d96e0b3279e35a6fde798c6650f077a61391fcac0514c2ee54933c30c5bb1c73cdb85b00ae79c93fe7be775702070d2c84eefac'
                                              },
                'config/vision/zd2105us5.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => 'f520919cd7c02a48643a747d677ae891a96960ba84a4eaf90402a7d8a71f801fc924115f82190901eb658e49ad22d84ce5e7d407240b69be011b19373d10ab1d'
                                                 },
                'config/vision/zd2201.xml' => {
-                                               'Revision' => '5',
+                                               'Revision' => 5,
                                                'md5' => '3186992dc8f959af67ab8dceeedfd6831649dbddd1d15350a854467d6f0219bb4b6187a7a7995a21133f6d58abc6d77129dfd2a34301d17e8a7ef57b04ac1429'
                                              },
                'config/vision/zd2301.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '5dbdf01ac0aff9cfc9de47fd4bff6d26642b39a0f5b9a98f9590250f637510370ee3e00963cb04b3d1303bcb74228f3b7d2f307105f69cf6233c4fd9cfd4809e'
                                              },
                'config/vision/zf5201.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => 'ae0d16547c69a3cd390ef6604cf68d2b1645e5448e8bbaabbd47c0aa5b90403b21317aef9b2a72f59a48e99169aa2a5c644b3b075c7a067a9a4c199c9bb184b0'
                                              },
                'config/vision/zg8101.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '04753ab29b0e8827df53af191b9ea264a510c8b50265ffc75d4574d4d299d70fd790a1ae104c22f579ad56fffbf546cc2efbbf71e1c6ee3b6bd3eebdd3e788d2'
                                              },
                'config/vision/zl7101us.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => '9ad8dfe8ea6f9c603a9a960103592fdd5988175b4cba7cc14b7b3728f5aee1d431d097f7728535078ea1da1866924490409fb016ce12ab17c52ee2a3d2ba14d7'
                                                },
                'config/vision/zl7201us.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => '3aa000512b5312b89d6f7e940e632f39fecdedc5c6f1e11b1f87ba64aba6cddb4c6d96f0e27d8600f35840132110be105badbfaf6ee0c021f11c19b96d4627fb'
                                                },
                'config/vision/zl7261.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => '6765ebbdad546c3073673446a63a7b2bda080ec606ea6fccfedd4a49d76d54c1e48fc3c030eb2e44060751012dfde67b564d6c68d9faf40673d846e45b914e47'
                                              },
                'config/vision/zl7431.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => 'd8437300f7533463a987685da39e0412fb06ab2615532125d51530c0aedff578164ec5cba8593b3bacdb7f15623ed11981f5a87169cf6d6068dfaac45810382e'
                                              },
                'config/vision/zl7432us.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => 'b4f4a7ffb44d5d9f74a9c3003b7cacaf1f28162555ac8134b187804369cdd23923e20e67f0a58141a79ac920a52294bc1ab560dd498530c3944507e144777054'
                                                },
                'config/vision/zm1601eu.xml' => {
-                                                 'Revision' => '4',
+                                                 'Revision' => 4,
                                                  'md5' => '607da3bf3b0504dcefd2d6fb9312b6c3d21c1cabe6d1acd77b595aa112b0545fc3ebbfece0089796e9ab0c0b41f254ff28ba2e9f63d4f94615c8251064305dc0'
                                                },
                'config/vision/zm1601eu5.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => '0f55aead2c32ce164f7b85ce9a7ea7d718d152fd8840ed48446d662f32144f6f706e17411f6fb5048577bc98c4e6fbb3f4974f6924ed0370f08f8cd44681cfba'
                                                 },
                'config/vision/zm1602eu.xml' => {
-                                                 'Revision' => '2',
+                                                 'Revision' => 2,
                                                  'md5' => '298b94cc8f598b57409cf5db86304998053639cd0d74a44dae05f5eb69ac4c91ce7e034a1295242fb2784b52271c2d885675b72e8693650b79cd19c437387113'
                                                },
                'config/vision/zm1602eu5.xml' => {
-                                                  'Revision' => '3',
+                                                  'Revision' => 3,
                                                   'md5' => '3e86f5e2fd0bd4a9e2ce3c433e017909efbf006ef6c542328907584531bda2f060264e2fa8c30a9b9d9ae644b772d67bff969a7067f8ca5669c789d360ed75a0'
                                                 },
                'config/vision/zp3102.xml' => {
-                                               'Revision' => '10',
-                                               'md5' => '5ab5e86cad871f1ec4153281ad321e3f387f7e49c41f684c1c9503fe29644ae7b91493bc13a4be07c8325bca365aeb05eef22322d9acdf9dae5c84888b4a0833'
+                                               'Revision' => 11,
+                                               'md5' => 'df1f51d8eede5ca5f9fccd106a2b194692280eb96f383ebdfab4035632bccb3b6a8e0c1a0d44f3abbd7b18e9fcb3a91befae4cd35d7659937eff93116ae4526b'
                                              },
                'config/vision/zp3111.xml' => {
-                                               'Revision' => '6',
+                                               'Revision' => 6,
                                                'md5' => '54c3b06afbd284c83a935d5c18ccf21340d81e82188e5d88d1d52ffb655e0e5713aaadb28d9fbea214898dec7e2213816f3ef26dbae8aeafd923029b0ad8c46d'
                                              },
                'config/vision/zr1202us.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => '30d2db0054dc86300fc2fb0cee751cd14d017781764f7894c9e5b1873bf1489ff6da0b5f99a29dc6ba5905a6e98b73544d4be7d79824c43c6e8ac9b261f42aea'
                                                },
                'config/vision/zs5101eu.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => '0de921fc8bc657273b35f1b25aede7c0581ee93c0ea21ec57d4b1e61e405a88ed8a433f1ae465d2d0fc67f2e121ca274869eba7095e56f2e9a7b27c95f59be0d'
                                                },
                'config/vision/zs610eu.xml' => {
-                                                'Revision' => '1',
+                                                'Revision' => 1,
                                                 'md5' => '372e2a37557c006447508e63779aa958c8929369eb36c42c6207e048b28bf0c3322ed21f4a0ef8f58a5f0273e0799fd0b7f3d09fc2e0bcc944fb775888470e92'
                                               },
                'config/vision/zu1401jp.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => '6c3a3747736a8dbc94d55649dfac4757ed1e7f178e17dcb88b0515ec105b97fd51322047d36540fddf38a8a8663f4c95bc2518dc022e4c6eb4a1aac940206b04'
                                                },
                'config/vitrum/vitrumI-Dimmer.xml' => {
-                                                       'Revision' => '3',
+                                                       'Revision' => 3,
                                                        'md5' => '238254ee2cc5feb7effc709529fd6b4811416284cc61215fda1384b72ccba66314b152af7684712044f1008a6b7c063ebcce7bed8872c1e657b6d1f8c048c18c'
                                                      },
                'config/vitrum/vitrumI-Switch.xml' => {
-                                                       'Revision' => '3',
+                                                       'Revision' => 3,
                                                        'md5' => 'd417c83e11e28dfed63f1b1d685ed8c662c1d9733ec7d1bd1a3d42d648ed70361ee4312f1408cdeedeb5ce8d984e3e7b38f4a11f194dc35eacf359f6121c6040'
                                                      },
                'config/vitrum/vitrumII-Dimmer.xml' => {
-                                                        'Revision' => '4',
+                                                        'Revision' => 4,
                                                         'md5' => '94048824ccffd27bf338bec81a6ac3f4d1b8c0d1c7af307ad1059986f99daac77522976762d51c13fc51e4710c2f6ddde1194d0502364600afc396c3f22d4104'
                                                       },
                'config/vitrum/vitrumII-RollerBlind.xml' => {
-                                                             'Revision' => '3',
+                                                             'Revision' => 3,
                                                              'md5' => 'd75c8a6739a61a0aa1c1ff6c18a95c06688322ccd131aace8610270d31fa676c4c29d48107643a7ac735d39e1d5a77ad8465c31c47dbb2a7886eba551e8a7c9b'
                                                            },
                'config/vitrum/vitrumII-Switch.xml' => {
-                                                        'Revision' => '3',
+                                                        'Revision' => 3,
                                                         'md5' => '1809b19960cae19a6a0216b9b63c30fac4fe14ec6f0a5a8f7b6346dff0461f6102d6ecb5e2ff069163e2b58b15b9b1ed9980623905a735273ca59b18f1915ed7'
                                                       },
                'config/vitrum/vitrumIII-Dimmer.xml' => {
-                                                         'Revision' => '2',
+                                                         'Revision' => 2,
                                                          'md5' => '76f9677eade9e7eef265a6f907b4caf36fac9b6cd076a4ec92622f154416d224cd3e7747925edd95401d95cf1871a20d3d227a8f46fd7c6e090e757d1bbab080'
                                                        },
                'config/vitrum/vitrumIII-Switch.xml' => {
-                                                         'Revision' => '2',
+                                                         'Revision' => 2,
                                                          'md5' => '76f9677eade9e7eef265a6f907b4caf36fac9b6cd076a4ec92622f154416d224cd3e7747925edd95401d95cf1871a20d3d227a8f46fd7c6e090e757d1bbab080'
                                                        },
                'config/vitrum/vitrumIV-Switch.xml' => {
-                                                        'Revision' => '2',
+                                                        'Revision' => 2,
                                                         'md5' => '76f9677eade9e7eef265a6f907b4caf36fac9b6cd076a4ec92622f154416d224cd3e7747925edd95401d95cf1871a20d3d227a8f46fd7c6e090e757d1bbab080'
                                                       },
                'config/vitrum/vitrumVI-Switch.xml' => {
-                                                        'Revision' => '2',
+                                                        'Revision' => 2,
                                                         'md5' => '76f9677eade9e7eef265a6f907b4caf36fac9b6cd076a4ec92622f154416d224cd3e7747925edd95401d95cf1871a20d3d227a8f46fd7c6e090e757d1bbab080'
                                                       },
                'config/waynedalton/WDTC-20.xml' => {
-                                                     'Revision' => '2',
+                                                     'Revision' => 2,
                                                      'md5' => '8fe2947f5d31a45af7828268702bf711c46263cde3347ce3d6922558f17c98edc1e2aba13f17a4881f45d0dd0ac04977d61b3d417251d491b35e2f708fcb02cd'
                                                    },
                'config/wenzhou/sm103.xml' => {
-                                               'Revision' => '2',
+                                               'Revision' => 2,
                                                'md5' => '0544e08b5f873a7db0fa70d8771a7d6ab7e0ecaabccf7159fa56e5d4f65a6585e098763beed0cf8fb019c5ca10738194a18f73f66a5c29bd570cccd4f736e77b'
                                              },
                'config/wenzhou/tsp01.xml' => {
-                                               'Revision' => '5',
+                                               'Revision' => 5,
                                                'md5' => 'c724909421d7301bb7597c4360b536965ab40649a7db2a054fb19cfd2c29efa18ccd104217510de5814c1e75b387873a042ce6e0650a8a6f23219656ce29cc69'
                                              },
                'config/wenzhou/tz55.xml' => {
-                                              'Revision' => '3',
+                                              'Revision' => 3,
                                               'md5' => 'e0e3de23861dc7ff105f07dbaf1d24524364357fceaa2bf4b55f531b28e25f34ccb3f2af802cb1befe5bf41a6c0182f0865bb165c1d16482a68e6c046349b9fd'
                                             },
                'config/wenzhou/tz56.xml' => {
-                                              'Revision' => '3',
+                                              'Revision' => 3,
                                               'md5' => '731e37f2f19957d94f40921c7eaf52c9a304676ea91684e3e59c09289b560f17c0ad9079fd9b1dff5054f40382d28cbfed1666bfb7f98b8d958928018c91a016'
                                             },
                'config/wenzhou/tz56s.xml' => {
-                                               'Revision' => '1',
+                                               'Revision' => 1,
                                                'md5' => 'd59911b92fff93130529f8c226086cdf87f13bb80e32c52adabc91d1bab6030015ccc6ed67c9dc1abdd549c239464b1729921f17ca9e4c45fea55ed135d52f00'
                                              },
                'config/wenzhou/tz57.xml' => {
-                                              'Revision' => '1',
+                                              'Revision' => 1,
                                               'md5' => 'f5010718afca7611e7c7318942c0d01211706a79c746ba0c7e2f3df5102d79b9edf2181e071f8134bc1f56b44020f87815b4e0a7b01dcd6b0f8af11ec92aac2c'
                                             },
                'config/wenzhou/tz65d.xml' => {
-                                               'Revision' => '6',
+                                               'Revision' => 6,
                                                'md5' => 'c142e5b7ca34ce4a6f4cbe242ea63587711cbcc454dae6ed28c923a894e11c97f06442523ffac17120c14376674d8eef286115960aac716383ae96afa0b15e4a'
                                              },
                'config/wenzhou/tz66d.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '33cdf081b881ef7aa341f5372fba065de24dafed60e3aafacabbd25d6092314d97bb56d89fbcfbd2e120531f99f94c68cd66892f12e26371689c6a07efe1b513'
                                              },
                'config/wenzhou/tz67.xml' => {
-                                              'Revision' => '6',
+                                              'Revision' => 6,
                                               'md5' => 'b62b4bf4d4b4634460529385eb1427e7f396dfa29cf510a34e1cdb614cfff959ccf8bb5c5604b20bc012955581884efb8808e4c9d0d777976974ffa4f2bdbde2'
                                             },
                'config/wenzhou/tz68.xml' => {
-                                              'Revision' => '5',
+                                              'Revision' => 5,
                                               'md5' => '1692f252e441eaddb2efb274f9b6e9b43a60496f074c8e911c0b088699db1833164278bcffc2de8cdd2a0377f63ecd2c8ffb46655042350cd0db86731619a9ae'
                                             },
                'config/wenzhou/tz69.xml' => {
-                                              'Revision' => '7',
+                                              'Revision' => 7,
                                               'md5' => '6cab1b3be95dd92fca2e77e4c6320cb6783519302b711502fb5ba9012d8bd0c958c4759b7e3bfd613714f08d0b96c634aed3485a1217bb9277d4e2024666c05c'
                                             },
                'config/wenzhou/tz74.xml' => {
-                                              'Revision' => '1',
+                                              'Revision' => 1,
                                               'md5' => 'c468eb5e6431d0b66ff94aa18bbdfd225ef03a95dead2458078dca813074e34b206c949bb685c05a9767f24b508a22e6a1f1a702f1bd591256d1f236acfa2e92'
                                             },
+               'config/wenzhou/tz77.xml' => {
+                                              'Revision' => 2,
+                                              'md5' => 'df47b99135b0b10975717373c17b9feb15cfbba1a4c21542f939950495c5bab2f3fa285237bec363192728b8db58d4f9b00fe3d8d6f1ec9edf93517ae01a9025'
+                                            },
+               'config/wenzhou/tz78.xml' => {
+                                              'Revision' => 2,
+                                              'md5' => 'c796f0198124f0fe0f76e7e0f97956464f6360648ec188c09d54593cc41041b0a7b45ccc8416bb22aca8cd644b22976ab87ff7f121714a42f72d3414a5300d06'
+                                            },
                'config/wenzhou/tz79.xml' => {
-                                              'Revision' => '1',
+                                              'Revision' => 1,
                                               'md5' => '2bf67e52c7ea08ed1669c002b5d80ca5101bf88c0c0565c1798d177f7b70a21981770fe89a36d07588c2e562a7728b543ae7e64167ad431a6028a6897dff0f3c'
                                             },
                'config/wenzhou/tz88.xml' => {
-                                              'Revision' => '7',
+                                              'Revision' => 7,
                                               'md5' => '571fe7897815e47fd1b640f2bdd741b9daee276510e8348bd6e9002e018a8e16c67b00c94ca6f3d0ce15c847c61ae2eaa0146772b7a8c330aab89f31935ed3b3'
                                             },
+               'config/wenzhou/tze96.xml' => {
+                                               'Revision' => 2,
+                                               'md5' => 'f98162d3e7d76b60d0ca68d0ad1e4f5f66259b63715e54df16f19fd10b2c572660fbd60bda464e6e2940b1b66bedb442ce95fd75dd6ec48e4b200027d390887a'
+                                             },
                'config/widom/DRY.xml' => {
-                                           'Revision' => '1',
-                                           'md5' => '8f3fb96319999fadb2a0ec7f3f80266588c465a022ef2e51b51a8d2bdd431fdaafd705e412a087e71eca17b9bf8282dee4b66975832fc95619280e1f31708179'
+                                           'Revision' => 2,
+                                           'md5' => 'dbc331ba0466621612841ab0934432f3c8a7f8e1ba8747047c171690458ba373fc426d217749327f972de6e933d02270abd135a659f096b80968f55fe3d49848'
                                          },
                'config/widom/UBS104.xml' => {
-                                              'Revision' => '2',
+                                              'Revision' => 2,
                                               'md5' => '6843a6c3d929b4e54a1751853942e8cea1651c35f39722138cd21ef47746103881cf18242518f9c459087950fdf29f051ec90b56f844b1290a47db87d8a2c47b'
                                             },
                'config/widom/UME304C_S.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => 'cedd8b8d8c43c00c9213bb2aec31fca162f048abe3543a7da214bf4ae65eab07429ad6ed9f4c973aa0da220d9243e348b8b4351367fc856b759cd275fb2fb1b7'
                                                },
+               'config/widom/UMS2.xml' => {
+                                            'Revision' => 4,
+                                            'md5' => 'd883982d6a5c8c9051c7b91f6085e305eec436c156acd84a29ec4828a2d59c09dd40713761b1af9715a255f54bb9e9f43ed62afb9d7a632a7b68262c08c7bfc0'
+                                          },
                'config/widom/WDS.xml' => {
-                                           'Revision' => '4',
+                                           'Revision' => 4,
                                            'md5' => 'd990ef6c9e1876d3980827d7e4c084eaab69193252d3bfe118a87b5307e0583eee1f5454ba2e46e89b805802274f857fecf3e9bd5797b3d59745292729f1d6d8'
                                          },
+               'config/widom/WDS2.xml' => {
+                                            'Revision' => 3,
+                                            'md5' => '65c40370ac24ad380200889852a6e11bac19b9602f55dbcbf9b60fbce1836402cae2bbfebc9c5fc70bae76696fc602e0e4f405ae6f7b6b8dc280a287dad5d63a'
+                                          },
+               'config/widom/WSP.xml' => {
+                                           'Revision' => 3,
+                                           'md5' => '51173e77f7aba3abd136dab21471d3331dd5a10b6e91bcf8b7196fc3406b2047cfaf4e29fc01e6d021e994ee94654e69568aea3054bbe74f31d0af2bd416a230'
+                                         },
+               'config/widom/WTED.xml' => {
+                                            'Revision' => 4,
+                                            'md5' => '810972a874be37eb108bad40e4ddcd4b55ed3a0deeead8e011cbfeb051df44015a6af4e298d4f206f4ee08fb83dcb7a29bf01c56d069c9748821235b4a6c36a3'
+                                          },
+               'config/wink/wnk-mot1.xml' => {
+                                               'Revision' => 1,
+                                               'md5' => 'ae12eda098b6ce28ea5dc3614d24217dad04f2ab61bf3c2da40dd23ad8d5ffe4cd65b7544f29b8ecc23e514f90df168152d133ac12c873657c0b09e44a77fbaf'
+                                             },
+               'config/wink/wnk-sir1p.xml' => {
+                                                'Revision' => 1,
+                                                'md5' => '352c501c9d64d726cc42a4fa095b659d22f83e57bea8062b247e35c0c30358a1e321c82a511eb45fd633fc0d3205f38e9a7353e8ecf5f00d572b2ec3c0776059'
+                                              },
                'config/zipato/MiniKeypad.xml' => {
-                                                   'Revision' => '3',
+                                                   'Revision' => 3,
                                                    'md5' => '1137446900ed79f792ef14c677ae4e99aeca62b977ef3acfcacf114784f6ea82f09471d7c498c977cdc92228cd3e2903afc445f0782186766c7ae21f2dfdf5cd'
                                                  },
                'config/zipato/RGBBulb.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'f0e8b19dbd8492ebd4751bba9855b96592b66bfe06e6a8788831e35e89a46f14f5376651995f26c0f966e742ca880cfabb26af0696d632195711f554949cde7c'
                                               },
                'config/zipato/RGBBulb2.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => '3ab581bd5b844da008afc3e601f8486bfd9b4e89f627d018b815955a4cee2a537eaa0ef2714ad4ec2e1b9ce69064e4942a29f1f8703f19181333e13b9ebc4c58'
                                                },
+               'config/zipato/ne-nas-ab02z.xml' => {
+                                                     'Revision' => 1,
+                                                     'md5' => 'ed86cd99980acd98951775be9759aaf72bd9641b1e773bb52ac4a9b4d5a0469cf04fe4ee3f722b5645c8e00268add952b41dc461c816b8ecde9d65f30f1d01bf'
+                                                   },
                'config/zipato/pan04.xml' => {
-                                              'Revision' => '3',
+                                              'Revision' => 3,
                                               'md5' => '73a6ceb8dfa58662bf133853184b7786947c388d9764cb4cc7a0d1ff9f02c1f6faff90ba930d6a96da589abb4c779003e1eeccedf9a663c3aa76408cd3e65d8d'
                                             },
                'config/zipato/vszd2102.xml' => {
-                                                 'Revision' => '3',
+                                                 'Revision' => 3,
                                                  'md5' => '3a083cdd5300ea8233f80836cf92de77f94789d3621a23911c103d8789ee0fbe46ee50f233e2f6109e0407e9b304072008cfb1efe7a7108194921cfd4e905511'
                                                },
                'config/zipato/zp3102.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '9b6e2104c590a66f620ce51e77f1318cb413f690600c932ded4d650e2cf822a085eb2ebb4f3293f6a48cb3c408d15b56e8496923143a5500921fc37b76bbe18d'
                                              },
                'config/zooz/zen06.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => '3272685c18a9649d5b938ec972f5d4fc8732fe16a5f2d5e44c42a8023f2051e1844316320a0bb11bf5521dd0a854c8899384ca629725ddcbfec89432382d8ea1'
                                           },
                'config/zooz/zen07.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => 'c96f925786747bb098e22f5ecb671dc52d51736dd1e8c9a83ab84a77bcb9abe6bae0da1f86af32970da18b2f2f3e987bd2ce4bd1cfa5444f702b5ea32e2dca72'
                                           },
                'config/zooz/zen15.xml' => {
-                                            'Revision' => '2',
-                                            'md5' => 'fc33bd7bbe32980ecf49082d92401742b4c19a8906a736a99feb4ad5208cecda504f443aa3fcdb21fcea2de6702db39d876215fb3a2e827dfa7c05ce15568ddd'
+                                            'Revision' => 3,
+                                            'md5' => 'bee21869106becfe025892a4f334af530450727b855ffe9418a110bfec9534a4855eca768f82f2c2ad3a8c0e78caf0cba704f1570850bcb28dcb506a1eddb2bc'
+                                          },
+               'config/zooz/zen16.xml' => {
+                                            'Revision' => 4,
+                                            'md5' => 'eab1371f2c81d3dac4edeb677afee22eb684fa157dff73bc89e95c93e0421abd949c382b4f2d2203bf6d4d981e913ed31a3080e649694ffdba1ece3fdc46295a'
+                                          },
+               'config/zooz/zen17.xml' => {
+                                            'Revision' => 2,
+                                            'md5' => 'c2cf58e4c44fba886e7470fdcc8559ed3f574c3e6f34c02a87094d82df463db20996182e56df000eb211022259fcc7aa2a7cad0089783ed511422bccc287bff5'
                                           },
                'config/zooz/zen20.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => 'ac2c564441a145b501c401ca5fbb62806ae9d69a354bf2abebce04f50e6017c10d3f5d3465975ac771cb047b31d4bca8e1fde9f5c910a36d0bb958c3c1b57826'
                                           },
                'config/zooz/zen20v2.xml' => {
-                                              'Revision' => '2',
-                                              'md5' => 'fe4cd67071d47c622e7cb9ac99b34c43865d8387df219347649fc2ff2b73b11c8763450abee39fbf884be7297ca5b286276dd3b69b5bc93f38b068ef12911821'
+                                              'Revision' => 3,
+                                              'md5' => '24682aa795ae957a903d0b7f75dffa0262dcf814c5373eeb3fd09f6ef434713de998a70f928a0eb6d0c511d6f6011ae07dcbc2ea84b603b73820516daf4396b6'
                                             },
                'config/zooz/zen21.xml' => {
-                                            'Revision' => '3',
+                                            'Revision' => 3,
                                             'md5' => '047323e2ed1a3e5340c052d40737fbdb2d2790e225e002f7d58fa3ad32f592da3e2a8cc0f3dd6cc6f06f7b6b505378482be7125db0a335e56abfd478c1cb398b'
                                           },
-               'config/zooz/zen21v2.xml' => {
-                                              'Revision' => '1',
-                                              'md5' => '3891b1d08aac36a6c37ac96fc3015947bd5119305c066600a3a16231f7c171dbc3893dbb1cf654d9fec1f2c01fd62e3d6cc635f2afd186e21f87ac8fe1529293'
+               'config/zooz/zen21v3.xml' => {
+                                              'Revision' => 4,
+                                              'md5' => '4ae74d9c845b8404d9b87e42f30283452762f82842dac619e7f3ffa05b91dc191351c950caba575c2e05b60e9a47cd66d2ea8c6f361a8c15bc9efe939f81e434'
                                             },
                'config/zooz/zen22.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => '5516b28dbfb21fa8057cf83e04100d7e27a74d6bffa5c8203924fbd139ffee8536552307cab4c29dc92f4d762c99e357eb5f86641bae733fb226d67fab9b09a5'
                                           },
                'config/zooz/zen22v2.xml' => {
-                                              'Revision' => '2',
-                                              'md5' => 'd10939f4a17ad1f5de7bf463da453c29320ad97c8abcb8cf8caaf8e6ea424600013db19a559853d7f526bb8eeeda21ea5dda8cebef538ac7a499375da56c91f4'
+                                              'Revision' => 3,
+                                              'md5' => 'ea4ce1d9800d69e6e04c4ea5317a891575ee49f751f66754f0371bf9894b19504b90b3c8e80c509a8f458d4e989111b21facc9d0cd6740dcddca1e01dc678039'
                                             },
                'config/zooz/zen23.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => 'b5609b50b35f91a81c21293680581f6a5bfd69cadfdc7987d41f1a41380553d7250fc4ac75d00b2057cf7ec54f5a8479bbe793682e2fcfe207aaa301889fce6f'
                                           },
+               'config/zooz/zen23v3.xml' => {
+                                              'Revision' => 2,
+                                              'md5' => '1760d6685c1bdba5b9dc8310c443d8b9badfe505c3b0800ece20d8951d6f35833036d883e4777635449754d0a97618e43d80af9b801d80512bf78b298a18d606'
+                                            },
                'config/zooz/zen24.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => '818d5a9b417d8e06cb5864ec4859d82d30d5d2e6e91bbd4672ac3fd84b20585b8c8529c327e0ac49359276674bf7e3cd15f0ac4f812896bf334c24963f6abd18'
                                           },
+               'config/zooz/zen24v2.xml' => {
+                                              'Revision' => 3,
+                                              'md5' => '7e5357ea8bfd73d38525c27b3cacf13c157a5a036cc54b0f2cc01d04d39f0ac2c916e6ff28bdc3fd47a1fa2b2fdbf4c17ac89dc9adff4e36a245251ad896ad51'
+                                            },
                'config/zooz/zen25.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => 'a1518c737c0eb0b63610dca95ebece7df7be426b8b435fb309314f110c77ddb90146d0b03888d2ac03959b2bfd6d181edb7b71cc59c798aeb7f5fa341c4f0d4d'
                                           },
                'config/zooz/zen26.xml' => {
-                                            'Revision' => 3,
-                                            'md5' => 'a29881e72eda6f6f3e7f649efa58c8ee1ac1728985c37885a7fd987d9685bcb7d50306a6a72b42f3fad06935fa56f4cc3a50bbd13852d5d56ded7468897f2584'
+                                            'Revision' => 4,
+                                            'md5' => 'c416e8c6296c859c66c9b5817d2a0f4e2d805830019c215e95b4cc160bc95d040f974ee074c96a2c1318c790a91b152665372d2bdb1dcdeef86eef935f741c17'
                                           },
                'config/zooz/zen27.xml' => {
+                                            'Revision' => 4,
+                                            'md5' => '8ab077ab311e67b716860e7d96baea98c08409fdfd12c94e96c814c72e54581d4a418adc97ca25515f6fe9ff36b29abcbfd40a3c00e1220030d0db570d427a9a'
+                                          },
+               'config/zooz/zen30.xml' => {
+                                            'Revision' => 3,
+                                            'md5' => '97c43b277e9ebdad3e538426470242ddf856e571495ffefe0b64cf6d89c1d654412bfa59a12a89ec0970637ea8cc473d6693802bda28f2190176a007cb9b0f10'
+                                          },
+               'config/zooz/zen31.xml' => {
                                             'Revision' => 2,
-                                            'md5' => '5ab98630896730c87473681c02bb78e6774818f447d47abbc4da4b2c2560ed23b5e2b1ace378c942eb65ad8cb9794ebe038fc2bb68e62c3f6e1ece9df2fb05ef'
+                                            'md5' => 'a4ee0ec974ffa1fe6c1e46f0610ad8a2623504b1f52b5d20efdcf665548ca4229d0c9a6c782e5da97b4869dfd2f38b5640f6748424b91f8516dc7cffbf5a0799'
+                                          },
+               'config/zooz/zen32.xml' => {
+                                            'Revision' => 1,
+                                            'md5' => '44780a6b6961e573dbe019f6b8c40608694908c2047e0c5801e5ca5af0f074447b17e60d90ad2a6bb3ece3c7a023f974507aa3af2b50ee89aa48fd5b953266c6'
+                                          },
+               'config/zooz/zen34.xml' => {
+                                            'Revision' => 3,
+                                            'md5' => 'd5fa659b35e2b666f4127ae68be223e21808e9828629b29d1fe7abe24b40b6dcf33b6af2ad0ba06eef6975a14b4d65f078940b956ce58f94281cdf0116f01dcd'
+                                          },
+               'config/zooz/zen71.xml' => {
+                                            'Revision' => 1,
+                                            'md5' => '532785efd4cddfb32361dfd76d09d403882b7df7073a05546df9b03fc9d7e46132596c2889f4674d2ddfe71a221bb64d2b5c8689e6ba5335be2b4f6b1a7509dd'
+                                          },
+               'config/zooz/zen72.xml' => {
+                                            'Revision' => 3,
+                                            'md5' => 'd90c8971f61267ff65180507bd10e92fbd9086a6599b63bf0ba0820c85b2e7568938129a1f918c8b195636b1fe8f7520ac007b0d808b79210741949293465100'
+                                          },
+               'config/zooz/zen76.xml' => {
+                                            'Revision' => 1,
+                                            'md5' => 'ad4c7d4bde0b987ab90cf12038946d95c464473145a16c7082c013ec0f4a258274f6d7a9cd2197d4d990f8fc3726e56dc946b3a835158ebe48ab2bd3f9273713'
+                                          },
+               'config/zooz/zen77.xml' => {
+                                            'Revision' => 1,
+                                            'md5' => '26355b030745a5bac773e0aceaf8813c34f1137ba67e95e843455521a0035cbbe68d37aabfdfbeac0570d150c6a4756b6a93667f45e73339f612fb0aeb247843'
                                           },
                'config/zooz/zse08.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => '78ecc6bdf19ce151d87a328949b4ce16e59bf6fd20212d4a7fd23da700e177259b8903bba5150f87c71f7d6ec4b140855c5337b5053cc358b0e2e8c5c41885dc'
                                           },
                'config/zooz/zse09.xml' => {
-                                            'Revision' => '5',
+                                            'Revision' => 5,
                                             'md5' => 'b50183e6c2dc5b4b9678ad3cdd96198e14eaabecf9fcb02783b5027d6cfcc34761eb1ffcf7667e5775b989e624138bfedda4dd5f43caf95d33c5a3d85653fe63'
                                           },
                'config/zooz/zse18.xml' => {
-                                            'Revision' => '1',
+                                            'Revision' => 1,
                                             'md5' => '463b089a041215ad5c2f2576648a86d2720477f4d1be2e9f3c8914a9c97e8bd31f1b9cd7300019ffc99224d8da0b9fcac78f2f134fbd6f1b68f3027f2392b753'
                                           },
                'config/zooz/zse19.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => 'b7115353998366bdeebc3f5bd1182429f1c20e0e229ca5e22eb7c6d5fb0e617f5af16faac078ed29c17db01c6e1338628a34d3434e8adfcd1cc08b8a59dcdd2c'
                                           },
                'config/zooz/zse29.xml' => {
-                                            'Revision' => '2',
-                                            'md5' => '8bbe07b8c1158ae2673a0f30be191749dd5b3f40a2043d056615c28fc4d7b9b3e69545ab0925da167080b52279a032d93e8112d3db132fb3a0fd5199c9037832'
+                                            'Revision' => 3,
+                                            'md5' => '0729a5e7b22ffb12c69f1ac58471a9098cceee7f88adb2f86955238a243c92178960e6d7e24c255d7e35ca09570dd60f1174a98ffbd01ccf2c1de92c8e28c675'
                                           },
                'config/zooz/zse30.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => '16731dc5b294943714a42063058ccbbcaa230b5fc3afd675b9ce340dbfd6466f22ffea32b6d055d8ef5bac341bd86123b490e62509c71f97e0cd3a35a8e23203'
                                           },
                'config/zooz/zse33.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => '0484e37ea12b75ce8b33c7501a01c8fd45c2176e0c696ceedc3699a94f71e8bc08ffd425336f58e202c8adba41799a4af0c39d6ca109ba501b5f2fdcffb301a4'
                                           },
                'config/zooz/zse40.xml' => {
-                                            'Revision' => '4',
+                                            'Revision' => 4,
                                             'md5' => '1e0ed06e4dd0df87cd985a28f0f1d89c32da3f4568334aae4ed0cf8c525910d43b63a8f4a426d5ee1c71328dc75f58fe0d900d24594f19c7b6ef337a77452d4e'
                                           },
                'config/zwave.me/004001.xml' => {
-                                                 'Revision' => '1',
+                                                 'Revision' => 1,
                                                  'md5' => '2c21b7cc32d607fcd6d52cd111dd083607ec2ee55317aa272a373b94aa7c7b78b21b84a98d9a658d89c2233e087413b9e20c7354baacef8a90db5662045d74a8'
                                                },
                'config/zwave.me/ZME_05431.xml' => {
-                                                    'Revision' => '4',
+                                                    'Revision' => 4,
                                                     'md5' => 'f6cd0740204353d2dec8fd5e67077f5b7ec5733aff9e4e503c03915c8788f1c03b0efbb8ed70564d238f7e26efefb1cd1deb0c0bb8da210cb791268a4799f222'
                                                   },
                'config/zwave.me/ZME_05461.xml' => {
-                                                    'Revision' => '2',
+                                                    'Revision' => 2,
                                                     'md5' => '4e05c806c751e12377a794db656f71237b85ba40d033061476b23b1d01578dde05a64a88aca5e5aa807df7d75387d6c961d6dd0f1b5efe40df8d05706d171ffa'
                                                   },
                'config/zwave.me/ZME_06433.xml' => {
-                                                    'Revision' => '4',
+                                                    'Revision' => 4,
                                                     'md5' => 'a287cd866ea81ee15fc83c90dc6bb3eb535d20f2e125697a97a468b73133aa4195674a0b72e118afc0618b11b7201dcce48e7ab91225df704fcd74fef19f4504'
                                                   },
                'config/zwave.me/ZME_06436.xml' => {
-                                                    'Revision' => '4',
+                                                    'Revision' => 4,
                                                     'md5' => 'ec35ca48a16152672c4aa51e07df7d31ef6e38b00fca9868bd5983a3e1a6d293247c90715e6e9e337b4eb0fcdb2a93a74fcf152038d65f5942d0e546dcc84c9f'
                                                   },
                'config/zwave.me/ZME_064381.xml' => {
-                                                     'Revision' => '1',
+                                                     'Revision' => 1,
                                                      'md5' => 'e148ecf81796136f400a5753cd6f9ffebe3ce7c13bdfbeeecc91637eee63af3dbecaf6ba3f781080011c3151994d25c128810b80253bfda858e75dee7f313c0c'
                                                    },
                'config/zwave.me/ZME_064435.xml' => {
-                                                     'Revision' => '3',
+                                                     'Revision' => 3,
                                                      'md5' => '1625ec4dcadb0ae4d8b949997385f4abe0f185cc3b615abd38164a2cf4b5761eaac9bdd6dba2e713c7cd4a9e866ad0b2f0ed41216c7591a3ed46057930627be8'
                                                    },
                'config/zwave.me/ZME_KFOB-S.xml' => {
-                                                     'Revision' => '2',
+                                                     'Revision' => 2,
                                                      'md5' => '84e5940a1b022d8da95bfe9b067e17e66767fec7da22c1a1eb350fb3cf18eb175532fd062566f3c62b7a77e211f539ad17467c762b476c237cd1322fd52f74bb'
                                                    },
                'config/zwave.me/ZME_RC2.xml' => {
-                                                  'Revision' => '2',
+                                                  'Revision' => 2,
                                                   'md5' => 'bfa124a8d90e7fc44894600c87a61831533dd38a39af56190580464bbaf15665b677a7386266d050f607d138d672b0852c57fe4a1dc0ac188bfd26c2cfb437c7'
                                                 },
                'config/zwave.me/ZME_WALLC-S.xml' => {
-                                                      'Revision' => '2',
-                                                      'md5' => '1eb2739365ccfacb4720a2c9698e8980a1afa9391486294870d577174bd4a3cdfaf8f235ae26215c9498990c81d7657df263c64a94261b0725f3fc3649f3dc36'
+                                                      'Revision' => 3,
+                                                      'md5' => '621f081bad2efff30abef88abeebf5e28f06c9bdd01d1dec4231839666d836e08e50a83a3b839322e8916135ba362175dd2727c05f1338dd4f4204e4608ffa24'
                                                     },
                'config/zwave.me/ZME_WCD2.xml' => {
-                                                   'Revision' => '3',
+                                                   'Revision' => 3,
                                                    'md5' => '90b00f6c25ecfabd71029590bb0d5a20bd2265297d01ba15ab11e4f9f2dd60d63bdb0cc1988bd03c1b1e3420622848bdc80c7b039a7b31c2a50627dd3c8d1e39'
                                                  },
                'config/zwave.me/ZUno.xml' => {
-                                               'Revision' => '4',
+                                               'Revision' => 4,
                                                'md5' => '74246cca8439213f22c8000f53c8f7599bbed8ce05fb24f8a28ed5179e1625d66584e5c0511a9ce2d464173816aad3dc9563f72042960ca2f129b36d4e48f6ef'
                                              },
                'config/zwave.me/iTemp.xml' => {
-                                                'Revision' => '3',
+                                                'Revision' => 3,
                                                 'md5' => 'c5e295ffeab7af317db7d2a4a7b619d26dcf253e2a442c626564902bc0a99f40f009a309e1b25c87edd00296e080cb7c737a0abb7eb67e50f9544b0a5f8d2403'
                                               },
                'config/zwave.me/kfob.xml' => {
-                                               'Revision' => '3',
+                                               'Revision' => 3,
                                                'md5' => 'c071ad553d96f6e79fa728e477dd6a12c9ddb0a029f69657ee65a2438bf9fdf9c9ee3d57084e6ddfb35a346a54bb51a8c4708642b40968041df0a336a2cba0c4'
                                              },
                'config/zwave.me/popp_kfob-c.xml' => {
-                                                      'Revision' => '4',
+                                                      'Revision' => 4,
                                                       'md5' => '91374eeabd5950ae498de528ee67309d78f87bc3f2d18b1cb73e06f4d16f660eb0099e583397e7003a0a5796d7261f5f5ec029ba67ef683319d35c20da4cd3a3'
                                                     },
+               'config/zwave.me/razberry.xml' => {
+                                                   'Revision' => 1,
+                                                   'md5' => '5cf581246a71ff451015e9286788a0398788494bdb014ea7a77efd3d4b36e6c7b5ebc9ce2e05471b35a59539ebb5927c75575d56bcb34d99a2e3507f492eb3c6'
+                                                 },
                'config/zwave.me/zme_raz5.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => 'cdfd903cab9349c17a53d25ff8210d42a5f9197ebbe8fd3e654dc5caedc12c40e96bcb3fadfdf72ce3e05d59c99de58fd21858be5ca8c2c820c8d315e3415149'
                                                  },
                'config/zwave.me/zweather.xml' => {
-                                                   'Revision' => '2',
+                                                   'Revision' => 2,
                                                    'md5' => 'f40e1e4cc7ff539af041862b90ccf3dc74b602fab35a6e74a406694ee29283077d3b1cd418b52fcdee30269e75e9b07155024cb5f62cb1bebc5fef8012492ba6'
                                                  },
                'config/zwp/PA-100.xml' => {
-                                            'Revision' => '2',
+                                            'Revision' => 2,
                                             'md5' => '93335c6b61d2f82b5bdc62d2c48cb3e10bf2bad3ea39c9e0e7a82d191e3b74b23937f6c12f473fd5243983382337b23b652dc64f663c74fcd3f1a99be4e58ec4'
                                           },
                'config/zwp/WD-100.xml' => {
-                                            'Revision' => '3',
+                                            'Revision' => 3,
                                             'md5' => 'a5bceb54540c63bdc1f03a6f26ff79f1bba74af878895b8f70cdfe67fdd6165c366b1cea29f44a5773549655012aafd4c8cd35fa78180ad30cd1b39de36357e6'
                                           }
              );
diff --git a/cpp/build/winRT/vs2015/OpenZWave.vcxproj b/cpp/build/winRT/vs2015/OpenZWave.vcxproj
index f511f189b5..311aff9e17 100644
--- a/cpp/build/winRT/vs2015/OpenZWave.vcxproj
+++ b/cpp/build/winRT/vs2015/OpenZWave.vcxproj
@@ -169,7 +169,7 @@
       <CompileAsWinRT>true</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
       <PreprocessorDefinitions>WINRT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;E:\GitHub\OpenZWave\openzwave-dotnet-uwp\open-zwave\cpp\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;..\..\..\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -189,7 +189,7 @@ exit 0</Command>
       <CompileAsWinRT>true</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
       <PreprocessorDefinitions>WINRT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;E:\GitHub\OpenZWave\openzwave-dotnet-uwp\open-zwave\cpp\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;..\..\..\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -209,7 +209,7 @@ exit 0</Command>
       <CompileAsWinRT>true</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
       <PreprocessorDefinitions>LITTLE_ENDIAN;WINRT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;E:\GitHub\OpenZWave\openzwave-dotnet-uwp\open-zwave\cpp\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;..\..\..\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -230,7 +230,7 @@ exit 0</Command>
       <CompileAsWinRT>true</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
       <PreprocessorDefinitions>LITTLE_ENDIAN;WINRT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;E:\GitHub\OpenZWave\openzwave-dotnet-uwp\open-zwave\cpp\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;..\..\..\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -250,7 +250,7 @@ exit 0</Command>
       <CompileAsWinRT>true</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
       <PreprocessorDefinitions>LITTLE_ENDIAN;WINRT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;E:\GitHub\OpenZWave\openzwave-dotnet-uwp\open-zwave\cpp\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;..\..\..\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -271,7 +271,7 @@ exit 0</Command>
       <CompileAsWinRT>true</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
       <PreprocessorDefinitions>LITTLE_ENDIAN;WINRT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;E:\GitHub\OpenZWave\openzwave-dotnet-uwp\open-zwave\cpp\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;..\..\..\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -291,7 +291,7 @@ exit 0</Command>
       <CompileAsWinRT>true</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
       <PreprocessorDefinitions>WINRT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;E:\GitHub\OpenZWave\openzwave-dotnet-uwp\open-zwave\cpp\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\tinyxml;..\..\..\src;..\..\..\hidapi\hidapi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -332,6 +332,7 @@ exit 0</Command>
     </Lib>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClInclude Include="..\..\..\src\platform\winRT\HidControllerWinRT.h" />
     <ClInclude Include="..\..\..\src\aes\aes.h" />
     <ClInclude Include="..\..\..\src\aes\aesopt.h" />
     <ClInclude Include="..\..\..\src\aes\aestab.h" />
@@ -357,12 +358,13 @@ exit 0</Command>
     <ClInclude Include="..\..\..\src\Defs.h" />
     <ClInclude Include="..\..\..\src\Driver.h" />
     <ClInclude Include="..\..\..\src\DNSThread.h" />
-    <ClInclude Include="..\..\..\src\platform\winRT\FileOpsImpl.h" />
+    <ClInclude Include="..\..\..\src\SensorMultiLevelCCTypes.h" />
     <ClInclude Include="..\..\..\src\TimerThread.h" />
     <ClInclude Include="..\..\..\src\Http.h" />
     <ClInclude Include="..\..\..\src\Group.h" />
     <ClInclude Include="..\..\..\src\Localization.h" />
     <CIInclude Include="..\..\..\src\NotificationCCTypes.h" />
+    <CIInclude Include="..\..\..\src\SensorMultiLevelCCTypes.h" />
     <ClInclude Include="..\..\..\src\Manager.h" />
     <ClInclude Include="..\..\..\src\ManufacturerSpecificDB.h" />
     <ClInclude Include="..\..\..\src\Msg.h" />
@@ -370,6 +372,7 @@ exit 0</Command>
     <ClInclude Include="..\..\..\src\Notification.h" />
     <ClInclude Include="..\..\..\src\Options.h" />
     <ClInclude Include="..\..\..\src\platform\FileOps.h" />
+    <ClInclude Include="..\..\..\src\platform\winRT\FileOpsImpl.h" />
     <ClInclude Include="..\..\..\src\ZWSecurity.h" />
     <ClInclude Include="..\..\..\src\platform\Controller.h" />
     <ClInclude Include="..\..\..\src\platform\DNS.h" />
@@ -384,9 +387,15 @@ exit 0</Command>
     <ClInclude Include="..\..\..\src\platform\Thread.h" />
     <ClInclude Include="..\..\..\src\platform\TimeStamp.h" />
     <ClInclude Include="..\..\..\src\platform\Wait.h" />
-    <ClInclude Include="..\..\..\src\platform\winRT\HidControllerWinRT.h" />
+    <ClInclude Include="..\..\..\src\platform\winRT\DNSImpl.h" />
+    <ClInclude Include="..\..\..\src\platform\winRT\EventImpl.h" />
+    <ClInclude Include="..\..\..\src\platform\winRT\LogImpl.h" />
+    <ClInclude Include="..\..\..\src\platform\winRT\MutexImpl.h" />
+    <ClInclude Include="..\..\..\src\platform\winRT\SerialControllerImpl.h" />
+    <ClInclude Include="..\..\..\src\platform\winRT\ThreadImpl.h" />
+    <ClInclude Include="..\..\..\src\platform\winRT\TimeStampImpl.h" />
+    <ClInclude Include="..\..\..\src\platform\winRT\WaitImpl.h" />
     <ClInclude Include="..\..\..\src\Scene.h" />
-    <ClInclude Include="..\..\..\src\SensorMultiLevelCCTypes.h" />
     <ClInclude Include="..\..\..\src\Utils.h" />
     <ClInclude Include="..\..\..\src\value_classes\ValueButton.h" />
     <ClInclude Include="..\..\..\src\value_classes\ValueRaw.h" />
@@ -451,6 +460,7 @@ exit 0</Command>
     <ClInclude Include="..\..\..\src\command_classes\WakeUp.h" />
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="..\..\..\src\platform\winRT\HidControllerWinRT.cpp" />
     <ClCompile Include="..\..\..\src\aes\aescrypt.c">
 	  <CompileAsWinRT>false</CompileAsWinRT>
 	</ClCompile>
@@ -482,21 +492,12 @@ exit 0</Command>
     <ClCompile Include="..\..\..\src\CompatOptionManager.cpp" />
     <ClCompile Include="..\..\..\src\Driver.cpp" />
     <ClCompile Include="..\..\..\src\DNSThread.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\DNSImpl.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\EventImpl.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\FileOpsImpl.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\HidControllerWinRT.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\LogImpl.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\MutexImpl.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\SerialControllerImpl.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\ThreadImpl.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\TimeStampImpl.cpp" />
-    <ClCompile Include="..\..\..\src\platform\winRT\WaitImpl.cpp" />
     <ClCompile Include="..\..\..\src\TimerThread.cpp" />
     <ClCompile Include="..\..\..\src\Http.cpp" />
     <ClCompile Include="..\..\..\src\Group.cpp" />
     <ClCompile Include="..\..\..\src\Localization.cpp" />
     <ClCompile Include="..\..\..\src\NotificationCCTypes.cpp" />
+    <ClCompile Include="..\..\..\src\SensorMultiLevelCCTypes.cpp" />
     <ClCompile Include="..\..\..\src\Manager.cpp" />
     <ClCompile Include="..\..\..\src\ManufacturerSpecificDB.cpp" />
     <ClCompile Include="..\..\..\src\Msg.cpp" />
@@ -517,8 +518,16 @@ exit 0</Command>
     <ClCompile Include="..\..\..\src\platform\Thread.cpp" />
     <ClCompile Include="..\..\..\src\platform\TimeStamp.cpp" />
     <ClCompile Include="..\..\..\src\platform\Wait.cpp" />
+    <ClCompile Include="..\..\..\src\platform\winRT\DNSImpl.cpp" />
+    <ClCompile Include="..\..\..\src\platform\winRT\EventImpl.cpp" />
+    <ClCompile Include="..\..\..\src\platform\winRT\FileOpsImpl.cpp" />
+    <ClCompile Include="..\..\..\src\platform\winRT\LogImpl.cpp" />
+    <ClCompile Include="..\..\..\src\platform\winRT\MutexImpl.cpp" />
+    <ClCompile Include="..\..\..\src\platform\winRT\SerialControllerImpl.cpp" />
+    <ClCompile Include="..\..\..\src\platform\winRT\ThreadImpl.cpp" />
+    <ClCompile Include="..\..\..\src\platform\winRT\TimeStampImpl.cpp" />
+    <ClCompile Include="..\..\..\src\platform\winRT\WaitImpl.cpp" />
     <ClCompile Include="..\..\..\src\Scene.cpp" />
-    <ClInclude Include="..\..\..\src\SensorMultiLevelCCTypes.cpp" />
     <ClCompile Include="..\..\..\src\Utils.cpp" />
     <ClCompile Include="..\..\..\src\value_classes\ValueButton.cpp" />
     <ClCompile Include="..\..\..\src\value_classes\ValueRaw.cpp" />
@@ -586,157 +595,7 @@ exit 0</Command>
     <ClCompile Include="..\..\windows\winversion.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <Xml Include="config\2gig\ct100.xml" />
-    <Xml Include="config\2gig\ct101.xml" />
-    <Xml Include="config\2gig\ct30.xml" />
-    <Xml Include="config\act\lfm20.xml" />
-    <Xml Include="config\act\zdm230.xml" />
-    <Xml Include="config\act\zdw103.xml" />
-    <Xml Include="config\act\zdw232.xml" />
-    <Xml Include="config\act\zir010.xml" />
-    <Xml Include="config\act\zrp110.xml" />
-    <Xml Include="config\act\zrw103.xml" />
-    <Xml Include="config\aeotec\alms.xml" />
-    <Xml Include="config\aeotec\doorwindow.xml" />
-    <Xml Include="config\aeotec\dsd31.xml" />
-    <Xml Include="config\aeotec\hdss_gen5.xml" />
-    <Xml Include="config\aeotec\hem.xml" />
-    <Xml Include="config\aeotec\hemg2.xml" />
-    <Xml Include="config\aeotec\keyfob.xml" />
-    <Xml Include="config\aeotec\keyfob2.xml" />
-    <Xml Include="config\aeotec\minimote.xml" />
-    <Xml Include="config\aeotec\msesv2.xml" />
-    <Xml Include="config\aeotec\multisensor_gen5.xml" />
-    <Xml Include="config\aeotec\panicbtn.xml" />
-    <Xml Include="config\aeotec\recessed_doorsensor.xml" />
-    <Xml Include="config\aeotec\recessed_doorsensor_gen5.xml" />
-    <Xml Include="config\aeotec\ses.xml" />
-    <Xml Include="config\aeotec\ses2.xml" />
-    <Xml Include="config\aeotec\watersensor.xml" />
-    <Xml Include="config\assa_abloy\RealLivingCapTouch.xml" />
-    <Xml Include="config\BeNext\1poleswitch.xml" />
-    <Xml Include="config\BeNext\2poleswitch.xml" />
-    <Xml Include="config\BeNext\AlarmSound.xml" />
-    <Xml Include="config\BeNext\BuiltinDimmer.xml" />
-    <Xml Include="config\BeNext\DoorSensor.xml" />
-    <Xml Include="config\BeNext\EnergySwitch.xml" />
-    <Xml Include="config\BeNext\Molite.xml" />
-    <Xml Include="config\BeNext\PluginDimmer.xml" />
-    <Xml Include="config\BeNext\SceneController.xml" />
-    <Xml Include="config\BeNext\TagReader.xml" />
-    <Xml Include="config\cooper\RF9505-T.xml" />
-    <Xml Include="config\cooper\RF9540-N.xml" />
-    <Xml Include="config\danfoss\living.xml" />
-    <Xml Include="config\danfoss\z.xml" />
-    <Xml Include="config\device_classes.xml" />
-    <Xml Include="config\dragontech\wd-100.xml" />
-    <Xml Include="config\duwi\ZWES1000.xml" />
-    <Xml Include="config\duwi\ZWESJ300.xml" />
-    <Xml Include="config\eurotronic\eur_stellaz.xml" />
-    <Xml Include="config\everspringct\hsm02.xml" />
-    <Xml Include="config\everspring\an145.xml" />
-    <Xml Include="config\everspring\an158.xml" />
-    <Xml Include="config\everspring\se812.xml" />
-    <Xml Include="config\everspring\sf812.xml" />
-    <Xml Include="config\everspring\sm103.xml" />
-    <Xml Include="config\everspring\sp103.xml" />
-    <Xml Include="config\everspring\sp814.xml" />
-    <Xml Include="config\everspring\st814.xml" />
-    <Xml Include="config\everspring\st815.xml" />
-    <Xml Include="config\everspring\tse03.xml" />
-    <Xml Include="config\evolve\lrm-as.xml" />
-    <Xml Include="config\evolve\lsm-15.xml" />
-    <Xml Include="config\evolve\ltm-5.xml" />
-    <Xml Include="config\fibaro\fgbs001.xml" />
-    <Xml Include="config\fibaro\fgd211.xml" />
-    <Xml Include="config\fibaro\fgfs101.xml" />
-    <Xml Include="config\fibaro\fgk001.xml" />
-    <Xml Include="config\fibaro\fgms.xml" />
-    <Xml Include="config\fibaro\fgr221.xml" />
-    <Xml Include="config\fibaro\fgrgbwm441.xml" />
-    <Xml Include="config\fibaro\fgrm222.xml" />
-    <Xml Include="config\fibaro\fgs211.xml" />
-    <Xml Include="config\fibaro\fgs212.xml" />
-    <Xml Include="config\fibaro\fgs221.xml" />
-    <Xml Include="config\fibaro\fgs222.xml" />
-    <Xml Include="config\fibaro\fgsd002.xml" />
-    <Xml Include="config\fibaro\fgss101.xml" />
-    <Xml Include="config\fibaro\fgwpe.xml" />
-    <Xml Include="config\frostdale\fdn2nxx.xml" />
-    <Xml Include="config\ge\dimmer.xml" />
-    <Xml Include="config\ge\dimmer_module.xml" />
-    <Xml Include="config\ge\relay.xml" />
-    <Xml Include="config\greenwave\powernode1.xml" />
-    <Xml Include="config\greenwave\powernode6.xml" />
-    <Xml Include="config\homeseer\hsm100.xml" />
-    <Xml Include="config\homeseer\ztroller.xml" />
-    <Xml Include="config\honeywell\th8320zw1000.xml" />
-    <Xml Include="config\horstmann\hrt4zw.xml" />
-    <Xml Include="config\intermatic\ca8900.xml" />
-    <Xml Include="config\iris\rangeextender.xml" />
-    <Xml Include="config\leviton\rzi10.xml" />
-    <Xml Include="config\leviton\vrcpg.xml" />
-    <Xml Include="config\leviton\vrf01.xml" />
-    <Xml Include="config\leviton\vri06.xml" />
-    <Xml Include="config\leviton\vri10.xml" />
-    <Xml Include="config\manufacturer_specific.xml" />
-    <Xml Include="config\nodon\asp3100SmartPlug.xml" />
-    <Xml Include="config\northq\nq92021.xml" />
-    <Xml Include="config\options.xml" />
-    <Xml Include="config\philio\pan04.xml" />
-    <Xml Include="config\philio\psm02.xml" />
-    <Xml Include="config\philio\pst02-1c.xml" />
-    <Xml Include="config\philio\pst02-b.xml" />
-    <Xml Include="config\philio\pst02.xml" />
-    <Xml Include="config\polycontrol\doorlock.xml" />
-    <Xml Include="config\polycontrol\keypad.xml" />
-    <Xml Include="config\popp\123580.xml" />
-    <Xml Include="config\popp\123601.xml" />
-    <Xml Include="config\popp\123658.xml" />
-    <Xml Include="config\qees\reto-plugin-switch.xml" />
-    <Xml Include="config\qubino\ZMNHAA2.xml" />
-    <Xml Include="config\qubino\ZMNHBA2.xml" />
-    <Xml Include="config\qubino\ZMNHCA2.xml" />
-    <Xml Include="config\qubino\ZMNHDA2.xml" />
-    <Xml Include="config\qubino\ZMNHIA2.xml" />
-    <Xml Include="config\qubino\ZMNHJA2.xml" />
-    <Xml Include="config\rcs\em52-zw.xml" />
-    <Xml Include="config\rcs\pm12-zw.xml" />
-    <Xml Include="config\rcs\therm0005.xml" />
-    <Xml Include="config\rcs\therm0007.xml" />
-    <Xml Include="config\rcs\therm0009.xml" />
-    <Xml Include="config\remotec\zfm-80.xml" />
-    <Xml Include="config\remotec\zurc.xml" />
-    <Xml Include="config\remotec\zxt-120.xml" />
-    <Xml Include="config\schlagelink\itemp.xml" />
-    <Xml Include="config\schlagelink\minikeypad.xml" />
-    <Xml Include="config\swiid\swiidinter.xml" />
-    <Xml Include="config\swiid\swiidplug.xml" />
-    <Xml Include="config\trane\TZEMT400AB32MAA.xml" />
-    <Xml Include="config\trane\TZEMT400BB32MAA.xml" />
-    <Xml Include="config\vision\zd2102.xml" />
-    <Xml Include="config\vision\zm1601eu.xml" />
-    <Xml Include="config\vision\zp3102.xml" />
-    <Xml Include="config\vision\zs5101eu.xml" />
-    <Xml Include="config\vitrum\vitrumBS.xml" />
-    <Xml Include="config\waynedalton\WDTC-20.xml" />
-    <Xml Include="config\wenzhou\sm103.xml" />
-    <Xml Include="config\wenzhou\tsp01.xml" />
-    <Xml Include="config\wenzhou\tz65d.xml" />
-    <Xml Include="config\wenzhou\tz66d.xml" />
-    <Xml Include="config\wenzhou\tz67.xml" />
-    <Xml Include="config\wenzhou\tz88.xml" />
-    <Xml Include="config\widom\UBS104.xml" />
-    <Xml Include="config\zipato\MiniKeypad.xml" />
-    <Xml Include="config\zipato\RGBBulb.xml" />
-    <Xml Include="config\zwave.me\iTemp.xml" />
-    <Xml Include="config\zwave.me\kfob.xml" />
-    <Xml Include="config\zwave.me\ZME_05431.xml" />
-    <Xml Include="config\zwave.me\ZME_06433.xml" />
-    <Xml Include="config\zwave.me\ZME_06436.xml" />
-    <Xml Include="config\zwave.me\ZME_064435.xml" />
-    <Xml Include="config\zwave.me\ZME_WALLC-S.xml" />
-    <Xml Include="config\zwave.me\ZME_WCD2.xml" />
+    <Xml Include="config\**\*.xml" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/cpp/examples/MinOZW/Main.cpp b/cpp/examples/MinOZW/Main.cpp
index 15613e1a6d..07b494f866 100644
--- a/cpp/examples/MinOZW/Main.cpp
+++ b/cpp/examples/MinOZW/Main.cpp
@@ -100,7 +100,7 @@ void OnNotification
 	// Must do this inside a critical section to avoid conflicts with the main thread
 	pthread_mutex_lock( &g_criticalSection );
 
-	std::cout << "Notification: " << _notification << std::endl;
+//	std::cout << "Notification: " << _notification << std::endl;
 
 	switch( _notification->GetType() )
 	{
@@ -235,6 +235,7 @@ void OnNotification
 		}
 
 		case Notification::Type_AwakeNodesQueried:
+			break;
 		case Notification::Type_AllNodesQueried:
 		case Notification::Type_AllNodesQueriedSomeDead:
 		{
diff --git a/cpp/src/CompatOptionManager.cpp b/cpp/src/CompatOptionManager.cpp
index 569663017d..ef4271a5b2 100644
--- a/cpp/src/CompatOptionManager.cpp
+++ b/cpp/src/CompatOptionManager.cpp
@@ -59,6 +59,7 @@ namespace OpenZWave
 		{ "VerifyChanged", COMPAT_FLAG_VERIFYCHANGED, COMPAT_FLAG_TYPE_BOOL_ARRAY },
 		{ "EnableNotificationClear", COMPAT_FLAG_NOT_ENABLECLEAR, COMPAT_FLAG_TYPE_BOOL },
 		{ "EnableV1AlarmTypes", COMPAT_FLAG_NOT_V1ALARMTYPES_ENABLED, COMPAT_FLAG_TYPE_BOOL },
+		{ "NoRefreshAfterSet", COMPAT_FLAG_NO_REFRESH_AFTER_SET, COMPAT_FLAG_TYPE_BOOL_ARRAY }
 		};
 
 		uint16_t availableCompatFlagsCount = sizeof(availableCompatFlags) / sizeof(availableCompatFlags[0]);
diff --git a/cpp/src/CompatOptionManager.h b/cpp/src/CompatOptionManager.h
index e54ef00e73..237e11b204 100644
--- a/cpp/src/CompatOptionManager.h
+++ b/cpp/src/CompatOptionManager.h
@@ -68,6 +68,7 @@ namespace OpenZWave
 			COMPAT_FLAG_VERIFYCHANGED,
 			COMPAT_FLAG_NOT_ENABLECLEAR,
 			COMPAT_FLAG_NOT_V1ALARMTYPES_ENABLED,
+			COMPAT_FLAG_NO_REFRESH_AFTER_SET,
 			STATE_FLAG_CCVERSION,
 			STATE_FLAG_STATIC_REQUESTS,
 			STATE_FLAG_AFTERMARK,
diff --git a/cpp/src/Driver.cpp b/cpp/src/Driver.cpp
index 5ff486d20e..84124da920 100644
--- a/cpp/src/Driver.cpp
+++ b/cpp/src/Driver.cpp
@@ -89,7 +89,8 @@ using namespace OpenZWave;
 // 02: 01-12-2011 - Command class m_afterMark sense corrected, and attribute named to match.
 // 03: 08-04-2011 - Changed command class instance handling for non-sequential MultiChannel endpoints.
 // 04: 12-07-2019 - Changed Interview Order
-uint32 const c_configVersion = 4;
+// 05: 10-07-2020 - Duration ValueID's changed from Byte to Int. Invalidate Any previous caches. 
+uint32 const c_configVersion = 5;
 
 static char const* c_libraryTypeNames[] =
 { "Unknown",			// library type 0
@@ -178,7 +179,6 @@ Driver::~Driver()
 
 	// append final driver stats output to the log file
 	LogDriverStatistics();
-
 	// Save the driver config before deleting anything else
 	bool save;
 	if (Options::Get()->GetOptionAsBool("SaveConfiguration", &save))
@@ -202,14 +202,12 @@ Driver::~Driver()
 
 	m_dnsThread->Stop();
 	m_dnsThread->Release();
-	delete m_dns;
 
 	m_driverThread->Stop();
 	m_driverThread->Release();
 
 	m_timerThread->Stop();
 	m_timerThread->Release();
-	delete m_timer;
 
 	m_sendMutex->Release();
 
@@ -296,6 +294,10 @@ Driver::~Driver()
 	delete this->AuthKey;
 	delete this->EncryptKey;
 	delete this->m_httpClient;
+	delete this->m_timer;
+	delete this->m_dns;
+
+
 }
 
 //-----------------------------------------------------------------------------
@@ -396,7 +398,7 @@ void Driver::DriverThreadProc(Internal::Platform::Event* _exitEvent)
 					case -1:
 					{
 						// Wait has timed out - time to resend
-						if (m_currentMsg != NULL)
+						if (m_currentMsg != NULL && !m_currentMsg->isResendDuetoCANorNAK())
 						{
 							Notification* notification = new Notification(Notification::Type_Notification);
 							notification->SetHomeAndNodeIds(m_homeId, m_currentMsg->GetTargetNodeId());
@@ -412,6 +414,9 @@ void Driver::DriverThreadProc(Internal::Platform::Event* _exitEvent)
 					case 0:
 					{
 						// Exit has been signalled
+						m_initMutex->Lock();
+						m_exit = true;
+						m_initMutex->Unlock();
 						return;
 					}
 					case 1:
@@ -468,6 +473,9 @@ void Driver::DriverThreadProc(Internal::Platform::Event* _exitEvent)
 			if (Internal::Platform::Wait::Single(_exitEvent, 5000) == 0)
 			{
 				// Exit signalled.
+				m_initMutex->Lock();
+				m_exit = true;
+				m_initMutex->Unlock();
 				return;
 			}
 		}
@@ -477,6 +485,9 @@ void Driver::DriverThreadProc(Internal::Platform::Event* _exitEvent)
 			if (Internal::Platform::Wait::Single(_exitEvent, 30000) == 0)
 			{
 				// Exit signalled.
+				m_initMutex->Lock();
+				m_exit = true;
+				m_initMutex->Unlock();
 				return;
 			}
 		}
@@ -513,10 +524,15 @@ bool Driver::Init(uint32 _attempts)
 	// Controller opened successfully, so we need to start all the worker threads
 	m_pollThread->Start(Driver::PollThreadEntryPoint, this);
 
+
 	// Send a NAK to the ZWave device
 	uint8 nak = NAK;
 	m_controller->Write(&nak, 1);
 
+	// Purge any Messages in the Serial Buffer 
+	m_controller->Purge();
+
+
 	/* this kicks of the Init Sequence to get the Controller in shape. */
 	SendMsg(new Internal::Msg("FUNC_ID_ZW_GET_VERSION", 0xff, REQUEST, FUNC_ID_ZW_GET_VERSION, false), Driver::MsgQueue_Command);
 
@@ -605,6 +621,7 @@ bool Driver::ReadCache()
 	string filename = userPath + string(str);
 
 	TiXmlDocument doc;
+	doc.SetCondenseWhiteSpace(false);
 	if (!doc.LoadFile(filename.c_str(), TIXML_ENCODING_UTF8))
 	{
 		return false;
@@ -750,6 +767,11 @@ void Driver::WriteCache()
 		Log::Write(LogLevel_Warning, "WARNING: Tried to write driver config with no home ID set");
 		return;
 	}
+	if (m_exit) {
+		Log::Write(LogLevel_Info, "Skipping Cache Save as we are shutting down");
+		return;
+	}
+
 	Log::Write(LogLevel_Info, "Saving Cache");
 	// Create a new XML document to contain the driver configuration
 	TiXmlDocument doc;
@@ -1432,6 +1454,8 @@ bool Driver::MoveMessagesToWakeUpQueue(uint8 const _targetNodeId, bool const _mo
 
 					m_sendMutex->Unlock();
 
+					CheckCompletedNodeQueries();
+
 					// Move completed successfully
 					return true;
 				}
@@ -1639,7 +1663,7 @@ bool Driver::ReadMsg()
 				m_readAborts++;
 				break;
 			}
-
+			/* this is the size of the packet */
 			m_controller->Read(&buffer[1], 1);
 			m_controller->SetSignalThreshold(buffer[1]);
 			if (Internal::Platform::Wait::Single(m_controller, 500) < 0)
@@ -1715,21 +1739,25 @@ bool Driver::ReadMsg()
 			if (m_currentMsg != NULL)
 			{
 				m_currentMsg->SetMaxSendAttempts(m_currentMsg->GetMaxSendAttempts() + 1);
+				m_currentMsg->setResendDuetoCANorNAK();
 			}
 			else
 			{
 				Log::Write(LogLevel_Warning, "m_currentMsg was NULL when trying to set MaxSendAttempts");
 				Log::QueueDump();
 			}
-			WriteMsg("CAN");
+			// Don't do WriteMsg("CAN"); here, the controller has data waiting to be handled by OZW.
+			// Instead, let the main loop handle incoming message first to flush the buffer(s)
 			break;
 		}
 
 		case NAK:
 		{
 			Log::Write(LogLevel_Warning, GetNodeNumber(m_currentMsg), "WARNING: NAK received...triggering resend");
+			m_currentMsg->SetMaxSendAttempts(m_currentMsg->GetMaxSendAttempts() + 1);
+			m_currentMsg->setResendDuetoCANorNAK();
 			m_NAKCnt++;
-			WriteMsg("NAK");
+			//WriteMsg("NAK");
 			break;
 		}
 
@@ -4065,6 +4093,7 @@ bool Driver::EnablePoll(ValueID const &_valueId, uint8 const _intensity)
 			notification->SetValueId(_valueId);
 			QueueNotification(notification);
 			Log::Write(LogLevel_Info, nodeId, "EnablePoll for HomeID 0x%.8x, value(cc=0x%02x,in=0x%02x,id=0x%02x)--poll list has %d items", _valueId.GetHomeId(), _valueId.GetCommandClassId(), _valueId.GetIndex(), _valueId.GetInstance(), m_pollList.size());
+			WriteCache();
 			return true;
 		}
 
@@ -4120,6 +4149,7 @@ bool Driver::DisablePoll(ValueID const &_valueId)
 				notification->SetValueId(_valueId);
 				QueueNotification(notification);
 				Log::Write(LogLevel_Info, nodeId, "DisablePoll for HomeID 0x%.8x, value(cc=0x%02x,in=0x%02x,id=0x%02x)--poll list has %d items", _valueId.GetHomeId(), _valueId.GetCommandClassId(), _valueId.GetIndex(), _valueId.GetInstance(), m_pollList.size());
+				WriteCache();
 				return true;
 			}
 		}
@@ -4227,6 +4257,7 @@ void Driver::SetPollIntensity(ValueID const &_valueId, uint8 const _intensity)
 
 	value->Release();
 	m_pollMutex->Unlock();
+	WriteCache();
 }
 
 //-----------------------------------------------------------------------------
@@ -4930,6 +4961,7 @@ void Driver::SetNodeManufacturerName(uint8 const _nodeId, string const& _manufac
 	{
 		node->SetManufacturerName(_manufacturerName);
 	}
+	WriteCache();
 }
 
 //-----------------------------------------------------------------------------
@@ -4943,6 +4975,7 @@ void Driver::SetNodeProductName(uint8 const _nodeId, string const& _productName)
 	{
 		node->SetProductName(_productName);
 	}
+	WriteCache();
 }
 
 //-----------------------------------------------------------------------------
@@ -4956,6 +4989,7 @@ void Driver::SetNodeName(uint8 const _nodeId, string const& _nodeName)
 	{
 		node->SetNodeName(_nodeName);
 	}
+	WriteCache();
 }
 
 //-----------------------------------------------------------------------------
@@ -4969,6 +5003,7 @@ void Driver::SetNodeLocation(uint8 const _nodeId, string const& _location)
 	{
 		node->SetLocation(_location);
 	}
+	WriteCache();
 }
 
 //-----------------------------------------------------------------------------
@@ -5888,7 +5923,6 @@ void Driver::NotifyWatchers()
 			default:
 				break;
 		}
-
 		Log::Write(LogLevel_Detail, notification->GetNodeId(), "Notification: %s", notification->GetAsString().c_str());
 
 		Manager::Get()->NotifyWatchers(notification);
@@ -6973,6 +7007,17 @@ bool Driver::startMFSDownload(string configfile)
 	return m_httpClient->StartDownload(download);
 }
 
+bool Driver::startDownload(string target, string file)
+{
+	Internal::HttpDownload *download = new Internal::HttpDownload();
+	download->url = "http://download.db.openzwave.com/" + file;
+	download->filename = target;
+	download->operation = Internal::HttpDownload::Image;
+	Log::Write(LogLevel_Info, "Queuing download for %s (Node %d)", download->url.c_str(), download->node);
+	return m_httpClient->StartDownload(download);
+}
+
+
 bool Driver::refreshNodeConfig(uint8 _nodeId)
 {
 	Internal::LockGuard LG(m_nodeMutex);
@@ -7045,6 +7090,7 @@ void Driver::ReloadNode(uint8 const _nodeId)
 	string filename = userPath + string(str);
 
 	TiXmlDocument doc;
+	doc.SetCondenseWhiteSpace(false);
 	if (doc.LoadFile(filename.c_str(), TIXML_ENCODING_UTF8))
 	{
 		doc.SetUserData((void *) filename.c_str());
@@ -7090,6 +7136,10 @@ void Driver::processDownload(Internal::HttpDownload *download)
 		else if (download->operation == Internal::HttpDownload::MFSConfig)
 		{
 			m_mfs->mfsConfigDownloaded(this, download->filename);
+		} 
+		else if (download->operation == Internal::HttpDownload::Image) 
+		{
+			m_mfs->fileDownloaded(this, download->filename);
 		}
 	}
 	else
@@ -7103,6 +7153,10 @@ void Driver::processDownload(Internal::HttpDownload *download)
 		{
 			m_mfs->mfsConfigDownloaded(this, download->filename, false);
 		}
+		else if (download->operation == Internal::HttpDownload::Image) 
+		{
+			m_mfs->fileDownloaded(this, download->filename, false);
+		}
 		Notification* notification = new Notification(Notification::Type_UserAlerts);
 		notification->SetUserAlertNotification(Notification::Alert_ConfigFileDownloadFailed);
 		QueueNotification(notification);
diff --git a/cpp/src/Driver.h b/cpp/src/Driver.h
index a41fb20baa..cdca6b00a1 100644
--- a/cpp/src/Driver.h
+++ b/cpp/src/Driver.h
@@ -990,6 +990,7 @@ namespace OpenZWave
 			bool setHttpClient(Internal::i_HttpClient *client);
 		private:
 			bool startConfigDownload(uint16 _manufacturerId, uint16 _productType, uint16 _productId, string configfile, uint8 node = 0);
+			bool startDownload(string target, string file);
 			bool startMFSDownload(string configfile);
 			bool refreshNodeConfig(uint8 node);
 			void processDownload(Internal::HttpDownload *);
diff --git a/cpp/src/Http.cpp b/cpp/src/Http.cpp
index b2c2e37532..d37af82369 100644
--- a/cpp/src/Http.cpp
+++ b/cpp/src/Http.cpp
@@ -88,6 +88,7 @@ namespace OpenZWave
 				case HttpDownload::File:
 				case HttpDownload::Config:
 				case HttpDownload::MFSConfig:
+				case HttpDownload::Image:
 					/* make sure it has everything */
 					if ((transfer->url.size() <= 0) || (transfer->filename.size() <= 0))
 					{
diff --git a/cpp/src/Http.h b/cpp/src/Http.h
index 6f3128e7b7..21e082a82a 100644
--- a/cpp/src/Http.h
+++ b/cpp/src/Http.h
@@ -57,7 +57,8 @@ namespace OpenZWave
 					None,
 					File,
 					Config,
-					MFSConfig
+					MFSConfig,
+					Image
 				};
 				DownloadType operation;
 				enum Status
diff --git a/cpp/src/Localization.cpp b/cpp/src/Localization.cpp
index aa65f6832d..96bf9f10ca 100755
--- a/cpp/src/Localization.cpp
+++ b/cpp/src/Localization.cpp
@@ -36,6 +36,7 @@
 #include "command_classes/ThermostatSetpoint.h"
 #include "command_classes/SoundSwitch.h"
 #include "command_classes/Meter.h"
+#include "command_classes/CentralScene.h"
 
 namespace OpenZWave
 {
@@ -238,7 +239,7 @@ namespace OpenZWave
 		{
 		}
 
-		void Localization::ReadXML()
+		bool Localization::ReadXML()
 		{
 			// Parse the Z-Wave manufacturer and product XML file.
 			string configPath;
@@ -250,7 +251,7 @@ namespace OpenZWave
 			{
 				Log::Write(LogLevel_Warning, "Unable to load Localization file %s: %s", path.c_str(), pDoc->ErrorDesc());
 				delete pDoc;
-				return;
+				return false;
 			}
 			pDoc->SetUserData((void*) path.c_str());
 			Log::Write(LogLevel_Info, "Loading Localization File %s", path.c_str());
@@ -265,7 +266,7 @@ namespace OpenZWave
 				{
 					Log::Write(LogLevel_Info, "Error in Product Config file at line %d - missing Revision  attribute", root->Row());
 					delete pDoc;
-					return;
+					return false;
 				}
 				m_revision = atol(str);
 			}
@@ -319,6 +320,7 @@ namespace OpenZWave
 			}
 			Log::Write(LogLevel_Info, "Loaded %s With Revision %d", pDoc->GetUserData(), m_revision);
 			delete pDoc;
+			return true;
 		}
 
 		void Localization::ReadGlobalXMLLabel(const TiXmlElement *labelElement)
@@ -551,6 +553,11 @@ namespace OpenZWave
 			{
 				return ((uint64) _node << 56 | (uint64) _commandClass << 48) | ((uint64) _index << 32) | ((uint64) _pos);
 			}
+			/* indexes below 256 are the Scene Labels - Unique per device */
+			if (_commandClass == Internal::CC::CentralScene::StaticGetCommandClassId() && (_index < 256))
+			{
+				return ((uint64) _node << 56 | (uint64) _commandClass << 48 | (uint64) _index << 32 | (uint64) _pos);
+			}
 			return ((uint64) _commandClass << 48) | ((uint64) _index << 32) | ((uint64) _pos);
 		}
 
@@ -642,6 +649,10 @@ namespace OpenZWave
 			{
 				unique = true;
 			}
+			if ((ccID == Internal::CC::CentralScene::StaticGetCommandClassId()) && (indexId < 256))
+			{
+				unique = true;
+			}
 			uint64 key = GetValueKey(node, ccID, indexId, pos, unique);
 			if (m_valueLocalizationMap.find(key) == m_valueLocalizationMap.end())
 			{
@@ -658,6 +669,10 @@ namespace OpenZWave
 			{
 				unique = true;
 			}
+			if ((ccID == Internal::CC::CentralScene::StaticGetCommandClassId()) && (indexId < 256))
+			{
+				unique = true;
+			}
 
 			uint64 key = GetValueKey(node, ccID, indexId, pos, unique);
 			if (m_valueLocalizationMap.find(key) == m_valueLocalizationMap.end())
@@ -679,6 +694,10 @@ namespace OpenZWave
 			{
 				unique = true;
 			}
+			if ((ccID == Internal::CC::CentralScene::StaticGetCommandClassId()) && (indexId < 256))
+			{
+				unique = true;
+			}
 
 			uint64 key = GetValueKey(node, ccID, indexId, pos, unique);
 			if (m_valueLocalizationMap.find(key) == m_valueLocalizationMap.end())
@@ -696,6 +715,10 @@ namespace OpenZWave
 			{
 				unique = true;
 			}
+			if ((ccID == Internal::CC::CentralScene::StaticGetCommandClassId()) && (indexId < 256))
+			{
+				unique = true;
+			}
 
 			uint64 key = GetValueKey(node, ccID, indexId, pos, unique);
 			if (m_valueLocalizationMap.find(key) == m_valueLocalizationMap.end())
@@ -767,7 +790,9 @@ namespace OpenZWave
 				return m_instance;
 			}
 			m_instance = new Localization();
-			ReadXML();
+			if (!ReadXML()) {
+				OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot Create Localization Class! - Missing/Invalid Config File?");
+			}
 			Options::Get()->GetOptionAsString("Language", &m_selectedLang);
 			return m_instance;
 		}
diff --git a/cpp/src/Localization.h b/cpp/src/Localization.h
index 279f22ae03..06d184caa1 100755
--- a/cpp/src/Localization.h
+++ b/cpp/src/Localization.h
@@ -104,7 +104,7 @@ namespace OpenZWave
 				Localization();
 				~Localization();
 
-				static void ReadXML();
+				static bool ReadXML();
 				static void ReadCCXMLLabel(uint8 ccID, const TiXmlElement *labelElement);
 				static void ReadXMLValue(uint8 node, uint8 ccID, const TiXmlElement *valueElement);
 				static void ReadXMLVIDItemLabel(uint8 node, uint8 ccID, uint16 indexId, uint32 pos, const TiXmlElement *labelElement);
diff --git a/cpp/src/Manager.cpp b/cpp/src/Manager.cpp
index f6966b24c0..60c2a84cd6 100644
--- a/cpp/src/Manager.cpp
+++ b/cpp/src/Manager.cpp
@@ -195,8 +195,13 @@ Manager::Manager() :
 	// when "make" was run. A Makefile gets this info from git describe --long --tags --dirty
 	Log::Write(LogLevel_Always, "OpenZwave Version %s Starting Up", getVersionLongAsString().c_str());
 	Log::Write(LogLevel_Always, "Using Language Localization %s", Internal::Localization::Get()->GetSelectedLang().c_str());
-	Internal::NotificationCCTypes::Create();
-	Internal::SensorMultiLevelCCTypes::Create();
+	if (!Internal::NotificationCCTypes::Create()) {
+		Log::Write(LogLevel_Error, "mgr,     Cannot Create NotificationCCTypes!");
+	}
+	if (!Internal::SensorMultiLevelCCTypes::Create()) {
+		Log::Write(LogLevel_Error, "mgr,     Cannot Create SensorMultiLevelCCTypes!");
+	}
+
 }
 
 //-----------------------------------------------------------------------------
@@ -3089,7 +3094,7 @@ bool Manager::SetValue(ValueID const& _id, string const& _value)
 				case ValueID::ValueType_Schedule:
 				case ValueID::ValueType_Button:
 				{
-					OZW_ERROR(OZWException::OZWEXCEPTION_CANNOT_CONVERT_VALUEID, "ValueID passed to GetValueFloatPrecision is not a Decimal Value");
+					OZW_ERROR(OZWException::OZWEXCEPTION_INVALID_VALUEID, "ValueID passed to SetValue cannot be set on Schedule or Button");
 					break;
 				}
 			}
diff --git a/cpp/src/ManufacturerSpecificDB.cpp b/cpp/src/ManufacturerSpecificDB.cpp
index 2b0afc9e86..77d670cf3c 100644
--- a/cpp/src/ManufacturerSpecificDB.cpp
+++ b/cpp/src/ManufacturerSpecificDB.cpp
@@ -69,8 +69,11 @@ namespace OpenZWave
 			// Ensure the singleton instance is set
 			s_instance = this;
 
-			if (!s_bXmlLoaded)
-				LoadProductXML();
+			if (!s_bXmlLoaded) {
+				if (!LoadProductXML()) {
+					OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot Load/Read ManufacturerSpecificDB! - Missing/Invalid Config File?");
+				}
+			}
 
 		}
 
@@ -297,8 +300,11 @@ namespace OpenZWave
 		void ManufacturerSpecificDB::checkConfigFiles(Driver *driver)
 		{
 			LockGuard LG(m_MfsMutex);
-			if (!s_bXmlLoaded)
-				LoadProductXML();
+			if (!s_bXmlLoaded) {
+				if (!LoadProductXML()) {
+					OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot Load/Read ManufacturerSpecificDB! - Missing/Invalid Config File?");
+				}
+			}
 
 			string configPath;
 			Options::Get()->GetOptionAsString("ConfigPath", &configPath);
@@ -310,29 +316,34 @@ namespace OpenZWave
 				if (c->GetConfigPath().size() > 0)
 				{
 					string path = configPath + c->GetConfigPath();
-
-					/* check if we are downloading already */
-					std::list<string>::iterator iter = std::find(m_downloading.begin(), m_downloading.end(), path);
-					/* check if the file exists */
-					if (iter == m_downloading.end() && !Internal::Platform::FileOps::Create()->FileExists(path))
-					{
-						Log::Write(LogLevel_Warning, "Config File for %s does not exist - %s", c->GetProductName().c_str(), path.c_str());
-						/* try to download it */
-						if (driver->startConfigDownload(c->GetManufacturerId(), c->GetProductType(), c->GetProductId(), path))
+					if (!Internal::Platform::FileOps::Create()->FileExists(path)) { 
+						/* check if we are downloading already */
+						std::list<string>::iterator iter = std::find(m_downloading.begin(), m_downloading.end(), path);
+						/* check if the file exists */
+						if (iter == m_downloading.end())
 						{
-							m_downloading.push_back(path);
+							Log::Write(LogLevel_Warning, "Config File for %s does not exist - %s", c->GetProductName().c_str(), path.c_str());
+							/* try to download it */
+							if (driver->startConfigDownload(c->GetManufacturerId(), c->GetProductType(), c->GetProductId(), path))
+							{
+								m_downloading.push_back(path);
+							}
+							else
+							{
+								Log::Write(LogLevel_Warning, "Can't download file %s", path.c_str());
+								Notification* notification = new Notification(Notification::Type_UserAlerts);
+								notification->SetUserAlertNotification(Notification::Alert_ConfigFileDownloadFailed);
+								driver->QueueNotification(notification);
+							}
 						}
-						else
+						else if (iter != m_downloading.end())
 						{
-							Log::Write(LogLevel_Warning, "Can't download file %s", path.c_str());
-							Notification* notification = new Notification(Notification::Type_UserAlerts);
-							notification->SetUserAlertNotification(Notification::Alert_ConfigFileDownloadFailed);
-							driver->QueueNotification(notification);
+							Log::Write(LogLevel_Debug, "Config file for %s already queued", c->GetProductName().c_str());
 						}
 					}
-					else if (iter != m_downloading.end())
+					else 
 					{
-						Log::Write(LogLevel_Debug, "Config file for %s already queued", c->GetProductName().c_str());
+						checkConfigFileContents(driver, path);	
 					}
 				}
 			}
@@ -362,6 +373,64 @@ namespace OpenZWave
 			}
 		}
 
+		void ManufacturerSpecificDB::checkConfigFileContents(Driver *driver, string file) 
+		{
+			string configPath;
+			Options::Get()->GetOptionAsString("ConfigPath", &configPath);
+			TiXmlDocument* pDoc = new TiXmlDocument();
+			if (!pDoc->LoadFile(file.c_str(), TIXML_ENCODING_UTF8))
+			{
+				delete pDoc;
+				Log::Write(LogLevel_Info, "Unable to load %s", file.c_str());
+				return;
+			}
+			pDoc->SetUserData((void *) file.c_str());
+			TiXmlElement const* root = pDoc->RootElement();
+
+			TiXmlElement const* metaDataElement = root->FirstChildElement("MetaData");
+			if (metaDataElement) {
+				TiXmlElement const* metaDataItem = metaDataElement->FirstChildElement("MetaDataItem");
+				while (metaDataItem) {
+					char const *str = metaDataItem->Attribute("name");
+					if (str && !strcmp(str, "ProductPic"))
+					{
+						str = metaDataItem->GetText();
+						if (str) 
+						{ 
+							string imagefile = configPath + str;
+							if (!Internal::Platform::FileOps::Create()->FileExists(imagefile)) 
+							{ 
+								/* check if we are downloading already */
+								std::list<string>::iterator iter = std::find(m_downloading.begin(), m_downloading.end(), imagefile);
+								/* check if the file exists */
+								if (iter == m_downloading.end())
+								{
+									if (driver->startDownload(imagefile, metaDataItem->GetText())) {
+										Log::Write(LogLevel_Info, "Missing Picture %s - Starting Download", imagefile.c_str());
+										m_downloading.push_back(imagefile);
+									}
+								}
+							}
+						}
+					}
+					metaDataItem = metaDataItem->NextSiblingElement("MetaDataItem");
+				}				
+			}
+		}
+
+		void ManufacturerSpecificDB::fileDownloaded(Driver *, string file, bool success) 
+		{
+			/* check if we are downloading already */
+			std::list<string>::iterator iter = std::find(m_downloading.begin(), m_downloading.end(), file);
+			if (iter != m_downloading.end())
+			{
+				m_downloading.erase(iter);
+			}	
+			checkInitialized();		
+		}
+
+
+
 		void ManufacturerSpecificDB::mfsConfigDownloaded(Driver *driver, string file, bool success)
 		{
 			/* check if we are downloading already */
@@ -372,7 +441,9 @@ namespace OpenZWave
 				if (success)
 				{
 					UnloadProductXML();
-					LoadProductXML();
+					if (!LoadProductXML()) {
+						OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot Load/Read ManufacturerSpecificDB! - Missing/Invalid Config File?");
+					}
 					checkConfigFiles(driver);
 				}
 			}
@@ -405,8 +476,11 @@ namespace OpenZWave
 		std::shared_ptr<ProductDescriptor> ManufacturerSpecificDB::getProduct(uint16 _manufacturerId, uint16 _productType, uint16 _productId)
 		{
 
-			if (!s_bXmlLoaded)
-				LoadProductXML();
+			if (!s_bXmlLoaded) {
+				if (!LoadProductXML()) {
+					OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot Load/Read ManufacturerSpecificDB! - Missing/Invalid Config File?");
+				}
+			}
 
 			// Try to get the real manufacturer and product names
 			map<uint16, string>::iterator mit = s_manufacturerMap.find(_manufacturerId);
diff --git a/cpp/src/ManufacturerSpecificDB.h b/cpp/src/ManufacturerSpecificDB.h
index 3d05e24bcc..04cecee3cb 100644
--- a/cpp/src/ManufacturerSpecificDB.h
+++ b/cpp/src/ManufacturerSpecificDB.h
@@ -142,6 +142,7 @@ namespace OpenZWave
 				void checkConfigFiles(Driver *);
 				void configDownloaded(Driver *, string file, uint8 node, bool success = true);
 				void mfsConfigDownloaded(Driver *, string file, bool success = true);
+				void fileDownloaded(Driver *, string file, bool success = true);
 				bool isReady();
 				bool updateConfigFile(Driver *, Node *);
 				bool updateMFSConfigFile(Driver *);
@@ -151,6 +152,7 @@ namespace OpenZWave
 				void LoadConfigFileRevision(ProductDescriptor *product);
 				ManufacturerSpecificDB();
 				~ManufacturerSpecificDB();
+				void checkConfigFileContents(Driver *driver, string file);
 
 				Internal::Platform::Mutex* m_MfsMutex; /**< Mutex to ensure its accessed by a single thread at a time */
 
diff --git a/cpp/src/Msg.cpp b/cpp/src/Msg.cpp
index 80357e93cb..b11227d1e6 100644
--- a/cpp/src/Msg.cpp
+++ b/cpp/src/Msg.cpp
@@ -33,6 +33,7 @@
 #include "ZWSecurity.h"
 #include "platform/Log.h"
 #include "command_classes/MultiInstance.h"
+#include "command_classes/Supervision.h"
 #include "command_classes/Security.h"
 #include "aes/aescpp.h"
 
@@ -50,9 +51,9 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 		Msg::Msg(string const& _logText, uint8 _targetNodeId, uint8 const _msgType, uint8 const _function, bool const _bCallbackRequired, bool const _bReplyRequired,			// = true
 				uint8 const _expectedReply,			// = 0
-				uint8 const _expectedCommandClassId	// = 0
+				uint8 const _expectedCommandClassId // = 0
 				) :
-				m_logText(_logText), m_bFinal(false), m_bCallbackRequired(_bCallbackRequired), m_callbackId(0), m_expectedReply(0), m_expectedCommandClassId(_expectedCommandClassId), m_length(4), m_targetNodeId(_targetNodeId), m_sendAttempts(0), m_maxSendAttempts( MAX_TRIES), m_instance(1), m_endPoint(0), m_flags(0), m_encrypted(false), m_noncerecvd(false), m_homeId(0)
+				m_logText(_logText), m_bFinal(false), m_bCallbackRequired(_bCallbackRequired), m_callbackId(0), m_expectedReply(0), m_expectedCommandClassId(_expectedCommandClassId), m_length(4), m_targetNodeId(_targetNodeId), m_sendAttempts(0), m_maxSendAttempts( MAX_TRIES), m_instance(1), m_endPoint(0), m_flags(0), m_encrypted(false), m_noncerecvd(false), m_homeId(0), m_resendDuetoCANorNAK(false)
 		{
 			if (_bReplyRequired)
 			{
@@ -102,6 +103,19 @@ namespace OpenZWave
 			}
 		}
 
+//-----------------------------------------------------------------------------
+// <Msg::SetSupervision>
+// Encapsulate the data inside a Supervision message
+//-----------------------------------------------------------------------------
+		void Msg::SetSupervision(uint8 _supervision_session_id)
+		{
+			if (_supervision_session_id != Internal::CC::Supervision::StaticNoSessionId())
+			{
+				m_supervision_session_id = _supervision_session_id;
+				m_flags |= m_Supervision;
+			}
+		}
+
 //-----------------------------------------------------------------------------
 // <Msg::Append>
 // Add a byte to the message
@@ -135,6 +149,12 @@ namespace OpenZWave
 				return;
 			}
 
+			// Deal with Supervision encapsulation
+			if ((m_flags & m_Supervision) != 0)
+			{
+				SupervisionEncap();
+			}
+
 			// Deal with Multi-Channel/Instance encapsulation
 			if ((m_flags & (m_MultiChannel | m_MultiInstance)) != 0)
 			{
@@ -280,6 +300,33 @@ namespace OpenZWave
 			}
 		}
 
+//-----------------------------------------------------------------------------
+// <Msg::SupervisionEncap>
+// Encapsulate the data inside a Supervision message
+//-----------------------------------------------------------------------------
+		void Msg::SupervisionEncap()
+		{
+			char str[256];
+			if (m_buffer[3] != FUNC_ID_ZW_SEND_DATA)
+			{
+				return;
+			}
+
+			for (uint32 i = m_length - 1; i >= 6; --i)
+			{
+				m_buffer[i + 4] = m_buffer[i];
+			}
+			m_buffer[6] = Internal::CC::Supervision::StaticGetCommandClassId();
+			m_buffer[7] = Internal::CC::Supervision::SupervisionCmd_Get;
+			m_buffer[8] = Internal::CC::Supervision::SupervisionMoreStatusUpdates_MoreReports | m_supervision_session_id;
+			m_buffer[9] = m_buffer[5];
+			m_buffer[5] += 4;
+			m_length += 4;
+
+			snprintf(str, sizeof(str), "Supervisioned (session=%d): %s", m_supervision_session_id, m_logText.c_str());
+			m_logText = str;
+		}
+
 //-----------------------------------------------------------------------------
 // <Node::GetDriver>
 // Get a pointer to our driver
diff --git a/cpp/src/Msg.h b/cpp/src/Msg.h
index 97f2a5ac2f..dbaa127d9c 100644
--- a/cpp/src/Msg.h
+++ b/cpp/src/Msg.h
@@ -54,6 +54,7 @@ namespace OpenZWave
 				{
 					m_MultiChannel = 0x01,		// Indicate MultiChannel encapsulation
 					m_MultiInstance = 0x02,		// Indicate MultiInstance encapsulation
+					m_Supervision = 0x04,		// Indicate Supervision encapsulation
 				};
 
 				Msg(string const& _logtext, uint8 _targetNodeId, uint8 const _msgType, uint8 const _function, bool const _bCallbackRequired, bool const _bReplyRequired = true, uint8 const _expectedReply = 0, uint8 const _expectedCommandClassId = 0);
@@ -62,6 +63,7 @@ namespace OpenZWave
 				}
 
 				void SetInstance(OpenZWave::Internal::CC::CommandClass * _cc, uint8 const _instance);	// Used to enable wrapping with MultiInstance/MultiChannel during finalize.
+				void SetSupervision(uint8 _session_id);
 
 				void Append(uint8 const _data);
 				void AppendArray(const uint8* const _data, const uint8 _length);
@@ -215,7 +217,14 @@ namespace OpenZWave
 				{
 					m_homeId = homeId;
 				}
-				;
+				void setResendDuetoCANorNAK()
+				{
+					m_resendDuetoCANorNAK = true;
+				}
+				bool isResendDuetoCANorNAK()
+				{
+					return m_resendDuetoCANorNAK;
+				}
 
 				/** Returns a pointer to the driver (interface with a Z-Wave controller)
 				 *  associated with this node.
@@ -224,6 +233,7 @@ namespace OpenZWave
 			private:
 
 				void MultiEncap();						// Encapsulate the data inside a MultiInstance/Multicommand message
+				void SupervisionEncap();				// Encapsulate the data inside a Supervision message
 				string m_logText;
 				bool m_bFinal;
 				bool m_bCallbackRequired;
@@ -242,12 +252,15 @@ namespace OpenZWave
 				uint8 m_instance;
 				uint8 m_endPoint;				// Endpoint to use if the message must be wrapped in a multiInstance or multiChannel command class
 				uint8 m_flags;
+				uint8 m_supervision_session_id;
 
 				bool m_encrypted;
 				bool m_noncerecvd;
 				uint8 m_nonce[8];
 				uint32 m_homeId;
 				static uint8 s_nextCallbackId;		// counter to get a unique callback id
+				/* we are resending this message due to CAN or NAK messages */
+				bool m_resendDuetoCANorNAK;
 		};
 	} // namespace Internal
 } // namespace OpenZWave
diff --git a/cpp/src/Node.cpp b/cpp/src/Node.cpp
index 283e4c569a..0ecd05a092 100644
--- a/cpp/src/Node.cpp
+++ b/cpp/src/Node.cpp
@@ -58,6 +58,7 @@
 #include "command_classes/NodeNaming.h"
 #include "command_classes/NoOperation.h"
 #include "command_classes/Version.h"
+#include "command_classes/Supervision.h"
 #include "command_classes/SwitchAll.h"
 #include "command_classes/ZWavePlusInfo.h"
 #include "command_classes/DeviceResetLocally.h"
@@ -92,7 +93,7 @@ map<uint16, Node::DeviceClass*> Node::s_deviceTypeClasses;
 map<uint8, Node::DeviceClass*> Node::s_nodeTypes;
 
 static char const* c_queryStageNames[] =
-{ "None", "ProtocolInfo", "Probe", "WakeUp", "ManufacturerSpecific1", "NodeInfo", "NodePlusInfo", "SecurityReport", "ManufacturerSpecific2", "Versions", "Instances", "Static", "CacheLoad", "Associations", "Neighbors", "Session", "Dynamic", "Configuration", "Complete" };
+{ "None", "ProtocolInfo", "Probe", "WakeUp", "NodeInfo", "NodePlusInfo", "SecurityReport", "Versions", "ManufacturerSpecific1", "Instances", "ManufacturerSpecific2", "Static", "CacheLoad", "Associations", "Neighbors", "Session", "Dynamic", "Configuration", "Complete" };
 
 //-----------------------------------------------------------------------------
 // <Node::Node>
@@ -112,10 +113,8 @@ Node::Node(uint32 const _homeId, uint8 const _nodeId) :
 	memset(m_rssi_3, 0, sizeof(m_rssi_3));
 	memset(m_rssi_4, 0, sizeof(m_rssi_4));
 	memset(m_rssi_5, 0, sizeof(m_rssi_5));
-	/* Add NoOp Class */
-	AddCommandClass(Internal::CC::NoOperation::StaticGetCommandClassId());
 
-	/* Add ManufacturerSpecific Class */
+	AddCommandClass(Internal::CC::NoOperation::StaticGetCommandClassId());
 	AddCommandClass(Internal::CC::ManufacturerSpecific::StaticGetCommandClassId());
 }
 
@@ -206,6 +205,7 @@ void Node::AdvanceQueries()
 				if (!ProtocolInfoReceived())
 				{
 					Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_ProtocolInfo");
+
 					Internal::Msg* msg = new Internal::Msg("Get Node Protocol Info", m_nodeId, REQUEST, FUNC_ID_ZW_GET_NODE_PROTOCOL_INFO, false);
 					msg->Append(m_nodeId);
 					GetDriver()->SendMsg(msg, Driver::MsgQueue_Query);
@@ -223,6 +223,7 @@ void Node::AdvanceQueries()
 			case QueryStage_Probe:
 			{
 				Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_Probe");
+
 				//
 				// Send a NoOperation message to see if the node is awake
 				// and alive. Based on the response or lack of response
@@ -264,58 +265,15 @@ void Node::AdvanceQueries()
 				else
 				{
 					// this is not a sleeping device, so move to the ManufacturerSpecific1 stage
-					m_queryStage = QueryStage_ManufacturerSpecific1;
-					m_queryRetries = 0;
-				}
-				break;
-			}
-			case QueryStage_ManufacturerSpecific1:
-			{
-				// Obtain manufacturer, product type and product ID code from the node device
-				// Manufacturer Specific data is requested before the other command class data so
-				// that we can modify the supported command classes list through the product XML files.
-				Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_ManufacturerSpecific1");
-
-				/* if its the Controller, then we can just load up the XML straight away */
-				if (GetDriver()->GetControllerNodeId() == m_nodeId)
-				{
-					Log::Write(LogLevel_Detail, m_nodeId, "Load Controller Manufacturer Specific Config");
-					Internal::CC::ManufacturerSpecific* cc = static_cast<Internal::CC::ManufacturerSpecific*>(GetCommandClass(Internal::CC::ManufacturerSpecific::StaticGetCommandClassId()));
-					if (cc)
-					{
-						cc->SetInstance(1);
-						cc->SetProductDetails(GetDriver()->GetManufacturerId(), GetDriver()->GetProductType(), GetDriver()->GetProductId());
-						cc->LoadConfigXML();
-					}
 					m_queryStage = QueryStage_NodeInfo;
 					m_queryRetries = 0;
 				}
-				else
-				{
-					Log::Write(LogLevel_Detail, m_nodeId, "Checking for ManufacturerSpecific CC and Requesting values if present on this node");
-					/* if the ManufacturerSpecific CC was not specified in the ProtocolInfo packet for the Generic/Specific Device type (as part a Mandatory Command Class)
-					 * then this will fail, but we will retry in ManufacturerSpecific2
-					 *
-					 * XXX TODO: This could probably be reworked a bit to make this a Mandatory CC for all devices regardless
-					 * of Generic/Specific Type. Then we can drop the Second ManufacturerSpecific QueryStage later.
-					 */
-					Internal::CC::ManufacturerSpecific* cc = static_cast<Internal::CC::ManufacturerSpecific*>(GetCommandClass(Internal::CC::ManufacturerSpecific::StaticGetCommandClassId()));
-					if (cc)
-					{
-						cc->SetInstance(1);
-						m_queryPending = cc->RequestState(Internal::CC::CommandClass::RequestFlag_Static, 1, Driver::MsgQueue_Query);
-						addQSC = m_queryPending;
-					}
-					if (!m_queryPending)
-					{
-						m_queryStage = QueryStage_NodeInfo;
-						m_queryRetries = 0;
-					}
-				}
 				break;
 			}
 			case QueryStage_NodeInfo:
 			{
+				
+				Log::Write(LogLevel_Info, GetNodeId(), "NodeInfo Stage - NodeInfoRecieved %d - NotInfoSupported %d", NodeInfoReceived(), m_nodeInfoSupported);
 				if (!NodeInfoReceived() && m_nodeInfoSupported && (GetDriver()->GetControllerNodeId() != m_nodeId))
 				{
 					// obtain from the node a list of command classes that it 1) supports and 2) controls (separated by a mark in the buffer)
@@ -356,6 +314,7 @@ void Node::AdvanceQueries()
 
 				break;
 			}
+
 			case QueryStage_SecurityReport:
 			{
 				/* For Devices that Support the Security Class, we have to request a list of
@@ -378,80 +337,92 @@ void Node::AdvanceQueries()
 				else
 				{
 					// this is not a Security Device, so move onto the next querystage
-					m_queryStage = QueryStage_ManufacturerSpecific2;
+					m_queryStage = QueryStage_Versions;
 					m_queryRetries = 0;
 				}
 
 				break;
 			}
-			case QueryStage_ManufacturerSpecific2:
+
+			case QueryStage_Versions:
 			{
-				if (!m_manufacturerSpecificClassReceived)
+				// Get the version information of CommandClasses that have not had their Version Retrieved So far. (most Likely ManufacturerSpecific)
+				Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_Versions");
+				if (GetDriver()->GetControllerNodeId() == m_nodeId)
 				{
-					// Obtain manufacturer, product type and product ID code from the node device
-					// Manufacturer Specific data is requested before the other command class data so
-					// that we can modify the supported command classes list through the product XML files.
-					Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_ManufacturerSpecific2");
-					Internal::CC::ManufacturerSpecific* cc = static_cast<Internal::CC::ManufacturerSpecific*>(GetCommandClass(Internal::CC::ManufacturerSpecific::StaticGetCommandClassId()));
-					/* don't do this if its the Controller Node */
-					if (cc && (GetDriver()->GetControllerNodeId() != m_nodeId))
+					m_queryStage = QueryStage_ManufacturerSpecific1;
+					m_queryRetries = 0;
+					break;
+				}
+				Internal::CC::Version* vcc = static_cast<Internal::CC::Version*>(GetCommandClass(Internal::CC::Version::StaticGetCommandClassId()));
+				if (!vcc)
+				{
+					vcc = static_cast<Internal::CC::Version*>(AddCommandClass(Internal::CC::Version::StaticGetCommandClassId()));
+				}
+				Log::Write(LogLevel_Info, m_nodeId, "Requesting Versions");
+				for (map<uint8, Internal::CC::CommandClass*>::const_iterator it = m_commandClassMap.begin(); it != m_commandClassMap.end(); ++it)
+				{
+					Internal::CC::CommandClass* cc = it->second;
+					Log::Write(LogLevel_Info, m_nodeId, "Requesting Versions for %s - Max: %d - Current %d", cc->GetCommandClassName().c_str(), cc->GetMaxVersion(), cc->GetVersion());
+
+					if (cc->GetMaxVersion() > 1 && cc->GetVersion() == 0)
 					{
-						cc->SetInstance(1);
-						m_queryPending = cc->RequestState(Internal::CC::CommandClass::RequestFlag_Static, 1, Driver::MsgQueue_Query);
-						addQSC = m_queryPending;
+						// Get the version for each supported command class that
+						// we have implemented at greater than version one.
+						m_queryPending |= vcc->RequestCommandClassVersion(it->second);
 					}
-					if (!m_queryPending)
+					else if (cc->GetVersion() == 0)
 					{
-						m_queryStage = QueryStage_Versions;
-						m_queryRetries = 0;
+						// set the Version to 1 
+						cc->SetVersion(1);
 					}
 				}
-				else
+				addQSC = m_queryPending;
+				// advance to Instances stage when finished
+				if (!m_queryPending)
 				{
-					Internal::CC::ManufacturerSpecific* cc = static_cast<Internal::CC::ManufacturerSpecific*>(GetCommandClass(Internal::CC::ManufacturerSpecific::StaticGetCommandClassId()));
-					if (cc)
-					{
-						cc->SetInstance(1);
-						cc->ReLoadConfigXML();
-					}
-					m_queryStage = QueryStage_Versions;
+					m_queryStage = QueryStage_ManufacturerSpecific1;
 					m_queryRetries = 0;
 				}
 				break;
 			}
-			case QueryStage_Versions:
+			case QueryStage_ManufacturerSpecific1:
 			{
-				// Get the version information (if the device supports COMMAND_CLASS_VERSION
-				Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_Versions");
-				Internal::CC::Version* vcc = static_cast<Internal::CC::Version*>(GetCommandClass(Internal::CC::Version::StaticGetCommandClassId()));
-				if (vcc)
+				// Obtain manufacturer, product type and product ID code from the node device
+				// Manufacturer Specific data is requested before the other command class data so
+				// that we can modify the supported command classes list through the product XML files.
+				Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_ManufacturerSpecific1");
+
+				/* if its the Controller, then we can just load up the XML straight away */
+				if (GetDriver()->GetControllerNodeId() == m_nodeId)
 				{
-					Log::Write(LogLevel_Info, m_nodeId, "Requesting Versions");
-					for (map<uint8, Internal::CC::CommandClass*>::const_iterator it = m_commandClassMap.begin(); it != m_commandClassMap.end(); ++it)
+					Log::Write(LogLevel_Detail, m_nodeId, "Load Controller Manufacturer Specific Config");
+					Internal::CC::ManufacturerSpecific* cc = static_cast<Internal::CC::ManufacturerSpecific*>(GetCommandClass(Internal::CC::ManufacturerSpecific::StaticGetCommandClassId()));
+					if (cc)
 					{
-						Internal::CC::CommandClass* cc = it->second;
-						Log::Write(LogLevel_Info, m_nodeId, "Requesting Versions for %s", cc->GetCommandClassName().c_str());
-
-						if (cc->GetMaxVersion() > 1)
-						{
-							// Get the version for each supported command class that
-							// we have implemented at greater than version one.
-							m_queryPending |= vcc->RequestCommandClassVersion(it->second);
-						}
-						else
-						{
-							// set the Version to 1 
-							cc->SetVersion(1);
-						}
+						cc->SetInstance(1);
+						cc->SetProductDetails(GetDriver()->GetManufacturerId(), GetDriver()->GetProductType(), GetDriver()->GetProductId());
+						cc->LoadConfigXML();
 					}
-					addQSC = m_queryPending;
-				}
-				// advance to Instances stage when finished
-				if (!m_queryPending)
-				{
 					m_queryStage = QueryStage_Instances;
 					m_queryRetries = 0;
 				}
+				else
+				{
+					Log::Write(LogLevel_Detail, m_nodeId, "Checking for ManufacturerSpecific CC and Requesting values if present on this node");
+					Internal::CC::ManufacturerSpecific* cc = static_cast<Internal::CC::ManufacturerSpecific*>(GetCommandClass(Internal::CC::ManufacturerSpecific::StaticGetCommandClassId()));
+					if (cc)
+					{
+						cc->SetInstance(1);
+						m_queryPending = cc->Init();
+						addQSC = m_queryPending;
+					}
+					if (!m_queryPending)
+					{
+						m_queryStage = QueryStage_Instances;
+						m_queryRetries = 0;
+					}
+				}
 				break;
 			}
 			case QueryStage_Instances:
@@ -475,7 +446,7 @@ void Node::AdvanceQueries()
 				// when done, advance to the Static stage
 				if (!m_queryPending)
 				{
-					m_queryStage = QueryStage_Static;
+					m_queryStage = QueryStage_ManufacturerSpecific2;
 					m_queryRetries = 0;
 
 					Log::Write(LogLevel_Info, m_nodeId, "Essential node queries are complete");
@@ -485,16 +456,47 @@ void Node::AdvanceQueries()
 				}
 				break;
 			}
+			case QueryStage_ManufacturerSpecific2:
+			{
+				if (!m_manufacturerSpecificClassReceived)
+				{
+					// Obtain manufacturer, product type and product ID code from the node device
+					// Manufacturer Specific data is requested before the other command class data so
+					// that we can modify the supported command classes list through the product XML files.
+					Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_ManufacturerSpecific2");
+					Internal::CC::ManufacturerSpecific* cc = static_cast<Internal::CC::ManufacturerSpecific*>(GetCommandClass(Internal::CC::ManufacturerSpecific::StaticGetCommandClassId()));
+					/* don't do this if its the Controller Node */
+					if (cc && (GetDriver()->GetControllerNodeId() != m_nodeId))
+					{
+						cc->SetInstance(1);
+						m_queryPending = cc->RequestState(Internal::CC::CommandClass::RequestFlag_Static, 1, Driver::MsgQueue_Query);
+						addQSC = m_queryPending;
+					}
+					if (!m_queryPending)
+					{
+						m_queryStage = QueryStage_Static;
+						m_queryRetries = 0;
+					}
+				}
+				else
+				{
+					m_queryStage = QueryStage_Static;
+					m_queryRetries = 0;
+				}
+				break;
+			}
 			case QueryStage_Static:
 			{
 				// Request any other static values associated with each command class supported by this node
 				// examples are supported thermostat operating modes, setpoints and fan modes
 				Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_Static");
-				/* Dont' do this for Controller Nodes */
-				if (GetDriver()->GetControllerNodeId() != m_nodeId)
+				for (map<uint8, Internal::CC::CommandClass*>::const_iterator it = m_commandClassMap.begin(); it != m_commandClassMap.end(); ++it)
 				{
-					for (map<uint8, Internal::CC::CommandClass*>::const_iterator it = m_commandClassMap.begin(); it != m_commandClassMap.end(); ++it)
+					it->second->CreateVars();
+					/* Dont' do this for Controller Nodes */
+					if (GetDriver()->GetControllerNodeId() != m_nodeId)
 					{
+
 						if (!it->second->IsAfterMark())
 						{
 							m_queryPending |= it->second->RequestStateForAllInstances(Internal::CC::CommandClass::RequestFlag_Static, Driver::MsgQueue_Query);
@@ -526,15 +528,16 @@ void Node::AdvanceQueries()
 				Log::Write(LogLevel_Detail, m_nodeId, "QueryStage_CacheLoad");
 				Log::Write(LogLevel_Info, GetNodeId(), "Loading Cache for node %d: Manufacturer=%s, Product=%s", GetNodeId(), GetManufacturerName().c_str(), GetProductName().c_str());
 				Log::Write(LogLevel_Info, GetNodeId(), "Node Identity Codes: %.4x:%.4x:%.4x", GetManufacturerId(), GetProductType(), GetProductId());
-				//
-				// Send a NoOperation message to see if the node is awake
-				// and alive. Based on the response or lack of response
-				// will determine next step. Called here when configuration exists.
-				//
-				Internal::CC::NoOperation* noop = static_cast<Internal::CC::NoOperation*>(GetCommandClass(Internal::CC::NoOperation::StaticGetCommandClassId()));
 				/* Don't do this if its to the Controller */
 				if (GetDriver()->GetControllerNodeId() != m_nodeId)
 				{
+					//
+					// Send a NoOperation message to see if the node is awake
+					// and alive. Based on the response or lack of response
+					// will determine next step. Called here when configuration exists.
+					//
+					Internal::CC::NoOperation* noop = static_cast<Internal::CC::NoOperation*>(GetCommandClass(Internal::CC::NoOperation::StaticGetCommandClassId()));
+
 					noop->Set(true);
 					m_queryPending = true;
 					addQSC = true;
@@ -860,7 +863,7 @@ void Node::ReadXML(TiXmlElement const* _node)
 			m_nodeInfoReceived = true;
 		}
 
-		if (m_queryStage > QueryStage_Instances)
+		if (m_queryStage > QueryStage_Static)
 		{
 			Notification* notification = new Notification(Notification::Type_EssentialNodeQueriesComplete);
 			notification->SetHomeAndNodeIds(m_homeId, m_nodeId);
@@ -1062,7 +1065,6 @@ void Node::ReadXML(TiXmlElement const* _node)
 					}
 
 					Internal::CC::ManufacturerSpecific* cc = static_cast<Internal::CC::ManufacturerSpecific*>(GetCommandClass(Internal::CC::ManufacturerSpecific::StaticGetCommandClassId()));
-					/* don't do this if its the Controller Node */
 					if (cc)
 					{
 						cc->SetProductDetails(manufacturerId, productType, productId);
@@ -1201,7 +1203,6 @@ void Node::ReadCommandClassesXML(TiXmlElement const* _ccsElement)
 							ccElement = ccElement->NextSiblingElement();
 							continue;
 						}
-
 						// Command class support does not exist yet, so we create it
 						cc = AddCommandClass(id);
 					}
@@ -1493,23 +1494,19 @@ void Node::UpdateProtocolInfo(uint8 const* _data)
 #endif
 		m_basicprotocolInfoReceived = true;
 	}
-	else
+	/* we have to setup the Wakeup CC if needed here, because
+		* it wouldn't have been created in the SetProtocolInfo function, as we didn't
+		* have the Device Flags then
+		*/
+	if (!m_listening && !IsFrequentListeningDevice())
 	{
-		/* we have to setup the Wakeup CC if needed here, because
-		 * it wouldn't have been created in the SetProtocolInfo function, as we didn't
-		 * have the Device Flags then
-		 */
-		if (!m_listening && !IsFrequentListeningDevice())
+		// Device does not always listen, so we need the WakeUp handler.  We can't
+		// wait for the command class list because the request for the command
+		// classes may need to go in the wakeup queue itself!
+		if (Internal::CC::CommandClass* pCommandClass = AddCommandClass(Internal::CC::WakeUp::StaticGetCommandClassId()))
 		{
-			// Device does not always listen, so we need the WakeUp handler.  We can't
-			// wait for the command class list because the request for the command
-			// classes may need to go in the wakeup queue itself!
-			if (Internal::CC::CommandClass* pCommandClass = AddCommandClass(Internal::CC::WakeUp::StaticGetCommandClassId()))
-			{
-				pCommandClass->SetInstance(1);
-			}
+			pCommandClass->SetInstance(1);
 		}
-
 	}
 	m_protocolInfoReceived = true;
 }
@@ -1597,6 +1594,9 @@ bool Node::IsSecured()
 void Node::SetInstanceLabel(uint8 const _instance, char *label)
 {
 	m_globalInstanceLabel[_instance] = string(label);
+	Driver *driver = GetDriver();
+	if (driver)
+		driver->WriteCache();
 }
 
 string Node::GetInstanceLabel(uint8 const _ccid, uint8 const _instance)
@@ -1819,26 +1819,6 @@ void Node::SetSecuredClasses(uint8 const* _data, uint8 const _length, uint32 con
 					pCommandClass->SetInstance(_instance);
 				else
 					pCommandClass->SetInstance(1);
-
-				/* set our Static Request Flags */
-				uint8 request = 0;
-
-				if (GetCommandClass(Internal::CC::MultiInstance::StaticGetCommandClassId()))
-				{
-					// Request instances
-					request |= (uint8) Internal::CC::CommandClass::StaticRequest_Instances;
-				}
-
-				if (GetCommandClass(Internal::CC::Version::StaticGetCommandClassId()))
-				{
-					// Request versions
-					request |= (uint8) Internal::CC::CommandClass::StaticRequest_Version;
-				}
-
-				if (request)
-				{
-					pCommandClass->SetStaticRequest(request);
-				}
 			}
 		}
 		else
@@ -1853,6 +1833,7 @@ void Node::SetSecuredClasses(uint8 const* _data, uint8 const _length, uint32 con
 			Log::Write(LogLevel_Info, m_nodeId, "    %s (Unsecured) - %s", it->second->GetCommandClassName().c_str(), it->second->IsInNIF() ? "InNIF" : "NotInNIF");
 	}
 
+	SetStaticRequests();
 }
 //-----------------------------------------------------------------------------
 // <Node::UpdateNodeInfo>
@@ -2179,6 +2160,27 @@ Internal::CC::CommandClass* Node::AddCommandClass(uint8 const _commandClassId)
 	if (Internal::CC::CommandClass* pCommandClass = Internal::CC::CommandClasses::CreateCommandClass(_commandClassId, m_homeId, m_nodeId))
 	{
 		m_commandClassMap[_commandClassId] = pCommandClass;
+
+
+		/* Only Request the CC Version if we are equal or after QueryStage_SecurityReport */
+		if (GetCurrentQueryStage() >= QueryStage_SecurityReport) {
+			Internal::CC::Version* vcc = static_cast<Internal::CC::Version*>(GetCommandClass(Internal::CC::Version::StaticGetCommandClassId()));
+			if (vcc)
+			{
+				if (pCommandClass->GetMaxVersion() > 1 && pCommandClass->GetVersion() == 0)
+				{
+					Log::Write(LogLevel_Info, m_nodeId, "\t\tRequesting Versions for %s", pCommandClass->GetCommandClassName().c_str());
+					// Get the version for each supported command class that
+					// we have implemented at greater than version one.
+					vcc->RequestCommandClassVersion(pCommandClass);
+				}
+				else
+				{
+					// set the Version to 1 
+					pCommandClass->SetVersion(1);
+				}
+			}
+		}
 		return pCommandClass;
 	}
 	else
@@ -2758,7 +2760,22 @@ void Node::ReadValueFromXML(uint8 const _commandClassId, TiXmlElement const* _va
 Internal::VC::Value* Node::GetValue(ValueID const& _id)
 {
 	// This increments the value's reference count
-	return GetValueStore()->GetValue(_id.GetValueStoreKey());
+	Internal::VC::Value *value = GetValueStore()->GetValue(_id.GetValueStoreKey());
+	
+	if (!value) {
+		Log::Write(LogLevel_Warning, m_nodeId, "Node::GetValue - Couldn't find ValueID in Store: %s", _id.GetAsString().c_str());
+		return nullptr;
+	}
+
+	if (value->GetID().GetId() != _id.GetId())
+	{
+		Log::Write(LogLevel_Error, m_nodeId, "Node::GetValue called with: %s but GetValueStore returned: %s",
+				   _id.GetAsString().c_str(), value->GetID().GetAsString().c_str());
+
+		value->Release();
+		return nullptr;
+	}
+	return value;
 }
 
 //-----------------------------------------------------------------------------
@@ -3336,7 +3353,7 @@ bool Node::AddMandatoryCommandClasses(uint8 const* _commandClasses)
 // <Node::ReadDeviceClasses>
 // Read the static device class data from the device_classes.xml file
 //-----------------------------------------------------------------------------
-void Node::ReadDeviceClasses()
+bool Node::ReadDeviceClasses()
 {
 	// Load the XML document that contains the device class information
 	string configPath;
@@ -3347,9 +3364,11 @@ void Node::ReadDeviceClasses()
 	TiXmlDocument doc;
 	if (!doc.LoadFile(filename.c_str(), TIXML_ENCODING_UTF8))
 	{
-		Log::Write(LogLevel_Info, "Failed to load device_classes.xml");
-		Log::Write(LogLevel_Info, "Check that the config path provided when creating the Manager points to the correct location.");
-		return;
+		Log::Write(LogLevel_Warning, "Failed to load device_classes.xml");
+		Log::Write(LogLevel_Warning, "Check that the config path provided when creating the Manager points to the correct location.");
+		Log::Write(LogLevel_Warning, "tinyXML Reported %s", doc.ErrorDesc());
+		OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot read device_classes.xml! - Missing/Invalid Config File?");
+		return false;
 	}
 	doc.SetUserData((void *) filename.c_str());
 	TiXmlElement const* deviceClassesElement = doc.RootElement();
@@ -3419,6 +3438,7 @@ void Node::ReadDeviceClasses()
 	}
 
 	s_deviceClassesLoaded = true;
+	return true;
 }
 
 //-----------------------------------------------------------------------------
@@ -4030,3 +4050,35 @@ void Node::WriteMetaDataXML(TiXmlElement *mdElement)
 		mdElement->LinkEndChild(cl);
 	}
 }
+
+//-----------------------------------------------------------------------------
+// <Node::CreateSupervisionSession>
+// Generate a new session id for Supervision encapsulation, if supported
+//-----------------------------------------------------------------------------
+uint8 Node::CreateSupervisionSession(uint8 _command_class_id, uint8 _index)
+{
+	if (Internal::CC::CommandClass* cc = GetCommandClass(Internal::CC::Supervision::StaticGetCommandClassId()))
+	{
+		return cc->CreateSupervisionSession(_command_class_id, _index);
+	}
+	else
+	{
+		return Internal::CC::Supervision::StaticNoSessionId();
+	}
+}
+
+//-----------------------------------------------------------------------------
+// <Node::GetSupervisionIndex>
+// Get the index used by a session
+//-----------------------------------------------------------------------------
+uint32 Node::GetSupervisionIndex(uint8 _session_id)
+{
+	if (Internal::CC::CommandClass* cc = GetCommandClass(Internal::CC::Supervision::StaticGetCommandClassId()))
+	{
+		return cc->GetSupervisionIndex(_session_id);
+	}
+	else
+	{
+		return Internal::CC::Supervision::StaticNoIndex();
+	}
+}
diff --git a/cpp/src/Node.h b/cpp/src/Node.h
index 374b7bc49b..bae66efb07 100644
--- a/cpp/src/Node.h
+++ b/cpp/src/Node.h
@@ -128,13 +128,13 @@ namespace OpenZWave
 				QueryStage_ProtocolInfo, /**< Retrieve protocol information */
 				QueryStage_Probe, /**< Ping device to see if alive */
 				QueryStage_WakeUp, /**< Start wake up process if a sleeping node */
-				QueryStage_ManufacturerSpecific1, /**< Retrieve manufacturer name and product ids if ProtocolInfo lets us */
 				QueryStage_NodeInfo, /**< Retrieve info about supported, controlled command classes */
 				QueryStage_NodePlusInfo, /**< Retrieve ZWave+ info and update device classes */
 				QueryStage_SecurityReport, /**< Retrieve a list of Command Classes that require Security */
-				QueryStage_ManufacturerSpecific2, /**< Retrieve manufacturer name and product ids */
 				QueryStage_Versions, /**< Retrieve version information */
+				QueryStage_ManufacturerSpecific1, /**< Retrieve manufacturer name and product ids if ProtocolInfo lets us */
 				QueryStage_Instances, /**< Retrieve information about multiple command class instances */
+				QueryStage_ManufacturerSpecific2, /**< Retrieve manufacturer name and product ids */
 				QueryStage_Static, /**< Retrieve static information (doesn't change) */
 				QueryStage_CacheLoad, /**< Ping a device upon restarting with cached config for the device */
 				QueryStage_Probe1 = QueryStage_CacheLoad, /** < Depreciated name. /todo Remove in 2.0 timeframe */
@@ -762,7 +762,7 @@ namespace OpenZWave
 			bool SetDeviceClasses(uint8 const _basic, uint8 const _generic, uint8 const _specific);	// Set the device class data for the node
 			bool SetPlusDeviceClasses(uint8 const _role, uint8 const _nodeType, uint16 const _deviceType);	// Set the device class data for the node based on the Zwave+ info report
 			bool AddMandatoryCommandClasses(uint8 const* _commandClasses);							// Add mandatory command classes as specified in the device_classes.xml to the node.
-			void ReadDeviceClasses();																	// Read the static device class data from the device_classes.xml file
+			bool ReadDeviceClasses();																	// Read the static device class data from the device_classes.xml file
 
 			static bool s_deviceClassesLoaded;		// True if the xml file has already been loaded
 			static map<uint8, string> s_basicDeviceClasses;		// Map of basic device classes.
@@ -911,6 +911,10 @@ namespace OpenZWave
 			void WriteMetaDataXML(TiXmlElement*);
 			map<MetaDataFields, string> m_metadata;
 			map<uint32_t, ChangeLogEntry> m_changeLog;
+
+		public:
+			uint8 CreateSupervisionSession(uint8 _command_class_id, uint8 _index);
+			uint32 GetSupervisionIndex(uint8 _session_id);
 	};
 
 } //namespace OpenZWave
diff --git a/cpp/src/Notification.cpp b/cpp/src/Notification.cpp
index cc07e29919..675b6585eb 100644
--- a/cpp/src/Notification.cpp
+++ b/cpp/src/Notification.cpp
@@ -28,6 +28,7 @@
 #include "Defs.h"
 #include "Notification.h"
 #include "Driver.h"
+#include "command_classes/CommandClasses.h"
 
 using namespace OpenZWave;
 
@@ -42,18 +43,34 @@ string Notification::GetAsString() const
 	string command;
 	switch (m_type)
 	{
-		case Type_ValueAdded:
-			str = "ValueAdded";
-			break;
-		case Type_ValueRemoved:
-			str = "ValueRemoved";
-			break;
-		case Type_ValueChanged:
-			str = "ValueChanged";
-			break;
-		case Type_ValueRefreshed:
-			str = "ValueRefreshed";
-			break;
+		case Type_ValueAdded: {
+			str = "ValueAdded ";
+			std::stringstream ss;
+			ss << "CC: " << Internal::CC::CommandClasses::GetName(GetValueID().GetCommandClassId()) << " Instance: " << (int)GetValueID().GetInstance() << " Index: " << std::dec << GetValueID().GetIndex();
+			str += ss.str();
+			break;
+		}
+		case Type_ValueRemoved: {
+			str = "ValueRemoved ";
+			std::stringstream ss;
+			ss << "CC: " << Internal::CC::CommandClasses::GetName(GetValueID().GetCommandClassId()) << " Instance: " << (int)GetValueID().GetInstance() << " Index: " << std::dec << GetValueID().GetIndex();
+			str += ss.str();
+			break;
+		}
+		case Type_ValueChanged: {
+			str = "ValueChanged ";
+			std::stringstream ss;
+			ss << "CC: " << Internal::CC::CommandClasses::GetName(GetValueID().GetCommandClassId()) << " Instance: " << (int)GetValueID().GetInstance() << " Index: " << std::dec << GetValueID().GetIndex();
+			str += ss.str();
+			break;
+		}
+		case Type_ValueRefreshed: {
+			str = "ValueRefreshed ";
+			std::stringstream ss;
+			ss << "CC: " << Internal::CC::CommandClasses::GetName(GetValueID().GetCommandClassId()) << " Instance: " << (int)GetValueID().GetInstance() << " Index: " << std::dec << GetValueID().GetIndex();
+			str += ss.str();
+			break;
+		}
 		case Type_Group:
 			str = "Group";
 			break;
diff --git a/cpp/src/NotificationCCTypes.cpp b/cpp/src/NotificationCCTypes.cpp
index 94c9807bef..2aef57bf00 100755
--- a/cpp/src/NotificationCCTypes.cpp
+++ b/cpp/src/NotificationCCTypes.cpp
@@ -46,7 +46,7 @@ namespace OpenZWave
 		{
 		}
 
-		void NotificationCCTypes::ReadXML()
+		bool NotificationCCTypes::ReadXML()
 		{
 			// Parse the Z-Wave manufacturer and product XML file.
 			string configPath;
@@ -58,7 +58,7 @@ namespace OpenZWave
 			{
 				delete pDoc;
 				Log::Write(LogLevel_Warning, "Unable to load NotificationCCTypes file %s", path.c_str());
-				return;
+				return false;
 			}
 			pDoc->SetUserData((void*) path.c_str());
 			Log::Write(LogLevel_Info, "Loading NotificationCCTypes File %s", path.c_str());
@@ -73,7 +73,7 @@ namespace OpenZWave
 				{
 					Log::Write(LogLevel_Info, "Error in Product Config file at line %d - missing Revision  attribute", root->Row());
 					delete pDoc;
-					return;
+					return false;
 				}
 				m_revision = atol(str);
 			}
@@ -283,6 +283,7 @@ namespace OpenZWave
 			exit(0);
 #endif
 			delete pDoc;
+			return true;
 		}
 
 		std::string NotificationCCTypes::GetEventParamNames(NotificationEventParamTypes type)
@@ -376,8 +377,11 @@ namespace OpenZWave
 			{
 				return true;
 			}
-			m_instance = new NotificationCCTypes();
-			ReadXML();
+			m_instance = new NotificationCCTypes();			
+			if (!ReadXML()) {
+				OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot Create NotificationCCTypes Class! - Missing/Invalid Config File?");
+				return false;
+			}
 			return true;
 		}
 
@@ -388,7 +392,10 @@ namespace OpenZWave
 				return m_instance;
 			}
 			m_instance = new NotificationCCTypes();
-			ReadXML();
+			if (!ReadXML()) {
+				OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot Get NotificationCCTypes Class! - Missing/Invalid Config File?");
+				return m_instance;
+			}
 			return m_instance;
 		}
 	} // namespace Internal
diff --git a/cpp/src/NotificationCCTypes.h b/cpp/src/NotificationCCTypes.h
index 5df7874c24..e450d52cfb 100755
--- a/cpp/src/NotificationCCTypes.h
+++ b/cpp/src/NotificationCCTypes.h
@@ -82,7 +82,7 @@ namespace OpenZWave
 			private:
 				NotificationCCTypes();
 				~NotificationCCTypes();
-				static void ReadXML();
+				static bool ReadXML();
 			public:
 				static NotificationCCTypes* Get();
 				static bool Create();
diff --git a/cpp/src/Scene.cpp b/cpp/src/Scene.cpp
index 96197a5775..d0e8bd460e 100644
--- a/cpp/src/Scene.cpp
+++ b/cpp/src/Scene.cpp
@@ -325,14 +325,15 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 		void Scene::RemoveValues(uint32 const _homeId)
 		{
-			again: for (vector<SceneStorage*>::iterator it = m_values.begin(); it != m_values.end(); ++it)
+			for (auto it = m_values.begin(); it != m_values.end();)
 			{
 				if ((*it)->m_id.GetHomeId() == _homeId)
 				{
 					delete *it;
-					m_values.erase(it);
-					goto again;
+					it = m_values.erase(it);
 				}
+				else
+					it++;
 			}
 			// If the scene is now empty, delete it.
 			if (m_values.empty())
@@ -352,14 +353,15 @@ namespace OpenZWave
 				Scene *scene = Scene::Get(i);
 				if (scene != NULL)
 				{
-					again: for (vector<SceneStorage*>::iterator it = scene->m_values.begin(); it != scene->m_values.end(); ++it)
+					for (auto it = scene->m_values.begin(); it != scene->m_values.end();)
 					{
 						if ((*it)->m_id.GetHomeId() == _homeId && (*it)->m_id.GetNodeId() == _nodeId)
 						{
 							delete *it;
-							scene->m_values.erase(it);
-							goto again;
+							it = scene->m_values.erase(it);
 						}
+						else
+							it++;
 					}
 					// If the scene is now empty, delete it.
 					if (scene->m_values.empty())
diff --git a/cpp/src/SensorMultiLevelCCTypes.cpp b/cpp/src/SensorMultiLevelCCTypes.cpp
index b533ca60cc..5564d288ba 100755
--- a/cpp/src/SensorMultiLevelCCTypes.cpp
+++ b/cpp/src/SensorMultiLevelCCTypes.cpp
@@ -46,7 +46,7 @@ namespace OpenZWave
 		{
 		}
 
-		void SensorMultiLevelCCTypes::ReadXML()
+		bool SensorMultiLevelCCTypes::ReadXML()
 		{
 			// Parse the Z-Wave manufacturer and product XML file.
 			string configPath;
@@ -58,7 +58,7 @@ namespace OpenZWave
 			{
 				delete pDoc;
 				Log::Write(LogLevel_Warning, "Unable to load SensorMultiLevelCCTypes file %s", path.c_str());
-				return;
+				return false;
 			}
 			pDoc->SetUserData((void*) path.c_str());
 			Log::Write(LogLevel_Info, "Loading SensorMultiLevelCCTypes File %s", path.c_str());
@@ -71,9 +71,9 @@ namespace OpenZWave
 				str = root->Attribute("Revision");
 				if (!str)
 				{
-					Log::Write(LogLevel_Info, "Error in SensorMultiLevel Config file at line %d - missing Revision  attribute", root->Row());
+					Log::Write(LogLevel_Warning, "Error in SensorMultiLevel Config file at line %d - missing Revision  attribute", root->Row());
 					delete pDoc;
-					return;
+					return false;
 				}
 				m_revision = atol(str);
 			}
@@ -174,6 +174,7 @@ namespace OpenZWave
 			exit(0);
 #endif
 			delete pDoc;
+			return true;
 		}
 
 		std::string SensorMultiLevelCCTypes::GetSensorName(uint32 type)
@@ -239,7 +240,10 @@ namespace OpenZWave
 				return true;
 			}
 			m_instance = new SensorMultiLevelCCTypes();
-			ReadXML();
+			if (!ReadXML()) {
+				OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot Create SensorMultiLevelCCTypes Class! - Missing/Invalid Config File?");
+				return false;
+			}
 			return true;
 		}
 
@@ -250,7 +254,9 @@ namespace OpenZWave
 				return m_instance;
 			}
 			m_instance = new SensorMultiLevelCCTypes();
-			ReadXML();
+			if (!ReadXML()) {
+				OZW_ERROR(OZWException::OZWEXCEPTION_CONFIG, "Cannot Get SensorMultiLevelCCTypes Class! - Missing/Invalid Config File?");
+			}
 			return m_instance;
 		}
 	} // namespace Internal
diff --git a/cpp/src/SensorMultiLevelCCTypes.h b/cpp/src/SensorMultiLevelCCTypes.h
index 3e4bafe938..c28f436ec1 100755
--- a/cpp/src/SensorMultiLevelCCTypes.h
+++ b/cpp/src/SensorMultiLevelCCTypes.h
@@ -65,7 +65,7 @@ namespace OpenZWave
 			private:
 				SensorMultiLevelCCTypes();
 				~SensorMultiLevelCCTypes();
-				static void ReadXML();
+				static bool ReadXML();
 			public:
 				static SensorMultiLevelCCTypes* Get();
 				static bool Create();
diff --git a/cpp/src/ValueIDIndexesDefines.def b/cpp/src/ValueIDIndexesDefines.def
index dc099f05fd..a23583297c 100644
--- a/cpp/src/ValueIDIndexesDefines.def
+++ b/cpp/src/ValueIDIndexesDefines.def
@@ -1597,7 +1597,9 @@ ENUM(ValueID_Index_BarrierOperator,
 		Visual = 4
 	);
 ENUM(ValueID_Index_Basic,
-		Set = 0
+		Set = 0,
+		Target = 1,
+		Duration = 2
 	);
 ENUM(ValueID_Index_BasicWindowCovering,
 		Open = 0,
@@ -1885,7 +1887,8 @@ ENUM(ValueID_Index_Color,
 		Color = 0,
 		Index = 1,
 		Channels_Capabilities = 2,
-		Duration = 4
+		Duration = 4,
+		Target = 5
 	);
 ENUM(ValueID_Index_Configuration,
 		Parameter_1 = 1,
@@ -2170,7 +2173,119 @@ ENUM(ValueID_Index_EnergyProduction,
 		Time = 3
 	);
 ENUM(ValueID_Index_Indicator,
-		Indicator = 0
+		Indicator = 0,
+		Armed = 1,
+		Not_Armed,
+		Ready,
+		Fault,
+		Busy,
+		Enter_ID,
+		Enter_PIN,
+		Code_Accepted,
+		Code_Not_Accepted,
+		Armed_Stay,
+		Armed_Away,
+		Alarming,
+		Alarming_Burglar,
+		Alarming_Smoke_Fire,
+		Alarming_Carbon_Monoxide,
+		Bypass_Challenge,
+		Entry_Delay,
+		Exit_Delay,
+		Alarming_Medical,
+		Alarming_Freeze_Warning,
+		Alarming_Water_Leak,
+		Alarming_Panic,
+		Zone_1_Armed = 0x20,
+		Zone_2_Armed,
+		Zone_3_Armed,
+		Zone_4_Armed,
+		Zone_5_Armed,
+		Zone_6_Armed,
+		Zone_7_Armed,
+		Zone_8_Armed,
+		LCD_Backlight = 0x30,
+		Button_Backlight_Letters = 0x40,
+		Button_Backlight_Digits,
+		Button_Backlight_Command,
+		Button_1_Indication,
+		Button_2_Indication,
+		Button_3_Indication,
+		Button_4_Indication,
+		Button_5_Indication,
+		Button_6_Indication,
+		Button_7_Indication,
+		Button_8_Indication,
+		Button_9_Indication,
+		Button_10_Indication,
+		Button_11_Indication,
+		Button_12_Indication,
+		Node_Identify = 0x50,
+		Generic_Event_Sound_Notification_1 = 0x60,
+		Generic_Event_Sound_Notification_2,
+		Generic_Event_Sound_Notification_3,
+		Generic_Event_Sound_Notification_4,
+		Generic_Event_Sound_Notification_5,
+		Generic_Event_Sound_Notification_6,
+		Generic_Event_Sound_Notification_7,
+		Generic_Event_Sound_Notification_8,
+		Generic_Event_Sound_Notification_9,
+		Generic_Event_Sound_Notification_10,
+		Generic_Event_Sound_Notification_11,
+		Generic_Event_Sound_Notification_12,
+		Generic_Event_Sound_Notification_13,
+		Generic_Event_Sound_Notification_14,
+		Generic_Event_Sound_Notification_15,
+		Generic_Event_Sound_Notification_16,
+		Generic_Event_Sound_Notification_17,
+		Generic_Event_Sound_Notification_18,
+		Generic_Event_Sound_Notification_19,
+		Generic_Event_Sound_Notification_20,
+		Generic_Event_Sound_Notification_21,
+		Generic_Event_Sound_Notification_22,
+		Generic_Event_Sound_Notification_23,
+		Generic_Event_Sound_Notification_24,
+		Generic_Event_Sound_Notification_25,
+		Generic_Event_Sound_Notification_26,
+		Generic_Event_Sound_Notification_27,
+		Generic_Event_Sound_Notification_28,
+		Generic_Event_Sound_Notification_29,
+		Generic_Event_Sound_Notification_30,
+		Generic_Event_Sound_Notification_31,
+		Generic_Event_Sound_Notification_32,
+		Manufacturer_Defined_Indicator_1 = 0x80,
+		Manufacturer_Defined_Indicator_2,
+		Manufacturer_Defined_Indicator_3,
+		Manufacturer_Defined_Indicator_4,
+		Manufacturer_Defined_Indicator_5,
+		Manufacturer_Defined_Indicator_6,
+		Manufacturer_Defined_Indicator_7,
+		Manufacturer_Defined_Indicator_8,
+		Manufacturer_Defined_Indicator_9,
+		Manufacturer_Defined_Indicator_10,
+		Manufacturer_Defined_Indicator_11,
+		Manufacturer_Defined_Indicator_12,
+		Manufacturer_Defined_Indicator_13,
+		Manufacturer_Defined_Indicator_14,
+		Manufacturer_Defined_Indicator_15,
+		Manufacturer_Defined_Indicator_16,
+		Manufacturer_Defined_Indicator_17,
+		Manufacturer_Defined_Indicator_18,
+		Manufacturer_Defined_Indicator_19,
+		Manufacturer_Defined_Indicator_20,
+		Manufacturer_Defined_Indicator_21,
+		Manufacturer_Defined_Indicator_22,
+		Manufacturer_Defined_Indicator_23,
+		Manufacturer_Defined_Indicator_24,
+		Manufacturer_Defined_Indicator_25,
+		Manufacturer_Defined_Indicator_26,
+		Manufacturer_Defined_Indicator_27,
+		Manufacturer_Defined_Indicator_28,
+		Manufacturer_Defined_Indicator_29,
+		Manufacturer_Defined_Indicator_30,
+		Manufacturer_Defined_Indicator_31,
+		Manufacturer_Defined_Indicator_32,
+		Buzzer = 0xF0
 	);
 ENUM(ValueID_Index_Language,
 		Language = 0,
diff --git a/cpp/src/ValueIDIndexesDefines.h b/cpp/src/ValueIDIndexesDefines.h
index 48053dcc20..035343efb1 100644
--- a/cpp/src/ValueIDIndexesDefines.h
+++ b/cpp/src/ValueIDIndexesDefines.h
@@ -21,7 +21,9 @@ struct ValueID_Index_BarrierOperator { enum _enumerated { Command = 0, Label = 1
 
 
 
-struct ValueID_Index_Basic { enum _enumerated { Set = 0 }; _enumerated _value; ValueID_Index_Basic(_enumerated value) : _value(value) { } operator _enumerated() const { return _value; } const char* _to_string() const { for (size_t index = 0; index < _count; ++index) { if (_values()[index] == _value) return _names()[index]; } return NULL; } static const size_t _count = 1; static const int* _values() { static const int values[] = { (ignore_assign)Set = 0, }; return values; } static const char* const* _names() { static const char* const raw_names[] = { "Set = 0", }; static char* processed_names[_count]; static bool initialized = false; if (!initialized) { for (size_t index = 0; index < _count; ++index) { size_t length = std::strcspn(raw_names[index], " =\t\n\r"); processed_names[index] = new char[length + 1]; strncpy( processed_names[index], raw_names[index], length); processed_names[index][length] = '\0'; } } return processed_names; } };;
+struct ValueID_Index_Basic { enum _enumerated { Set = 0, Target = 1, Duration = 2 }; _enumerated _value; ValueID_Index_Basic(_enumerated value) : _value(value) { } operator _enumerated() const { return _value; } const char* _to_string() const { for (size_t index = 0; index < _count; ++index) { if (_values()[index] == _value) return _names()[index]; } return NULL; } static const size_t _count = 3; static const int* _values() { static const int values[] = { (ignore_assign)Set = 0, (ignore_assign)Target = 1, (ignore_assign)Duration = 2, }; return values; } static const char* const* _names() { static const char* const raw_names[] = { "Set = 0", "Target = 1", "Duration = 2", }; static char* processed_names[_count]; static bool initialized = false; if (!initialized) { for (size_t index = 0; index < _count; ++index) { size_t length = std::strcspn(raw_names[index], " =\t\n\r"); processed_names[index] = new char[length + 1]; strncpy( processed_names[index], raw_names[index], length); processed_names[index][length] = '\0'; } } return processed_names; } };;
+
+
 
 
 struct ValueID_Index_BasicWindowCovering { enum _enumerated { Open = 0, Close = 1 }; _enumerated _value; ValueID_Index_BasicWindowCovering(_enumerated value) : _value(value) { } operator _enumerated() const { return _value; } const char* _to_string() const { for (size_t index = 0; index < _count; ++index) { if (_values()[index] == _value) return _names()[index]; } return NULL; } static const size_t _count = 2; static const int* _values() { static const int values[] = { (ignore_assign)Open = 0, (ignore_assign)Close = 1, }; return values; } static const char* const* _names() { static const char* const raw_names[] = { "Open = 0", "Close = 1", }; static char* processed_names[_count]; static bool initialized = false; if (!initialized) { for (size_t index = 0; index < _count; ++index) { size_t length = std::strcspn(raw_names[index], " =\t\n\r"); processed_names[index] = new char[length + 1]; strncpy( processed_names[index], raw_names[index], length); processed_names[index][length] = '\0'; } } return processed_names; } };;
@@ -38,7 +40,8 @@ struct ValueID_Index_Clock { enum _enumerated { Day = 0, Hour = 1, Minute = 2 };
 
 
 
-struct ValueID_Index_Color { enum _enumerated { Color = 0, Index = 1, Channels_Capabilities = 2, Duration = 4 }; _enumerated _value; ValueID_Index_Color(_enumerated value) : _value(value) { } operator _enumerated() const { return _value; } const char* _to_string() const { for (size_t index = 0; index < _count; ++index) { if (_values()[index] == _value) return _names()[index]; } return NULL; } static const size_t _count = 4; static const int* _values() { static const int values[] = { (ignore_assign)Color = 0, (ignore_assign)Index = 1, (ignore_assign)Channels_Capabilities = 2, (ignore_assign)Duration = 4, }; return values; } static const char* const* _names() { static const char* const raw_names[] = { "Color = 0", "Index = 1", "Channels_Capabilities = 2", "Duration = 4", }; static char* processed_names[_count]; static bool initialized = false; if (!initialized) { for (size_t index = 0; index < _count; ++index) { size_t length = std::strcspn(raw_names[index], " =\t\n\r"); processed_names[index] = new char[length + 1]; strncpy( processed_names[index], raw_names[index], length); processed_names[index][length] = '\0'; } } return processed_names; } };;
+struct ValueID_Index_Color { enum _enumerated { Color = 0, Index = 1, Channels_Capabilities = 2, Duration = 4, Target = 5 }; _enumerated _value; ValueID_Index_Color(_enumerated value) : _value(value) { } operator _enumerated() const { return _value; } const char* _to_string() const { for (size_t index = 0; index < _count; ++index) { if (_values()[index] == _value) return _names()[index]; } return NULL; } static const size_t _count = 5; static const int* _values() { static const int values[] = { (ignore_assign)Color = 0, (ignore_assign)Index = 1, (ignore_assign)Channels_Capabilities = 2, (ignore_assign)Duration = 4, (ignore_assign)Target = 5, }; return values; } static const char* const* _names() { static const char* const raw_names[] = { "Color = 0", "Index = 1", "Channels_Capabilities = 2", "Duration = 4", "Target = 5", }; static char* processed_names[_count]; static bool initialized = false; if (!initialized) { for (size_t index = 0; index < _count; ++index) { size_t length = std::strcspn(raw_names[index], " =\t\n\r"); processed_names[index] = new char[length + 1]; strncpy( processed_names[index], raw_names[index], length); processed_names[index][length] = '\0'; } } return processed_names; } };;
+
 
 
 
@@ -62,9 +65,7 @@ struct ValueID_Index_EnergyProduction { enum _enumerated { Instant = 0, Total =
 
 
 
-struct ValueID_Index_Indicator { enum _enumerated { Indicator = 0 }; _enumerated _value; ValueID_Index_Indicator(_enumerated value) : _value(value) { } operator _enumerated() const { return _value; } const char* _to_string() const { for (size_t index = 0; index < _count; ++index) { if (_values()[index] == _value) return _names()[index]; } return NULL; } static const size_t _count = 1; static const int* _values() { static const int values[] = { (ignore_assign)Indicator = 0, }; return values; } static const char* const* _names() { static const char* const raw_names[] = { "Indicator = 0", }; static char* processed_names[_count]; static bool initialized = false; if (!initialized) { for (size_t index = 0; index < _count; ++index) { size_t length = std::strcspn(raw_names[index], " =\t\n\r"); processed_names[index] = new char[length + 1]; strncpy( processed_names[index], raw_names[index], length); processed_names[index][length] = '\0'; } } return processed_names; } };;
-
-
+struct ValueID_Index_Indicator { enum _enumerated { Indicator = 0, Armed = 1, Not_Armed, Ready, Fault, Busy, Enter_ID, Enter_PIN, Code_Accepted, Code_Not_Accepted, Armed_Stay, Armed_Away, Alarming, Alarming_Burglar, Alarming_Smoke_Fire, Alarming_Carbon_Monoxide, Bypass_Challenge, Entry_Delay, Exit_Delay, Alarming_Medical, Alarming_Freeze_Warning, Alarming_Water_Leak, Alarming_Panic, Zone_1_Armed = 0x20, Zone_2_Armed, Zone_3_Armed, Zone_4_Armed, Zone_5_Armed, Zone_6_Armed, Zone_7_Armed, Zone_8_Armed, LCD_Backlight = 0x30, Button_Backlight_Letters = 0x40, Button_Backlight_Digits, Button_Backlight_Command, Button_1_Indication, Button_2_Indication, Button_3_Indication, Button_4_Indication, Button_5_Indication, Button_6_Indication, Button_7_Indication, Button_8_Indication, Button_9_Indication, Button_10_Indication, Button_11_Indication, Button_12_Indication, Node_Identify = 0x50, Generic_Event_Sound_Notification_1 = 0x60, Generic_Event_Sound_Notification_2, Generic_Event_Sound_Notification_3, Generic_Event_Sound_Notification_4, Generic_Event_Sound_Notification_5, Generic_Event_Sound_Notification_6, Generic_Event_Sound_Notification_7, Generic_Event_Sound_Notification_8, Generic_Event_Sound_Notification_9, Generic_Event_Sound_Notification_10, Generic_Event_Sound_Notification_11, Generic_Event_Sound_Notification_12, Generic_Event_Sound_Notification_13, Generic_Event_Sound_Notification_14, Generic_Event_Sound_Notification_15, Generic_Event_Sound_Notification_16, Generic_Event_Sound_Notification_17, Generic_Event_Sound_Notification_18, Generic_Event_Sound_Notification_19, Generic_Event_Sound_Notification_20, Generic_Event_Sound_Notification_21, Generic_Event_Sound_Notification_22, Generic_Event_Sound_Notification_23, Generic_Event_Sound_Notification_24, Generic_Event_Sound_Notification_25, Generic_Event_Sound_Notification_26, Generic_Event_Sound_Notification_27, Generic_Event_Sound_Notification_28, Generic_Event_Sound_Notification_29, Generic_Event_Sound_Notification_30, Generic_Event_Sound_Notification_31, Generic_Event_Sound_Notification_32, Manufacturer_Defined_Indicator_1 = 0x80, Manufacturer_Defined_Indicator_2, Manufacturer_Defined_Indicator_3, Manufacturer_Defined_Indicator_4, Manufacturer_Defined_Indicator_5, Manufacturer_Defined_Indicator_6, Manufacturer_Defined_Indicator_7, Manufacturer_Defined_Indicator_8, Manufacturer_Defined_Indicator_9, Manufacturer_Defined_Indicator_10, Manufacturer_Defined_Indicator_11, Manufacturer_Defined_Indicator_12, Manufacturer_Defined_Indicator_13, Manufacturer_Defined_Indicator_14, Manufacturer_Defined_Indicator_15, Manufacturer_Defined_Indicator_16, Manufacturer_Defined_Indicator_17, Manufacturer_Defined_Indicator_18, Manufacturer_Defined_Indicator_19, Manufacturer_Defined_Indicator_20, Manufacturer_Defined_Indicator_21, Manufacturer_Defined_Indicator_22, Manufacturer_Defined_Indicator_23, Manufacturer_Defined_Indicator_24, Manufacturer_Defined_Indicator_25, Manufacturer_Defined_Indicator_26, Manufacturer_Defined_Indicator_27, Manufacturer_Defined_Indicator_28, Manufacturer_Defined_Indicator_29, Manufacturer_Defined_Indicator_30, Manufacturer_Defined_Indicator_31, Manufacturer_Defined_Indicator_32, Buzzer = 0xF0 }; _enumerated _value; ValueID_Index_Indicator(_enumerated value) : _value(value) { } operator _enumerated() const { return _value; } const char* _to_string() const { for (size_t index = 0; index < _count; ++index) { if (_values()[index] == _value) return _names()[index]; } return NULL; } static const size_t _count = 113; static const int* _values() { static const int values[] = { (ignore_assign)Indicator = 0, (ignore_assign)Armed = 1, (ignore_assign)Not_Armed, (ignore_assign)Ready, (ignore_assign)Fault, (ignore_assign)Busy, (ignore_assign)Enter_ID, (ignore_assign)Enter_PIN, (ignore_assign)Code_Accepted, (ignore_assign)Code_Not_Accepted, (ignore_assign)Armed_Stay, (ignore_assign)Armed_Away, (ignore_assign)Alarming, (ignore_assign)Alarming_Burglar, (ignore_assign)Alarming_Smoke_Fire, (ignore_assign)Alarming_Carbon_Monoxide, (ignore_assign)Bypass_Challenge, (ignore_assign)Entry_Delay, (ignore_assign)Exit_Delay, (ignore_assign)Alarming_Medical, (ignore_assign)Alarming_Freeze_Warning, (ignore_assign)Alarming_Water_Leak, (ignore_assign)Alarming_Panic, (ignore_assign)Zone_1_Armed = 0x20, (ignore_assign)Zone_2_Armed, (ignore_assign)Zone_3_Armed, (ignore_assign)Zone_4_Armed, (ignore_assign)Zone_5_Armed, (ignore_assign)Zone_6_Armed, (ignore_assign)Zone_7_Armed, (ignore_assign)Zone_8_Armed, (ignore_assign)LCD_Backlight = 0x30, (ignore_assign)Button_Backlight_Letters = 0x40, (ignore_assign)Button_Backlight_Digits, (ignore_assign)Button_Backlight_Command, (ignore_assign)Button_1_Indication, (ignore_assign)Button_2_Indication, (ignore_assign)Button_3_Indication, (ignore_assign)Button_4_Indication, (ignore_assign)Button_5_Indication, (ignore_assign)Button_6_Indication, (ignore_assign)Button_7_Indication, (ignore_assign)Button_8_Indication, (ignore_assign)Button_9_Indication, (ignore_assign)Button_10_Indication, (ignore_assign)Button_11_Indication, (ignore_assign)Button_12_Indication, (ignore_assign)Node_Identify = 0x50, (ignore_assign)Generic_Event_Sound_Notification_1 = 0x60, (ignore_assign)Generic_Event_Sound_Notification_2, (ignore_assign)Generic_Event_Sound_Notification_3, (ignore_assign)Generic_Event_Sound_Notification_4, (ignore_assign)Generic_Event_Sound_Notification_5, (ignore_assign)Generic_Event_Sound_Notification_6, (ignore_assign)Generic_Event_Sound_Notification_7, (ignore_assign)Generic_Event_Sound_Notification_8, (ignore_assign)Generic_Event_Sound_Notification_9, (ignore_assign)Generic_Event_Sound_Notification_10, (ignore_assign)Generic_Event_Sound_Notification_11, (ignore_assign)Generic_Event_Sound_Notification_12, (ignore_assign)Generic_Event_Sound_Notification_13, (ignore_assign)Generic_Event_Sound_Notification_14, (ignore_assign)Generic_Event_Sound_Notification_15, (ignore_assign)Generic_Event_Sound_Notification_16, (ignore_assign)Generic_Event_Sound_Notification_17, (ignore_assign)Generic_Event_Sound_Notification_18, (ignore_assign)Generic_Event_Sound_Notification_19, (ignore_assign)Generic_Event_Sound_Notification_20, (ignore_assign)Generic_Event_Sound_Notification_21, (ignore_assign)Generic_Event_Sound_Notification_22, (ignore_assign)Generic_Event_Sound_Notification_23, (ignore_assign)Generic_Event_Sound_Notification_24, (ignore_assign)Generic_Event_Sound_Notification_25, (ignore_assign)Generic_Event_Sound_Notification_26, (ignore_assign)Generic_Event_Sound_Notification_27, (ignore_assign)Generic_Event_Sound_Notification_28, (ignore_assign)Generic_Event_Sound_Notification_29, (ignore_assign)Generic_Event_Sound_Notification_30, (ignore_assign)Generic_Event_Sound_Notification_31, (ignore_assign)Generic_Event_Sound_Notification_32, (ignore_assign)Manufacturer_Defined_Indicator_1 = 0x80, (ignore_assign)Manufacturer_Defined_Indicator_2, (ignore_assign)Manufacturer_Defined_Indicator_3, (ignore_assign)Manufacturer_Defined_Indicator_4, (ignore_assign)Manufacturer_Defined_Indicator_5, (ignore_assign)Manufacturer_Defined_Indicator_6, (ignore_assign)Manufacturer_Defined_Indicator_7, (ignore_assign)Manufacturer_Defined_Indicator_8, (ignore_assign)Manufacturer_Defined_Indicator_9, (ignore_assign)Manufacturer_Defined_Indicator_10, (ignore_assign)Manufacturer_Defined_Indicator_11, (ignore_assign)Manufacturer_Defined_Indicator_12, (ignore_assign)Manufacturer_Defined_Indicator_13, (ignore_assign)Manufacturer_Defined_Indicator_14, (ignore_assign)Manufacturer_Defined_Indicator_15, (ignore_assign)Manufacturer_Defined_Indicator_16, (ignore_assign)Manufacturer_Defined_Indicator_17, (ignore_assign)Manufacturer_Defined_Indicator_18, (ignore_assign)Manufacturer_Defined_Indicator_19, (ignore_assign)Manufacturer_Defined_Indicator_20, (ignore_assign)Manufacturer_Defined_Indicator_21, (ignore_assign)Manufacturer_Defined_Indicator_22, (ignore_assign)Manufacturer_Defined_Indicator_23, (ignore_assign)Manufacturer_Defined_Indicator_24, (ignore_assign)Manufacturer_Defined_Indicator_25, (ignore_assign)Manufacturer_Defined_Indicator_26, (ignore_assign)Manufacturer_Defined_Indicator_27, (ignore_assign)Manufacturer_Defined_Indicator_28, (ignore_assign)Manufacturer_Defined_Indicator_29, (ignore_assign)Manufacturer_Defined_Indicator_30, (ignore_assign)Manufacturer_Defined_Indicator_31, (ignore_assign)Manufacturer_Defined_Indicator_32, (ignore_assign)Buzzer = 0xF0, }; return values; } static const char* const* _names() { static const char* const raw_names[] = { "Indicator = 0", "Armed = 1", "Not_Armed", "Ready", "Fault", "Busy", "Enter_ID", "Enter_PIN", "Code_Accepted", "Code_Not_Accepted", "Armed_Stay", "Armed_Away", "Alarming", "Alarming_Burglar", "Alarming_Smoke_Fire", "Alarming_Carbon_Monoxide", "Bypass_Challenge", "Entry_Delay", "Exit_Delay", "Alarming_Medical", "Alarming_Freeze_Warning", "Alarming_Water_Leak", "Alarming_Panic", "Zone_1_Armed = 0x20", "Zone_2_Armed", "Zone_3_Armed", "Zone_4_Armed", "Zone_5_Armed", "Zone_6_Armed", "Zone_7_Armed", "Zone_8_Armed", "LCD_Backlight = 0x30", "Button_Backlight_Letters = 0x40", "Button_Backlight_Digits", "Button_Backlight_Command", "Button_1_Indication", "Button_2_Indication", "Button_3_Indication", "Button_4_Indication", "Button_5_Indication", "Button_6_Indication", "Button_7_Indication", "Button_8_Indication", "Button_9_Indication", "Button_10_Indication", "Button_11_Indication", "Button_12_Indication", "Node_Identify = 0x50", "Generic_Event_Sound_Notification_1 = 0x60", "Generic_Event_Sound_Notification_2", "Generic_Event_Sound_Notification_3", "Generic_Event_Sound_Notification_4", "Generic_Event_Sound_Notification_5", "Generic_Event_Sound_Notification_6", "Generic_Event_Sound_Notification_7", "Generic_Event_Sound_Notification_8", "Generic_Event_Sound_Notification_9", "Generic_Event_Sound_Notification_10", "Generic_Event_Sound_Notification_11", "Generic_Event_Sound_Notification_12", "Generic_Event_Sound_Notification_13", "Generic_Event_Sound_Notification_14", "Generic_Event_Sound_Notification_15", "Generic_Event_Sound_Notification_16", "Generic_Event_Sound_Notification_17", "Generic_Event_Sound_Notification_18", "Generic_Event_Sound_Notification_19", "Generic_Event_Sound_Notification_20", "Generic_Event_Sound_Notification_21", "Generic_Event_Sound_Notification_22", "Generic_Event_Sound_Notification_23", "Generic_Event_Sound_Notification_24", "Generic_Event_Sound_Notification_25", "Generic_Event_Sound_Notification_26", "Generic_Event_Sound_Notification_27", "Generic_Event_Sound_Notification_28", "Generic_Event_Sound_Notification_29", "Generic_Event_Sound_Notification_30", "Generic_Event_Sound_Notification_31", "Generic_Event_Sound_Notification_32", "Manufacturer_Defined_Indicator_1 = 0x80", "Manufacturer_Defined_Indicator_2", "Manufacturer_Defined_Indicator_3", "Manufacturer_Defined_Indicator_4", "Manufacturer_Defined_Indicator_5", "Manufacturer_Defined_Indicator_6", "Manufacturer_Defined_Indicator_7", "Manufacturer_Defined_Indicator_8", "Manufacturer_Defined_Indicator_9", "Manufacturer_Defined_Indicator_10", "Manufacturer_Defined_Indicator_11", "Manufacturer_Defined_Indicator_12", "Manufacturer_Defined_Indicator_13", "Manufacturer_Defined_Indicator_14", "Manufacturer_Defined_Indicator_15", "Manufacturer_Defined_Indicator_16", "Manufacturer_Defined_Indicator_17", "Manufacturer_Defined_Indicator_18", "Manufacturer_Defined_Indicator_19", "Manufacturer_Defined_Indicator_20", "Manufacturer_Defined_Indicator_21", "Manufacturer_Defined_Indicator_22", "Manufacturer_Defined_Indicator_23", "Manufacturer_Defined_Indicator_24", "Manufacturer_Defined_Indicator_25", "Manufacturer_Defined_Indicator_26", "Manufacturer_Defined_Indicator_27", "Manufacturer_Defined_Indicator_28", "Manufacturer_Defined_Indicator_29", "Manufacturer_Defined_Indicator_30", "Manufacturer_Defined_Indicator_31", "Manufacturer_Defined_Indicator_32", "Buzzer = 0xF0", }; static char* processed_names[_count]; static bool initialized = false; if (!initialized) { for (size_t index = 0; index < _count; ++index) { size_t length = std::strcspn(raw_names[index], " =\t\n\r"); processed_names[index] = new char[length + 1]; strncpy( processed_names[index], raw_names[index], length); processed_names[index][length] = '\0'; } } return processed_names; } };;
 struct ValueID_Index_Language { enum _enumerated { Language = 0, Country = 1 }; _enumerated _value; ValueID_Index_Language(_enumerated value) : _value(value) { } operator _enumerated() const { return _value; } const char* _to_string() const { for (size_t index = 0; index < _count; ++index) { if (_values()[index] == _value) return _names()[index]; } return NULL; } static const size_t _count = 2; static const int* _values() { static const int values[] = { (ignore_assign)Language = 0, (ignore_assign)Country = 1, }; return values; } static const char* const* _names() { static const char* const raw_names[] = { "Language = 0", "Country = 1", }; static char* processed_names[_count]; static bool initialized = false; if (!initialized) { for (size_t index = 0; index < _count; ++index) { size_t length = std::strcspn(raw_names[index], " =\t\n\r"); processed_names[index] = new char[length + 1]; strncpy( processed_names[index], raw_names[index], length); processed_names[index][length] = '\0'; } } return processed_names; } };;
 
 
diff --git a/cpp/src/command_classes/Alarm.cpp b/cpp/src/command_classes/Alarm.cpp
index cee454edac..f5027eb40e 100644
--- a/cpp/src/command_classes/Alarm.cpp
+++ b/cpp/src/command_classes/Alarm.cpp
@@ -194,6 +194,7 @@ namespace OpenZWave
 			{
 				if (AlarmCmd_Report == (AlarmCmd) _data[0])
 				{
+					Log::Write(LogLevel_Info, GetNodeId(), "Got a AlarmCmd_Report Message.... ");
 					// We have received a report from the Z-Wave device
 					if (GetVersion() == 1)
 					{
@@ -239,7 +240,7 @@ namespace OpenZWave
 
 						uint8 NotificationType = _data[5];
 						uint8 NotificationEvent = _data[6];
-						bool NotificationSequencePresent = ((_data[7] & 0x80) == 1);
+						bool NotificationSequencePresent = (_data[7] & 0x80);
 						uint8 EventParamLength = (_data[7] & 0x1F);
 						uint8 NotificationSequence = 0;
 						if (NotificationSequencePresent)
@@ -444,6 +445,10 @@ namespace OpenZWave
 						}
 
 					}
+					else 
+					{
+						Log::Write(LogLevel_Warning, GetNodeId(), "Got a AlarmCmd_Report Message - Greater than Version 2, but size was less than 7?");
+					}
 					return true;
 				}
 
diff --git a/cpp/src/command_classes/Association.h b/cpp/src/command_classes/Association.h
index b9f7ac9956..221752b3ad 100644
--- a/cpp/src/command_classes/Association.h
+++ b/cpp/src/command_classes/Association.h
@@ -81,6 +81,9 @@ namespace OpenZWave
 					void Set(uint8 const _group, uint8 const _nodeId);
 					void Remove(uint8 const _group, uint8 const _nodeId);
 
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				private:
 					Association(uint32 const _homeId, uint8 const _nodeId);
 					void QueryGroup(uint8 _groupIdx, uint32 const _requestFlags);
diff --git a/cpp/src/command_classes/AssociationCommandConfiguration.cpp b/cpp/src/command_classes/AssociationCommandConfiguration.cpp
index 576441250b..073edea8eb 100644
--- a/cpp/src/command_classes/AssociationCommandConfiguration.cpp
+++ b/cpp/src/command_classes/AssociationCommandConfiguration.cpp
@@ -183,7 +183,7 @@ namespace OpenZWave
 					if (Node* node = GetNodeUnsafe())
 					{
 						Group* group = node->GetGroup(groupIdx);
-						if ( NULL == group)
+						if ( NULL != group)
 						{
 							if (firstReports)
 							{
diff --git a/cpp/src/command_classes/AssociationCommandConfiguration.h b/cpp/src/command_classes/AssociationCommandConfiguration.h
index 900aff03b0..247fb10a92 100644
--- a/cpp/src/command_classes/AssociationCommandConfiguration.h
+++ b/cpp/src/command_classes/AssociationCommandConfiguration.h
@@ -79,6 +79,9 @@ namespace OpenZWave
 					}
 					virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
 
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
diff --git a/cpp/src/command_classes/Basic.cpp b/cpp/src/command_classes/Basic.cpp
index 188ed6dc6f..38899304bf 100644
--- a/cpp/src/command_classes/Basic.cpp
+++ b/cpp/src/command_classes/Basic.cpp
@@ -36,6 +36,7 @@
 #include "platform/Log.h"
 
 #include "value_classes/ValueByte.h"
+#include "value_classes/ValueInt.h"
 #include "command_classes/NoOperation.h"
 
 #include "tinyxml.h"
@@ -73,7 +74,9 @@ namespace OpenZWave
 			void Basic::ReadXML(TiXmlElement const* _ccElement)
 			{
 				CommandClass::ReadXML(_ccElement);
-				SetMapping(m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING), false);
+				SetMapping(m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING));
+				if (m_com.GetFlagBool(COMPAT_FLAG_BASIC_SETASREPORT))
+					SetAfterMark();
 			}
 
 //-----------------------------------------------------------------------------
@@ -84,7 +87,7 @@ namespace OpenZWave
 			{
 				if (IsAfterMark())
 				{
-					Log::Write(LogLevel_Info, GetNodeId(), "Controlled Class");
+					Log::Write(LogLevel_Info, GetNodeId(), "%s is a Controlling Class", GetCommandClassName().c_str());
 					return false;
 				}
 				if (_requestFlags & RequestFlag_Dynamic)
@@ -102,6 +105,9 @@ namespace OpenZWave
 			bool Basic::RequestValue(uint32 const _requestFlags, uint16 const _dummy1,	// = 0 (not used)
 					uint8 const _instance, Driver::MsgQueue const _queue)
 			{
+				if (IsAfterMark())
+					return false;
+
 				if (m_com.GetFlagBool(COMPAT_FLAG_GETSUPPORTED))
 				{
 					Msg* msg = new Msg("BasicCmd_Get", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
@@ -141,16 +147,39 @@ namespace OpenZWave
 					Log::Write(LogLevel_Info, GetNodeId(), "Received Basic report from node %d: level=%d", GetNodeId(), _data[1]);
 					if (!m_com.GetFlagBool(COMPAT_FLAG_BASIC_IGNOREREMAPPING) && m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING) != 0)
 					{
-						UpdateMappedClass(_instance, m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING), _data[1]);
-					}
-					else if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_Basic::Set)))
-					{
-						value->OnValueRefreshed(_data[1]);
-						value->Release();
+						/* update our Mapped Class with the Target Values */
+						if (GetVersion() >= 2 && _length >= 4)
+							UpdateMappedClass(_instance, m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING), _data[2]);
+						else
+							UpdateMappedClass(_instance, m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING), _data[1]);
 					}
-					else
-					{
-						Log::Write(LogLevel_Warning, GetNodeId(), "No Valid Mapping for Basic Command Class and No ValueID Exported. Error?");
+					else 
+					{ 
+						if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_Basic::Set)))
+						{
+							/* Set the Target Value, if it is present */
+							if (_length >= 4)
+								value->SetTargetValue(_data[2], _data[3]);
+							value->OnValueRefreshed(_data[1]);
+							value->Release();
+						}
+						else
+						{
+							Log::Write(LogLevel_Warning, GetNodeId(), "No Valid Mapping for Basic Command Class and No ValueID Exported. Error?");
+						}
+						if (_length >= 4)
+						{
+							if (Internal::VC::ValueByte* target = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_Basic::Target)))
+							{
+								target->OnValueRefreshed(_data[2]);
+								target->Release();
+							}
+							if (Internal::VC::ValueInt* duration = static_cast<Internal::VC::ValueInt *>(GetValue(_instance, ValueID_Index_Basic::Duration)))
+							{
+								duration->OnValueRefreshed(decodeDuration(_data[3]));
+								duration->Release();
+							}
+						}
 					}
 					return true;
 				}
@@ -162,12 +191,37 @@ namespace OpenZWave
 						Log::Write(LogLevel_Info, GetNodeId(), "Received Basic set from node %d: level=%d. Treating it as a Basic report.", GetNodeId(), _data[1]);
 						if (!m_com.GetFlagBool(COMPAT_FLAG_BASIC_IGNOREREMAPPING) && m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING) != 0)
 						{
-							UpdateMappedClass(_instance, m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING), _data[1]);
+							/* update our Mapped Class with the Target Values */
+							if (GetVersion() >= 2 && _length >= 4)
+								UpdateMappedClass(_instance, m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING), _data[2]);
+							else
+								UpdateMappedClass(_instance, m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING), _data[1]);
 						}
-						else if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_Basic::Set)))
+						else 
 						{
-							value->OnValueRefreshed(_data[1]);
-							value->Release();
+							if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_Basic::Set)))
+							{
+								value->OnValueRefreshed(_data[1]);
+								value->Release();
+							}
+							else
+							{
+								Log::Write(LogLevel_Warning, GetNodeId(), "No Valid Mapping for Basic Command Class and No ValueID Exported. Error?");
+							}
+							
+							if (_length >= 4)
+							{
+								if (Internal::VC::ValueByte* target = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_Basic::Target)))
+								{
+									target->OnValueRefreshed(_data[2]);
+									target->Release();
+								}
+								if (Internal::VC::ValueInt* duration = static_cast<Internal::VC::ValueInt *>(GetValue(_instance, ValueID_Index_Basic::Duration)))
+								{
+									duration->OnValueRefreshed(decodeDuration(_data[3]));
+									duration->Release();
+								}
+							}
 						}
 					}
 					else
@@ -192,7 +246,7 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			bool Basic::SetValue(Internal::VC::Value const& _value)
 			{
-				if (ValueID::ValueType_Byte == _value.GetID().GetType())
+				if (ValueID_Index_Basic::Set == _value.GetID().GetIndex())
 				{
 					Internal::VC::ValueByte const* value = static_cast<Internal::VC::ValueByte const*>(&_value);
 
@@ -218,7 +272,20 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			void Basic::CreateVars(uint8 const _instance)
 			{
-				m_instances.push_back(_instance);
+				if (m_com.GetFlagBool(COMPAT_FLAG_BASIC_IGNOREREMAPPING) || (m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING) == 0))
+				{
+					Log::Write(LogLevel_Info, GetNodeId(), "COMMAND_CLASS_BASIC is not mapped to another CC. Exposing ValueID");
+					if (Node* node = GetNodeUnsafe())
+					{
+						node->CreateValueByte(ValueID::ValueGenre_Basic, GetCommandClassId(), _instance, ValueID_Index_Basic::Set, "Basic", "", IsAfterMark(), false, 0, 0);
+						if ((GetVersion() >= 2) || (IsAfterMark()))
+						{
+							node->CreateValueByte(ValueID::ValueGenre_Basic, GetCommandClassId(), _instance, ValueID_Index_Basic::Target, "Basic Target", "", true, false, 0, 0);
+							node->CreateValueInt(ValueID::ValueGenre_Basic, GetCommandClassId(), _instance, ValueID_Index_Basic::Duration, "Basic Duration", "", true, false, 0, 0);
+						}
+					}
+				}
+
 			}
 
 //-----------------------------------------------------------------------------
@@ -240,54 +307,36 @@ namespace OpenZWave
 // <Basic::SetMapping>
 // Map COMMAND_CLASS_BASIC messages to another command class
 //-----------------------------------------------------------------------------
-			bool Basic::SetMapping(uint8 const _commandClassId, bool const _doLog)
+			bool Basic::SetMapping(uint8 const _commandClassId)
 			{
 				bool res = false;
 
 				if (_commandClassId != NoOperation::StaticGetCommandClassId())
 				{
-					if (_doLog)
+					char str[16];
+					snprintf(str, sizeof(str), "0x%02x", _commandClassId);
+					string ccstr = str;
+					if (Node const* node = GetNodeUnsafe())
 					{
-						char str[16];
-						snprintf(str, sizeof(str), "0x%02x", _commandClassId);
-						string ccstr = str;
-						if (Node const* node = GetNodeUnsafe())
-						{
-							if (CommandClass* cc = node->GetCommandClass(_commandClassId))
-							{
-								ccstr = cc->GetCommandClassName();
-							}
-						}
-						if (m_com.GetFlagBool(COMPAT_FLAG_BASIC_IGNOREREMAPPING))
-						{
-							Log::Write(LogLevel_Info, GetNodeId(), "    COMMAND_CLASS_BASIC will not be mapped to %s (ignored)", ccstr.c_str());
-						}
-						else
+						if (CommandClass* cc = node->GetCommandClass(_commandClassId))
 						{
-							Log::Write(LogLevel_Info, GetNodeId(), "    COMMAND_CLASS_BASIC will be mapped to %s", ccstr.c_str());
+							ccstr = cc->GetCommandClassName();
 						}
 					}
-					m_com.SetFlagByte(COMPAT_FLAG_BASIC_MAPPING, _commandClassId);
-					RemoveValue(1, ValueID_Index_Basic::Set);
-					res = true;
-				}
-
-				if (m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING) == 0)
-				{
-					if (_doLog)
-						Log::Write(LogLevel_Info, GetNodeId(), "    COMMAND_CLASS_BASIC is not mapped");
-					if (Node* node = GetNodeUnsafe())
+					if (m_com.GetFlagBool(COMPAT_FLAG_BASIC_IGNOREREMAPPING))
 					{
-						if (m_instances.size() > 0)
-						{
-							for (unsigned int i = 0; i < m_instances.size(); i++)
-								node->CreateValueByte(ValueID::ValueGenre_Basic, GetCommandClassId(), m_instances[i], ValueID_Index_Basic::Set, "Basic", "", false, false, 0, 0);
-						}
-						else
-						{
-							node->CreateValueByte(ValueID::ValueGenre_Basic, GetCommandClassId(), 0, ValueID_Index_Basic::Set, "Basic", "", false, false, 0, 0);
-						}
+						Log::Write(LogLevel_Info, GetNodeId(), "    COMMAND_CLASS_BASIC will not be mapped to %s (ignored)", ccstr.c_str());
+						m_com.SetFlagByte(COMPAT_FLAG_BASIC_MAPPING, 0);
 					}
+					else
+					{
+						Log::Write(LogLevel_Info, GetNodeId(), "    COMMAND_CLASS_BASIC will be mapped to %s", ccstr.c_str());
+						m_com.SetFlagByte(COMPAT_FLAG_BASIC_MAPPING, _commandClassId);
+						RemoveValue(1, ValueID_Index_Basic::Set);
+						RemoveValue(1, ValueID_Index_Basic::Target);
+						RemoveValue(1, ValueID_Index_Basic::Duration);
+					}
+					res = true;
 				}
 				return res;
 			}
diff --git a/cpp/src/command_classes/Basic.h b/cpp/src/command_classes/Basic.h
index 874a5a0208..6e8b13f2d6 100644
--- a/cpp/src/command_classes/Basic.h
+++ b/cpp/src/command_classes/Basic.h
@@ -59,7 +59,7 @@ namespace OpenZWave
 						return "COMMAND_CLASS_BASIC";
 					}
 
-					bool SetMapping(uint8 const _commandClassId, bool const _doLog = true);	// Map COMMAND_CLASS_BASIC messages to another command class
+					bool SetMapping(uint8 const _commandClassId);	// Map COMMAND_CLASS_BASIC messages to another command class
 					uint8_t GetMapping()
 					{
 						return m_com.GetFlagByte(COMPAT_FLAG_BASIC_MAPPING);
@@ -83,6 +83,12 @@ namespace OpenZWave
 
 					void Set(uint8 const _level);
 
+					virtual uint8 GetMaxVersion() override
+					{
+						return 2;
+					}
+
+
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
diff --git a/cpp/src/command_classes/Battery.h b/cpp/src/command_classes/Battery.h
index af11bb6cff..e78272b0ea 100644
--- a/cpp/src/command_classes/Battery.h
+++ b/cpp/src/command_classes/Battery.h
@@ -71,7 +71,10 @@ namespace OpenZWave
 						return StaticGetCommandClassName();
 					}
 					virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
-
+					
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
diff --git a/cpp/src/command_classes/CRC16Encap.h b/cpp/src/command_classes/CRC16Encap.h
index d574385748..66c1090a27 100644
--- a/cpp/src/command_classes/CRC16Encap.h
+++ b/cpp/src/command_classes/CRC16Encap.h
@@ -70,6 +70,9 @@ namespace OpenZWave
 					}
 					virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
 
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				private:
 					CRC16Encap(uint32 const _homeId, uint8 const _nodeId) :
 							CommandClass(_homeId, _nodeId)
diff --git a/cpp/src/command_classes/CentralScene.cpp b/cpp/src/command_classes/CentralScene.cpp
index 330ff71ad7..d088894547 100644
--- a/cpp/src/command_classes/CentralScene.cpp
+++ b/cpp/src/command_classes/CentralScene.cpp
@@ -209,7 +209,7 @@ namespace OpenZWave
 						identical = _data[2] & 0x01;
 						Log::Write(LogLevel_Detail, GetNodeId(), "CentralScene: all scenes identical? %i", identical);
 						if (GetVersion() >= 3)
-							m_slowrefresh = (_data[2] & 0x80) == 1 ? true : false;
+							m_slowrefresh = (_data[2] & 0x80) ? true : false;
 					}
 
 					if (Internal::VC::ValueInt* value = static_cast<Internal::VC::ValueInt*>(GetValue(_instance, ValueID_Index_CentralScene::SceneCount)))
@@ -221,7 +221,7 @@ namespace OpenZWave
 					{
 						Log::Write(LogLevel_Warning, GetNodeId(), "Can't find ValueID for SceneCount");
 					}
-
+					Log::Write(LogLevel_Info, GetNodeId(), "Central Scene Contains %d Scenes that are%sidentical", m_dom.GetFlagByte(STATE_FLAG_CS_SCENECOUNT), identical ? " " : " not ");
 					for (int sceneID = 1; sceneID <= m_dom.GetFlagByte(STATE_FLAG_CS_SCENECOUNT); sceneID++)
 					{
 						if (GetVersion() == 1)
@@ -240,6 +240,7 @@ namespace OpenZWave
 								char lbl[64];
 								snprintf(lbl, 64, "Scene %d", sceneID);
 								node->CreateValueList(ValueID::ValueGenre_User, GetCommandClassId(), _instance, sceneID, lbl, "", true, false, 3, items, 0, 0);
+								Log::Write(LogLevel_Info, GetNodeId(), "Created Scene %d (Version 1)", sceneID);
 							}
 						}
 						if (GetVersion() >= 2)
@@ -254,8 +255,10 @@ namespace OpenZWave
 								int keyAttributes = _data[2 + sceneID];
 								createSupportedKeyAttributesValues(keyAttributes, sceneID, _instance);
 							}
+							Log::Write(LogLevel_Info, GetNodeId(), "Created Scene %d", sceneID);
 						}
 					}
+					return true;
 				}
 
 				return false;
diff --git a/cpp/src/command_classes/Color.cpp b/cpp/src/command_classes/Color.cpp
index 98e42cb050..fe97a028d6 100644
--- a/cpp/src/command_classes/Color.cpp
+++ b/cpp/src/command_classes/Color.cpp
@@ -116,6 +116,7 @@ namespace OpenZWave
 					if (m_dom.GetFlagShort(STATE_FLAG_COLOR_CHANNELS) == 0)
 					{
 						Msg* msg = new Msg("ColorCmd_CapabilityGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+						msg->SetInstance(this, _instance);
 						msg->Append(GetNodeId());
 						msg->Append(2);
 						msg->Append(GetCommandClassId());
@@ -304,7 +305,9 @@ namespace OpenZWave
 						}
 
 						if (GetVersion() > 1)
-							node->CreateValueByte(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_Color::Duration, "Duration", "Sec", false, false, 255, 0);
+							node->CreateValueInt(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_Color::Duration, "Duration", "Sec", false, false, -1, 0);
+						if (GetVersion() > 2)
+							node->CreateValueString(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_Color::Target, "Target Color", helpstr, true, false, "#000000", 0);
 
 					}
 					return true;
@@ -338,6 +341,8 @@ namespace OpenZWave
 						}
 					}
 					m_colorvalues[coloridx] = _data[2];
+					if (GetVersion() >= 3)
+						m_colorTargetValues[coloridx] = _data[3];
 
 					/* test if there are any more valid coloridx */
 					for (uint8 idx = coloridx + 1; idx < 9; idx++)
@@ -351,287 +356,272 @@ namespace OpenZWave
 						m_refreshinprogress = false;
 
 					/* if we get here, then we can update our ValueID */
+
+					string colorStr = decodeColor(m_colorvalues);
+
 					if (Internal::VC::ValueString* color = static_cast<Internal::VC::ValueString*>(GetValue(_instance, ValueID_Index_Color::Color)))
 					{
-						/* create a RGB[W] String */
-						std::stringstream ss;
-						std::stringstream ssbuf;
-						bool usingbuf = false;
-						uint16_t f_capabilities = m_dom.GetFlagShort(STATE_FLAG_COLOR_CHANNELS);
-						ss << "#";
-						/* do R */
-						if ((f_capabilities) & (1 << (COLORIDX_RED)))
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_RED];
-						else
-							ss << "00";
-						/* do G */
-						if ((f_capabilities) & (1 << (COLORIDX_GREEN)))
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_GREEN];
-						else
-							ss << "00";
-						/* do B */
-						if ((f_capabilities) & (1 << (COLORIDX_BLUE)))
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_BLUE];
-						else
-							ss << "00";
-
-						/* if both whites are present.... */
-						if (((f_capabilities) & (1 << (COLORIDX_WARMWHITE))) && ((f_capabilities) & (1 << (COLORIDX_COLDWHITE))))
-						{
-							/* append them both */
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_WARMWHITE];
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_COLDWHITE];
-						}
-						else if ((f_capabilities) & (1 << (COLORIDX_WARMWHITE)))
-						{
-							/* else, if the warm white is present, append that */
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_WARMWHITE];
-						}
-						else if ((f_capabilities) & (1 << (COLORIDX_COLDWHITE)))
-						{
-							/* else, if the cold white is present, append that */
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_COLDWHITE];
-						}
-						else
-						{
-							/* we put 0000 into our buffer to represent both Warm and Cold white */
-							ssbuf << "0000";
-							usingbuf = true;
-						}
-						if ((f_capabilities) & (1 << (COLORIDX_AMBER)))
-						{
-							/* if AMBER is present, append our buffer if needed */
-							if (usingbuf)
-							{
-								ss << ssbuf.str();
-								ssbuf.str("");
-								ssbuf.clear();
-								usingbuf = false;
-							}
-							/* and then our Color */
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_AMBER];
-						}
-						else
-						{
-							/* put 00 into our buffer */
-							ssbuf << "00";
-							usingbuf = true;
-						}
-						if ((f_capabilities) & (1 << (COLORIDX_CYAN)))
+						Log::Write(LogLevel_Info, GetNodeId(), "Received a updated Color from Device: %s", colorStr.c_str());
+						if (GetVersion() >= 3)
+							color->SetTargetValue(decodeColor(m_colorTargetValues), _data[4]);
+						color->OnValueRefreshed(colorStr);
+						color->Release();
+					}
+					/* if we got a updated Color Index Value - Update our ValueID */
+					if (Internal::VC::ValueList* coloridx = static_cast<Internal::VC::ValueList*>(GetValue(_instance, ValueID_Index_Color::Index)))
+					{
+						if ((m_dom.GetFlagShort(STATE_FLAG_COLOR_CHANNELS)) & (1 << (COLORIDX_INDEXCOLOR)))
 						{
-							/* if CYAN is present, append our buffer if needed */
-							if (usingbuf)
-							{
-								ss << ssbuf.str();
-								ssbuf.str("");
-								ssbuf.clear();
-								usingbuf = false;
-							}
-							/* and then our Color */
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_CYAN];
-						}
+							coloridx->OnValueRefreshed(m_colorvalues[COLORIDX_INDEXCOLOR]);
+						} 
 						else
 						{
-							/* put 00 into our buffer */
-							ssbuf << "00";
-							usingbuf = true;
+							coloridx->OnValueRefreshed(decodeColorList(colorStr));
 						}
-						if ((f_capabilities) & (1 << (COLORIDX_PURPLE)))
+						coloridx->Release();
+					}
+					if (GetVersion() >= 3) 
+					{
+						string colorTargetStr = decodeColor(m_colorTargetValues);
+
+						if (Internal::VC::ValueString* color = static_cast<Internal::VC::ValueString*>(GetValue(_instance, ValueID_Index_Color::Target)))
 						{
-							/* if PURPLE is present, append our buffer if needed */
-							if (usingbuf)
-							{
-								ss << ssbuf.str();
-								ssbuf.str("");
-								ssbuf.clear();
-								usingbuf = false;
-							}
-							/* and then our Color */
-							ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_PURPLE];
+							Log::Write(LogLevel_Info, GetNodeId(), "Received a updated Color Target from Device: %s", colorStr.c_str());
+							color->OnValueRefreshed(colorStr);
+							color->Release();
 						}
-						/* No need for a else case here as COLORIDX_PURPLE is the last color. If its not supported, we
-						 * don't put anything in our Color String
-						 */
+					}
 
-						Log::Write(LogLevel_Info, GetNodeId(), "Received a updated Color from Device: %s", ss.str().c_str());
-						color->OnValueRefreshed(string(ss.str()));
-						color->Release();
+					return true;
+				}
+				return false;
+			}
 
-						/* if we don't support the Color Index then fake it */
-						if (!(f_capabilities & (1 << (COLORIDX_INDEXCOLOR))))
-						{
-							if (Internal::VC::ValueList* coloridx = static_cast<Internal::VC::ValueList*>(GetValue(_instance, ValueID_Index_Color::Index)))
-							{
-								/* it supports the AMBER/CYAN/PURPLE Channels */
-								if (f_capabilities > 31)
-								{
-									/* Custom */
-									coloridx->OnValueRefreshed(17);
-									coloridx->Release();
-									return true;
-								}
-								if ((f_capabilities) & (1 << (COLORIDX_WARMWHITE)))
-								{
-									if (ss.str().substr(0, 9) == "#000000FF")
-									{
-										/* Warm White */
-										coloridx->OnValueRefreshed(2);
-										coloridx->Release();
-										return true;
-									}
-								}
-								if ((f_capabilities) & (1 << (COLORIDX_COLDWHITE)))
-								{
-									if (ss.str().substr(0, 11) == "#00000000FF")
-									{
-										/* Cool White */
-										coloridx->OnValueRefreshed(1);
-										coloridx->Release();
-										return true;
-									}
-								}
-								if (ss.str().substr(0, 7) == "#000000")
-								{
-									/* off */
-									coloridx->OnValueRefreshed(0);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#FFFFFF")
-								{
-									/* White */
-									coloridx->OnValueRefreshed(1);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#FF9329")
-								{
-									/* warm white */
-									coloridx->OnValueRefreshed(2);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#FF0000")
-								{
-									/* red */
-									coloridx->OnValueRefreshed(3);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#00FF00")
-								{
-									/* lime */
-									coloridx->OnValueRefreshed(4);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#0000FF")
-								{
-									/* blue */
-									coloridx->OnValueRefreshed(5);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#FFFF00")
-								{
-									/* yellow */
-									coloridx->OnValueRefreshed(6);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#00FFFF")
-								{
-									/* Cyan */
-									coloridx->OnValueRefreshed(7);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#FF00FF")
-								{
-									/* Magenta */
-									coloridx->OnValueRefreshed(8);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#C0C0C0")
-								{
-									/* Silver */
-									coloridx->OnValueRefreshed(9);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#808080")
-								{
-									/* gray */
-									coloridx->OnValueRefreshed(10);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#800000")
-								{
-									/* maroon */
-									coloridx->OnValueRefreshed(11);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#808000")
-								{
-									/* Olive */
-									coloridx->OnValueRefreshed(12);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#008000")
-								{
-									/* green */
-									coloridx->OnValueRefreshed(13);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#800080")
-								{
-									/* purple */
-									coloridx->OnValueRefreshed(14);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#008080")
-								{
-									/* teal */
-									coloridx->OnValueRefreshed(15);
-									coloridx->Release();
-									return true;
-								}
-								else if (ss.str().substr(0, 7) == "#000080")
-								{
-									/* navy */
-									coloridx->OnValueRefreshed(16);
-									coloridx->Release();
-									return true;
-								}
-								else
-								{
-									/* custom */
-									coloridx->OnValueRefreshed(17);
-									coloridx->Release();
-									return true;
-								}
+			uint8 Color::decodeColorList(string colorStr)
+			{
+				uint16_t f_capabilities = m_dom.GetFlagShort(STATE_FLAG_COLOR_CHANNELS);
 
-							}
+				/* if we don't support the Color Index then fake it */
+				if (!(f_capabilities & (1 << (COLORIDX_INDEXCOLOR))))
+				{
+					/* it supports the AMBER/CYAN/PURPLE Channels */
+					if (f_capabilities > 31)
+					{
+						/* Custom */
+						return 17;
+					}
+					if ((f_capabilities) & (1 << (COLORIDX_WARMWHITE)))
+					{
+						if (colorStr.substr(0, 9) == "#000000FF")
+						{
+							/* Warm White */
+							return 2;
 						}
 					}
-					/* if we got a updated Color Index Value - Update our ValueID */
-					if ((m_dom.GetFlagShort(STATE_FLAG_COLOR_CHANNELS)) & (1 << (COLORIDX_INDEXCOLOR)))
+					if ((f_capabilities) & (1 << (COLORIDX_COLDWHITE)))
 					{
-						if (Internal::VC::ValueList* coloridx = static_cast<Internal::VC::ValueList*>(GetValue(_instance, ValueID_Index_Color::Index)))
+						if (colorStr.substr(0, 11) == "#00000000FF")
 						{
-							coloridx->OnValueRefreshed(m_colorvalues[COLORIDX_INDEXCOLOR]);
-							coloridx->Release();
+							/* Cool White */
+							return 1;
 						}
 					}
-					return true;
+					if (colorStr.substr(0, 7) == "#000000")
+					{
+						/* off */
+						return 0;
+					}
+					else if (colorStr.substr(0, 7) == "#FFFFFF")
+					{
+						/* White */
+						return 1;
+					}
+					else if (colorStr.substr(0, 7) == "#FF9329")
+					{
+						/* warm white */
+						return 2;
+					}
+					else if (colorStr.substr(0, 7) == "#FF0000")
+					{
+						/* red */
+						return 3;
+					}
+					else if (colorStr.substr(0, 7) == "#00FF00")
+					{
+						/* lime */
+						return 4;
+					}
+					else if (colorStr.substr(0, 7) == "#0000FF")
+					{
+						/* blue */
+						return 5;
+					}
+					else if (colorStr.substr(0, 7) == "#FFFF00")
+					{
+						/* yellow */
+						return 6;
+					}
+					else if (colorStr.substr(0, 7) == "#00FFFF")
+					{
+						/* Cyan */
+						return 7;
+					}
+					else if (colorStr.substr(0, 7) == "#FF00FF")
+					{
+						/* Magenta */
+						return 8;
+					}
+					else if (colorStr.substr(0, 7) == "#C0C0C0")
+					{
+						/* Silver */
+						return 9;
+					}
+					else if (colorStr.substr(0, 7) == "#808080")
+					{
+						/* gray */
+						return 10;
+					}
+					else if (colorStr.substr(0, 7) == "#800000")
+					{
+						/* maroon */
+						return 11;
+					}
+					else if (colorStr.substr(0, 7) == "#808000")
+					{
+						/* Olive */
+						return 12;
+					}
+					else if (colorStr.substr(0, 7) == "#008000")
+					{
+						/* green */
+						return 13;
+					}
+					else if (colorStr.substr(0, 7) == "#800080")
+					{
+						/* purple */
+						return 14;
+					}
+					else if (colorStr.substr(0, 7) == "#008080")
+					{
+						/* teal */
+						return 15;
+					}
+					else if (colorStr.substr(0, 7) == "#000080")
+					{
+						/* navy */
+						return 16;
+					}
+					else
+					{
+						/* custom */
+						return 17;
+					}
 				}
-				return false;
+				return 17;
+			}
+
+			string Color::decodeColor(uint8 valueArray[9])
+			{
+				/* create a RGB[W] String */
+				std::stringstream ss;
+				std::stringstream ssbuf;
+				bool usingbuf = false;
+				uint16_t f_capabilities = m_dom.GetFlagShort(STATE_FLAG_COLOR_CHANNELS);
+				ss << "#";
+				/* do R */
+				if ((f_capabilities) & (1 << (COLORIDX_RED)))
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_RED];
+				else
+					ss << "00";
+				/* do G */
+				if ((f_capabilities) & (1 << (COLORIDX_GREEN)))
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_GREEN];
+				else
+					ss << "00";
+				/* do B */
+				if ((f_capabilities) & (1 << (COLORIDX_BLUE)))
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_BLUE];
+				else
+					ss << "00";
+
+				/* if both whites are present.... */
+				if (((f_capabilities) & (1 << (COLORIDX_WARMWHITE))) && ((f_capabilities) & (1 << (COLORIDX_COLDWHITE))))
+				{
+					/* append them both */
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_WARMWHITE];
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_COLDWHITE];
+				}
+				else if ((f_capabilities) & (1 << (COLORIDX_WARMWHITE)))
+				{
+					/* else, if the warm white is present, append that */
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_WARMWHITE];
+				}
+				else if ((f_capabilities) & (1 << (COLORIDX_COLDWHITE)))
+				{
+					/* else, if the cold white is present, append that */
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_COLDWHITE];
+				}
+				else
+				{
+					/* we put 0000 into our buffer to represent both Warm and Cold white */
+					ssbuf << "0000";
+					usingbuf = true;
+				}
+				if ((f_capabilities) & (1 << (COLORIDX_AMBER)))
+				{
+					/* if AMBER is present, append our buffer if needed */
+					if (usingbuf)
+					{
+						ss << ssbuf.str();
+						ssbuf.str("");
+						ssbuf.clear();
+						usingbuf = false;
+					}
+					/* and then our Color */
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_AMBER];
+				}
+				else
+				{
+					/* put 00 into our buffer */
+					ssbuf << "00";
+					usingbuf = true;
+				}
+				if ((f_capabilities) & (1 << (COLORIDX_CYAN)))
+				{
+					/* if CYAN is present, append our buffer if needed */
+					if (usingbuf)
+					{
+						ss << ssbuf.str();
+						ssbuf.str("");
+						ssbuf.clear();
+						usingbuf = false;
+					}
+					/* and then our Color */
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_CYAN];
+				}
+				else
+				{
+					/* put 00 into our buffer */
+					ssbuf << "00";
+					usingbuf = true;
+				}
+				if ((f_capabilities) & (1 << (COLORIDX_PURPLE)))
+				{
+					/* if PURPLE is present, append our buffer if needed */
+					if (usingbuf)
+					{
+						ss << ssbuf.str();
+						ssbuf.str("");
+						ssbuf.clear();
+						usingbuf = false;
+					}
+					/* and then our Color */
+					ss << std::setw(2) << std::uppercase << std::hex << std::setfill('0') << (int) m_colorvalues[COLORIDX_PURPLE];
+				}
+				/* No need for a else case here as COLORIDX_PURPLE is the last color. If its not supported, we
+				* don't put anything in our Color String
+				*/
+			return ss.str();
 			}
 
 //-----------------------------------------------------------------------------
@@ -728,7 +718,7 @@ namespace OpenZWave
 					msg->Append(colvals[COLORIDX_GREEN]);
 					msg->Append(COLORIDX_BLUE);
 					msg->Append(colvals[COLORIDX_BLUE]);
-					if (colvalset[COLORIDX_WARMWHITE] & !colvalset[COLORIDX_COLDWHITE])
+					if (colvalset[COLORIDX_WARMWHITE] && !colvalset[COLORIDX_COLDWHITE])
 					{
 						msg->Append(COLORIDX_WARMWHITE);
 						msg->Append(colvals[COLORIDX_WARMWHITE]);
@@ -757,12 +747,12 @@ namespace OpenZWave
 					}
 					if (GetVersion() > 1)
 					{
-						uint8 duration = 0;
-						if (Internal::VC::ValueByte *valduration = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), ValueID_Index_Color::Duration)))
+						uint32 duration = 15300;
+						if (Internal::VC::ValueInt *valduration = static_cast<Internal::VC::ValueInt *>(GetValue(_value.GetID().GetInstance(), ValueID_Index_Color::Duration)))
 						{
 							duration = valduration->GetValue();
 						}
-						msg->Append(duration);
+						msg->Append(encodeDuration(duration));
 					}
 					msg->Append(GetDriver()->GetTransmitOptions());
 					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
@@ -796,12 +786,12 @@ namespace OpenZWave
 						msg->Append(index);
 						if (GetVersion() > 1)
 						{
-							uint8 duration = 0;
-							if (Internal::VC::ValueByte *valduration = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), ValueID_Index_Color::Duration)))
+							uint32 duration = 15300;
+							if (Internal::VC::ValueInt *valduration = static_cast<Internal::VC::ValueInt *>(GetValue(_value.GetID().GetInstance(), ValueID_Index_Color::Duration)))
 							{
 								duration = valduration->GetValue();
 							}
-							msg->Append(duration);
+							msg->Append(encodeDuration(duration));
 						}
 						msg->Append(GetDriver()->GetTransmitOptions());
 						GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
@@ -1069,12 +1059,12 @@ namespace OpenZWave
 						}
 						if (GetVersion() > 1)
 						{
-							uint8 duration = 0;
-							if (Internal::VC::ValueByte *valduration = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), ValueID_Index_Color::Duration)))
+							uint32 duration = 0;
+							if (Internal::VC::ValueInt *valduration = static_cast<Internal::VC::ValueInt *>(GetValue(_value.GetID().GetInstance(), ValueID_Index_Color::Duration)))
 							{
 								duration = valduration->GetValue();
 							}
-							msg->Append(duration);
+							msg->Append(encodeDuration(duration));
 						}
 						msg->Append(GetDriver()->GetTransmitOptions());
 						GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
@@ -1084,9 +1074,9 @@ namespace OpenZWave
 				else if (ValueID_Index_Color::Duration == _value.GetID().GetIndex())
 				{
 					Log::Write(LogLevel_Info, GetNodeId(), "Color::SetValue - Setting Color Fade Duration");
-					Internal::VC::ValueByte const* value = static_cast<Internal::VC::ValueByte const*>(&_value);
-					uint8 _duration = value->GetValue();
-					if (Internal::VC::ValueByte * m_value = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), ValueID_Index_Color::Duration)))
+					Internal::VC::ValueInt const* value = static_cast<Internal::VC::ValueInt const*>(&_value);
+					int32 _duration = value->GetValue();
+					if (Internal::VC::ValueInt * m_value = static_cast<Internal::VC::ValueInt *>(GetValue(_value.GetID().GetInstance(), ValueID_Index_Color::Duration)))
 					{
 						m_value->OnValueRefreshed(_duration);
 						m_value->Release();
diff --git a/cpp/src/command_classes/Color.h b/cpp/src/command_classes/Color.h
index 96c54ab603..104ace81f8 100644
--- a/cpp/src/command_classes/Color.h
+++ b/cpp/src/command_classes/Color.h
@@ -82,12 +82,15 @@ namespace OpenZWave
 
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
+					string decodeColor(uint8 valueArray[9]);
+					uint8 decodeColorList(string color);
 
 				private:
 					Color(uint32 const _homeId, uint8 const _nodeId);
 					bool m_refreshinprogress;
 					uint8 m_coloridxcount;
 					uint8 m_colorvalues[9];
+					uint8 m_colorTargetValues[9];
 			};
 		} // namespace CC
 	} // namespace Internal
diff --git a/cpp/src/command_classes/CommandClass.cpp b/cpp/src/command_classes/CommandClass.cpp
index b6f25f1429..e222d69d61 100644
--- a/cpp/src/command_classes/CommandClass.cpp
+++ b/cpp/src/command_classes/CommandClass.cpp
@@ -68,7 +68,8 @@ namespace OpenZWave
 				m_com.EnableFlag(COMPAT_FLAG_CREATEVARS, true);
 				m_com.EnableFlag(COMPAT_FLAG_REFRESHONWAKEUP, false);
 				m_com.EnableFlag(COMPAT_FLAG_VERIFYCHANGED, false);
-				m_dom.EnableFlag(STATE_FLAG_CCVERSION, 1);
+				m_com.EnableFlag(COMPAT_FLAG_NO_REFRESH_AFTER_SET, false);
+				m_dom.EnableFlag(STATE_FLAG_CCVERSION, 0);
 				m_dom.EnableFlag(STATE_FLAG_STATIC_REQUESTS, 0);
 				m_dom.EnableFlag(STATE_FLAG_AFTERMARK, false);
 				m_dom.EnableFlag(STATE_FLAG_ENCRYPTED, false);
@@ -89,20 +90,10 @@ namespace OpenZWave
 				}
 				while (!m_RefreshClassValues.empty())
 				{
-					for (unsigned int i = 0; i < m_RefreshClassValues.size(); i++)
+					multimap<uint16, RefreshValue *>::iterator it;
+					for (it = m_RefreshClassValues.begin(); it != m_RefreshClassValues.end(); it++)
 					{
-						RefreshValue *rcc = m_RefreshClassValues.at(i);
-						while (!rcc->RefreshClasses.empty())
-						{
-							delete rcc->RefreshClasses.back();
-							rcc->RefreshClasses.pop_back();
-						}
-						//			for (unsigned int j = 0; j < rcc->RefreshClasses.size(); i++)
-						//			{
-						//				delete rcc->RefreshClasses[j];
-						//			}
-						rcc->RefreshClasses.clear();
-						delete rcc;
+						delete it->second;
 					}
 					m_RefreshClassValues.clear();
 				}
@@ -179,10 +170,6 @@ namespace OpenZWave
 				if (!m_instances.IsSet(_endPoint))
 				{
 					m_instances.Set(_endPoint);
-					if (m_com.GetFlagBool(COMPAT_FLAG_CREATEVARS))
-					{
-						CreateVars(_endPoint);
-					}
 				}
 			}
 
@@ -294,21 +281,25 @@ namespace OpenZWave
 			{
 
 				char const* str;
-				bool ok = false;
-				const char *genre;
-				RefreshValue *rcc = new RefreshValue();
-				rcc->cc = GetCommandClassId();
-				genre = _ccElement->Attribute("Genre");
-				rcc->genre = Internal::VC::Value::GetGenreEnumFromName(genre);
+				uint16 sourceIdx;
+				bool ok = true;
 				int temp;
-				_ccElement->QueryIntAttribute("Instance", &temp);
-				rcc->instance = (uint8) temp;
 				_ccElement->QueryIntAttribute("Index", &temp);
-				rcc->index = (uint8) temp;
-				Log::Write(LogLevel_Info, GetNodeId(), "Value Refresh triggered by CommandClass: %s, Genre: %d, Instance: %d, Index: %d for:", GetCommandClassName().c_str(), rcc->genre, rcc->instance, rcc->index);
+				sourceIdx = (uint16) temp;
+
+				/* check if we have a entry already */
+				if (m_RefreshClassValues.find(sourceIdx) != m_RefreshClassValues.end())
+				{
+						Log::Write(LogLevel_Warning, GetNodeId(), "TriggerRefreshValue - A Entry already exists for CC %s Index %d", GetCommandClassName().c_str(), sourceIdx);
+						return;
+				}
+
+
+				Log::Write(LogLevel_Info, GetNodeId(), "Value Refresh triggered by CommandClass: %s, Index: %d for:", GetCommandClassName().c_str(), sourceIdx);
 				TiXmlElement const* child = _ccElement->FirstChildElement();
 				while (child)
 				{
+					ok = true;
 					str = child->Value();
 					if (str)
 					{
@@ -317,35 +308,44 @@ namespace OpenZWave
 							RefreshValue *arcc = new RefreshValue();
 							if (child->QueryIntAttribute("CommandClass", &temp) != TIXML_SUCCESS)
 							{
-								Log::Write(LogLevel_Warning, GetNodeId(), "    Invalid XML - CommandClass Attribute is wrong type or missing");
+								Log::Write(LogLevel_Warning, GetNodeId(), "\tInvalid XML - CommandClass Attribute is wrong type or missing");
 								child = child->NextSiblingElement();
 								continue;
 							}
 							arcc->cc = (uint8) temp;
 							if (child->QueryIntAttribute("RequestFlags", &temp) != TIXML_SUCCESS)
 							{
-								Log::Write(LogLevel_Warning, GetNodeId(), "    Invalid XML - RequestFlags Attribute is wrong type or missing");
+								Log::Write(LogLevel_Warning, GetNodeId(), "\tInvalid XML - RequestFlags Attribute is wrong type or missing");
 								child = child->NextSiblingElement();
 								continue;
 							}
-							arcc->genre = (uint8) temp;
-							if (child->QueryIntAttribute("Instance", &temp) != TIXML_SUCCESS)
+							arcc->requestflags = (uint8) temp;
+							if (child->QueryIntAttribute("Index", &temp) != TIXML_SUCCESS)
 							{
-								Log::Write(LogLevel_Warning, GetNodeId(), "    Invalid XML - Instance Attribute is wrong type or missing");
+								Log::Write(LogLevel_Warning, GetNodeId(), "\tInvalid XML - Index Attribute is wrong type or missing");
 								child = child->NextSiblingElement();
 								continue;
 							}
-							arcc->instance = (uint8) temp;
-							if (child->QueryIntAttribute("Index", &temp) != TIXML_SUCCESS)
+							arcc->index = (uint16) temp;
+							/* check for Duplicates */
+							multimap<uint16, RefreshValue *>::iterator it;
+							for (it = m_RefreshClassValues.begin(); it != m_RefreshClassValues.end(); it++)
 							{
-								Log::Write(LogLevel_Warning, GetNodeId(), "    Invalid XML - Index Attribute is wrong type or missing");
-								child = child->NextSiblingElement();
-								continue;
+								uint16 idx = it->first;
+								RefreshValue *rv = it->second;
+								if ((idx == sourceIdx) && (rv->cc == arcc->cc) && (rv->requestflags == arcc->requestflags) && (rv->index == arcc->index))
+								{
+									Log::Write(LogLevel_Warning, GetNodeId(), "\tTarget Exists: CC %s Index %d", CommandClasses::GetName(arcc->cc).c_str(), arcc->index);
+									delete arcc;
+									ok = false;
+									break;
+								}
+							}
+							if (ok)
+							{
+								Log::Write(LogLevel_Info, GetNodeId(), "\tCommandClass: %s, RequestFlags: %d, Index: %d", CommandClasses::GetName(arcc->cc).c_str(), arcc->requestflags, arcc->index);
+								m_RefreshClassValues.insert(std::make_pair(sourceIdx, arcc));
 							}
-							arcc->index = (uint8) temp;
-							Log::Write(LogLevel_Info, GetNodeId(), "    CommandClass: %s, RequestFlags: %d, Instance: %d, Index: %d", CommandClasses::GetName(arcc->cc).c_str(), arcc->genre, arcc->instance, arcc->index);
-							rcc->RefreshClasses.push_back(arcc);
-							ok = true;
 						}
 						else
 						{
@@ -354,15 +354,6 @@ namespace OpenZWave
 					}
 					child = child->NextSiblingElement();
 				}
-				if (ok == true)
-				{
-					m_RefreshClassValues.push_back(rcc);
-				}
-				else
-				{
-					Log::Write(LogLevel_Warning, GetNodeId(), "Failed to add a RefreshClassValue from XML");
-					delete rcc;
-				}
 			}
 
 //-----------------------------------------------------------------------------
@@ -373,30 +364,24 @@ namespace OpenZWave
 
 			bool CommandClass::CheckForRefreshValues(Internal::VC::Value const* _value)
 			{
-				if (m_RefreshClassValues.empty())
-				{
-					//Log::Write(LogLevel_Debug, GetNodeId(), "Bailing out of CheckForRefreshValues");
+				/* if there are no values here... */
+				if (m_RefreshClassValues.find(_value->GetID().GetIndex()) == m_RefreshClassValues.end())
 					return false;
-				}
+
 				Node* node = GetNodeUnsafe();
 				if (node != NULL)
 				{
-					for (uint32 i = 0; i < m_RefreshClassValues.size(); i++)
+					multimap<uint16, RefreshValue *>::iterator it;
+					for (it = m_RefreshClassValues.find(_value->GetID().GetIndex()); it != m_RefreshClassValues.end(); it++)
 					{
-						RefreshValue *rcc = m_RefreshClassValues.at(i);
-						//Log::Write(LogLevel_Debug, GetNodeId(), "Checking Value Against RefreshClassList: CommandClass %s = %s, Genre %d = %d, Instance %d = %d, Index %d = %d", CommandClasses::GetName(rcc->cc).c_str(), CommandClasses::GetName(_value->GetID().GetCommandClassId()).c_str(), rcc->genre, _value->GetID().GetGenre(), rcc->instance, _value->GetID().GetInstance(), rcc->index, _value->GetID().GetIndex());
-						if ((rcc->genre == _value->GetID().GetGenre()) && (rcc->instance == _value->GetID().GetInstance()) && (rcc->index == _value->GetID().GetIndex()))
+						RefreshValue *rcc = it->second;
+						/* just to be sure we have the right index */
+						if (it->first != _value->GetID().GetIndex())
+							return false;
+						Log::Write(LogLevel_Debug, GetNodeId(), "Requesting Refresh of Value: CommandClass: %s Instance %d, Index %d", CommandClasses::GetName(rcc->cc).c_str(), _value->GetID().GetInstance(), rcc->index);
+						if (CommandClass* cc = node->GetCommandClass(rcc->cc))
 						{
-							/* we got a match..... */
-							for (uint32 j = 0; j < rcc->RefreshClasses.size(); j++)
-							{
-								RefreshValue *arcc = rcc->RefreshClasses.at(j);
-								Log::Write(LogLevel_Debug, GetNodeId(), "Requesting Refresh of Value: CommandClass: %s Genre %d, Instance %d, Index %d", CommandClasses::GetName(arcc->cc).c_str(), arcc->genre, arcc->instance, arcc->index);
-								if (CommandClass* cc = node->GetCommandClass(arcc->cc))
-								{
-									cc->RequestValue(arcc->genre, arcc->index, arcc->instance, Driver::MsgQueue_Send);
-								}
-							}
+							cc->RequestValue(rcc->requestflags, rcc->index, _value->GetID().GetInstance(), Driver::MsgQueue_Send);
 						}
 					}
 				}
@@ -454,23 +439,29 @@ namespace OpenZWave
 					}
 				}
 				// Write out the TriggerRefreshValue if it exists
-				for (uint32 i = 0; i < m_RefreshClassValues.size(); i++)
-				{
-					RefreshValue *rcc = m_RefreshClassValues.at(i);
-					TiXmlElement* RefreshElement = new TiXmlElement("TriggerRefreshValue");
-					_ccElement->LinkEndChild(RefreshElement);
-					RefreshElement->SetAttribute("Genre", Internal::VC::Value::GetGenreNameFromEnum((ValueID::ValueGenre) rcc->genre));
-					RefreshElement->SetAttribute("Instance", rcc->instance);
-					RefreshElement->SetAttribute("Index", rcc->index);
-					for (uint32 j = 0; j < rcc->RefreshClasses.size(); j++)
-					{
-						RefreshValue *arcc = rcc->RefreshClasses.at(j);
+				multimap<uint16, RefreshValue *>::iterator it;
+				uint16 sourceidx = 0;
+				TiXmlElement* RefreshElement = nullptr;
+
+				for (it = m_RefreshClassValues.begin(); it != m_RefreshClassValues.end(); it++)
+				{
+					RefreshValue *rcc = it->second;
+					if (sourceidx != it->first) { 
+						RefreshElement = new TiXmlElement("TriggerRefreshValue");
+						_ccElement->LinkEndChild(RefreshElement);
+						RefreshElement->SetAttribute("Index", it->first);
+						sourceidx = it->first;
+					}
+					if (RefreshElement) {
 						TiXmlElement *ClassElement = new TiXmlElement("RefreshClassValue");
 						RefreshElement->LinkEndChild(ClassElement);
-						ClassElement->SetAttribute("CommandClass", arcc->cc);
-						ClassElement->SetAttribute("RequestFlags", arcc->genre);
-						ClassElement->SetAttribute("Instance", arcc->instance);
-						ClassElement->SetAttribute("Index", arcc->index);
+						ClassElement->SetAttribute("CommandClass", rcc->cc);
+						ClassElement->SetAttribute("RequestFlags", rcc->requestflags);
+						ClassElement->SetAttribute("Index", rcc->index);
+					}
+					else
+					{
+						Log::Write(LogLevel_Warning, GetNodeId(), "CommandClass::WriteXML: - RefreshElement was empty for index %d", it->first);
 					}
 				}
 			}
@@ -571,6 +562,37 @@ namespace OpenZWave
 				return res;
 			}
 
+//-----------------------------------------------------------------------------
+// <CommandClass::decodeDuration>
+// Decode the Duration Field to Seconds - CC:0000.00.00.11.016
+//-----------------------------------------------------------------------------
+
+			uint32 CommandClass::decodeDuration(uint8 data) const
+			{
+				if (data <= 0x7f)
+					return data;
+				if ((data > 0x7f) && (data <= 0xFD))
+					return ((data - 0x7F)*60);
+				 /* a 0xFE means Unknown Duration
+				  * and 0xFF is Reserved - So lets return -1 (to wrap our Int)
+				 */
+				return -1;
+			}
+
+			uint8 CommandClass::encodeDuration(uint32 seconds) const
+			{
+				if (seconds <= 0x7f)
+					return (seconds & 0xFF);
+				/* 7620 seconds is the max that can fit into our scale, so anything above that, use it as the Default Duration 
+				* its 7620 as we only can go upto 127 minutes - See https://github.com/OpenZWave/open-zwave/issues/1321#issuecomment-656532282 */ 
+				if (seconds > 7620)
+					return 0xFF;
+				/* if we get here, seconds is always going to be at least 2 minutes - 0x7F(127) is > 2 minutes */
+				return (uint8)0x79 + ((seconds/60) & 0xFF);
+			}
+
+
+
 //-----------------------------------------------------------------------------
 // <CommandClass::AppendValue>
 // Add a value to a message as a sequence of bytes
@@ -803,11 +825,40 @@ namespace OpenZWave
 				}
 			}
 
+//-----------------------------------------------------------------------------
+// <CommandClass::HandleIncomingMsg>
+// Handles Messages for Controlling CC's (Not Controlled, which is the default)
+//-----------------------------------------------------------------------------
 			bool CommandClass::HandleIncomingMsg(uint8 const* _data, uint32 const _length, uint32 const _instance)
 			{
 				Log::Write(LogLevel_Warning, GetNodeId(), "Routing HandleIncomingMsg to HandleMsg - Please Report: %s ", GetCommandClassName().c_str());
 				return HandleMsg(_data, _length, _instance);
 			}
+//-----------------------------------------------------------------------------
+// <CommandClass::CreateVars>
+// Calls CreateVars on the CC for each instance registered with this CC
+//-----------------------------------------------------------------------------
+			void CommandClass::CreateVars()
+			{
+				if (m_com.GetFlagBool(COMPAT_FLAG_CREATEVARS))
+				{
+					for (Bitfield::Iterator it = m_instances.Begin(); it != m_instances.End(); ++it)
+					{
+						Log::Write(LogLevel_Info, GetNodeId(), "Creating ValueIDs for Instance %d on %s", (uint8)*it, GetCommandClassLabel().c_str());
+						CreateVars((uint8) *it);
+					}
+				}
+			}
+
+//-----------------------------------------------------------------------------
+// <CommandClass::CreateVars>
+// Create ValueID's for Specific Instances. CC's should override this. 
+//-----------------------------------------------------------------------------
+			void CommandClass::CreateVars(uint8 const _instance)
+			{
+			}
+
+
 		} // namespace CC
 	} // namespace Internal
 } // namespace OpenZWave
diff --git a/cpp/src/command_classes/CommandClass.h b/cpp/src/command_classes/CommandClass.h
index 1b76a5d11d..4dc194a8c9 100644
--- a/cpp/src/command_classes/CommandClass.h
+++ b/cpp/src/command_classes/CommandClass.h
@@ -146,6 +146,17 @@ namespace OpenZWave
 						return 0;
 					}
 
+					virtual bool supportsMultiInstance() {
+						return true;
+					}
+					virtual uint8 CreateSupervisionSession(uint8 _command_class_id, uint8 _index) {
+						return 0;
+					}
+					virtual uint32 GetSupervisionIndex(uint8 _session_id) {
+						return 0;
+					}
+					virtual void SupervisionSessionSuccess(uint8 _session_id, uint32 const _instance) {};
+
 					void SetInstances(uint8 const _instances);
 					void SetInstance(uint8 const _endPoint);
 					/* overridden in the MultiInstance CC to set the Global Label for each Instance */
@@ -199,7 +210,8 @@ namespace OpenZWave
 
 					// Helper methods
 					string ExtractValue(uint8 const* _data, uint8* _scale, uint8* _precision, uint8 _valueOffset = 1) const;
-
+					uint32 decodeDuration(uint8 data) const;
+					uint8 encodeDuration(uint32 seconds) const;
 					/**
 					 *  Append a floating-point value to a message.
 					 *  \param _msg The message to which the value should be appended.
@@ -216,24 +228,18 @@ namespace OpenZWave
 					typedef struct RefreshValue
 					{
 							uint8 cc;
-							uint8 genre;
-							uint8 instance;
+							uint8 requestflags;
 							uint16 index;
-							std::vector<RefreshValue *> RefreshClasses;
 					} RefreshValue;
 
 				protected:
-					virtual void CreateVars(uint8 const _instance)
-					{
-					}
+					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)
-					{
-					}
+					void CreateVars();
 
 				private:
 					uint32 m_homeId;
@@ -242,7 +248,7 @@ namespace OpenZWave
 					map<uint8, uint8> m_endPointMap;
 					map<uint8, string> m_instanceLabel;
 					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 ?
+					multimap<uint16, 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
diff --git a/cpp/src/command_classes/CommandClasses.cpp b/cpp/src/command_classes/CommandClasses.cpp
index d8748caeec..41345ce783 100644
--- a/cpp/src/command_classes/CommandClasses.cpp
+++ b/cpp/src/command_classes/CommandClasses.cpp
@@ -70,6 +70,7 @@
 #include "command_classes/SensorBinary.h"
 #include "command_classes/SensorMultilevel.h"
 #include "command_classes/SoundSwitch.h"
+#include "command_classes/Supervision.h"
 #include "command_classes/SwitchAll.h"
 #include "command_classes/SwitchBinary.h"
 #include "command_classes/SwitchMultilevel.h"
@@ -226,6 +227,7 @@ namespace OpenZWave
 				cc.Register(SensorBinary::StaticGetCommandClassId(), SensorBinary::StaticGetCommandClassName(), SensorBinary::Create);
 				cc.Register(SensorMultilevel::StaticGetCommandClassId(), SensorMultilevel::StaticGetCommandClassName(), SensorMultilevel::Create);
 				cc.Register(SoundSwitch::StaticGetCommandClassId(), SoundSwitch::StaticGetCommandClassName(), SoundSwitch::Create);
+				cc.Register(Supervision::StaticGetCommandClassId(), Supervision::StaticGetCommandClassName(), Supervision::Create);
 				cc.Register(SwitchAll::StaticGetCommandClassId(), SwitchAll::StaticGetCommandClassName(), SwitchAll::Create);
 				cc.Register(SwitchBinary::StaticGetCommandClassId(), SwitchBinary::StaticGetCommandClassName(), SwitchBinary::Create);
 				cc.Register(SwitchMultilevel::StaticGetCommandClassId(), SwitchMultilevel::StaticGetCommandClassName(), SwitchMultilevel::Create);
diff --git a/cpp/src/command_classes/Configuration.cpp b/cpp/src/command_classes/Configuration.cpp
index 5759727c74..3e60385853 100644
--- a/cpp/src/command_classes/Configuration.cpp
+++ b/cpp/src/command_classes/Configuration.cpp
@@ -123,7 +123,7 @@ namespace OpenZWave
 					else
 					{
 						char label[16];
-						snprintf(label, 16, "Parameter #%d", parameter);
+						snprintf(label, 16, "Parameter #%hhu", parameter);
 
 						// Create a new value
 						if (Node* node = GetNodeUnsafe())
diff --git a/cpp/src/command_classes/ControllerReplication.h b/cpp/src/command_classes/ControllerReplication.h
index 733514028c..93f0125131 100644
--- a/cpp/src/command_classes/ControllerReplication.h
+++ b/cpp/src/command_classes/ControllerReplication.h
@@ -74,6 +74,9 @@ namespace OpenZWave
 
 					void SendNextData();
 
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
diff --git a/cpp/src/command_classes/DeviceResetLocally.h b/cpp/src/command_classes/DeviceResetLocally.h
index de3ca3aeea..c009dd50c6 100644
--- a/cpp/src/command_classes/DeviceResetLocally.h
+++ b/cpp/src/command_classes/DeviceResetLocally.h
@@ -74,7 +74,9 @@ namespace OpenZWave
 					{
 						return m_deviceReset;
 					}
-					;
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				private:
 					DeviceResetLocally(uint32 const _homeId, uint8 const _nodeId) :
 							CommandClass(_homeId, _nodeId), m_deviceReset(false)
diff --git a/cpp/src/command_classes/DoorLock.cpp b/cpp/src/command_classes/DoorLock.cpp
index 877b30e2e8..90c44b8e00 100644
--- a/cpp/src/command_classes/DoorLock.cpp
+++ b/cpp/src/command_classes/DoorLock.cpp
@@ -463,7 +463,7 @@ namespace OpenZWave
 						for (uint8 i = 0; i < 8; ++i)
 						{
 							item.m_label = c_LockStateNames[i];
-							item.m_value = (i < 6) ? i : 0xFF;
+							item.m_value = (i <= 6) ? i : 0xFF;
 							items.push_back(item);
 						}
 						node->CreateValueList(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_DoorLock::Lock_Mode, "Locked (Advanced)", "", false, false, 1, items, 0, 0);
diff --git a/cpp/src/command_classes/Indicator.cpp b/cpp/src/command_classes/Indicator.cpp
index 32b646ab5a..ee2f45b7ad 100644
--- a/cpp/src/command_classes/Indicator.cpp
+++ b/cpp/src/command_classes/Indicator.cpp
@@ -34,6 +34,7 @@
 #include "platform/Log.h"
 
 #include "value_classes/ValueByte.h"
+#include "value_classes/ValueBool.h"
 
 namespace OpenZWave
 {
@@ -46,8 +47,171 @@ namespace OpenZWave
 			{
 				IndicatorCmd_Set = 0x01,
 				IndicatorCmd_Get = 0x02,
-				IndicatorCmd_Report = 0x03
+				IndicatorCmd_Report = 0x03,
+				IndicatorCmd_Supported_Get = 0x04,
+				IndicatorCmd_Supported_Report = 0x05,
+				IndicatorCmd_Description_Get = 0x06,
+				IndicatorCmd_Description_Report = 0x07
 			};
+			std::map<uint32, string> IndicatorTypes = { 
+				{ValueID_Index_Indicator::Indicator, "Indicator"},
+				{ValueID_Index_Indicator::Armed, "Indicator: Armed"},
+				{ValueID_Index_Indicator::Not_Armed, "Indicator: Not Armed"},
+				{ValueID_Index_Indicator::Ready, "Indicator: Ready"},
+				{ValueID_Index_Indicator::Fault, "Indicator: Fault"},
+				{ValueID_Index_Indicator::Busy, "Indicator: Busy"},
+				{ValueID_Index_Indicator::Enter_ID, "Indicator: Enter ID"},
+				{ValueID_Index_Indicator::Enter_PIN, "Indicator: Enter PIN"},
+				{ValueID_Index_Indicator::Code_Accepted, "Indicator: Code Accepted"},
+				{ValueID_Index_Indicator::Code_Not_Accepted, "Indicator: Code Not Accepted"},
+				{ValueID_Index_Indicator::Armed_Stay, "Indicator: Armed Stay"},
+				{ValueID_Index_Indicator::Armed_Away, "Indicator: Armed Away"},
+				{ValueID_Index_Indicator::Alarming, "Indicator: Alarming"},
+				{ValueID_Index_Indicator::Alarming_Burglar, "Indicator: Alarming: Burglar"},
+				{ValueID_Index_Indicator::Alarming_Smoke_Fire, "Indicator: Alarming: Smoke/Fire"},
+				{ValueID_Index_Indicator::Alarming_Carbon_Monoxide, "Indicator: Alarming: Carbon Monoxide"},
+				{ValueID_Index_Indicator::Bypass_Challenge, "Indicator: Bypass Challenge"},
+				{ValueID_Index_Indicator::Entry_Delay, "Indicator: Entry Delay"},
+				{ValueID_Index_Indicator::Exit_Delay, "Indicator: Exit Delay"},
+				{ValueID_Index_Indicator::Alarming_Medical, "Indicator: Alarming: Medical"},
+				{ValueID_Index_Indicator::Alarming_Freeze_Warning, "Indicator: Alarming: Freeze Warning"},
+				{ValueID_Index_Indicator::Alarming_Water_Leak, "Indicator: Alarming: Water Leak"},
+				{ValueID_Index_Indicator::Alarming_Panic, "Indicator: Alarming: Panic"},
+				{ValueID_Index_Indicator::Zone_1_Armed, "Indicator: Zone 1 Armed"},
+				{ValueID_Index_Indicator::Zone_2_Armed, "Indicator: Zone 2 Armed"},
+				{ValueID_Index_Indicator::Zone_3_Armed, "Indicator: Zone 3 Armed"},
+				{ValueID_Index_Indicator::Zone_4_Armed, "Indicator: Zone 4 Armed"},
+				{ValueID_Index_Indicator::Zone_5_Armed, "Indicator: Zone 5 Armed"},
+				{ValueID_Index_Indicator::Zone_6_Armed, "Indicator: Zone 6 Armed"},
+				{ValueID_Index_Indicator::Zone_7_Armed, "Indicator: Zone 7 Armed"},
+				{ValueID_Index_Indicator::Zone_8_Armed, "Indicator: Zone 8 Armed"},
+				{ValueID_Index_Indicator::LCD_Backlight, "Indicator: LCD Backlight"},
+				{ValueID_Index_Indicator::Button_Backlight_Letters, "Indicator: Button: Backlight Letters"},
+				{ValueID_Index_Indicator::Button_Backlight_Digits, "Indicator: Button: Backlight Digits"},
+				{ValueID_Index_Indicator::Button_Backlight_Command, "Indicator: Button: Backlight Command"},
+				{ValueID_Index_Indicator::Button_1_Indication, "Indicator: Button 1"},
+				{ValueID_Index_Indicator::Button_2_Indication, "Indicator: Button 2"},
+				{ValueID_Index_Indicator::Button_3_Indication, "Indicator: Button 3"},
+				{ValueID_Index_Indicator::Button_4_Indication, "Indicator: Button 4"},
+				{ValueID_Index_Indicator::Button_5_Indication, "Indicator: Button 5"},
+				{ValueID_Index_Indicator::Button_6_Indication, "Indicator: Button 6"},
+				{ValueID_Index_Indicator::Button_7_Indication, "Indicator: Button 7"},
+				{ValueID_Index_Indicator::Button_8_Indication, "Indicator: Button 8"},
+				{ValueID_Index_Indicator::Button_9_Indication, "Indicator: Button 9"},
+				{ValueID_Index_Indicator::Button_10_Indication, "Indicator: Button 10"},
+				{ValueID_Index_Indicator::Button_11_Indication, "Indicator: Button 11"},
+				{ValueID_Index_Indicator::Button_12_Indication, "Indicator: Button 12"},
+				{ValueID_Index_Indicator::Node_Identify, "Indicator: Node Identify"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_1, "Indicator: Generic Event Sound Notification 1"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_2, "Indicator: Generic Event Sound Notification 2"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_3, "Indicator: Generic Event Sound Notification 3"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_4, "Indicator: Generic Event Sound Notification 4"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_5, "Indicator: Generic Event Sound Notification 5"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_6, "Indicator: Generic Event Sound Notification 6"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_7, "Indicator: Generic Event Sound Notification 7"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_8, "Indicator: Generic Event Sound Notification 8"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_9, "Indicator: Generic Event Sound Notification 9"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_10, "Indicator: Generic Event Sound Notification 10"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_11, "Indicator: Generic Event Sound Notification 11"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_12, "Indicator: Generic Event Sound Notification 12"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_13, "Indicator: Generic Event Sound Notification 13"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_14, "Indicator: Generic Event Sound Notification 14"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_15, "Indicator: Generic Event Sound Notification 15"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_16, "Indicator: Generic Event Sound Notification 16"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_17, "Indicator: Generic Event Sound Notification 17"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_18, "Indicator: Generic Event Sound Notification 18"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_19, "Indicator: Generic Event Sound Notification 19"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_20, "Indicator: Generic Event Sound Notification 20"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_21, "Indicator: Generic Event Sound Notification 21"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_22, "Indicator: Generic Event Sound Notification 22"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_23, "Indicator: Generic Event Sound Notification 23"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_24, "Indicator: Generic Event Sound Notification 24"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_25, "Indicator: Generic Event Sound Notification 25"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_26, "Indicator: Generic Event Sound Notification 26"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_27, "Indicator: Generic Event Sound Notification 27"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_28, "Indicator: Generic Event Sound Notification 28"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_29, "Indicator: Generic Event Sound Notification 29"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_30, "Indicator: Generic Event Sound Notification 30"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_31, "Indicator: Generic Event Sound Notification 31"},
+				{ValueID_Index_Indicator::Generic_Event_Sound_Notification_32, "Indicator: Generic Event Sound Notification 32"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_1, "Indicator: Manufacturer Defined Indicator 1"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_2, "Indicator: Manufacturer Defined Indicator 2"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_3, "Indicator: Manufacturer Defined Indicator 3"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_4, "Indicator: Manufacturer Defined Indicator 4"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_5, "Indicator: Manufacturer Defined Indicator 5"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_6, "Indicator: Manufacturer Defined Indicator 6"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_7, "Indicator: Manufacturer Defined Indicator 7"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_8, "Indicator: Manufacturer Defined Indicator 8"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_9, "Indicator: Manufacturer Defined Indicator 9"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_10, "Indicator: Manufacturer Defined Indicator 10"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_11, "Indicator: Manufacturer Defined Indicator 11"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_12, "Indicator: Manufacturer Defined Indicator 12"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_13, "Indicator: Manufacturer Defined Indicator 13"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_14, "Indicator: Manufacturer Defined Indicator 14"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_15, "Indicator: Manufacturer Defined Indicator 15"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_16, "Indicator: Manufacturer Defined Indicator 16"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_17, "Indicator: Manufacturer Defined Indicator 17"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_18, "Indicator: Manufacturer Defined Indicator 18"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_19, "Indicator: Manufacturer Defined Indicator 19"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_20, "Indicator: Manufacturer Defined Indicator 20"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_21, "Indicator: Manufacturer Defined Indicator 21"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_22, "Indicator: Manufacturer Defined Indicator 22"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_23, "Indicator: Manufacturer Defined Indicator 23"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_24, "Indicator: Manufacturer Defined Indicator 24"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_25, "Indicator: Manufacturer Defined Indicator 25"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_26, "Indicator: Manufacturer Defined Indicator 26"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_27, "Indicator: Manufacturer Defined Indicator 27"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_28, "Indicator: Manufacturer Defined Indicator 28"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_29, "Indicator: Manufacturer Defined Indicator 29"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_30, "Indicator: Manufacturer Defined Indicator 30"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_31, "Indicator: Manufacturer Defined Indicator 31"},
+				{ValueID_Index_Indicator::Manufacturer_Defined_Indicator_32, "Indicator: Manufacturer Defined Indicator 32"},
+				{ValueID_Index_Indicator::Buzzer, "Indicator: Buzzer"}
+			};
+enum Indicator_Property_Bit { 
+	MultiLevel_Bit = 0x02,
+	Binary_Bit = 0x04,
+	OnOffPeriod_Bit = 0x08,
+	OnOffCycle_Bit = 0x10,
+	OnTimeWithPeriod_Bit = 0x20,
+	Timeout_Min_Bit = 0x40,
+	Timeout_Sec_Bit = 0x80,
+	Timeout_MS_Bit = 0x100,
+	SoundLevel_Bit = 0x200,
+	LowPower_Bit = 0x400
+};
+
+enum Indicator_Property_Group {
+	MultiLevel_Grp = 0x01,
+	Binary_Grp = 0x02,
+	Toogle_Grp = 0x03,
+	Timeout_Grp = 0x04,
+	Sound_Grp = 0x05,
+	Advertised_Grp = 0x06
+};
+enum Indicator_Property_offset {
+	Multilevel_Prop = 0x01,
+	Binary_Prop = 0x02,
+	OnOffPeriod_Prop = 0x03,
+	OnOffCycle_Prop = 0x04,
+	OnTimeWithPeriod_Prop = 0x05,
+	Timeout_Min_Prop = 0x06,
+	Timeout_Sec_Prop = 0x07,
+	Timeout_Ms_Prop = 0x08,
+	Sound_Prop = 0x09,
+	Adv_Low_Power_Prop = 0x10
+};
+
+
+//-----------------------------------------------------------------------------
+// <Indicator::Indicator>
+// Constructor
+//-----------------------------------------------------------------------------
+			Indicator::Indicator(uint32 const _homeId, uint8 const _nodeId) :
+					CommandClass(_homeId, _nodeId)
+			{ 
+				Timer::SetDriver(GetDriver());
+			}
 
 //-----------------------------------------------------------------------------
 // <Indicator::RequestState>
@@ -55,32 +219,74 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			bool Indicator::RequestState(uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue)
 			{
+				bool ret = false;
 				if (_requestFlags & RequestFlag_Dynamic)
 				{
-					return RequestValue(_requestFlags, 0, _instance, _queue);
-				}
 
-				return false;
+					if (GetVersion() == 1)
+						return RequestValue(_requestFlags, 0, _instance, _queue);
+					for (int i = 1; i <= ValueID_Index_Indicator::Buzzer; i++) {
+						if (Internal::VC::Value *value = GetValue(_instance, i))
+						{
+							ret |= RequestValue(_requestFlags, i, _instance, _queue);
+							value->Release();
+						}
+					}
+				}
+				if (GetVersion() > 1) 
+				{
+					if (_requestFlags & RequestFlag_Static)
+					{
+						Msg* msg = new Msg("IndicatorCmd_Supported_Get", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+						msg->SetInstance(this, _instance);
+						msg->Append(GetNodeId());
+						msg->Append(3);
+						msg->Append(GetCommandClassId());
+						msg->Append(IndicatorCmd_Supported_Get);
+						/* get the first Supported Indicator */
+						msg->Append(0);
+						msg->Append(GetDriver()->GetTransmitOptions());
+						GetDriver()->SendMsg(msg, _queue);
+						ret = true;
+					}
+				}
+				return ret;
 			}
 
 //-----------------------------------------------------------------------------
 // <Indicator::RequestValue>
 // Request current value from the device
 //-----------------------------------------------------------------------------
-			bool Indicator::RequestValue(uint32 const _requestFlags, uint16 const _dummy1,	// = 0 (not used)
+			bool Indicator::RequestValue(uint32 const _requestFlags, uint16 const index,	// = 0 (not used)
 					uint8 const _instance, Driver::MsgQueue const _queue)
 			{
 				if (m_com.GetFlagBool(COMPAT_FLAG_GETSUPPORTED))
 				{
-					Msg* msg = new Msg("IndicatorCmd_Get", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
-					msg->SetInstance(this, _instance);
-					msg->Append(GetNodeId());
-					msg->Append(2);
-					msg->Append(GetCommandClassId());
-					msg->Append(IndicatorCmd_Get);
-					msg->Append(GetDriver()->GetTransmitOptions());
-					GetDriver()->SendMsg(msg, _queue);
-					return true;
+					if (index == ValueID_Index_Indicator::Indicator) 
+					{
+						Msg* msg = new Msg("IndicatorCmd_Get", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+						msg->SetInstance(this, _instance);
+						msg->Append(GetNodeId());
+						msg->Append(2);
+						msg->Append(GetCommandClassId());
+						msg->Append(IndicatorCmd_Get);
+						msg->Append(GetDriver()->GetTransmitOptions());
+						GetDriver()->SendMsg(msg, _queue);
+						return true;
+					} 
+					else if (index > ValueID_Index_Indicator::Indicator && index <= ValueID_Index_Indicator::Buzzer)
+					{
+						Msg* msg = new Msg("IndicatorCmd_Get_v2", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+						msg->SetInstance(this, _instance);
+						msg->Append(GetNodeId());
+						msg->Append(3);
+						msg->Append(GetCommandClassId());
+						msg->Append(IndicatorCmd_Get);
+						msg->Append(index);
+						msg->Append(GetDriver()->GetTransmitOptions());
+						GetDriver()->SendMsg(msg, _queue);
+						return true;
+					}
 				}
 				else
 				{
@@ -96,18 +302,148 @@ namespace OpenZWave
 			bool Indicator::HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance	// = 1
 					)
 			{
-				if (IndicatorCmd_Report == (IndicatorCmd) _data[0])
+				if (IndicatorCmd_Supported_Report == (IndicatorCmd) _data[0]) 
 				{
-					Log::Write(LogLevel_Info, GetNodeId(), "Received an Indicator report: Indicator=%d", _data[1]);
+					uint8 id = _data[1];
+					uint8 nextid = _data[2];
+					uint8 propertiessupportedlength = (_data[3] & 0x1F);
+					uint32 propertiessupported = 0;
+					for (int i = 0; i < propertiessupportedlength; i++) 
+					{
+						propertiessupported = _data[4+i] << (8*i);
+					}
+					Log::Write(LogLevel_Info, GetNodeId(), "Indicator Supported Report for %d - Support %d - Next Indicator %d", id, propertiessupported, nextid);
+					std::shared_ptr<Properties> idprops = std::make_shared<Properties>();
+					idprops->id = id;
+					idprops->instance = _instance;
+					idprops->properties = propertiessupported;
+					this->m_indicatorLists.insert(std::pair<uint8, std::shared_ptr<Properties> >(id, idprops));
 
-					if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_Indicator::Indicator)))
+					if ((GetVersion() >= 4) && (id >= 0x80) && (id <= 0x9f))
 					{
-						value->OnValueRefreshed(_data[1]);
-						value->Release();
+						Msg* msg = new Msg("IndicatorCmd_Description_Get", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+						msg->SetInstance(this, _instance);
+						msg->Append(GetNodeId());
+						msg->Append(3);
+						msg->Append(GetCommandClassId());
+						msg->Append(IndicatorCmd_Description_Get);
+						msg->Append(id);
+						msg->Append(GetDriver()->GetTransmitOptions());
+						GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+					}
+					else 
+					{
+						this->createIndicatorConfigValues(id);
+					}
+
+					/* Get the Next Indicator */
+					if (nextid > 0)
+					{
+						Msg* msg = new Msg("IndicatorCmd_Supported_Get", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+						msg->SetInstance(this, _instance);
+						msg->Append(GetNodeId());
+						msg->Append(3);
+						msg->Append(GetCommandClassId());
+						msg->Append(IndicatorCmd_Supported_Get);
+						msg->Append(nextid);
+						msg->Append(GetDriver()->GetTransmitOptions());
+						GetDriver()->SendMsg(msg, Driver::MsgQueue_Query);
+						return true;
 					}
 					return true;
 				}
+				if (IndicatorCmd_Report == (IndicatorCmd) _data[0])
+				{
+					if (GetVersion() == 1) { 
+						Log::Write(LogLevel_Info, GetNodeId(), "Received an Indicator report: Indicator=%d", _data[1]);
+						if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_Indicator::Indicator)))
+						{
+							value->OnValueRefreshed(_data[1]);
+							value->Release();
+						}
+						return true;
+					} else {
+						uint8 size = (_data[2] & 0x1F);
+						uint8 setid = 0;
+						uint8 setparam = 0;
+						for (int i = 0; i < size; i++) 
+						{
+							uint8 id = _data[3 + (i*3)];
+							uint8 property = _data[4 + (i*3)];
+							uint8 value = _data[5 + (i*3)];
+							Log::Write(LogLevel_Info, GetNodeId(), "Indicator Report for %d - Property %d - Value %d", id, property, value);
+							this->setIndicatorValue(id, _instance, property, value);
+							/* 4.24.5 - ID Field:
+							 * All indicator objects MUST carry the same Indicator ID.
+							 */
+							if (setid == 0)
+								setid = id;
+							if (value > 0)
+								setparam = property;
+						}
+						if (Internal::VC::ValueList* value = static_cast<Internal::VC::ValueList *>(GetValue(_instance, setid)))
+						{
+							bool setTimer = true;
+							if (setparam == Indicator_Property_offset::Multilevel_Prop)
+							{
+								value->OnValueRefreshed(Indicator_Property_Group::MultiLevel_Grp);
+								setTimer = false;
+							}
+							else if (setparam == Indicator_Property_offset::Binary_Prop)
+							{
+								value->OnValueRefreshed(Indicator_Property_Group::Binary_Grp);
+								setTimer = false;
+							}
+							else if (setparam >= Indicator_Property_offset::OnOffPeriod_Prop && setparam <= Indicator_Property_offset::OnTimeWithPeriod_Prop)
+								value->OnValueRefreshed(Indicator_Property_Group::Toogle_Grp);
+							else if (setparam >= Indicator_Property_offset::Timeout_Min_Prop && setparam <= Indicator_Property_offset::Timeout_Ms_Prop)
+								value->OnValueRefreshed(Indicator_Property_Group::Timeout_Grp);
+							else if (setparam == Indicator_Property_offset::Sound_Prop)
+								value->OnValueRefreshed(Indicator_Property_Group::Sound_Grp);
+							else 
+							{
+								value->OnValueRefreshed(0);
+								setTimer = false;
+							}
+							value->Release();
+							if (setTimer) 
+							{
+								int32 id = setid + (_instance << 16);
+								TimerThread::TimerCallback callback = bind(&Indicator::refreshIndicator, this, id);
+								TimerSetEvent(1000, callback, id);
+							}
+						}
+						else
+						{
+							Log::Write(LogLevel_Warning, GetNodeId(), "Can't Find ValueID for Indicator %d", setid);
+						}
 
+					}
+					return true;
+				}
+				if (IndicatorCmd_Description_Report == (IndicatorCmd) _data[0])
+				{
+					uint8 id = _data[1];
+					uint8 length = _data[2];
+					string label("Unknown Indicator");
+					if (m_indicatorLists.find(id) != m_indicatorLists.end())
+					{
+						if (length == 0) 
+						{
+							/* use the default label */
+							if (IndicatorTypes.find(id) != IndicatorTypes.end()) {
+								m_indicatorLists[id]->label = IndicatorTypes.at(id);
+							}
+						}
+						else 
+						{
+							string description((const char *) &_data[3], length);
+							if (!description.empty())
+								m_indicatorLists[id]->label = description;
+						}
+						this->createIndicatorConfigValues(id);
+					}
+				}
 				return false;
 			}
 
@@ -117,7 +453,8 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			bool Indicator::SetValue(Internal::VC::Value const& _value)
 			{
-				if (ValueID::ValueType_Byte == _value.GetID().GetType())
+				
+				if (ValueID_Index_Indicator::Indicator == _value.GetID().GetIndex())
 				{
 					Internal::VC::ValueByte const* value = static_cast<Internal::VC::ValueByte const*>(&_value);
 
@@ -133,7 +470,159 @@ namespace OpenZWave
 					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
 					return true;
 				}
+				if (_value.GetID().GetIndex() > 1 && _value.GetID().GetIndex() <= ValueID_Index_Indicator::Buzzer) {
+					Internal::VC::ValueList const* value = static_cast<Internal::VC::ValueList const*>(&_value);
+					uint32 selected = value->GetItem()->m_value;
+					uint16 index = _value.GetID().GetIndex();
+					/* depending upon what is selected, we can get a Property Config ValueID's */
+					uint32 property = 1 << selected;
+					uint32 propertyindex = (256 + (32 * index));
+					Log::Write(LogLevel_Info, GetNodeId(), "Setting Index: %d Selected %d Property %d PropertyIndex %d", index, selected, property, propertyindex);
+					vector<uint8> payload;
+					switch (selected) {
+						case 0:
+							{ 
+								/* turn off any indicator */
+								Msg* msg = new Msg("IndicatorCmd_Set_v2", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
+								msg->SetInstance(this, _value.GetID().GetInstance());
+								msg->Append(GetNodeId());
+								msg->Append(3);
+								msg->Append(GetCommandClassId());
+								msg->Append(IndicatorCmd_Set);
+								msg->Append(0);
+								msg->Append(GetDriver()->GetTransmitOptions());
+								GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+								return true;
+								break;
+							}
+						case Indicator_Property_Group::Binary_Grp:
+						{
+							if (Internal::VC::ValueBool* propertyValue = static_cast<Internal::VC::ValueBool *>(GetValue(_value.GetID().GetInstance(), propertyindex + Indicator_Property_offset::Binary_Prop)))
+							{
+								payload.push_back(1);
+								payload.push_back(index);
+								payload.push_back(Indicator_Property_offset::Binary_Prop);
+								payload.push_back(propertyValue->GetValue() == true ? 1 : 0);
+							}
+							break;
+						}
+						case Indicator_Property_Group::MultiLevel_Grp:
+						{
+							if (Internal::VC::ValueByte* propertyValue = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), propertyindex + Indicator_Property_offset::Multilevel_Prop)))
+							{
+								payload.push_back(1);
+								payload.push_back(index);
+								payload.push_back(Indicator_Property_offset::Multilevel_Prop);
+								payload.push_back(propertyValue->GetValue());
+							}
+							break;
+						}
+						case Indicator_Property_Group::Toogle_Grp:
+						{
+							int params = 0;
+							if (Internal::VC::ValueByte* propertyValue = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), propertyindex + Indicator_Property_offset::OnOffPeriod_Prop)))
+							{
+								params++;
+								payload.push_back(index);
+								payload.push_back(Indicator_Property_offset::OnOffPeriod_Prop);
+								payload.push_back(propertyValue->GetValue());
+							}
+							if (Internal::VC::ValueByte* propertyValue = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), propertyindex + Indicator_Property_offset::OnOffCycle_Prop)))
+							{
+								params++;
+								payload.push_back(index);
+								payload.push_back(Indicator_Property_offset::OnOffCycle_Prop);
+								payload.push_back(propertyValue->GetValue());
+							}
+							if (Internal::VC::ValueByte* propertyValue = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), propertyindex + Indicator_Property_offset::OnTimeWithPeriod_Prop)))
+							{
+								params++;
+								payload.push_back(index);
+								payload.push_back(Indicator_Property_offset::OnTimeWithPeriod_Prop);
+								payload.push_back(propertyValue->GetValue());
+							}
+							payload.insert(payload.begin(), params);
+							break;
+						}
+						case Indicator_Property_Group::Timeout_Grp:
+						{
+							int params = 0;
+							if (Internal::VC::ValueByte* propertyValue = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), propertyindex + Indicator_Property_offset::Timeout_Min_Prop)))
+							{
+								params++;
+								payload.push_back(index);
+								payload.push_back(Indicator_Property_offset::Timeout_Min_Prop);
+								payload.push_back(propertyValue->GetValue());
+							}
+							if (Internal::VC::ValueByte* propertyValue = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), propertyindex + Indicator_Property_offset::Timeout_Sec_Prop)))
+							{
+								params++;
+								payload.push_back(index);
+								payload.push_back(Indicator_Property_offset::Timeout_Sec_Prop);
+								payload.push_back(propertyValue->GetValue());
+							}
+							if (Internal::VC::ValueByte* propertyValue = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), propertyindex + Indicator_Property_offset::Timeout_Ms_Prop)))
+							{
+								params++;
+								payload.push_back(index);
+								payload.push_back(Indicator_Property_offset::Timeout_Ms_Prop);
+								payload.push_back(propertyValue->GetValue());
+							}
+							payload.insert(payload.begin(), params);
+							break;
+						}
+						case Indicator_Property_Group::Sound_Grp:
+						{
+							if (Internal::VC::ValueByte* propertyValue = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), propertyindex + Indicator_Property_offset::Sound_Prop)))
+							{
+								payload.push_back(1);
+								payload.push_back(index);
+								payload.push_back(Indicator_Property_offset::Sound_Prop);
+								payload.push_back(propertyValue->GetValue());
+							}
+							break;
 
+						}
+						case Indicator_Property_Group::Advertised_Grp:
+						{
+								/* shouldn't ever be present */
+								break;
+						}
+					}
+					Msg* msg = new Msg("IndicatorCmd_Set_v2", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
+					msg->SetInstance(this, _value.GetID().GetInstance());
+					msg->Append(GetNodeId());
+					msg->Append(3 + payload.size());
+					msg->Append(GetCommandClassId());
+					msg->Append(IndicatorCmd_Set);
+					msg->Append(0);
+					for (unsigned int i = 0; i < payload.size(); i++) {
+						msg->Append(payload.at(i));
+					}
+					msg->Append(GetDriver()->GetTransmitOptions());
+					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+					return true;
+				}
+				if (_value.GetID().GetIndex() > ValueID_Index_Indicator::Buzzer)
+				{
+					if (_value.GetID().GetType() == ValueID::ValueType_Byte) 
+					{
+						if (Internal::VC::ValueByte * valueByte = static_cast<Internal::VC::ValueByte *>(GetValue(_value.GetID().GetInstance(), _value.GetID().GetIndex())))
+						{
+							valueByte->OnValueRefreshed(static_cast<Internal::VC::ValueByte const *>(&_value)->GetValue());
+							valueByte->Release();
+						}
+					}
+					if (_value.GetID().GetType() == ValueID::ValueType_Bool)
+					{
+						if (Internal::VC::ValueBool * valueBool = static_cast<Internal::VC::ValueBool *>(GetValue(_value.GetID().GetInstance(), _value.GetID().GetIndex())))
+						{
+							valueBool->OnValueRefreshed(static_cast<Internal::VC::ValueBool const *>(&_value)->GetValue());
+							valueBool->Release();
+						}
+					}
+					return true;
+				}
 				return false;
 			}
 
@@ -143,11 +632,241 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			void Indicator::CreateVars(uint8 const _instance)
 			{
+				if (GetVersion() == 1) { 
+					if (Node* node = GetNodeUnsafe())
+					{
+						node->CreateValueByte(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_Indicator::Indicator, "Indicator", "", false, false, false, 0);
+					}
+				}
+			}
+//-----------------------------------------------------------------------------
+// <Indicator::createIndicatorConfigValues>
+// Create the Config Values for each Indicator ID
+//-----------------------------------------------------------------------------
+
+			void Indicator::createIndicatorConfigValues(uint8 id) {
+				/* Value Indexes are as follows:
+				 * Assume that we can have 32 Properties per Index 
+				 * 0 - 256 - Actual Indicator ValueID
+				 * 257 - 288 - Indicator 1 Properties 
+				 * 289 - 320 - Indicator 2 Properties
+				 * 321 - 352 - Indicator 3 Properties 
+				 * and so on. */
+				if (m_indicatorLists.find(id) == m_indicatorLists.end()) 
+				{
+					Log::Write(LogLevel_Warning, GetNodeId(), "Cant find Indicator %d in List", id);
+					return;
+				}
+				Log::Write(LogLevel_Info, GetNodeId(), "Indicator Support:");
 				if (Node* node = GetNodeUnsafe())
 				{
-					node->CreateValueByte(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_Indicator::Indicator, "Indicator", "", false, false, false, 0);
+					string label("Unknown Indicator");
+					if (m_indicatorLists[id]->label.empty())
+					{
+						if (IndicatorTypes.find(id) != IndicatorTypes.end()) {
+							label = IndicatorTypes.at(id);
+						}
+					}
+					else
+					{
+						label = m_indicatorLists[id]->label;
+					}
+					
+					uint32 propertiesSet = 0;
+
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::MultiLevel_Bit) {
+						/* MultiLevel Property */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tMultiLevel Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::Multilevel_Prop));
+						node->CreateValueByte(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::Multilevel_Prop), label + ": Brightness/Level", "", false, false, 0, 0);
+						propertiesSet |= (1 << Indicator_Property_Group::MultiLevel_Grp);
+					}
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::Binary_Bit) 
+					{
+						/* Binary Property */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tBinary  Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::Binary_Prop));
+						node->CreateValueBool(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::Binary_Prop), label + ": On/Off", "", false, false, false, 0);
+						propertiesSet |= (1 << Indicator_Property_Group::Binary_Grp);
+					}
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::OnOffPeriod_Bit)
+					{
+						/* On/Off Period Property */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tOn/Off Period Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::OnOffPeriod_Prop));
+						node->CreateValueByte(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::OnOffPeriod_Prop), label + ": On/Off Period", "Seconds", false, false, 0, 0);
+						propertiesSet |= (1 << Indicator_Property_Group::Toogle_Grp);
+					}
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::OnOffCycle_Bit)
+					{
+						/* On/Off Cycles */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tOn/Off Cycles Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::OnOffCycle_Prop));
+						node->CreateValueByte(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::OnOffCycle_Prop), label + ": On/Off Cycles", "", false, false, 0, 0);
+						propertiesSet |= (1 << Indicator_Property_Group::Toogle_Grp);
+					}
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::OnTimeWithPeriod_Bit)
+					{
+						/* On Time with On/Off Period combination */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tOn Time with On/Off Period Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::OnTimeWithPeriod_Prop));
+						node->CreateValueByte(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::OnTimeWithPeriod_Prop), label + ": On time within an On/Off period", "Seconds", false, false, 0, 0); 
+						propertiesSet |= (1 << Indicator_Property_Group::Toogle_Grp);
+					}
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::Timeout_Min_Bit)
+					{
+						/* Timeout (Minutes) */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tTimeout (Minutes) Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::Timeout_Min_Prop));
+						node->CreateValueByte(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::Timeout_Min_Prop), label + ": Timeout (Minutes)", "Minutes", false, false, 0, 0);
+						propertiesSet |= (1 << Indicator_Property_Group::Timeout_Grp);
+					}
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::Timeout_Sec_Bit)
+					{
+						/* Timeout (Seconds) */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tTimeout (Seconds) Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::Timeout_Sec_Prop));
+						node->CreateValueByte(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::Timeout_Sec_Prop), label + ": Timeout (Seconds)", "Seconds", false, false, 0, 0);
+						propertiesSet |= (1 << Indicator_Property_Group::Timeout_Grp);
+					}
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::Timeout_MS_Bit)
+					{
+						/* Timeout (1/100 of seconds) */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tTimeout (1/100 of seconds) Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::Timeout_Ms_Prop));
+						node->CreateValueByte(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::Timeout_Ms_Prop), label + ": Timeout (1/100 of seconds)", "Miliseconds", false, false, 0, 0); 
+						propertiesSet |= (1 << Indicator_Property_Group::Timeout_Grp);
+					}
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::SoundLevel_Bit)
+					{
+						/* Multilevel Sound level */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tMultilevel Sound Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::Sound_Prop));
+						node->CreateValueByte(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::Sound_Prop), label + ": Multilevel Sound level", "", false, false, 0, 0);
+						propertiesSet |= Indicator_Property_Group::Sound_Grp;
+					}
+					if (m_indicatorLists[id]->properties & Indicator_Property_Bit::LowPower_Bit)
+					{
+						/* ADVERTISE: Low power */
+						Log::Write(LogLevel_Info, GetNodeId(), "\tADVERTISE: Low power Property - Index %d", (256 + (32 * id) + Indicator_Property_offset::Adv_Low_Power_Prop));
+						node->CreateValueBool(ValueID::ValueGenre_Config, GetCommandClassId(), m_indicatorLists[id]->instance, (256 + (32 * id) + Indicator_Property_offset::Adv_Low_Power_Prop), label + ": Low Power Capable", "", true, false, false, 0);
+						propertiesSet |= Indicator_Property_Group::Advertised_Grp;
+					}
+					/* Create the Actual Indicator */
+					vector<Internal::VC::ValueList::Item> items;
+					Internal::VC::ValueList::Item item;
+					item.m_label = "Off";
+					item.m_value = 0x00;
+					items.push_back(item);
+					if (propertiesSet & (1 << Indicator_Property_Group::Binary_Grp)) 
+					{
+						Internal::VC::ValueList::Item item;
+						item.m_label = "On";
+						item.m_value = Indicator_Property_Group::Binary_Grp;
+						items.push_back(item);
+					}					
+					if (propertiesSet & (1 << Indicator_Property_Group::MultiLevel_Grp)) 
+					{
+						Internal::VC::ValueList::Item item;
+						item.m_label = "Level";
+						item.m_value = Indicator_Property_Group::MultiLevel_Grp;
+						items.push_back(item);
+					}					
+					if (propertiesSet & (1 << Indicator_Property_Group::Toogle_Grp)) 
+					{
+						Internal::VC::ValueList::Item item;
+						item.m_label = "Toogle";
+						item.m_value = Indicator_Property_Group::Toogle_Grp;
+						items.push_back(item);
+					}					
+					if (propertiesSet & (1 << Indicator_Property_Group::Timeout_Grp)) 
+					{
+						Internal::VC::ValueList::Item item;
+						item.m_label = "Timeout";
+						item.m_value = Indicator_Property_Group::Timeout_Grp;
+						items.push_back(item);
+					}					
+					if (propertiesSet & (1 << Indicator_Property_Group::Sound_Grp)) 
+					{
+						Internal::VC::ValueList::Item item;
+						item.m_label = "Sound Level";
+						item.m_value = Indicator_Property_Group::Sound_Grp;
+						items.push_back(item);
+					}	
+					node->CreateValueList(ValueID::ValueGenre_User, GetCommandClassId(), m_indicatorLists[id]->instance, id, label, "", false, false, 0, items, 0, 0);					
 				}
 			}
+
+//-----------------------------------------------------------------------------
+// <Indicator::setIndicatorValue>
+// Sets the Properties Values for each Indicator ID
+//-----------------------------------------------------------------------------
+
+			void Indicator::setIndicatorValue(uint8 id, uint8 _instance, uint8 property, uint8 value) 
+			{
+				uint16 index = (256 + (32 * id) + property);
+				Internal::VC::Value* propertyValue = GetValue(_instance, index);
+				if (!propertyValue) {
+					Log::Write(LogLevel_Warning, GetNodeId(), "Got Indicator Property for a Unregistered Property - Id: %d Property: %d Index: %d", id, property, index);
+					return;
+				}
+				switch (propertyValue->GetID().GetType()) {
+					case ValueID::ValueType_Bool:
+					{
+						if (Internal::VC::ValueBool *propertyBool = static_cast<Internal::VC::ValueBool *>(propertyValue))
+						{ 
+							propertyBool->OnValueRefreshed(value > 0 ? true : false);
+						}
+						propertyValue->Release();
+						break;
+					}
+					case ValueID::ValueType_Byte:
+					{
+						if (Internal::VC::ValueByte *propertyByte = static_cast<Internal::VC::ValueByte *>(propertyValue))
+						{ 
+							propertyByte->OnValueRefreshed(value);
+						}
+						propertyValue->Release();
+						break;
+					}
+					default:
+					{
+						/* Not Handled */
+						Log::Write(LogLevel_Warning, GetNodeId(), "Got Indicator Property for a Unhandled Property Type %d", propertyValue->GetID().GetType());
+						break;
+					}
+				}
+			}
+
+//-----------------------------------------------------------------------------
+// <Indicator::Indicator>
+// Refresh The Indicator ID's Values. this is called from the timer when a indicator is active. 
+//-----------------------------------------------------------------------------
+			void Indicator::refreshIndicator(uint32 id)
+			{
+				uint16 index = (id & 0xFFFF);
+				uint8 instance = (id & 0xF0000) >> 16;
+				RequestValue(0, index, instance, Driver::MsgQueue_Query);		
+			}
+
+//-----------------------------------------------------------------------------
+// <SwitchBinary::SetValueBasic>
+// Update class values based in BASIC mapping
+//-----------------------------------------------------------------------------
+			void Indicator::SetValueBasic(uint8 const _instance, uint8 const _value)
+			{
+				// Send a request for new value to synchronize it with the BASIC set/report.
+				// In case the device is sleeping, we set the value anyway so the BASIC set/report
+				// stays in sync with it. We must be careful mapping the uint8 BASIC value
+				// into a class specific value.
+				// When the device wakes up, the real requested value will be retrieved.
+				if (GetVersion() == 1) 
+				{
+					RequestValue(0, 0, _instance, Driver::MsgQueue_Query);
+					return;
+				}
+				for (int i = 1; i <= ValueID_Index_Indicator::Buzzer; i++) {
+					if (Internal::VC::Value *value = GetValue(_instance, i))
+					{
+						RequestValue(0, i, _instance, Driver::MsgQueue_Query);
+						value->Release();
+					}
+				}
+				return;
+			}
+
+
 		} // namespace CC
 	} // namespace Internal
 } // namespace OpenZWave
diff --git a/cpp/src/command_classes/Indicator.h b/cpp/src/command_classes/Indicator.h
index 1dcb1d4ba0..81dff6fcf7 100644
--- a/cpp/src/command_classes/Indicator.h
+++ b/cpp/src/command_classes/Indicator.h
@@ -29,6 +29,8 @@
 #define _Indicator_H
 
 #include "command_classes/CommandClass.h"
+#include "TimerThread.h"
+
 
 namespace OpenZWave
 {
@@ -40,7 +42,7 @@ namespace OpenZWave
 			/** \brief Implements COMMAND_CLASS_INDICATOR (0x87), a Z-Wave device command class.
 			 * \ingroup CommandClass
 			 */
-			class Indicator: public CommandClass
+			class Indicator: public CommandClass, private Timer
 			{
 				public:
 					static CommandClass* Create(uint32 const _homeId, uint8 const _nodeId)
@@ -73,15 +75,26 @@ namespace OpenZWave
 					}
 					virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
 					virtual bool SetValue(Internal::VC::Value const& _value) override;
-
+					virtual uint8 GetMaxVersion() override
+					{
+						return 4;
+					}
+					virtual void SetValueBasic(uint8 const _instance, uint8 const _value) override;
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
 				private:
-					Indicator(uint32 const _homeId, uint8 const _nodeId) :
-							CommandClass(_homeId, _nodeId)
-					{
-					}
+					struct Properties {
+						uint8 id;
+						uint8 instance;
+						uint8 properties;
+						string label;
+					};
+					void createIndicatorConfigValues(uint8 id);
+					void setIndicatorValue(uint8 id, uint8 _instance, uint8 property, uint8 value);
+					void refreshIndicator(uint32 id);
+					Indicator(uint32 const _homeId, uint8 const _nodeId);
+					std::map<uint8, std::shared_ptr<Properties> > m_indicatorLists;
 			};
 		} // namespace CC
 	} // namespace Internal
diff --git a/cpp/src/command_classes/Language.h b/cpp/src/command_classes/Language.h
index 75f09afa8e..41db7b7151 100644
--- a/cpp/src/command_classes/Language.h
+++ b/cpp/src/command_classes/Language.h
@@ -73,6 +73,9 @@ namespace OpenZWave
 					}
 					virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
 
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
diff --git a/cpp/src/command_classes/ManufacturerSpecific.cpp b/cpp/src/command_classes/ManufacturerSpecific.cpp
index 8f5d4a5a12..5be7b93332 100644
--- a/cpp/src/command_classes/ManufacturerSpecific.cpp
+++ b/cpp/src/command_classes/ManufacturerSpecific.cpp
@@ -93,7 +93,7 @@ namespace OpenZWave
 					if (_requestFlags & RequestFlag_Static)
 					{
 						{
-							Msg* msg = new Msg("ManufacturerSpecificCmd_DeviceGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+							Msg* msg = new Msg("ManufacturerSpecificCmd_DeviceGet_DeviceIDType", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
 							msg->SetInstance(this, _instance);
 							msg->Append(GetNodeId());
 							msg->Append(3);
@@ -103,42 +103,14 @@ namespace OpenZWave
 							msg->Append(GetDriver()->GetTransmitOptions());
 							GetDriver()->SendMsg(msg, _queue);
 						}
-						{
-							Msg* msg = new Msg("ManufacturerSpecificCmd_DeviceGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
-							msg->SetInstance(this, _instance);
-							msg->Append(GetNodeId());
-							msg->Append(3);
-							msg->Append(GetCommandClassId());
-							msg->Append(ManufacturerSpecificCmd_DeviceGet);
-							msg->Append(DeviceSpecificGet_DeviceIDType_SerialNumber);
-							msg->Append(GetDriver()->GetTransmitOptions());
-							GetDriver()->SendMsg(msg, _queue);
-						}
-
 						res = true;
 					}
 				}
 
-				if ((_requestFlags & RequestFlag_Static) && HasStaticRequest(StaticRequest_Values))
-				{
-					res |= RequestValue(_requestFlags, 0, _instance, _queue);
-				}
-
 				return res;
 			}
 
-//-----------------------------------------------------------------------------
-// <ManufacturerSpecific::RequestValue>
-// Request current value from the device
-//-----------------------------------------------------------------------------
-			bool ManufacturerSpecific::RequestValue(uint32 const _requestFlags, uint16 const _dummy1,	// = 0 (not used)
-					uint8 const _instance, Driver::MsgQueue const _queue)
-			{
-				if (_instance != 1)
-				{
-					// This command class doesn't work with multiple instances
-					return false;
-				}
+			bool ManufacturerSpecific::Init() {
 				if (m_com.GetFlagBool(COMPAT_FLAG_GETSUPPORTED))
 				{
 					Msg* msg = new Msg("ManufacturerSpecificCmd_Get", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
@@ -147,12 +119,13 @@ namespace OpenZWave
 					msg->Append(GetCommandClassId());
 					msg->Append(ManufacturerSpecificCmd_Get);
 					msg->Append(GetDriver()->GetTransmitOptions());
-					GetDriver()->SendMsg(msg, _queue);
+					GetDriver()->SendMsg(msg, Driver::MsgQueue_Query);
 					return true;
 				}
 				else
 				{
 					Log::Write(LogLevel_Info, GetNodeId(), "ManufacturerSpecificCmd_Get Not Supported on this node");
+					return true;
 				}
 				return false;
 			}
@@ -254,15 +227,30 @@ namespace OpenZWave
 					}
 					if (deviceIDType == DeviceSpecificGet_DeviceIDType_FactoryDefault)
 					{
+						if (!GetValue(_instance, ValueID_Index_ManufacturerSpecific::DeviceID)) {
+							if (Node* node = GetNodeUnsafe())
+							{
+								node->CreateValueString(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_ManufacturerSpecific::DeviceID, "Device ID", "", true, false, "", 0);
+							}
+						}
 						Internal::VC::ValueString *default_value = static_cast<Internal::VC::ValueString*>(GetValue(_instance, ValueID_Index_ManufacturerSpecific::DeviceID));
 						default_value->OnValueRefreshed(deviceID);
 						default_value->Release();
+						Log::Write(LogLevel_Info, GetNodeId(), "Got ManufacturerSpecific FactoryDefault: %s", deviceID.c_str());
 					}
 					else if (deviceIDType == DeviceSpecificGet_DeviceIDType_SerialNumber)
 					{
+						if (!GetValue(_instance, ValueID_Index_ManufacturerSpecific::SerialNumber)) {
+							if (Node* node = GetNodeUnsafe())
+							{
+								node->CreateValueString(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_ManufacturerSpecific::SerialNumber, "Serial Number", "", true, false, "", 0);
+							}
+						}
 						Internal::VC::ValueString *serial_value = static_cast<Internal::VC::ValueString*>(GetValue(_instance, ValueID_Index_ManufacturerSpecific::SerialNumber));
 						serial_value->OnValueRefreshed(deviceID);
 						serial_value->Release();
+						Log::Write(LogLevel_Info, GetNodeId(), "Got ManufacturerSpecific SerialNumber: %s", deviceID.c_str());
+
 					}
 					return true;
 				}
@@ -343,8 +331,6 @@ namespace OpenZWave
 						node->CreateValueInt(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_ManufacturerSpecific::LoadedConfig, "Loaded Config Revision", "", true, false, m_loadedConfigRevision, 0);
 						node->CreateValueInt(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_ManufacturerSpecific::LocalConfig, "Config File Revision", "", true, false, m_fileConfigRevision, 0);
 						node->CreateValueInt(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_ManufacturerSpecific::LatestConfig, "Latest Available Config File Revision", "", true, false, m_latestConfigRevision, 0);
-						node->CreateValueString(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_ManufacturerSpecific::DeviceID, "Device ID", "", true, false, "", 0);
-						node->CreateValueString(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_ManufacturerSpecific::SerialNumber, "Serial Number", "", true, false, "", 0);
 					}
 				}
 			}
@@ -390,7 +376,7 @@ namespace OpenZWave
 
 			void ManufacturerSpecific::setLoadedConfigRevision(uint32 rev)
 			{
-				m_latestConfigRevision = rev;
+				m_loadedConfigRevision = rev;
 
 				if (Internal::VC::ValueInt* value = static_cast<Internal::VC::ValueInt*>(GetValue(1, ValueID_Index_ManufacturerSpecific::LoadedConfig)))
 				{
diff --git a/cpp/src/command_classes/ManufacturerSpecific.h b/cpp/src/command_classes/ManufacturerSpecific.h
index 1c22c6ec56..d389a77c26 100644
--- a/cpp/src/command_classes/ManufacturerSpecific.h
+++ b/cpp/src/command_classes/ManufacturerSpecific.h
@@ -63,7 +63,7 @@ namespace OpenZWave
 
 					// From CommandClass
 					virtual bool RequestState(uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue) override;
-					virtual bool RequestValue(uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue) override;
+					//virtual bool RequestValue(uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue) override;
 					virtual uint8 const GetCommandClassId() const override
 					{
 						return StaticGetCommandClassId();
@@ -87,6 +87,12 @@ namespace OpenZWave
 					void setFileConfigRevision(uint32 rev);
 					void setLoadedConfigRevision(uint32 rev);
 
+					bool Init();
+
+					bool supportsMultiInstance() override {
+						return false;
+					}
+
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
diff --git a/cpp/src/command_classes/Meter.cpp b/cpp/src/command_classes/Meter.cpp
index 3eadc25fe1..708d85fb7f 100644
--- a/cpp/src/command_classes/Meter.cpp
+++ b/cpp/src/command_classes/Meter.cpp
@@ -257,7 +257,6 @@ namespace OpenZWave
 						res |= true;
 					}
 				}
-//				exit(-1);
 				return res;
 			}
 
diff --git a/cpp/src/command_classes/MeterPulse.cpp b/cpp/src/command_classes/MeterPulse.cpp
index cf6cd18d22..a132320099 100644
--- a/cpp/src/command_classes/MeterPulse.cpp
+++ b/cpp/src/command_classes/MeterPulse.cpp
@@ -56,7 +56,7 @@ namespace OpenZWave
 			{
 				if (_requestFlags & RequestFlag_Dynamic)
 				{
-					return RequestValue(_requestFlags, 0, _instance, _queue);
+					return RequestValue(_requestFlags, ValueID_Index_MeterPulse::Count, _instance, _queue);
 				}
 
 				return false;
diff --git a/cpp/src/command_classes/MultiChannelAssociation.h b/cpp/src/command_classes/MultiChannelAssociation.h
index f5d4f94f4c..3f2980e5d8 100644
--- a/cpp/src/command_classes/MultiChannelAssociation.h
+++ b/cpp/src/command_classes/MultiChannelAssociation.h
@@ -83,6 +83,9 @@ namespace OpenZWave
 					void Set(uint8 const _group, uint8 const _nodeId, uint8 const _endPoint);
 					void Remove(uint8 const _group, uint8 const _nodeId, uint8 const _endPoint);
 
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				private:
 					MultiChannelAssociation(uint32 const _homeId, uint8 const _nodeId);
 					void QueryGroup(uint8 _groupIdx, uint32 const _requestFlags);
diff --git a/cpp/src/command_classes/MultiInstance.cpp b/cpp/src/command_classes/MultiInstance.cpp
index a60f93cd42..ad8221ea17 100644
--- a/cpp/src/command_classes/MultiInstance.cpp
+++ b/cpp/src/command_classes/MultiInstance.cpp
@@ -347,8 +347,6 @@ namespace OpenZWave
 							continue;
 						}
 
-						m_endPointCommandClasses.insert(commandClassId);
-
 						// Ensure the node supports this command class
 						CommandClass* cc = node->GetCommandClass(commandClassId);
 
@@ -356,6 +354,9 @@ namespace OpenZWave
 						{
 							cc = node->AddCommandClass(commandClassId);
 						}
+
+
+
 						if (cc && afterMark)
 						{
 							cc->SetAfterMark();
@@ -365,7 +366,9 @@ namespace OpenZWave
 						{
 							Log::Write(LogLevel_Info, GetNodeId(), "        %s", cc->GetCommandClassName().c_str());
 						}
-						/* The AddCommandClass will bitch about unsupported CC's so we don't need to duplicate that output */
+						/* The AddCommandClass above will bitch about unsupported CC's so we don't need to duplicate that output */
+
+						m_endPointCommandClasses.insert(commandClassId);
 					}
 
 					// Create internal library instances for each command class in the list
@@ -396,6 +399,11 @@ namespace OpenZWave
 								CommandClass* cc = node->GetCommandClass(commandClassId);
 								if (cc)
 								{
+									if (cc->supportsMultiInstance() == false) {
+										Log::Write(LogLevel_Info, GetNodeId(), "%s doesn't support MultiInstance - Not adding Instance", cc->GetCommandClassName().c_str());
+										continue;
+									}
+
 									cc->SetInstance(i);
 									if (m_com.GetFlagBool(COMPAT_FLAG_MI_MAPROOTTOENDPOINT) != false || i != 1)
 									{
@@ -447,6 +455,11 @@ namespace OpenZWave
 							CommandClass* cc = node->GetCommandClass(commandClassId);
 							if (cc)
 							{
+								if (cc->supportsMultiInstance() == false) {
+									Log::Write(LogLevel_Info, GetNodeId(), "%s doesn't support MultiInstance. Not adding Instances", cc->GetCommandClassName().c_str());
+									continue;
+								}
+
 								// get instance gets an instance for an endpoint
 								// but i'm only interested if there is a related instance for an endpoint and not in the actual result
 								// soo if the result is != 0, the endpoint is already handled
@@ -606,10 +619,20 @@ namespace OpenZWave
 						if (instance == 0)
 							instance = 1;
 						Log::Write(LogLevel_Info, GetNodeId(), "Received a MultiChannelEncap from node %d, endpoint %d for Command Class %s", GetNodeId(), endPoint, pCommandClass->GetCommandClassName().c_str());
-						if (!pCommandClass->IsAfterMark())
-							pCommandClass->HandleMsg(&_data[4], _length - 4, instance);
+						if (!pCommandClass->IsAfterMark()) 
+						{
+							if (!pCommandClass->HandleMsg(&_data[4], _length - 4, instance)) 
+							{
+								Log::Write(LogLevel_Warning, GetNodeId(), "MultiChannel Encap CommandClass %s HandleMsg returned false", pCommandClass->GetCommandClassName().c_str());
+							}
+						}
 						else
-							pCommandClass->HandleIncomingMsg(&_data[4], _length - 4, instance);
+						{
+							if (!pCommandClass->HandleIncomingMsg(&_data[4], _length - 4, instance))
+							{
+								Log::Write(LogLevel_Warning, GetNodeId(), "MultiChannel Encap CommandClass %s HandleIncomingMsg returned false", pCommandClass->GetCommandClassName().c_str());	
+							}
+						}
 					}
 					else
 					{
diff --git a/cpp/src/command_classes/MultiInstance.h b/cpp/src/command_classes/MultiInstance.h
index c34c0a4e33..d1c63882c3 100644
--- a/cpp/src/command_classes/MultiInstance.h
+++ b/cpp/src/command_classes/MultiInstance.h
@@ -99,6 +99,9 @@ namespace OpenZWave
 					uint8 GetGenericInstanceDeviceType(uint8);
 					uint8 GetSpecificInstanceDeviceType(uint8);
 
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				private:
 					MultiInstance(uint32 const _homeId, uint8 const _nodeId);
 
diff --git a/cpp/src/command_classes/NodeNaming.h b/cpp/src/command_classes/NodeNaming.h
index 85e1cca42a..35087b33d0 100644
--- a/cpp/src/command_classes/NodeNaming.h
+++ b/cpp/src/command_classes/NodeNaming.h
@@ -89,6 +89,9 @@ namespace OpenZWave
 					void SetName(string const& _name);
 					void SetLocation(string const& _location);
 
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				private:
 					NodeNaming(uint32 const _homeId, uint8 const _nodeId) :
 							CommandClass(_homeId, _nodeId)
diff --git a/cpp/src/command_classes/Powerlevel.cpp b/cpp/src/command_classes/Powerlevel.cpp
index e71499ce30..32cd92416e 100644
--- a/cpp/src/command_classes/Powerlevel.cpp
+++ b/cpp/src/command_classes/Powerlevel.cpp
@@ -70,7 +70,7 @@ namespace OpenZWave
 			{
 				if (_requestFlags & RequestFlag_Session)
 				{
-					return RequestValue(_requestFlags, 0, _instance, _queue);
+					return RequestValue(_requestFlags, ValueID_Index_PowerLevel::Powerlevel, _instance, _queue);
 				}
 
 				return false;
diff --git a/cpp/src/command_classes/Protection.cpp b/cpp/src/command_classes/Protection.cpp
index 2eaca9ff6a..5d752eeca7 100644
--- a/cpp/src/command_classes/Protection.cpp
+++ b/cpp/src/command_classes/Protection.cpp
@@ -62,7 +62,7 @@ namespace OpenZWave
 			{
 				if (_requestFlags & RequestFlag_Session)
 				{
-					return RequestValue(_requestFlags, 0, _instance, _queue);
+					return RequestValue(_requestFlags, ValueID_Index_Protection::Protection, _instance, _queue);
 				}
 
 				return false;
diff --git a/cpp/src/command_classes/Security.cpp b/cpp/src/command_classes/Security.cpp
index f4b176a03c..10e484c01b 100644
--- a/cpp/src/command_classes/Security.cpp
+++ b/cpp/src/command_classes/Security.cpp
@@ -46,7 +46,7 @@ namespace OpenZWave
 		{
 
 			Security::Security(uint32 const _homeId, uint8 const _nodeId) :
-					CommandClass(_homeId, _nodeId), m_schemeagreed(false), m_secured(false)
+					CommandClass(_homeId, _nodeId), m_schemeagreed(false)
 
 			{
 				/* We don't want the Driver to route "Security" messages back to us for Encryption,
@@ -55,7 +55,8 @@ namespace OpenZWave
 				 * in the SecurityCmd_SupportedReport from the device - Which some devices do)
 				 */
 				ClearSecureSupport();
-
+				for (int i = 0; i < 255; i++)
+					m_secured[i] = false;
 			}
 
 			Security::~Security()
@@ -154,10 +155,10 @@ namespace OpenZWave
 						 * Command Classes created after the Discovery Phase is completed!
 						 */
 						Log::Write(LogLevel_Info, GetNodeId(), "Received SecurityCmd_SupportedReport from node %d (instance %d)", GetNodeId(), _instance);
-						m_secured = true;
+						m_secured[_instance] = true;
 						if (Internal::VC::ValueBool* value = static_cast<Internal::VC::ValueBool*>(GetValue(_instance, ValueID_Index_Security::Secured)))
 						{
-							value->OnValueRefreshed(m_secured);
+							value->OnValueRefreshed(m_secured[_instance]);
 							value->Release();
 						}
 						HandleSupportedReport(&_data[2], _length - 3, _instance);
@@ -261,6 +262,12 @@ namespace OpenZWave
 				if (Node* node = GetNodeUnsafe())
 				{
 					node->CreateValueBool(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_Security::Secured, "Secured", "", true, false, false, 0);
+					if (Internal::VC::ValueBool* value = static_cast<Internal::VC::ValueBool*>(GetValue(_instance, ValueID_Index_Security::Secured)))
+					{
+						value->OnValueRefreshed(m_secured[_instance]);
+						value->Release();
+					}
+
 				}
 			}
 		} // namespace CC
diff --git a/cpp/src/command_classes/Security.h b/cpp/src/command_classes/Security.h
index 3b67ac444d..9238f62fa2 100644
--- a/cpp/src/command_classes/Security.h
+++ b/cpp/src/command_classes/Security.h
@@ -104,7 +104,7 @@ namespace OpenZWave
 					bool HandleSupportedReport(uint8 const* _data, uint32 const _length, uint32 const _instance = 1);
 
 					bool m_schemeagreed;
-					bool m_secured;
+					bool m_secured[255];
 
 			};
 		} // namespace CC
diff --git a/cpp/src/command_classes/SensorBinary.cpp b/cpp/src/command_classes/SensorBinary.cpp
index c72305f1e4..570de1694b 100644
--- a/cpp/src/command_classes/SensorBinary.cpp
+++ b/cpp/src/command_classes/SensorBinary.cpp
@@ -111,7 +111,7 @@ namespace OpenZWave
 			{
 				if (_requestFlags & RequestFlag_Dynamic)
 				{
-					return RequestValue(_requestFlags, 0, _instance, _queue);
+					return RequestValue(_requestFlags, ValueID_Index_SensorBinary::Sensor_1, _instance, _queue);
 				}
 
 				return false;
@@ -199,7 +199,7 @@ namespace OpenZWave
 				{
 					if (WakeUp* wakeUp = static_cast<WakeUp*>(node->GetCommandClass(WakeUp::StaticGetCommandClassId())))
 					{
-						if (!wakeUp->IsAwake())
+						if (!wakeUp->IsAwake() || !m_com.GetFlagBool(COMPAT_FLAG_GETSUPPORTED))
 						{
 							if (Internal::VC::ValueBool* value = static_cast<Internal::VC::ValueBool*>(GetValue(_instance, 0)))
 							{
diff --git a/cpp/src/command_classes/SensorMultilevel.cpp b/cpp/src/command_classes/SensorMultilevel.cpp
index 98a187601f..634c3edfa0 100644
--- a/cpp/src/command_classes/SensorMultilevel.cpp
+++ b/cpp/src/command_classes/SensorMultilevel.cpp
@@ -149,7 +149,7 @@ namespace OpenZWave
 								if (requestedScale) {
 									const Internal::VC::ValueList::Item *item = requestedScale->GetItem();
 									if (item)
-										scale = item->m_value;
+										scale = ((item->m_value & 0x03) << 3);
 									requestedScale->Release();
 								}
 								value->Release();
@@ -177,7 +177,7 @@ namespace OpenZWave
 						if (requestedScale) {
 							const Internal::VC::ValueList::Item *item = requestedScale->GetItem();
 							if (item)
-								scale = item->m_value;
+								scale = ((item->m_value & 0x03) << 3);
 							requestedScale->Release();
 						}
 						value->Release();
@@ -295,14 +295,6 @@ namespace OpenZWave
 				return false;
 			}
 
-//-----------------------------------------------------------------------------
-// <SensorMultilevel::CreateVars>
-// Create the values managed by this command class
-//-----------------------------------------------------------------------------
-			void SensorMultilevel::CreateVars(uint8 const _instance)
-			{
-				// Don't create anything here. We do it in the report.
-			}
 		} // namespace CC
 	} // namespace Internal
 } // namespace OpenZWave
diff --git a/cpp/src/command_classes/SensorMultilevel.h b/cpp/src/command_classes/SensorMultilevel.h
index 56cab16fdf..5398e56522 100644
--- a/cpp/src/command_classes/SensorMultilevel.h
+++ b/cpp/src/command_classes/SensorMultilevel.h
@@ -78,9 +78,6 @@ namespace OpenZWave
 						return 11;
 					}
 
-				protected:
-					virtual void CreateVars(uint8 const _instance) override;
-
 				private:
 					SensorMultilevel(uint32 const _homeId, uint8 const _nodeId) :
 							CommandClass(_homeId, _nodeId)
diff --git a/cpp/src/command_classes/SoundSwitch.cpp b/cpp/src/command_classes/SoundSwitch.cpp
index db40f8eb07..c7e7037e83 100644
--- a/cpp/src/command_classes/SoundSwitch.cpp
+++ b/cpp/src/command_classes/SoundSwitch.cpp
@@ -77,6 +77,10 @@ namespace OpenZWave
 				{
 					requests |= RequestValue(_requestFlags, ValueID_Index_SoundSwitch::Tone_Count, _instance, _queue);
 				}
+				if (_requestFlags & RequestFlag_Dynamic) 
+				{
+					requests |= RequestValue(_requestFlags, ValueID_Index_SoundSwitch::Volume, _instance, _queue);
+				}
 
 				return requests;
 			}
@@ -106,6 +110,16 @@ namespace OpenZWave
 					{
 						Log::Write(LogLevel_Info, GetNodeId(), "SoundSwitchCmd_Tones_Number_Get Not Supported on this node");
 					}
+				} else if (_index == ValueID_Index_SoundSwitch::Volume || _index == ValueID_Index_SoundSwitch::Default_Tone) {
+						Msg* msg = new Msg("SoundSwitchCmd_Tones_Config_Get", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+						msg->SetInstance(this, _instance);
+						msg->Append(GetNodeId());
+						msg->Append(2);
+						msg->Append(GetCommandClassId());
+						msg->Append(SoundSwitchCmd_Tones_Config_Get);
+						msg->Append(GetDriver()->GetTransmitOptions());
+						GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+						return true;
 				}
 				return false;
 			}
@@ -250,15 +264,31 @@ namespace OpenZWave
 					}
 					ret = true;
 				}
-				if (index == ValueID_Index_SoundSwitch::Volume || index == ValueID_Index_SoundSwitch::Default_Tone)
+				if (index == ValueID_Index_SoundSwitch::Volume)
 				{
 					uint8 volume = 0xff;
-					uint8 defaulttone = 0x01;
-					if (Internal::VC::ValueByte const* value = static_cast<Internal::VC::ValueByte const*>(GetValue(instance, ValueID_Index_SoundSwitch::Volume)))
+					if (Internal::VC::ValueByte const* value = static_cast<Internal::VC::ValueByte const*>(&_value))
 					{
 						volume = value->GetValue();
+						if (volume > 100) {
+							volume = 0xFF;
+						}
 					}
-					if (Internal::VC::ValueList const* value = static_cast<Internal::VC::ValueList const*>(GetValue(instance, ValueID_Index_SoundSwitch::Default_Tone)))
+					Msg* msg = new Msg("SoundSwitchCmd_Tones_Config_Set", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
+					msg->SetInstance(this, instance);
+					msg->Append(GetNodeId());
+					msg->Append(4);
+					msg->Append(GetCommandClassId());
+					msg->Append(SoundSwitchCmd_Tones_Config_Set);
+					msg->Append(volume);
+					msg->Append(0);
+					msg->Append(GetDriver()->GetTransmitOptions());
+					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+					ret = true;
+				}
+				if (index == ValueID_Index_SoundSwitch::Default_Tone) {
+					uint8 defaulttone = 0x00;
+					if (Internal::VC::ValueList const* value = static_cast<Internal::VC::ValueList const*>(&_value))
 					{
 						Internal::VC::ValueList::Item const *item = value->GetItem();
 						if (item == NULL)
@@ -268,19 +298,18 @@ namespace OpenZWave
 						if (defaulttone == 0xFF)
 							defaulttone = 1;
 					}
-					Msg* msg = new Msg("SoundSwitchCmd_Tones_Config_Set", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+					Msg* msg = new Msg("SoundSwitchCmd_Tones_Config_Set", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
 					msg->SetInstance(this, instance);
 					msg->Append(GetNodeId());
 					msg->Append(4);
 					msg->Append(GetCommandClassId());
 					msg->Append(SoundSwitchCmd_Tones_Config_Set);
-					msg->Append(volume);
+					msg->Append(0xFF);
 					msg->Append(defaulttone);
 					msg->Append(GetDriver()->GetTransmitOptions());
 					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
 					ret = true;
 				}
-
 				return ret;
 			}
 
diff --git a/cpp/src/command_classes/Supervision.cpp b/cpp/src/command_classes/Supervision.cpp
new file mode 100644
index 0000000000..97908e081c
--- /dev/null
+++ b/cpp/src/command_classes/Supervision.cpp
@@ -0,0 +1,174 @@
+//-----------------------------------------------------------------------------
+//
+//	Supervision.h
+//
+//	Implementation of the Z-Wave COMMAND_CLASS_SUPERVISION
+//
+//	Copyright (c) 2020 Mark Ruys <mark@paracas.nl>
+//
+//	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/>.
+//
+//-----------------------------------------------------------------------------
+
+#include "command_classes/CommandClasses.h"
+#include "command_classes/Supervision.h"
+#include "Defs.h"
+#include "Msg.h"
+#include "Node.h"
+#include "Driver.h"
+#include "platform/Log.h"
+
+#include "value_classes/Value.h"
+
+namespace OpenZWave
+{
+	namespace Internal
+	{
+		namespace CC
+		{
+			uint8 Supervision::CreateSupervisionSession(uint8 _command_class_id, uint8 _index)
+			{
+				m_last_session_id++;
+				m_last_session_id &= 0x3f;
+
+				if (m_sessions.size() >= 6)
+				{
+					// Clean up oldest session, we support max 6 simultaneous sessions per node 
+					m_sessions.pop_front();
+				}
+
+				m_sessions.push_back({
+					.session_id = m_last_session_id, 
+					.command_class_id = _command_class_id,
+					.index = _index
+				});
+
+				return m_last_session_id;
+			}
+
+			uint32 Supervision::GetSupervisionIndex(uint8 _session_id)
+			{
+				for (auto it = m_sessions.cbegin(); it != m_sessions.cend(); ++it) 
+				{
+					if (it->session_id == _session_id) 
+					{
+						return it->index;
+					}
+				}
+			
+				return StaticNoIndex();
+			}
+
+//-----------------------------------------------------------------------------
+// <Supervision::HandleSupervisionReport>
+// Handle a supervision report message from the Z-Wave network
+//-----------------------------------------------------------------------------
+			void Supervision::HandleSupervisionReport(uint8 const* _data, uint32 const _length, uint32 const _instance)
+			{
+				if (Node* node = GetNodeUnsafe())
+				{
+					if (_length >= 4) 
+					{
+						uint8 more_status_updates = _data[1] >> 7;
+						uint8 session_id = _data[1] & 0x3f;
+						uint8 status = _data[2];
+						int duration = _data[3];
+
+						const char *status_identifier;
+						switch (status) {
+						case 0x00: status_identifier = "NO_SUPPORT"; break;
+						case 0x01: status_identifier = "WORKING"; break;
+						case 0x02: status_identifier = "FAIL"; break;
+						case 0xff: status_identifier = "SUCCESS"; break;
+						default: status_identifier = "UNKNOWN"; break;
+						}
+
+						for (auto it = m_sessions.cbegin(); it != m_sessions.cend(); ++it) 
+						{
+							if (it->session_id == session_id) 
+							{
+								if (CommandClass* pCommandClass = node->GetCommandClass(it->command_class_id))
+								{
+									Log::Write(LogLevel_Info, GetNodeId(), "Received SupervisionReport: session %d, %s index %d, status %s, duration %d sec, more status updates %d",
+										session_id, 
+										pCommandClass->GetCommandClassName().c_str(), it->index, 
+										status_identifier, decodeDuration(duration), more_status_updates);
+
+									if (status == SupervisionStatus::SupervisionStatus_Success)
+									{
+										pCommandClass->SupervisionSessionSuccess(session_id, _instance);
+									}
+								}
+								else
+								{
+									Log::Write(LogLevel_Warning, GetNodeId(), "Received SupervisionReport for unknown CC %d", it->command_class_id);
+								}
+
+								if (more_status_updates == 0)
+								{
+									m_sessions.erase(it);
+								}
+							
+								return;
+							}
+						}
+
+						Log::Write(LogLevel_Warning, GetNodeId(), "Received SupervisionReport: unknown session %d, status %s, duration %d sec, more status updates %d",
+							session_id, 
+							status_identifier, decodeDuration(duration), more_status_updates);
+					}
+				}
+			}
+
+			bool Supervision::HandleIncomingMsg(uint8 const* _data, uint32 const _length, uint32 const _instance)
+			{
+				return HandleMsg(_data, _length, _instance);
+			}
+
+//-----------------------------------------------------------------------------
+// <Supervision::HandleMsg>
+// Handle a message from the Z-Wave network
+//-----------------------------------------------------------------------------
+			bool Supervision::HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance)	// = 1
+			{
+				bool handled = false;
+				Node* node = GetNodeUnsafe();
+				if (node != NULL)
+				{
+					handled = true;
+					switch ((SupervisionCmd) _data[0])
+					{
+						case SupervisionCmd_Report:
+						{
+							HandleSupervisionReport(_data, _length, _instance);
+							break;
+						}
+						default:
+						{
+							handled = false;
+							break;
+						}
+					}
+				}
+
+				return handled;
+			}
+		} // namespace CC
+	} // namespace Internal
+} // namespace OpenZWave
+
diff --git a/cpp/src/command_classes/Supervision.h b/cpp/src/command_classes/Supervision.h
new file mode 100644
index 0000000000..2484717055
--- /dev/null
+++ b/cpp/src/command_classes/Supervision.h
@@ -0,0 +1,127 @@
+//-----------------------------------------------------------------------------
+//
+//	Supervision.h
+//
+//	Implementation of the Z-Wave COMMAND_CLASS_SUPERVISION
+//
+//	Copyright (c) 2020 Mark Ruys <mark@paracas.nl>
+//
+//	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 _Supervision_H
+#define _Supervision_H
+
+#include <deque>
+
+#include "command_classes/CommandClass.h"
+
+namespace OpenZWave
+{
+	namespace Internal
+	{
+		namespace CC
+		{
+			/** \brief Implements COMMAND_CLASS_SUPERVISION (0x6c), a Z-Wave device command class.
+			 * \ingroup CommandClass
+			 */
+			class Supervision: public CommandClass
+			{
+				public:
+					enum SupervisionCmd
+					{
+						SupervisionCmd_Get = 0x01,
+						SupervisionCmd_Report = 0x02,
+					};
+					enum SupervisionMoreStatusUpdates
+					{
+						SupervisionMoreStatusUpdates_LastReport = 0x00,
+						SupervisionMoreStatusUpdates_MoreReports = 0x80,
+					};
+					enum SupervisionStatus
+					{
+						SupervisionStatus_NoSupport = 0x00,
+						SupervisionStatus_Working = 0x01,
+						SupervisionStatus_Fail = 0x02,
+						SupervisionStatus_Success = 0xff
+					};
+
+					static CommandClass* Create(uint32 const _homeId, uint8 const _nodeId)
+					{
+						return new Supervision(_homeId, _nodeId);
+					}
+					virtual ~Supervision()
+					{
+					}
+
+					static uint8 const StaticGetCommandClassId()
+					{
+						return 0x6c;
+					}
+					static string const StaticGetCommandClassName()
+					{
+						return "COMMAND_CLASS_SUPERVISION";
+					}
+
+					uint8 CreateSupervisionSession(uint8 _command_class_id, uint8 _index);
+					static uint8 const StaticNoSessionId()
+					{
+						return 0xff; // As sessions are only 5 bits, this value will never match
+					}
+					uint32 GetSupervisionIndex(uint8 _session_id);
+					static uint32 const StaticNoIndex()
+					{
+						return 0xffff; // As indices are max 16 bits, this value will never match
+					}
+
+					// From CommandClass
+					virtual uint8 const GetCommandClassId() const override
+					{
+						return StaticGetCommandClassId();
+					}
+					virtual string const GetCommandClassName() const override
+					{
+						return StaticGetCommandClassName();
+					}
+					virtual bool HandleIncomingMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
+					virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
+
+				private:
+					Supervision(uint32 const _homeId, uint8 const _nodeId) :
+						CommandClass(_homeId, _nodeId), 
+						m_last_session_id{StaticNoSessionId()}
+					{
+					}
+
+					struct s_Session {
+						uint8 session_id;
+						uint8 command_class_id;
+						uint8 index;
+					};
+					std::deque<s_Session> m_sessions;
+					uint8 m_last_session_id;
+
+					void HandleSupervisionReport(uint8 const* _data, uint32 const _length, uint32 const _instance);
+			};
+		} // namespace CC
+	} // namespace Internal
+} // namespace OpenZWave
+
+#endif
+
diff --git a/cpp/src/command_classes/SwitchAll.cpp b/cpp/src/command_classes/SwitchAll.cpp
index f11536e00f..66565f0482 100644
--- a/cpp/src/command_classes/SwitchAll.cpp
+++ b/cpp/src/command_classes/SwitchAll.cpp
@@ -62,7 +62,7 @@ namespace OpenZWave
 			{
 				if (_requestFlags & RequestFlag_Session)
 				{
-					return RequestValue(_requestFlags, 0, _instance, _queue);
+					return RequestValue(_requestFlags, ValueID_Index_SwitchAll::SwitchAll, _instance, _queue);
 				}
 
 				return false;
diff --git a/cpp/src/command_classes/SwitchBinary.cpp b/cpp/src/command_classes/SwitchBinary.cpp
index 1333b8439c..0fa9cc1332 100644
--- a/cpp/src/command_classes/SwitchBinary.cpp
+++ b/cpp/src/command_classes/SwitchBinary.cpp
@@ -30,6 +30,7 @@
 #include "command_classes/CommandClasses.h"
 #include "command_classes/SwitchBinary.h"
 #include "command_classes/WakeUp.h"
+#include "command_classes/Supervision.h"
 #include "Defs.h"
 #include "Msg.h"
 #include "Driver.h"
@@ -37,7 +38,7 @@
 #include "platform/Log.h"
 
 #include "value_classes/ValueBool.h"
-#include "value_classes/ValueByte.h"
+#include "value_classes/ValueInt.h"
 
 namespace OpenZWave
 {
@@ -61,7 +62,7 @@ namespace OpenZWave
 			{
 				if (_requestFlags & RequestFlag_Dynamic)
 				{
-					return RequestValue(_requestFlags, 0, _instance, _queue);
+					return RequestValue(_requestFlags, ValueID_Index_SwitchBinary::Level, _instance, _queue);
 				}
 
 				return false;
@@ -107,6 +108,8 @@ namespace OpenZWave
 					// data[1] => Switch state
 					if (Internal::VC::ValueBool* value = static_cast<Internal::VC::ValueBool*>(GetValue(_instance, ValueID_Index_SwitchBinary::Level)))
 					{
+						if (GetVersion() >= 2 && _length >= 4)
+							value->SetTargetValue(_data[2] != 0, _data[3]);
 						value->OnValueRefreshed(_data[1] != 0);
 						value->Release();
 					}
@@ -124,9 +127,9 @@ namespace OpenZWave
 						// data[3] might be duration
 						if (_length > 3)
 						{
-							if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_SwitchBinary::Duration)))
+							if (Internal::VC::ValueInt* value = static_cast<Internal::VC::ValueInt*>(GetValue(_instance, ValueID_Index_SwitchBinary::Duration)))
 							{
-								value->OnValueRefreshed(_data[3]);
+								value->OnValueRefreshed(decodeDuration(_data[3]));
 								value->Release();
 							}
 						}
@@ -137,6 +140,29 @@ namespace OpenZWave
 
 				return false;
 			}
+			
+			void SwitchBinary::SupervisionSessionSuccess(uint8 _session_id, uint32 const _instance)
+			{
+				if (Node* node = GetNodeUnsafe())
+				{			
+					uint32 index = node->GetSupervisionIndex(_session_id);
+
+					if (index != Internal::CC::Supervision::StaticNoIndex())
+					{
+						if (Internal::VC::ValueBool* value = static_cast<Internal::VC::ValueBool*>(GetValue(_instance, index)))
+						{
+							value->ConfirmNewValue();
+
+							Log::Write(LogLevel_Info, GetNodeId(), "Confirmed switch binary index %d to value=%s",
+								index, value->GetValue() ? "On" : "Off");
+						}
+					}
+					else
+					{
+						Log::Write(LogLevel_Info, GetNodeId(), "Ignore unknown supervision session %d", _session_id);
+					}
+				}
+			}
 
 //-----------------------------------------------------------------------------
 // <SwitchBinary::SetValue>
@@ -160,9 +186,9 @@ namespace OpenZWave
 					}
 					case ValueID_Index_SwitchBinary::Duration:
 					{
-						if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(instance, ValueID_Index_SwitchBinary::Duration)))
+						if (Internal::VC::ValueInt* value = static_cast<Internal::VC::ValueInt*>(GetValue(instance, ValueID_Index_SwitchBinary::Duration)))
 						{
-							value->OnValueRefreshed((static_cast<Internal::VC::ValueByte const*>(&_value))->GetValue());
+							value->OnValueRefreshed((static_cast<Internal::VC::ValueInt const*>(&_value))->GetValue());
 							value->Release();
 						}
 						res = true;
@@ -210,47 +236,54 @@ namespace OpenZWave
 			{
 				uint8 const nodeId = GetNodeId();
 				uint8 const targetValue = _state ? 0xff : 0;
-
-				Log::Write(LogLevel_Info, nodeId, "SwitchBinary::Set - Setting to %s", _state ? "On" : "Off");
-				Msg* msg = new Msg("SwitchBinaryCmd_Set", nodeId, REQUEST, FUNC_ID_ZW_SEND_DATA, true);
-				msg->SetInstance(this, _instance);
-				msg->Append(nodeId);
-
-				if (GetVersion() >= 2)
+				
+				if (Node* node = GetNodeUnsafe())
 				{
-					Internal::VC::ValueByte* durationValue = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_SwitchBinary::Duration));
-					uint8 duration = durationValue->GetValue();
-					durationValue->Release();
-					if (duration == 0xff)
+					//add supervision encapsulation if supported
+					uint8 index = ValueID_Index_SwitchBinary::Level;
+					uint8 supervision_session_id = node->CreateSupervisionSession(StaticGetCommandClassId(), index);
+					if (supervision_session_id == Internal::CC::Supervision::StaticNoSessionId())
 					{
-						Log::Write(LogLevel_Info, GetNodeId(), "  Duration: Default");
+						Log::Write(LogLevel_Debug, GetNodeId(), "Supervision not supported, fall back to setpoint set/get");
 					}
-					else if (duration >= 0x80)
+
+					Log::Write(LogLevel_Info, nodeId, "SwitchBinary::Set - Setting to %s", _state ? "On" : "Off");
+					Msg* msg = new Msg("SwitchBinaryCmd_Set", nodeId, REQUEST, FUNC_ID_ZW_SEND_DATA, true);
+					msg->SetInstance(this, _instance);
+					msg->SetSupervision(supervision_session_id);
+					msg->Append(nodeId);
+
+					if (GetVersion() >= 2)
 					{
-						Log::Write(LogLevel_Info, GetNodeId(), "  Duration: %d minutes", duration - 0x7f);
+						Internal::VC::ValueInt* durationValue = static_cast<Internal::VC::ValueInt*>(GetValue(_instance, ValueID_Index_SwitchBinary::Duration));
+						uint32 duration = durationValue->GetValue();
+						durationValue->Release();
+						if (duration > 7620)
+							Log::Write(LogLevel_Info, GetNodeId(), "  Duration: Device Default");
+						else if (duration > 0x7F)
+							Log::Write(LogLevel_Info, GetNodeId(), "  Rouding to %d Minutes (over 127 seconds)", encodeDuration(duration)-0x79);
+						else 
+							Log::Write(LogLevel_Info, GetNodeId(), "  Duration: %d seconds", duration);
+
+						msg->Append(4);
+						msg->Append(GetCommandClassId());
+						msg->Append(SwitchBinaryCmd_Set);
+						msg->Append(targetValue);
+						msg->Append(encodeDuration(duration));
 					}
 					else
 					{
-						Log::Write(LogLevel_Info, GetNodeId(), "  Duration: %d seconds", duration);
+						msg->Append(3);
+						msg->Append(GetCommandClassId());
+						msg->Append(SwitchBinaryCmd_Set);
+						msg->Append(targetValue);
 					}
 
-					msg->Append(4);
-					msg->Append(GetCommandClassId());
-					msg->Append(SwitchBinaryCmd_Set);
-					msg->Append(targetValue);
-					msg->Append(duration);
-				}
-				else
-				{
-					msg->Append(3);
-					msg->Append(GetCommandClassId());
-					msg->Append(SwitchBinaryCmd_Set);
-					msg->Append(targetValue);
+					msg->Append(GetDriver()->GetTransmitOptions());
+					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+					return true;
 				}
-
-				msg->Append(GetDriver()->GetTransmitOptions());
-				GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
-				return true;
+				return false;
 			}
 
 //-----------------------------------------------------------------------------
@@ -263,7 +296,7 @@ namespace OpenZWave
 				{
 					if (GetVersion() >= 2)
 					{
-						node->CreateValueByte(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_SwitchBinary::Duration, "Transition Duration", "", false, false, 0xff, 0);
+						node->CreateValueInt(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_SwitchBinary::Duration, "Transition Duration", "Sec", false, false, -1, 0);
 						node->CreateValueBool(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_SwitchBinary::TargetState, "Target State", "", true, false, true, 0);
 					}
 					node->CreateValueBool(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_SwitchBinary::Level, "Switch", "", false, false, false, 0);
diff --git a/cpp/src/command_classes/SwitchBinary.h b/cpp/src/command_classes/SwitchBinary.h
index ff4fdb0104..c301a73d67 100644
--- a/cpp/src/command_classes/SwitchBinary.h
+++ b/cpp/src/command_classes/SwitchBinary.h
@@ -80,6 +80,7 @@ namespace OpenZWave
 					{
 						return 2;
 					}
+					virtual void SupervisionSessionSuccess(uint8 _session_id, uint32 const _instance);
 
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
diff --git a/cpp/src/command_classes/SwitchMultilevel.cpp b/cpp/src/command_classes/SwitchMultilevel.cpp
index 8cee7be7e3..a20339e26c 100644
--- a/cpp/src/command_classes/SwitchMultilevel.cpp
+++ b/cpp/src/command_classes/SwitchMultilevel.cpp
@@ -28,6 +28,7 @@
 #include "command_classes/CommandClasses.h"
 #include "command_classes/SwitchMultilevel.h"
 #include "command_classes/WakeUp.h"
+#include "command_classes/Supervision.h"
 #include "Defs.h"
 #include "Msg.h"
 #include "Driver.h"
@@ -37,6 +38,7 @@
 #include "value_classes/ValueBool.h"
 #include "value_classes/ValueButton.h"
 #include "value_classes/ValueByte.h"
+#include "value_classes/ValueInt.h"
 
 namespace OpenZWave
 {
@@ -74,9 +76,23 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			bool SwitchMultilevel::RequestState(uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue)
 			{
+				if (_requestFlags & RequestFlag_Static) {
+					if (GetVersion() >= 3)
+					{
+						// Request the supported switch types
+						Msg* msg = new Msg("SwitchMultilevelCmd_SupportedGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
+						msg->Append(GetNodeId());
+						msg->Append(2);
+						msg->Append(GetCommandClassId());
+						msg->Append(SwitchMultilevelCmd_SupportedGet);
+						msg->Append(GetDriver()->GetTransmitOptions());
+						GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+					}
+					return true;
+				}
 				if (_requestFlags & RequestFlag_Dynamic)
 				{
-					return RequestValue(_requestFlags, 0, _instance, _queue);
+					return RequestValue(_requestFlags, ValueID_Index_SwitchMultiLevel::Level, _instance, _queue);
 				}
 
 				return false;
@@ -100,6 +116,7 @@ namespace OpenZWave
 						msg->Append(SwitchMultilevelCmd_Get);
 						msg->Append(GetDriver()->GetTransmitOptions());
 						GetDriver()->SendMsg(msg, _queue);
+						
 						return true;
 					}
 					else
@@ -110,28 +127,6 @@ namespace OpenZWave
 				return false;
 			}
 
-			bool SwitchMultilevel::HandleIncomingMsg(uint8 const* _data, uint32 const _length, uint32 const _instance	// = 1
-					)
-			{
-				if (SwitchMultilevelCmd_Set == (SwitchMultilevelCmd) _data[0])
-				{
-					Log::Write(LogLevel_Info, GetNodeId(), "Received SwitchMultiLevel Set: level=%d", _data[1]);
-					return true;
-				}
-				else if (SwitchMultilevelCmd_StartLevelChange == (SwitchMultilevelCmd) _data[0])
-				{
-					Log::Write(LogLevel_Info, GetNodeId(), "Received SwitchMultiLevel StartLevelChange: level=%d", _data[1]);
-
-				}
-				else if (SwitchMultilevelCmd_StopLevelChange == (SwitchMultilevelCmd) _data[0])
-				{
-					Log::Write(LogLevel_Info, GetNodeId(), "Received SwitchMultiLevel StopLevelChange: level=%d", _data[1]);
-
-				}
-
-				return true;
-			}
-
 //-----------------------------------------------------------------------------
 // <SwitchMultilevel::HandleMsg>
 // Handle a message from the Z-Wave network
@@ -145,6 +140,9 @@ namespace OpenZWave
 
 					if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_SwitchMultiLevel::Level)))
 					{
+						/* Target Value - 0 to 100 is valid values, 0xFF is also valid */
+						if ((GetVersion() >= 4) && ((_data[2] <= 100) || (_data[2] == 0xFF)))
+							value->SetTargetValue(_data[2], _data[3]);
 						value->OnValueRefreshed(_data[1]);
 						value->Release();
 					}
@@ -162,9 +160,9 @@ namespace OpenZWave
 						// data[3] might be duration
 						if (_length > 3)
 						{
-							if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_SwitchMultiLevel::Duration)))
+							if (Internal::VC::ValueInt* value = static_cast<Internal::VC::ValueInt*>(GetValue(_instance, ValueID_Index_SwitchMultiLevel::Duration)))
 							{
-								value->OnValueRefreshed(_data[3]);
+								value->OnValueRefreshed(decodeDuration(_data[3]));
 								value->Release();
 							}
 						}
@@ -225,32 +223,30 @@ namespace OpenZWave
 					}
 					return true;
 				}
-
+				Log::Write(LogLevel_Warning, GetNodeId(), "Recieved a Unhandled SwitchMultiLevel Command: %d", _data[0]);
 				return false;
 			}
 
-//-----------------------------------------------------------------------------
-// <SwitchMultilevel::SetVersion>
-// Set the command class version
-//-----------------------------------------------------------------------------
-			void SwitchMultilevel::SetVersion(uint8 const _version)
+			void SwitchMultilevel::SupervisionSessionSuccess(uint8 _session_id, uint32 const _instance)
 			{
-				CommandClass::SetVersion(_version);
-
-				if (_version >= 3)
+				if (Node* node = GetNodeUnsafe())
 				{
-					// Request the supported switch types
-					Msg* msg = new Msg("SwitchMultilevelCmd_SupportedGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
-					msg->Append(GetNodeId());
-					msg->Append(2);
-					msg->Append(GetCommandClassId());
-					msg->Append(SwitchMultilevelCmd_SupportedGet);
-					msg->Append(GetDriver()->GetTransmitOptions());
-					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+					uint32 index = node->GetSupervisionIndex(_session_id);
+
+					if (index != Internal::CC::Supervision::StaticNoIndex())
+					{
+						if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_SwitchMultiLevel::Level)))
+						{
+							value->ConfirmNewValue();
 
-					// Set the request flag again - it will be cleared when we get a
-					// response to the SwitchMultilevelCmd_SupportedGet message.
-					SetStaticRequest(StaticRequest_Version);
+							Log::Write(LogLevel_Info, GetNodeId(), "Confirmed switch multi level index %d to value=%d",
+								index, value->GetValue());
+						}
+					}
+					else
+					{
+						Log::Write(LogLevel_Info, GetNodeId(), "Ignore unknown supervision session %d", _session_id);
+					}
 				}
 			}
 
@@ -331,9 +327,9 @@ namespace OpenZWave
 					}
 					case ValueID_Index_SwitchMultiLevel::Duration:
 					{
-						if (Internal::VC::ValueByte* value = static_cast<Internal::VC::ValueByte*>(GetValue(instance, ValueID_Index_SwitchMultiLevel::Duration)))
+						if (Internal::VC::ValueInt* value = static_cast<Internal::VC::ValueInt*>(GetValue(instance, ValueID_Index_SwitchMultiLevel::Duration)))
 						{
-							value->OnValueRefreshed((static_cast<Internal::VC::ValueByte const*>(&_value))->GetValue());
+							value->OnValueRefreshed((static_cast<Internal::VC::ValueInt const*>(&_value))->GetValue());
 							value->Release();
 						}
 						res = true;
@@ -422,46 +418,54 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			bool SwitchMultilevel::SetLevel(uint8 const _instance, uint8 const _level)
 			{
-				Log::Write(LogLevel_Info, GetNodeId(), "SwitchMultilevel::Set - Setting to level %d", _level);
-				Msg* msg = new Msg("SwitchMultilevelCmd_Set", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
-				msg->SetInstance(this, _instance);
-				msg->Append(GetNodeId());
 
-				if (GetVersion() >= 2)
+				if (Node* node = GetNodeUnsafe())
 				{
-					Internal::VC::ValueByte* durationValue = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_SwitchMultiLevel::Duration));
-					uint8 duration = durationValue->GetValue();
-					durationValue->Release();
-					if (duration == 0xff)
+					//add supervision encapsulation if supported
+					uint8 index = ValueID_Index_SwitchMultiLevel::Level;
+					uint8 supervision_session_id = node->CreateSupervisionSession(StaticGetCommandClassId(), index);
+					if (supervision_session_id == Internal::CC::Supervision::StaticNoSessionId())
 					{
-						Log::Write(LogLevel_Info, GetNodeId(), "  Duration: Default");
+						Log::Write(LogLevel_Debug, GetNodeId(), "Supervision not supported, fall back to setpoint set/get");
 					}
-					else if (duration >= 0x80)
+
+					Log::Write(LogLevel_Info, GetNodeId(), "SwitchMultilevel::Set - Setting to level %d", _level);
+					Msg* msg = new Msg("SwitchMultilevelCmd_Set", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
+					msg->SetInstance(this, _instance);
+					msg->SetSupervision(supervision_session_id);
+					msg->Append(GetNodeId());
+
+					if (GetVersion() >= 2)
 					{
-						Log::Write(LogLevel_Info, GetNodeId(), "  Duration: %d minutes", duration - 0x7f);
+						Internal::VC::ValueInt* durationValue = static_cast<Internal::VC::ValueInt*>(GetValue(_instance, ValueID_Index_SwitchMultiLevel::Duration));
+						uint32 duration = durationValue->GetValue();
+						durationValue->Release();
+						if (duration > 7620)
+							Log::Write(LogLevel_Info, GetNodeId(), "  Duration: Device Default");
+						else if (duration > 0x7F)
+							Log::Write(LogLevel_Info, GetNodeId(), "  Rouding to %d Minutes (over 127 seconds)", encodeDuration(duration)-0x79);
+						else 
+							Log::Write(LogLevel_Info, GetNodeId(), "  Duration: %d seconds", duration);
+
+						msg->Append(4);
+						msg->Append(GetCommandClassId());
+						msg->Append(SwitchMultilevelCmd_Set);
+						msg->Append(_level);
+						msg->Append(encodeDuration(duration));
 					}
 					else
 					{
-						Log::Write(LogLevel_Info, GetNodeId(), "  Duration: %d seconds", duration);
+						msg->Append(3);
+						msg->Append(GetCommandClassId());
+						msg->Append(SwitchMultilevelCmd_Set);
+						msg->Append(_level);
 					}
 
-					msg->Append(4);
-					msg->Append(GetCommandClassId());
-					msg->Append(SwitchMultilevelCmd_Set);
-					msg->Append(_level);
-					msg->Append(duration);
-				}
-				else
-				{
-					msg->Append(3);
-					msg->Append(GetCommandClassId());
-					msg->Append(SwitchMultilevelCmd_Set);
-					msg->Append(_level);
+					msg->Append(GetDriver()->GetTransmitOptions());
+					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+					return true;
 				}
-
-				msg->Append(GetDriver()->GetTransmitOptions());
-				GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
-				return true;
+				return false;
 			}
 
 //-----------------------------------------------------------------------------
@@ -500,8 +504,8 @@ namespace OpenZWave
 				}
 				Log::Write(LogLevel_Info, GetNodeId(), "  Start Level:        %d", startLevel);
 
-				uint8 duration = 0;
-				if (Internal::VC::ValueByte* durationValue = static_cast<Internal::VC::ValueByte*>(GetValue(_instance, ValueID_Index_SwitchMultiLevel::Duration)))
+				uint32 duration = -1;
+				if (Internal::VC::ValueInt* durationValue = static_cast<Internal::VC::ValueInt*>(GetValue(_instance, ValueID_Index_SwitchMultiLevel::Duration)))
 				{
 					length = 5;
 					duration = durationValue->GetValue();
@@ -542,7 +546,7 @@ namespace OpenZWave
 
 				if (length >= 5)
 				{
-					msg->Append(duration);
+					msg->Append(encodeDuration(duration));
 				}
 
 				if (length == 6)
@@ -598,7 +602,7 @@ namespace OpenZWave
 					}
 					if (GetVersion() >= 2)
 					{
-						node->CreateValueByte(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_SwitchMultiLevel::Duration, "Dimming Duration", "", false, false, 0xff, 0);
+						node->CreateValueInt(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_SwitchMultiLevel::Duration, "Dimming Duration", "", false, false, -1, 0);
 					}
 					node->CreateValueByte(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_SwitchMultiLevel::Level, "Level", "", false, false, 0, 0);
 					node->CreateValueButton(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_SwitchMultiLevel::Bright, "Bright", 0);
diff --git a/cpp/src/command_classes/SwitchMultilevel.h b/cpp/src/command_classes/SwitchMultilevel.h
index 9c784fcb39..6c3aa7561a 100644
--- a/cpp/src/command_classes/SwitchMultilevel.h
+++ b/cpp/src/command_classes/SwitchMultilevel.h
@@ -72,15 +72,14 @@ namespace OpenZWave
 						return StaticGetCommandClassName();
 					}
 					virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
-					virtual bool HandleIncomingMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
 					virtual bool SetValue(Internal::VC::Value const& _value) override;
 					virtual void SetValueBasic(uint8 const _instance, uint8 const _value) override;
-					virtual void SetVersion(uint8 const _version) override;
 
 					virtual uint8 GetMaxVersion() override
 					{
 						return 4;
 					}
+					virtual void SupervisionSessionSuccess(uint8 _session_id, uint32 const _instance);
 
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
diff --git a/cpp/src/command_classes/ThermostatMode.cpp b/cpp/src/command_classes/ThermostatMode.cpp
index 834879beb6..7f00a7e6e1 100644
--- a/cpp/src/command_classes/ThermostatMode.cpp
+++ b/cpp/src/command_classes/ThermostatMode.cpp
@@ -26,6 +26,7 @@
 //-----------------------------------------------------------------------------
 
 #include "command_classes/CommandClasses.h"
+#include "command_classes/Supervision.h"
 #include "command_classes/ThermostatMode.h"
 #include "Defs.h"
 #include "Msg.h"
@@ -93,6 +94,14 @@ namespace OpenZWave
 			static char const* c_modeName[] =
 			{ "Off", "Heat", "Cool", "Auto", "Aux Heat", "Resume", "Fan Only", "Furnace", "Dry Air", "Moist Air", "Auto Changeover", "Heat Econ", "Cool Econ", "Away", "Unknown", "Full Power", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Manufacturer Specific" };
 
+
+			ThermostatMode::ThermostatMode(uint32 const _homeId, uint8 const _nodeId) :
+							CommandClass(_homeId, _nodeId),
+							m_currentMode(0)
+			{
+				SetStaticRequest(StaticRequest_Values);
+			}
+
 //-----------------------------------------------------------------------------
 // <ThermostatMode::ReadXML>
 // Read the supported modes
@@ -136,8 +145,6 @@ namespace OpenZWave
 					if (!supportedModes.empty())
 					{
 						m_supportedModes = supportedModes;
-						ClearStaticRequest(StaticRequest_Values);
-						CreateVars(1);
 					}
 				}
 			}
@@ -185,13 +192,13 @@ namespace OpenZWave
 				if ((_requestFlags & RequestFlag_Static) && HasStaticRequest(StaticRequest_Values))
 				{
 					// request supported mode list
-					requests |= RequestValue(_requestFlags, ThermostatModeCmd_SupportedGet, _instance, _queue);
+					requests |= RequestValue(_requestFlags, 0, _instance, _queue);
 				}
 
 				if (_requestFlags & RequestFlag_Dynamic)
 				{
 					// Request the current mode
-					requests |= RequestValue(_requestFlags, 0, _instance, _queue);
+					requests |= RequestValue(_requestFlags, ValueID_Index_ThermostatMode::Mode, _instance, _queue);
 				}
 
 				return requests;
@@ -203,7 +210,7 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			bool ThermostatMode::RequestValue(uint32 const _requestFlags, uint16 const _getTypeEnum, uint8 const _instance, Driver::MsgQueue const _queue)
 			{
-				if (_getTypeEnum == ThermostatModeCmd_SupportedGet)
+				if ((_requestFlags & RequestFlag_Static) && HasStaticRequest(StaticRequest_Values))
 				{
 					// Request the supported modes
 					Msg* msg = new Msg("ThermostatModeCmd_SupportedGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
@@ -215,9 +222,8 @@ namespace OpenZWave
 					msg->Append(GetDriver()->GetTransmitOptions());
 					GetDriver()->SendMsg(msg, _queue);
 					return true;
-				}
-
-				if (_getTypeEnum == 0)		// get current mode
+				} 
+				else if (_getTypeEnum == ValueID_Index_ThermostatMode::Mode)		// get current mode
 				{
 					if (m_com.GetFlagBool(COMPAT_FLAG_GETSUPPORTED))
 					{
@@ -271,17 +277,18 @@ namespace OpenZWave
 							if (valueList->GetItem())
 								Log::Write(LogLevel_Info, GetNodeId(), "Received thermostat mode: %s", valueList->GetItem()->m_label.c_str());
 							else
-								Log::Write(LogLevel_Info, GetNodeId(), "Received thermostat mode: %d", mode);
+								Log::Write(LogLevel_Warning, GetNodeId(), "Received thermostat mode: %d (No Item)", mode);
 							valueList->Release();
 						}
 						else
 						{
-							Log::Write(LogLevel_Info, GetNodeId(), "Received thermostat mode: index %d", mode);
+							Log::Write(LogLevel_Info, GetNodeId(), "Received thermostat mode: index %d (No ValueID)", mode);
 						}
+						m_currentMode = mode;
 					}
 					else
 					{
-						Log::Write(LogLevel_Info, GetNodeId(), "Received unknown thermostat mode: index %d", mode);
+						Log::Write(LogLevel_Warning, GetNodeId(), "Received unknown thermostat mode: index %d", mode);
 					}
 					return true;
 				}
@@ -317,37 +324,89 @@ namespace OpenZWave
 							}
 						}
 					}
-					ClearStaticRequest(StaticRequest_Values);
-					CreateVars(_instance);
+
+					/* at this stage, we don't know the Actual Mode of the Fan, so set it to the lowest 
+					 * value... If not, set to 0, which possibly could be invalid... 
+					 */
+					if (!m_supportedModes.empty()) {
+						m_currentMode = m_supportedModes[0].m_value;
+					} else {
+						m_currentMode = 0;
+					}
+					if (Node* node = GetNodeUnsafe())
+					{
+						node->CreateValueList(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_ThermostatMode::Mode, "Mode", "", false, false, 1, m_supportedModes, m_currentMode, 0);
+					}
 					return true;
 				}
 
 				return false;
 			}
 
+			void ThermostatMode::SupervisionSessionSuccess(uint8 _session_id, uint32 const _instance)
+			{
+				if (Node* node = GetNodeUnsafe())
+				{
+					uint32 index = node->GetSupervisionIndex(_session_id);
+
+					if (index != Internal::CC::Supervision::StaticNoIndex())
+					{
+						// We have received the confirmation for the thermostat mode from the Z-Wave device
+						if (Internal::VC::ValueList* valueList = static_cast<Internal::VC::ValueList*>(GetValue(_instance, ValueID_Index_ThermostatMode::Mode)))
+						{
+							valueList->ConfirmNewValue();
+							if (valueList->GetItem())
+							{
+								Log::Write(LogLevel_Info, GetNodeId(), "Confirmed thermostat mode: %s", valueList->GetItem()->m_label.c_str());
+								m_currentMode = valueList->GetItem()->m_value;
+							}
+							else
+								Log::Write(LogLevel_Warning, GetNodeId(), "Confirmed thermostat mode (No Item)");
+							valueList->Release();
+						}
+					}
+					else
+					{
+						Log::Write(LogLevel_Info, GetNodeId(), "Ignore unknown supervision session %d", _session_id);
+					}
+				}
+			}
+
 //-----------------------------------------------------------------------------
 // <ThermostatMode::SetValue>
 // Set the device's thermostat mode
 //-----------------------------------------------------------------------------
 			bool ThermostatMode::SetValue(Internal::VC::Value const& _value)
 			{
-				if (ValueID::ValueType_List == _value.GetID().GetType())
+
+				if (Node* node = GetNodeUnsafe())
 				{
-					Internal::VC::ValueList const* value = static_cast<Internal::VC::ValueList const*>(&_value);
-					if (value->GetItem() == NULL)
-						return false;
-					uint8 state = (uint8) value->GetItem()->m_value;
+					if (ValueID::ValueType_List == _value.GetID().GetType())
+					{
+						Internal::VC::ValueList const* value = static_cast<Internal::VC::ValueList const*>(&_value);
+						if (value->GetItem() == NULL)
+							return false;
+						uint8 state = (uint8)value->GetItem()->m_value;
+
+						uint8 index = value->GetID().GetIndex() & 0xFF;
+						uint8 supervision_session_id = node->CreateSupervisionSession(StaticGetCommandClassId(), index);
+						if (supervision_session_id == Internal::CC::Supervision::StaticNoSessionId())
+						{
+							Log::Write(LogLevel_Debug, GetNodeId(), "Supervision not supported, fall back to setpoint set/get");
+						}
 
-					Msg* msg = new Msg("ThermostatModeCmd_Set", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
-					msg->SetInstance(this, _value.GetID().GetInstance());
-					msg->Append(GetNodeId());
-					msg->Append(3);
-					msg->Append(GetCommandClassId());
-					msg->Append(ThermostatModeCmd_Set);
-					msg->Append(state);
-					msg->Append(GetDriver()->GetTransmitOptions());
-					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
-					return true;
+						Msg* msg = new Msg("ThermostatModeCmd_Set", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
+						msg->SetInstance(this, _value.GetID().GetInstance());
+						msg->SetSupervision(supervision_session_id);
+						msg->Append(GetNodeId());
+						msg->Append(3);
+						msg->Append(GetCommandClassId());
+						msg->Append(ThermostatModeCmd_Set);
+						msg->Append(state);
+						msg->Append(GetDriver()->GetTransmitOptions());
+						GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+						return true;
+					}
 				}
 
 				return false;
@@ -359,47 +418,6 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			void ThermostatMode::CreateVars(uint8 const _instance)
 			{
-				// There are number of ways to get here...each needs to be handled differently:
-				//	QueryStage_ProtocolInfo:
-				//		Don't know what's supported yet, so do nothing
-				//	QueryStage_NodeInfo:
-				//		Need to create the instance so the values can be read from the xml file
-				//	QueryStage_Static:
-				//		Need to create the instance (processing SupportedReport) if it doesn't exist
-				//		If it does, populate with the appropriate values
-				//  other
-				//		Only create the instance if there are supportedModes
-
-				if (Node* node = GetNodeUnsafe())
-				{
-					Node::QueryStage qs = node->GetCurrentQueryStage();
-					if (qs == Node::QueryStage_ProtocolInfo || m_supportedModes.empty())
-					{
-						// this call is from QueryStage_ProtocolInfo,
-						// so just return (don't know which modes are supported yet)
-						return;
-					}
-
-					// identify the lowest supported mode as the "default" (or default to 0 if no supported modes identified yet)
-					int32 defaultValue = 0;
-					if (!m_supportedModes.empty())
-					{
-						defaultValue = m_supportedModes[0].m_value;
-					}
-
-					if (qs == Node::QueryStage_Static)
-					{
-						// This instance might already have been created (in NodeInfo, in preparation for loading the values
-						// from zwcfg xml file).  So, if the instance already exists, we delete its value and add a new one below
-						if (Internal::VC::ValueList* valueList = static_cast<Internal::VC::ValueList*>(GetValue(_instance, 0)))
-						{
-							node->RemoveValueList(valueList);
-							valueList->Release();
-						}
-					}
-
-					node->CreateValueList(ValueID::ValueGenre_User, GetCommandClassId(), _instance, ValueID_Index_ThermostatMode::Mode, "Mode", "", false, false, 1, m_supportedModes, defaultValue, 0);
-				}
 			}
 		} // namespace CC
 	} // namespace Internal
diff --git a/cpp/src/command_classes/ThermostatMode.h b/cpp/src/command_classes/ThermostatMode.h
index 2401b2dd19..efa6fae742 100644
--- a/cpp/src/command_classes/ThermostatMode.h
+++ b/cpp/src/command_classes/ThermostatMode.h
@@ -82,18 +82,16 @@ namespace OpenZWave
 					{
 						return 3;
 					}
+					virtual void SupervisionSessionSuccess(uint8 _session_id, uint32 const _instance);
 
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
 				private:
-					ThermostatMode(uint32 const _homeId, uint8 const _nodeId) :
-							CommandClass(_homeId, _nodeId)
-					{
-						SetStaticRequest(StaticRequest_Values);
-					}
+					ThermostatMode(uint32 const _homeId, uint8 const _nodeId);
 
 					vector<Internal::VC::ValueList::Item> m_supportedModes;
+					uint32 m_currentMode; 
 			};
 		} // namespace CC
 	} // namespace Internal
diff --git a/cpp/src/command_classes/ThermostatSetpoint.cpp b/cpp/src/command_classes/ThermostatSetpoint.cpp
index 3f9887fc71..e8c3ece796 100644
--- a/cpp/src/command_classes/ThermostatSetpoint.cpp
+++ b/cpp/src/command_classes/ThermostatSetpoint.cpp
@@ -26,6 +26,7 @@
 //-----------------------------------------------------------------------------
 
 #include "command_classes/CommandClasses.h"
+#include "command_classes/Supervision.h"
 #include "command_classes/ThermostatSetpoint.h"
 #include "Defs.h"
 #include "Msg.h"
@@ -142,7 +143,7 @@ namespace OpenZWave
 // <ThermostatSetpoint::HandleMsg>
 // Handle a message from the Z-Wave network
 //-----------------------------------------------------------------------------
-			bool ThermostatSetpoint::HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance	// = 1
+			bool ThermostatSetpoint::HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance // = 1
 					)
 			{
 				if (ThermostatSetpointCmd_Report == (ThermostatSetpointCmd) _data[0])
@@ -260,28 +261,64 @@ namespace OpenZWave
 				return false;
 			}
 
+			void ThermostatSetpoint::SupervisionSessionSuccess(uint8 _session_id, uint32 const _instance)
+			{
+				if (Node* node = GetNodeUnsafe())
+				{			
+					uint32 index = node->GetSupervisionIndex(_session_id);
+
+					if (index != Internal::CC::Supervision::StaticNoIndex())
+					{
+						if (Internal::VC::ValueDecimal* value = static_cast<Internal::VC::ValueDecimal*>(GetValue(_instance, index)))
+						{
+							value->ConfirmNewValue();
+
+							Log::Write(LogLevel_Info, GetNodeId(), "Confirmed thermostat setpoint index %d to %s%s",
+								index, value->GetValue().c_str(), value->GetUnits().c_str());
+						}
+					}
+					else
+					{
+						Log::Write(LogLevel_Info, GetNodeId(), "Ignore unknown supervision session %d", _session_id);
+					}
+				}
+			}
+
 //-----------------------------------------------------------------------------
 // <ThermostatSetpoint::SetValue>
 // Set a thermostat setpoint temperature
 //-----------------------------------------------------------------------------
 			bool ThermostatSetpoint::SetValue(Internal::VC::Value const& _value)
 			{
-				if (ValueID::ValueType_Decimal == _value.GetID().GetType())
+				if (Node* node = GetNodeUnsafe())
 				{
-					Internal::VC::ValueDecimal const* value = static_cast<Internal::VC::ValueDecimal const*>(&_value);
-					uint8 scale = strcmp("C", value->GetUnits().c_str()) ? 1 : 0;
+					if (ValueID::ValueType_Decimal == _value.GetID().GetType())
+					{
+						Internal::VC::ValueDecimal const* value = static_cast<Internal::VC::ValueDecimal const*>(&_value);
+						
+						uint8 index = value->GetID().GetIndex() & 0xFF;
+						uint8 supervision_session_id = node->CreateSupervisionSession(StaticGetCommandClassId(), index);
+						if (supervision_session_id == Internal::CC::Supervision::StaticNoSessionId())
+						{
+							Log::Write(LogLevel_Debug, GetNodeId(), "Supervision not supported, fall back to setpoint set/get");
+						}
 
-					Msg* msg = new Msg("ThermostatSetpointCmd_Set", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
-					msg->SetInstance(this, _value.GetID().GetInstance());
-					msg->Append(GetNodeId());
-					msg->Append(4 + GetAppendValueSize(value->GetValue()));
-					msg->Append(GetCommandClassId());
-					msg->Append(ThermostatSetpointCmd_Set);
-					msg->Append((uint8_t) (value->GetID().GetIndex() & 0xFF));
-					AppendValue(msg, value->GetValue(), scale);
-					msg->Append(GetDriver()->GetTransmitOptions());
-					GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
-					return true;
+						uint8 scale = strcmp("C", value->GetUnits().c_str()) ? 1 : 0;
+
+						Msg* msg = new Msg("ThermostatSetpointCmd_Set", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
+						msg->SetInstance(this, _value.GetID().GetInstance());
+						msg->SetSupervision(supervision_session_id);
+						msg->Append(GetNodeId());
+						msg->Append(4 + GetAppendValueSize(value->GetValue()));
+						msg->Append(GetCommandClassId());
+						msg->Append(ThermostatSetpointCmd_Set);
+						msg->Append(index);
+						AppendValue(msg, value->GetValue(), scale);
+
+						msg->Append(GetDriver()->GetTransmitOptions());
+						GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+						return true;
+					}
 				}
 
 				return false;
@@ -291,12 +328,16 @@ namespace OpenZWave
 // <ThermostatSetpoint::CreateVars>
 // Create the values managed by this command class
 //-----------------------------------------------------------------------------
-			void ThermostatSetpoint::CreateVars(uint8 const _instance, uint8 const _index)
+			void ThermostatSetpoint::CreateVars(uint8 const _instance)
 			{
+#if 0
+/* I don't think this was ever orignally called when we had a index param, so lets not create this strange SetPoint */
+#issue #1981
 				if (Node* node = GetNodeUnsafe())
 				{
 					node->CreateValueDecimal(ValueID::ValueGenre_User, GetCommandClassId(), _instance, _index, "Setpoint", "C", false, false, "0.0", 0);
 				}
+#endif
 			}
 		} // namespace CC
 	} // namespace Internal
diff --git a/cpp/src/command_classes/ThermostatSetpoint.h b/cpp/src/command_classes/ThermostatSetpoint.h
index 6b7db36417..adaebc397d 100644
--- a/cpp/src/command_classes/ThermostatSetpoint.h
+++ b/cpp/src/command_classes/ThermostatSetpoint.h
@@ -31,6 +31,7 @@
 #include <vector>
 #include <string>
 #include "command_classes/CommandClass.h"
+#include "value_classes/ValueDecimal.h"
 
 namespace OpenZWave
 {
@@ -79,9 +80,10 @@ namespace OpenZWave
 					{
 						return 3;
 					}
+					virtual void SupervisionSessionSuccess(uint8 _session_id, uint32 const _instance);
 
 				protected:
-					virtual void CreateVars(uint8 const _instance, uint8 const _index) override;
+					virtual void CreateVars(uint8 const _instance) override;
 
 				private:
 					ThermostatSetpoint(uint32 const _homeId, uint8 const _nodeId);
diff --git a/cpp/src/command_classes/Version.cpp b/cpp/src/command_classes/Version.cpp
index 331a3ccc36..3aaef112f4 100644
--- a/cpp/src/command_classes/Version.cpp
+++ b/cpp/src/command_classes/Version.cpp
@@ -27,6 +27,7 @@
 
 #include "command_classes/CommandClasses.h"
 #include "command_classes/Version.h"
+#include "command_classes/Basic.h"
 #include "Defs.h"
 #include "Msg.h"
 #include "Driver.h"
@@ -155,17 +156,20 @@ namespace OpenZWave
 							Log::Write(LogLevel_Info, GetNodeId(), "Received CommandClass Version report from node %d: CommandClass=%s, Version=%d", GetNodeId(), pCommandClass->GetCommandClassName().c_str(), _data[2]);
 							pCommandClass->ClearStaticRequest(StaticRequest_Version);
 							/* some devices advertise CommandClasses, but return version as 0. In General this means
-							 * that the device doesn't actually support the CommandClass. So lets Remove it
+							 * that the device doesn't actually support the CommandClass. So lets Remove it.
 							 */
 
 							if (_data[2] > 0)
 							{
 								pCommandClass->SetVersion(_data[2]);
 							}
+							/* More often than not our Basic CC is needed. */
+							else if (_data[1] == Basic::StaticGetCommandClassId())
+								pCommandClass->SetVersion(pCommandClass->GetMaxVersion());
 							else
 							{
 								Log::Write(LogLevel_Warning, GetNodeId(), "CommandClass Version is 0, Removing CommandClass %s", pCommandClass->GetCommandClassName().c_str());
-								GetNodeUnsafe()->RemoveCommandClass(_data[2]);
+								GetNodeUnsafe()->RemoveCommandClass(_data[1]);
 							}
 						}
 
@@ -184,7 +188,8 @@ namespace OpenZWave
 			{
 				if (m_com.GetFlagBool(COMPAT_FLAG_VERSION_GETCLASSVERSION))
 				{
-					if (_commandClass->HasStaticRequest(StaticRequest_Version))
+					/* if its not a "Controlling" command Class */
+					if ((!_commandClass->IsAfterMark()) && (_commandClass->HasStaticRequest(StaticRequest_Version)))
 					{
 						Msg* msg = new Msg("VersionCmd_CommandClassGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
 						msg->Append(GetNodeId());
@@ -193,7 +198,7 @@ namespace OpenZWave
 						msg->Append(VersionCmd_CommandClassGet);
 						msg->Append(_commandClass->GetCommandClassId());
 						msg->Append(GetDriver()->GetTransmitOptions());
-						GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
+						GetDriver()->SendMsg(msg, Driver::MsgQueue_Query);
 						return true;
 					}
 				}
diff --git a/cpp/src/command_classes/Version.h b/cpp/src/command_classes/Version.h
index 52d8b8036d..c603fc7180 100644
--- a/cpp/src/command_classes/Version.h
+++ b/cpp/src/command_classes/Version.h
@@ -74,7 +74,10 @@ namespace OpenZWave
 						return StaticGetCommandClassName();
 					}
 					virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
-
+					
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
diff --git a/cpp/src/command_classes/WakeUp.cpp b/cpp/src/command_classes/WakeUp.cpp
index ace54201c4..74af783194 100644
--- a/cpp/src/command_classes/WakeUp.cpp
+++ b/cpp/src/command_classes/WakeUp.cpp
@@ -64,11 +64,11 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			WakeUp::WakeUp(uint32 const _homeId, uint8 const _nodeId) :
-					CommandClass(_homeId, _nodeId), m_mutex(new Internal::Platform::Mutex()), m_awake(true), m_pollRequired(false)
+					CommandClass(_homeId, _nodeId), m_mutex(new Internal::Platform::Mutex()), m_awake(true), m_pollRequired(false), m_interval(0)
 			{
 				Timer::SetDriver(GetDriver());
 				Options::Get()->GetOptionAsBool("AssumeAwake", &m_awake);
-				m_com.EnableFlag(COMPAT_FLAG_WAKEUP_DELAYNMI, 0);
+				m_com.EnableFlag(COMPAT_FLAG_WAKEUP_DELAYNMI, 1000);
 				SetStaticRequest(StaticRequest_Values);
 			}
 
@@ -106,7 +106,7 @@ namespace OpenZWave
 				// that the controller will receive the wake-up notifications from
 				// the device.  Once this is done, we can request the rest of the node
 				// state.
-				RequestState(CommandClass::RequestFlag_Session, 1, Driver::MsgQueue_WakeUp);
+				RequestValue(0, ValueID_Index_WakeUp::Interval, 1, Driver::MsgQueue_WakeUp);
 			}
 
 //-----------------------------------------------------------------------------
@@ -120,18 +120,12 @@ namespace OpenZWave
 				{
 					if (GetVersion() > 1)
 					{
-						requests |= RequestValue(_requestFlags, WakeUpCmd_IntervalCapabilitiesGet, _instance, _queue);
+						requests |= RequestValue(_requestFlags, ValueID_Index_WakeUp::Min_Interval, _instance, _queue);
 					}
+					if (m_interval == 0)
+						requests |= RequestValue(_requestFlags, ValueID_Index_WakeUp::Interval, _instance, _queue);
+					ClearStaticRequest(RequestFlag_Static);
 				}
-				if (_requestFlags & RequestFlag_Session)
-				{
-					Node* node = GetNodeUnsafe();
-					if (node != NULL && !node->IsController())
-					{
-						requests |= RequestValue(_requestFlags, 0, _instance, _queue);
-					}
-				}
-
 				return requests;
 			}
 
@@ -147,7 +141,9 @@ namespace OpenZWave
 					return false;
 				}
 
-				if (_getTypeEnum == WakeUpCmd_IntervalCapabilitiesGet)
+				if (_getTypeEnum == ValueID_Index_WakeUp::Min_Interval 
+					|| _getTypeEnum == ValueID_Index_WakeUp::Max_Interval 
+					|| _getTypeEnum == ValueID_Index_WakeUp::Interval_Step)
 				{
 					Msg* msg = new Msg("WakeUpCmd_IntervalCapabilityGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
 					msg->Append(GetNodeId());
@@ -158,7 +154,7 @@ namespace OpenZWave
 					GetDriver()->SendMsg(msg, _queue);
 				}
 
-				if (_getTypeEnum == 0)
+				if (_getTypeEnum == ValueID_Index_WakeUp::Interval)
 				{
 					// We won't get a response until the device next wakes up
 					Msg* msg = new Msg("WakeUpCmd_IntervalGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
@@ -183,37 +179,52 @@ namespace OpenZWave
 			{
 				if (WakeUpCmd_IntervalReport == (WakeUpCmd) _data[0])
 				{
-					if (Internal::VC::ValueInt* value = static_cast<Internal::VC::ValueInt*>(GetValue(_instance, ValueID_Index_WakeUp::Interval)))
+					// some interval reports received are validly formatted (proper checksum, etc.) but only have length
+					// of 3 (0x84 (classid), 0x06 (IntervalReport), 0x00).  Not sure what this means
+					if (_length < 6)
 					{
-						// some interval reports received are validly formatted (proper checksum, etc.) but only have length
-						// of 3 (0x84 (classid), 0x06 (IntervalReport), 0x00).  Not sure what this means
-						if (_length < 6)
-						{
-							Log::Write(LogLevel_Warning, "");
-							Log::Write(LogLevel_Warning, GetNodeId(), "Unusual response: WakeUpCmd_IntervalReport with len = %d.  Ignored.", _length);
-							value->Release();
-							return false;
-						}
+						Log::Write(LogLevel_Warning, "");
+						Log::Write(LogLevel_Warning, GetNodeId(), "Unusual response: WakeUpCmd_IntervalReport with len = %d.  Ignored.", _length);
+						return false;
+					}
 
-						uint32 interval = ((uint32) _data[1]) << 16;
-						interval |= (((uint32) _data[2]) << 8);
-						interval |= (uint32) _data[3];
+					m_interval = ((uint32) _data[1]) << 16;
+					m_interval |= (((uint32) _data[2]) << 8);
+					m_interval |= (uint32) _data[3];
 
-						uint8 targetNodeId = _data[4];
+					uint8 targetNodeId = _data[4];
 
-						Log::Write(LogLevel_Info, GetNodeId(), "Received Wakeup Interval report from node %d: Interval=%d, Target Node=%d", GetNodeId(), interval, targetNodeId);
+					Log::Write(LogLevel_Info, GetNodeId(), "Received Wakeup Interval report from node %d: Interval=%d, Target Node=%d", GetNodeId(), m_interval, targetNodeId);
 
-						value->OnValueRefreshed((int32) interval);
+					if (Internal::VC::ValueInt* value = static_cast<Internal::VC::ValueInt*>(GetValue(_instance, ValueID_Index_WakeUp::Interval)))
+					{
+						value->OnValueRefreshed((int32) m_interval);
 
+						Node *node = GetNodeUnsafe();
+						if ((GetDriver()->GetControllerNodeId() != targetNodeId) && node)
+						{
+							SetValue(*value);
+						}
+						value->Release();
+					} else { 
 						// Ensure that the target node for wake-up notifications is the controller
 						// but only if node is not a listening device. Hybrid devices that can be
 						// powered by other then batteries shouldn't do this.
 						Node *node = GetNodeUnsafe();
-						if (GetDriver()->GetControllerNodeId() != targetNodeId && ((node) && (!node->IsListeningDevice())))
+						if ((GetDriver()->GetControllerNodeId() != targetNodeId) && node)
 						{
-							SetValue(*value);
+							Msg* msg = new Msg("WakeUpCmd_IntervalSet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
+							msg->Append(GetNodeId());
+							msg->Append(6);	// length of command bytes following
+							msg->Append(GetCommandClassId());
+							msg->Append(WakeUpCmd_IntervalSet);
+							msg->Append((uint8) ((m_interval >> 16) & 0xff));
+							msg->Append((uint8) ((m_interval >> 8) & 0xff));
+							msg->Append((uint8) (m_interval & 0xff));
+							msg->Append(GetDriver()->GetControllerNodeId());
+							msg->Append(GetDriver()->GetTransmitOptions());
+							GetDriver()->SendMsg(msg, Driver::MsgQueue_WakeUp);
 						}
-						value->Release();
 					}
 					return true;
 				}
@@ -264,13 +275,14 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			bool WakeUp::SetValue(Internal::VC::Value const& _value)
 			{
-				if (ValueID::ValueType_Int == _value.GetID().GetType())
+				if (ValueID_Index_WakeUp::Interval == _value.GetID().GetIndex())
 				{
 					Internal::VC::ValueInt const* value = static_cast<Internal::VC::ValueInt const*>(&_value);
 
 					Msg* msg = new Msg("WakeUpCmd_IntervalSet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true);
 					msg->Append(GetNodeId());
 
+#if 0
 					if (GetNodeUnsafe()->GetCommandClass(MultiCmd::StaticGetCommandClassId()))
 					{
 						msg->Append(10);
@@ -278,15 +290,15 @@ namespace OpenZWave
 						msg->Append(MultiCmd::MultiCmdCmd_Encap);
 						msg->Append(1);
 					}
-
-					int32 interval = value->GetValue();
+#endif
+					m_interval = value->GetValue();
 
 					msg->Append(6);	// length of command bytes following
 					msg->Append(GetCommandClassId());
 					msg->Append(WakeUpCmd_IntervalSet);
-					msg->Append((uint8) ((interval >> 16) & 0xff));
-					msg->Append((uint8) ((interval >> 8) & 0xff));
-					msg->Append((uint8) (interval & 0xff));
+					msg->Append((uint8) ((m_interval >> 16) & 0xff));
+					msg->Append((uint8) ((m_interval >> 8) & 0xff));
+					msg->Append((uint8) (m_interval & 0xff));
 					msg->Append(GetDriver()->GetControllerNodeId());
 					msg->Append(GetDriver()->GetTransmitOptions());
 					GetDriver()->SendMsg(msg, Driver::MsgQueue_WakeUp);
@@ -296,15 +308,6 @@ namespace OpenZWave
 				return false;
 			}
 
-//-----------------------------------------------------------------------------
-// <WakeUp::SetVersion>
-// Set the command class version
-//-----------------------------------------------------------------------------
-			void WakeUp::SetVersion(uint8 const _version)
-			{
-				CommandClass::SetVersion(_version);
-				CreateVars(1);
-			}
 
 //-----------------------------------------------------------------------------
 // <WakeUp::SetAwake>
@@ -379,7 +382,7 @@ namespace OpenZWave
 						{
 							delete item.m_cci;
 						}
-						m_pendingQueue.erase(it++);
+						it = m_pendingQueue.erase(it);
 					}
 					else
 					{
@@ -470,6 +473,7 @@ namespace OpenZWave
 				msg->Append(WakeUpCmd_NoMoreInformation);
 				msg->Append(GetDriver()->GetTransmitOptions());
 				GetDriver()->SendMsg(msg, Driver::MsgQueue_WakeUp);
+				GetDriver()->WriteCache();
 			}
 
 //-----------------------------------------------------------------------------
@@ -490,6 +494,11 @@ namespace OpenZWave
 							node->CreateValueInt(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_WakeUp::Interval_Step, "Wake-up Interval Step", "Seconds", true, false, 0, 0);
 						}
 						node->CreateValueInt(ValueID::ValueGenre_System, GetCommandClassId(), _instance, ValueID_Index_WakeUp::Interval, "Wake-up Interval", "Seconds", false, false, 3600, 0);
+						if (Internal::VC::ValueInt* value = static_cast<Internal::VC::ValueInt*>(GetValue(_instance, ValueID_Index_WakeUp::Interval)))
+						{
+							value->OnValueRefreshed((int32) m_interval);
+							value->Release();
+						}
 					}
 				}
 			}
diff --git a/cpp/src/command_classes/WakeUp.h b/cpp/src/command_classes/WakeUp.h
index 534ef0ab55..fae8bd9d71 100644
--- a/cpp/src/command_classes/WakeUp.h
+++ b/cpp/src/command_classes/WakeUp.h
@@ -98,13 +98,15 @@ namespace OpenZWave
 					}
 					virtual bool HandleMsg(uint8 const* _data, uint32 const _length, uint32 const _instance = 1) override;
 					virtual bool SetValue(Internal::VC::Value const& _value) override;
-					virtual void SetVersion(uint8 const _version) override;
 
 					virtual uint8 GetMaxVersion() override
 					{
 						return 2;
 					}
 
+					bool supportsMultiInstance() override {
+						return false;
+					}
 				protected:
 					virtual void CreateVars(uint8 const _instance) override;
 
@@ -115,6 +117,8 @@ namespace OpenZWave
 					list<Driver::MsgQueueItem> m_pendingQueue;		// Messages waiting to be sent when the device wakes up
 					bool m_awake;
 					bool m_pollRequired;
+					uint32 m_interval;
+					
 			};
 		} // namespace CC
 	} // namespace Internal
diff --git a/cpp/src/command_classes/ZWavePlusInfo.cpp b/cpp/src/command_classes/ZWavePlusInfo.cpp
index feda29fe1c..1c7a02481b 100644
--- a/cpp/src/command_classes/ZWavePlusInfo.cpp
+++ b/cpp/src/command_classes/ZWavePlusInfo.cpp
@@ -115,6 +115,8 @@ namespace OpenZWave
 					uint16 installerIcon = (_data[4] << 8) | _data[5];
 					uint16 deviceType = (_data[6] << 8) | _data[7];
 
+					Log::Write(LogLevel_Info, GetNodeId(), "ZW+ Info - Version %d, Role %d, NodeType %d, InstallerIcon %d, deviceType %d", version, role, nodeType, installerIcon, deviceType);
+
 					/* Only set the role, NodeType and DeviceType on Instance 1 Reports. The other instances
 					 * Just have unique Icons for each endpoint */
 					if (_instance == 1)
diff --git a/cpp/src/platform/HttpClient.cpp b/cpp/src/platform/HttpClient.cpp
index 2fc3fff698..db03be7f8b 100644
--- a/cpp/src/platform/HttpClient.cpp
+++ b/cpp/src/platform/HttpClient.cpp
@@ -1368,7 +1368,7 @@ namespace OpenZWave
 					{
 						traceprint("Delete socket\n");
 						delete sock;
-						_store.erase(it++);
+						it = _store.erase(it);
 					}
 					else
 						++it;
diff --git a/cpp/src/platform/unix/EventImpl.cpp b/cpp/src/platform/unix/EventImpl.cpp
index 86952ca874..323d873e6a 100644
--- a/cpp/src/platform/unix/EventImpl.cpp
+++ b/cpp/src/platform/unix/EventImpl.cpp
@@ -30,7 +30,9 @@
 
 #include <stdio.h>
 #include <sys/time.h>
-
+#ifdef __ANDROID__
+#include "android.h"
+#endif
 namespace OpenZWave
 {
 	namespace Internal
diff --git a/cpp/src/platform/unix/SerialControllerImpl.cpp b/cpp/src/platform/unix/SerialControllerImpl.cpp
index 82ce2e624c..53cbb75607 100644
--- a/cpp/src/platform/unix/SerialControllerImpl.cpp
+++ b/cpp/src/platform/unix/SerialControllerImpl.cpp
@@ -34,6 +34,10 @@
 #include "SerialControllerImpl.h"
 #include "platform/Log.h"
 
+#ifdef __ANDROID__
+#include "android.h"
+#endif
+
 #ifdef __sun
 // SunOS doesn't have the cfsetspeed convenience function.
 int
diff --git a/cpp/src/platform/unix/ThreadImpl.cpp b/cpp/src/platform/unix/ThreadImpl.cpp
index 82b44beb72..7533db4211 100644
--- a/cpp/src/platform/unix/ThreadImpl.cpp
+++ b/cpp/src/platform/unix/ThreadImpl.cpp
@@ -31,6 +31,10 @@
 #include "platform/Thread.h"
 #include "ThreadImpl.h"
 
+#ifdef __ANDROID__
+#include "android.h"
+#endif
+
 #ifdef DARWIN
 #define pthread_yield pthread_yield_np
 #endif
diff --git a/cpp/src/platform/unix/android.h b/cpp/src/platform/unix/android.h
new file mode 100644
index 0000000000..fede44c6d0
--- /dev/null
+++ b/cpp/src/platform/unix/android.h
@@ -0,0 +1,7 @@
+#ifndef _android_H
+#define _android_H
+
+#define pthread_setcancelstate(state, oldstate) ((void)0); *oldstate = 0
+#define pthread_cancel(thread) ((void)0)
+
+#endif
\ No newline at end of file
diff --git a/cpp/src/value_classes/Value.cpp b/cpp/src/value_classes/Value.cpp
index 6182c3274f..cc5933a694 100644
--- a/cpp/src/value_classes/Value.cpp
+++ b/cpp/src/value_classes/Value.cpp
@@ -36,6 +36,7 @@
 #include "value_classes/Value.h"
 #include "platform/Log.h"
 #include "command_classes/CommandClass.h"
+#include "command_classes/Supervision.h"
 #include <ctime>
 #include "Options.h"
 
@@ -57,9 +58,13 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			Value::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) :
-					m_min(0), m_max(0), m_refreshTime(0), m_verifyChanges(false), m_id(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, _type), m_units(_units), m_readOnly(_readOnly), m_writeOnly(_writeOnly), m_isSet(_isSet), m_affectsLength(0), m_affects(), m_affectsAll(false), m_checkChange(false), m_pollIntensity(_pollIntensity)
+					m_min(0), m_max(0), m_refreshTime(0), m_verifyChanges(false), m_refreshAfterSet(true), m_id(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, _type), m_targetValueSet(false), m_duration(0), m_units(_units), m_readOnly(_readOnly), m_writeOnly(_writeOnly), m_isSet(_isSet), m_affectsLength(0), m_affects(), m_affectsAll(false), m_checkChange(false), m_pollIntensity(_pollIntensity)
 			{
 				SetLabel(_label);
+				if (Driver* driver = Manager::Get()->GetDriver(m_id.GetHomeId()))
+				{
+					Timer::SetDriver(driver);
+				}
 			}
 
 //-----------------------------------------------------------------------------
@@ -67,7 +72,7 @@ namespace OpenZWave
 // Constructor (from XML)
 //-----------------------------------------------------------------------------
 			Value::Value() :
-					m_min(0), m_max(0), m_refreshTime(0), m_verifyChanges(false), m_readOnly(false), m_writeOnly(false), m_isSet(false), m_affectsLength(0), m_affects(), m_affectsAll(false), m_checkChange(false), m_pollIntensity(0)
+					m_min(0), m_max(0), m_refreshTime(0), m_verifyChanges(false), m_refreshAfterSet(true), m_targetValueSet(false), m_duration(0), m_readOnly(false), m_writeOnly(false), m_isSet(false), m_affectsLength(0), m_affects(), m_affectsAll(false), m_checkChange(false), m_pollIntensity(0)
 			{
 			}
 
@@ -103,12 +108,21 @@ namespace OpenZWave
 				uint16 index = 0;
 				if (TIXML_SUCCESS == _valueElement->QueryIntAttribute("index", &intVal))
 				{
-					/* index is only 10 bytes in the ValueID class */
-					index = (uint16) (intVal & 0x3FF);
+					/* index is only 16 bytes in the ValueID class */
+					index = (uint16) (intVal & 0xFFFF);
 				}
 
 				m_id = ValueID(_homeId, _nodeId, genre, _commandClassId, instance, index, type);
 
+				/* For Values Loaded from a XML File - We Need to load the Timer Driver here, as the default
+				 * constructor doens't have a m_id set, hence we can't get the HomeID
+				 */
+
+				if (Driver* driver = Manager::Get()->GetDriver(m_id.GetHomeId()))
+				{
+						Timer::SetDriver(driver);
+				}
+
 				char const* label = _valueElement->Attribute("label");
 				if (label)
 				{
@@ -229,7 +243,7 @@ namespace OpenZWave
 				snprintf(str, sizeof(str), "%d", m_id.GetInstance());
 				_valueElement->SetAttribute("instance", str);
 
-				snprintf(str, sizeof(str), "%d", (m_id.GetIndex() & 0x3FF));
+				snprintf(str, sizeof(str), "%d", (m_id.GetIndex() & 0xFFFF));
 				_valueElement->SetAttribute("index", str);
 
 				_valueElement->SetAttribute("label", GetLabel().c_str());
@@ -299,8 +313,14 @@ namespace OpenZWave
 							{
 								if (!IsWriteOnly())
 								{
-									// queue a "RequestValue" message to update the value
-									cc->RequestValue(0, m_id.GetIndex(), m_id.GetInstance(), Driver::MsgQueue_Send);
+									if (m_refreshAfterSet)
+									{
+										if (!node->GetCommandClass(Internal::CC::Supervision::StaticGetCommandClassId()))
+										{
+											// queue a "RequestValue" message to update the value
+											cc->RequestValue( 0, m_id.GetIndex(), m_id.GetInstance(), Driver::MsgQueue_Send );
+										}
+									}
 								}
 								else
 								{
@@ -467,9 +487,16 @@ namespace OpenZWave
 // <Value::VerifyRefreshedValue>
 // Check a refreshed value
 //-----------------------------------------------------------------------------
-			int Value::VerifyRefreshedValue(void* _originalValue, void* _checkValue, void* _newValue, ValueID::ValueType _type, int _originalValueLength, // = 0,
+			int Value::VerifyRefreshedValue(
+					void* _originalValue,
+					void* _checkValue,
+					void* _newValue,
+					void* _targetValue,
+					ValueID::ValueType _type,
+					int _originalValueLength, // = 0,
 					int _checkValueLength, // = 0,
-					int _newValueLength // = 0
+					int _newValueLength, // = 0,
+					int _targetValueLength // = 0,
 					)
 			{
 				// TODO: this is pretty rough code, but it's reused by each value type.  It would be
@@ -492,59 +519,76 @@ namespace OpenZWave
 						case ValueID::ValueType_Button:			// Button is stored as a bool
 						case ValueID::ValueType_Bool:			// bool
 						{
-							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Refreshed Value: old value=%s, new value=%s, type=%s", *((bool*) _originalValue) ? "true" : "false", *((uint8*) _newValue) ? "true" : "false", GetTypeNameFromEnum(_type));
+							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Value Updated: old value=%s, new value=%s, type=%s", *((bool*) _originalValue) ? "true" : "false", *((uint8*) _newValue) ? "true" : "false", GetTypeNameFromEnum(_type));
+							if (m_targetValueSet)
+								Log::Write(LogLevel_Detail, m_id.GetNodeId(), "\tTarget Value is Set to %s", *((bool*) _targetValue) ? "true" : "false" );
 							break;
 						}
 						case ValueID::ValueType_Byte:			// byte
 						{
-							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Refreshed Value: old value=%d, new value=%d, type=%s", *((uint8*) _originalValue), *((uint8*) _newValue), GetTypeNameFromEnum(_type));
+							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Value Updated: old value=%d, new value=%d, type=%s", *((uint8*) _originalValue), *((uint8*) _newValue), GetTypeNameFromEnum(_type));
+							if (m_targetValueSet)
+								Log::Write(LogLevel_Detail, m_id.GetNodeId(), "\tTarget Value is Set to %d", *((uint8*) _targetValue));
 							break;
 						}
 						case ValueID::ValueType_Decimal:		// decimal is stored as a string, so treat it as a string here
 						case ValueID::ValueType_String:			// string
 						{
-							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Refreshed Value: old value=%s, new value=%s, type=%s", ((string*) _originalValue)->c_str(), ((string*) _newValue)->c_str(), GetTypeNameFromEnum(_type));
+							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Value Updated: old value=%s, new value=%s, type=%s", ((string*) _originalValue)->c_str(), ((string*) _newValue)->c_str(), GetTypeNameFromEnum(_type));
+							if (m_targetValueSet)
+								Log::Write(LogLevel_Detail, m_id.GetNodeId(), "\tTarget Value is Set to %d", *((string*) _targetValue)->c_str());
 							break;
 						}
 						case ValueID::ValueType_Short:			// short
 						{
-							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Refreshed Value: old value=%d, new value=%d, type=%s", *((short*) _originalValue), *((short*) _newValue), GetTypeNameFromEnum(_type));
+							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Value Updated: old value=%d, new value=%d, type=%s", *((short*) _originalValue), *((short*) _newValue), GetTypeNameFromEnum(_type));
+							if (m_targetValueSet)
+								Log::Write(LogLevel_Detail, m_id.GetNodeId(), "\tTarget Value is Set to %d", *((short*) _targetValue));
 							break;
 						}
 						case ValueID::ValueType_List:			// List Type is treated as a int32
 						case ValueID::ValueType_Int:			// int32
 						case ValueID::ValueType_BitSet:			// BitSet
 						{
-							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Refreshed Value: old value=%d, new value=%d, type=%s", *((int32*) _originalValue), *((int32*) _newValue), GetTypeNameFromEnum(_type));
+							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Value Updated: old value=%d, new value=%d, type=%s", *((int32*) _originalValue), *((int32*) _newValue), GetTypeNameFromEnum(_type));
+							if (m_targetValueSet)
+								Log::Write(LogLevel_Detail, m_id.GetNodeId(), "\tTarget Value is Set to %d", *((int32*) _targetValue));
 							break;
 						}
 						case ValueID::ValueType_Raw:			// raw
 						{
-							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Refreshed Value: old value=%x, new value=%x, type=%s", _originalValue, _newValue, GetTypeNameFromEnum(_type));
+							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Value Updated: old value=%x, new value=%x, type=%s", _originalValue, _newValue, GetTypeNameFromEnum(_type));
+							if (m_targetValueSet)
+								Log::Write(LogLevel_Detail, m_id.GetNodeId(), "\tTarget Value is Set to %x", _targetValue);
 							break;
 						}
 						case ValueID::ValueType_Schedule:		// Schedule Type
 						{
-							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Refreshed Value: old value=%s, new value=%s, type=%s", _originalValue, _newValue, GetTypeNameFromEnum(_type));
+							Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Value Updated: old value=%s, new value=%s, type=%s", _originalValue, _newValue, GetTypeNameFromEnum(_type));
+							if (m_targetValueSet)
+								Log::Write(LogLevel_Detail, m_id.GetNodeId(), "\tTarget Value is Set to %x", _targetValue);
 							/* we cant support verifyChanges yet... so always unset this */
 							m_verifyChanges = false;
 							break;
 						}
 					}
+
 				}
 				m_refreshTime = time( NULL);	// update value refresh time
 
+				/* if this is a Value that has a Target Value Set, then lets compare the reported value against the Target Value
+				 * and Trigger a Refresh (based on the Duration, if necessary)
+				 */
+				if (m_targetValueSet)
+				{
+					return CheckTargetValue(_newValue, _targetValue, _type, _newValueLength, _targetValueLength);
+				}
+
+
 				// check whether changes in this value should be verified (since some devices will report values that always
 				// change, where confirming changes is difficult or impossible)
 				Log::Write(LogLevel_Detail, m_id.GetNodeId(), "Changes to this value are %sverified", m_verifyChanges ? "" : "not ");
 
-				if (!m_verifyChanges)
-				{
-					// since we're not checking changes in this value, notify ValueChanged (to be on the safe side)
-					Value::OnValueChanged();
-					return 2;				// confirmed change of value
-				}
-
 				// see if the value has changed (result is used whether checking change or not)
 				bool bOriginalEqual = false;
 				switch (_type)
@@ -568,9 +612,9 @@ namespace OpenZWave
 						bOriginalEqual = (*((bool*) _originalValue) == *((bool*) _newValue));
 						break;
 					case ValueID::ValueType_Raw:			// raw
-						bOriginalEqual = (_originalValueLength == _newValueLength);	// first check length of arrays
+						bOriginalEqual = (_originalValueLength == _newValueLength); // first check length of arrays
 						if (bOriginalEqual)
-							bOriginalEqual = (memcmp(_originalValue, _newValue, _newValueLength) == 0);	// if length is the same, then check content
+							bOriginalEqual = (memcmp(_originalValue, _newValue, _newValueLength) == 0); // if length is the same, then check content
 						break;
 					case ValueID::ValueType_Schedule:		// Schedule
 						/* Should not get here */
@@ -580,6 +624,16 @@ namespace OpenZWave
 						break;
 				}
 
+				if (!m_verifyChanges)
+				{
+					if (bOriginalEqual)
+						Value::OnValueRefreshed();
+					else
+						Value::OnValueChanged();
+					return 2;				// confirmed change of value
+				}
+
+
 				// if this is the first refresh of the value, test to see if the value has changed
 				if (!IsCheckingChange())
 				{
@@ -593,7 +647,8 @@ namespace OpenZWave
 					// values are different, so flag this as a verification refresh and queue it
 					Log::Write(LogLevel_Info, m_id.GetNodeId(), "Changed value (possible)--rechecking");
 					SetCheckingChange(true);
-					Manager::Get()->RefreshValue(GetID());
+					TimerThread::TimerCallback callback = bind(&Value::sendValueRefresh, this, 1);
+					TimerSetEvent(250, callback, 1);
 					return 1;				// value has changed (to be confirmed)
 				}
 				else		// IsCheckingChange is true if this is the second read of a potentially changed value
@@ -659,7 +714,9 @@ namespace OpenZWave
 					SetCheckingChange(true);
 
 					// save a temporary copy of value and re-read value from device
-					Manager::Get()->RefreshValue(GetID());
+					//Manager::Get()->RefreshValue(GetID());
+					TimerThread::TimerCallback callback = bind(&Value::sendValueRefresh, this, 1);
+					TimerSetEvent(250, callback, 1);
 					return 1;
 				}
 			}
@@ -681,6 +738,106 @@ namespace OpenZWave
 			{
 				Localization::Get()->SetValueLabel(m_id.GetNodeId(), m_id.GetCommandClassId(), m_id.GetIndex(), -1, _label, lang);
 			}
+
+//-----------------------------------------------------------------------------
+// <Value::CheckTargetValue>
+// Check the reported value against the Target Value
+//-----------------------------------------------------------------------------
+			int Value::CheckTargetValue(void* _newValue, void* _targetValue, ValueID::ValueType _type, int _newValueLength, int _targetValueLength)
+			{
+				// see if the value has changed (result is used whether checking change or not)
+				bool bOriginalEqual = false;
+				switch (_type)
+				{
+					case ValueID::ValueType_Decimal:		// Decimal is stored as a string
+					case ValueID::ValueType_String:			// string
+						bOriginalEqual = (strcmp(((string*) _targetValue)->c_str(), ((string*) _newValue)->c_str()) == 0);
+						break;
+					case ValueID::ValueType_Short:			// short
+						bOriginalEqual = (*((short*) _targetValue) == *((short*) _newValue));
+						break;
+					case ValueID::ValueType_List:			// List Type is treated as a int32
+					case ValueID::ValueType_Int:			// int
+						bOriginalEqual = (*((int32*) _targetValue) == *((int32*) _newValue));
+						break;
+					case ValueID::ValueType_Byte:			// uint8
+						bOriginalEqual = (*((uint8*) _targetValue) == *((uint8*) _newValue));
+						break;
+					case ValueID::ValueType_Button:			// Button is stored as a bool
+					case ValueID::ValueType_Bool:			// bool
+						bOriginalEqual = (*((bool*) _targetValue) == *((bool*) _newValue));
+						break;
+					case ValueID::ValueType_Raw:			// raw
+						bOriginalEqual = (_targetValueLength == _newValueLength);	// first check length of arrays
+						if (bOriginalEqual)
+							bOriginalEqual = (memcmp(_targetValue, _newValue, _newValueLength) == 0);	// if length is the same, then check content
+						break;
+					case ValueID::ValueType_Schedule:		// Schedule
+						/* Should not get here */
+						break;
+					case ValueID::ValueType_BitSet:			// BitSet
+						bOriginalEqual = (((Bitfield *) _targetValue)->GetValue() == ((Bitfield *) _newValue)->GetValue());
+						break;
+				}
+				if (bOriginalEqual)
+				{
+					/* reset the Bool around TargetValueSet so we
+					 * can handle situations where Target Value is not supplied in the future
+					 */
+					m_targetValueSet = false;
+
+					Value::OnValueChanged();
+					return 2;				// confirmed change of value
+				}
+				/* They are not equal - So we need to issue a Get, But lets pace the timing of the Get based on Duration
+				 * - Caveat here is that if the outgoing queue is large, then this will be additionally delayed
+				 */
+				int32 timeout;
+				if (m_duration <= 2)
+				{
+					timeout = 250;
+				}
+				else if (m_duration <= 5)
+				{
+					/* for Durations less than 5 seconds, lets refresh every 1/2 seconds
+					 */
+					timeout = 500;
+				}
+				else
+				{
+					/* Everything else is 1 second
+					 */
+					timeout = 1000;
+				}
+
+				TimerThread::TimerCallback callback = bind(&Value::sendValueRefresh, this, 1);
+				TimerSetEvent(timeout, callback, 1);
+				/* signal that the value hasn't changed */
+				return 0;
+			}
+
+//-----------------------------------------------------------------------------
+// <Value::sendValueRefresh>
+// Callback from the Timer to send a Get value to refresh a value from the
+// CheckTargetValue function
+//-----------------------------------------------------------------------------
+			void Value::sendValueRefresh(uint32 _unused)
+			{
+				Log::Write(LogLevel_Info, m_id.GetNodeId(), "Sending Get to Refresh Value after Target Check");
+				if (Driver* driver = Manager::Get()->GetDriver(m_id.GetHomeId()))
+				{
+					Node* node = driver->GetNodeUnsafe(m_id.GetNodeId());
+					if (node != NULL)
+					{
+						if (Internal::CC::CommandClass* cc = node->GetCommandClass(m_id.GetCommandClassId()))
+						{
+							cc->RequestValue( 0, m_id.GetIndex(), m_id.GetInstance(), Driver::MsgQueue_Send );
+						}
+					}
+				}
+			}
+
+
 		} // namespace VC
 	} // namespace Internal
 } // namespace OpenZWave
diff --git a/cpp/src/value_classes/Value.h b/cpp/src/value_classes/Value.h
index 4bd3d0a1ba..f8336c186d 100644
--- a/cpp/src/value_classes/Value.h
+++ b/cpp/src/value_classes/Value.h
@@ -33,6 +33,7 @@
 #include <time.h>
 #endif
 #include "Defs.h"
+#include "TimerThread.h"
 #include "platform/Ref.h"
 #include "value_classes/ValueID.h"
 #include "platform/Log.h"
@@ -50,7 +51,7 @@ namespace OpenZWave
 			/** \brief Base class for values associated with a node.
 			 * \ingroup ValueID
 			 */
-			class Value: public Internal::Platform::Ref
+			class Value: public Internal::Platform::Ref, private Timer
 			{
 					friend class OpenZWave::Driver;
 					friend class ValueStore;
@@ -125,6 +126,15 @@ namespace OpenZWave
 						return m_verifyChanges;
 					}
 
+					void SetRefreshAfterSet(bool _refreshAfterSet)
+					{
+						m_refreshAfterSet = _refreshAfterSet;
+					}
+					bool GetRefreshAfterSet()
+					{
+						return m_refreshAfterSet;
+					}
+
 					virtual string const GetAsString() const
 					{
 						return "";
@@ -153,6 +163,8 @@ namespace OpenZWave
 						return Ref::Release();
 					}
 #endif
+					void sendValueRefresh(uint32 _unused);
+
 				protected:
 					virtual ~Value();
 
@@ -164,16 +176,25 @@ namespace OpenZWave
 					{
 						m_checkChange = _check;
 					}
+					bool IsTargetValueSet() const
+					{
+						return m_targetValueSet;
+					}
+
 					void OnValueRefreshed();			// A value in a device has been refreshed
 					void OnValueChanged();				// The refreshed value actually changed
-					int VerifyRefreshedValue(void* _originalValue, void* _checkValue, void* _newValue, ValueID::ValueType _type, int _originalValueLength = 0, int _checkValueLength = 0, int _newValueLength = 0);
+					int VerifyRefreshedValue(void* _originalValue, void* _checkValue, void* _newValue, void* _targetValue, ValueID::ValueType _type, int _originalValueLength = 0, int _checkValueLength = 0, int _newValueLength = 0, int _targetValueLength = 0);
+					int CheckTargetValue(void* _newValue, void* _targetValue, ValueID::ValueType _type, int _newValueLength, int _targetValueLength);
 
 					int32 m_min;
 					int32 m_max;
 
 					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
+					bool m_refreshAfterSet;		// if true, all value sets are followed by a get to refresh the value manually
 					ValueID m_id;
+					bool m_targetValueSet;		// If the Target Value is Set 
+					uint32 m_duration;			// The Duration, if the CC supports it
 
 				private:
 					string m_units;
diff --git a/cpp/src/value_classes/ValueBitSet.cpp b/cpp/src/value_classes/ValueBitSet.cpp
index e94df2592c..df482c8d36 100644
--- a/cpp/src/value_classes/ValueBitSet.cpp
+++ b/cpp/src/value_classes/ValueBitSet.cpp
@@ -46,7 +46,7 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			ValueBitSet::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) :
-					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_BitSet, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(false), m_newValue(false), m_BitMask(0xFFFFFFFF), m_size(0)
+					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_BitSet, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(false), m_newValue(false), m_BitMask(0xFFFFFFFF), m_size(0), m_targetValue(0)
 			{
 			}
 
@@ -297,8 +297,7 @@ namespace OpenZWave
 			{
 				if (isValidBit(_idx))
 				{
-					Localization::Get()->SetValueItemHelp(m_id.GetNodeId(), m_id.GetCommandClassId(), m_id.GetIndex(), -1, _idx, Localization::Get()->GetSelectedLang());
-					return true;
+					return Localization::Get()->SetValueItemHelp(m_id.GetNodeId(), m_id.GetCommandClassId(), m_id.GetIndex(), -1, _idx, help, Localization::Get()->GetSelectedLang());
 				}
 				Log::Write(LogLevel_Warning, m_id.GetNodeId(), "SetBitHelp: Bit %d is not valid with BitMask %d", _idx, m_BitMask);
 				return false;
@@ -342,13 +341,24 @@ namespace OpenZWave
 				m_size = size;
 			}
 
+//-----------------------------------------------------------------------------
+// <ValueByte::SetTargetValue>
+// Set the Value Target (Used for Automatic Refresh)
+//-----------------------------------------------------------------------------
+			void ValueBitSet::SetTargetValue(uint32 const _target, uint32 _duration)
+			{
+				m_targetValueSet = true;
+				m_targetValue = _target;
+				m_duration = _duration;
+			}
+
 //-----------------------------------------------------------------------------
 // <ValueBitSet::OnValueRefreshed>
 // A value in a device has been refreshed
 //-----------------------------------------------------------------------------
 			void ValueBitSet::OnValueRefreshed(uint32 const _value)
 			{
-				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, ValueID::ValueType_BitSet))
+				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, (void*) &m_targetValue, ValueID::ValueType_BitSet))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
diff --git a/cpp/src/value_classes/ValueBitSet.h b/cpp/src/value_classes/ValueBitSet.h
index f4a9766d41..bf2aec96d7 100644
--- a/cpp/src/value_classes/ValueBitSet.h
+++ b/cpp/src/value_classes/ValueBitSet.h
@@ -60,6 +60,8 @@ namespace OpenZWave
 					bool Set(uint32 const _value);
 					uint32 GetValue() const;
 
+					void SetTargetValue(uint32 const _target, uint32 _duration = 0);
+
 					bool SetBit(uint8 const _idx);
 					bool ClearBit(uint8 const _idx);
 					bool GetBit(uint8 _idx) const;
@@ -92,6 +94,7 @@ namespace OpenZWave
 					uint32 m_BitMask;				// Valid Bits
 					uint8 m_size;					// Number of bytes in size
 					vector<int32> m_bits;
+					uint32 m_targetValue; 		// Target Value, if Supported;
 			};
 		} // namespace VC
 	} // namespace Internal
diff --git a/cpp/src/value_classes/ValueBool.cpp b/cpp/src/value_classes/ValueBool.cpp
index d7683d93fd..eea68b2b8e 100644
--- a/cpp/src/value_classes/ValueBool.cpp
+++ b/cpp/src/value_classes/ValueBool.cpp
@@ -45,7 +45,7 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			ValueBool::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) :
-					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Bool, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(false)
+					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Bool, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(false), m_targetValue(false)
 			{
 			}
 
@@ -100,6 +100,9 @@ namespace OpenZWave
 				// create a temporary copy of this value to be submitted to the Set() call and set its value to the function param
 				ValueBool* tempValue = new ValueBool(*this);
 				tempValue->m_value = _value;
+				
+				// Save the new value to be stored when the device confirms the value was set successfully, 
+				m_newValue = _value;
 
 				// Set the value in the device.
 				bool ret = ((Value*) tempValue)->Set();
@@ -110,13 +113,24 @@ namespace OpenZWave
 				return ret;
 			}
 
+//-----------------------------------------------------------------------------
+// <ValueBool::SetTargetValue>
+// Set the Value Target (Used for Automatic Refresh)
+//-----------------------------------------------------------------------------
+			void ValueBool::SetTargetValue(bool const _target, uint32 _duration)
+			{
+				m_targetValueSet = true;
+				m_targetValue = _target;
+				m_duration = _duration;
+			}
+
 //-----------------------------------------------------------------------------
 // <ValueBool::OnValueRefreshed>
 // A value in a device has been refreshed
 //-----------------------------------------------------------------------------
 			void ValueBool::OnValueRefreshed(bool const _value)
 			{
-				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, ValueID::ValueType_Bool))
+				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, (void *) &m_targetValue, ValueID::ValueType_Bool))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
diff --git a/cpp/src/value_classes/ValueBool.h b/cpp/src/value_classes/ValueBool.h
index 7caf62eea4..41fb23d8e7 100644
--- a/cpp/src/value_classes/ValueBool.h
+++ b/cpp/src/value_classes/ValueBool.h
@@ -57,6 +57,12 @@ namespace OpenZWave
 
 					bool Set(bool const _value);
 					void OnValueRefreshed(bool const _value);
+					void ConfirmNewValue()
+					{
+						OnValueRefreshed(m_newValue != 0);
+					};
+					void SetTargetValue(bool const _target, uint32 _duration = 0);
+
 
 					// From Value
 					virtual string const GetAsString() const
@@ -75,6 +81,8 @@ namespace OpenZWave
 				private:
 					bool m_value;				// the current index in the m_items vector
 					bool m_valueCheck;			// the previous value (used for double-checking spurious value reads)
+					bool m_targetValue;			// The Target Value
+					bool m_newValue;			// a new value to be set on the appropriate device (used by Supervision CC)
 			};
 		} // namespace VC
 	} // namespace Internal
diff --git a/cpp/src/value_classes/ValueByte.cpp b/cpp/src/value_classes/ValueByte.cpp
index 68e30d7211..a36b06425e 100644
--- a/cpp/src/value_classes/ValueByte.cpp
+++ b/cpp/src/value_classes/ValueByte.cpp
@@ -45,7 +45,7 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			ValueByte::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) :
-					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Byte, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(false)
+					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Byte, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(false), m_targetValue(0)
 			{
 				m_min = 0;
 				m_max = 255;
@@ -120,6 +120,9 @@ namespace OpenZWave
 				ValueByte* tempValue = new ValueByte(*this);
 				tempValue->m_value = _value;
 
+				// Save the new value to be stored when the device confirms the value was set successfully, 
+				m_newValue = _value;
+
 				// Set the value in the device.
 				bool ret = ((Value*) tempValue)->Set();
 
@@ -129,13 +132,24 @@ namespace OpenZWave
 				return ret;
 			}
 
+//-----------------------------------------------------------------------------
+// <ValueByte::SetTargetValue>
+// Set the Value Target (Used for Automatic Refresh)
+//-----------------------------------------------------------------------------
+			void ValueByte::SetTargetValue(uint8 const _target, uint32 _duration)
+			{
+				m_targetValueSet = true;
+				m_targetValue = _target;
+				m_duration = _duration;
+			}
+
 //-----------------------------------------------------------------------------
 // <ValueByte::OnValueRefreshed>
 // A value in a device has been refreshed
 //-----------------------------------------------------------------------------
 			void ValueByte::OnValueRefreshed(uint8 const _value)
 			{
-				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, ValueID::ValueType_Byte))
+				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, (void*) &m_targetValue, ValueID::ValueType_Byte))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
diff --git a/cpp/src/value_classes/ValueByte.h b/cpp/src/value_classes/ValueByte.h
index 517b04a28b..bc65807087 100644
--- a/cpp/src/value_classes/ValueByte.h
+++ b/cpp/src/value_classes/ValueByte.h
@@ -55,6 +55,11 @@ namespace OpenZWave
 
 					bool Set(uint8 const _value);
 					void OnValueRefreshed(uint8 const _value);
+					void ConfirmNewValue()
+					{
+						OnValueRefreshed(m_newValue);
+					};
+					void SetTargetValue(uint8 const _target, uint32 _duration = 0);
 
 					// From Value
 					virtual string const GetAsString() const;
@@ -70,6 +75,8 @@ namespace OpenZWave
 				private:
 					uint8 m_value;				// the current value
 					uint8 m_valueCheck;			// the previous value (used for double-checking spurious value reads)
+					uint8 m_targetValue; 		// the Target Value, if the CC support it
+					uint8 m_newValue;			// a new value to be set on the device (used by Supervision CC)
 			};
 		} // namespace VC
 	} // namespace Internal
diff --git a/cpp/src/value_classes/ValueDecimal.cpp b/cpp/src/value_classes/ValueDecimal.cpp
index 9acef6ce61..34920cc4d6 100644
--- a/cpp/src/value_classes/ValueDecimal.cpp
+++ b/cpp/src/value_classes/ValueDecimal.cpp
@@ -44,7 +44,7 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			ValueDecimal::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) :
-					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Decimal, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(""), m_newValue(""), m_precision(0)
+					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Decimal, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(""), m_newValue(""), m_precision(0), m_targetValue("")
 			{
 			}
 
@@ -87,6 +87,9 @@ namespace OpenZWave
 				ValueDecimal* tempValue = new ValueDecimal(*this);
 				tempValue->m_value = _value;
 
+				// Save the new value to be stored when the device confirms the value was set successfully, 
+				m_newValue = _value;
+
 				// Set the value in the device.
 				bool ret = ((Value*) tempValue)->Set();
 
@@ -96,13 +99,25 @@ namespace OpenZWave
 				return ret;
 			}
 
+//-----------------------------------------------------------------------------
+// <ValueDecimal::SetTargetValue>
+// Set the Value Target (Used for Automatic Refresh)
+//-----------------------------------------------------------------------------
+			void ValueDecimal::SetTargetValue(string const _target, uint32 _duration)
+			{
+				m_targetValueSet = true;
+				m_targetValue = _target;
+				m_duration = _duration;
+			}
+
+
 //-----------------------------------------------------------------------------
 // <ValueDecimal::OnValueRefreshed>
 // A value in a device has been refreshed
 //-----------------------------------------------------------------------------
 			void ValueDecimal::OnValueRefreshed(string const& _value)
 			{
-				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, ValueID::ValueType_Decimal))
+				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, (void *) &m_targetValue, ValueID::ValueType_Decimal))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
diff --git a/cpp/src/value_classes/ValueDecimal.h b/cpp/src/value_classes/ValueDecimal.h
index 8684932209..5b2d402b0b 100644
--- a/cpp/src/value_classes/ValueDecimal.h
+++ b/cpp/src/value_classes/ValueDecimal.h
@@ -59,6 +59,11 @@ namespace OpenZWave
 
 					bool Set(string const& _value);
 					void OnValueRefreshed(string const& _value);
+					void ConfirmNewValue()
+					{
+						OnValueRefreshed(m_newValue);
+					};
+					void SetTargetValue(string const _target, uint32 _duration = 0);
 
 					// From Value
 					virtual string const GetAsString() const
@@ -91,6 +96,7 @@ namespace OpenZWave
 					string m_valueCheck;			// the previous value (used for double-checking spurious value reads)
 					string m_newValue;				// a new value to be set on the appropriate device
 					uint8 m_precision;
+					string m_targetValue;			// Target Value if supported. 
 			};
 		} // namespace VC
 	} // namespace Internal
diff --git a/cpp/src/value_classes/ValueID.cpp b/cpp/src/value_classes/ValueID.cpp
index 3154dbc3ff..b7b177c559 100644
--- a/cpp/src/value_classes/ValueID.cpp
+++ b/cpp/src/value_classes/ValueID.cpp
@@ -27,6 +27,9 @@
 
 #include "ValueID.h"
 #include "Value.h"
+#include <sstream>
+#include <iomanip>
+
 
 namespace OpenZWave
 {
@@ -48,4 +51,22 @@ namespace OpenZWave
 		return Internal::VC::Value::GetTypeNameFromEnum(GetType());
 	}
 
+	string const ValueID::GetAsString() const
+	{
+		// Match constructor order
+		// ValueID(uint32 const _homeId, uint8 const _nodeId, ValueGenre const _genre, uint8 const _commandClassId,
+		// uint8 const _instance, uint16 const _valueIndex, ValueType const _type)
+		std::ostringstream s;
+
+		s
+			<< "HomeID: 0x" << hex << setfill('0') << setw(8) << GetHomeId()
+			<< ", ValueID: (Id 0x" << setw(16) << GetId() << dec << setfill(' ')
+			<< ", NodeID " << static_cast<unsigned int>(GetNodeId())
+			<< ", Genre " << GetGenreAsString()
+			<< ", CC 0x" << hex << setfill('0') << setw(2) << static_cast<unsigned int>(GetCommandClassId()) << dec << setfill(' ')
+			<< ", Instance " << static_cast<unsigned int>(GetInstance())
+			<< ", Index " << static_cast<unsigned int>(GetIndex())
+			<< ", Type " << GetTypeAsString() << ')';
+		return s.str();
+	}
 }// namespace OpenZWave
diff --git a/cpp/src/value_classes/ValueID.h b/cpp/src/value_classes/ValueID.h
index 937e7673f6..e24ce57d74 100644
--- a/cpp/src/value_classes/ValueID.h
+++ b/cpp/src/value_classes/ValueID.h
@@ -215,6 +215,11 @@ namespace OpenZWave
 			{
 				return (uint64) (((uint64) m_id1 << 32) | m_id);
 			}
+			/**
+			 * GetAsString returns a string representing the ValueID in human readable form
+			 * \return a std::string
+			 */
+			string const GetAsString() const;
 
 			// Comparison Operators
 			bool operator ==(ValueID const& _other) const
diff --git a/cpp/src/value_classes/ValueInt.cpp b/cpp/src/value_classes/ValueInt.cpp
index 59e94e560a..237404b7e5 100644
--- a/cpp/src/value_classes/ValueInt.cpp
+++ b/cpp/src/value_classes/ValueInt.cpp
@@ -46,7 +46,7 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			ValueInt::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) :
-					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Int, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(0)
+					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Int, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(0), m_targetValue(0)
 			{
 				m_min = INT_MIN;
 				m_max = INT_MAX;
@@ -128,13 +128,24 @@ namespace OpenZWave
 				return ret;
 			}
 
+//-----------------------------------------------------------------------------
+// <ValueInt::SetTargetValue>
+// Set the Value Target (Used for Automatic Refresh)
+//-----------------------------------------------------------------------------
+			void ValueInt::SetTargetValue(int32 const _target, uint32 _duration)
+			{
+				m_targetValueSet = true;
+				m_targetValue = _target;
+				m_duration = _duration;
+			}
+
 //-----------------------------------------------------------------------------
 // <ValueInt::OnValueRefreshed>
 // A value in a device has been refreshed
 //-----------------------------------------------------------------------------
 			void ValueInt::OnValueRefreshed(int32 const _value)
 			{
-				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, ValueID::ValueType_Int))
+				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, (void *) &m_targetValue, ValueID::ValueType_Int))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
diff --git a/cpp/src/value_classes/ValueInt.h b/cpp/src/value_classes/ValueInt.h
index 34f8c0f9aa..e272b93df6 100644
--- a/cpp/src/value_classes/ValueInt.h
+++ b/cpp/src/value_classes/ValueInt.h
@@ -55,6 +55,8 @@ namespace OpenZWave
 
 					bool Set(int32 const _value);
 					void OnValueRefreshed(int32 const _value);
+					void SetTargetValue(int32 const _target, uint32 _duration = 0);
+
 
 					// From Value
 					virtual string const GetAsString() const;
@@ -70,6 +72,7 @@ namespace OpenZWave
 				private:
 					int32 m_value;				// the current value
 					int32 m_valueCheck;			// the previous value (used for double-checking spurious value reads)
+					int32 m_targetValue;		// Target Value 
 			};
 		} // namespace VC
 	} // namespace Internal
diff --git a/cpp/src/value_classes/ValueList.cpp b/cpp/src/value_classes/ValueList.cpp
index 5433ba2de8..a89629d163 100644
--- a/cpp/src/value_classes/ValueList.cpp
+++ b/cpp/src/value_classes/ValueList.cpp
@@ -46,7 +46,7 @@ namespace OpenZWave
 //-----------------------------------------------------------------------------
 			ValueList::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
 					) :
-					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_List, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_items(_items), m_valueIdx(_valueIdx), m_valueIdxCheck(0), m_size(_size)
+					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_List, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_items(_items), m_valueIdx(_valueIdx), m_valueIdxCheck(0), m_size(_size), m_targetValue(0)
 			{
 				for (vector<Item>::iterator it = m_items.begin(); it != m_items.end(); ++it)
 				{
@@ -85,12 +85,12 @@ namespace OpenZWave
 					}
 					else
 					{
-						Log::Write(LogLevel_Warning, "Value size is invalid (%d). Only 1, 2 & 4 supported for node %d, class 0x%02x, instance %d, index %d", intSize, _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex());
+						Log::Write(LogLevel_Warning, "Value size is invalid (%d). Only 1, 2 & 4 supported for node %d, class 0x%02x, instance %d, index %d - %s", intSize, _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex(), GetID().GetAsString().c_str());
 					}
 				}
 				else
 				{
-					Log::Write(LogLevel_Warning, "Value list size is not set, assuming 4 bytes for node %d, class 0x%02x, instance %d, index %d", _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex());
+					Log::Write(LogLevel_Warning, "Value list size is not set, assuming 4 bytes for node %d, class 0x%02x, instance %d, index %d - %s", _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex(), GetID().GetAsString().c_str());
 				}
 
 				TiXmlElement const* itemElement = _valueElement->FirstChildElement();
@@ -125,12 +125,11 @@ namespace OpenZWave
 						int value = 0;
 						if (itemElement->QueryIntAttribute("value", &value) != TIXML_SUCCESS)
 						{
-							Log::Write(LogLevel_Warning, "Item value %s is wrong type or does not exist in xml configuration for node %d, class 0x%02x, instance %d, index %d", labelStr, _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex());
-							continue;
+							Log::Write(LogLevel_Warning, "Item value %s is wrong type or does not exist in xml configuration for node %d, class 0x%02x, instance %d, index %d - %s", labelStr, _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex(), GetID().GetAsString().c_str());
 						}
-						if ((m_size == 1 && value > 255) || (m_size == 2 && value > 65535))
+						else if ((m_size == 1 && value > 255) || (m_size == 2 && value > 65535))
 						{
-							Log::Write(LogLevel_Warning, "Item value %s is incorrect size in xml configuration for node %d, class 0x%02x, instance %d, index %d", labelStr, _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex());
+							Log::Write(LogLevel_Warning, "Item value %s is incorrect size in xml configuration for node %d, class 0x%02x, instance %d, index %d - %s", labelStr, _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex(), GetID().GetAsString().c_str());
 						}
 						else
 						{
@@ -167,7 +166,7 @@ namespace OpenZWave
 					}
 					else
 					{
-						Log::Write(LogLevel_Warning, "Value is not found in xml configuration for node %d, class 0x%02x, instance %d, index %d", _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex());
+						Log::Write(LogLevel_Warning, "Value is not found in xml configuration for node %d, class 0x%02x, instance %d, index %d - %s", _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex(), GetID().GetAsString().c_str());
 					}
 				}
 
@@ -183,12 +182,12 @@ namespace OpenZWave
 					}
 					else
 					{
-						Log::Write(LogLevel_Warning, "Vindex is out of range for index in xml configuration for node %d, class 0x%02x, instance %d, index %d", _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex());
+						Log::Write(LogLevel_Warning, "Vindex is out of range for index in xml configuration for node %d, class 0x%02x, instance %d, index %d - %s", _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex(), GetID().GetAsString().c_str());
 					}
 				}
 				if (!valSet && !indSet)
 				{
-					Log::Write(LogLevel_Warning, "Missing default list value or vindex from xml configuration: node %d, class 0x%02x, instance %d, index %d", _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex());
+					Log::Write(LogLevel_Warning, "Missing default list value or vindex from xml configuration: node %d, class 0x%02x, instance %d, index %d - %s", _nodeId, _commandClassId, GetID().GetInstance(), GetID().GetIndex(), GetID().GetAsString().c_str());
 				}
 
 			}
@@ -230,6 +229,9 @@ namespace OpenZWave
 				ValueList* tempValue = new ValueList(*this);
 				tempValue->m_valueIdx = _value;
 
+				// Save the new value to be stored when the device confirms the value was set successfully, 
+				m_newValue = _value;
+
 				// Set the value in the device.
 				bool ret = ((Value*) tempValue)->Set();
 
@@ -250,12 +252,24 @@ namespace OpenZWave
 				if (index < 0)
 				{
 					// Item not found
+					Log::Write(LogLevel_Warning, "Attempt to Set a Invalid Label %s for ValueList in OnValueRefreshed %s", _label.c_str(), GetID().GetAsString().c_str());
 					return false;
 				}
 
 				return SetByValue(index);
 			}
 
+//-----------------------------------------------------------------------------
+// <ValueByte::SetTargetValue>
+// Set the Value Target (Used for Automatic Refresh)
+//-----------------------------------------------------------------------------
+			void ValueList::SetTargetValue(int32 const _target, uint32 _duration)
+			{
+				m_targetValueSet = true;
+				m_targetValue = _target;
+				m_duration = _duration;
+			}
+
 //-----------------------------------------------------------------------------
 // <ValueList::OnValueRefreshed>
 // A value in a device has been refreshed
@@ -267,10 +281,11 @@ namespace OpenZWave
 				if (index < 0)
 				{
 					// Item not found
+					Log::Write(LogLevel_Warning, "Attempt to Set a Invalid Index %d for ValueList in OnValueRefreshed %s", _value, GetID().GetAsString().c_str());
 					return;
 				}
 
-				switch (VerifyRefreshedValue((void*) &m_valueIdx, (void*) &m_valueIdxCheck, (void*) &index, ValueID::ValueType_List))
+				switch (VerifyRefreshedValue((void*) &m_valueIdx, (void*) &m_valueIdxCheck, (void*) &index, (void*) &m_targetValue, ValueID::ValueType_List))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
@@ -298,7 +313,7 @@ namespace OpenZWave
 						return i;
 					}
 				}
-
+				Log::Write(LogLevel_Warning, "Attempt to get a Invalid Label %s from ValueList %s", _label.c_str(), GetID().GetAsString().c_str());
 				return -1;
 			}
 
@@ -315,7 +330,7 @@ namespace OpenZWave
 						return i;
 					}
 				}
-
+				Log::Write(LogLevel_Warning, "Attempt to get a Invalid Index %d on ValueList %s", _value, GetID().GetAsString().c_str());
 				return -1;
 			}
 
@@ -334,7 +349,7 @@ namespace OpenZWave
 
 					return true;
 				}
-
+				Log::Write(LogLevel_Error, "o_items passed to ValueList::GetItemLabels is null: %s", GetID().GetAsString().c_str());
 				return false;
 			}
 
@@ -353,7 +368,7 @@ namespace OpenZWave
 
 					return true;
 				}
-
+				Log::Write(LogLevel_Error, "o_values passed to ValueList::GetItemLabels is null: %s", GetID().GetAsString().c_str());
 				return false;
 			}
 
@@ -365,11 +380,17 @@ namespace OpenZWave
 			{
 				try
 				{
+					/* very strange - We throw a exception if its out of range, but its not caught? */
+					if (m_items.size() < (uint32)m_valueIdx)
+					{
+						Log::Write(LogLevel_Warning, "Invalid Index Set on ValueList %s: %d", GetID().GetAsString().c_str(), m_valueIdx);
+						return NULL;
+					}
 					return &m_items.at(m_valueIdx);
 				}
-				catch (const std::out_of_range& oor)
+				catch (std::out_of_range const& oor)
 				{
-					Log::Write(LogLevel_Warning, "Invalid Index Set on ValueList: %s", oor.what());
+					Log::Write(LogLevel_Warning, "Invalid Index Set on ValueList %s: %s", GetID().GetAsString().c_str(), oor.what());
 					return NULL;
 				}
 			}
diff --git a/cpp/src/value_classes/ValueList.h b/cpp/src/value_classes/ValueList.h
index 614bf77d43..6aa46b351d 100644
--- a/cpp/src/value_classes/ValueList.h
+++ b/cpp/src/value_classes/ValueList.h
@@ -66,6 +66,10 @@ namespace OpenZWave
 					bool SetByValue(int32 const _value);
 
 					void OnValueRefreshed(int32 const _valueIdx);
+					void ConfirmNewValue()
+					{
+						OnValueRefreshed(m_items[m_newValue].m_value);
+					};
 
 					// From Value
 					virtual string const GetAsString() const
@@ -76,6 +80,8 @@ namespace OpenZWave
 					{
 						return SetByLabel(_value);
 					}
+					void SetTargetValue(int32 const _target, uint32 _duration = 0);
+
 					virtual void ReadXML(uint32 const _homeId, uint8 const _nodeId, uint8 const _commandClassId, TiXmlElement const* _valueElement);
 					virtual void WriteXML(TiXmlElement* _valueElement);
 
@@ -96,7 +102,10 @@ namespace OpenZWave
 					vector<Item> m_items;
 					int32 m_valueIdx;					// the current index in the m_items vector
 					int32 m_valueIdxCheck;			// the previous index in the m_items vector (used for double-checking spurious value reads)
+					int32 m_newValue;			// a new index to be set on the appropriate device (used by Supervision CC)
 					uint8 m_size;
+					int32 m_targetValue; 		// the Target Value, if the CC support it
+
 			};
 		} // namespace VC
 	} // namespace Internal
diff --git a/cpp/src/value_classes/ValueRaw.cpp b/cpp/src/value_classes/ValueRaw.cpp
index 8c562a3220..535b6c91e8 100644
--- a/cpp/src/value_classes/ValueRaw.cpp
+++ b/cpp/src/value_classes/ValueRaw.cpp
@@ -44,7 +44,7 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			ValueRaw::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) :
-					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Raw, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value( NULL), m_valueLength(_length), m_valueCheck( NULL), m_valueCheckLength(0)
+					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Raw, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value( NULL), m_valueLength(_length), m_valueCheck( NULL), m_valueCheckLength(0), m_targetValue(NULL), m_targetValueLength(0)
 			{
 				m_value = new uint8[_length];
 				memcpy(m_value, _value, _length);
@@ -211,13 +211,25 @@ namespace OpenZWave
 				return ret;
 			}
 
+//-----------------------------------------------------------------------------
+// <ValueRaw::SetTargetValue>
+// Set the Value Target (Used for Automatic Refresh)
+//-----------------------------------------------------------------------------
+			void ValueRaw::SetTargetValue(uint8 const* _target, uint8 const _length, int32 _duration)
+			{
+				m_targetValueSet = true;
+				memcpy(m_targetValue, _target, _length);
+				m_targetValueLength = _length;
+				m_duration = _duration;
+			}
+
 //-----------------------------------------------------------------------------
 // <ValueRaw::OnValueRefreshed>
 // A value in a device has been refreshed
 //-----------------------------------------------------------------------------
 			void ValueRaw::OnValueRefreshed(uint8 const* _value, uint8 const _length)
 			{
-				switch (VerifyRefreshedValue((void*) m_value, (void*) m_valueCheck, (void*) _value, ValueID::ValueType_Raw, m_valueLength, m_valueCheckLength, _length))
+				switch (VerifyRefreshedValue((void*) m_value, (void*) m_valueCheck, (void*) _value, (void*) m_targetValue, ValueID::ValueType_Raw, m_valueLength, m_valueCheckLength, _length, m_targetValueLength))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
diff --git a/cpp/src/value_classes/ValueRaw.h b/cpp/src/value_classes/ValueRaw.h
index 38e3da445b..180dc432f2 100644
--- a/cpp/src/value_classes/ValueRaw.h
+++ b/cpp/src/value_classes/ValueRaw.h
@@ -53,6 +53,7 @@ namespace OpenZWave
 
 					bool Set(uint8 const* _value, uint8 const _length);
 					void OnValueRefreshed(uint8 const* _value, uint8 const _length);
+					void SetTargetValue(uint8 const* _target, uint8 const _length, int32 _duration = 0);
 
 					// From Value
 					virtual string const GetAsString() const;
@@ -74,6 +75,8 @@ namespace OpenZWave
 					uint8 m_valueLength;				// fixed length for this instance
 					uint8* m_valueCheck;				// the previous value (used for double-checking spurious value reads)
 					uint8 m_valueCheckLength;			// m_valueCheck array length
+					uint8* m_targetValue;		// Target Value
+					uint8 m_targetValueLength;	// Target Value Array Length
 			};
 		} // namespace VC
 	} // namespace Internal
diff --git a/cpp/src/value_classes/ValueSchedule.cpp b/cpp/src/value_classes/ValueSchedule.cpp
index fb5ed9a0ac..7624dfc5f0 100644
--- a/cpp/src/value_classes/ValueSchedule.cpp
+++ b/cpp/src/value_classes/ValueSchedule.cpp
@@ -155,7 +155,7 @@ namespace OpenZWave
 			{
 				/* Value::VerifyRefreshedValue doesn't handle Schedule Properly yet, but still do this so we can do it eventually */
 
-				switch (VerifyRefreshedValue((void*) "Schedule", (void*) "Schedule", (void*) "Schedule", ValueID::ValueType_Schedule))
+				switch (VerifyRefreshedValue((void*) "Schedule", (void*) "Schedule", (void*) "Schedule", (void *) "Schedule", ValueID::ValueType_Schedule))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
diff --git a/cpp/src/value_classes/ValueShort.cpp b/cpp/src/value_classes/ValueShort.cpp
index b0e0bd867a..75815dfa30 100644
--- a/cpp/src/value_classes/ValueShort.cpp
+++ b/cpp/src/value_classes/ValueShort.cpp
@@ -46,7 +46,7 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			ValueShort::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) :
-					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Short, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(0)
+					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_Short, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(0), m_targetValue(0)
 			{
 				m_min = SHRT_MIN;
 				m_max = SHRT_MAX;
@@ -131,13 +131,24 @@ namespace OpenZWave
 				return ret;
 			}
 
+//-----------------------------------------------------------------------------
+// <ValueShort::SetTargetValue>
+// Set the Value Target (Used for Automatic Refresh)
+//-----------------------------------------------------------------------------
+			void ValueShort::SetTargetValue(int16 const _target, uint32 _duration)
+			{
+				m_targetValueSet = true;
+				m_targetValue = _target;
+				m_duration = _duration;
+			}
+
 //-----------------------------------------------------------------------------
 // <ValueShort::OnValueRefreshed>
 // A value in a device has been refreshed
 //-----------------------------------------------------------------------------
 			void ValueShort::OnValueRefreshed(int16 const _value)
 			{
-				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, ValueID::ValueType_Short))
+				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, (void *) &m_targetValue, ValueID::ValueType_Short))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
diff --git a/cpp/src/value_classes/ValueShort.h b/cpp/src/value_classes/ValueShort.h
index db5c13340f..abfd66454b 100644
--- a/cpp/src/value_classes/ValueShort.h
+++ b/cpp/src/value_classes/ValueShort.h
@@ -55,6 +55,7 @@ namespace OpenZWave
 
 					bool Set(int16 const _value);
 					void OnValueRefreshed(int16 const _value);
+					void SetTargetValue(int16 const _target, uint32 _duration = 0);
 
 					// From Value
 					virtual string const GetAsString() const;
@@ -70,6 +71,7 @@ namespace OpenZWave
 				private:
 					int16 m_value;				// the current value
 					int16 m_valueCheck;			// the previous value (used for double-checking spurious value reads)
+					int16 m_targetValue;		// Target Value 
 			};
 		} // namespace VC
 	} // namespace Internal
diff --git a/cpp/src/value_classes/ValueStore.cpp b/cpp/src/value_classes/ValueStore.cpp
index 3c99389b1f..0851eefcf2 100644
--- a/cpp/src/value_classes/ValueStore.cpp
+++ b/cpp/src/value_classes/ValueStore.cpp
@@ -87,6 +87,10 @@ namespace OpenZWave
 								Log::Write(LogLevel_Info, _value->GetID().GetNodeId(), "Setting VerifiedChanged Flag on Value %d for CC %s", _value->GetID().GetIndex(), cc->GetCommandClassName().c_str());
 								_value->SetChangeVerified(true);
 							}
+							if (cc->m_com.GetFlagBool(COMPAT_FLAG_NO_REFRESH_AFTER_SET, _value->GetID().GetIndex())) {
+								Log::Write(LogLevel_Info, _value->GetID().GetNodeId(), "Setting NoRefreshAfterSet Flag on Value %d for CC %s", _value->GetID().GetIndex(), cc->GetCommandClassName().c_str());
+								_value->SetRefreshAfterSet(false);
+							}
 						}
 					}
 					Notification* notification = new Notification(Notification::Type_ValueAdded);
@@ -166,7 +170,7 @@ namespace OpenZWave
 
 						// Now release and remove the value from the store
 						value->Release();
-						m_values.erase(it++);
+						it = m_values.erase(it);
 					}
 					else
 					{
diff --git a/cpp/src/value_classes/ValueString.cpp b/cpp/src/value_classes/ValueString.cpp
index fad42a8873..6e7a0f81a0 100644
--- a/cpp/src/value_classes/ValueString.cpp
+++ b/cpp/src/value_classes/ValueString.cpp
@@ -43,7 +43,7 @@ namespace OpenZWave
 // Constructor
 //-----------------------------------------------------------------------------
 			ValueString::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) :
-					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_String, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(""), m_newValue("")
+					Value(_homeId, _nodeId, _genre, _commandClassId, _instance, _index, ValueID::ValueType_String, _label, _units, _readOnly, _writeOnly, false, _pollIntensity), m_value(_value), m_valueCheck(""), m_newValue(""), m_targetValue("")
 			{
 			}
 
@@ -95,13 +95,24 @@ namespace OpenZWave
 				return ret;
 			}
 
+//-----------------------------------------------------------------------------
+// <ValueString::SetTargetValue>
+// Set the Value Target (Used for Automatic Refresh)
+//-----------------------------------------------------------------------------
+			void ValueString::SetTargetValue(string const _target, uint32 _duration)
+			{
+				m_targetValueSet = true;
+				m_targetValue = _target;
+				m_duration = _duration;
+			}
+
 //-----------------------------------------------------------------------------
 // <ValueString::OnValueRefreshed>
 // A value in a device has been refreshed
 //-----------------------------------------------------------------------------
 			void ValueString::OnValueRefreshed(string const& _value)
 			{
-				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, ValueID::ValueType_String))
+				switch (VerifyRefreshedValue((void*) &m_value, (void*) &m_valueCheck, (void*) &_value, (void *) &m_targetValue, ValueID::ValueType_String))
 				{
 					case 0:		// value hasn't changed, nothing to do
 						break;
diff --git a/cpp/src/value_classes/ValueString.h b/cpp/src/value_classes/ValueString.h
index 0b3e7714fb..ad1bae4b78 100644
--- a/cpp/src/value_classes/ValueString.h
+++ b/cpp/src/value_classes/ValueString.h
@@ -57,6 +57,7 @@ namespace OpenZWave
 
 					bool Set(string const& _value);
 					void OnValueRefreshed(string const& _value);
+					void SetTargetValue(string const _target, uint32 _duration = 0);
 
 					// From Value
 					virtual string const GetAsString() const
@@ -79,6 +80,7 @@ namespace OpenZWave
 					string m_value;				// the current value
 					string m_valueCheck;			// the previous value (used for double-checking spurious value reads)
 					string m_newValue;				// a new value to be set on the appropriate device
+					string m_targetValue;			// Target Value
 			};
 		} // namespace VC
 	} // namespace Internal
diff --git a/cpp/test/ValueID_test.cpp b/cpp/test/ValueID_test.cpp
index a9e5320952..cc0508bf5b 100644
--- a/cpp/test/ValueID_test.cpp
+++ b/cpp/test/ValueID_test.cpp
@@ -45,7 +45,7 @@ TEST(OpenZWave, Version)
 	// "Expected: (ozw_vers_revision) >= (900), actual: 0 vs 900 [ FAILED ] OpenZWave.Version (0 ms)""
 	if (ozw_vers_revision != 0)
 	{
-		EXPECT_GE(ozw_vers_revision, 900);
+		EXPECT_GE(ozw_vers_revision, 992);
 	}
 }
 TEST(ValueID, Constructor)
@@ -120,5 +120,17 @@ TEST(ValueID, GetStoreKey)
 	delete vid5;
 	delete vid6;
 }
+TEST(ValueID, GetAsString)
+{
+	EXPECT_EQ(
+		ValueID(0xFFFF, static_cast<uint64>(0x400000133002A)).GetAsString(),
+		"HomeID: 0x0000ffff, ValueID: (Id 0x000400000133002a, NodeID 1, Genre basic, CC 0xcc, Instance 2, Index 4, Type bitset)");
+	EXPECT_EQ(
+		ValueID(static_cast<uint64>(0x1), 0x02, ValueID::ValueGenre_System, 0x04, 5, 6, ValueID::ValueType_String).GetAsString(),
+		"HomeID: 0x00000001, ValueID: (Id 0x0006000002c10057, NodeID 2, Genre system, CC 0x04, Instance 5, Index 6, Type string)");
+	EXPECT_EQ(
+		ValueID(static_cast<uint64>(0xABCDEF01), static_cast<uint64>(0x0123456789ABCDEF)).GetAsString(),
+		"HomeID: 0xabcdef01, ValueID: (Id 0x0123456789abcdef, NodeID 137, Genre config, CC 0xaf, Instance 222, Index 291, Type invalid type)");
+}
 } // namespace Testing
 } // namespace OpenZWave
\ No newline at end of file
diff --git a/dist/openzwave.spec b/dist/openzwave.spec
index 6f40127750..8057cedefc 100644
--- a/dist/openzwave.spec
+++ b/dist/openzwave.spec
@@ -3,7 +3,7 @@
 %endif
 
 Name:     openzwave
-Version:  1.6.987
+Version:  1.6.1958
 Release:  1.0%{?dist}
 Summary:  Sample Executables for OpenZWave
 URL:      http://www.openzwave.net
@@ -135,7 +135,7 @@ getent group zwave >/dev/null || groupadd -f -r zwave
 
 
 %changelog
-* Wed May 08 2019 Justin Hammond <justin@dynam.ac> - 1.6.987
+* Wed May 08 2019 Justin Hammond <justin@dynam.ac> - 1.6.1958
 - Update to new release of OpenZwave - 1.6
 
 * Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-0.20180624git1e36dcc.0
diff --git a/distfiles.mk b/distfiles.mk
index f88e3eb753..a804229a22 100644
--- a/distfiles.mk
+++ b/distfiles.mk
@@ -1,8 +1,7 @@
 # This File is automatically generated by make dist-update
 # Any Edits on this file will be lost next time dist-update is run
 
-DISTFILES =	.github/workflows/PRTest.yml \
-	.gitignore \
+DISTFILES =	.gitignore \
 	BSDmakefile \
 	INSTALL \
 	LICENSE \
@@ -10,6 +9,7 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	README.md \
 	config/2gig/ct100.xml \
 	config/2gig/ct101.xml \
+	config/2gig/ct200.xml \
 	config/2gig/ct30.xml \
 	config/2gig/ct32.xml \
 	config/2gig/ct50e.xml \
@@ -37,6 +37,7 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/NotificationCCTypes.xsd \
 	config/SensorMultiLevelCCTypes.xml \
 	config/SensorMultiLevelCCTypes.xsd \
+	config/abus/SHRM10000.xml \
 	config/act/lfm20.xml \
 	config/act/zdm230.xml \
 	config/act/zdp100.xml \
@@ -113,26 +114,38 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/aeotec/zwa005.xml \
 	config/aeotec/zwa006.xml \
 	config/aeotec/zwa008.xml \
+	config/aeotec/zwa009.xml \
+	config/aeotec/zwa011.xml \
+	config/aeotec/zwa012.xml \
+	config/aeotec/zwa019.xml \
+	config/aeotec/zwa021.xml \
+	config/aeotec/zwa023.xml \
 	config/airlinemechanical/zds-ud10.xml \
 	config/alfred/DB2.xml \
 	config/assa_abloy/ConexisL1.xml \
 	config/assa_abloy/KeyfreeConnected-plus.xml \
 	config/assa_abloy/KeyfreeConnected.xml \
+	config/assa_abloy/ProSLKey-FreeDeadbolt.xml \
 	config/assa_abloy/PushButtonDeadbolt.xml \
 	config/assa_abloy/PushButtonLever.xml \
 	config/assa_abloy/TouchDeadbolt.xml \
 	config/assa_abloy/TouchLever.xml \
 	config/assa_abloy/nexTouch.xml \
+	config/assa_abloy/yrd1x0.xml \
+	config/assa_abloy/yrm276.xml \
 	config/august/asl-03.xml \
 	config/buffalo/hw-100v15a-zw.xml \
+	config/building36/b36-t10.xml \
 	config/comfort/ucm.xml \
 	config/config-template.xml \
+	config/connecthome/ch-201.xml \
 	config/cooper/RF9501.xml \
 	config/cooper/RF9505-T.xml \
 	config/cooper/RF9505-T.xml.zip \
 	config/cooper/RF9517.xml \
 	config/cooper/RF9540-N.xml \
 	config/cooper/RF9542-Z.xml \
+	config/cooper/RF9601.xml \
 	config/cooper/RFWC5.xml \
 	config/cooper/rf9534.xml \
 	config/danfoss/living.xml \
@@ -152,10 +165,14 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/devolo/mt2652.xml \
 	config/devolo/mt2653.xml \
 	config/devolo/mt2756.xml \
+	config/devolo/mt2759.xml \
+	config/devolo/mt2760.xml \
+	config/devolo/mt2761.xml \
 	config/devolo/rs014G0159.xml \
 	config/diehlcontrols/766366.xml \
 	config/dlink/dch-z110.xml \
 	config/dlink/dch-z120.xml \
+	config/dlink/dch-z210.xml \
 	config/dlink/dch-z510.xml \
 	config/dome/0002.xml \
 	config/dome/0083.xml \
@@ -164,7 +181,9 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/dome/0087.xml \
 	config/dome/0088.xml \
 	config/dome/0101.xml \
+	config/dome/0104.xml \
 	config/dome/0201.xml \
+	config/dome/dmex1.xml \
 	config/domitech/zb22uk.xml \
 	config/domitech/ze27eu.xml \
 	config/domux/DX1CA-Z.xml \
@@ -176,6 +195,8 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/domux/DX1WL-Z.xml \
 	config/domux/DX2SK-Z.xml \
 	config/dragontech/wd-100.xml \
+	config/duco/DucoBox.xml \
+	config/duco/Ducotronic_CO-RH_sensor.xml \
 	config/duwi/05458.xml \
 	config/duwi/ZWES1000.xml \
 	config/duwi/ZWESJ300.xml \
@@ -183,12 +204,14 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/duwi/zw-zdan-300.xml \
 	config/duwi/zwfb.xml \
 	config/duwi/zwws.xml \
+	config/ecodim/0.7.xml \
 	config/ecolink/doorwindow.xml \
 	config/ecolink/firefighter.xml \
 	config/ecolink/floodfreeze.xml \
 	config/ecolink/motion.xml \
 	config/ecolink/sensor.xml \
 	config/ecolink/tiltsensor.xml \
+	config/econet/ezw1204.xml \
 	config/electronicsolutions/dbmz.xml \
 	config/enblink/ss201-us-w_1308.xml \
 	config/enerwave/zw15rmplus.xml \
@@ -200,9 +223,11 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/enerwave/zwn-sc7.xml \
 	config/enerwave/zwnrsm1plus.xml \
 	config/enerwave/zwnrsm2plus.xml \
+	config/eurotronic/eur_airquality.xml \
 	config/eurotronic/eur_cometz.xml \
 	config/eurotronic/eur_spiritz.xml \
 	config/eurotronic/eur_stellaz.xml \
+	config/eurotronic/eur_temphumin.xml \
 	config/everspring/ad146.xml \
 	config/everspring/ad147.xml \
 	config/everspring/an145.xml \
@@ -233,7 +258,10 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/evolve/lrm-as.xml \
 	config/evolve/lsm-15.xml \
 	config/evolve/ltm-5.xml \
+	config/evolve/t-100.xml \
 	config/fakro/arz.xml \
+	config/fakro/arzsolar.xml \
+	config/fakro/zrh12.xml \
 	config/fakro/zwp10.xml \
 	config/fakro/zwrs.xml \
 	config/fakro/zws12.xml \
@@ -255,28 +283,37 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/fibaro/fgpb101.xml \
 	config/fibaro/fgr221.xml \
 	config/fibaro/fgr223.xml \
+	config/fibaro/fgrgbw442.xml \
 	config/fibaro/fgrgbwm441.xml \
 	config/fibaro/fgrm222.xml \
 	config/fibaro/fgs211.xml \
 	config/fibaro/fgs212.xml \
 	config/fibaro/fgs213.xml \
+	config/fibaro/fgs214.xml \
 	config/fibaro/fgs221.xml \
 	config/fibaro/fgs222.xml \
 	config/fibaro/fgs223.xml \
+	config/fibaro/fgs224.xml \
 	config/fibaro/fgsd002.xml \
 	config/fibaro/fgss101.xml \
 	config/fibaro/fgt001.xml \
+	config/fibaro/fgwceu201.xml \
 	config/fibaro/fgwd111.xml \
 	config/fibaro/fgwds221.xml \
+	config/fibaro/fgwds221ss.xml \
 	config/fibaro/fgwoe.xml \
+	config/fibaro/fgwpb121.xml \
 	config/fibaro/fgwpe.xml \
 	config/fibaro/fgwpfzw5.xml \
 	config/fibaro/fgwpg111.xml \
 	config/fibaro/fgwr111.xml \
+	config/firstalert/zcombo-g.xml \
 	config/firstalert/zcombo.xml \
+	config/firstalert/zsmoke.xml \
 	config/followgood/swz-1002.xml \
 	config/forest/fs2z5232000002.xml \
 	config/fortrezz/fmi.xml \
+	config/fortrezz/fts05p.xml \
 	config/fortrezz/gdc1_fortrezz_1501.xml \
 	config/fortrezz/mimo2plus.xml \
 	config/fortrezz/mimolite.xml \
@@ -288,22 +325,30 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/frostdale/fdn2311.xml \
 	config/frostdale/fdn2nxx.xml \
 	config/ge/12719-plugin-switch.xml \
+	config/ge/12720.xml \
 	config/ge/12724-dimmer.xml \
 	config/ge/12727.xml \
+	config/ge/14280-plugin-dimmer.xml \
 	config/ge/14282-plugin-switch.xml \
 	config/ge/14284.xml \
+	config/ge/14285.xml \
 	config/ge/14288-outlet.xml \
 	config/ge/14291-switch.xml \
 	config/ge/14292-toggle-switch.xml \
 	config/ge/14294-dimmer.xml \
 	config/ge/14295-dimmer-toggle.xml \
+	config/ge/14298.xml \
+	config/ge/14322-dimmer-toggle.xml \
 	config/ge/26931-motion-switch.xml \
+	config/ge/26932-motion-dimmer.xml \
 	config/ge/26933-motion-dimmer.xml \
 	config/ge/28167-plugin-dimmer.xml \
 	config/ge/28169-plugin-switch.xml \
 	config/ge/45604.xml \
 	config/ge/46201-switch.xml \
+	config/ge/46202-switch.xml \
 	config/ge/46203-dimmer.xml \
+	config/ge/46204-dimmer-toggle.xml \
 	config/ge/dimmer.xml \
 	config/ge/dimmer_module.xml \
 	config/ge/hinge-pin.xml \
@@ -313,18 +358,22 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/ge/zw4001-switch.xml \
 	config/ge/zw6302.xml \
 	config/gocontrol/GC-TBZ48L.xml \
+	config/goodway/td14010.xml \
 	config/gr/gr-302n.xml \
 	config/gr/gr105.xml \
 	config/gr/gr105n.xml \
 	config/gr/grb3.xml \
 	config/graber/brz1.xml \
 	config/graber/csz1.xml \
+	config/graber/mcz1.xml \
 	config/graber/rsz1.xml \
 	config/graber/vcz1.xml \
 	config/greenwave/gs1110-1-gr-1.xml \
 	config/greenwave/powernode1.xml \
 	config/greenwave/powernode6.xml \
 	config/guardtec/gkw2000d.xml \
+	config/hab/iblindsV2.xml \
+	config/hab/iblindsV3.xml \
 	config/hank/hkzw-dws01.xml \
 	config/hank/hkzw-fld01.xml \
 	config/hank/hkzw-ms01.xml \
@@ -334,6 +383,7 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/hank/hkzw-so01-smartplug.xml \
 	config/hank/hkzw-so03.xml \
 	config/hank/hkzw-so05-smartplug.xml \
+	config/hank/hkzw-so08-smartplug.xml \
 	config/hank/scenecontroller1.xml \
 	config/hank/scenecontroller4.xml \
 	config/heiman/HS1CA-Z.xml \
@@ -345,6 +395,8 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/heiman/HS1WL-Z.xml \
 	config/heiman/HS2SK-Z.xml \
 	config/heiman/HS2WD-Z.xml \
+	config/heltun/he-ft01.xml \
+	config/heltun/he-ht01.xml \
 	config/heltun/he-zw-sw-5a-1.xml \
 	config/heltun/he-zw-therm-fc1.xml \
 	config/heltun/he-zw-therm-fl2.xml \
@@ -362,7 +414,16 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/homeseer/hsm100.xml \
 	config/homeseer/hsm200.xml \
 	config/homeseer/ztroller.xml \
+	config/honeywell/2681-plugin-dimmer.xml \
+	config/honeywell/3830-zw3107.xml \
+	config/honeywell/39348-ZW4005.xml \
+	config/honeywell/39348-zw4008.xml \
+	config/honeywell/39349-ZW1002.xml \
 	config/honeywell/39351-ZW3005.xml \
+	config/honeywell/39351-ZW3010.xml \
+	config/honeywell/39357-ZW3004.xml \
+	config/honeywell/39358-ZW4002.xml \
+	config/honeywell/39449-ZW4106.xml \
 	config/honeywell/lynx-touch-l5100.xml \
 	config/honeywell/th6320zw2003.xml \
 	config/honeywell/th8320zw1000.xml \
@@ -381,14 +442,18 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/idlock/idlock101.xml \
 	config/idlock/idlock150.xml \
 	config/images/2gig/ct100.png \
+	config/images/2gig/ct200.png \
 	config/images/2gig/ct32.png \
 	config/images/BeNext/AlarmSound.png \
 	config/images/BeNext/DoorSensor.png \
 	config/images/BeNext/Molite.png \
+	config/images/BeNext/P1dongle.png \
 	config/images/BeNext/TagReader.png \
 	config/images/BeNext/TagReader500.png \
 	config/images/BeNext/mydisplay.png \
 	config/images/BeNext/mygate.png \
+	config/images/DefaultProductImage.png \
+	config/images/abus/SHRM10000.jpg \
 	config/images/act/lfm20.png \
 	config/images/act/zdm230.png \
 	config/images/act/zdp100.png \
@@ -455,23 +520,35 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/aeotec/zwa004.png \
 	config/images/aeotec/zwa005.png \
 	config/images/aeotec/zwa006.png \
+	config/images/aeotec/zwa009.png \
+	config/images/aeotec/zwa011.png \
+	config/images/aeotec/zwa012.png \
+	config/images/aeotec/zwa019.png \
+	config/images/aeotec/zwa021.png \
+	config/images/aeotec/zwa023.png \
 	config/images/airlinemechanical/zds-ud10.png \
 	config/images/alfred/DB2.png \
 	config/images/assa_abloy/ConexisL1.png \
 	config/images/assa_abloy/KeyfreeConnected-plus.png \
 	config/images/assa_abloy/KeyfreeConnected.png \
+	config/images/assa_abloy/ProSLKey-FreeDeadbolt.png \
 	config/images/assa_abloy/PushButtonDeadbolt.png \
 	config/images/assa_abloy/TouchDeadbolt.png \
 	config/images/assa_abloy/TouchLever.png \
 	config/images/assa_abloy/nexTouch.png \
+	config/images/assa_abloy/yrd1x0.png \
+	config/images/assa_abloy/yrm276.png \
 	config/images/august/asl-03.png \
 	config/images/buffalo/hw-100v15a-zw.png \
+	config/images/building36/b36-t10.png \
 	config/images/comfort/ucm.png \
+	config/images/connecthome/CH_201.png \
 	config/images/cooper/RF9501.png \
 	config/images/cooper/RF9505-T.png \
 	config/images/cooper/RF9517.png \
 	config/images/cooper/RF9540-N.png \
 	config/images/cooper/RF9542-Z.png \
+	config/images/cooper/RF9601.png \
 	config/images/cooper/rf9534.png \
 	config/images/danfoss/living.png \
 	config/images/danfoss/rsroom.png \
@@ -483,15 +560,20 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/devolo/mt2647.png \
 	config/images/devolo/mt2652.png \
 	config/images/devolo/mt2756.png \
+	config/images/devolo/mt2759.png \
+	config/images/devolo/mt2760.png \
+	config/images/devolo/mt2761.png \
 	config/images/diehlcontrols/766366.png \
 	config/images/dlink/dch-z110.png \
 	config/images/dlink/dch-z120.png \
+	config/images/dlink/dch-z210.png \
 	config/images/dlink/dch-z510.png \
 	config/images/dome/0002.png \
 	config/images/dome/0085.png \
 	config/images/dome/0086.png \
 	config/images/dome/0088.png \
 	config/images/dome/0201.png \
+	config/images/dome/dmex1.png \
 	config/images/domitech/zb22uk.png \
 	config/images/domitech/ze27eu.png \
 	config/images/dragontech/wd-100.png \
@@ -499,12 +581,14 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/duwi/zw-edan-300.png \
 	config/images/duwi/zw-zdan-300.png \
 	config/images/duwi/zwws.png \
+	config/images/ecodim/0.7.jpg \
 	config/images/ecolink/doorwindow.png \
 	config/images/ecolink/firefighter.png \
 	config/images/ecolink/floodfreeze.png \
 	config/images/ecolink/motion.png \
 	config/images/ecolink/sensor.png \
 	config/images/ecolink/tiltsensor.png \
+	config/images/econet/ezw1204.png \
 	config/images/electronicsolutions/dbmz.png \
 	config/images/enblink/ss201-us-w_1308.png \
 	config/images/enerwave/zw15rmplus.png \
@@ -512,9 +596,12 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/enerwave/zw20rm.png \
 	config/images/enerwave/zwn-bpc.png \
 	config/images/enerwave/zwnrsm1plus.png \
+	config/images/enerwave/zwnrsm2plus.png \
+	config/images/eurotronic/eur_airquality.png \
 	config/images/eurotronic/eur_cometz.png \
 	config/images/eurotronic/eur_spiritz.png \
 	config/images/eurotronic/eur_stellaz.png \
+	config/images/eurotronic/eur_temphumid.png \
 	config/images/everspring/ad146.png \
 	config/images/everspring/ad147.png \
 	config/images/everspring/an157.png \
@@ -542,12 +629,14 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/everspring/tse03.png \
 	config/images/evolve/lfm-20.png \
 	config/images/evolve/ltm-5.png \
+	config/images/evolve/t-100.png \
 	config/images/fakro/arz.png \
 	config/images/fakro/zws12.png \
 	config/images/fibaro/fgbs222.png \
 	config/images/fibaro/fgcd001.png \
 	config/images/fibaro/fgd212.png \
 	config/images/fibaro/fgdw2.png \
+	config/images/fibaro/fgfs101.png \
 	config/images/fibaro/fgfs101zw5.png \
 	config/images/fibaro/fggc001.png \
 	config/images/fibaro/fgk001.png \
@@ -557,21 +646,31 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/fibaro/fgmszw5.png \
 	config/images/fibaro/fgpb101.png \
 	config/images/fibaro/fgr223.png \
+	config/images/fibaro/fgrgbw442.png \
 	config/images/fibaro/fgrgbwm441.png \
+	config/images/fibaro/fgrm222.png \
 	config/images/fibaro/fgs213.png \
+	config/images/fibaro/fgs222.png \
 	config/images/fibaro/fgs223.png \
+	config/images/fibaro/fgs224.png \
 	config/images/fibaro/fgsd002.png \
 	config/images/fibaro/fgt001.png \
+	config/images/fibaro/fgwceu201.png \
 	config/images/fibaro/fgwd111.png \
+	config/images/fibaro/fgwds221.png \
 	config/images/fibaro/fgwoe.png \
+	config/images/fibaro/fgwpb121.png \
 	config/images/fibaro/fgwpe.png \
 	config/images/fibaro/fgwpfzw5.png \
 	config/images/fibaro/fgwpg111.png \
 	config/images/fibaro/fgwr111.png \
+	config/images/firstalert/zcombo-g.png \
 	config/images/firstalert/zcombo.png \
+	config/images/firstalert/zsmoke.png \
 	config/images/followgood/swz-1002.png \
 	config/images/forest/fs2z5232000002.png \
 	config/images/fortrezz/fmi.png \
+	config/images/fortrezz/fts05p.png \
 	config/images/fortrezz/gdc1_fortrezz_1501.png \
 	config/images/fortrezz/mimo2plus.png \
 	config/images/fortrezz/mimolite.png \
@@ -584,20 +683,26 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/ge/12719-plugin-switch.png \
 	config/images/ge/12724-dimmer.png \
 	config/images/ge/12727.png \
+	config/images/ge/14280-plugin-dimmer.png \
 	config/images/ge/14282-plugin-switch.png \
 	config/images/ge/14284.png \
+	config/images/ge/14285.png \
 	config/images/ge/14288-outlet.png \
 	config/images/ge/14291-switch.png \
 	config/images/ge/14292-toggle-switch.png \
 	config/images/ge/14294-dimmer.png \
 	config/images/ge/14295-dimmer-toggle.png \
+	config/images/ge/14298.png \
+	config/images/ge/14322-dimmer-toggle.png \
 	config/images/ge/26931-motion-switch.png \
 	config/images/ge/26933-motion-dimmer.png \
 	config/images/ge/28167-plugin-dimmer.png \
 	config/images/ge/28169-plugin-switch.png \
 	config/images/ge/45604.png \
 	config/images/ge/46201-switch.png \
+	config/images/ge/46202-switch.png \
 	config/images/ge/46203-dimmer.png \
+	config/images/ge/46204-dimmer-toggle.png \
 	config/images/ge/dimmer.png \
 	config/images/ge/dimmer_module.png \
 	config/images/ge/hinge-pin.png \
@@ -605,17 +710,21 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/ge/relay.png \
 	config/images/ge/ze26i.png \
 	config/images/ge/zw6302.png \
+	config/images/goodway/td14010.png \
 	config/images/gr/gr-302n.png \
 	config/images/gr/gr105.png \
 	config/images/gr/gr105n.png \
 	config/images/graber/brz1.png \
 	config/images/graber/csz1.png \
+	config/images/graber/mcz1.png \
 	config/images/graber/rsz1.png \
 	config/images/graber/vcz1.png \
 	config/images/greenwave/gs1110-1-gr-1.png \
 	config/images/greenwave/powernode1.png \
 	config/images/greenwave/powernode6.png \
 	config/images/guardtec/gkw2000d.png \
+	config/images/hab/iblinds.png \
+	config/images/hab/iblindsV3.png \
 	config/images/hank/hkzw-dws01.png \
 	config/images/hank/hkzw-fld01.png \
 	config/images/hank/hkzw-ms01.png \
@@ -634,9 +743,12 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/heiman/HS1SA-Z.png \
 	config/images/heiman/HS1WL-Z.png \
 	config/images/heiman/HS2SK-Z.png \
+	config/images/heltun/he-ft01.png \
+	config/images/heltun/he-ht01.png \
 	config/images/homeseer/hs-ds100plus.png \
 	config/images/homeseer/hs-fc200plus.png \
 	config/images/homeseer/hs-fls100plus.png \
+	config/images/homeseer/hs-fs100plus.png \
 	config/images/homeseer/hs-ls100plus.png \
 	config/images/homeseer/hs-ms100plus.png \
 	config/images/homeseer/hs-wd100plus.png \
@@ -644,7 +756,15 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/homeseer/hs-ws100plus.png \
 	config/images/homeseer/hs-ws200plus.png \
 	config/images/homeseer/hsm200.png \
+	config/images/honeywell/2681-plugin-dimmer.png \
+	config/images/honeywell/3830-zw3107.png \
+	config/images/honeywell/39348-ZW4005.png \
+	config/images/honeywell/39348-ZW4008.png \
+	config/images/honeywell/39349-ZW1002.png \
 	config/images/honeywell/39351-ZW3005.png \
+	config/images/honeywell/39357-ZW3004.png \
+	config/images/honeywell/39358-ZW4002.png \
+	config/images/honeywell/39449-ZW4106.png \
 	config/images/honeywell/lynx-touch-l5100.png \
 	config/images/honeywell/th6320zw2003.png \
 	config/images/honeywell/th8320zw1000.png \
@@ -665,33 +785,62 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/ingersoll/dwzwave1.png \
 	config/images/inovelli/lzw30-sn.png \
 	config/images/inovelli/lzw30.png \
+	config/images/inovelli/lzw31-sn.png \
+	config/images/inovelli/lzw31.png \
+	config/images/inovelli/lzw36.png \
+	config/images/inovelli/lzw40.png \
+	config/images/inovelli/lzw41.png \
+	config/images/inovelli/lzw42.png \
+	config/images/inovelli/lzw60.png \
+	config/images/inovelli/nzw30.png \
 	config/images/inovelli/simple_module.png \
 	config/images/iwatsu/ne-4ct-2p.png \
 	config/images/iwatsu/ne-4ct.png \
 	config/images/jasco/45601.png \
 	config/images/kaipule/im20.png \
+	config/images/kwikset/888.png \
+	config/images/kwikset/914c.png \
+	config/images/kwikset/916.jpg \
 	config/images/kwikset/smartcode.png \
 	config/images/leviton/dz15s.png \
 	config/images/leviton/dz6hd.png \
+	config/images/leviton/dzpa1.png \
 	config/images/leviton/dzpd3.png \
 	config/images/leviton/vrcs2.png \
 	config/images/leviton/vrf01.png \
 	config/images/leviton/vri10.png \
+	config/images/leviton/vrpa1.png \
+	config/images/leviton/vrpd3.png \
 	config/images/leviton/vrs15.png \
+	config/images/leviton/zw15r.png \
+	config/images/leviton/zw4sf.png \
 	config/images/linear/LB60Z-1.png \
 	config/images/linear/WD500Z5-1.png \
+	config/images/linear/WT00Z5-1.png \
 	config/images/linear/gd00z-7.png \
 	config/images/linear/ngd00z.png \
+	config/images/logicsoft/ZDB5100.png \
 	config/images/logicsoft/ZHC5010.png \
+	config/images/mcohome/015f_5102_d411.png \
 	config/images/mcohome/mh7h.png \
+	config/images/mcohome/mh8fceu0803.png \
 	config/images/mcohome/mhp220.png \
 	config/images/mcohome/mhp511.png \
+	config/images/mcohome/mhs513.png \
 	config/images/merten/5044xx.png \
 	config/images/merten/5046xx.png \
 	config/images/merten/506004.png \
 	config/images/merten/508244.png \
 	config/images/miyakawaelectric/me-d101.png \
+	config/images/namron/1402756.png \
+	config/images/namron/4512710.png \
+	config/images/namron/4512712.jpg \
+	config/images/namron/4512714.jpg \
+	config/images/namron/4512715.png \
+	config/images/namron/4512720.jpg \
+	config/images/namron/4512724.png \
 	config/images/nexia/db100z.png \
+	config/images/nexia/th100nx.png \
 	config/images/nodon/asp3100SmartPlug.png \
 	config/images/nodon/crc3100OctanRemote.png \
 	config/images/nodon/crc360xSofremote.png \
@@ -700,6 +849,8 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/northq/nq92021.png \
 	config/images/oomi/ft100.png \
 	config/images/oomi/ft111.png \
+	config/images/oomi/ft112.png \
+	config/images/oomi/ft118.png \
 	config/images/permundo/psc132zw.png \
 	config/images/permundo/psc234zw.png \
 	config/images/philio/pad02.png \
@@ -730,26 +881,34 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/popp/700045.png \
 	config/images/popp/700168.png \
 	config/images/popp/700397.png \
+	config/images/popp/701202.png \
 	config/images/popp/dwt.png \
 	config/images/popp/smoke-detector.png \
 	config/images/popp/solar-siren.png \
 	config/images/popp/zweather.png \
 	config/images/prowell/zw-702.png \
+	config/images/q-light/q-light_puck.png \
+	config/images/q-light/q-light_zerodim.png \
+	config/images/q-light/q-light_zerodim_2pol.png \
 	config/images/qees/reto-dimmer-plus.png \
 	config/images/qees/reto-plugin-switch.png \
+	config/images/qolsys/qz2140-840.png \
 	config/images/qubino/ZMNHADx.png \
 	config/images/qubino/ZMNHBDx.png \
 	config/images/qubino/ZMNHCDx.png \
 	config/images/qubino/ZMNHDA2.png \
 	config/images/qubino/ZMNHDDx.png \
+	config/images/qubino/ZMNHHDx.png \
 	config/images/qubino/ZMNHIDx.png \
 	config/images/qubino/ZMNHNDx.png \
 	config/images/qubino/ZMNHODx.png \
+	config/images/qubino/ZMNHQDx.png \
 	config/images/qubino/ZMNHSDx.png \
 	config/images/qubino/ZMNHTDx.png \
 	config/images/qubino/ZMNHVDx.png \
 	config/images/qubino/ZMNHWD1.png \
 	config/images/qubino/ZMNHYDx.png \
+	config/images/qubino/ZMNKADx.png \
 	config/images/qubino/zmnhxdx.png \
 	config/images/quby/qb2.png \
 	config/images/rcs/em52-zw.png \
@@ -764,6 +923,9 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/remotec/zxt-120.png \
 	config/images/remotec/zxt-310.png \
 	config/images/remotec/zxt-600.png \
+	config/images/ring/PIR-SS.png \
+	config/images/ring/contact-sensor-v2.png \
+	config/images/ring/motion-detector-v2.png \
 	config/images/schlage/BE468ZP.png \
 	config/images/schlage/BE469.png \
 	config/images/schlage/BE469ZP.png \
@@ -772,12 +934,23 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/sensative/strips.png \
 	config/images/sensative/stripscomfort.png \
 	config/images/sercomm/sw-clp01-eu.png \
+	config/images/shenzen_neo/ls03ch.jpg \
 	config/images/shenzen_neo/nas-ab01z.png \
+	config/images/shenzen_neo/nas-cs01z.jpg \
 	config/images/shenzen_neo/nas-ds01z.png \
 	config/images/shenzen_neo/nas-pd01z.png \
+	config/images/shenzen_neo/nas-pd02z.png \
+	config/images/shenzen_neo/nas-sc03ze.jpg \
 	config/images/shenzen_neo/nas-wr01z.png \
+	config/images/shenzen_neo/nas-wr01ze.png \
 	config/images/shenzen_neo/nas-ws02z.png \
+	config/images/shenzen_saykey/SK-3007-05.png \
+	config/images/shenzhen-neo/eu-1.png \
+	config/images/shenzhen-neo/eu-2.png \
+	config/images/shenzhen-neo/eu-3.png \
+	config/images/simon/10002020-13X.png \
 	config/images/simon/10002034-13X.png \
+	config/images/simon/10002080-13X.png \
 	config/images/smartthings/pgc401m.png \
 	config/images/smartthings/sth-eth200.png \
 	config/images/steinel/is140-2.png \
@@ -785,18 +958,37 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/steinel/rs-led-d2.png \
 	config/images/steinel/xled-home-2.png \
 	config/images/stelpro/stzw402.png \
+	config/images/sunricher/srzv9001k12dimz4.png \
+	config/images/sunricher/srzv9001k12dimz5.png \
+	config/images/sunricher/srzv9001k2dim.png \
+	config/images/sunricher/srzv9001k4dim.png \
+	config/images/sunricher/srzv9001k4dimg2.png \
 	config/images/sunricher/srzv9001k8.png \
 	config/images/sunricher/srzv9001t4dimeu.png \
+	config/images/sunricher/srzv9001tccteu.png \
 	config/images/sunricher/srzv9003t4rgbweu.png \
+	config/images/sunricher/srzv9101facct.png \
 	config/images/sunricher/srzv9101sachpeu.png \
+	config/images/sunricher/srzv9101sachpswitch.png \
+	config/images/sunricher/zv2835rac.png \
+	config/images/sunricher/zv9100a.png \
 	config/images/sunricher/zv9101.png \
 	config/images/swiid/swiidinter.png \
+	config/images/technisat/03009496.png \
+	config/images/technisat/03009497.png \
+	config/images/technisat/03009499.png \
 	config/images/telldus/tzdw100.png \
 	config/images/telldus/tzwp100.png \
 	config/images/telldus/tzwp102.png \
 	config/images/there/800z.png \
+	config/images/thermofloor/Heatit-Z-Push-button-8-white.png \
+	config/images/thermofloor/heatit0204.png \
 	config/images/thermofloor/heatit021.png \
 	config/images/thermofloor/heatit056.png \
+	config/images/thermofloor/heatit058.png \
+	config/images/thermofloor/heatit20a.png \
+	config/images/thermofloor/heatit_zdim.png \
+	config/images/thermofloor/heatitzm.png \
 	config/images/trane/TZEMT400AB32MAA.png \
 	config/images/trane/TZEMT400BB32MAA.png \
 	config/images/trane/TZEMT524AA21MA.png \
@@ -814,6 +1006,7 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/vision/zm1601eu.png \
 	config/images/vision/zm1601eu5.png \
 	config/images/vision/zm1602eu5.png \
+	config/images/vision/zm1701.png \
 	config/images/vision/zp3102.png \
 	config/images/vision/zp3111.png \
 	config/images/vision/zr1202us.png \
@@ -832,15 +1025,27 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/wenzhou/tz67.png \
 	config/images/wenzhou/tz68.png \
 	config/images/wenzhou/tz69.png \
+	config/images/wenzhou/tz77.png \
+	config/images/wenzhou/tz78.png \
 	config/images/wenzhou/tz88.png \
+	config/images/wenzhou/tze96.png \
+	config/images/widom/DRY.png \
 	config/images/widom/UBS104.png \
 	config/images/widom/UME304C_S.png \
+	config/images/widom/UMS2.png \
 	config/images/widom/WDS.png \
+	config/images/widom/WDS2.png \
+	config/images/widom/WSP.png \
+	config/images/widom/WTED.png \
+	config/images/wink/wnk-mot1.png \
+	config/images/wink/wnk-sir1p.png \
+	config/images/zen17.png \
 	config/images/zipato/HS1CA-Z.png \
 	config/images/zipato/HS1CG-Z.png \
 	config/images/zipato/HS1SA-Z.png \
 	config/images/zipato/HS1WL-Z.png \
 	config/images/zipato/RGBBulb.png \
+	config/images/zipato/ne-nas-ab01z.png \
 	config/images/zipato/pan04.png \
 	config/images/zipato/phpab01.png \
 	config/images/zipato/pse02.png \
@@ -850,12 +1055,25 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/zipato/zp3102.png \
 	config/images/zooz/zen06.png \
 	config/images/zooz/zen15.png \
+	config/images/zooz/zen16.png \
+	config/images/zooz/zen17.png \
 	config/images/zooz/zen20.png \
 	config/images/zooz/zen20v2.png \
 	config/images/zooz/zen21.png \
+	config/images/zooz/zen21v3.png \
 	config/images/zooz/zen22.png \
+	config/images/zooz/zen23v3.png \
+	config/images/zooz/zen24v2.png \
 	config/images/zooz/zen26.png \
 	config/images/zooz/zen27.png \
+	config/images/zooz/zen30.png \
+	config/images/zooz/zen31.png \
+	config/images/zooz/zen32.png \
+	config/images/zooz/zen34.png \
+	config/images/zooz/zen71.png \
+	config/images/zooz/zen72.png \
+	config/images/zooz/zen76.png \
+	config/images/zooz/zen77.png \
 	config/images/zooz/zse09.png \
 	config/images/zooz/zse19.png \
 	config/images/zooz/zse29.png \
@@ -869,12 +1087,23 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/images/zwave.me/ZUno.png \
 	config/images/zwave.me/kfob.png \
 	config/images/zwave.me/popp_kfob-c.png \
+	config/images/zwave.me/razberry.png \
 	config/images/zwave.me/zme_raz5.png \
+	config/images/zwave.me/zme_wallc_s.png \
 	config/images/zwave.me/zweather.png \
+	config/images/zwp/PA-100.png \
 	config/images/zwp/WD-100.png \
 	config/ingersoll/dwzwave1.xml \
 	config/inovelli/lzw30-sn.xml \
 	config/inovelli/lzw30.xml \
+	config/inovelli/lzw31-sn.xml \
+	config/inovelli/lzw31.xml \
+	config/inovelli/lzw36.xml \
+	config/inovelli/lzw40.xml \
+	config/inovelli/lzw41.xml \
+	config/inovelli/lzw42.xml \
+	config/inovelli/lzw45.xml \
+	config/inovelli/lzw60.xml \
 	config/inovelli/nzw1201.xml \
 	config/inovelli/nzw30.xml \
 	config/inovelli/nzw31.xml \
@@ -891,9 +1120,14 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/jasco/45601.xml \
 	config/kaipule/im20.xml \
 	config/kaipule/ix32.xml \
+	config/kwikset/888.xml \
+	config/kwikset/910.xml \
+	config/kwikset/914c.xml \
+	config/kwikset/916.xml \
 	config/kwikset/smartcode.xml \
 	config/leviton/dz15s.xml \
 	config/leviton/dz6hd.xml \
+	config/leviton/dzpa1.xml \
 	config/leviton/dzpd3.xml \
 	config/leviton/rzi10.xml \
 	config/leviton/vrcpg.xml \
@@ -903,7 +1137,11 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/leviton/vrf01.xml \
 	config/leviton/vri06.xml \
 	config/leviton/vri10.xml \
+	config/leviton/vrpa1.xml \
+	config/leviton/vrpd3.xml \
 	config/leviton/vrs15.xml \
+	config/leviton/zw15r.xml \
+	config/leviton/zw4sf.xml \
 	config/linear/GC-TBZ48.xml \
 	config/linear/LB60Z-1.xml \
 	config/linear/PD300Z-2.xml \
@@ -915,19 +1153,25 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/linear/WD500Z5-1.xml \
 	config/linear/WS15Z-1.xml \
 	config/linear/WT00Z-1.xml \
+	config/linear/WT00Z5-1.xml \
 	config/linear/gd00z-7.xml \
 	config/linear/ngd00z.xml \
+	config/logicsoft/ZDB5100.xml \
 	config/logicsoft/ZHC5002.xml \
 	config/logicsoft/ZHC5010.xml \
 	config/manufacturer_specific.xml \
 	config/manufacturer_specific.xsd \
 	config/mcohome/a8-9.xml \
+	config/mcohome/mh10pm25wd.xml \
 	config/mcohome/mh7h.xml \
 	config/mcohome/mh8fceu.xml \
+	config/mcohome/mh8fceu0803.xml \
 	config/mcohome/mh9co2.xml \
+	config/mcohome/mhdt411.xml \
 	config/mcohome/mhp210.xml \
 	config/mcohome/mhp220.xml \
 	config/mcohome/mhp511.xml \
+	config/mcohome/mhs220.xml \
 	config/mcohome/mhs311.xml \
 	config/mcohome/mhs312.xml \
 	config/mcohome/mhs314.xml \
@@ -941,7 +1185,16 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/merten/508244.xml \
 	config/merten/50x5xx.xml \
 	config/miyakawaelectric/me-d101.xml \
+	config/namron/1402756.xml \
+	config/namron/4512710.xml \
+	config/namron/4512712.xml \
+	config/namron/4512714.xml \
+	config/namron/4512715.xml \
+	config/namron/4512720.xml \
+	config/namron/4512724.xml \
+	config/nei/ms11z.xml \
 	config/nexia/db100z.xml \
+	config/nexia/th100nx.xml \
 	config/nodon/asp3100SmartPlug.xml \
 	config/nodon/crc3100OctanRemote.xml \
 	config/nodon/crc360xSofremote.xml \
@@ -952,6 +1205,8 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/northq/nq92021.xml \
 	config/oomi/ft100.xml \
 	config/oomi/ft111.xml \
+	config/oomi/ft112.xml \
+	config/oomi/ft118.xml \
 	config/options.xml \
 	config/options.xsd \
 	config/permundo/psc132zw.xml \
@@ -992,15 +1247,21 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/popp/123658.xml \
 	config/popp/700045.xml \
 	config/popp/700168.xml \
+	config/popp/700342.xml \
 	config/popp/700397.xml \
 	config/popp/700793.xml \
+	config/popp/701202.xml \
 	config/popp/dwt.xml \
 	config/popp/smoke-detector.xml \
 	config/popp/solar-siren.xml \
 	config/popp/zweather.xml \
 	config/prowell/zw-702.xml \
+	config/q-light/q-light_puck.xml \
+	config/q-light/q-light_zerodim.xml \
+	config/q-light/q-light_zerodim_2pol.xml \
 	config/qees/reto-dimmer-plus.xml \
 	config/qees/reto-plugin-switch.xml \
+	config/qolsys/qz2140-840.xml \
 	config/qubino/ZMNHAA2.xml \
 	config/qubino/ZMNHADx.xml \
 	config/qubino/ZMNHBA2.xml \
@@ -1018,6 +1279,7 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/qubino/ZMNHKDx.xml \
 	config/qubino/ZMNHLAx.xml \
 	config/qubino/ZMNHLDx.xml \
+	config/qubino/ZMNHMDx.xml \
 	config/qubino/ZMNHNDx.xml \
 	config/qubino/ZMNHODx.xml \
 	config/qubino/ZMNHQDx.xml \
@@ -1030,6 +1292,7 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/qubino/ZMNHXDx.xml \
 	config/qubino/ZMNHYDx.xml \
 	config/qubino/ZMNHZDx.xml \
+	config/qubino/ZMNKADx.xml \
 	config/qubino/ZMNKIDx.xml \
 	config/quby/qb2.xml \
 	config/rcs/em52-zw.xml \
@@ -1047,6 +1310,9 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/remotec/zxt-120.xml \
 	config/remotec/zxt-310.xml \
 	config/remotec/zxt-600.xml \
+	config/ring/PIR-SS.xml \
+	config/ring/contact-sensor-v2.xml \
+	config/ring/motion-detector-v2.xml \
 	config/schlage/BE468.xml \
 	config/schlage/BE468ZP.xml \
 	config/schlage/BE469.xml \
@@ -1055,21 +1321,30 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/schlagelink/41.xml \
 	config/schlagelink/itemp.xml \
 	config/schlagelink/minikeypad.xml \
+	config/sensative/kaipule/im20.xml \
+	config/sensative/kaipule/ix32.xml \
 	config/sensative/strips.xml \
 	config/sensative/stripscomfort.xml \
 	config/sercomm/sw-clp01-eu.xml \
 	config/shenzen_neo/ls01ch.xml \
 	config/shenzen_neo/ls02ch.xml \
+	config/shenzen_neo/ls03ch.xml \
 	config/shenzen_neo/nas-ab01z.xml \
+	config/shenzen_neo/nas-cs01z.xml \
 	config/shenzen_neo/nas-ds01z.xml \
 	config/shenzen_neo/nas-pd01z.xml \
 	config/shenzen_neo/nas-pd02z.xml \
+	config/shenzen_neo/nas-pd03z.xml \
 	config/shenzen_neo/nas-rc01z.xml \
+	config/shenzen_neo/nas-sc03ze.xml \
 	config/shenzen_neo/nas-wr01z.xml \
 	config/shenzen_neo/nas-wr01ze.xml \
 	config/shenzen_neo/nas-ws02z.xml \
+	config/shenzen_saykey/sk-3007-05.xml \
+	config/simon/10002020-13X.xml \
 	config/simon/10002034-13X.xml \
 	config/simon/10002041-13X.xml \
+	config/simon/10002080-13X.xml \
 	config/smartthings/pgc401m.xml \
 	config/smartthings/sth-eth200.xml \
 	config/somfy/1811265_ZRTSI.xml \
@@ -1078,19 +1353,40 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/steinel/rs-led-d2.xml \
 	config/steinel/xled-home-2.xml \
 	config/stelpro/stzw402.xml \
+	config/sunricher/srzv9001k12dimz4.xml \
+	config/sunricher/srzv9001k12dimz5.xml \
+	config/sunricher/srzv9001k2dim.xml \
+	config/sunricher/srzv9001k4dim.xml \
+	config/sunricher/srzv9001k4dimg2.xml \
 	config/sunricher/srzv9001k8.xml \
 	config/sunricher/srzv9001t4dimeu.xml \
+	config/sunricher/srzv9001tccteu.xml \
 	config/sunricher/srzv9003t4rgbweu.xml \
+	config/sunricher/srzv9100aa.xml \
 	config/sunricher/srzv9101sachpeu.xml \
+	config/sunricher/srzv9101sachpswitch.xml \
+	config/sunricher/zv2835rac.xml \
 	config/sunricher/zv9101.xml \
+	config/sunricher/zv9101fa.xml \
 	config/swiid/swiidinter.xml \
 	config/swiid/swiidplug.xml \
+	config/technisat/03009496.xml \
+	config/technisat/03009497.xml \
+	config/technisat/03009499.xml \
 	config/telldus/tzdw100.xml \
 	config/telldus/tzwp100.xml \
 	config/telldus/tzwp102.xml \
 	config/there/800z.xml \
+	config/thermofloor/heatit-zdim.xml \
+	config/thermofloor/heatit021-v1.92.xml \
 	config/thermofloor/heatit021.xml \
 	config/thermofloor/heatit056.xml \
+	config/thermofloor/heatit058.xml \
+	config/thermofloor/heatit204.xml \
+	config/thermofloor/heatit20a.xml \
+	config/thermofloor/heatitz4.xml \
+	config/thermofloor/heatitz8.xml \
+	config/thermofloor/heatitzm.xml \
 	config/trane/TZEMT400AB32MAA.xml \
 	config/trane/TZEMT400BB32MAA.xml \
 	config/trane/TZEMT524AA21MA.xml \
@@ -1140,32 +1436,54 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/wenzhou/tz68.xml \
 	config/wenzhou/tz69.xml \
 	config/wenzhou/tz74.xml \
+	config/wenzhou/tz77.xml \
+	config/wenzhou/tz78.xml \
 	config/wenzhou/tz79.xml \
 	config/wenzhou/tz88.xml \
+	config/wenzhou/tze96.xml \
 	config/widom/DRY.xml \
 	config/widom/UBS104.xml \
 	config/widom/UME304C_S.xml \
+	config/widom/UMS2.xml \
 	config/widom/WDS.xml \
+	config/widom/WDS2.xml \
+	config/widom/WSP.xml \
+	config/widom/WTED.xml \
+	config/wink/wnk-mot1.xml \
+	config/wink/wnk-sir1p.xml \
 	config/zipato/MiniKeypad.xml \
 	config/zipato/RGBBulb.xml \
 	config/zipato/RGBBulb2.xml \
+	config/zipato/ne-nas-ab02z.xml \
 	config/zipato/pan04.xml \
 	config/zipato/vszd2102.xml \
 	config/zipato/zp3102.xml \
 	config/zooz/zen06.xml \
 	config/zooz/zen07.xml \
 	config/zooz/zen15.xml \
+	config/zooz/zen16.xml \
+	config/zooz/zen17.xml \
 	config/zooz/zen20.xml \
 	config/zooz/zen20v2.xml \
 	config/zooz/zen21.xml \
-	config/zooz/zen21v2.xml \
+	config/zooz/zen21v3.xml \
 	config/zooz/zen22.xml \
 	config/zooz/zen22v2.xml \
 	config/zooz/zen23.xml \
+	config/zooz/zen23v3.xml \
 	config/zooz/zen24.xml \
+	config/zooz/zen24v2.xml \
 	config/zooz/zen25.xml \
 	config/zooz/zen26.xml \
 	config/zooz/zen27.xml \
+	config/zooz/zen30.xml \
+	config/zooz/zen31.xml \
+	config/zooz/zen32.xml \
+	config/zooz/zen34.xml \
+	config/zooz/zen71.xml \
+	config/zooz/zen72.xml \
+	config/zooz/zen76.xml \
+	config/zooz/zen77.xml \
 	config/zooz/zse08.xml \
 	config/zooz/zse09.xml \
 	config/zooz/zse18.xml \
@@ -1189,6 +1507,7 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	config/zwave.me/iTemp.xml \
 	config/zwave.me/kfob.xml \
 	config/zwave.me/popp_kfob-c.xml \
+	config/zwave.me/razberry.xml \
 	config/zwave.me/zme_raz5.xml \
 	config/zwave.me/zweather.xml \
 	config/zwcfg.xsd \
@@ -1413,6 +1732,8 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	cpp/src/command_classes/SimpleAVCommandItem.h \
 	cpp/src/command_classes/SoundSwitch.cpp \
 	cpp/src/command_classes/SoundSwitch.h \
+	cpp/src/command_classes/Supervision.cpp \
+	cpp/src/command_classes/Supervision.h \
 	cpp/src/command_classes/SwitchAll.cpp \
 	cpp/src/command_classes/SwitchAll.h \
 	cpp/src/command_classes/SwitchBinary.cpp \
@@ -1488,6 +1809,7 @@ DISTFILES =	.github/workflows/PRTest.yml \
 	cpp/src/platform/unix/TimeStampImpl.h \
 	cpp/src/platform/unix/WaitImpl.cpp \
 	cpp/src/platform/unix/WaitImpl.h \
+	cpp/src/platform/unix/android.h \
 	cpp/src/platform/winRT/DNSImpl.cpp \
 	cpp/src/platform/winRT/DNSImpl.h \
 	cpp/src/platform/winRT/EventImpl.cpp \
diff --git a/makedist b/makedist
index b7a859b272..5a279cf5f2 100755
--- a/makedist
+++ b/makedist
@@ -9,7 +9,7 @@ use List::Util 1.33 'any';
 my $input = ".distfiles";
 my $output = "distfiles.mk";
 
-my @excludedir = (".github");
+my @excludedir = (".github", ".github/workflows");
 my @excludefile = ();
 
 open( my $fh => $input) || die "Cannot open $input: $!";