From c1aa1fb0e0c149b9569b7f0751c285075103c611 Mon Sep 17 00:00:00 2001 From: ntouran Date: Mon, 11 Jan 2016 20:46:45 -0800 Subject: [PATCH] First attempt at adding Z-wave COMMAND_CLASS_ALARM --- homeassistant/components/sensor/zwave.py | 17 +++++++++++++++++ homeassistant/components/zwave.py | 4 +++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/sensor/zwave.py b/homeassistant/components/sensor/zwave.py index 1ed831b286d..fdbec56404c 100644 --- a/homeassistant/components/sensor/zwave.py +++ b/homeassistant/components/sensor/zwave.py @@ -73,6 +73,9 @@ def setup_platform(hass, config, add_devices, discovery_info=None): elif (value.command_class == zwave.COMMAND_CLASS_METER and value.type == zwave.TYPE_DECIMAL): add_devices([ZWaveMultilevelSensor(value)]) + + elif value.command_class == zwave.COMMAND_CLASS_ALARM: + add_devices([ZWaveAlarmSensor(value)]) class ZWaveSensor(Entity): @@ -216,3 +219,17 @@ class ZWaveMultilevelSensor(ZWaveSensor): return TEMP_FAHRENHEIT else: return unit + +class ZWaveAlarmSensor(ZWaveSensor): + """ A Z-wave sensor that sends Alarm alerts + + Examples include certain Multisensors that have motion and vibration capabilities. + Z-Wave defines various alarm types such as Smoke, Flood, Burglar, CarbonMonoxide, etc. + This wraps these events. + + COMMAND_CLASS_ALARM is what we get here. + """ + @property + def state(self): + """ Returns the state of the sensor. """ + return str(self._value.data) \ No newline at end of file diff --git a/homeassistant/components/zwave.py b/homeassistant/components/zwave.py index b52e430600a..d3cf70a2cd4 100644 --- a/homeassistant/components/zwave.py +++ b/homeassistant/components/zwave.py @@ -37,6 +37,7 @@ COMMAND_CLASS_SENSOR_BINARY = 48 COMMAND_CLASS_SENSOR_MULTILEVEL = 49 COMMAND_CLASS_METER = 50 COMMAND_CLASS_BATTERY = 128 +COMMAND_CLASS_ALARM = 113 # 0x71 GENRE_WHATEVER = None GENRE_USER = "User" @@ -53,7 +54,8 @@ DISCOVERY_COMPONENTS = [ DISCOVER_SENSORS, [COMMAND_CLASS_SENSOR_BINARY, COMMAND_CLASS_SENSOR_MULTILEVEL, - COMMAND_CLASS_METER], + COMMAND_CLASS_METER, + COMMAND_CLASS_ALARM], TYPE_WHATEVER, GENRE_USER), ('light',