mirror of
https://github.com/Fishwaldo/open-zwave.git
synced 2025-03-15 11:31:40 +00:00
Sensor multi level (#1844)
* rewrite the SensorMultiLevel CC to read in Sensor Types and Scales from a Config File * Localization and ValueID Indexes, as well as use the Correct Unit for each ValueID * Windows Build Updates * Fix VS2010 build by adding SensorMultiLevelCCTypes * Remove VS2008 * Add SensorMultiLevelCCTypes to winRT * Update SensorMultiLevelCCTypes.xml DKD13867 Z-Wave Specification release 2019B registry says Illuminance and Lux * make dist-update * make gcc happy (about unused variable) * Set ForceInstances to false on Multi-Channel Assoc of FGMS-001 ZW5 (#1837) Fixes reporting
This commit is contained in:
parent
434d6f6fb2
commit
4478eea26b
22 changed files with 1678 additions and 2108 deletions
1
Makefile
1
Makefile
|
@ -55,6 +55,7 @@ xmltest: $(XMLLINT)
|
|||
@$(XMLLINT) --noout --schema $(top_srcdir)/config/manufacturer_specific.xsd $(top_srcdir)/config/manufacturer_specific.xml
|
||||
@$(XMLLINT) --noout --schema $(top_srcdir)/config/Localization.xsd $(top_srcdir)/config/Localization.xml
|
||||
@$(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
|
||||
endif
|
||||
|
|
|
@ -885,17 +885,13 @@
|
|||
</CommandClass>
|
||||
<CommandClass id="49">
|
||||
<Label>COMMAND_CLASS_SENSOR_MULTILEVEL</Label>
|
||||
<Value index="0">
|
||||
<Help>Undefined Sensor State</Help>
|
||||
<Label>Undefined</Label>
|
||||
</Value>
|
||||
<Value index="1">
|
||||
<Help>Temperature Sensor Value</Help>
|
||||
<Label>Temperature</Label>
|
||||
<Help>Air Temperature Sensor Value</Help>
|
||||
<Label>Air Temperature</Label>
|
||||
</Value>
|
||||
<Value index="2">
|
||||
<Help>General Sensor Value</Help>
|
||||
<Label>General</Label>
|
||||
<Help>General Purpose Sensor Value</Help>
|
||||
<Label>General Purpose</Label>
|
||||
</Value>
|
||||
<Value index="3">
|
||||
<Help>Luminance Sensor Value</Help>
|
||||
|
@ -906,8 +902,8 @@
|
|||
<Label>Power</Label>
|
||||
</Value>
|
||||
<Value index="5">
|
||||
<Help>Relative Humidity Sensor Value</Help>
|
||||
<Label>Relative Humidity</Label>
|
||||
<Help>Humidity Sensor Value</Help>
|
||||
<Label>Humidity</Label>
|
||||
</Value>
|
||||
<Value index="6">
|
||||
<Help>Velocity Sensor Value</Help>
|
||||
|
@ -954,8 +950,8 @@
|
|||
<Label>Current</Label>
|
||||
</Value>
|
||||
<Value index="17">
|
||||
<Help>CO2 Level Sensor Value</Help>
|
||||
<Label>CO2 Level</Label>
|
||||
<Help>Carbon Dioxide Sensor Value</Help>
|
||||
<Label>Carbon Dioxide</Label>
|
||||
</Value>
|
||||
<Value index="18">
|
||||
<Help>Air Flow Sensor Value</Help>
|
||||
|
@ -986,39 +982,599 @@
|
|||
<Label>Soil Temperature</Label>
|
||||
</Value>
|
||||
<Value index="25">
|
||||
<Help>Binary Sensor Value</Help>
|
||||
<Label>Sensor</Label>
|
||||
</Value>
|
||||
<Value index="26">
|
||||
<Help>Seismic Intensity Sensor Value</Help>
|
||||
<Label>Seismic Intensity</Label>
|
||||
</Value>
|
||||
<Value index="27">
|
||||
<Value index="26">
|
||||
<Help>Seismic Magnitude Sensor Value</Help>
|
||||
<Label>Sensor</Label>
|
||||
<Label>Seismic Magnitude</Label>
|
||||
</Value>
|
||||
<Value index="28">
|
||||
<Value index="27">
|
||||
<Help>Ultraviolet Sensor Value</Help>
|
||||
<Label>Ultraviolet</Label>
|
||||
</Value>
|
||||
<Value index="29">
|
||||
<Value index="28">
|
||||
<Help>Electrical Resistivity Sensor Value</Help>
|
||||
<Label>Electrical Resistivity</Label>
|
||||
</Value>
|
||||
<Value index="30">
|
||||
<Value index="29">
|
||||
<Help>Electrical Conductivity Sensor Value</Help>
|
||||
<Label>Electrical Conductivity</Label>
|
||||
</Value>
|
||||
<Value index="31">
|
||||
<Value index="30">
|
||||
<Help>Loudness Sensor Value</Help>
|
||||
<Label>Loudness</Label>
|
||||
</Value>
|
||||
<Value index="32">
|
||||
<Value index="31">
|
||||
<Help>Moisture Sensor Value</Help>
|
||||
<Label>Moisture</Label>
|
||||
</Value>
|
||||
<Value index="32">
|
||||
<Help>Frequency Sensor Value</Help>
|
||||
<Label>Frequency</Label>
|
||||
</Value>
|
||||
<Value index="33">
|
||||
<Help>Time Sensor Value</Help>
|
||||
<Label>Time</Label>
|
||||
</Value>
|
||||
<Value index="34">
|
||||
<Help>Target Temperature Sensor Value</Help>
|
||||
<Label>Target Temperature</Label>
|
||||
</Value>
|
||||
<Value index="35">
|
||||
<Help>Particulate Mater 2.5 Sensor Value</Help>
|
||||
<Label>Particulate Mater 2.5</Label>
|
||||
</Value>
|
||||
<Value index="36">
|
||||
<Help>Formaldehyde CH20 Level Sensor Value</Help>
|
||||
<Label>Formaldehyde CH20 Level</Label>
|
||||
</Value>
|
||||
<Value index="37">
|
||||
<Help>Radon Concentration Sensor Value</Help>
|
||||
<Label>Radon Concentration</Label>
|
||||
</Value>
|
||||
<Value index="38">
|
||||
<Help>Methane Density Sensor Value</Help>
|
||||
<Label>Methane Density</Label>
|
||||
</Value>
|
||||
<Value index="39">
|
||||
<Help>Volatile Organic Compound Sensor Value</Help>
|
||||
<Label>Volatile Organic Compound</Label>
|
||||
</Value>
|
||||
<Value index="40">
|
||||
<Help>Carbon Monoxide Sensor Value</Help>
|
||||
<Label>Carbon Monoxide</Label>
|
||||
</Value>
|
||||
<Value index="41">
|
||||
<Help>Soil Humidity Sensor Value</Help>
|
||||
<Label>Soil Humidity</Label>
|
||||
</Value>
|
||||
<Value index="42">
|
||||
<Help>Soil Reactivity Sensor Value</Help>
|
||||
<Label>Soil Reactivity</Label>
|
||||
</Value>
|
||||
<Value index="43">
|
||||
<Help>Soil Salinity Sensor Value</Help>
|
||||
<Label>Soil Salinity</Label>
|
||||
</Value>
|
||||
<Value index="44">
|
||||
<Help>Heart Rate Sensor Value</Help>
|
||||
<Label>Heart Rate</Label>
|
||||
</Value>
|
||||
<Value index="45">
|
||||
<Help>Blood Pressure Sensor Value</Help>
|
||||
<Label>Blood Pressure</Label>
|
||||
</Value>
|
||||
<Value index="46">
|
||||
<Help>Muscle Mass Sensor Value</Help>
|
||||
<Label>Muscle Mass</Label>
|
||||
</Value>
|
||||
<Value index="47">
|
||||
<Help>Fat Mass Sensor Value</Help>
|
||||
<Label>Fat Mass</Label>
|
||||
</Value>
|
||||
<Value index="48">
|
||||
<Help>Bone Mass Sensor Value</Help>
|
||||
<Label>Bone Mass</Label>
|
||||
</Value>
|
||||
<Value index="49">
|
||||
<Help>Total Body Water Sensor Value</Help>
|
||||
<Label>Total Body Water</Label>
|
||||
</Value>
|
||||
<Value index="50">
|
||||
<Help>Basic Metabolic Rate Sensor Value</Help>
|
||||
<Label>Basic Metabolic Rate</Label>
|
||||
</Value>
|
||||
<Value index="51">
|
||||
<Help>Body Mass Index Sensor Value</Help>
|
||||
<Label>Body Mass Index</Label>
|
||||
</Value>
|
||||
<Value index="52">
|
||||
<Help>X-Axis Acceleration Sensor Value</Help>
|
||||
<Label>X-Axis Acceleration</Label>
|
||||
</Value>
|
||||
<Value index="53">
|
||||
<Help>Y-Axis Acceleration Sensor Value</Help>
|
||||
<Label>Y-Axis Acceleration</Label>
|
||||
</Value>
|
||||
<Value index="54">
|
||||
<Help>Z-Axis Acceleration Sensor Value</Help>
|
||||
<Label>Z-Axis Acceleration</Label>
|
||||
</Value>
|
||||
<Value index="55">
|
||||
<Help>Smoke Density Sensor Value</Help>
|
||||
<Label>Smoke Density</Label>
|
||||
</Value>
|
||||
<Value index="56">
|
||||
<Help>Water Flow Sensor Value</Help>
|
||||
<Label>Water Flow</Label>
|
||||
</Value>
|
||||
<Value index="57">
|
||||
<Help>Water Pressure Sensor Value</Help>
|
||||
<Label>Water Pressure</Label>
|
||||
</Value>
|
||||
<Value index="58">
|
||||
<Help>RF Signal Strength Sensor Value</Help>
|
||||
<Label>RF Signal Strength</Label>
|
||||
</Value>
|
||||
<Value index="59">
|
||||
<Help>Particulate Matter Sensor Value</Help>
|
||||
<Label>Particulate Matter</Label>
|
||||
</Value>
|
||||
<Value index="60">
|
||||
<Help>Respiratory Rate Sensor Value</Help>
|
||||
<Label>Respiratory Rate</Label>
|
||||
</Value>
|
||||
<Value index="61">
|
||||
<Help>Relative Modulation Sensor Value</Help>
|
||||
<Label>Relative Modulation</Label>
|
||||
</Value>
|
||||
<Value index="62">
|
||||
<Help>Boiler Water Temperature Sensor Value</Help>
|
||||
<Label>Boiler Water Temperature</Label>
|
||||
</Value>
|
||||
<Value index="63">
|
||||
<Help>Domestic Hot Water Temperature Sensor Value</Help>
|
||||
<Label>Domestic Hot Water Temperature</Label>
|
||||
</Value>
|
||||
<Value index="64">
|
||||
<Help>Outside Temperature Sensor Value</Help>
|
||||
<Label>Outside Temperature</Label>
|
||||
</Value>
|
||||
<Value index="65">
|
||||
<Help>Exhaust Temperature Sensor Value</Help>
|
||||
<Label>Exhaust Temperature</Label>
|
||||
</Value>
|
||||
<Value index="66">
|
||||
<Help>Water Chlorine Sensor Value</Help>
|
||||
<Label>Water Chlorine</Label>
|
||||
</Value>
|
||||
<Value index="67">
|
||||
<Help>Water Acidity Sensor Value</Help>
|
||||
<Label>Water Acidity</Label>
|
||||
</Value>
|
||||
<Value index="68">
|
||||
<Help>Water Oxidation Reduction Potential Sensor Value</Help>
|
||||
<Label>Water Oxidation Reduction Potential</Label>
|
||||
</Value>
|
||||
<Value index="69">
|
||||
<Help>Heart Rate LF/HF Ratio Sensor Value</Help>
|
||||
<Label>Heart Rate LF/HF Ratio</Label>
|
||||
</Value>
|
||||
<Value index="70">
|
||||
<Help>Motion Direction Sensor Value</Help>
|
||||
<Label>Motion Direction</Label>
|
||||
</Value>
|
||||
<Value index="71">
|
||||
<Help>Applied Force Sensor Value</Help>
|
||||
<Label>Applied Force</Label>
|
||||
</Value>
|
||||
<Value index="72">
|
||||
<Help>Return Air Temperature Sensor Value</Help>
|
||||
<Label>Return Air Temperature</Label>
|
||||
</Value>
|
||||
<Value index="73">
|
||||
<Help>Supply Air Temperature Sensor Value</Help>
|
||||
<Label>Supply Air Temperature</Label>
|
||||
</Value>
|
||||
<Value index="74">
|
||||
<Help>Condenser Coil Temperature Sensor Value</Help>
|
||||
<Label>Condenser Coil Temperature</Label>
|
||||
</Value>
|
||||
<Value index="75">
|
||||
<Help>Evaporator Coil Temperature Sensor Value</Help>
|
||||
<Label>Evaporator Coil Temperature</Label>
|
||||
</Value>
|
||||
<Value index="76">
|
||||
<Help>Liquid Line Temperature Sensor Value</Help>
|
||||
<Label>Liquid Line Temperature</Label>
|
||||
</Value>
|
||||
<Value index="77">
|
||||
<Help>Discharge Line Temperature Sensor Value</Help>
|
||||
<Label>Discharge Line Temperature</Label>
|
||||
</Value>
|
||||
<Value index="78">
|
||||
<Help>Suction Sensor Value</Help>
|
||||
<Label>Suction</Label>
|
||||
</Value>
|
||||
<Value index="79">
|
||||
<Help>Discharge Sensor Value</Help>
|
||||
<Label>Discharge</Label>
|
||||
</Value>
|
||||
<Value index="80">
|
||||
<Help>Defrost Temperature Sensor Value</Help>
|
||||
<Label>Defrost Temperature</Label>
|
||||
</Value>
|
||||
<Value index="81">
|
||||
<Help>Ozone Sensor Value</Help>
|
||||
<Label>Ozone</Label>
|
||||
</Value>
|
||||
<Value index="82">
|
||||
<Help>Sulfur Dioxide Sensor Value</Help>
|
||||
<Label>Sulfur Dioxide</Label>
|
||||
</Value>
|
||||
<Value index="83">
|
||||
<Help>Nitrogen Dioxide Sensor Value</Help>
|
||||
<Label>Nitrogen Dioxide</Label>
|
||||
</Value>
|
||||
<Value index="84">
|
||||
<Help>Ammonia Sensor Value</Help>
|
||||
<Label>Ammonia</Label>
|
||||
</Value>
|
||||
<Value index="85">
|
||||
<Help>Lead Sensor Value</Help>
|
||||
<Label>Lead</Label>
|
||||
</Value>
|
||||
<Value index="86">
|
||||
<Help>Particulate Matter Sensor Value</Help>
|
||||
<Label>Particulate Matter</Label>
|
||||
</Value>
|
||||
<Value index="256">
|
||||
<Help>Air Temperature Sensor Available Units</Help>
|
||||
<Label>Air Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="257">
|
||||
<Help>General Purpose Sensor Available Units</Help>
|
||||
<Label>General Purpose Units</Label>
|
||||
</Value>
|
||||
<Value index="258">
|
||||
<Help>Luminance Sensor Available Units</Help>
|
||||
<Label>Luminance Units</Label>
|
||||
</Value>
|
||||
<Value index="259">
|
||||
<Help>Power Sensor Available Units</Help>
|
||||
<Label>Power Units</Label>
|
||||
</Value>
|
||||
<Value index="260">
|
||||
<Help>Humidity Sensor Available Units</Help>
|
||||
<Label>Humidity Units</Label>
|
||||
</Value>
|
||||
<Value index="261">
|
||||
<Help>Velocity Sensor Available Units</Help>
|
||||
<Label>Velocity Units</Label>
|
||||
</Value>
|
||||
<Value index="262">
|
||||
<Help>Direction Sensor Available Units</Help>
|
||||
<Label>Direction Units</Label>
|
||||
</Value>
|
||||
<Value index="263">
|
||||
<Help>Atmospheric Pressure Sensor Available Units</Help>
|
||||
<Label>Atmospheric Pressure Units</Label>
|
||||
</Value>
|
||||
<Value index="264">
|
||||
<Help>Barometric Pressure Sensor Available Units</Help>
|
||||
<Label>Barometric Pressure Units</Label>
|
||||
</Value>
|
||||
<Value index="265">
|
||||
<Help>Solar Radiation Sensor Available Units</Help>
|
||||
<Label>Solar Radiation Units</Label>
|
||||
</Value>
|
||||
<Value index="266">
|
||||
<Help>Dew Point Sensor Available Units</Help>
|
||||
<Label>Dew Point Units</Label>
|
||||
</Value>
|
||||
<Value index="267">
|
||||
<Help>Rain Rate Sensor Available Units</Help>
|
||||
<Label>Rain Rate Units</Label>
|
||||
</Value>
|
||||
<Value index="268">
|
||||
<Help>Tide Level Sensor Available Units</Help>
|
||||
<Label>Tide Level Units</Label>
|
||||
</Value>
|
||||
<Value index="269">
|
||||
<Help>Weight Sensor Available Units</Help>
|
||||
<Label>Weight Units</Label>
|
||||
</Value>
|
||||
<Value index="270">
|
||||
<Help>Voltage Sensor Available Units</Help>
|
||||
<Label>Voltage Units</Label>
|
||||
</Value>
|
||||
<Value index="271">
|
||||
<Help>Current Sensor Available Units</Help>
|
||||
<Label>Current Units</Label>
|
||||
</Value>
|
||||
<Value index="272">
|
||||
<Help>Carbon Dioxide Sensor Available Units</Help>
|
||||
<Label>Carbon Dioxide Units</Label>
|
||||
</Value>
|
||||
<Value index="273">
|
||||
<Help>Air Flow Sensor Available Units</Help>
|
||||
<Label>Air Flow Units</Label>
|
||||
</Value>
|
||||
<Value index="274">
|
||||
<Help>Tank Capacity Sensor Available Units</Help>
|
||||
<Label>Tank Capacity Units</Label>
|
||||
</Value>
|
||||
<Value index="275">
|
||||
<Help>Distance Sensor Available Units</Help>
|
||||
<Label>Distance Units</Label>
|
||||
</Value>
|
||||
<Value index="276">
|
||||
<Help>Angle Position Sensor Available Units</Help>
|
||||
<Label>Angle Position Units</Label>
|
||||
</Value>
|
||||
<Value index="277">
|
||||
<Help>Rotation Sensor Available Units</Help>
|
||||
<Label>Rotation Units</Label>
|
||||
</Value>
|
||||
<Value index="278">
|
||||
<Help>Water Temperature Sensor Available Units</Help>
|
||||
<Label>Water Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="279">
|
||||
<Help>Soil Temperature Sensor Available Units</Help>
|
||||
<Label>Soil Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="280">
|
||||
<Help>Seismic Intensity Sensor Available Units</Help>
|
||||
<Label>Seismic Intensity Units</Label>
|
||||
</Value>
|
||||
<Value index="281">
|
||||
<Help>Seismic Magnitude Sensor Available Units</Help>
|
||||
<Label>Seismic Magnitude Units</Label>
|
||||
</Value>
|
||||
<Value index="282">
|
||||
<Help>Ultraviolet Sensor Available Units</Help>
|
||||
<Label>Ultraviolet Units</Label>
|
||||
</Value>
|
||||
<Value index="283">
|
||||
<Help>Electrical Resistivity Sensor Available Units</Help>
|
||||
<Label>Electrical Resistivity Units</Label>
|
||||
</Value>
|
||||
<Value index="284">
|
||||
<Help>Electrical Conductivity Sensor Available Units</Help>
|
||||
<Label>Electrical Conductivity Units</Label>
|
||||
</Value>
|
||||
<Value index="285">
|
||||
<Help>Loudness Sensor Available Units</Help>
|
||||
<Label>Loudness Units</Label>
|
||||
</Value>
|
||||
<Value index="286">
|
||||
<Help>Moisture Sensor Available Units</Help>
|
||||
<Label>Moisture Units</Label>
|
||||
</Value>
|
||||
<Value index="287">
|
||||
<Help>Frequency Sensor Available Units</Help>
|
||||
<Label>Frequency Units</Label>
|
||||
</Value>
|
||||
<Value index="288">
|
||||
<Help>Time Sensor Available Units</Help>
|
||||
<Label>Time Units</Label>
|
||||
</Value>
|
||||
<Value index="289">
|
||||
<Help>Target Temperature Sensor Available Units</Help>
|
||||
<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>
|
||||
</Value>
|
||||
<Value index="291">
|
||||
<Help>Formaldehyde CH20 Level Sensor Available Units</Help>
|
||||
<Label>Formaldehyde CH20 Level Units</Label>
|
||||
</Value>
|
||||
<Value index="292">
|
||||
<Help>Radon Concentration Sensor Available Units</Help>
|
||||
<Label>Radon Concentration Units</Label>
|
||||
</Value>
|
||||
<Value index="293">
|
||||
<Help>Methane Density Sensor Available Units</Help>
|
||||
<Label>Methane Density Units</Label>
|
||||
</Value>
|
||||
<Value index="294">
|
||||
<Help>Volatile Organic Compound Sensor Available Units</Help>
|
||||
<Label>Volatile Organic Compound Units</Label>
|
||||
</Value>
|
||||
<Value index="295">
|
||||
<Help>Carbon Monoxide Sensor Available Units</Help>
|
||||
<Label>Carbon Monoxide Units</Label>
|
||||
</Value>
|
||||
<Value index="296">
|
||||
<Help>Soil Humidity Sensor Available Units</Help>
|
||||
<Label>Soil Humidity Units</Label>
|
||||
</Value>
|
||||
<Value index="297">
|
||||
<Help>Soil Reactivity Sensor Available Units</Help>
|
||||
<Label>Soil Reactivity Units</Label>
|
||||
</Value>
|
||||
<Value index="298">
|
||||
<Help>Soil Salinity Sensor Available Units</Help>
|
||||
<Label>Soil Salinity Units</Label>
|
||||
</Value>
|
||||
<Value index="299">
|
||||
<Help>Heart Rate Sensor Available Units</Help>
|
||||
<Label>Heart Rate Units</Label>
|
||||
</Value>
|
||||
<Value index="300">
|
||||
<Help>Blood Pressure Sensor Available Units</Help>
|
||||
<Label>Blood Pressure Units</Label>
|
||||
</Value>
|
||||
<Value index="301">
|
||||
<Help>Muscle Mass Sensor Available Units</Help>
|
||||
<Label>Muscle Mass Units</Label>
|
||||
</Value>
|
||||
<Value index="302">
|
||||
<Help>Fat Mass Sensor Available Units</Help>
|
||||
<Label>Fat Mass Units</Label>
|
||||
</Value>
|
||||
<Value index="303">
|
||||
<Help>Bone Mass Sensor Available Units</Help>
|
||||
<Label>Bone Mass Units</Label>
|
||||
</Value>
|
||||
<Value index="304">
|
||||
<Help>Total Body Water Sensor Available Units</Help>
|
||||
<Label>Total Body Water Units</Label>
|
||||
</Value>
|
||||
<Value index="305">
|
||||
<Help>Basic Metabolic Rate Sensor Available Units</Help>
|
||||
<Label>Basic Metabolic Rate Units</Label>
|
||||
</Value>
|
||||
<Value index="306">
|
||||
<Help>Body Mass Index Sensor Available Units</Help>
|
||||
<Label>Body Mass Index Units</Label>
|
||||
</Value>
|
||||
<Value index="307">
|
||||
<Help>X-Axis Acceleration Sensor Available Units</Help>
|
||||
<Label>X-Axis Acceleration Units</Label>
|
||||
</Value>
|
||||
<Value index="308">
|
||||
<Help>Y-Axis Acceleration Sensor Available Units</Help>
|
||||
<Label>Y-Axis Acceleration Units</Label>
|
||||
</Value>
|
||||
<Value index="309">
|
||||
<Help>Z-Axis Acceleration Sensor Available Units</Help>
|
||||
<Label>Z-Axis Acceleration Units</Label>
|
||||
</Value>
|
||||
<Value index="310">
|
||||
<Help>Smoke Density Sensor Available Units</Help>
|
||||
<Label>Smoke Density Units</Label>
|
||||
</Value>
|
||||
<Value index="311">
|
||||
<Help>Water Flow Sensor Available Units</Help>
|
||||
<Label>Water Flow Units</Label>
|
||||
</Value>
|
||||
<Value index="312">
|
||||
<Help>Water Pressure Sensor Available Units</Help>
|
||||
<Label>Water Pressure Units</Label>
|
||||
</Value>
|
||||
<Value index="313">
|
||||
<Help>RF Signal Strength Sensor Available Units</Help>
|
||||
<Label>RF Signal Strength Units</Label>
|
||||
</Value>
|
||||
<Value index="314">
|
||||
<Help>Particulate Matter Sensor Available Units</Help>
|
||||
<Label>Particulate Matter Units</Label>
|
||||
</Value>
|
||||
<Value index="315">
|
||||
<Help>Respiratory Rate Sensor Available Units</Help>
|
||||
<Label>Respiratory Rate Units</Label>
|
||||
</Value>
|
||||
<Value index="316">
|
||||
<Help>Relative Modulation Sensor Available Units</Help>
|
||||
<Label>Relative Modulation Units</Label>
|
||||
</Value>
|
||||
<Value index="317">
|
||||
<Help>Boiler Water Temperature Sensor Available Units</Help>
|
||||
<Label>Boiler Water Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="318">
|
||||
<Help>Domestic Hot Water Temperature Sensor Available Units</Help>
|
||||
<Label>Domestic Hot Water Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="319">
|
||||
<Help>Outside Temperature Sensor Available Units</Help>
|
||||
<Label>Outside Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="320">
|
||||
<Help>Exhaust Temperature Sensor Available Units</Help>
|
||||
<Label>Exhaust Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="321">
|
||||
<Help>Water Chlorine Sensor Available Units</Help>
|
||||
<Label>Water Chlorine Units</Label>
|
||||
</Value>
|
||||
<Value index="322">
|
||||
<Help>Water Acidity Sensor Available Units</Help>
|
||||
<Label>Water Acidity Units</Label>
|
||||
</Value>
|
||||
<Value index="323">
|
||||
<Help>Water Oxidation Reduction Potential Sensor Available Units</Help>
|
||||
<Label>Water Oxidation Reduction Potential Units</Label>
|
||||
</Value>
|
||||
<Value index="324">
|
||||
<Help>Heart Rate LF/HF Ratio Sensor Available Units</Help>
|
||||
<Label>Heart Rate LF/HF Ratio Units</Label>
|
||||
</Value>
|
||||
<Value index="325">
|
||||
<Help>Motion Direction Sensor Available Units</Help>
|
||||
<Label>Motion Direction Units</Label>
|
||||
</Value>
|
||||
<Value index="326">
|
||||
<Help>Applied Force Sensor Available Units</Help>
|
||||
<Label>Applied Force Units</Label>
|
||||
</Value>
|
||||
<Value index="327">
|
||||
<Help>Return Air Temperature Sensor Available Units</Help>
|
||||
<Label>Return Air Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="328">
|
||||
<Help>Supply Air Temperature Sensor Available Units</Help>
|
||||
<Label>Supply Air Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="329">
|
||||
<Help>Condenser Coil Temperature Sensor Available Units</Help>
|
||||
<Label>Condenser Coil Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="330">
|
||||
<Help>Evaporator Coil Temperature Sensor Available Units</Help>
|
||||
<Label>Evaporator Coil Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="331">
|
||||
<Help>Liquid Line Temperature Sensor Available Units</Help>
|
||||
<Label>Liquid Line Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="332">
|
||||
<Help>Discharge Line Temperature Sensor Available Units</Help>
|
||||
<Label>Discharge Line Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="333">
|
||||
<Help>Suction Sensor Available Units</Help>
|
||||
<Label>Suction Units</Label>
|
||||
</Value>
|
||||
<Value index="334">
|
||||
<Help>Discharge Sensor Available Units</Help>
|
||||
<Label>Discharge Units</Label>
|
||||
</Value>
|
||||
<Value index="335">
|
||||
<Help>Defrost Temperature Sensor Available Units</Help>
|
||||
<Label>Defrost Temperature Units</Label>
|
||||
</Value>
|
||||
<Value index="336">
|
||||
<Help>Ozone Sensor Available Units</Help>
|
||||
<Label>Ozone Units</Label>
|
||||
</Value>
|
||||
<Value index="337">
|
||||
<Help>Sulfur Dioxide Sensor Available Units</Help>
|
||||
<Label>Sulfur Dioxide Units</Label>
|
||||
</Value>
|
||||
<Value index="338">
|
||||
<Help>Nitrogen Dioxide Sensor Available Units</Help>
|
||||
<Label>Nitrogen Dioxide Units</Label>
|
||||
</Value>
|
||||
<Value index="339">
|
||||
<Help>Ammonia Sensor Available Units</Help>
|
||||
<Label>Ammonia Units</Label>
|
||||
</Value>
|
||||
<Value index="340">
|
||||
<Help>Lead Sensor Available Units</Help>
|
||||
<Label>Lead Units</Label>
|
||||
</Value>
|
||||
<Value index="341">
|
||||
<Help>Particulate Matter Sensor Available Units</Help>
|
||||
<Label>Particulate Matter Units</Label>
|
||||
</Value>
|
||||
</CommandClass>
|
||||
<CommandClass id="121">
|
||||
<CommandClass id="121">
|
||||
<Label>COMMAND_CLASS_SOUND_SWITCH</Label>
|
||||
<Value index="0">
|
||||
<Help>The Number of Available Tones on the Node</Help>
|
||||
|
|
318
config/SensorMultiLevelCCTypes.xml
Normal file
318
config/SensorMultiLevelCCTypes.xml
Normal file
|
@ -0,0 +1,318 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<SensorTypes xmlns='https://github.com/OpenZWave/open-zwave' Revision="3">
|
||||
<SensorType id="1" name="Air Temperature">
|
||||
<SensorScale id="0" name="Celsius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="2" name="General Purpose">
|
||||
<SensorScale id="0" name="Percent">%</SensorScale>
|
||||
<SensorScale id="1" name="Dimensionless"></SensorScale>
|
||||
</SensorType>
|
||||
<!-- DKD13867 Z-Wave Specification release 2019B registry says Illuminance and Lux-->
|
||||
<SensorType id="3" name="Illuminance">
|
||||
<SensorScale id="0" name="Percent">%</SensorScale>
|
||||
<SensorScale id="1" name="Lux">Lux</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="4" name="Power">
|
||||
<SensorScale id="0" name="Watt">Watt</SensorScale>
|
||||
<SensorScale id="1" name="Btu/h">Btu/h</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="5" name="Humidity">
|
||||
<SensorScale id="0" name="Percent">%</SensorScale>
|
||||
<SensorScale id="1" name="Absolute Humidity">g/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="6" name="Velocity">
|
||||
<SensorScale id="0" name="Meter Per Second">m/s</SensorScale>
|
||||
<SensorScale id="1" name="Miles Per Hour">Mph</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="7" name="Direction">
|
||||
<SensorScale id="0" name="degrees">°</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="8" name="Atmospheric Pressure">
|
||||
<SensorScale id="0" name="kilopascal">kPa</SensorScale>
|
||||
<SensorScale id="1" name="Inches of Mercury">inHg</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="9" name="Barometic Pressure">
|
||||
<SensorScale id="0" name="kilopascal">kPa</SensorScale>
|
||||
<SensorScale id="1" name="Inches of Mercury">inHg</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="10" name="Solar Radiation">
|
||||
<SensorScale id="0" name="Watt Per Square Meter">W/m2</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="11" name="Dew Point">
|
||||
<SensorScale id="0" name="Celsius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="12" name="Rain Rate">
|
||||
<SensorScale id="0" name="Millimeter Per Hour">mm/h</SensorScale>
|
||||
<SensorScale id="1" name="Inches Per Hour">in/h</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="13" name="Tide Level">
|
||||
<SensorScale id="0" name="Meter">m</SensorScale>
|
||||
<SensorScale id="1" name="Feet">ft</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="14" name="Weight">
|
||||
<SensorScale id="0" name="Kilograms">Kg</SensorScale>
|
||||
<SensorScale id="1" name="Pounds">lb</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="15" name="Voltage">
|
||||
<SensorScale id="0" name="Volts">V</SensorScale>
|
||||
<SensorScale id="1" name="MilliVolts">mV</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="16" name="Current">
|
||||
<SensorScale id="0" name="Amps">A</SensorScale>
|
||||
<SensorScale id="1" name="MilliAmps">mA</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="17" name="Carbon Dioxide">
|
||||
<SensorScale id="0" name="Parts Per Million">Ppm</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="18" name="Air Flow">
|
||||
<SensorScale id="0" name="Cubic Meter Per Hour">M3/h</SensorScale>
|
||||
<SensorScale id="1" name="Cubic Feed Per Minute">cfm</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="19" name="Tank Capacity">
|
||||
<SensorScale id="0" name="Liter">l</SensorScale>
|
||||
<SensorScale id="1" name="Cubic Meter">M3</SensorScale>
|
||||
<SensorScale id="2" name="Gallons">gal</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="20" name="Distance">
|
||||
<SensorScale id="0" name="Meter">m</SensorScale>
|
||||
<SensorScale id="1" name="CentiMeter">cm</SensorScale>
|
||||
<SensorScale id="2" name="Feet">ft</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="21" name="Angle Position">
|
||||
<SensorScale id="0" name="Percent">%</SensorScale>
|
||||
<SensorScale id="1" name="Degress Relative to North Poll"></SensorScale>
|
||||
<SensorScale id="2" name="Degress Relative to South Poll"></SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="22" name="Rotation">
|
||||
<SensorScale id="0" name="Revolutions Per Minute">rpm</SensorScale>
|
||||
<SensorScale id="1" name="Hertz">Hz</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="23" name="Water Temperature">
|
||||
<SensorScale id="0" name="Celsius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="24" name="Soil Temperature">
|
||||
<SensorScale id="0" name="Celsius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="25" name="Seismic Intensity">
|
||||
<SensorScale id="0" name="Mercalli">MM</SensorScale>
|
||||
<SensorScale id="1" name="European Macroseismic">EMS</SensorScale>
|
||||
<SensorScale id="2" name="Liedu">Liedu</SensorScale>
|
||||
<SensorScale id="3" name="Shindo">Shindo</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="26" name="Seismic Magnitude">
|
||||
<SensorScale id="0" name="Local">Ml</SensorScale>
|
||||
<SensorScale id="1" name="Moment">Mw</SensorScale>
|
||||
<SensorScale id="2" name="Surface Wave">Ms</SensorScale>
|
||||
<SensorScale id="3" name="Body Wave">Mb</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="27" name="Ultraviolet">
|
||||
<SensorScale id="0" name="UV Index">UV</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="28" name="Electrical Resistivity">
|
||||
<SensorScale id="0" name="Ohm Meter">Ωm</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="29" name="Electrical Conductivity">
|
||||
<SensorScale id="0" name="Siemens Per Meter">S⋅m-1</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="30" name="Loudness">
|
||||
<SensorScale id="0" name="Absolute Loudness">dB</SensorScale>
|
||||
<SensorScale id="1" name="A-Weighted Decibels">dBA</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="31" name="Moisture">
|
||||
<SensorScale id="0" name="Percent">%</SensorScale>
|
||||
<SensorScale id="1" name="Volume Water Content">M3/m3</SensorScale>
|
||||
<SensorScale id="2" name="Impedance">kΩ</SensorScale>
|
||||
<SensorScale id="3" name="Water Activity">aw</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="32" name="Frequency">
|
||||
<SensorScale id="0" name="Hertz">Hz</SensorScale>
|
||||
<SensorScale id="1" name="KiloHertz">kHz</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="33" name="Time">
|
||||
<SensorScale id="0" name="Seconds">s</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="34" name="Target Temperature">
|
||||
<SensorScale id="0" name="Celsius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="35" name="Particulate Mater 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>
|
||||
<SensorType id="36" name="Formaldehyde CH20 Level">
|
||||
<SensorScale id="0" name="Mole Per Cubic Meter">mol/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="37" name="Radon Concentration">
|
||||
<SensorScale id="0" name="Becquerel per Cubic Meter">bq/m3</SensorScale>
|
||||
<SensorScale id="1" name="Picocuries per Liter">pCi/L</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="38" name="Methane Density">
|
||||
<SensorScale id="0" name="Mole per Cubic Meter">mol/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="39" name="Volatile Organic Compound">
|
||||
<SensorScale id="0" name="Mole per Cubic Meter">mol/m3</SensorScale>
|
||||
<SensorScale id="1" name="Parts per Million">Ppm</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="40" name="Carbon Monoxide">
|
||||
<SensorScale id="0" name="Mole per Cubic Meter">mol/m3</SensorScale>
|
||||
<SensorScale id="1" name="Pars per Million">Ppm</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="41" name="Soil Humidity">
|
||||
<SensorScale id="0" name="Percent">%</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="42" name="Soil Reactivity">
|
||||
<SensorScale id="0" name="Acidity">pH</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="43" name="Soil Salinity">
|
||||
<SensorScale id="0" name="Mole per Cubic Meter">mol/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="44" name="Heart Rate">
|
||||
<SensorScale id="0" name="Beats per Minute">Bpm</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="45" name="Blood Pressure">
|
||||
<SensorScale id="0" name="Systolic mmHg">mmHg</SensorScale>
|
||||
<SensorScale id="1" name="Diastolic mmHg">mmHg</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="46" name="Muscle Mass">
|
||||
<SensorScale id="0" name="Kilogram">Kg</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="47" name="Fat Mass">
|
||||
<SensorScale id="0" name="Kilogram">Kg</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="48" name="Bone Mass">
|
||||
<SensorScale id="0" name="Kilogram">Kg</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="49" name="Total Body Water">
|
||||
<SensorScale id="0" name="Kilogram">Kg</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="50" name="Basic Metabolic Rate">
|
||||
<SensorScale id="0" name="Joule">J</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="51" name="Body Mass Index">
|
||||
<SensorScale id="0" name="BMI">BMI</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="52" name="X-Axis Acceleration">
|
||||
<SensorScale id="0" name="Meter per Second Squared">m/s2</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="53" name="Y-Axis Acceleration">
|
||||
<SensorScale id="0" name="Meter per Second Squared">m/s2</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="54" name="Z-Axis Acceleration">
|
||||
<SensorScale id="0" name="Meter per Second Squared">m/s2</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="55" name="Smoke Density">
|
||||
<SensorScale id="0" name="Percent">%</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="56" name="Water Flow">
|
||||
<SensorScale id="0" name="Liter per Hour">l/h</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="57" name="Water Pressure">
|
||||
<SensorScale id="0" name="Kilopascal">kPa</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="58" name="RF Signal Strength">
|
||||
<SensorScale id="0" name="RSSI">RSSI</SensorScale>
|
||||
<SensorScale id="1" name="dBm">dBm</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="59" name="Particulate Matter">
|
||||
<SensorScale id="0" name="Mole per Cubic Meter">mol/m3</SensorScale>
|
||||
<SensorScale id="1" name="Microgram per Cubic Meter">μg/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="60" name="Respiratory Rate">
|
||||
<SensorScale id="0" name="Breaths per Minute">Bpm</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="61" name="Relative Modulation">
|
||||
<SensorScale id="0" name="Percent">%</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="62" name="Boiler Water Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="63" name="Domestic Hot Water Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="64" name="Outside Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="65" name="Exhaust Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="66" name="Water Chlorine">
|
||||
<SensorScale id="0" name="Milligram per Liter">mg/l</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="67" name="Water Acidity">
|
||||
<SensorScale id="0" name="Acidity">pH</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="68" name="Water Oxidation Reduction Potential">
|
||||
<SensorScale id="0" name="MilliVolt">mV</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="69" name="Heart Rate LF/HF Ratio">
|
||||
<SensorScale id="0" name="Unitless"></SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="70" name="Motion Direction">
|
||||
<SensorScale id="0" name="Direction">degrees</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="71" name="Applied Force">
|
||||
<SensorScale id="0" name="Newton">N</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="72" name="Return Air Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="73" name="Supply Air Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="74" name="Condenser Coil Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="75" name="Evaporator Coil Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="76" name="Liquid Line Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="77" name="Discharge Line Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="78" name="Suction">
|
||||
<SensorScale id="0" name="kilopascal">kPa</SensorScale>
|
||||
<SensorScale id="1" name="Pound per square inch">psi</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="79" name="Discharge">
|
||||
<SensorScale id="0" name="kilopascal">kPa</SensorScale>
|
||||
<SensorScale id="1" name="Pound per square inch">psi</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="80" name="Defrost Temperature">
|
||||
<SensorScale id="0" name="Celcius">C</SensorScale>
|
||||
<SensorScale id="1" name="Fahrenheit">F</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="81" name="Ozone">
|
||||
<SensorScale id="0" name="Microgram per Cubic Meter">μg/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="82" name="Sulfur Dioxide">
|
||||
<SensorScale id="0" name="Microgram per Cubic Meter">μg/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="83" name="Nitrogen Dioxide">
|
||||
<SensorScale id="0" name="Microgram per Cubic Meter">μg/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="84" name="Ammonia">
|
||||
<SensorScale id="0" name="Microgram per Cubic Meter">μg/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="85" name="Lead">
|
||||
<SensorScale id="0" name="Microgram per Cubic Meter">μg/m3</SensorScale>
|
||||
</SensorType>
|
||||
<SensorType id="86" name="Particulate Matter">
|
||||
<SensorScale id="0" name="Microgram per Cubic Meter">μg/m3</SensorScale>
|
||||
</SensorType>
|
||||
</SensorTypes>
|
30
config/SensorMultiLevelCCTypes.xsd
Normal file
30
config/SensorMultiLevelCCTypes.xsd
Normal file
|
@ -0,0 +1,30 @@
|
|||
<?xml version='1.0'?>
|
||||
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='https://github.com/OpenZWave/open-zwave' xmlns:SensorTypes='https://github.com/OpenZWave/open-zwave' elementFormDefault='qualified'>
|
||||
|
||||
<xs:element name='SensorTypes'>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref='SensorTypes:SensorType' minOccurs='1' maxOccurs='unbounded' />
|
||||
</xs:sequence>
|
||||
<xs:attribute name='Revision' type='xs:integer' use='required' />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name='SensorType'>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref='SensorTypes:SensorScale' minOccurs='1' maxOccurs='unbounded' />
|
||||
</xs:sequence>
|
||||
<xs:attribute name='id' type='xs:string' use='required' />
|
||||
<xs:attribute name='name' type='xs:string' use='required' />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name='SensorScale'>
|
||||
<xs:complexType mixed='true'>
|
||||
<xs:attribute name='id' type='xs:string' use='required' />
|
||||
<xs:attribute name='name' type='xs:string' use='required' />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
</xs:schema>
|
|
@ -1,4 +1,5 @@
|
|||
<Product Revision="9" 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/010F:1001:0801</MetaDataItem>
|
||||
<MetaDataItem name="ProductPic">images/fibaro/fgmszw5.png</MetaDataItem>
|
||||
|
@ -9,8 +10,7 @@
|
|||
3. Set the main controller in remove mode (see the controller’s manual).
|
||||
4. Quickly, three times press 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>
|
||||
6. Successful removing will be confirmed by the Z-Wave controller’s message.</MetaDataItem>
|
||||
<MetaDataItem name="Name">FIBARO Motion Sensor</MetaDataItem>
|
||||
<MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&filename=Manuals/3379/FGMS-001-EN-T-v2.1.pdf</MetaDataItem>
|
||||
<MetaDataItem name="Description">FIBARO Motion Sensor is a universal, Z-Wave Plus compatible multi-sensor. This device has a built-in motion sensor, temperature sensor and light sensor. Additionally, through vibrations detection, it may detect tampering attempt or an earthquake. FIBARO Motion Sensor is battery powered, completely wireless, and its casing allows for quick and non-invasive installation on any surface. The eye of the sensor visually indicates motion, temperature level, operating mode or may inform about Z-Wave network range. The device can be used for lighting scenes and presence monitoring systems.</MetaDataItem>
|
||||
|
@ -19,16 +19,14 @@
|
|||
3. Set the main controller in (security/non-security) add mode (see the controller’s manual).
|
||||
4. Quickly, three times press 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>
|
||||
6. Successful adding will be confirmed by the Z-Wave controller’s message.</MetaDataItem>
|
||||
<MetaDataItem name="ResetDescription">1. Open the cover by turning it counter-clockwise.
|
||||
2. Press and hold the B-button.
|
||||
3. Wait for visual indicator to glow yellow (2nd menu position).
|
||||
4. Release the B-button.
|
||||
5. Click the B-button to confirm selection.
|
||||
6. After few seconds the device will be reset, which is signalled with the red, fading visual indicator colour.
|
||||
Use reset procedure only if the primary controller is missing or inoperable.
|
||||
</MetaDataItem>
|
||||
Use reset procedure only if the primary controller is missing or inoperable.</MetaDataItem>
|
||||
<MetaDataItem id="1001" name="FrequencyName" type="0801">CEPT (Europe)</MetaDataItem>
|
||||
<MetaDataItem name="WakeupDescription">The Motion Sensor will wake up at a defined time interval and will always try to communicate with the main controller. There is a possibility to wake up the device manually by clicking the B-button.</MetaDataItem>
|
||||
<ChangeLog>
|
||||
|
@ -38,6 +36,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
<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/2763/xml</Entry>
|
||||
<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>
|
||||
</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>
|
||||
|
@ -53,14 +52,14 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Fibaro Motion Sensor FGMS-001-ZW5
|
||||
http://manuals.fibaro.com/content/manuals/en/FGMS-001/FGMS-001-EN-T-v2.0.pdf
|
||||
-->
|
||||
<!-- Configuration -->
|
||||
<!-- Configuration -->
|
||||
<CommandClass id="112">
|
||||
<Value genre="config" index="1" instance="1" label="Motion detection - sensitivity" max="255" min="0" type="byte" value="15">
|
||||
<Help>
|
||||
The lower the value, the more sensitive the PIR sensor is.
|
||||
Available settings: 8 - 255
|
||||
Default setting: 15
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="2" instance="1" label="Motion detection - blind time" max="15" min="0" type="byte" value="3">
|
||||
<Help>
|
||||
|
@ -69,14 +68,14 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Available settings: 0 - 15 (0.5-8 seconds).
|
||||
Formula to calculate the time: time [s] = 0.5 x (value+1))
|
||||
Default setting: 3
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="3" instance="1" label="Motion detection - pulse counter" max="3" min="0" size="1" type="list" value="1">
|
||||
<Help>
|
||||
This parameter determines the number of moves required for the PIR sensor to report motion. The higher the value, the less sensitive the PIR sensor is.
|
||||
It is not recommended to modify this parameter settings!
|
||||
Default setting: 1 (2 pulses)
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="1 pulse" value="0"/>
|
||||
<Item label="2 pulses" value="1"/>
|
||||
<Item label="3 pulses" value="2"/>
|
||||
|
@ -88,7 +87,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
The higher the value, the more sensitive the PIR sensor is.
|
||||
It is not recommended to modify this parameter setting!
|
||||
Default setting: 2 (12 seconds)
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="4 seconds" value="0"/>
|
||||
<Item label="8 seconds" value="1"/>
|
||||
<Item label="12 seconds" value="2"/>
|
||||
|
@ -100,7 +99,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Any motion detected during this period resets the timer.
|
||||
Available settings: 1 - 65535
|
||||
Default setting: 30 (30 seconds)
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="8" instance="1" label="Motion detection - operating mode" max="2" min="0" size="1" type="list" value="0">
|
||||
<Help>
|
||||
|
@ -108,7 +107,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
This parameter influences only the motion reports and associations.
|
||||
Tamper, light intensity and temperature measurements will be still active, regardless of this parameter settings.
|
||||
Default setting: 0 (always active)
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="PIR sensor always active" value="0"/>
|
||||
<Item label="PIR sensor active during the day only" value="1"/>
|
||||
<Item label="PIR sensor active during the night only" value="2"/>
|
||||
|
@ -118,13 +117,13 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
This parameter defines the difference between night and day in terms of light intensity, used in parameter 8.
|
||||
Available settings: 1 - 65535
|
||||
Default setting: 200 (200 lux)
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="12" instance="1" label="BASIC command class configuration" max="2" min="0" size="1" type="list" value="0">
|
||||
<Help>
|
||||
This parameter determines the command frames sent to 2nd association group (assigned to PIR sensor).
|
||||
Default setting: 0 (ON and OFF)
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="BASIC On and OFF" value="0"/>
|
||||
<Item label="Only the BASIC On" value="1"/>
|
||||
<Item label="Only the BASIC OFF" value="2"/>
|
||||
|
@ -135,14 +134,14 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Further motion detections, during the cancellation time, will not result in sending the association.
|
||||
Available settings: 0 - 255
|
||||
Default setting: 255
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="16" instance="1" label="BASIC OFF command frame value" max="255" min="0" size="2" type="short" value="0">
|
||||
<Help>
|
||||
The command frame sent at the moment of motion alarm cancellation, after cancellation delay time specified in parameter 6.
|
||||
Available settings: 0 - 255
|
||||
Default setting: 0
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="18" instance="1" label="Associations in Z-Wave network security mode" max="15" min="0" size="1" type="byte" value="15">
|
||||
<Help>
|
||||
|
@ -153,14 +152,14 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
2 - 3rd group sent as secure.
|
||||
4 - 4th group sent as secure.
|
||||
8 - 5th group sent as secure.
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="20" instance="1" label="Tamper - sensitivity" max="121" min="0" type="byte" value="20">
|
||||
<Help>
|
||||
This parameter determines the change in force acting on the device, that will result in reporting tamper alarm - g-force acceleration.
|
||||
Available settings: 0 - 121 (0.08 - 2g; multiply by 0.016g; 0 = tamper inactive)
|
||||
Default setting: 20 (0.4g)
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="22" instance="1" label="Tamper - alarm cancellation delay" max="32767" min="1" type="short" units="seconds" value="30">
|
||||
<Help>
|
||||
|
@ -168,14 +167,14 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Any tampering detected during this period will not extend the delay.
|
||||
Available settings: 1 - 65535
|
||||
Default setting: 30 (seconds)
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="24" instance="1" label="Tamper - operating modes" max="2" min="0" size="1" type="list" value="0">
|
||||
<Help>
|
||||
This parameter determines function of the tamper and sent reports.
|
||||
It is an advanced feature serving much more functions than just detection of tampering.
|
||||
Default setting: 0 (Tamper)
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="Tamper only" value="0"/>
|
||||
<Item label="Tamper and earthquake detector" value="1"/>
|
||||
<Item label="Tamper and orientation in space" value="2"/>
|
||||
|
@ -184,7 +183,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
<Help>
|
||||
This parameter allows to disable cancellation of the tamper alarm.
|
||||
Default setting: 0 (Tamper).
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="Do not send tamper cancellation report" value="0"/>
|
||||
<Item label="Send tamper cancellation report" value="1"/>
|
||||
</Value>
|
||||
|
@ -193,7 +192,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
The parameter determines whether the tamper alarm frame will or will not be sent in broadcast mode.
|
||||
Alarm frames sent in broadcast mode can be received by all of the devices within range (if they accept such frames), but not repeated by them.
|
||||
Default setting: 0
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="Tamper alarm sent to 3rd association group" value="0"/>
|
||||
<Item label="Tamper alarm sent in broadcast mode" value="1"/>
|
||||
</Value>
|
||||
|
@ -203,7 +202,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Alarm frames sent in broadcast mode can be received by all of the devices within range (if they accept such frames), but not repeated by them.
|
||||
This parameter provides backward compatibility with controllers not supporting Z-Wave+.
|
||||
Default setting: 0
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="Backward compatible tamper alarm sent to 5th association group" value="0"/>
|
||||
<Item label="Backward compatible tamper alarm sent in broadcast mode" value="1"/>
|
||||
</Value>
|
||||
|
@ -214,7 +213,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
0 - reports are not sent.
|
||||
1-32767 (luminance in lux).
|
||||
Default setting: 200 (200 lux).
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="42" instance="1" label="Luminance reports - interval" max="32767" min="0" type="short" units="seconds" value="0">
|
||||
<Help>
|
||||
|
@ -223,14 +222,14 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Available settings: 0 - 32767.
|
||||
0 - periodical reports are not sent.
|
||||
1-32767 (in seconds).
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="60" instance="1" label="Temperature report - threshold" max="255" min="0" type="short" value="10">
|
||||
<Help>
|
||||
This parameter determines the change in measured temperature that will result in new temperature report being sent to the main controller.
|
||||
Available settings: 0 - 255 (0.1 - 25.5C; 0 = reports are not sent)
|
||||
Default setting: 10 (1C)
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="62" instance="1" label="Temperature measuring - interval" max="32767" min="0" type="short" units="seconds" value="900">
|
||||
<Help>
|
||||
|
@ -238,27 +237,27 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
The shorter the time, the more frequently the temperature will be measured, but the battery life will shorten.
|
||||
Available settings: 0 - 32767 (1 - 32767 seconds; 0 = temperature is not measured)
|
||||
Default setting: 900 (900 seconds).
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="64" instance="1" label="Temperature report - interval" max="32767" min="0" type="short" units="seconds" value="0">
|
||||
<Help>
|
||||
Time interval between consecutive temperature reports. The reports are sent even if there is no change in the temperature.
|
||||
Available settings: 0 - 32767 (1 - 32767 seconds; 0 = periodical reports are not sent)
|
||||
Default setting: 0
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="66" instance="1" label="Temperature offset" max="65535" min="0" type="short" value="0">
|
||||
<Help>
|
||||
The value to be added to the actual temperature, measured by the sensor (temperature compensation).
|
||||
Available settings: 0 - 100 (0 to 100C) or 64536 - 65535 (-100 to -0.10C)
|
||||
Default setting: 0
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="80" instance="1" label="Visual LED indicator - signalling mode" max="26" min="0" size="1" type="list" value="10">
|
||||
<Help>
|
||||
This parameter determines the way in which visual indicator behaves after motion has been detected.
|
||||
Default setting: 10 (Flashlight mode)
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="LED inactive." value="0"/>
|
||||
<Item label="1 long blink, LED colour depends on the temperature. Set by parameters 86 and 87." value="1"/>
|
||||
<Item label="Flashlight mode - LED glows in white for 10 seconds." value="2"/>
|
||||
|
@ -293,14 +292,14 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Available settings: 0 - brightness determined by the luminance (parameters 82 and 83).
|
||||
1-100 (1-100%)
|
||||
Default setting: 50 (50 %)
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="82" instance="1" label="Visual LED indicator - luminance for low indicator brightness" max="32767" min="0" type="short" units="lux" value="100">
|
||||
<Help>
|
||||
Light intensity level below which brightness of visual indicator is set to 1%.
|
||||
Available settings: 0 to value of parameter 83 (in lux).
|
||||
Default setting: 100.
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="83" instance="1" label="Visual LED indicator - luminance for high indicator brightness" max="32767" min="0" type="short" units="lux" value="1000">
|
||||
<Help>
|
||||
|
@ -309,7 +308,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Default setting: 1000 (1000 lux)
|
||||
NOTE
|
||||
The value of the parameter 83 must be higher than the value of the parameter 82.
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="86" instance="1" label="Visual LED indicator - temperature for blue colour" max="255" min="0" type="byte" units="Celsius" value="18">
|
||||
<Help>
|
||||
|
@ -317,7 +316,7 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Relevant only when parameter 80 has been properly configured.
|
||||
Available settings: 0 to value of parameter 87 (in Celsius degree)
|
||||
Default setting: 18 (18C)
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="87" instance="1" label="Visual LED indicator - temperature for red colour" max="255" min="0" type="byte" units="Celsius" value="28">
|
||||
<Help>
|
||||
|
@ -325,13 +324,13 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
Relevant only when parameter 80 has been properly configured.
|
||||
Available settings: value of parameter 86 to 255 (in Celsius degree)
|
||||
Default setting: 28 (28C)
|
||||
</Help>
|
||||
</Help>
|
||||
</Value>
|
||||
<Value genre="config" index="89" instance="1" label="Visual LED indicator - tamper alarm" max="1" min="0" size="1" type="list" value="1">
|
||||
<Help>
|
||||
Indicating mode resembles a police car (white, red and blue).
|
||||
Default setting: 1 (on)
|
||||
</Help>
|
||||
</Help>
|
||||
<Item label="Tamper alarm is not indicated" value="0"/>
|
||||
<Item label="Tamper alarm is indicated" value="1"/>
|
||||
</Value>
|
||||
|
@ -342,14 +341,17 @@ Use reset procedure only if the primary controller is missing or inoperable.
|
|||
<SetAsReport>true</SetAsReport>
|
||||
</Compatibility>
|
||||
</CommandClass>
|
||||
<!-- Association Groups -->
|
||||
<CommandClass id="133">
|
||||
<!-- Multi Channel Association Groups -->
|
||||
<CommandClass id="142">
|
||||
<Compatibility>
|
||||
<ForceInstances>false</ForceInstances>
|
||||
</Compatibility>
|
||||
<Associations num_groups="5">
|
||||
<Group index="1" label="Lifeline" max_associations="1"/>
|
||||
<Group index="2" label="Motion" max_associations="5"/>
|
||||
<Group index="3" label="Tamper" max_associations="5"/>
|
||||
<Group auto="true" index="4" label="Motion BC" max_associations="5"/>
|
||||
<Group auto="true" index="5" label="Tamper BC" max_associations="5"/>
|
||||
<Group index="4" label="Motion BC" max_associations="5"/>
|
||||
<Group index="5" label="Tamper BC" max_associations="5"/>
|
||||
</Associations>
|
||||
</CommandClass>
|
||||
</Product>
|
||||
|
|
|
@ -379,6 +379,42 @@ if (defined($CFG::versiondb{"config/NotificationCCTypes.xml"}))
|
|||
}
|
||||
}
|
||||
|
||||
sub CheckSensorMultiLevelCCTypes {
|
||||
my %configfiles = map { lc $_ => 1} @{$_[0]};
|
||||
# create object
|
||||
my $xml = new XML::Simple;
|
||||
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");
|
||||
if (defined($CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"}))
|
||||
{
|
||||
if ($CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"}{md5} != $md5)
|
||||
{
|
||||
my $dbr = $CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"}->{Revision};
|
||||
my $fr = $data->{Revision};
|
||||
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 "\n";
|
||||
LogError("config/SensorMultiLevelCCTypes.xml", 8, "Revision Number Was Not Bumped");
|
||||
} else {
|
||||
my %versions;
|
||||
$versions{md5} = $md5;
|
||||
$versions{Revision} = $data->{Revision};
|
||||
$CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"} = \%versions;
|
||||
print("config/SensorMultiLevelCCTypes.xml"." - Updating Database\n");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
my %versions;
|
||||
$versions{md5} = $md5;
|
||||
$versions{Revision} = $data->{Revision};
|
||||
$CFG::versiondb{"config/SensorMultiLevelCCTypes.xml"} = \%versions;
|
||||
print("config/SensorMultiLevelCCTypes.xml"." - Adding new file to Database\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub PrettyPrintErrors() {
|
||||
if (length(%errors) > 1) {
|
||||
|
@ -576,6 +612,7 @@ foreach my $key (@dirs)
|
|||
CheckFileExists(\@filelist);
|
||||
CheckLocalization();
|
||||
CheckNotificationCCTypes();
|
||||
CheckSensorMultiLevelCCTypes();
|
||||
|
||||
if ($doxml == 0) {
|
||||
PrettyPrintErrors();
|
||||
|
@ -597,4 +634,4 @@ if ($errorsize == 0)
|
|||
open my $FH, '>', 'cpp/build/testconfigversions.cfg';
|
||||
print $FH Data::Dumper->Dump([\%CFG::versiondb], ['*versiondb']);
|
||||
close $FH;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -93,12 +93,16 @@
|
|||
},
|
||||
'config/Localization.xml' => {
|
||||
'Revision' => '7',
|
||||
'md5' => 'c2162c01b62733f1e2bd0b59e7d62b1f74050e74421c555066fdc838eb4ebb110cba4a39e0d354906584fd97b60cbd8953657f3cd51c91e174240ed0d3a9ae5e'
|
||||
'md5' => 'cfec106aa741f2f2e68f6dd75ad34b8fef40754217ccdbb4cdca9ea2c537acbf0eb2601de10a6fa8f23b6294edb646f0320967a2edc7648d13bc558afa451dc5'
|
||||
},
|
||||
'config/NotificationCCTypes.xml' => {
|
||||
'Revision' => '9',
|
||||
'md5' => 'fe343cf0b94ab320774f1a8c161bc4ec5c0b3193f83067c8810cfdac36148c4c68ecad20a940514562158afdae22543fbb54f710406b070114f53606cfba4e94'
|
||||
},
|
||||
'config/SensorMultiLevelCCTypes.xml' => {
|
||||
'Revision' => '3',
|
||||
'md5' => '0feafdbf1cc9dcd47c31ec4d2b380e57c6c84d8bf5819a6cc60da8cf88a80ece35a392f40cd1564e32c253be6df2e16b140cab51d1a2bf551663a01110e640f1'
|
||||
},
|
||||
'config/act/lfm20.xml' => {
|
||||
'Revision' => '2',
|
||||
'md5' => 'f4c1366e3f7ee171137d2688de970a6e4ae2d4939c22267eda205405ce5e397c731cda516bd76225bab830e0c4cb998a4da44e249d468e88593a0151c41157eb'
|
||||
|
@ -912,8 +916,8 @@
|
|||
'md5' => '76242fb913189103b1a368f5a5e4329cd443136b0b38e67286867e4170cc75527549130b1683015b93fbce90a7c9f7a95b3a22d3913c322e4730f44078b1e1f9'
|
||||
},
|
||||
'config/fibaro/fgmszw5.xml' => {
|
||||
'Revision' => 9,
|
||||
'md5' => '26c377b97da5876abb46d0e0d0d522471483e3a69b41af6ca6e93f7884475ad8530ad355ca7b64a910ac03e959047daffa1085128a808d54d2a67cb037826c4d'
|
||||
'Revision' => 10,
|
||||
'md5' => '47c434a0d05848c52c3ec693f491e978086eb90d926a00ffacd7056dd645bb1bc382ee348097e26613665b08429031aa94fe5d600810815431f530791dca9214'
|
||||
},
|
||||
'config/fibaro/fgpb101.xml' => {
|
||||
'Revision' => 6,
|
||||
|
|
|
@ -386,6 +386,7 @@ exit 0</Command>
|
|||
<ClInclude Include="..\..\..\src\platform\Wait.h" />
|
||||
<ClInclude Include="..\..\..\src\platform\winRT\HidControllerWinRT.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" />
|
||||
|
@ -517,6 +518,7 @@ exit 0</Command>
|
|||
<ClCompile Include="..\..\..\src\platform\TimeStamp.cpp" />
|
||||
<ClCompile Include="..\..\..\src\platform\Wait.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" />
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||
# Visual Studio 2008
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenZWave", "OpenZWave.vcproj", "{497F9828-DEC2-4C80-B9E0-AD066CCB587C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
DLL_Debug|Win32 = DLL_Debug|Win32
|
||||
DLL_Release|Win32 = DLL_Release|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.DLL_Debug|Win32.ActiveCfg = DLL_Debug|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.DLL_Debug|Win32.Build.0 = DLL_Debug|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.DLL_Release|Win32.ActiveCfg = DLL_Release|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.DLL_Release|Win32.Build.0 = DLL_Release|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
File diff suppressed because it is too large
Load diff
|
@ -230,11 +230,13 @@ exit 0</Command>
|
|||
<ClInclude Include="..\..\..\src\Defs.h" />
|
||||
<ClInclude Include="..\..\..\src\Driver.h" />
|
||||
<ClInclude Include="..\..\..\src\DNSThread.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" />
|
||||
|
@ -354,11 +356,13 @@ exit 0</Command>
|
|||
<ClCompile Include="..\..\..\src\CompatOptionManager.cpp" />
|
||||
<ClCompile Include="..\..\..\src\Driver.cpp" />
|
||||
<ClCompile Include="..\..\..\src\DNSThread.cpp" />
|
||||
<ClCompile Include="..\..\..\src\SensorMultiLevelCCTypes.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" />
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||
# Visual Studio 2008
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MinOZW", "MinOZW.vcproj", "{22847D76-B1CF-4921-8B7A-61E248412C4A}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C} = {497F9828-DEC2-4C80-B9E0-AD066CCB587C}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenZWave", "..\..\..\..\build\windows\vs2008\OpenZWave.vcproj", "{497F9828-DEC2-4C80-B9E0-AD066CCB587C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
DLL_Debug|Win32 = DLL_Debug|Win32
|
||||
DLL_Release|Win32 = DLL_Release|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{22847D76-B1CF-4921-8B7A-61E248412C4A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{22847D76-B1CF-4921-8B7A-61E248412C4A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{22847D76-B1CF-4921-8B7A-61E248412C4A}.DLL_Debug|Win32.ActiveCfg = DLL_Debug|Win32
|
||||
{22847D76-B1CF-4921-8B7A-61E248412C4A}.DLL_Debug|Win32.Build.0 = DLL_Debug|Win32
|
||||
{22847D76-B1CF-4921-8B7A-61E248412C4A}.DLL_Release|Win32.ActiveCfg = DLL_Release|Win32
|
||||
{22847D76-B1CF-4921-8B7A-61E248412C4A}.DLL_Release|Win32.Build.0 = DLL_Release|Win32
|
||||
{22847D76-B1CF-4921-8B7A-61E248412C4A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{22847D76-B1CF-4921-8B7A-61E248412C4A}.Release|Win32.Build.0 = Release|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.DLL_Debug|Win32.ActiveCfg = DLL_Debug|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.DLL_Debug|Win32.Build.0 = DLL_Debug|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.DLL_Release|Win32.ActiveCfg = DLL_Release|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.DLL_Release|Win32.Build.0 = DLL_Release|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{497F9828-DEC2-4C80-B9E0-AD066CCB587C}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -1,336 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="MinOZW"
|
||||
ProjectGUID="{22847D76-B1CF-4921-8B7A-61E248412C4A}"
|
||||
RootNamespace="MinOZW"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\src;..\..\..\..\src\value_classes;..\..\..\..\src\platform"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies=""$(OutDir)\OpenZWave.lib""
|
||||
OutputFile="$(OutDir)\$(ProjectName).exe"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
AdditionalIncludeDirectories="..\..\..\..\src;..\..\..\..\src\value_classes;..\..\..\..\src\platform"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies=""$(OutDir)\OpenZWave.lib""
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="DLL_Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\src;..\..\..\..\src\value_classes;..\..\..\..\src\platform"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;OPENZWAVE_USEDLL"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies=""$(OutDir)\OpenZWave.lib""
|
||||
OutputFile="$(OutDir)\$(ProjectName).exe"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="DLL_Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
AdditionalIncludeDirectories="..\..\..\..\src;..\..\..\..\src\value_classes;..\..\..\..\src\platform"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;OPENZWAVE_USEDLL"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies=""$(OutDir)\OpenZWave.lib""
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\Main.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
|
@ -40,6 +40,7 @@
|
|||
#include "NotificationCCTypes.h"
|
||||
#include "Options.h"
|
||||
#include "Scene.h"
|
||||
#include "SensorMultiLevelCCTypes.h"
|
||||
#include "Utils.h"
|
||||
|
||||
#include "platform/Mutex.h"
|
||||
|
@ -195,7 +196,7 @@ Manager::Manager() :
|
|||
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();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
257
cpp/src/SensorMultiLevelCCTypes.cpp
Executable file
257
cpp/src/SensorMultiLevelCCTypes.cpp
Executable file
|
@ -0,0 +1,257 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// SensorMultiLevelCCTypes.cpp
|
||||
//
|
||||
// SensorMultiLevelCCTypes for SensorMultiLevel Command Class
|
||||
//
|
||||
// Copyright (c) 2019 Justin Hammond <justin@dynam.ac>
|
||||
//
|
||||
// SOFTWARE NOTICE AND LICENSE
|
||||
//
|
||||
// This file is part of OpenZWave.
|
||||
//
|
||||
// OpenZWave is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published
|
||||
// by the Free Software Foundation, either version 3 of the License,
|
||||
// or (at your option) any later version.
|
||||
//
|
||||
// OpenZWave is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with OpenZWave. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
#include "SensorMultiLevelCCTypes.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "tinyxml.h"
|
||||
#include "Options.h"
|
||||
#include "Utils.h"
|
||||
#include "platform/Log.h"
|
||||
|
||||
namespace OpenZWave
|
||||
{
|
||||
namespace Internal
|
||||
{
|
||||
|
||||
SensorMultiLevelCCTypes *SensorMultiLevelCCTypes::m_instance = NULL;
|
||||
std::map<uint32, SensorMultiLevelCCTypes::SensorMultiLevelTypes *> SensorMultiLevelCCTypes::SensorTypes;
|
||||
uint32 SensorMultiLevelCCTypes::m_revision(0);
|
||||
|
||||
SensorMultiLevelCCTypes::SensorMultiLevelCCTypes()
|
||||
{
|
||||
}
|
||||
|
||||
void SensorMultiLevelCCTypes::ReadXML()
|
||||
{
|
||||
// Parse the Z-Wave manufacturer and product XML file.
|
||||
string configPath;
|
||||
Options::Get()->GetOptionAsString("ConfigPath", &configPath);
|
||||
|
||||
string path = configPath + "SensorMultiLevelCCTypes.xml";
|
||||
TiXmlDocument* pDoc = new TiXmlDocument();
|
||||
if (!pDoc->LoadFile(path.c_str(), TIXML_ENCODING_UTF8))
|
||||
{
|
||||
delete pDoc;
|
||||
Log::Write(LogLevel_Warning, "Unable to load SensorMultiLevelCCTypes file %s", path.c_str());
|
||||
return;
|
||||
}
|
||||
pDoc->SetUserData((void*) path.c_str());
|
||||
Log::Write(LogLevel_Info, "Loading SensorMultiLevelCCTypes File %s", path.c_str());
|
||||
|
||||
TiXmlElement const* root = pDoc->RootElement();
|
||||
char const *str = root->Value();
|
||||
if (str && !strcmp(str, "SensorTypes"))
|
||||
{
|
||||
// Read in the revision attributes
|
||||
str = root->Attribute("Revision");
|
||||
if (!str)
|
||||
{
|
||||
Log::Write(LogLevel_Info, "Error in SensorMultiLevel Config file at line %d - missing Revision attribute", root->Row());
|
||||
delete pDoc;
|
||||
return;
|
||||
}
|
||||
m_revision = atol(str);
|
||||
}
|
||||
TiXmlElement const* SensorTypeElement = root->FirstChildElement();
|
||||
while (SensorTypeElement)
|
||||
{
|
||||
char const* str = SensorTypeElement->Value();
|
||||
char* pStopChar;
|
||||
if (str && !strcmp(str, "SensorType"))
|
||||
{
|
||||
SensorMultiLevelTypes *st = new SensorMultiLevelTypes;
|
||||
|
||||
str = SensorTypeElement->Attribute("id");
|
||||
if (!str)
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::ReadXML: Error in %s at line %d - missing SensorType ID attribute", SensorTypeElement->GetDocument()->GetUserData(), SensorTypeElement->Row());
|
||||
SensorTypeElement = SensorTypeElement->NextSiblingElement();
|
||||
delete st;
|
||||
continue;
|
||||
}
|
||||
st->id = (uint32) strtol(str, &pStopChar, 10);
|
||||
str = SensorTypeElement->Attribute("name");
|
||||
if (!str)
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::ReadXML: Error in %s at line %d - missing SensorType name attribute", SensorTypeElement->GetDocument()->GetUserData(), SensorTypeElement->Row());
|
||||
SensorTypeElement = SensorTypeElement->NextSiblingElement();
|
||||
delete st;
|
||||
continue;
|
||||
}
|
||||
st->name = str;
|
||||
trim(st->name);
|
||||
TiXmlElement const* SensorScaleElement = SensorTypeElement->FirstChildElement();
|
||||
while (SensorScaleElement)
|
||||
{
|
||||
str = SensorScaleElement->Value();
|
||||
if (str && !strcmp(str, "SensorScale"))
|
||||
{
|
||||
SensorMultiLevelScales *ss = new SensorMultiLevelScales;
|
||||
str = SensorScaleElement->Attribute("id");
|
||||
if (!str)
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::ReadXML: Error in %s at line %d - missing SensorScale id attribute", SensorScaleElement->GetDocument()->GetUserData(), SensorScaleElement->Row());
|
||||
SensorScaleElement = SensorScaleElement->NextSiblingElement();
|
||||
delete ss;
|
||||
continue;
|
||||
}
|
||||
|
||||
ss->id = (uint32) strtol(str, &pStopChar, 10);
|
||||
|
||||
str = SensorScaleElement->Attribute("name");
|
||||
if (!str)
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::ReadXML: Error in %s at line %d - missing SensorScale name attribute", SensorScaleElement->GetDocument()->GetUserData(), SensorScaleElement->Row());
|
||||
SensorScaleElement = SensorScaleElement->NextSiblingElement();
|
||||
delete ss;
|
||||
continue;
|
||||
}
|
||||
ss->name = str;
|
||||
trim(ss->name);
|
||||
|
||||
str = SensorScaleElement->GetText();
|
||||
if (str) {
|
||||
ss->unit = str;
|
||||
trim(ss->unit);
|
||||
}
|
||||
|
||||
if (st->allSensorScales.find(ss->id) == st->allSensorScales.end())
|
||||
st->allSensorScales[ss->id] = ss;
|
||||
else
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::ReadXML: Error in %s at line %d - A SensorScale with id %d already exists. Skipping ", SensorScaleElement->GetDocument()->GetUserData(), SensorScaleElement->Row(), ss->id);
|
||||
delete ss;
|
||||
}
|
||||
}
|
||||
SensorScaleElement = SensorScaleElement->NextSiblingElement();
|
||||
}
|
||||
if (SensorTypes.find(st->id) == SensorTypes.end())
|
||||
SensorTypes[st->id] = st;
|
||||
else
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::ReadXML: Error in %s at line %d - A SensorTypeElement with id %d already exists. Skipping ", SensorTypeElement->GetDocument()->GetUserData(), SensorTypeElement->Row(), st->id);
|
||||
delete st;
|
||||
}
|
||||
}
|
||||
SensorTypeElement = SensorTypeElement->NextSiblingElement();
|
||||
}
|
||||
Log::Write(LogLevel_Info, "Loaded %s With Revision %d", pDoc->GetUserData(), m_revision);
|
||||
#if 0
|
||||
std::cout << "SensorMultiLevelCCTypes" << std::endl;
|
||||
for (std::map<uint32, SensorMultiLevelCCTypes::SensorMultiLevelTypes *>::iterator it = SensorTypes.begin(); it != SensorTypes.end(); it++)
|
||||
{
|
||||
std::cout << "\tSensorTypes:" << (uint32)it->first << " Name: " << it->second->name << std::endl;
|
||||
for (std::map<uint8, SensorMultiLevelCCTypes::SensorMultiLevelScales *>::iterator it2 = it->second->allSensorScales.begin(); it2 != it->second->allSensorScales.end(); it2++)
|
||||
{
|
||||
std::cout << "\t\tSensorScales: " << (uint32)it2->first << " Name: " << it2->second->name << std::endl;
|
||||
}
|
||||
}
|
||||
exit(0);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
std::string SensorMultiLevelCCTypes::GetSensorName(uint32 type)
|
||||
{
|
||||
if (SensorTypes.find(type) != SensorTypes.end())
|
||||
{
|
||||
return SensorTypes.at(type)->name;
|
||||
}
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::GetSensorName - Unknown SensorType %d", type);
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
std::string SensorMultiLevelCCTypes::GetSensorUnit(uint32 type, uint8 scale)
|
||||
{
|
||||
if (SensorTypes.find(type) == SensorTypes.end())
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::GetSensorUnit - Unknown SensorType %d", type);
|
||||
return "";
|
||||
}
|
||||
SensorScales ss = SensorTypes.at(type)->allSensorScales;
|
||||
if (ss.find(scale) == ss.end())
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::GetSensorUnit - Unknown SensorScale %d", scale);
|
||||
return "";
|
||||
|
||||
}
|
||||
return ss.at(scale)->unit;
|
||||
}
|
||||
|
||||
std::string SensorMultiLevelCCTypes::GetSensorUnitName(uint32 type, uint8 scale) {
|
||||
if (SensorTypes.find(type) == SensorTypes.end())
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::GetSensorUnit - Unknown SensorType %d", type);
|
||||
return "";
|
||||
}
|
||||
SensorScales ss = SensorTypes.at(type)->allSensorScales;
|
||||
if (ss.find(scale) == ss.end())
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::GetSensorUnit - Unknown SensorScale %d", scale);
|
||||
return "";
|
||||
|
||||
}
|
||||
return ss.at(scale)->name;
|
||||
|
||||
}
|
||||
|
||||
|
||||
const SensorMultiLevelCCTypes::SensorScales SensorMultiLevelCCTypes::GetSensorScales(uint32 type)
|
||||
{
|
||||
if (SensorTypes.find(type) == SensorTypes.end())
|
||||
{
|
||||
Log::Write(LogLevel_Warning, "SensorMultiLevelCCTypes::GetSensorUnit - Unknown SensorType %d", type);
|
||||
return SensorScales();
|
||||
}
|
||||
return SensorTypes.at(type)->allSensorScales;
|
||||
}
|
||||
|
||||
|
||||
bool SensorMultiLevelCCTypes::Create()
|
||||
{
|
||||
if (m_instance != NULL)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
m_instance = new SensorMultiLevelCCTypes();
|
||||
ReadXML();
|
||||
return true;
|
||||
}
|
||||
|
||||
SensorMultiLevelCCTypes *SensorMultiLevelCCTypes::Get()
|
||||
{
|
||||
if (m_instance != NULL)
|
||||
{
|
||||
return m_instance;
|
||||
}
|
||||
m_instance = new SensorMultiLevelCCTypes();
|
||||
ReadXML();
|
||||
return m_instance;
|
||||
}
|
||||
} // namespace Internal
|
||||
} // namespace OpenZWave
|
87
cpp/src/SensorMultiLevelCCTypes.h
Executable file
87
cpp/src/SensorMultiLevelCCTypes.h
Executable file
|
@ -0,0 +1,87 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// SensorMultiLevelCCTypes.h
|
||||
//
|
||||
// SensorMultiLevelCCTypes for SensorMultiLevel Command Class
|
||||
//
|
||||
// Copyright (c) 2019 Justin Hammond <justin@dynam.ac>
|
||||
//
|
||||
// SOFTWARE NOTICE AND LICENSE
|
||||
//
|
||||
// This file is part of OpenZWave.
|
||||
//
|
||||
// OpenZWave is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published
|
||||
// by the Free Software Foundation, either version 3 of the License,
|
||||
// or (at your option) any later version.
|
||||
//
|
||||
// OpenZWave is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with OpenZWave. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef SENSORMULTILEVELCCTYPES_H
|
||||
#define SENSORMULTILEVELCCTYPES_H
|
||||
|
||||
#include <cstdio>
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include "Defs.h"
|
||||
#include "Driver.h"
|
||||
#include "command_classes/CommandClass.h"
|
||||
|
||||
namespace OpenZWave
|
||||
{
|
||||
namespace Internal
|
||||
{
|
||||
|
||||
class SensorMultiLevelCCTypes
|
||||
{
|
||||
public:
|
||||
class SensorMultiLevelScales
|
||||
{
|
||||
public:
|
||||
uint8 id;
|
||||
string name;
|
||||
string unit;
|
||||
};
|
||||
typedef std::map<uint8, SensorMultiLevelCCTypes::SensorMultiLevelScales *> SensorScales;
|
||||
class SensorMultiLevelTypes
|
||||
{
|
||||
public:
|
||||
uint32 id;
|
||||
string name;
|
||||
SensorScales allSensorScales;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Construction
|
||||
//-----------------------------------------------------------------------------
|
||||
private:
|
||||
SensorMultiLevelCCTypes();
|
||||
~SensorMultiLevelCCTypes();
|
||||
static void ReadXML();
|
||||
public:
|
||||
static SensorMultiLevelCCTypes* Get();
|
||||
static bool Create();
|
||||
string GetSensorName(uint32);
|
||||
string GetSensorUnit(uint32, uint8);
|
||||
string GetSensorUnitName(uint32, uint8);
|
||||
const SensorScales GetSensorScales(uint32);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Instance Functions
|
||||
//-----------------------------------------------------------------------------
|
||||
private:
|
||||
static SensorMultiLevelCCTypes* m_instance;
|
||||
static std::map<uint32, SensorMultiLevelCCTypes::SensorMultiLevelTypes *> SensorTypes;
|
||||
static uint32 m_revision;
|
||||
};
|
||||
} // namespace Internal
|
||||
} // namespace OpenZWave
|
||||
#endif // SENSORMULTILEVELCCTYPES_H
|
|
@ -2814,74 +2814,179 @@ ENUM(ValueID_Index_SensorBinary,
|
|||
Sensor_255
|
||||
);
|
||||
ENUM(ValueID_Index_SensorMultiLevel,
|
||||
Temperature = 1,
|
||||
General,
|
||||
Air_Temperature = 1,
|
||||
General_Purpose,
|
||||
Luminance,
|
||||
Power,
|
||||
RelativeHumidity,
|
||||
Humidity,
|
||||
Velocity,
|
||||
Direction,
|
||||
AtmosphericPressure,
|
||||
BarometricPressure,
|
||||
SolarRadiation,
|
||||
DewPoint,
|
||||
RainRate,
|
||||
TideLevel,
|
||||
Atmospheric_Pressure,
|
||||
Barometric_Pressure,
|
||||
Solar_Radiation,
|
||||
Dew_Point,
|
||||
Rain_Rate,
|
||||
Tide_Level,
|
||||
Weight,
|
||||
Voltage,
|
||||
Current,
|
||||
CO2,
|
||||
AirFlow,
|
||||
TankCapacity,
|
||||
Carbon_Dioxide,
|
||||
Air_Flow,
|
||||
Tank_Capacity,
|
||||
Distance,
|
||||
AnglePosition,
|
||||
Angle_Position,
|
||||
Rotation,
|
||||
WaterTemperature,
|
||||
SoilTemperature,
|
||||
SeismicIntensity,
|
||||
SeismicMagnitude,
|
||||
Water_Temperature,
|
||||
Soil_Temperature,
|
||||
Seismic_Intensity,
|
||||
Seismic_Magnitude,
|
||||
Ultraviolet,
|
||||
ElectricalResistivity,
|
||||
ElectricalConductivity,
|
||||
Electrical_Resistivity,
|
||||
Electrical_Conductivity,
|
||||
Loudness,
|
||||
Moisture,
|
||||
Frequency,
|
||||
Time,
|
||||
TargetTemperature,
|
||||
PM25,
|
||||
CH2O,
|
||||
RadonConcentration,
|
||||
CH4Density,
|
||||
VOC,
|
||||
CO,
|
||||
SoilHumidity,
|
||||
SoilReactivity,
|
||||
SoilSalinity,
|
||||
HeartRate,
|
||||
BloodPressure,
|
||||
MuscleMass,
|
||||
FatMass,
|
||||
BoneMass,
|
||||
TBW,
|
||||
BMR,
|
||||
BMI,
|
||||
AccelerationX,
|
||||
AccelerationY,
|
||||
AccelerationZ,
|
||||
SmokeDensity,
|
||||
WaterFlow,
|
||||
WaterPressure,
|
||||
RFSignalStrength,
|
||||
PM10,
|
||||
RespiratoryRate,
|
||||
RelativeModulationLevel,
|
||||
BoilerWaterTemperature,
|
||||
DHWTemperature,
|
||||
OutsideTemperature,
|
||||
ExhaustTemperature,
|
||||
WaterChlorineLevel,
|
||||
WaterAcidity,
|
||||
WaterOxidation
|
||||
Target_Temperature,
|
||||
Particulate_Mater_2_5,
|
||||
Formaldehyde_CH20_Level,
|
||||
Radon_Concentration,
|
||||
Methane_Density,
|
||||
Volatile_Organic_Compound,
|
||||
Carbon_Monoxide,
|
||||
Soil_Humidity,
|
||||
Soil_Reactivity,
|
||||
Soil_Salinity,
|
||||
Heart_Beat,
|
||||
Blood_Pressure,
|
||||
Muscle_Mass,
|
||||
Fat_Mass,
|
||||
Bone_Mass,
|
||||
Total_Body_Water,
|
||||
Basic_Metabolic_Rate,
|
||||
Body_Mass_Index,
|
||||
X_Axis_Acceleration,
|
||||
Y_Axis_Acceleration,
|
||||
Z_Axis_Acceleration,
|
||||
Smoke_Density,
|
||||
Water_Flow,
|
||||
Water_Pressure,
|
||||
RF_Signal_Strength,
|
||||
Particulate_Matter,
|
||||
Respiratory_Rate,
|
||||
Relative_Modulation,
|
||||
Boiler_Water_Temperature,
|
||||
Domestic_Hot_Water_Temperature,
|
||||
Outside_Temperature,
|
||||
Exhaust_Temperature,
|
||||
Water_Chlorine,
|
||||
Water_Acidity,
|
||||
Water_Oxidation_Reduction_Potential,
|
||||
Heart_Rate_LF_HF_Ratio,
|
||||
Motion_Direction,
|
||||
Applied_Force,
|
||||
Return_Air_Temperature,
|
||||
Supply_Air_Temperature,
|
||||
Condenser_Coil_Temperature,
|
||||
Evaporator_Coil_Temperature,
|
||||
Liquid_Line_Temperature,
|
||||
Discharge_Line_Temperature,
|
||||
Suction,
|
||||
Discharge,
|
||||
Defrost_Temperature,
|
||||
Ozone,
|
||||
Sulfur_Dioxide,
|
||||
Nitrogen_Dioxide,
|
||||
Ammonia,
|
||||
Lead,
|
||||
Particulate_Matter_v2,
|
||||
Air_Temperature_Units = 256,
|
||||
General_Purpose_Units,
|
||||
Luminance_Units,
|
||||
Power_Units,
|
||||
Humidity_Units,
|
||||
Velocity_Units,
|
||||
Direction_Units,
|
||||
Atmospheric_Pressure_Units,
|
||||
Barometric_Pressure_Units,
|
||||
Solar_Radiation_Units,
|
||||
Dew_Point_Units,
|
||||
Rain_Rate_Units,
|
||||
Tide_Level_Units,
|
||||
Weight_Units,
|
||||
Voltage_Units,
|
||||
Current_Units,
|
||||
Carbon_Dioxide_Units,
|
||||
Air_Flow_Units,
|
||||
Tank_Capacity_Units,
|
||||
Distance_Units,
|
||||
Angle_Position_Units,
|
||||
Rotation_Units,
|
||||
Water_Temperature_Units,
|
||||
Soil_Temperature_Units,
|
||||
Seismic_Intensity_Units,
|
||||
Seismic_Magnitude_Units,
|
||||
Ultraviolet_Units,
|
||||
Electrical_Resistivity_Units,
|
||||
Electrical_Conductivity_Units,
|
||||
Loudness_Units,
|
||||
Moisture_Units,
|
||||
Frequency_Units,
|
||||
Time_Units,
|
||||
Target_Temperature_Units,
|
||||
Particulate_Mater_2_5_Units,
|
||||
Formaldehyde_CH20_Level_Units,
|
||||
Radon_Concentration_Units,
|
||||
Methane_Density_Units,
|
||||
Volatile_Organic_Compound_Units,
|
||||
Carbon_Monoxide_Units,
|
||||
Soil_Humidity_Units,
|
||||
Soil_Reactivity_Units,
|
||||
Soil_Salinity_Units,
|
||||
Heart_Beat_Units,
|
||||
Blood_Pressure_Units,
|
||||
Muscle_Mass_Units,
|
||||
Fat_Mass_Units,
|
||||
Bone_Mass_Units,
|
||||
Total_Body_Water_Units,
|
||||
Basic_Metabolic_Rate_Units,
|
||||
Body_Mass_Index_Units,
|
||||
X_Axis_Acceleration_Units,
|
||||
Y_Axis_Acceleration_Units,
|
||||
Z_Axis_Acceleration_Units,
|
||||
Smoke_Density_Units,
|
||||
Water_Flow_Units,
|
||||
Water_Pressure_Units,
|
||||
RF_Signal_Strength_Units,
|
||||
Particulate_Matter_Units,
|
||||
Respiratory_Rate_Units,
|
||||
Relative_Modulation_Units,
|
||||
Boiler_Water_Temperature_Units,
|
||||
Domestic_Hot_Water_Temperature_Units,
|
||||
Outside_Temperature_Units,
|
||||
Exhaust_Temperature_Units,
|
||||
Water_Chlorine_Units,
|
||||
Water_Acidity_Units,
|
||||
Water_Oxidation_Reduction_Potential_Units,
|
||||
Heart_Rate_LF_HF_Ratio_Units,
|
||||
Motion_Direction_Units,
|
||||
Applied_Force_Units,
|
||||
Return_Air_Temperature_Units,
|
||||
Supply_Air_Temperature_Units,
|
||||
Condenser_Coil_Temperature_Units,
|
||||
Evaporator_Coil_Temperature_Units,
|
||||
Liquid_Line_Temperature_Units,
|
||||
Discharge_Line_Temperature_Units,
|
||||
Suction_Units,
|
||||
Discharge_Units,
|
||||
Defrost_Temperature_Units,
|
||||
Ozone_Units,
|
||||
Sulfur_Dioxide_Units,
|
||||
Nitrogen_Dioxide_Units,
|
||||
Ammonia_Units,
|
||||
Lead_Units,
|
||||
Particulate_Matter_v2_Units
|
||||
|
||||
);
|
||||
ENUM(ValueID_Index_SimpleAV,
|
||||
Command = 0
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -32,8 +32,10 @@
|
|||
#include "Msg.h"
|
||||
#include "Node.h"
|
||||
#include "Driver.h"
|
||||
#include "SensorMultiLevelCCTypes.h"
|
||||
#include "platform/Log.h"
|
||||
|
||||
|
||||
#include "value_classes/ValueDecimal.h"
|
||||
|
||||
namespace OpenZWave
|
||||
|
@ -47,34 +49,12 @@ namespace OpenZWave
|
|||
{
|
||||
SensorMultilevelCmd_SupportedGet = 0x01,
|
||||
SensorMultilevelCmd_SupportedReport = 0x02,
|
||||
SensorMultiLevelCmd_SupportedGetScale = 0x03,
|
||||
SensorMultiLevelCmd_SupportedReportScale = 0x06,
|
||||
SensorMultilevelCmd_Get = 0x04,
|
||||
SensorMultilevelCmd_Report = 0x05
|
||||
};
|
||||
|
||||
#define MaxSensorTypes (ValueID_Index_SensorMultiLevel::WaterOxidation +1)
|
||||
|
||||
static char const* c_sensorTypeNames[] =
|
||||
{ "Undefined", "Temperature", "General", "Luminance", "Power", "Relative Humidity", "Velocity", "Direction", "Atmospheric Pressure", "Barometric Pressure", "Solar Radiation", "Dew Point", "Rain Rate", "Tide Level", "Weight", "Voltage", "Current", "CO2 Level", "Air Flow", "Tank Capacity", "Distance", "Angle Position", "Rotation", "Water Temperature", "Soil Temperature", "Seismic Intensity", "Seismic Magnitude", "Ultraviolet", "Electrical Resistivity", "Electrical Conductivity",
|
||||
"Loudness", "Moisture", "Frequency", "Time", "Target Temperature", "Particulate Matter 2.5", "Formaldehyde CH20-level", "Radon Concentration", "Methane (CH4) Density", "Volatile Organic Compound Level", "CO Level", "Soil Humidity", "Soil Reactivity", "Soil Salinity", "Heart Rate", "Blood Pressure", "Muscle Mass", "Fat Mass", "Bone Mass", "Total Body Water", "Basis Metabolic Rate", "Body Mass Index", "Acceleration X-axis", "Acceleration Y-axis", "Acceleration Z-axis",
|
||||
"Smoke Density", "Water Flow", "Water Pressure", "RF Signal Strength", "Particulate Matter 10", "Respiratory Rate", "Relative Mdulation Level", "Boiler Water Temperature", "Domestic Hot Water Temperature", "Outside Temperature", "Exhaust Temperature", "Water Chlorine Level", "Water Acidity", "Water Oxidation" };
|
||||
|
||||
static char const* c_tankCapcityUnits[] =
|
||||
{ "l", "cbm", "gal", "" };
|
||||
|
||||
static char const* c_distanceUnits[] =
|
||||
{ "m", "cm", "ft", "" };
|
||||
|
||||
static char const* c_anglePositionUnits[] =
|
||||
{ "%", "deg N", "deg S", "" };
|
||||
|
||||
static char const* c_seismicIntensityUnits[] =
|
||||
{ "mercalli", "EU macroseismic", "liedu", "shindo", "" };
|
||||
|
||||
static char const* c_seismicMagnitudeUnits[] =
|
||||
{ "local", "moment", "surface wave", "body wave", "" };
|
||||
|
||||
static char const* c_moistureUnits[] =
|
||||
{ "%", "content", "k ohms", "water activity", "" };
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// <SensorMultilevel::RequestState>
|
||||
|
@ -87,6 +67,10 @@ namespace OpenZWave
|
|||
{
|
||||
if (_requestFlags & RequestFlag_Static)
|
||||
{
|
||||
/* for Versions 5 and Above
|
||||
* Send a Supported Get. When we get the Reply
|
||||
* We will send a SupportedScaleGet Message
|
||||
*/
|
||||
Msg* msg = new Msg("SensorMultilevelCmd_SupportedGet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
|
||||
msg->SetInstance(this, _instance);
|
||||
msg->Append(GetNodeId());
|
||||
|
@ -97,6 +81,22 @@ namespace OpenZWave
|
|||
GetDriver()->SendMsg(msg, _queue);
|
||||
res = true;
|
||||
}
|
||||
} else {
|
||||
if (_requestFlags & RequestFlag_Static)
|
||||
{
|
||||
/* For Versions 1-4
|
||||
** Set a Get Message - The Reply will create our ValueID
|
||||
*/
|
||||
Msg* msg = new Msg("SensorMultilevelCmd_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(SensorMultilevelCmd_Get);
|
||||
msg->Append(GetDriver()->GetTransmitOptions());
|
||||
GetDriver()->SendMsg(msg, _queue);
|
||||
res = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (_requestFlags & RequestFlag_Dynamic)
|
||||
|
@ -111,7 +111,7 @@ namespace OpenZWave
|
|||
// <SensorMultilevel::RequestValue>
|
||||
// Request current value from the device
|
||||
//-----------------------------------------------------------------------------
|
||||
bool SensorMultilevel::RequestValue(uint32 const _requestFlags, uint16 const _dummy, // = 0 (not used)
|
||||
bool SensorMultilevel::RequestValue(uint32 const _requestFlags, uint16 const _index, // = 0 (not used)
|
||||
uint8 const _instance, Driver::MsgQueue const _queue)
|
||||
{
|
||||
bool res = false;
|
||||
|
@ -120,40 +120,81 @@ namespace OpenZWave
|
|||
Log::Write(LogLevel_Info, GetNodeId(), "SensorMultilevelCmd_Get Not Supported on this node");
|
||||
return false;
|
||||
}
|
||||
if (GetVersion() < 5)
|
||||
{
|
||||
Msg* msg = new Msg("SensorMultilevelCmd_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(SensorMultilevelCmd_Get);
|
||||
msg->Append(GetDriver()->GetTransmitOptions());
|
||||
GetDriver()->SendMsg(msg, _queue);
|
||||
res = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (uint8 i = 1; i < MaxSensorTypes; i++)
|
||||
/* if Index is 0, then its a being called from RequestState
|
||||
* so we just get all possible Sensor Values
|
||||
*/
|
||||
if (_index == 0) {
|
||||
if (GetVersion() < 5)
|
||||
{
|
||||
Internal::VC::Value* value = GetValue(_instance, i);
|
||||
if (value != NULL)
|
||||
Msg* msg = new Msg("SensorMultilevelCmd_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(SensorMultilevelCmd_Get);
|
||||
msg->Append(GetDriver()->GetTransmitOptions());
|
||||
GetDriver()->SendMsg(msg, _queue);
|
||||
res = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (uint8 i = 1; i < 255; i++)
|
||||
{
|
||||
value->Release();
|
||||
Msg* msg = new Msg("SensorMultilevelCmd_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(SensorMultilevelCmd_Get);
|
||||
msg->Append(i);
|
||||
msg->Append(GetDriver()->GetTransmitOptions());
|
||||
GetDriver()->SendMsg(msg, _queue);
|
||||
res = true;
|
||||
Internal::VC::Value* value = GetValue(_instance, i);
|
||||
if (value != NULL)
|
||||
{
|
||||
uint8_t scale = 0;
|
||||
/* get the Default Scale they want */
|
||||
Internal::VC::ValueList *requestedScale = static_cast<Internal::VC::ValueList *>(GetValue(_instance, i+255));
|
||||
if (requestedScale) {
|
||||
const Internal::VC::ValueList::Item *item = requestedScale->GetItem();
|
||||
if (item)
|
||||
scale = item->m_value;
|
||||
requestedScale->Release();
|
||||
}
|
||||
value->Release();
|
||||
Msg* msg = new Msg("SensorMultilevelCmd_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(4);
|
||||
msg->Append(GetCommandClassId());
|
||||
msg->Append(SensorMultilevelCmd_Get);
|
||||
msg->Append(i);
|
||||
msg->Append(scale);
|
||||
msg->Append(GetDriver()->GetTransmitOptions());
|
||||
GetDriver()->SendMsg(msg, _queue);
|
||||
res = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return res;
|
||||
} else if (_index < 256) {
|
||||
Internal::VC::Value* value = GetValue(_instance, _index);
|
||||
if (value != NULL) {
|
||||
uint8_t scale = 0;
|
||||
/* get the Default Scale they want */
|
||||
Internal::VC::ValueList *requestedScale = static_cast<Internal::VC::ValueList *>(GetValue(_instance, _index+255));
|
||||
if (requestedScale) {
|
||||
const Internal::VC::ValueList::Item *item = requestedScale->GetItem();
|
||||
if (item)
|
||||
scale = item->m_value;
|
||||
requestedScale->Release();
|
||||
}
|
||||
value->Release();
|
||||
Msg* msg = new Msg("SensorMultilevelCmd_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(4);
|
||||
msg->Append(GetCommandClassId());
|
||||
msg->Append(SensorMultilevelCmd_Get);
|
||||
msg->Append(_index);
|
||||
msg->Append(scale);
|
||||
msg->Append(GetDriver()->GetTransmitOptions());
|
||||
GetDriver()->SendMsg(msg, _queue);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -167,7 +208,7 @@ namespace OpenZWave
|
|||
{
|
||||
string msg = "";
|
||||
|
||||
if (Node* node = GetNodeUnsafe())
|
||||
if (GetNodeUnsafe())
|
||||
{
|
||||
for (uint8 i = 1; i <= (_length - 2); i++)
|
||||
{
|
||||
|
@ -175,25 +216,52 @@ namespace OpenZWave
|
|||
{
|
||||
if (_data[i] & (1 << j))
|
||||
{
|
||||
if (msg != "")
|
||||
msg += ", ";
|
||||
uint8 index = ((i - 1) * 8) + j + 1;
|
||||
if (index >= MaxSensorTypes) /* max size for c_sensorTypeNames */
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "SensorType Value was greater than range. Dropping");
|
||||
continue;
|
||||
}
|
||||
msg += c_sensorTypeNames[index];
|
||||
Internal::VC::ValueDecimal* value = static_cast<Internal::VC::ValueDecimal*>(GetValue(_instance, index));
|
||||
if (value == NULL)
|
||||
{
|
||||
node->CreateValueDecimal(ValueID::ValueGenre_User, GetCommandClassId(), _instance, index, c_sensorTypeNames[index], "", true, false, "0.0", 0);
|
||||
}
|
||||
uint32_t sensorType = ((i - 1) * 8) + j + 1;
|
||||
Log::Write(LogLevel_Info, GetNodeId(), "Received SensorMultiLevel supported report from node %d: %s (%d)", GetNodeId(), SensorMultiLevelCCTypes::Get()->GetSensorName(sensorType).c_str(), sensorType);
|
||||
Msg* msg = new Msg("SensorMultiLevelCmd_SupportedGetScale", 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(SensorMultiLevelCmd_SupportedGetScale);
|
||||
msg->Append(sensorType);
|
||||
msg->Append(GetDriver()->GetTransmitOptions());
|
||||
GetDriver()->SendMsg(msg, Driver::MsgQueue::MsgQueue_Send);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Log::Write(LogLevel_Info, GetNodeId(), "Received SensorMultiLevel supported report from node %d: %s", GetNodeId(), msg.c_str());
|
||||
return true;
|
||||
}
|
||||
else if (SensorMultiLevelCmd_SupportedReportScale == (SensorMultilevelCmd) _data[0])
|
||||
{
|
||||
uint32_t sensorType = _data[1];
|
||||
int8_t defaultScale = -1;
|
||||
vector<Internal::VC::ValueList::Item> items;
|
||||
for (int i = 0; i <= 3; i++)
|
||||
{
|
||||
if ((_data[2] & 0x07) & (1 << i)) {
|
||||
|
||||
uint8 sensorScale = i;
|
||||
if (defaultScale == -1)
|
||||
defaultScale = sensorScale;
|
||||
Log::Write(LogLevel_Info, GetNodeId(), "Received SensorMultiLevel supported Scale report from node %d for Sensor %s: %s (%d)", GetNodeId(), SensorMultiLevelCCTypes::Get()->GetSensorName(sensorType).c_str(), SensorMultiLevelCCTypes::Get()->GetSensorUnit(sensorType, sensorScale).c_str(), sensorScale);
|
||||
Internal::VC::ValueList::Item item;
|
||||
item.m_label = SensorMultiLevelCCTypes::Get()->GetSensorUnitName(sensorType, sensorScale);
|
||||
item.m_value = sensorScale;
|
||||
items.push_back(item);
|
||||
}
|
||||
}
|
||||
Log::Write(LogLevel_Info, GetNodeId(), "Setting SensorMultiLevel Default Scale to: %s (%d)", SensorMultiLevelCCTypes::Get()->GetSensorUnit(sensorType, defaultScale).c_str(), defaultScale);
|
||||
|
||||
if (Node* node = GetNodeUnsafe())
|
||||
{
|
||||
node->CreateValueDecimal(ValueID::ValueGenre_User, GetCommandClassId(), _instance, sensorType, SensorMultiLevelCCTypes::Get()->GetSensorName(sensorType), SensorMultiLevelCCTypes::Get()->GetSensorUnit(sensorType, defaultScale), true, false, "0.0", 0);
|
||||
node->CreateValueList(ValueID::ValueGenre_System, GetCommandClassId(), _instance, sensorType+255, SensorMultiLevelCCTypes::Get()->GetSensorName(sensorType).append(" Units").c_str(), "", false, false, 1, items, 0, 0);
|
||||
Internal::VC::ValueList *value = static_cast<Internal::VC::ValueList *>(GetValue(_instance, sensorType+255));
|
||||
if (value)
|
||||
value->SetByLabel(SensorMultiLevelCCTypes::Get()->GetSensorUnit(sensorType, defaultScale));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if (SensorMultilevelCmd_Report == (SensorMultilevelCmd) _data[0])
|
||||
|
@ -206,294 +274,15 @@ namespace OpenZWave
|
|||
Node* node = GetNodeUnsafe();
|
||||
if (node != NULL)
|
||||
{
|
||||
char const* units = "";
|
||||
switch (sensorType)
|
||||
{
|
||||
case ValueID_Index_SensorMultiLevel::Temperature:
|
||||
units = scale ? "F" : "C";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::General:
|
||||
units = scale ? "" : "%";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Luminance:
|
||||
units = scale ? "lux" : "%";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Power:
|
||||
units = scale ? "BTU/h" : "W";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::RelativeHumidity:
|
||||
units = scale ? "" : "%";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Velocity:
|
||||
units = scale ? "mph" : "m/s";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Direction:
|
||||
units = "";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::AtmosphericPressure:
|
||||
units = scale ? "inHg" : "kPa";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::BarometricPressure:
|
||||
units = scale ? "inHg" : "kPa";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::SolarRadiation:
|
||||
units = "W/m2";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::DewPoint:
|
||||
units = scale ? "F" : "C";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::RainRate:
|
||||
units = scale ? "in/h" : "mm/h";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::TideLevel:
|
||||
units = scale ? "ft" : "m";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Weight:
|
||||
units = scale ? "lb" : "kg";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Voltage:
|
||||
units = scale ? "mV" : "V";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Current:
|
||||
units = scale ? "mA" : "A";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::CO2:
|
||||
units = "ppm";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::AirFlow:
|
||||
units = scale ? "cfm" : "m3/h";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::TankCapacity:
|
||||
{
|
||||
if (scale > 2) /* size of c_tankCapcityUnits minus invalid */
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "Scale Value for c_tankCapcityUnits was greater than range. Setting to empty");
|
||||
units = c_tankCapcityUnits[3]; /* empty entry */
|
||||
}
|
||||
else
|
||||
{
|
||||
units = c_tankCapcityUnits[scale];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Distance:
|
||||
{
|
||||
if (scale > 2) /* size of c_distanceUnits minus invalid */
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "Scale Value for c_distanceUnits was greater than range. Setting to empty");
|
||||
units = c_distanceUnits[3]; /* empty entry */
|
||||
}
|
||||
else
|
||||
{
|
||||
units = c_distanceUnits[scale];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::AnglePosition:
|
||||
{
|
||||
if (scale > 2) /* size of c_anglePositionUnits minus invalid */
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "Scale Value for c_anglePositionUnits was greater than range. Setting to empty");
|
||||
units = c_anglePositionUnits[3]; /* empty entry */
|
||||
}
|
||||
else
|
||||
{
|
||||
units = c_anglePositionUnits[scale];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Rotation:
|
||||
units = scale ? "hz" : "rpm";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::WaterTemperature:
|
||||
units = scale ? "F" : "C";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::SoilTemperature:
|
||||
units = scale ? "F" : "C";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::SeismicIntensity:
|
||||
{
|
||||
if (scale > 3) /* size of c_seismicIntensityUnits minus invalid */
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "Scale Value for c_seismicIntensityUnits was greater than range. Setting to empty");
|
||||
units = c_seismicIntensityUnits[4]; /* empty entry */
|
||||
}
|
||||
else
|
||||
{
|
||||
units = c_seismicIntensityUnits[scale];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::SeismicMagnitude:
|
||||
{
|
||||
if (scale > 3) /* size of c_seismicMagnitudeUnits minus invalid */
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "Scale Value for c_seismicMagnitudeUnits was greater than range. Setting to empty");
|
||||
units = c_seismicMagnitudeUnits[4]; /* empty entry */
|
||||
}
|
||||
else
|
||||
{
|
||||
units = c_seismicMagnitudeUnits[scale];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Ultraviolet:
|
||||
units = "";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::ElectricalResistivity:
|
||||
units = "ohm";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::ElectricalConductivity:
|
||||
units = "siemens/m";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Loudness:
|
||||
units = scale ? "dBA" : "db";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Moisture:
|
||||
{
|
||||
if (scale > 3) /* size of c_moistureUnits minus invalid */
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "Scale Value for c_moistureUnits was greater than range. Setting to empty");
|
||||
units = c_moistureUnits[4]; /* empty entry */
|
||||
}
|
||||
else
|
||||
{
|
||||
units = c_moistureUnits[scale];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Frequency:
|
||||
units = scale ? "kHz" : "Hz";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::Time:
|
||||
units = "s";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::TargetTemperature:
|
||||
units = scale ? "F" : "C";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::PM25:
|
||||
units = scale ? "ug/m3" : "mol/m3";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::CH2O:
|
||||
units = "mol/m3";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::RadonConcentration:
|
||||
units = scale ? "pCi/l" : "bq/m3";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::CH4Density:
|
||||
units = "mol/m3";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::VOC:
|
||||
units = scale ? "ppm" : "mol/m3";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::CO:
|
||||
units = scale ? "ppm" : "mol/m3";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::SoilHumidity:
|
||||
units = "%";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::SoilReactivity:
|
||||
units = "pH";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::SoilSalinity:
|
||||
units = "mol/m3";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::HeartRate:
|
||||
units = "bpm";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::BloodPressure:
|
||||
units = scale ? "mmHg (Diastollic)" : "mmHg (Systollic)";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::MuscleMass:
|
||||
units = "kg";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::FatMass:
|
||||
units = "kg";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::BoneMass:
|
||||
units = "kg";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::TBW:
|
||||
units = "kg";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::BMR:
|
||||
units = "J";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::BMI:
|
||||
units = "";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::AccelerationX:
|
||||
units = "m/s2";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::AccelerationY:
|
||||
units = "m/s2";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::AccelerationZ:
|
||||
units = "m/s2";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::SmokeDensity:
|
||||
units = "%";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::WaterFlow:
|
||||
units = "l/h";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::WaterPressure:
|
||||
units = "kPa";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::RFSignalStrength:
|
||||
units = scale ? "dBm" : "% (RSSI)";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::PM10:
|
||||
units = scale ? "ug/m3" : "mol/m3";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::RespiratoryRate:
|
||||
units = "bpm";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::RelativeModulationLevel:
|
||||
units = "%";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::BoilerWaterTemperature:
|
||||
units = "C";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::DHWTemperature:
|
||||
units = "C";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::OutsideTemperature:
|
||||
units = "C";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::ExhaustTemperature:
|
||||
units = "C";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::WaterChlorineLevel:
|
||||
units = "mg/l";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::WaterAcidity:
|
||||
units = "pH";
|
||||
break;
|
||||
case ValueID_Index_SensorMultiLevel::WaterOxidation:
|
||||
units = "mV";
|
||||
break;
|
||||
default:
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "sensorType Value was greater than range. Dropping");
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
Internal::VC::ValueDecimal* value = static_cast<Internal::VC::ValueDecimal*>(GetValue(_instance, sensorType));
|
||||
if (value == NULL)
|
||||
{
|
||||
node->CreateValueDecimal(ValueID::ValueGenre_User, GetCommandClassId(), _instance, sensorType, c_sensorTypeNames[sensorType], units, true, false, "0.0", 0);
|
||||
node->CreateValueDecimal(ValueID::ValueGenre_User, GetCommandClassId(), _instance, sensorType, SensorMultiLevelCCTypes::Get()->GetSensorName(sensorType), "", true, false, "0.0", 0);
|
||||
value = static_cast<Internal::VC::ValueDecimal*>(GetValue(_instance, sensorType));
|
||||
}
|
||||
else
|
||||
{
|
||||
value->SetUnits(units);
|
||||
}
|
||||
value->SetUnits(SensorMultiLevelCCTypes::Get()->GetSensorUnit(sensorType, scale));
|
||||
|
||||
Log::Write(LogLevel_Info, GetNodeId(), "Received SensorMultiLevel report from node %d, instance %d, %s: value=%s%s", GetNodeId(), _instance, c_sensorTypeNames[sensorType], valueStr.c_str(), value->GetUnits().c_str());
|
||||
Log::Write(LogLevel_Info, GetNodeId(), "Received SensorMultiLevel report from node %d, instance %d, %s: value=%s%s", GetNodeId(), _instance, SensorMultiLevelCCTypes::Get()->GetSensorName(sensorType).c_str(), valueStr.c_str(), value->GetUnits().c_str());
|
||||
if (value->GetPrecision() != precision)
|
||||
{
|
||||
value->SetPrecision(precision);
|
||||
|
|
|
@ -86,6 +86,7 @@ namespace OpenZWave
|
|||
CommandClass(_homeId, _nodeId)
|
||||
{
|
||||
}
|
||||
std::map<uint32_t, uint8> SensorScaleMap;
|
||||
};
|
||||
} // namespace CC
|
||||
} // namespace Internal
|
||||
|
|
4
dist/openzwave.spec
vendored
4
dist/openzwave.spec
vendored
|
@ -3,7 +3,7 @@
|
|||
%endif
|
||||
|
||||
Name: openzwave
|
||||
Version: 1.6.762
|
||||
Version: 1.6.760
|
||||
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.762
|
||||
* Wed May 08 2019 Justin Hammond <justin@dynam.ac> - 1.6.760
|
||||
- Update to new release of OpenZwave - 1.6
|
||||
|
||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-0.20180624git1e36dcc.0
|
||||
|
|
|
@ -34,6 +34,8 @@ DISTFILES = .gitignore \
|
|||
config/Localization.xsd \
|
||||
config/NotificationCCTypes.xml \
|
||||
config/NotificationCCTypes.xsd \
|
||||
config/SensorMultiLevelCCTypes.xml \
|
||||
config/SensorMultiLevelCCTypes.xsd \
|
||||
config/act/lfm20.xml \
|
||||
config/act/zdm230.xml \
|
||||
config/act/zdp100.xml \
|
||||
|
@ -1163,8 +1165,6 @@ DISTFILES = .gitignore \
|
|||
cpp/build/windows/installer/openzwave.nsi \
|
||||
cpp/build/windows/mingw-w64/Makefile \
|
||||
cpp/build/windows/mingw32/Makefile \
|
||||
cpp/build/windows/vs2008/OpenZWave.sln \
|
||||
cpp/build/windows/vs2008/OpenZWave.vcproj \
|
||||
cpp/build/windows/vs2010/OpenZWave.sln \
|
||||
cpp/build/windows/vs2010/OpenZWave.vcxproj \
|
||||
cpp/build/windows/vs2010/OpenZWave.vcxproj.filters \
|
||||
|
@ -1173,8 +1173,6 @@ DISTFILES = .gitignore \
|
|||
cpp/examples/MinOZW/Makefile \
|
||||
cpp/examples/MinOZW/MinOZW.in \
|
||||
cpp/examples/windows/MinOZW/Main.cpp \
|
||||
cpp/examples/windows/MinOZW/vs2008/MinOZW.sln \
|
||||
cpp/examples/windows/MinOZW/vs2008/MinOZW.vcproj \
|
||||
cpp/examples/windows/MinOZW/vs2010/MinOZW.sln \
|
||||
cpp/examples/windows/MinOZW/vs2010/MinOZW.vcxproj \
|
||||
cpp/examples/windows/MinOZW/vs2010/MinOZW.vcxproj.filters \
|
||||
|
@ -1255,6 +1253,8 @@ DISTFILES = .gitignore \
|
|||
cpp/src/Options.h \
|
||||
cpp/src/Scene.cpp \
|
||||
cpp/src/Scene.h \
|
||||
cpp/src/SensorMultiLevelCCTypes.cpp \
|
||||
cpp/src/SensorMultiLevelCCTypes.h \
|
||||
cpp/src/TimerThread.cpp \
|
||||
cpp/src/TimerThread.h \
|
||||
cpp/src/Utils.cpp \
|
||||
|
|
Loading…
Add table
Reference in a new issue