From 69461f115d769790f4aa4cb15b3ca171eb94b9a8 Mon Sep 17 00:00:00 2001 From: Glenn Waters Date: Sun, 3 Apr 2022 04:59:27 -0400 Subject: [PATCH] Environment Canada: allow AQHI to pull from forecast when current not available (#69142) * Allow AQHI to pull from forecast when current not available. * Remove redundant check. * Remove lambda. --- .../components/environment_canada/manifest.json | 2 +- .../components/environment_canada/sensor.py | 12 +++++++++++- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/environment_canada/manifest.json b/homeassistant/components/environment_canada/manifest.json index 4d1f1ecdff0e..a0399629030e 100644 --- a/homeassistant/components/environment_canada/manifest.json +++ b/homeassistant/components/environment_canada/manifest.json @@ -2,7 +2,7 @@ "domain": "environment_canada", "name": "Environment Canada", "documentation": "https://www.home-assistant.io/integrations/environment_canada", - "requirements": ["env_canada==0.5.20"], + "requirements": ["env_canada==0.5.21"], "codeowners": ["@gwww", "@michaeldavie"], "config_flow": true, "iot_class": "cloud_polling", diff --git a/homeassistant/components/environment_canada/sensor.py b/homeassistant/components/environment_canada/sensor.py index 4cfe6bbbfb23..2e124d1ec7c2 100644 --- a/homeassistant/components/environment_canada/sensor.py +++ b/homeassistant/components/environment_canada/sensor.py @@ -209,13 +209,23 @@ SENSOR_TYPES: tuple[ECSensorEntityDescription, ...] = ( ), ) + +def _get_aqhi_value(data): + if (aqhi := data.current) is not None: + return aqhi + if data.forecasts and (hourly := data.forecasts.get("hourly")) is not None: + if values := list(hourly.values()): + return values[0] + return None + + AQHI_SENSOR = ECSensorEntityDescription( key="aqhi", name="AQHI", device_class=SensorDeviceClass.AQI, native_unit_of_measurement="AQI", state_class=SensorStateClass.MEASUREMENT, - value_fn=lambda data: data.current, + value_fn=_get_aqhi_value, ) ALERT_TYPES: tuple[ECSensorEntityDescription, ...] = ( diff --git a/requirements_all.txt b/requirements_all.txt index abcd73256016..ce19c4c9f474 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -593,7 +593,7 @@ enocean==0.50 enturclient==0.2.3 # homeassistant.components.environment_canada -env_canada==0.5.20 +env_canada==0.5.21 # homeassistant.components.enphase_envoy envoy_reader==0.20.1 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index bd746c58bd76..e2dcf14165eb 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -421,7 +421,7 @@ emulated_roku==0.2.1 enocean==0.50 # homeassistant.components.environment_canada -env_canada==0.5.20 +env_canada==0.5.21 # homeassistant.components.enphase_envoy envoy_reader==0.20.1