From 1609d069bb394f6e73c902274a726b0dcdadf428 Mon Sep 17 00:00:00 2001 From: Chris Browet Date: Thu, 16 Sep 2021 16:07:53 +0200 Subject: [PATCH] Fix Meteoalarm expired alerts (#56255) --- .../components/meteoalarm/binary_sensor.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/meteoalarm/binary_sensor.py b/homeassistant/components/meteoalarm/binary_sensor.py index 6d237c696f6..ce0fa97ecb9 100644 --- a/homeassistant/components/meteoalarm/binary_sensor.py +++ b/homeassistant/components/meteoalarm/binary_sensor.py @@ -12,6 +12,7 @@ from homeassistant.components.binary_sensor import ( ) from homeassistant.const import ATTR_ATTRIBUTION, CONF_NAME import homeassistant.helpers.config_validation as cv +import homeassistant.util.dt as dt_util _LOGGER = logging.getLogger(__name__) @@ -85,10 +86,14 @@ class MeteoAlertBinarySensor(BinarySensorEntity): def update(self): """Update device state.""" + self._attributes = {} + self._state = False + alert = self._api.get_alert() if alert: - self._attributes = alert - self._state = True - else: - self._attributes = {} - self._state = False + expiration_date = dt_util.parse_datetime(alert["expires"]) + now = dt_util.utcnow() + + if expiration_date > now: + self._attributes = alert + self._state = True