Skip to content

Commit

Permalink
Remove global from ZHA application controller (home-assistant#19557)
Browse files Browse the repository at this point in the history
* remove global from application controller per request

* remove unneeded line

* don't store controller application in hass.data - review comment
  • Loading branch information
dmulcahey authored and dshokouhi committed Dec 25, 2018
1 parent 1a30e65 commit dd1a4d0
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions homeassistant/components/zha/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@
CENTICELSIUS = 'C-100'

# Internal definitions
APPLICATION_CONTROLLER = None
_LOGGER = logging.getLogger(__name__)


Expand Down Expand Up @@ -114,8 +113,6 @@ async def async_setup_entry(hass, config_entry):
# pylint: disable=W0611, W0612
import zhaquirks # noqa

global APPLICATION_CONTROLLER

hass.data[DATA_ZHA] = hass.data.get(DATA_ZHA, {})
hass.data[DATA_ZHA][DATA_ZHA_DISPATCHERS] = []

Expand Down Expand Up @@ -155,27 +152,27 @@ def zha_send_event(self, cluster, command, args):
ClusterPersistingListener
)

APPLICATION_CONTROLLER = ControllerApplication(radio, database)
application_controller = ControllerApplication(radio, database)
listener = ApplicationListener(hass, config)
APPLICATION_CONTROLLER.add_listener(listener)
await APPLICATION_CONTROLLER.startup(auto_form=True)
application_controller.add_listener(listener)
await application_controller.startup(auto_form=True)

for device in APPLICATION_CONTROLLER.devices.values():
for device in application_controller.devices.values():
hass.async_create_task(
listener.async_device_initialized(device, False))

device_registry = await \
hass.helpers.device_registry.async_get_registry()
device_registry.async_get_or_create(
config_entry_id=config_entry.entry_id,
connections={(CONNECTION_ZIGBEE, str(APPLICATION_CONTROLLER.ieee))},
identifiers={(DOMAIN, str(APPLICATION_CONTROLLER.ieee))},
connections={(CONNECTION_ZIGBEE, str(application_controller.ieee))},
identifiers={(DOMAIN, str(application_controller.ieee))},
name="Zigbee Coordinator",
manufacturer="ZHA",
model=radio_description,
)

hass.data[DATA_ZHA][DATA_ZHA_BRIDGE_ID] = str(APPLICATION_CONTROLLER.ieee)
hass.data[DATA_ZHA][DATA_ZHA_BRIDGE_ID] = str(application_controller.ieee)

for component in COMPONENTS:
hass.async_create_task(
Expand All @@ -187,7 +184,7 @@ async def permit(service):
"""Allow devices to join this network."""
duration = service.data.get(ATTR_DURATION)
_LOGGER.info("Permitting joins for %ss", duration)
await APPLICATION_CONTROLLER.permit(duration)
await application_controller.permit(duration)

hass.services.async_register(DOMAIN, SERVICE_PERMIT, permit,
schema=SERVICE_SCHEMAS[SERVICE_PERMIT])
Expand All @@ -198,7 +195,7 @@ async def remove(service):
ieee = service.data.get(ATTR_IEEE)
ieee = EmberEUI64([uint8_t(p, base=16) for p in ieee.split(':')])
_LOGGER.info("Removing node %s", ieee)
await APPLICATION_CONTROLLER.remove(ieee)
await application_controller.remove(ieee)

hass.services.async_register(DOMAIN, SERVICE_REMOVE, remove,
schema=SERVICE_SCHEMAS[SERVICE_REMOVE])
Expand Down

0 comments on commit dd1a4d0

Please sign in to comment.