1 """Refoss integration."""
3 from __future__
import annotations
5 from refoss_ha.device
import DeviceInfo
6 from refoss_ha.device_manager
import async_build_base_device
7 from refoss_ha.discovery
import Discovery, Listener
12 from .const
import COORDINATORS, DISPATCH_DEVICE_DISCOVERED, DOMAIN
13 from .coordinator
import RefossDataUpdateCoordinator
17 """Discovery event handler for refoss devices."""
19 def __init__(self, hass: HomeAssistant, discovery: Discovery) ->
None:
20 """Init discovery service."""
24 self.
discoverydiscovery.add_listener(self)
26 hass.data[DOMAIN].setdefault(COORDINATORS, [])
29 """Handle new device found on the network."""
31 device = await async_build_base_device(device_info)
36 self.
hasshass.data[DOMAIN][COORDINATORS].append(coordo)
37 await coordo.async_refresh()
42 """Handle updates in device information, update if ip has changed."""
43 for coordinator
in self.
hasshass.data[DOMAIN][COORDINATORS]:
44 if coordinator.device.device_info.mac == device_info.mac:
45 coordinator.device.device_info.inner_ip = device_info.inner_ip
46 await coordinator.async_refresh()
None __init__(self, HomeAssistant hass, Discovery discovery)
None device_update(self, DeviceInfo device_info)
None device_found(self, DeviceInfo device_info)
None async_dispatcher_send(HomeAssistant hass, str signal, *Any args)