1 """The met_eireann component."""
3 from datetime
import timedelta
5 from types
import MappingProxyType
6 from typing
import Any, Self
17 from .const
import DOMAIN
19 _LOGGER = logging.getLogger(__name__)
23 PLATFORMS = [Platform.WEATHER]
27 """Set up Met Éireann as config entry."""
28 hass.data.setdefault(DOMAIN, {})
30 raw_weather_data = meteireann.WeatherData(
32 latitude=config_entry.data[CONF_LATITUDE],
33 longitude=config_entry.data[CONF_LONGITUDE],
34 altitude=config_entry.data[CONF_ELEVATION],
39 async
def _async_update_data() -> MetEireannWeatherData:
40 """Fetch data from Met Éireann."""
42 return await weather_data.fetch_data()
43 except Exception
as err:
49 config_entry=config_entry,
51 update_method=_async_update_data,
52 update_interval=UPDATE_INTERVAL,
54 await coordinator.async_refresh()
56 hass.data[DOMAIN][config_entry.entry_id] = coordinator
58 await hass.config_entries.async_forward_entry_setups(config_entry, PLATFORMS)
64 """Unload a config entry."""
65 unload_ok = await hass.config_entries.async_unload_platforms(
66 config_entry, PLATFORMS
68 hass.data[DOMAIN].pop(config_entry.entry_id)
74 """Keep data for Met Éireann weather entities."""
77 self, config: MappingProxyType[str, Any], weather_data: meteireann.WeatherData
79 """Initialise the weather entity data."""
87 """Fetch data from API - (current weather and forecast)."""
90 time_zone = dt_util.get_default_time_zone()
None __init__(self, MappingProxyType[str, Any] config, meteireann.WeatherData weather_data)
list[Forecast]|None get_forecast(ec_data, hourly)
bool async_unload_entry(HomeAssistant hass, ConfigEntry config_entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry config_entry)
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)