mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 12:47:08 +00:00
Include index and instance in object_id of zwave devices (#3759)
* Include index and instance in object_id of zwave devices * Add the instance id if there is more than one instance for the value
This commit is contained in:
parent
7771cc2ccf
commit
1373db8b60
@ -12,20 +12,6 @@ from homeassistant.const import TEMP_CELSIUS, TEMP_FAHRENHEIT
|
|||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
|
|
||||||
|
|
||||||
FIBARO = 0x010f
|
|
||||||
FIBARO_WALL_PLUG = 0x1000
|
|
||||||
FIBARO_WALL_PLUG_SENSOR_METER = (FIBARO, FIBARO_WALL_PLUG, 8)
|
|
||||||
|
|
||||||
WORKAROUND_IGNORE = 'ignore'
|
|
||||||
|
|
||||||
DEVICE_MAPPINGS = {
|
|
||||||
# For some reason Fibaro Wall Plug reports 2 power consumptions.
|
|
||||||
# One value updates as the power consumption changes
|
|
||||||
# and the other does not change.
|
|
||||||
FIBARO_WALL_PLUG_SENSOR_METER: WORKAROUND_IGNORE,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
"""Setup Z-Wave sensors."""
|
"""Setup Z-Wave sensors."""
|
||||||
# Return on empty `discovery_info`. Given you configure HA with:
|
# Return on empty `discovery_info`. Given you configure HA with:
|
||||||
@ -46,18 +32,6 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
|||||||
# groups[1].associations):
|
# groups[1].associations):
|
||||||
# node.groups[1].add_association(NETWORK.controller.node_id)
|
# node.groups[1].add_association(NETWORK.controller.node_id)
|
||||||
|
|
||||||
# Make sure that we have values for the key before converting to int
|
|
||||||
if (value.node.manufacturer_id.strip() and
|
|
||||||
value.node.product_id.strip()):
|
|
||||||
specific_sensor_key = (int(value.node.manufacturer_id, 16),
|
|
||||||
int(value.node.product_id, 16),
|
|
||||||
value.index)
|
|
||||||
|
|
||||||
# Check workaround mappings for specific devices.
|
|
||||||
if specific_sensor_key in DEVICE_MAPPINGS:
|
|
||||||
if DEVICE_MAPPINGS[specific_sensor_key] == WORKAROUND_IGNORE:
|
|
||||||
return
|
|
||||||
|
|
||||||
# Generic Device mappings
|
# Generic Device mappings
|
||||||
if node.has_command_class(zwave.const.COMMAND_CLASS_SENSOR_MULTILEVEL):
|
if node.has_command_class(zwave.const.COMMAND_CLASS_SENSOR_MULTILEVEL):
|
||||||
add_devices([ZWaveMultilevelSensor(value)])
|
add_devices([ZWaveMultilevelSensor(value)])
|
||||||
|
@ -181,7 +181,8 @@ def _object_id(value):
|
|||||||
The object_id contains node_id and value instance id
|
The object_id contains node_id and value instance id
|
||||||
to not collide with other entity_ids.
|
to not collide with other entity_ids.
|
||||||
"""
|
"""
|
||||||
object_id = "{}_{}".format(slugify(_value_name(value)), value.node.node_id)
|
object_id = "{}_{}_{}".format(slugify(_value_name(value)),
|
||||||
|
value.node.node_id, value.index)
|
||||||
|
|
||||||
# Add the instance id if there is more than one instance for the value
|
# Add the instance id if there is more than one instance for the value
|
||||||
if value.instance > 1:
|
if value.instance > 1:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user