mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Fix Météo-France setup in non French cities (because of failed next rain sensor) (#134782)
This commit is contained in:
parent
298f059488
commit
44808c02f9
@ -6,6 +6,7 @@ import logging
|
|||||||
from meteofrance_api.client import MeteoFranceClient
|
from meteofrance_api.client import MeteoFranceClient
|
||||||
from meteofrance_api.helpers import is_valid_warning_department
|
from meteofrance_api.helpers import is_valid_warning_department
|
||||||
from meteofrance_api.model import CurrentPhenomenons, Forecast, Rain
|
from meteofrance_api.model import CurrentPhenomenons, Forecast, Rain
|
||||||
|
from requests import RequestException
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
@ -83,7 +84,13 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
update_method=_async_update_data_rain,
|
update_method=_async_update_data_rain,
|
||||||
update_interval=SCAN_INTERVAL_RAIN,
|
update_interval=SCAN_INTERVAL_RAIN,
|
||||||
)
|
)
|
||||||
await coordinator_rain.async_config_entry_first_refresh()
|
try:
|
||||||
|
await coordinator_rain._async_refresh(log_failures=False) # noqa: SLF001
|
||||||
|
except RequestException:
|
||||||
|
_LOGGER.warning(
|
||||||
|
"1 hour rain forecast not available: %s is not in covered zone",
|
||||||
|
entry.title,
|
||||||
|
)
|
||||||
|
|
||||||
department = coordinator_forecast.data.position.get("dept")
|
department = coordinator_forecast.data.position.get("dept")
|
||||||
_LOGGER.debug(
|
_LOGGER.debug(
|
||||||
@ -128,8 +135,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
hass.data[DOMAIN][entry.entry_id] = {
|
hass.data[DOMAIN][entry.entry_id] = {
|
||||||
UNDO_UPDATE_LISTENER: undo_listener,
|
UNDO_UPDATE_LISTENER: undo_listener,
|
||||||
COORDINATOR_FORECAST: coordinator_forecast,
|
COORDINATOR_FORECAST: coordinator_forecast,
|
||||||
COORDINATOR_RAIN: coordinator_rain,
|
|
||||||
}
|
}
|
||||||
|
if coordinator_rain and coordinator_rain.last_update_success:
|
||||||
|
hass.data[DOMAIN][entry.entry_id][COORDINATOR_RAIN] = coordinator_rain
|
||||||
if coordinator_alert and coordinator_alert.last_update_success:
|
if coordinator_alert and coordinator_alert.last_update_success:
|
||||||
hass.data[DOMAIN][entry.entry_id][COORDINATOR_ALERT] = coordinator_alert
|
hass.data[DOMAIN][entry.entry_id][COORDINATOR_ALERT] = coordinator_alert
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ async def async_setup_entry(
|
|||||||
"""Set up the Meteo-France sensor platform."""
|
"""Set up the Meteo-France sensor platform."""
|
||||||
data = hass.data[DOMAIN][entry.entry_id]
|
data = hass.data[DOMAIN][entry.entry_id]
|
||||||
coordinator_forecast: DataUpdateCoordinator[Forecast] = data[COORDINATOR_FORECAST]
|
coordinator_forecast: DataUpdateCoordinator[Forecast] = data[COORDINATOR_FORECAST]
|
||||||
coordinator_rain: DataUpdateCoordinator[Rain] | None = data[COORDINATOR_RAIN]
|
coordinator_rain: DataUpdateCoordinator[Rain] | None = data.get(COORDINATOR_RAIN)
|
||||||
coordinator_alert: DataUpdateCoordinator[CurrentPhenomenons] | None = data.get(
|
coordinator_alert: DataUpdateCoordinator[CurrentPhenomenons] | None = data.get(
|
||||||
COORDINATOR_ALERT
|
COORDINATOR_ALERT
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user