mirror of
https://github.com/home-assistant/core.git
synced 2025-07-26 22:57:17 +00:00
commit
a2d268a061
@ -20,37 +20,39 @@ def setup_scanner(hass, config, see, discovery_info=None):
|
|||||||
"""Callback for mysensors platform."""
|
"""Callback for mysensors platform."""
|
||||||
node = gateway.sensors[msg.node_id]
|
node = gateway.sensors[msg.node_id]
|
||||||
if node.sketch_name is None:
|
if node.sketch_name is None:
|
||||||
_LOGGER.info('No sketch_name: node %s', msg.node_id)
|
_LOGGER.debug('No sketch_name: node %s', msg.node_id)
|
||||||
return
|
return
|
||||||
|
|
||||||
pres = gateway.const.Presentation
|
pres = gateway.const.Presentation
|
||||||
set_req = gateway.const.SetReq
|
set_req = gateway.const.SetReq
|
||||||
|
|
||||||
for child in node.children.values():
|
child = node.children.get(msg.child_id)
|
||||||
position = child.values.get(set_req.V_POSITION)
|
if child is None:
|
||||||
if child.type != pres.S_GPS or position is None:
|
return
|
||||||
continue
|
position = child.values.get(set_req.V_POSITION)
|
||||||
try:
|
if child.type != pres.S_GPS or position is None:
|
||||||
latitude, longitude, _ = position.split(',')
|
return
|
||||||
except ValueError:
|
try:
|
||||||
_LOGGER.error('Payload for V_POSITION %s is not of format '
|
latitude, longitude, _ = position.split(',')
|
||||||
'latitude,longitude,altitude', position)
|
except ValueError:
|
||||||
continue
|
_LOGGER.error('Payload for V_POSITION %s is not of format '
|
||||||
name = '{} {} {}'.format(
|
'latitude,longitude,altitude', position)
|
||||||
node.sketch_name, msg.node_id, child.id)
|
return
|
||||||
attr = {
|
name = '{} {} {}'.format(
|
||||||
mysensors.ATTR_CHILD_ID: child.id,
|
node.sketch_name, msg.node_id, child.id)
|
||||||
mysensors.ATTR_DESCRIPTION: child.description,
|
attr = {
|
||||||
mysensors.ATTR_DEVICE: gateway.device,
|
mysensors.ATTR_CHILD_ID: child.id,
|
||||||
mysensors.ATTR_NODE_ID: msg.node_id,
|
mysensors.ATTR_DESCRIPTION: child.description,
|
||||||
}
|
mysensors.ATTR_DEVICE: gateway.device,
|
||||||
see(
|
mysensors.ATTR_NODE_ID: msg.node_id,
|
||||||
dev_id=slugify(name),
|
}
|
||||||
host_name=name,
|
see(
|
||||||
gps=(latitude, longitude),
|
dev_id=slugify(name),
|
||||||
battery=node.battery_level,
|
host_name=name,
|
||||||
attributes=attr
|
gps=(latitude, longitude),
|
||||||
)
|
battery=node.battery_level,
|
||||||
|
attributes=attr
|
||||||
|
)
|
||||||
|
|
||||||
gateways = hass.data.get(mysensors.MYSENSORS_GATEWAYS)
|
gateways = hass.data.get(mysensors.MYSENSORS_GATEWAYS)
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@ IDENTIFY_DEVICE_SCHEMA_CONTAINER = vol.All(dict, IDENTIFY_DEVICE_SCHEMA)
|
|||||||
IDENTIFY_APP_SCHEMA = vol.Schema({
|
IDENTIFY_APP_SCHEMA = vol.Schema({
|
||||||
vol.Required(ATTR_APP_BUNDLE_IDENTIFER): cv.string,
|
vol.Required(ATTR_APP_BUNDLE_IDENTIFER): cv.string,
|
||||||
vol.Required(ATTR_APP_BUILD_NUMBER): cv.positive_int,
|
vol.Required(ATTR_APP_BUILD_NUMBER): cv.positive_int,
|
||||||
vol.Required(ATTR_APP_VERSION_NUMBER): cv.positive_int
|
vol.Optional(ATTR_APP_VERSION_NUMBER): cv.string
|
||||||
}, extra=vol.ALLOW_EXTRA)
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
||||||
IDENTIFY_APP_SCHEMA_CONTAINER = vol.All(dict, IDENTIFY_APP_SCHEMA)
|
IDENTIFY_APP_SCHEMA_CONTAINER = vol.All(dict, IDENTIFY_APP_SCHEMA)
|
||||||
|
@ -310,25 +310,25 @@ class ZwaveColorLight(ZwaveDimmer):
|
|||||||
if self._zw098:
|
if self._zw098:
|
||||||
if kwargs[ATTR_COLOR_TEMP] > TEMP_MID_HASS:
|
if kwargs[ATTR_COLOR_TEMP] > TEMP_MID_HASS:
|
||||||
self._ct = TEMP_WARM_HASS
|
self._ct = TEMP_WARM_HASS
|
||||||
rgbw = b'#000000ff00'
|
rgbw = '#000000ff00'
|
||||||
else:
|
else:
|
||||||
self._ct = TEMP_COLD_HASS
|
self._ct = TEMP_COLD_HASS
|
||||||
rgbw = b'#00000000ff'
|
rgbw = '#00000000ff'
|
||||||
|
|
||||||
elif ATTR_RGB_COLOR in kwargs:
|
elif ATTR_RGB_COLOR in kwargs:
|
||||||
self._rgb = kwargs[ATTR_RGB_COLOR]
|
self._rgb = kwargs[ATTR_RGB_COLOR]
|
||||||
if (not self._zw098 and (
|
if (not self._zw098 and (
|
||||||
self._color_channels & COLOR_CHANNEL_WARM_WHITE or
|
self._color_channels & COLOR_CHANNEL_WARM_WHITE or
|
||||||
self._color_channels & COLOR_CHANNEL_COLD_WHITE)):
|
self._color_channels & COLOR_CHANNEL_COLD_WHITE)):
|
||||||
rgbw = b'#'
|
rgbw = '#'
|
||||||
for colorval in color_rgb_to_rgbw(*self._rgb):
|
for colorval in color_rgb_to_rgbw(*self._rgb):
|
||||||
rgbw += format(colorval, '02x').encode('utf-8')
|
rgbw += format(colorval, '02x')
|
||||||
rgbw += b'00'
|
rgbw += '00'
|
||||||
else:
|
else:
|
||||||
rgbw = b'#'
|
rgbw = '#'
|
||||||
for colorval in self._rgb:
|
for colorval in self._rgb:
|
||||||
rgbw += format(colorval, '02x').encode('utf-8')
|
rgbw += format(colorval, '02x')
|
||||||
rgbw += b'0000'
|
rgbw += '0000'
|
||||||
|
|
||||||
if rgbw and self.values.color:
|
if rgbw and self.values.color:
|
||||||
self.values.color.data = rgbw
|
self.values.color.data = rgbw
|
||||||
|
@ -46,7 +46,7 @@ MYSENSORS_GATEWAYS = 'mysensors_gateways'
|
|||||||
MQTT_COMPONENT = 'mqtt'
|
MQTT_COMPONENT = 'mqtt'
|
||||||
REQUIREMENTS = [
|
REQUIREMENTS = [
|
||||||
'https://github.com/theolind/pymysensors/archive/'
|
'https://github.com/theolind/pymysensors/archive/'
|
||||||
'ff3476b70edc9c995b939cddb9d51f8d2d018581.zip#pymysensors==0.9.0']
|
'c6990eaaa741444a638608e6e00488195e2ca74c.zip#pymysensors==0.9.1']
|
||||||
|
|
||||||
|
|
||||||
def is_socket_address(value):
|
def is_socket_address(value):
|
||||||
@ -206,12 +206,9 @@ def setup(hass, config):
|
|||||||
for node_id in gateway.sensors:
|
for node_id in gateway.sensors:
|
||||||
node = gateway.sensors[node_id]
|
node = gateway.sensors[node_id]
|
||||||
for child_id in node.children:
|
for child_id in node.children:
|
||||||
child = node.children[child_id]
|
msg = mysensors.Message().modify(
|
||||||
for value_type in child.values:
|
node_id=node_id, child_id=child_id)
|
||||||
msg = mysensors.Message().modify(
|
gateway.event_callback(msg)
|
||||||
node_id=node_id, child_id=child_id, type=1,
|
|
||||||
sub_type=value_type)
|
|
||||||
gateway.event_callback(msg)
|
|
||||||
gateway.start()
|
gateway.start()
|
||||||
hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP,
|
hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP,
|
||||||
lambda event: gateway.stop())
|
lambda event: gateway.stop())
|
||||||
@ -274,32 +271,33 @@ def pf_callback_factory(map_sv_types, devices, entity_class, add_devices=None):
|
|||||||
_LOGGER.debug('No sketch_name: node %s', msg.node_id)
|
_LOGGER.debug('No sketch_name: node %s', msg.node_id)
|
||||||
return
|
return
|
||||||
child = gateway.sensors[msg.node_id].children.get(msg.child_id)
|
child = gateway.sensors[msg.node_id].children.get(msg.child_id)
|
||||||
if child is None or child.values.get(msg.sub_type) is None:
|
if child is None:
|
||||||
return
|
return
|
||||||
key = msg.node_id, child.id, msg.sub_type
|
for value_type in child.values:
|
||||||
if child.type not in map_sv_types or \
|
key = msg.node_id, child.id, value_type
|
||||||
msg.sub_type not in map_sv_types[child.type]:
|
if child.type not in map_sv_types or \
|
||||||
return
|
value_type not in map_sv_types[child.type]:
|
||||||
if key in devices:
|
continue
|
||||||
|
if key in devices:
|
||||||
|
if add_devices:
|
||||||
|
devices[key].schedule_update_ha_state(True)
|
||||||
|
else:
|
||||||
|
devices[key].update()
|
||||||
|
continue
|
||||||
|
name = '{} {} {}'.format(
|
||||||
|
gateway.sensors[msg.node_id].sketch_name, msg.node_id,
|
||||||
|
child.id)
|
||||||
|
if isinstance(entity_class, dict):
|
||||||
|
device_class = entity_class[child.type]
|
||||||
|
else:
|
||||||
|
device_class = entity_class
|
||||||
|
devices[key] = device_class(
|
||||||
|
gateway, msg.node_id, child.id, name, value_type)
|
||||||
if add_devices:
|
if add_devices:
|
||||||
devices[key].schedule_update_ha_state(True)
|
_LOGGER.info('Adding new devices: %s', [devices[key]])
|
||||||
|
add_devices([devices[key]], True)
|
||||||
else:
|
else:
|
||||||
devices[key].update()
|
devices[key].update()
|
||||||
return
|
|
||||||
name = '{} {} {}'.format(
|
|
||||||
gateway.sensors[msg.node_id].sketch_name, msg.node_id,
|
|
||||||
child.id)
|
|
||||||
if isinstance(entity_class, dict):
|
|
||||||
device_class = entity_class[child.type]
|
|
||||||
else:
|
|
||||||
device_class = entity_class
|
|
||||||
devices[key] = device_class(
|
|
||||||
gateway, msg.node_id, child.id, name, msg.sub_type)
|
|
||||||
if add_devices:
|
|
||||||
_LOGGER.info('Adding new devices: %s', [devices[key]])
|
|
||||||
add_devices([devices[key]], True)
|
|
||||||
else:
|
|
||||||
devices[key].update()
|
|
||||||
return mysensors_callback
|
return mysensors_callback
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"""Constants used by Home Assistant components."""
|
"""Constants used by Home Assistant components."""
|
||||||
MAJOR_VERSION = 0
|
MAJOR_VERSION = 0
|
||||||
MINOR_VERSION = 42
|
MINOR_VERSION = 42
|
||||||
PATCH_VERSION = '3'
|
PATCH_VERSION = '4'
|
||||||
__short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION)
|
__short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION)
|
||||||
__version__ = '{}.{}'.format(__short_version__, PATCH_VERSION)
|
__version__ = '{}.{}'.format(__short_version__, PATCH_VERSION)
|
||||||
REQUIRED_PYTHON_VER = (3, 4, 2)
|
REQUIRED_PYTHON_VER = (3, 4, 2)
|
||||||
|
@ -5,5 +5,5 @@ pip>=7.1.0
|
|||||||
jinja2>=2.9.5
|
jinja2>=2.9.5
|
||||||
voluptuous==0.9.3
|
voluptuous==0.9.3
|
||||||
typing>=3,<4
|
typing>=3,<4
|
||||||
aiohttp==2.0.5
|
aiohttp==2.0.7
|
||||||
async_timeout==1.2.0
|
async_timeout==1.2.0
|
||||||
|
@ -6,7 +6,7 @@ pip>=7.1.0
|
|||||||
jinja2>=2.9.5
|
jinja2>=2.9.5
|
||||||
voluptuous==0.9.3
|
voluptuous==0.9.3
|
||||||
typing>=3,<4
|
typing>=3,<4
|
||||||
aiohttp==2.0.5
|
aiohttp==2.0.7
|
||||||
async_timeout==1.2.0
|
async_timeout==1.2.0
|
||||||
|
|
||||||
# homeassistant.components.nuimo_controller
|
# homeassistant.components.nuimo_controller
|
||||||
@ -314,7 +314,7 @@ https://github.com/tfriedel/python-lightify/archive/d6eadcf311e6e21746182d1480e9
|
|||||||
https://github.com/thecynic/pylutron/archive/v0.1.0.zip#pylutron==0.1.0
|
https://github.com/thecynic/pylutron/archive/v0.1.0.zip#pylutron==0.1.0
|
||||||
|
|
||||||
# homeassistant.components.mysensors
|
# homeassistant.components.mysensors
|
||||||
https://github.com/theolind/pymysensors/archive/ff3476b70edc9c995b939cddb9d51f8d2d018581.zip#pymysensors==0.9.0
|
https://github.com/theolind/pymysensors/archive/c6990eaaa741444a638608e6e00488195e2ca74c.zip#pymysensors==0.9.1
|
||||||
|
|
||||||
# homeassistant.components.sensor.modem_callerid
|
# homeassistant.components.sensor.modem_callerid
|
||||||
https://github.com/vroomfonde1/basicmodem/archive/0.7.zip#basicmodem==0.7
|
https://github.com/vroomfonde1/basicmodem/archive/0.7.zip#basicmodem==0.7
|
||||||
|
2
setup.py
2
setup.py
@ -22,7 +22,7 @@ REQUIRES = [
|
|||||||
'jinja2>=2.9.5',
|
'jinja2>=2.9.5',
|
||||||
'voluptuous==0.9.3',
|
'voluptuous==0.9.3',
|
||||||
'typing>=3,<4',
|
'typing>=3,<4',
|
||||||
'aiohttp==2.0.5',
|
'aiohttp==2.0.7',
|
||||||
'async_timeout==1.2.0',
|
'async_timeout==1.2.0',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -207,36 +207,36 @@ def test_set_rgb_color(mock_openzwave):
|
|||||||
"""Test setting zwave light color."""
|
"""Test setting zwave light color."""
|
||||||
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
||||||
value = MockValue(data=0, node=node)
|
value = MockValue(data=0, node=node)
|
||||||
color = MockValue(data=b'#0000000000', node=node)
|
color = MockValue(data='#0000000000', node=node)
|
||||||
# Suppoorts RGB only
|
# Suppoorts RGB only
|
||||||
color_channels = MockValue(data=0x1c, node=node)
|
color_channels = MockValue(data=0x1c, node=node)
|
||||||
values = MockLightValues(primary=value, color=color,
|
values = MockLightValues(primary=value, color=color,
|
||||||
color_channels=color_channels)
|
color_channels=color_channels)
|
||||||
device = zwave.get_device(node=node, values=values, node_config={})
|
device = zwave.get_device(node=node, values=values, node_config={})
|
||||||
|
|
||||||
assert color.data == b'#0000000000'
|
assert color.data == '#0000000000'
|
||||||
|
|
||||||
device.turn_on(**{ATTR_RGB_COLOR: (200, 150, 100)})
|
device.turn_on(**{ATTR_RGB_COLOR: (200, 150, 100)})
|
||||||
|
|
||||||
assert color.data == b'#c896640000'
|
assert color.data == '#c896640000'
|
||||||
|
|
||||||
|
|
||||||
def test_set_rgbw_color(mock_openzwave):
|
def test_set_rgbw_color(mock_openzwave):
|
||||||
"""Test setting zwave light color."""
|
"""Test setting zwave light color."""
|
||||||
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
||||||
value = MockValue(data=0, node=node)
|
value = MockValue(data=0, node=node)
|
||||||
color = MockValue(data=b'#0000000000', node=node)
|
color = MockValue(data='#0000000000', node=node)
|
||||||
# Suppoorts RGBW
|
# Suppoorts RGBW
|
||||||
color_channels = MockValue(data=0x1d, node=node)
|
color_channels = MockValue(data=0x1d, node=node)
|
||||||
values = MockLightValues(primary=value, color=color,
|
values = MockLightValues(primary=value, color=color,
|
||||||
color_channels=color_channels)
|
color_channels=color_channels)
|
||||||
device = zwave.get_device(node=node, values=values, node_config={})
|
device = zwave.get_device(node=node, values=values, node_config={})
|
||||||
|
|
||||||
assert color.data == b'#0000000000'
|
assert color.data == '#0000000000'
|
||||||
|
|
||||||
device.turn_on(**{ATTR_RGB_COLOR: (200, 150, 100)})
|
device.turn_on(**{ATTR_RGB_COLOR: (200, 150, 100)})
|
||||||
|
|
||||||
assert color.data == b'#c86400c800'
|
assert color.data == '#c86400c800'
|
||||||
|
|
||||||
|
|
||||||
def test_zw098_set_color_temp(mock_openzwave):
|
def test_zw098_set_color_temp(mock_openzwave):
|
||||||
@ -244,29 +244,29 @@ def test_zw098_set_color_temp(mock_openzwave):
|
|||||||
node = MockNode(manufacturer_id='0086', product_id='0062',
|
node = MockNode(manufacturer_id='0086', product_id='0062',
|
||||||
command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
||||||
value = MockValue(data=0, node=node)
|
value = MockValue(data=0, node=node)
|
||||||
color = MockValue(data=b'#0000000000', node=node)
|
color = MockValue(data='#0000000000', node=node)
|
||||||
# Suppoorts RGB, warm white, cold white
|
# Suppoorts RGB, warm white, cold white
|
||||||
color_channels = MockValue(data=0x1f, node=node)
|
color_channels = MockValue(data=0x1f, node=node)
|
||||||
values = MockLightValues(primary=value, color=color,
|
values = MockLightValues(primary=value, color=color,
|
||||||
color_channels=color_channels)
|
color_channels=color_channels)
|
||||||
device = zwave.get_device(node=node, values=values, node_config={})
|
device = zwave.get_device(node=node, values=values, node_config={})
|
||||||
|
|
||||||
assert color.data == b'#0000000000'
|
assert color.data == '#0000000000'
|
||||||
|
|
||||||
device.turn_on(**{ATTR_COLOR_TEMP: 200})
|
device.turn_on(**{ATTR_COLOR_TEMP: 200})
|
||||||
|
|
||||||
assert color.data == b'#00000000ff'
|
assert color.data == '#00000000ff'
|
||||||
|
|
||||||
device.turn_on(**{ATTR_COLOR_TEMP: 400})
|
device.turn_on(**{ATTR_COLOR_TEMP: 400})
|
||||||
|
|
||||||
assert color.data == b'#000000ff00'
|
assert color.data == '#000000ff00'
|
||||||
|
|
||||||
|
|
||||||
def test_rgb_not_supported(mock_openzwave):
|
def test_rgb_not_supported(mock_openzwave):
|
||||||
"""Test value changed for rgb lights."""
|
"""Test value changed for rgb lights."""
|
||||||
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
||||||
value = MockValue(data=0, node=node)
|
value = MockValue(data=0, node=node)
|
||||||
color = MockValue(data=b'#0000000000', node=node)
|
color = MockValue(data='#0000000000', node=node)
|
||||||
# Suppoorts color temperature only
|
# Suppoorts color temperature only
|
||||||
color_channels = MockValue(data=0x01, node=node)
|
color_channels = MockValue(data=0x01, node=node)
|
||||||
values = MockLightValues(primary=value, color=color,
|
values = MockLightValues(primary=value, color=color,
|
||||||
@ -290,7 +290,7 @@ def test_no_color_channels_value(mock_openzwave):
|
|||||||
"""Test value changed for rgb lights."""
|
"""Test value changed for rgb lights."""
|
||||||
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
||||||
value = MockValue(data=0, node=node)
|
value = MockValue(data=0, node=node)
|
||||||
color = MockValue(data=b'#0000000000', node=node)
|
color = MockValue(data='#0000000000', node=node)
|
||||||
values = MockLightValues(primary=value, color=color)
|
values = MockLightValues(primary=value, color=color)
|
||||||
device = zwave.get_device(node=node, values=values, node_config={})
|
device = zwave.get_device(node=node, values=values, node_config={})
|
||||||
|
|
||||||
@ -301,7 +301,7 @@ def test_rgb_value_changed(mock_openzwave):
|
|||||||
"""Test value changed for rgb lights."""
|
"""Test value changed for rgb lights."""
|
||||||
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
||||||
value = MockValue(data=0, node=node)
|
value = MockValue(data=0, node=node)
|
||||||
color = MockValue(data=b'#0000000000', node=node)
|
color = MockValue(data='#0000000000', node=node)
|
||||||
# Suppoorts RGB only
|
# Suppoorts RGB only
|
||||||
color_channels = MockValue(data=0x1c, node=node)
|
color_channels = MockValue(data=0x1c, node=node)
|
||||||
values = MockLightValues(primary=value, color=color,
|
values = MockLightValues(primary=value, color=color,
|
||||||
@ -310,7 +310,7 @@ def test_rgb_value_changed(mock_openzwave):
|
|||||||
|
|
||||||
assert device.rgb_color == [0, 0, 0]
|
assert device.rgb_color == [0, 0, 0]
|
||||||
|
|
||||||
color.data = b'#c896640000'
|
color.data = '#c896640000'
|
||||||
value_changed(color)
|
value_changed(color)
|
||||||
|
|
||||||
assert device.rgb_color == [200, 150, 100]
|
assert device.rgb_color == [200, 150, 100]
|
||||||
@ -320,7 +320,7 @@ def test_rgbww_value_changed(mock_openzwave):
|
|||||||
"""Test value changed for rgb lights."""
|
"""Test value changed for rgb lights."""
|
||||||
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
||||||
value = MockValue(data=0, node=node)
|
value = MockValue(data=0, node=node)
|
||||||
color = MockValue(data=b'#0000000000', node=node)
|
color = MockValue(data='#0000000000', node=node)
|
||||||
# Suppoorts RGB, Warm White
|
# Suppoorts RGB, Warm White
|
||||||
color_channels = MockValue(data=0x1d, node=node)
|
color_channels = MockValue(data=0x1d, node=node)
|
||||||
values = MockLightValues(primary=value, color=color,
|
values = MockLightValues(primary=value, color=color,
|
||||||
@ -329,7 +329,7 @@ def test_rgbww_value_changed(mock_openzwave):
|
|||||||
|
|
||||||
assert device.rgb_color == [0, 0, 0]
|
assert device.rgb_color == [0, 0, 0]
|
||||||
|
|
||||||
color.data = b'#c86400c800'
|
color.data = '#c86400c800'
|
||||||
value_changed(color)
|
value_changed(color)
|
||||||
|
|
||||||
assert device.rgb_color == [200, 150, 100]
|
assert device.rgb_color == [200, 150, 100]
|
||||||
@ -339,7 +339,7 @@ def test_rgbcw_value_changed(mock_openzwave):
|
|||||||
"""Test value changed for rgb lights."""
|
"""Test value changed for rgb lights."""
|
||||||
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
node = MockNode(command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
||||||
value = MockValue(data=0, node=node)
|
value = MockValue(data=0, node=node)
|
||||||
color = MockValue(data=b'#0000000000', node=node)
|
color = MockValue(data='#0000000000', node=node)
|
||||||
# Suppoorts RGB, Cold White
|
# Suppoorts RGB, Cold White
|
||||||
color_channels = MockValue(data=0x1e, node=node)
|
color_channels = MockValue(data=0x1e, node=node)
|
||||||
values = MockLightValues(primary=value, color=color,
|
values = MockLightValues(primary=value, color=color,
|
||||||
@ -348,7 +348,7 @@ def test_rgbcw_value_changed(mock_openzwave):
|
|||||||
|
|
||||||
assert device.rgb_color == [0, 0, 0]
|
assert device.rgb_color == [0, 0, 0]
|
||||||
|
|
||||||
color.data = b'#c86400c800'
|
color.data = '#c86400c800'
|
||||||
value_changed(color)
|
value_changed(color)
|
||||||
|
|
||||||
assert device.rgb_color == [200, 150, 100]
|
assert device.rgb_color == [200, 150, 100]
|
||||||
@ -359,7 +359,7 @@ def test_ct_value_changed(mock_openzwave):
|
|||||||
node = MockNode(manufacturer_id='0086', product_id='0062',
|
node = MockNode(manufacturer_id='0086', product_id='0062',
|
||||||
command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
command_classes=[const.COMMAND_CLASS_SWITCH_COLOR])
|
||||||
value = MockValue(data=0, node=node)
|
value = MockValue(data=0, node=node)
|
||||||
color = MockValue(data=b'#0000000000', node=node)
|
color = MockValue(data='#0000000000', node=node)
|
||||||
# Suppoorts RGB, Cold White
|
# Suppoorts RGB, Cold White
|
||||||
color_channels = MockValue(data=0x1f, node=node)
|
color_channels = MockValue(data=0x1f, node=node)
|
||||||
values = MockLightValues(primary=value, color=color,
|
values = MockLightValues(primary=value, color=color,
|
||||||
@ -368,12 +368,12 @@ def test_ct_value_changed(mock_openzwave):
|
|||||||
|
|
||||||
assert device.color_temp == zwave.TEMP_MID_HASS
|
assert device.color_temp == zwave.TEMP_MID_HASS
|
||||||
|
|
||||||
color.data = b'#000000ff00'
|
color.data = '#000000ff00'
|
||||||
value_changed(color)
|
value_changed(color)
|
||||||
|
|
||||||
assert device.color_temp == zwave.TEMP_WARM_HASS
|
assert device.color_temp == zwave.TEMP_WARM_HASS
|
||||||
|
|
||||||
color.data = b'#00000000ff'
|
color.data = '#00000000ff'
|
||||||
value_changed(color)
|
value_changed(color)
|
||||||
|
|
||||||
assert device.color_temp == zwave.TEMP_COLD_HASS
|
assert device.color_temp == zwave.TEMP_COLD_HASS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user