diff --git a/homeassistant/components/sensor/zwave.py b/homeassistant/components/sensor/zwave.py index 1ed831b286d..869f4dbe810 100644 --- a/homeassistant/components/sensor/zwave.py +++ b/homeassistant/components/sensor/zwave.py @@ -74,6 +74,9 @@ def setup_platform(hass, config, add_devices, discovery_info=None): value.type == zwave.TYPE_DECIMAL): add_devices([ZWaveMultilevelSensor(value)]) + elif value.command_class == zwave.COMMAND_CLASS_ALARM: + add_devices([ZWaveAlarmSensor(value)]) + class ZWaveSensor(Entity): """ Represents a Z-Wave sensor. """ @@ -216,3 +219,19 @@ 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 alarms and allows you to use them to + trigger things, etc. + + COMMAND_CLASS_ALARM is what we get here. + """ + # Empty subclass for now. Allows for later customizations + pass diff --git a/homeassistant/components/zwave.py b/homeassistant/components/zwave.py index b52e430600a..9f6d7ca37aa 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',