1 """Internal discovery service for iZone AC."""
12 DATA_DISCOVERY_SERVICE,
13 DISPATCH_CONTROLLER_DISCONNECTED,
14 DISPATCH_CONTROLLER_DISCOVERED,
15 DISPATCH_CONTROLLER_RECONNECTED,
16 DISPATCH_CONTROLLER_UPDATE,
20 _LOGGER = logging.getLogger(__name__)
24 """Discovery data and interfacing with pizone library."""
26 def __init__(self, hass: HomeAssistant) ->
None:
27 """Initialise discovery service."""
30 self.pi_disco: pizone.DiscoveryService |
None =
None
34 """Handle new controller discoverery."""
38 """On disconnect from controller."""
42 """On reconnect to controller."""
46 """System update message is received from the controller."""
49 def zone_update(self, ctrl: pizone.Controller, zone: pizone.Zone) ->
None:
50 """Zone update message is received from the controller."""
55 """Set up the pizone internal discovery."""
56 if disco := hass.data.get(DATA_DISCOVERY_SERVICE):
59 _LOGGER.debug(
"Starting iZone Discovery Service")
63 hass.data[DATA_DISCOVERY_SERVICE] = disco
66 session = aiohttp_client.async_get_clientsession(hass)
67 disco.pi_disco = pizone.discovery(disco, session=session)
68 await disco.pi_disco.start_discovery()
74 """Stop the discovery service."""
75 if not (disco := hass.data.get(DATA_DISCOVERY_SERVICE)):
78 await disco.pi_disco.close()
79 del hass.data[DATA_DISCOVERY_SERVICE]
81 _LOGGER.debug(
"Stopped iZone Discovery Service")
None __init__(self, HomeAssistant hass)
None controller_update(self, pizone.Controller ctrl)
None zone_update(self, pizone.Controller ctrl, pizone.Zone zone)
None controller_reconnected(self, pizone.Controller ctrl)
None controller_discovered(self, pizone.Controller ctrl)
None controller_disconnected(self, pizone.Controller ctrl, Exception ex)
def async_start_discovery_service(HomeAssistant hass)
def async_stop_discovery_service(HomeAssistant hass)
None async_dispatcher_send(HomeAssistant hass, str signal, *Any args)