8000 HomeKit Bugfix: names by cdce8p · Pull Request #13031 · home-assistant/core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

HomeKit Bugfix: names #13031

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 10, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions homeassistant/components/homekit/accessories.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@

from .const import (
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__)


def set_accessory_info(acc, model, manufacturer=MANUFACTURER,
def set_accessory_info(acc, name, model, manufacturer=MANUFACTURER,
serial_number='0000'):
"""Set the default accessory information."""
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_MANUFACTURER).set_value(manufacturer)
service.get_characteristic(CHAR_SERIAL_NUMBER).set_value(serial_number)
Expand Down Expand Up @@ -49,7 +50,7 @@ class HomeAccessory(Accessory):
def __init__(self, display_name, model, category='OTHER', **kwargs):
"""Initialize a Accessory object."""
super().__init__(display_name, **kwargs)
set_accessory_info(self, model)
set_accessory_info(self, display_name, model)
self.category = getattr(Category, category, Category.OTHER)

def _set_services(self):
Expand All @@ -62,7 +63,7 @@ class HomeBridge(Bridge):
def __init__(self, display_name, model, pincode, **kwargs):
"""Initialize a Bridge object."""
super().__init__(display_name, pincode=pincode, **kwargs)
set_accessory_info(self, model)
set_accessory_info(self, display_name, model)

def _set_services(self):
add_preload_service(self, SERV_ACCESSORY_INFO)
Expand Down
1 change: 1 addition & 0 deletions homeassistant/components/homekit/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
CHAR_LINK_QUALITY = 'LinkQuality'
CHAR_MANUFACTURER = 'Manufacturer'
CHAR_MODEL = 'Model'
CHAR_NAME = 'Name'
CHAR_ON = 'On'
CHAR_POSITION_STATE = 'PositionState'
CHAR_REACHABLE = 'Reachable'
Expand Down
20 changes: 11 additions & 9 deletions tests/components/homekit/test_accessories.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
HomeAccessory, HomeBridge)
from homeassistant.components.homekit.const import (
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 (
get_patch_paths, mock_preload_service,
Expand Down Expand Up @@ -69,21 +69,23 @@ def test_override_properties():
def test_set_accessory_info():
"""Test setting of basic accessory information with MockAccessory."""
acc = MockAccessory('Accessory')
set_accessory_info(acc, 'model', 'manufacturer', '0000')
set_accessory_info(acc, 'name', 'model', 'manufacturer', '0000')

assert len(acc.services) == 1
serv = acc.services[0]

assert serv.display_name == SERV_ACCESSORY_INFO
assert len(serv.characteristics) == 3
assert len(serv.characteristics) == 4
chars = serv.characteristics

assert chars[0].display_name == CHAR_MODEL
assert chars[0].value == 'model'
assert chars[1].display_name == CHAR_MANUFACTURER
assert chars[1].value == 'manufacturer'
assert chars[2].display_name == CHAR_SERIAL_NUMBER
assert chars[2].value == '0000'
assert chars[0].display_name == CHAR_NAME
assert chars[0].value == 'name'
assert chars[1].display_name == CHAR_MODEL
assert chars[1].value == 'model'
assert chars[2].display_name == CHAR_MANUFACTURER
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)
Expand Down
0