From b42e26fbdd9f25c11681121ba7ac1e34fe7ce148 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 14 Oct 2022 14:45:57 +0200 Subject: [PATCH 1/6] Use SupportedDialect enum in recorder (#80319) --- homeassistant/components/recorder/statistics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/recorder/statistics.py b/homeassistant/components/recorder/statistics.py index 773676b07b0..88638a6ccc7 100644 --- a/homeassistant/components/recorder/statistics.py +++ b/homeassistant/components/recorder/statistics.py @@ -1529,7 +1529,7 @@ def _filter_unique_constraint_integrity_error( and err.orig.pgcode == "23505" ): ignore = True - if dialect_name == "mysql" and hasattr(err.orig, "args"): + if dialect_name == SupportedDialect.MYSQL and hasattr(err.orig, "args"): with contextlib.suppress(TypeError): if err.orig.args[0] == 1062: ignore = True From 70702f33773217b473e05ce1cbbc780286c317b5 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 14 Oct 2022 14:53:04 +0200 Subject: [PATCH 2/6] Use local UNIT constants in geonetnz_volcano (#80323) --- .../components/geonetnz_volcano/__init__.py | 12 +++++++++--- .../components/geonetnz_volcano/config_flow.py | 14 +++++++++----- homeassistant/components/geonetnz_volcano/const.py | 3 +++ .../components/geonetnz_volcano/sensor.py | 4 ++-- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/geonetnz_volcano/__init__.py b/homeassistant/components/geonetnz_volcano/__init__.py index e4bf2d2cb8c..da081b42599 100644 --- a/homeassistant/components/geonetnz_volcano/__init__.py +++ b/homeassistant/components/geonetnz_volcano/__init__.py @@ -14,7 +14,6 @@ from homeassistant.const import ( CONF_RADIUS, CONF_SCAN_INTERVAL, CONF_UNIT_SYSTEM, - CONF_UNIT_SYSTEM_IMPERIAL, LENGTH_KILOMETERS, LENGTH_MILES, ) @@ -26,7 +25,14 @@ from homeassistant.helpers.typing import ConfigType from homeassistant.util.unit_conversion import DistanceConverter from .config_flow import configured_instances -from .const import DEFAULT_RADIUS, DEFAULT_SCAN_INTERVAL, DOMAIN, FEED, PLATFORMS +from .const import ( + DEFAULT_RADIUS, + DEFAULT_SCAN_INTERVAL, + DOMAIN, + FEED, + IMPERIAL_UNITS, + PLATFORMS, +) _LOGGER = logging.getLogger(__name__) @@ -85,7 +91,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b radius = config_entry.data[CONF_RADIUS] unit_system = config_entry.data[CONF_UNIT_SYSTEM] - if unit_system == CONF_UNIT_SYSTEM_IMPERIAL: + if unit_system == IMPERIAL_UNITS: radius = DistanceConverter.convert(radius, LENGTH_MILES, LENGTH_KILOMETERS) # Create feed entity manager for all platforms. manager = GeonetnzVolcanoFeedEntityManager(hass, config_entry, radius, unit_system) diff --git a/homeassistant/components/geonetnz_volcano/config_flow.py b/homeassistant/components/geonetnz_volcano/config_flow.py index 6de169c8602..d095aefab01 100644 --- a/homeassistant/components/geonetnz_volcano/config_flow.py +++ b/homeassistant/components/geonetnz_volcano/config_flow.py @@ -8,14 +8,18 @@ from homeassistant.const import ( CONF_RADIUS, CONF_SCAN_INTERVAL, CONF_UNIT_SYSTEM, - CONF_UNIT_SYSTEM_IMPERIAL, - CONF_UNIT_SYSTEM_METRIC, ) from homeassistant.core import callback from homeassistant.helpers import config_validation as cv from homeassistant.util.unit_system import IMPERIAL_SYSTEM -from .const import DEFAULT_RADIUS, DEFAULT_SCAN_INTERVAL, DOMAIN +from .const import ( + DEFAULT_RADIUS, + DEFAULT_SCAN_INTERVAL, + DOMAIN, + IMPERIAL_UNITS, + METRIC_UNITS, +) @callback @@ -59,9 +63,9 @@ class GeonetnzVolcanoFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): return await self._show_form({"base": "already_configured"}) if self.hass.config.units is IMPERIAL_SYSTEM: - user_input[CONF_UNIT_SYSTEM] = CONF_UNIT_SYSTEM_IMPERIAL + user_input[CONF_UNIT_SYSTEM] = IMPERIAL_UNITS else: - user_input[CONF_UNIT_SYSTEM] = CONF_UNIT_SYSTEM_METRIC + user_input[CONF_UNIT_SYSTEM] = METRIC_UNITS scan_interval = user_input.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL) user_input[CONF_SCAN_INTERVAL] = scan_interval.total_seconds() diff --git a/homeassistant/components/geonetnz_volcano/const.py b/homeassistant/components/geonetnz_volcano/const.py index 3a23084aa1f..8c17ff42544 100644 --- a/homeassistant/components/geonetnz_volcano/const.py +++ b/homeassistant/components/geonetnz_volcano/const.py @@ -18,3 +18,6 @@ DEFAULT_RADIUS = 50.0 DEFAULT_SCAN_INTERVAL = timedelta(minutes=5) PLATFORMS = [Platform.SENSOR] + +IMPERIAL_UNITS = "imperial" +METRIC_UNITS = "metric" diff --git a/homeassistant/components/geonetnz_volcano/sensor.py b/homeassistant/components/geonetnz_volcano/sensor.py index 51bca3e467a..e48a4cec0cf 100644 --- a/homeassistant/components/geonetnz_volcano/sensor.py +++ b/homeassistant/components/geonetnz_volcano/sensor.py @@ -9,7 +9,6 @@ from homeassistant.const import ( ATTR_ATTRIBUTION, ATTR_LATITUDE, ATTR_LONGITUDE, - CONF_UNIT_SYSTEM_IMPERIAL, LENGTH_KILOMETERS, LENGTH_MILES, ) @@ -27,6 +26,7 @@ from .const import ( DEFAULT_ICON, DOMAIN, FEED, + IMPERIAL_UNITS, ) _LOGGER = logging.getLogger(__name__) @@ -113,7 +113,7 @@ class GeonetnzVolcanoSensor(SensorEntity): """Update the internal state from the provided feed entry.""" self._title = feed_entry.title # Convert distance if not metric system. - if self._unit_system == CONF_UNIT_SYSTEM_IMPERIAL: + if self._unit_system == IMPERIAL_UNITS: self._distance = round( DistanceConverter.convert( feed_entry.distance_to_home, LENGTH_KILOMETERS, LENGTH_MILES From 3840cbd012485e7cdae16421930b906f7e673791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Paris?= Date: Fri, 14 Oct 2022 13:53:48 +0100 Subject: [PATCH 3/6] Tag eafm sensors are measurement to collect long term stats (#80312) --- homeassistant/components/eafm/sensor.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/eafm/sensor.py b/homeassistant/components/eafm/sensor.py index 57a248d70e9..ed663920a80 100644 --- a/homeassistant/components/eafm/sensor.py +++ b/homeassistant/components/eafm/sensor.py @@ -5,7 +5,7 @@ import logging from aioeafm import get_station import async_timeout -from homeassistant.components.sensor import SensorEntity +from homeassistant.components.sensor import SensorEntity, SensorStateClass from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_ATTRIBUTION, LENGTH_METERS from homeassistant.core import HomeAssistant @@ -91,6 +91,7 @@ class Measurement(CoordinatorEntity, SensorEntity): """A gauge at a flood monitoring station.""" attribution = "This uses Environment Agency flood and river level data from the real-time data API" + _attr_state_class = SensorStateClass.MEASUREMENT def __init__(self, coordinator, key): """Initialise the gauge with a data instance and station.""" From 2a887e6ed758c8e73caa510bacf3ef0dd8748b51 Mon Sep 17 00:00:00 2001 From: Marvin Wichmann Date: Fri, 14 Oct 2022 15:10:19 +0200 Subject: [PATCH 4/6] Update xknx to 1.2.0 (#80318) --- homeassistant/components/knx/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/knx/manifest.json b/homeassistant/components/knx/manifest.json index 0f2f1201415..5107956050f 100644 --- a/homeassistant/components/knx/manifest.json +++ b/homeassistant/components/knx/manifest.json @@ -3,7 +3,7 @@ "name": "KNX", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/knx", - "requirements": ["xknx==1.1.0"], + "requirements": ["xknx==1.2.0"], "codeowners": ["@Julius2342", "@farmio", "@marvin-w"], "quality_scale": "platinum", "iot_class": "local_push", diff --git a/requirements_all.txt b/requirements_all.txt index b6bc47c6141..e302960e4e8 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2557,7 +2557,7 @@ xboxapi==2.0.1 xiaomi-ble==0.10.0 # homeassistant.components.knx -xknx==1.1.0 +xknx==1.2.0 # homeassistant.components.bluesound # homeassistant.components.fritz diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 588a41eaa62..e3b755a310f 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1770,7 +1770,7 @@ xbox-webapi==2.0.11 xiaomi-ble==0.10.0 # homeassistant.components.knx -xknx==1.1.0 +xknx==1.2.0 # homeassistant.components.bluesound # homeassistant.components.fritz From 7d56ae772e672fc2f8a32e650ef8cec4537c8ebb Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 14 Oct 2022 15:11:22 +0200 Subject: [PATCH 5/6] Use local UNIT constants in waze_travel_time (#80325) --- homeassistant/components/waze_travel_time/const.py | 6 +++--- homeassistant/components/waze_travel_time/sensor.py | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/waze_travel_time/const.py b/homeassistant/components/waze_travel_time/const.py index 37278543dfb..50384e79d92 100644 --- a/homeassistant/components/waze_travel_time/const.py +++ b/homeassistant/components/waze_travel_time/const.py @@ -1,6 +1,4 @@ """Constants for waze_travel_time.""" -from homeassistant.const import CONF_UNIT_SYSTEM_IMPERIAL, CONF_UNIT_SYSTEM_METRIC - DOMAIN = "waze_travel_time" CONF_DESTINATION = "destination" @@ -21,7 +19,9 @@ DEFAULT_AVOID_TOLL_ROADS = False DEFAULT_AVOID_SUBSCRIPTION_ROADS = False DEFAULT_AVOID_FERRIES = False -UNITS = [CONF_UNIT_SYSTEM_METRIC, CONF_UNIT_SYSTEM_IMPERIAL] +IMPERIAL_UNITS = "imperial" +METRIC_UNITS = "metric" +UNITS = [METRIC_UNITS, IMPERIAL_UNITS] REGIONS = ["US", "NA", "EU", "IL", "AU"] VEHICLE_TYPES = ["car", "taxi", "motorcycle"] diff --git a/homeassistant/components/waze_travel_time/sensor.py b/homeassistant/components/waze_travel_time/sensor.py index 66ee5376266..c4ff489cadf 100644 --- a/homeassistant/components/waze_travel_time/sensor.py +++ b/homeassistant/components/waze_travel_time/sensor.py @@ -16,8 +16,6 @@ from homeassistant.const import ( ATTR_ATTRIBUTION, CONF_NAME, CONF_REGION, - CONF_UNIT_SYSTEM_IMPERIAL, - CONF_UNIT_SYSTEM_METRIC, EVENT_HOMEASSISTANT_STARTED, LENGTH_KILOMETERS, LENGTH_MILES, @@ -49,6 +47,8 @@ from .const import ( DEFAULT_REALTIME, DEFAULT_VEHICLE_TYPE, DOMAIN, + IMPERIAL_UNITS, + METRIC_UNITS, ) _LOGGER = logging.getLogger(__name__) @@ -65,13 +65,13 @@ async def async_setup_entry( defaults = { CONF_REALTIME: DEFAULT_REALTIME, CONF_VEHICLE_TYPE: DEFAULT_VEHICLE_TYPE, - CONF_UNITS: CONF_UNIT_SYSTEM_METRIC, + CONF_UNITS: METRIC_UNITS, CONF_AVOID_FERRIES: DEFAULT_AVOID_FERRIES, CONF_AVOID_SUBSCRIPTION_ROADS: DEFAULT_AVOID_SUBSCRIPTION_ROADS, CONF_AVOID_TOLL_ROADS: DEFAULT_AVOID_TOLL_ROADS, } if hass.config.units is IMPERIAL_SYSTEM: - defaults[CONF_UNITS] = CONF_UNIT_SYSTEM_IMPERIAL + defaults[CONF_UNITS] = IMPERIAL_UNITS if not config_entry.options: new_data = config_entry.data.copy() @@ -248,7 +248,7 @@ class WazeTravelTimeData: self.duration, distance = routes[route] - if units == CONF_UNIT_SYSTEM_IMPERIAL: + if units == IMPERIAL_UNITS: # Convert to miles. self.distance = DistanceConverter.convert( distance, LENGTH_KILOMETERS, LENGTH_MILES From 4c3097a1571ae8821ba6793b3385a11689a4f68e Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 14 Oct 2022 15:16:03 +0200 Subject: [PATCH 6/6] Use local UNIT constants in here_travel_time (#80324) * Use local UNIT constants in here_travel_time * Fix test --- .../components/here_travel_time/__init__.py | 4 ++-- .../components/here_travel_time/config_flow.py | 8 ++++---- homeassistant/components/here_travel_time/const.py | 12 ++++-------- homeassistant/components/here_travel_time/sensor.py | 4 ++-- tests/components/here_travel_time/test_sensor.py | 2 +- 5 files changed, 13 insertions(+), 17 deletions(-) diff --git a/homeassistant/components/here_travel_time/__init__.py b/homeassistant/components/here_travel_time/__init__.py index ddfdc34ff69..b9ffa3e4baa 100644 --- a/homeassistant/components/here_travel_time/__init__.py +++ b/homeassistant/components/here_travel_time/__init__.py @@ -14,7 +14,6 @@ from homeassistant.const import ( CONF_API_KEY, CONF_MODE, CONF_UNIT_SYSTEM, - CONF_UNIT_SYSTEM_IMPERIAL, LENGTH_METERS, LENGTH_MILES, Platform, @@ -45,6 +44,7 @@ from .const import ( CONF_ROUTE_MODE, DEFAULT_SCAN_INTERVAL, DOMAIN, + IMPERIAL_UNITS, NO_ROUTE_ERROR_MESSAGE, TRAFFIC_MODE_ENABLED, TRAVEL_MODES_VEHICLE, @@ -178,7 +178,7 @@ class HereTravelTimeDataUpdateCoordinator(DataUpdateCoordinator): traffic_time: float = summary["baseTime"] if self.config.travel_mode in TRAVEL_MODES_VEHICLE: traffic_time = summary["trafficTime"] - if self.config.units == CONF_UNIT_SYSTEM_IMPERIAL: + if self.config.units == IMPERIAL_UNITS: # Convert to miles. distance = DistanceConverter.convert( distance, LENGTH_METERS, LENGTH_MILES diff --git a/homeassistant/components/here_travel_time/config_flow.py b/homeassistant/components/here_travel_time/config_flow.py index 54f164c43a7..a0f1fbbeb8c 100644 --- a/homeassistant/components/here_travel_time/config_flow.py +++ b/homeassistant/components/here_travel_time/config_flow.py @@ -15,8 +15,6 @@ from homeassistant.const import ( CONF_MODE, CONF_NAME, CONF_UNIT_SYSTEM, - CONF_UNIT_SYSTEM_IMPERIAL, - CONF_UNIT_SYSTEM_METRIC, ) from homeassistant.core import HomeAssistant, callback from homeassistant.data_entry_flow import FlowResult @@ -43,6 +41,8 @@ from .const import ( CONF_TRAFFIC_MODE, DEFAULT_NAME, DOMAIN, + IMPERIAL_UNITS, + METRIC_UNITS, ROUTE_MODE_FASTEST, ROUTE_MODES, TRAFFIC_MODE_ENABLED, @@ -96,10 +96,10 @@ def default_options(hass: HomeAssistant) -> dict[str, str | None]: CONF_ROUTE_MODE: ROUTE_MODE_FASTEST, CONF_ARRIVAL_TIME: None, CONF_DEPARTURE_TIME: None, - CONF_UNIT_SYSTEM: CONF_UNIT_SYSTEM_METRIC, + CONF_UNIT_SYSTEM: METRIC_UNITS, } if hass.config.units is IMPERIAL_SYSTEM: - default[CONF_UNIT_SYSTEM] = CONF_UNIT_SYSTEM_IMPERIAL + default[CONF_UNIT_SYSTEM] = IMPERIAL_UNITS return default diff --git a/homeassistant/components/here_travel_time/const.py b/homeassistant/components/here_travel_time/const.py index b79e7b4e4cd..ea0dc5c136e 100644 --- a/homeassistant/components/here_travel_time/const.py +++ b/homeassistant/components/here_travel_time/const.py @@ -1,10 +1,4 @@ """Constants for the HERE Travel Time integration.""" -from homeassistant.const import ( - CONF_UNIT_SYSTEM, - CONF_UNIT_SYSTEM_IMPERIAL, - CONF_UNIT_SYSTEM_METRIC, -) - DOMAIN = "here_travel_time" DEFAULT_SCAN_INTERVAL = 300 @@ -65,14 +59,16 @@ ICONS = { TRAVEL_MODE_TRUCK: ICON_TRUCK, } -UNITS = [CONF_UNIT_SYSTEM_METRIC, CONF_UNIT_SYSTEM_IMPERIAL] +IMPERIAL_UNITS = "imperial" +METRIC_UNITS = "metric" +UNITS = [METRIC_UNITS, IMPERIAL_UNITS] ATTR_DURATION = "duration" ATTR_DISTANCE = "distance" ATTR_ORIGIN = "origin" ATTR_DESTINATION = "destination" -ATTR_UNIT_SYSTEM = CONF_UNIT_SYSTEM +ATTR_UNIT_SYSTEM = "unit_system" ATTR_TRAFFIC_MODE = CONF_TRAFFIC_MODE ATTR_DURATION_IN_TRAFFIC = "duration_in_traffic" diff --git a/homeassistant/components/here_travel_time/sensor.py b/homeassistant/components/here_travel_time/sensor.py index e1d8342df19..1ee0087eab7 100644 --- a/homeassistant/components/here_travel_time/sensor.py +++ b/homeassistant/components/here_travel_time/sensor.py @@ -17,7 +17,6 @@ from homeassistant.const import ( ATTR_LONGITUDE, CONF_MODE, CONF_NAME, - CONF_UNIT_SYSTEM_IMPERIAL, LENGTH_KILOMETERS, LENGTH_MILES, TIME_MINUTES, @@ -41,6 +40,7 @@ from .const import ( DOMAIN, ICON_CAR, ICONS, + IMPERIAL_UNITS, ) SCAN_INTERVAL = timedelta(minutes=5) @@ -216,6 +216,6 @@ class DistanceSensor(HERETravelTimeSensor): @property def native_unit_of_measurement(self) -> str | None: """Return the unit of measurement of the sensor.""" - if self.coordinator.config.units == CONF_UNIT_SYSTEM_IMPERIAL: + if self.coordinator.config.units == IMPERIAL_UNITS: return LENGTH_MILES return LENGTH_KILOMETERS diff --git a/tests/components/here_travel_time/test_sensor.py b/tests/components/here_travel_time/test_sensor.py index 316563b20cf..5cc4802d253 100644 --- a/tests/components/here_travel_time/test_sensor.py +++ b/tests/components/here_travel_time/test_sensor.py @@ -16,7 +16,6 @@ from homeassistant.components.here_travel_time.const import ( CONF_ORIGIN_LATITUDE, CONF_ORIGIN_LONGITUDE, CONF_ROUTE_MODE, - CONF_UNIT_SYSTEM, DOMAIN, ICON_BICYCLE, ICON_CAR, @@ -41,6 +40,7 @@ from homeassistant.const import ( CONF_API_KEY, CONF_MODE, CONF_NAME, + CONF_UNIT_SYSTEM, EVENT_HOMEASSISTANT_START, LENGTH_KILOMETERS, LENGTH_MILES,