mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 06:07:17 +00:00
Added warning to HomeKit component (#16807)
* added warning if more then 100 devices are added to HomeKit
This commit is contained in:
parent
a8f5e8699a
commit
2e62afabdc
@ -28,10 +28,12 @@ from .const import (
|
|||||||
from .util import (
|
from .util import (
|
||||||
show_setup_message, validate_entity_config, validate_media_player_features)
|
show_setup_message, validate_entity_config, validate_media_player_features)
|
||||||
|
|
||||||
TYPES = Registry()
|
REQUIREMENTS = ['HAP-python==2.2.2']
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
REQUIREMENTS = ['HAP-python==2.2.2']
|
MAX_DEVICES = 100
|
||||||
|
TYPES = Registry()
|
||||||
|
|
||||||
# #### Driver Status ####
|
# #### Driver Status ####
|
||||||
STATUS_READY = 0
|
STATUS_READY = 0
|
||||||
@ -239,6 +241,10 @@ class HomeKit():
|
|||||||
if not self.driver.state.paired:
|
if not self.driver.state.paired:
|
||||||
show_setup_message(self.hass, self.driver.state.pincode)
|
show_setup_message(self.hass, self.driver.state.pincode)
|
||||||
|
|
||||||
|
if len(self.bridge.accessories) > MAX_DEVICES:
|
||||||
|
_LOGGER.warning('You have exceeded the device limit, which might '
|
||||||
|
'cause issues. Consider using the filter option.')
|
||||||
|
|
||||||
_LOGGER.debug('Driver start')
|
_LOGGER.debug('Driver start')
|
||||||
self.hass.add_job(self.driver.start)
|
self.hass.add_job(self.driver.start)
|
||||||
self.status = STATUS_RUNNING
|
self.status = STATUS_RUNNING
|
||||||
|
@ -5,8 +5,8 @@ import pytest
|
|||||||
|
|
||||||
from homeassistant import setup
|
from homeassistant import setup
|
||||||
from homeassistant.components.homekit import (
|
from homeassistant.components.homekit import (
|
||||||
generate_aid, HomeKit, STATUS_READY, STATUS_RUNNING,
|
generate_aid, HomeKit, MAX_DEVICES, STATUS_READY,
|
||||||
STATUS_STOPPED, STATUS_WAIT)
|
STATUS_RUNNING, STATUS_STOPPED, STATUS_WAIT)
|
||||||
from homeassistant.components.homekit.accessories import HomeBridge
|
from homeassistant.components.homekit.accessories import HomeBridge
|
||||||
from homeassistant.components.homekit.const import (
|
from homeassistant.components.homekit.const import (
|
||||||
CONF_AUTO_START, BRIDGE_NAME, DEFAULT_PORT, DOMAIN, HOMEKIT_FILE,
|
CONF_AUTO_START, BRIDGE_NAME, DEFAULT_PORT, DOMAIN, HOMEKIT_FILE,
|
||||||
@ -173,7 +173,8 @@ async def test_homekit_start(hass, hk_driver, debounce_patcher):
|
|||||||
"""Test HomeKit start method."""
|
"""Test HomeKit start method."""
|
||||||
pin = b'123-45-678'
|
pin = b'123-45-678'
|
||||||
homekit = HomeKit(hass, None, None, None, {}, {'cover.demo': {}})
|
homekit = HomeKit(hass, None, None, None, {}, {'cover.demo': {}})
|
||||||
homekit.bridge = 'bridge'
|
homekit.bridge = Mock()
|
||||||
|
homekit.bridge.accessories = []
|
||||||
homekit.driver = hk_driver
|
homekit.driver = hk_driver
|
||||||
|
|
||||||
hass.states.async_set('light.demo', 'on')
|
hass.states.async_set('light.demo', 'on')
|
||||||
@ -190,7 +191,7 @@ async def test_homekit_start(hass, hk_driver, debounce_patcher):
|
|||||||
|
|
||||||
mock_add_acc.assert_called_with(state)
|
mock_add_acc.assert_called_with(state)
|
||||||
mock_setup_msg.assert_called_with(hass, pin)
|
mock_setup_msg.assert_called_with(hass, pin)
|
||||||
hk_driver_add_acc.assert_called_with('bridge')
|
hk_driver_add_acc.assert_called_with(homekit.bridge)
|
||||||
assert hk_driver_start.called
|
assert hk_driver_start.called
|
||||||
assert homekit.status == STATUS_RUNNING
|
assert homekit.status == STATUS_RUNNING
|
||||||
|
|
||||||
@ -217,3 +218,18 @@ async def test_homekit_stop(hass):
|
|||||||
homekit.status = STATUS_RUNNING
|
homekit.status = STATUS_RUNNING
|
||||||
await hass.async_add_job(homekit.stop)
|
await hass.async_add_job(homekit.stop)
|
||||||
assert homekit.driver.stop.called is True
|
assert homekit.driver.stop.called is True
|
||||||
|
|
||||||
|
|
||||||
|
async def test_homekit_too_many_accessories(hass, hk_driver):
|
||||||
|
"""Test adding too many accessories to HomeKit."""
|
||||||
|
homekit = HomeKit(hass, None, None, None, None, None)
|
||||||
|
homekit.bridge = Mock()
|
||||||
|
homekit.bridge.accessories = range(MAX_DEVICES + 1)
|
||||||
|
homekit.driver = hk_driver
|
||||||
|
|
||||||
|
with patch('pyhap.accessory_driver.AccessoryDriver.start'), \
|
||||||
|
patch('pyhap.accessory_driver.AccessoryDriver.add_accessory'), \
|
||||||
|
patch('homeassistant.components.homekit._LOGGER.warning') \
|
||||||
|
as mock_warn:
|
||||||
|
await hass.async_add_job(homekit.start)
|
||||||
|
assert mock_warn.called is True
|
||||||
|
Loading…
x
Reference in New Issue
Block a user