Skip to content
This repository has been archived by the owner on May 7, 2020. It is now read-only.

added Multilevel Sensor types and scales for version 6-11 #2

Merged
merged 1 commit into from Mar 21, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
115 changes: 113 additions & 2 deletions cpp/src/command_classes/SensorMultilevel.cpp
Expand Up @@ -50,7 +50,7 @@ enum SensorMultilevelCmd
enum SensorType
{
SensorType_Temperature = 1,
SensorType_General,
SensorType_General, /* deprecated by v11 */
SensorType_Luminance,
SensorType_Power,
SensorType_RelativeHumidity,
Expand Down Expand Up @@ -80,6 +80,43 @@ enum SensorType
SensorType_ElectricalConductivity,
SensorType_Loudness,
SensorType_Moisture,
SensorType_Frequency,
SensorType_Time,
SensorType_TargetTemperature,
SensorType_PM25,
SensorType_CH2O,
SensorType_RadonConcentration,
SensorType_CH4Density,
SensorType_VOC,
SensorType_CO,
SensorType_SoilHumidity,
SensorType_SoilReactivity,
SensorType_SoilSalinity,
SensorType_HeartRate,
SensorType_BloodPressure,
SensorType_MuscleMass,
SensorType_FatMass,
SensorType_BoneMass,
SensorType_TBW,
SensorType_BMR,
SensorType_BMI,
SensorType_AccelerationX,
SensorType_AccelerationY,
SensorType_AccelerationZ,
SensorType_SmokeDensity,
SensorType_WaterFlow,
SensorType_WaterPressure,
SensorType_RFSignalStrength,
SensorType_PM10,
SensorType_RespiratoryRate,
SensorType_RelativeModulationLevel,
SensorType_BoilerWaterTemperature,
SensorType_DHWTemperature,
SensorType_OutsideTemperature,
SensorType_ExhaustTemperature,
SensorType_WaterChlorineLevel,
SensorType_WaterAcidity,
SensorType_WaterOxidation,
SensorType_MaxType
};

Expand Down Expand Up @@ -116,7 +153,44 @@ static char const* c_sensorTypeNames[] =
"Electrical Resistivity",
"Electrical Conductivity",
"Loudness",
"Moisture"
"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[] =
Expand Down Expand Up @@ -412,6 +486,43 @@ bool SensorMultilevel::HandleMsg
}
}
break;
case SensorType_Frequency: units = scale ? "kHz" : "Hz"; break;
case SensorType_Time: units = "s"; break;
case SensorType_TargetTemperature: units = scale ? "F" : "C"; break;
case SensorType_PM25: units = scale ? "ug/m3" : "mol/m3"; break;
case SensorType_CH2O: units = "mol/m3"; break;
case SensorType_RadonConcentration: units = scale ? "pCi/l" : "bq/m3"; break;
case SensorType_CH4Density: units = "mol/m3"; break;
case SensorType_VOC: units = scale ? "ppm" : "mol/m3"; break;
case SensorType_CO: units = scale ? "ppm" : "mol/m3"; break;
case SensorType_SoilHumidity: units = "%"; break;
case SensorType_SoilReactivity: units = "pH"; break;
case SensorType_SoilSalinity: units = "mol/m3"; break;
case SensorType_HeartRate: units = "bpm"; break;
case SensorType_BloodPressure: units = "mmHg " + scale ? "(Diastollic)" : "(Systollic)"; break;
case SensorType_MuscleMass: units = "kg"; break;
case SensorType_FatMass: units = "kg"; break;
case SensorType_BoneMass: units = "kg"; break;
case SensorType_TBW: units = "kg"; break;
case SensorType_BMR: units = "J"; break;
case SensorType_BMI: units = ""; break;
case SensorType_AccelerationX: units = "m/s2"; break;
case SensorType_AccelerationY: units = "m/s2"; break;
case SensorType_AccelerationZ: units = "m/s2"; break;
case SensorType_SmokeDensity: units = "%"; break;
case SensorType_WaterFlow: units = "l/h"; break;
case SensorType_WaterPressure: units = "kPa"; break;
case SensorType_RFSignalStrength: units = scale ? "dBm" : "% (RSSI)"; break;
case SensorType_PM10: units = scale ? "ug/m3" : "mol/m3"; break;
case SensorType_RespiratoryRate: units = "bpm"; break;
case SensorType_RelativeModulationLevel: units = "%"; break;
case SensorType_BoilerWaterTemperature: units = "C"; break;
case SensorType_DHWTemperature: units = "C"; break;
case SensorType_OutsideTemperature: units = "C"; break;
case SensorType_ExhaustTemperature: units = "C"; break;
case SensorType_WaterChlorineLevel: units = "mg/l"; break;
case SensorType_WaterAcidity: units = "pH"; break;
case SensorType_WaterOxidation: units = "mV"; break;
default: {
Log::Write (LogLevel_Warning, GetNodeId(), "sensorType Value was greater than range. Dropping");
return false;
Expand Down
4 changes: 2 additions & 2 deletions cpp/src/command_classes/SensorMultilevel.h
Expand Up @@ -51,8 +51,8 @@ namespace OpenZWave
virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
virtual uint8 GetMaxVersion(){ return 5; }

virtual uint8 GetMaxVersion(){ return 11; }

protected:
virtual void CreateVars( uint8 const _instance );
Expand Down