From 206e38a2aba3eda32a30cdac54976c6c1156678a Mon Sep 17 00:00:00 2001 From: cdce8p <30130371+cdce8p@users.noreply.github.com> Date: Thu, 5 Apr 2018 13:20:20 +0200 Subject: [PATCH] Update HAP-python to 1.1.8 (#13563) * Bump version to HAP-python==1.1.8 * Required changes for version change * Small bugfix lights --- homeassistant/components/homekit/__init__.py | 2 +- .../components/homekit/accessories.py | 14 ++------ homeassistant/components/homekit/const.py | 5 --- .../components/homekit/type_lights.py | 1 + .../components/homekit/type_sensors.py | 5 ++- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- tests/components/homekit/test_accessories.py | 32 ++++--------------- 8 files changed, 14 insertions(+), 49 deletions(-) diff --git a/homeassistant/components/homekit/__init__.py b/homeassistant/components/homekit/__init__.py index 25b54b6c723..948e26be291 100644 --- a/homeassistant/components/homekit/__init__.py +++ b/homeassistant/components/homekit/__init__.py @@ -28,7 +28,7 @@ from .util import ( TYPES = Registry() _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['HAP-python==1.1.7'] +REQUIREMENTS = ['HAP-python==1.1.8'] CONFIG_SCHEMA = vol.Schema({ diff --git a/homeassistant/components/homekit/accessories.py b/homeassistant/components/homekit/accessories.py index 3e9f22ef2bc..da45bee9e90 100644 --- a/homeassistant/components/homekit/accessories.py +++ b/homeassistant/components/homekit/accessories.py @@ -8,8 +8,8 @@ from homeassistant.helpers.event import async_track_state_change from .const import ( ACCESSORY_MODEL, ACCESSORY_NAME, BRIDGE_MODEL, BRIDGE_NAME, - MANUFACTURER, SERV_ACCESSORY_INFO, SERV_BRIDGING_STATE, - CHAR_MANUFACTURER, CHAR_MODEL, CHAR_NAME, CHAR_SERIAL_NUMBER) + MANUFACTURER, SERV_ACCESSORY_INFO, CHAR_MANUFACTURER, CHAR_MODEL, + CHAR_NAME, CHAR_SERIAL_NUMBER) from .util import ( show_setup_message, dismiss_setup_message) @@ -39,15 +39,6 @@ def set_accessory_info(acc, name, model, manufacturer=MANUFACTURER, service.get_characteristic(CHAR_SERIAL_NUMBER).set_value(serial_number) -def override_properties(char, properties=None, valid_values=None): - """Override characteristic property values and valid values.""" - if properties: - char.properties.update(properties) - - if valid_values: - char.properties['ValidValues'].update(valid_values) - - class HomeAccessory(Accessory): """Adapter class for Accessory.""" @@ -83,7 +74,6 @@ class HomeBridge(Bridge): def _set_services(self): add_preload_service(self, SERV_ACCESSORY_INFO) - add_preload_service(self, SERV_BRIDGING_STATE) def setup_message(self): """Prevent print of pyhap setup message to terminal.""" diff --git a/homeassistant/components/homekit/const.py b/homeassistant/components/homekit/const.py index c2a10f61fcb..676f83bf8e8 100644 --- a/homeassistant/components/homekit/const.py +++ b/homeassistant/components/homekit/const.py @@ -34,7 +34,6 @@ CATEGORY_WINDOW_COVERING = 'WINDOW_COVERING' # #### Services #### SERV_ACCESSORY_INFO = 'AccessoryInformation' -SERV_BRIDGING_STATE = 'BridgingState' SERV_HUMIDITY_SENSOR = 'HumiditySensor' # CurrentRelativeHumidity | StatusActive, StatusFault, StatusTampered, # StatusLowBattery, Name @@ -47,9 +46,7 @@ SERV_WINDOW_COVERING = 'WindowCovering' # #### Characteristics #### -CHAR_ACC_IDENTIFIER = 'AccessoryIdentifier' CHAR_BRIGHTNESS = 'Brightness' # Int | [0, 100] -CHAR_CATEGORY = 'Category' CHAR_COOLING_THRESHOLD_TEMPERATURE = 'CoolingThresholdTemperature' CHAR_CURRENT_HEATING_COOLING = 'CurrentHeatingCoolingState' CHAR_CURRENT_POSITION = 'CurrentPosition' @@ -58,13 +55,11 @@ CHAR_CURRENT_SECURITY_STATE = 'SecuritySystemCurrentState' CHAR_CURRENT_TEMPERATURE = 'CurrentTemperature' CHAR_HEATING_THRESHOLD_TEMPERATURE = 'HeatingThresholdTemperature' CHAR_HUE = 'Hue' # arcdegress | [0, 360] -CHAR_LINK_QUALITY = 'LinkQuality' CHAR_MANUFACTURER = 'Manufacturer' CHAR_MODEL = 'Model' CHAR_NAME = 'Name' CHAR_ON = 'On' # boolean CHAR_POSITION_STATE = 'PositionState' -CHAR_REACHABLE = 'Reachable' CHAR_SATURATION = 'Saturation' # percent CHAR_SERIAL_NUMBER = 'SerialNumber' CHAR_TARGET_HEATING_COOLING = 'TargetHeatingCoolingState' diff --git a/homeassistant/components/homekit/type_lights.py b/homeassistant/components/homekit/type_lights.py index b02aee1e714..45ed9405a2a 100644 --- a/homeassistant/components/homekit/type_lights.py +++ b/homeassistant/components/homekit/type_lights.py @@ -152,4 +152,5 @@ class Light(HomeAccessory): self.char_hue.set_value(hue, should_callback=False) self.char_saturation.set_value(saturation, should_callback=False) + self._hue, self._saturation = (hue, saturation) self._flag[RGB_COLOR] = False diff --git a/homeassistant/components/homekit/type_sensors.py b/homeassistant/components/homekit/type_sensors.py index 9768c4a51d4..80521df5991 100644 --- a/homeassistant/components/homekit/type_sensors.py +++ b/homeassistant/components/homekit/type_sensors.py @@ -5,8 +5,7 @@ from homeassistant.const import ( ATTR_UNIT_OF_MEASUREMENT, TEMP_CELSIUS) from . import TYPES -from .accessories import ( - HomeAccessory, add_preload_service, override_properties) +from .accessories import HomeAccessory, add_preload_service from .const import ( CATEGORY_SENSOR, SERV_HUMIDITY_SENSOR, SERV_TEMPERATURE_SENSOR, CHAR_CURRENT_HUMIDITY, CHAR_CURRENT_TEMPERATURE, PROP_CELSIUS) @@ -32,7 +31,7 @@ class TemperatureSensor(HomeAccessory): serv_temp = add_preload_service(self, SERV_TEMPERATURE_SENSOR) self.char_temp = serv_temp.get_characteristic(CHAR_CURRENT_TEMPERATURE) - override_properties(self.char_temp, PROP_CELSIUS) + self.char_temp.override_properties(properties=PROP_CELSIUS) self.char_temp.value = 0 self.unit = None diff --git a/requirements_all.txt b/requirements_all.txt index 1cfe6df643f..49b23015794 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -22,7 +22,7 @@ attrs==17.4.0 DoorBirdPy==0.1.3 # homeassistant.components.homekit -HAP-python==1.1.7 +HAP-python==1.1.8 # homeassistant.components.notify.mastodon Mastodon.py==1.2.2 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 120d2c73024..7c5467f7608 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -19,7 +19,7 @@ requests_mock==1.4 # homeassistant.components.homekit -HAP-python==1.1.7 +HAP-python==1.1.8 # homeassistant.components.notify.html5 PyJWT==1.6.0 diff --git a/tests/components/homekit/test_accessories.py b/tests/components/homekit/test_accessories.py index 6599ec83335..a2facd826e4 100644 --- a/tests/components/homekit/test_accessories.py +++ b/tests/components/homekit/test_accessories.py @@ -6,12 +6,12 @@ import unittest from unittest.mock import call, patch, Mock from homeassistant.components.homekit.accessories import ( - add_preload_service, set_accessory_info, override_properties, + add_preload_service, set_accessory_info, HomeAccessory, HomeBridge, HomeDriver) from homeassistant.components.homekit.const import ( ACCESSORY_MODEL, ACCESSORY_NAME, BRIDGE_MODEL, BRIDGE_NAME, - SERV_ACCESSORY_INFO, SERV_BRIDGING_STATE, - CHAR_MANUFACTURER, CHAR_MODEL, CHAR_NAME, CHAR_SERIAL_NUMBER) + SERV_ACCESSORY_INFO, CHAR_MANUFACTURER, CHAR_MODEL, + CHAR_NAME, CHAR_SERIAL_NUMBER) class TestAccessories(unittest.TestCase): @@ -22,7 +22,7 @@ class TestAccessories(unittest.TestCase): acc = Mock() serv = add_preload_service(acc, 'AirPurifier') self.assertEqual(acc.mock_calls, [call.add_service(serv)]) - with self.assertRaises(AssertionError): + with self.assertRaises(ValueError): serv.get_characteristic('Name') # Test with typo in service name @@ -68,24 +68,6 @@ class TestAccessories(unittest.TestCase): self.assertEqual( serv.get_characteristic(CHAR_SERIAL_NUMBER).value, '0000') - def test_override_properties(self): - """Test overriding property values.""" - serv = add_preload_service(Mock(), 'AirPurifier', 'RotationSpeed') - - char_active = serv.get_characteristic('Active') - char_rotation_speed = serv.get_characteristic('RotationSpeed') - - self.assertTrue( - char_active.properties['ValidValues'].get('State') is None) - self.assertEqual(char_rotation_speed.properties['maxValue'], 100) - - override_properties(char_active, valid_values={'State': 'On'}) - override_properties(char_rotation_speed, properties={'maxValue': 200}) - - self.assertFalse( - char_active.properties['ValidValues'].get('State') is None) - self.assertEqual(char_rotation_speed.properties['maxValue'], 200) - def test_home_accessory(self): """Test HomeAccessory class.""" acc = HomeAccessory() @@ -110,17 +92,15 @@ class TestAccessories(unittest.TestCase): bridge = HomeBridge(None) self.assertEqual(bridge.display_name, BRIDGE_NAME) self.assertEqual(bridge.category, 2) # Category.BRIDGE - self.assertEqual(len(bridge.services), 2) + self.assertEqual(len(bridge.services), 1) serv = bridge.services[0] # SERV_ACCESSORY_INFO self.assertEqual(serv.display_name, SERV_ACCESSORY_INFO) self.assertEqual( serv.get_characteristic(CHAR_MODEL).value, BRIDGE_MODEL) - serv = bridge.services[1] # SERV_BRIDGING_STATE - self.assertEqual(serv.display_name, SERV_BRIDGING_STATE) bridge = HomeBridge('hass', 'test_name', 'test_model') self.assertEqual(bridge.display_name, 'test_name') - self.assertEqual(len(bridge.services), 2) + self.assertEqual(len(bridge.services), 1) serv = bridge.services[0] # SERV_ACCESSORY_INFO self.assertEqual( serv.get_characteristic(CHAR_MODEL).value, 'test_model')