Merge pull request #624 from leoc/feature-zwave-meter-sensor
Add Zwave `meter` command class
This commit is contained in:
commit
18f1de10a5
2 changed files with 15 additions and 2 deletions
|
@ -70,6 +70,10 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
elif value.command_class == zwave.COMMAND_CLASS_SENSOR_MULTILEVEL:
|
elif value.command_class == zwave.COMMAND_CLASS_SENSOR_MULTILEVEL:
|
||||||
add_devices([ZWaveMultilevelSensor(value)])
|
add_devices([ZWaveMultilevelSensor(value)])
|
||||||
|
|
||||||
|
elif (value.command_class == zwave.COMMAND_CLASS_METER and
|
||||||
|
value.type == zwave.TYPE_DECIMAL):
|
||||||
|
add_devices([ZWaveMultilevelSensor(value)])
|
||||||
|
|
||||||
|
|
||||||
class ZWaveSensor(Entity):
|
class ZWaveSensor(Entity):
|
||||||
""" Represents a Z-Wave sensor. """
|
""" Represents a Z-Wave sensor. """
|
||||||
|
|
|
@ -20,6 +20,7 @@ REQUIREMENTS = ['pydispatcher==2.0.5']
|
||||||
CONF_USB_STICK_PATH = "usb_path"
|
CONF_USB_STICK_PATH = "usb_path"
|
||||||
DEFAULT_CONF_USB_STICK_PATH = "/zwaveusbstick"
|
DEFAULT_CONF_USB_STICK_PATH = "/zwaveusbstick"
|
||||||
CONF_DEBUG = "debug"
|
CONF_DEBUG = "debug"
|
||||||
|
CONF_POLLING_INTERVAL = "polling_interval"
|
||||||
|
|
||||||
DISCOVER_SENSORS = "zwave.sensors"
|
DISCOVER_SENSORS = "zwave.sensors"
|
||||||
DISCOVER_SWITCHES = "zwave.switch"
|
DISCOVER_SWITCHES = "zwave.switch"
|
||||||
|
@ -30,6 +31,7 @@ COMMAND_CLASS_SWITCH_MULTILEVEL = 38
|
||||||
COMMAND_CLASS_SWITCH_BINARY = 37
|
COMMAND_CLASS_SWITCH_BINARY = 37
|
||||||
COMMAND_CLASS_SENSOR_BINARY = 48
|
COMMAND_CLASS_SENSOR_BINARY = 48
|
||||||
COMMAND_CLASS_SENSOR_MULTILEVEL = 49
|
COMMAND_CLASS_SENSOR_MULTILEVEL = 49
|
||||||
|
COMMAND_CLASS_METER = 50
|
||||||
COMMAND_CLASS_BATTERY = 128
|
COMMAND_CLASS_BATTERY = 128
|
||||||
|
|
||||||
GENRE_WHATEVER = None
|
GENRE_WHATEVER = None
|
||||||
|
@ -38,15 +40,18 @@ GENRE_USER = "User"
|
||||||
TYPE_WHATEVER = None
|
TYPE_WHATEVER = None
|
||||||
TYPE_BYTE = "Byte"
|
TYPE_BYTE = "Byte"
|
||||||
TYPE_BOOL = "Bool"
|
TYPE_BOOL = "Bool"
|
||||||
|
TYPE_DECIMAL = "Decimal"
|
||||||
|
|
||||||
# list of tuple (DOMAIN, discovered service, supported command
|
# list of tuple (DOMAIN, discovered service, supported command
|
||||||
# classes, value type)
|
# classes, value type)
|
||||||
DISCOVERY_COMPONENTS = [
|
DISCOVERY_COMPONENTS = [
|
||||||
('sensor',
|
('sensor',
|
||||||
DISCOVER_SENSORS,
|
DISCOVER_SENSORS,
|
||||||
[COMMAND_CLASS_SENSOR_BINARY, COMMAND_CLASS_SENSOR_MULTILEVEL],
|
[COMMAND_CLASS_SENSOR_BINARY,
|
||||||
|
COMMAND_CLASS_SENSOR_MULTILEVEL,
|
||||||
|
COMMAND_CLASS_METER],
|
||||||
TYPE_WHATEVER,
|
TYPE_WHATEVER,
|
||||||
GENRE_WHATEVER),
|
GENRE_USER),
|
||||||
('light',
|
('light',
|
||||||
DISCOVER_LIGHTS,
|
DISCOVER_LIGHTS,
|
||||||
[COMMAND_CLASS_SWITCH_MULTILEVEL],
|
[COMMAND_CLASS_SWITCH_MULTILEVEL],
|
||||||
|
@ -173,6 +178,10 @@ def setup(hass, config):
|
||||||
""" Called when Home Assistant starts up. """
|
""" Called when Home Assistant starts up. """
|
||||||
NETWORK.start()
|
NETWORK.start()
|
||||||
|
|
||||||
|
polling_interval = config[DOMAIN].get(CONF_POLLING_INTERVAL, None)
|
||||||
|
if polling_interval is not None:
|
||||||
|
NETWORK.setPollInterval(polling_interval)
|
||||||
|
|
||||||
hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, stop_zwave)
|
hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, stop_zwave)
|
||||||
|
|
||||||
hass.bus.listen_once(EVENT_HOMEASSISTANT_START, start_zwave)
|
hass.bus.listen_once(EVENT_HOMEASSISTANT_START, start_zwave)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue