HomeKit Bugfix: names (#13031)
* Fix display_names, changed default port (+1) * Revert port changepull/13033/head
parent
3c41c0c46e
commit
a58d8fc68b
|
@ -5,16 +5,17 @@ from pyhap.accessory import Accessory, Bridge, Category
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
SERV_ACCESSORY_INFO, SERV_BRIDGING_STATE, MANUFACTURER,
|
SERV_ACCESSORY_INFO, SERV_BRIDGING_STATE, MANUFACTURER,
|
||||||
CHAR_MODEL, CHAR_MANUFACTURER, CHAR_SERIAL_NUMBER)
|
CHAR_MODEL, CHAR_MANUFACTURER, CHAR_NAME, CHAR_SERIAL_NUMBER)
|
||||||
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def set_accessory_info(acc, model, manufacturer=MANUFACTURER,
|
def set_accessory_info(acc, name, model, manufacturer=MANUFACTURER,
|
||||||
serial_number='0000'):
|
serial_number='0000'):
|
||||||
"""Set the default accessory information."""
|
"""Set the default accessory information."""
|
||||||
service = acc.get_service(SERV_ACCESSORY_INFO)
|
service = acc.get_service(SERV_ACCESSORY_INFO)
|
||||||
|
service.get_characteristic(CHAR_NAME).set_value(name)
|
||||||
service.get_characteristic(CHAR_MODEL).set_value(model)
|
service.get_characteristic(CHAR_MODEL).set_value(model)
|
||||||
service.get_characteristic(CHAR_MANUFACTURER).set_value(manufacturer)
|
service.get_characteristic(CHAR_MANUFACTURER).set_value(manufacturer)
|
||||||
service.get_characteristic(CHAR_SERIAL_NUMBER).set_value(serial_number)
|
service.get_characteristic(CHAR_SERIAL_NUMBER).set_value(serial_number)
|
||||||
|
@ -49,7 +50,7 @@ class HomeAccessory(Accessory):
|
||||||
def __init__(self, display_name, model, category='OTHER', **kwargs):
|
def __init__(self, display_name, model, category='OTHER', **kwargs):
|
||||||
"""Initialize a Accessory object."""
|
"""Initialize a Accessory object."""
|
||||||
super().__init__(display_name, **kwargs)
|
super().__init__(display_name, **kwargs)
|
||||||
set_accessory_info(self, model)
|
set_accessory_info(self, display_name, model)
|
||||||
self.category = getattr(Category, category, Category.OTHER)
|
self.category = getattr(Category, category, Category.OTHER)
|
||||||
|
|
||||||
def _set_services(self):
|
def _set_services(self):
|
||||||
|
@ -62,7 +63,7 @@ class HomeBridge(Bridge):
|
||||||
def __init__(self, display_name, model, pincode, **kwargs):
|
def __init__(self, display_name, model, pincode, **kwargs):
|
||||||
"""Initialize a Bridge object."""
|
"""Initialize a Bridge object."""
|
||||||
super().__init__(display_name, pincode=pincode, **kwargs)
|
super().__init__(display_name, pincode=pincode, **kwargs)
|
||||||
set_accessory_info(self, model)
|
set_accessory_info(self, display_name, model)
|
||||||
|
|
||||||
def _set_services(self):
|
def _set_services(self):
|
||||||
add_preload_service(self, SERV_ACCESSORY_INFO)
|
add_preload_service(self, SERV_ACCESSORY_INFO)
|
||||||
|
|
|
@ -22,6 +22,7 @@ CHAR_HEATING_THRESHOLD_TEMPERATURE = 'HeatingThresholdTemperature'
|
||||||
CHAR_LINK_QUALITY = 'LinkQuality'
|
CHAR_LINK_QUALITY = 'LinkQuality'
|
||||||
CHAR_MANUFACTURER = 'Manufacturer'
|
CHAR_MANUFACTURER = 'Manufacturer'
|
||||||
CHAR_MODEL = 'Model'
|
CHAR_MODEL = 'Model'
|
||||||
|
CHAR_NAME = 'Name'
|
||||||
CHAR_ON = 'On'
|
CHAR_ON = 'On'
|
||||||
CHAR_POSITION_STATE = 'PositionState'
|
CHAR_POSITION_STATE = 'PositionState'
|
||||||
CHAR_REACHABLE = 'Reachable'
|
CHAR_REACHABLE = 'Reachable'
|
||||||
|
|
|
@ -13,7 +13,7 @@ from homeassistant.components.homekit.accessories import (
|
||||||
HomeAccessory, HomeBridge)
|
HomeAccessory, HomeBridge)
|
||||||
from homeassistant.components.homekit.const import (
|
from homeassistant.components.homekit.const import (
|
||||||
SERV_ACCESSORY_INFO, SERV_BRIDGING_STATE,
|
SERV_ACCESSORY_INFO, SERV_BRIDGING_STATE,
|
||||||
CHAR_MODEL, CHAR_MANUFACTURER, CHAR_SERIAL_NUMBER)
|
CHAR_MODEL, CHAR_MANUFACTURER, CHAR_NAME, CHAR_SERIAL_NUMBER)
|
||||||
|
|
||||||
from tests.mock.homekit import (
|
from tests.mock.homekit import (
|
||||||
get_patch_paths, mock_preload_service,
|
get_patch_paths, mock_preload_service,
|
||||||
|
@ -69,21 +69,23 @@ def test_override_properties():
|
||||||
def test_set_accessory_info():
|
def test_set_accessory_info():
|
||||||
"""Test setting of basic accessory information with MockAccessory."""
|
"""Test setting of basic accessory information with MockAccessory."""
|
||||||
acc = MockAccessory('Accessory')
|
acc = MockAccessory('Accessory')
|
||||||
set_accessory_info(acc, 'model', 'manufacturer', '0000')
|
set_accessory_info(acc, 'name', 'model', 'manufacturer', '0000')
|
||||||
|
|
||||||
assert len(acc.services) == 1
|
assert len(acc.services) == 1
|
||||||
serv = acc.services[0]
|
serv = acc.services[0]
|
||||||
|
|
||||||
assert serv.display_name == SERV_ACCESSORY_INFO
|
assert serv.display_name == SERV_ACCESSORY_INFO
|
||||||
assert len(serv.characteristics) == 3
|
assert len(serv.characteristics) == 4
|
||||||
chars = serv.characteristics
|
chars = serv.characteristics
|
||||||
|
|
||||||
assert chars[0].display_name == CHAR_MODEL
|
assert chars[0].display_name == CHAR_NAME
|
||||||
assert chars[0].value == 'model'
|
assert chars[0].value == 'name'
|
||||||
assert chars[1].display_name == CHAR_MANUFACTURER
|
assert chars[1].display_name == CHAR_MODEL
|
||||||
assert chars[1].value == 'manufacturer'
|
assert chars[1].value == 'model'
|
||||||
assert chars[2].display_name == CHAR_SERIAL_NUMBER
|
assert chars[2].display_name == CHAR_MANUFACTURER
|
||||||
assert chars[2].value == '0000'
|
assert chars[2].value == 'manufacturer'
|
||||||
|
assert chars[3].display_name == CHAR_SERIAL_NUMBER
|
||||||
|
assert chars[3].value == '0000'
|
||||||
|
|
||||||
|
|
||||||
@patch(PATH_ACC, side_effect=mock_preload_service)
|
@patch(PATH_ACC, side_effect=mock_preload_service)
|
||||||
|
|
Loading…
Reference in New Issue