1 """The Gree Climate integration."""
3 from datetime
import timedelta
14 DATA_DISCOVERY_SERVICE,
15 DISCOVERY_SCAN_INTERVAL,
19 from .coordinator
import DiscoveryService
21 _LOGGER = logging.getLogger(__name__)
23 PLATFORMS = [Platform.CLIMATE, Platform.SWITCH]
27 """Set up Gree Climate from a config entry."""
28 hass.data.setdefault(DOMAIN, {})
30 hass.data[DATA_DISCOVERY_SERVICE] = gree_discovery
32 async
def _async_scan_update(_=None):
34 await gree_discovery.discovery.scan(0, bcast_ifaces=bcast_addr)
36 _LOGGER.debug(
"Scanning network for Gree devices")
37 await _async_scan_update()
39 entry.async_on_unload(
41 hass, _async_scan_update,
timedelta(seconds=DISCOVERY_SCAN_INTERVAL)
45 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
51 """Unload a config entry."""
52 if hass.data.get(DATA_DISCOVERY_SERVICE)
is not None:
53 hass.data.pop(DATA_DISCOVERY_SERVICE)
55 unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
58 hass.data[DOMAIN].pop(COORDINATORS,
None)
59 hass.data[DOMAIN].pop(DISPATCHERS,
None)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
set[IPv4Address] async_get_ipv4_broadcast_addresses(HomeAssistant hass)
CALLBACK_TYPE async_track_time_interval(HomeAssistant hass, Callable[[datetime], Coroutine[Any, Any, None]|None] action, timedelta interval, *str|None name=None, bool|None cancel_on_shutdown=None)