Use DistanceConverter in components (#80182)

* Use DistanceConverter in components

* Adjust for METRIC_SYSTEM
This commit is contained in:
epenet 2022-10-12 21:33:38 +02:00 committed by GitHub
parent 0daa5b55b5
commit 503434e538
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 26 additions and 14 deletions

View file

@ -12,6 +12,7 @@ from homeassistant.const import (
CONF_RADIUS,
CONF_SCAN_INTERVAL,
CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_KILOMETERS,
LENGTH_MILES,
)
from homeassistant.core import HomeAssistant, callback
@ -19,7 +20,7 @@ from homeassistant.helpers import aiohttp_client, config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType
from homeassistant.util.unit_system import METRIC_SYSTEM
from homeassistant.util.unit_conversion import DistanceConverter
from .const import (
CONF_CATEGORIES,
@ -88,7 +89,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
radius = config_entry.data[CONF_RADIUS]
if hass.config.units.name == CONF_UNIT_SYSTEM_IMPERIAL:
radius = METRIC_SYSTEM.length(radius, LENGTH_MILES)
radius = DistanceConverter.convert(radius, LENGTH_MILES, LENGTH_KILOMETERS)
# Create feed entity manager for all platforms.
manager = GdacsFeedEntityManager(hass, config_entry, radius)
feeds[config_entry.entry_id] = manager

View file

@ -12,6 +12,7 @@ from homeassistant.const import (
CONF_RADIUS,
CONF_SCAN_INTERVAL,
CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_KILOMETERS,
LENGTH_MILES,
)
from homeassistant.core import HomeAssistant, callback
@ -19,7 +20,7 @@ from homeassistant.helpers import aiohttp_client, config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType
from homeassistant.util.unit_system import METRIC_SYSTEM
from homeassistant.util.unit_conversion import DistanceConverter
from .const import (
CONF_MINIMUM_MAGNITUDE,
@ -95,7 +96,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
radius = config_entry.data[CONF_RADIUS]
if hass.config.units.name == CONF_UNIT_SYSTEM_IMPERIAL:
radius = METRIC_SYSTEM.length(radius, LENGTH_MILES)
radius = DistanceConverter.convert(radius, LENGTH_MILES, LENGTH_KILOMETERS)
# Create feed entity manager for all platforms.
manager = GeonetnzQuakesFeedEntityManager(hass, config_entry, radius)
feeds[config_entry.entry_id] = manager

View file

@ -15,6 +15,7 @@ from homeassistant.const import (
CONF_SCAN_INTERVAL,
CONF_UNIT_SYSTEM,
CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_KILOMETERS,
LENGTH_MILES,
)
from homeassistant.core import HomeAssistant, callback
@ -22,7 +23,7 @@ from homeassistant.helpers import aiohttp_client, config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType
from homeassistant.util.unit_system import METRIC_SYSTEM
from homeassistant.util.unit_conversion import DistanceConverter
from .config_flow import configured_instances
from .const import DEFAULT_RADIUS, DEFAULT_SCAN_INTERVAL, DOMAIN, FEED, PLATFORMS
@ -85,7 +86,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:
radius = METRIC_SYSTEM.length(radius, LENGTH_MILES)
radius = DistanceConverter.convert(radius, LENGTH_MILES, LENGTH_KILOMETERS)
# Create feed entity manager for all platforms.
manager = GeonetnzVolcanoFeedEntityManager(hass, config_entry, radius, unit_system)
hass.data[DOMAIN][FEED][config_entry.entry_id] = manager

View file

@ -11,12 +11,13 @@ from homeassistant.const import (
ATTR_LONGITUDE,
CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_KILOMETERS,
LENGTH_MILES,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import dt
from homeassistant.util.unit_system import IMPERIAL_SYSTEM
from homeassistant.util.unit_conversion import DistanceConverter
from .const import (
ATTR_ACTIVITY,
@ -114,7 +115,9 @@ class GeonetnzVolcanoSensor(SensorEntity):
# Convert distance if not metric system.
if self._unit_system == CONF_UNIT_SYSTEM_IMPERIAL:
self._distance = round(
IMPERIAL_SYSTEM.length(feed_entry.distance_to_home, LENGTH_KILOMETERS),
DistanceConverter.convert(
feed_entry.distance_to_home, LENGTH_KILOMETERS, LENGTH_MILES
),
1,
)
else:

View file

@ -16,6 +16,7 @@ from homeassistant.const import (
CONF_UNIT_SYSTEM,
CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_METERS,
LENGTH_MILES,
Platform,
)
from homeassistant.core import HomeAssistant
@ -23,7 +24,7 @@ import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.location import find_coordinates
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util import dt
from homeassistant.util.unit_system import IMPERIAL_SYSTEM
from homeassistant.util.unit_conversion import DistanceConverter
from .const import (
ATTR_DESTINATION,
@ -179,7 +180,9 @@ class HereTravelTimeDataUpdateCoordinator(DataUpdateCoordinator):
traffic_time = summary["trafficTime"]
if self.config.units == CONF_UNIT_SYSTEM_IMPERIAL:
# Convert to miles.
distance = IMPERIAL_SYSTEM.length(distance, LENGTH_METERS)
distance = DistanceConverter.convert(
distance, LENGTH_METERS, LENGTH_MILES
)
else:
# Convert to kilometers
distance = distance / 1000

View file

@ -12,7 +12,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.icon import icon_for_battery_level
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.util.unit_system import IMPERIAL_SYSTEM, METRIC_SYSTEM
from homeassistant.util.unit_conversion import DistanceConverter
from . import LeafEntity
from .const import (
@ -123,7 +123,7 @@ class LeafRangeSensor(LeafEntity, SensorEntity):
return None
if not self.car.hass.config.units.is_metric or self.car.force_miles:
ret = IMPERIAL_SYSTEM.length(ret, METRIC_SYSTEM.length_unit)
ret = DistanceConverter.convert(ret, LENGTH_KILOMETERS, LENGTH_MILES)
return round(ret)

View file

@ -19,6 +19,7 @@ from homeassistant.const import (
CONF_UNIT_SYSTEM_IMPERIAL,
EVENT_HOMEASSISTANT_STARTED,
LENGTH_KILOMETERS,
LENGTH_MILES,
TIME_MINUTES,
)
from homeassistant.core import CoreState, HomeAssistant
@ -26,7 +27,7 @@ from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.location import find_coordinates
from homeassistant.util.unit_system import IMPERIAL_SYSTEM
from homeassistant.util.unit_conversion import DistanceConverter
from .const import (
CONF_AVOID_FERRIES,
@ -245,7 +246,9 @@ class WazeTravelTimeData:
if units == CONF_UNIT_SYSTEM_IMPERIAL:
# Convert to miles.
self.distance = IMPERIAL_SYSTEM.length(distance, LENGTH_KILOMETERS)
self.distance = DistanceConverter.convert(
distance, LENGTH_KILOMETERS, LENGTH_MILES
)
else:
self.distance = distance