mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 18:27:09 +00:00
Migrate tomorrowio to native_* (#74050)
This commit is contained in:
parent
992ceb1a09
commit
5f06404db5
@ -8,13 +8,13 @@ from pytomorrowio.const import DAILY, FORECASTS, HOURLY, NOWCAST, WeatherCode
|
|||||||
|
|
||||||
from homeassistant.components.weather import (
|
from homeassistant.components.weather import (
|
||||||
ATTR_FORECAST_CONDITION,
|
ATTR_FORECAST_CONDITION,
|
||||||
ATTR_FORECAST_PRECIPITATION,
|
ATTR_FORECAST_NATIVE_PRECIPITATION,
|
||||||
|
ATTR_FORECAST_NATIVE_TEMP,
|
||||||
|
ATTR_FORECAST_NATIVE_TEMP_LOW,
|
||||||
|
ATTR_FORECAST_NATIVE_WIND_SPEED,
|
||||||
ATTR_FORECAST_PRECIPITATION_PROBABILITY,
|
ATTR_FORECAST_PRECIPITATION_PROBABILITY,
|
||||||
ATTR_FORECAST_TEMP,
|
|
||||||
ATTR_FORECAST_TEMP_LOW,
|
|
||||||
ATTR_FORECAST_TIME,
|
ATTR_FORECAST_TIME,
|
||||||
ATTR_FORECAST_WIND_BEARING,
|
ATTR_FORECAST_WIND_BEARING,
|
||||||
ATTR_FORECAST_WIND_SPEED,
|
|
||||||
WeatherEntity,
|
WeatherEntity,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
@ -74,11 +74,11 @@ async def async_setup_entry(
|
|||||||
class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
||||||
"""Entity that talks to Tomorrow.io v4 API to retrieve weather data."""
|
"""Entity that talks to Tomorrow.io v4 API to retrieve weather data."""
|
||||||
|
|
||||||
_attr_temperature_unit = TEMP_CELSIUS
|
_attr_native_precipitation_unit = LENGTH_MILLIMETERS
|
||||||
_attr_pressure_unit = PRESSURE_HPA
|
_attr_native_pressure_unit = PRESSURE_HPA
|
||||||
_attr_wind_speed_unit = SPEED_METERS_PER_SECOND
|
_attr_native_temperature_unit = TEMP_CELSIUS
|
||||||
_attr_visibility_unit = LENGTH_KILOMETERS
|
_attr_native_visibility_unit = LENGTH_KILOMETERS
|
||||||
_attr_precipitation_unit = LENGTH_MILLIMETERS
|
_attr_native_wind_speed_unit = SPEED_METERS_PER_SECOND
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@ -119,12 +119,12 @@ class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
|||||||
data = {
|
data = {
|
||||||
ATTR_FORECAST_TIME: forecast_dt.isoformat(),
|
ATTR_FORECAST_TIME: forecast_dt.isoformat(),
|
||||||
ATTR_FORECAST_CONDITION: translated_condition,
|
ATTR_FORECAST_CONDITION: translated_condition,
|
||||||
ATTR_FORECAST_PRECIPITATION: precipitation,
|
ATTR_FORECAST_NATIVE_PRECIPITATION: precipitation,
|
||||||
ATTR_FORECAST_PRECIPITATION_PROBABILITY: precipitation_probability,
|
ATTR_FORECAST_PRECIPITATION_PROBABILITY: precipitation_probability,
|
||||||
ATTR_FORECAST_TEMP: temp,
|
ATTR_FORECAST_NATIVE_TEMP: temp,
|
||||||
ATTR_FORECAST_TEMP_LOW: temp_low,
|
ATTR_FORECAST_NATIVE_TEMP_LOW: temp_low,
|
||||||
ATTR_FORECAST_WIND_BEARING: wind_direction,
|
ATTR_FORECAST_WIND_BEARING: wind_direction,
|
||||||
ATTR_FORECAST_WIND_SPEED: wind_speed,
|
ATTR_FORECAST_NATIVE_WIND_SPEED: wind_speed,
|
||||||
}
|
}
|
||||||
|
|
||||||
return {k: v for k, v in data.items() if v is not None}
|
return {k: v for k, v in data.items() if v is not None}
|
||||||
@ -145,12 +145,12 @@ class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
|||||||
return CONDITIONS[condition]
|
return CONDITIONS[condition]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def temperature(self):
|
def native_temperature(self):
|
||||||
"""Return the platform temperature."""
|
"""Return the platform temperature."""
|
||||||
return self._get_current_property(TMRW_ATTR_TEMPERATURE)
|
return self._get_current_property(TMRW_ATTR_TEMPERATURE)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def pressure(self):
|
def native_pressure(self):
|
||||||
"""Return the raw pressure."""
|
"""Return the raw pressure."""
|
||||||
return self._get_current_property(TMRW_ATTR_PRESSURE)
|
return self._get_current_property(TMRW_ATTR_PRESSURE)
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
|||||||
return self._get_current_property(TMRW_ATTR_HUMIDITY)
|
return self._get_current_property(TMRW_ATTR_HUMIDITY)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def wind_speed(self):
|
def native_wind_speed(self):
|
||||||
"""Return the raw wind speed."""
|
"""Return the raw wind speed."""
|
||||||
return self._get_current_property(TMRW_ATTR_WIND_SPEED)
|
return self._get_current_property(TMRW_ATTR_WIND_SPEED)
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def visibility(self):
|
def native_visibility(self):
|
||||||
"""Return the raw visibility."""
|
"""Return the raw visibility."""
|
||||||
return self._get_current_property(TMRW_ATTR_VISIBILITY)
|
return self._get_current_property(TMRW_ATTR_VISIBILITY)
|
||||||
|
|
||||||
|
@ -29,11 +29,16 @@ from homeassistant.components.weather import (
|
|||||||
ATTR_FORECAST_WIND_SPEED,
|
ATTR_FORECAST_WIND_SPEED,
|
||||||
ATTR_WEATHER_HUMIDITY,
|
ATTR_WEATHER_HUMIDITY,
|
||||||
ATTR_WEATHER_OZONE,
|
ATTR_WEATHER_OZONE,
|
||||||
|
ATTR_WEATHER_PRECIPITATION_UNIT,
|
||||||
ATTR_WEATHER_PRESSURE,
|
ATTR_WEATHER_PRESSURE,
|
||||||
|
ATTR_WEATHER_PRESSURE_UNIT,
|
||||||
ATTR_WEATHER_TEMPERATURE,
|
ATTR_WEATHER_TEMPERATURE,
|
||||||
|
ATTR_WEATHER_TEMPERATURE_UNIT,
|
||||||
ATTR_WEATHER_VISIBILITY,
|
ATTR_WEATHER_VISIBILITY,
|
||||||
|
ATTR_WEATHER_VISIBILITY_UNIT,
|
||||||
ATTR_WEATHER_WIND_BEARING,
|
ATTR_WEATHER_WIND_BEARING,
|
||||||
ATTR_WEATHER_WIND_SPEED,
|
ATTR_WEATHER_WIND_SPEED,
|
||||||
|
ATTR_WEATHER_WIND_SPEED_UNIT,
|
||||||
DOMAIN as WEATHER_DOMAIN,
|
DOMAIN as WEATHER_DOMAIN,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import SOURCE_USER
|
from homeassistant.config_entries import SOURCE_USER
|
||||||
@ -104,8 +109,13 @@ async def test_v4_weather(hass: HomeAssistant) -> None:
|
|||||||
assert weather_state.attributes[ATTR_FRIENDLY_NAME] == "Tomorrow.io - Daily"
|
assert weather_state.attributes[ATTR_FRIENDLY_NAME] == "Tomorrow.io - Daily"
|
||||||
assert weather_state.attributes[ATTR_WEATHER_HUMIDITY] == 23
|
assert weather_state.attributes[ATTR_WEATHER_HUMIDITY] == 23
|
||||||
assert weather_state.attributes[ATTR_WEATHER_OZONE] == 46.53
|
assert weather_state.attributes[ATTR_WEATHER_OZONE] == 46.53
|
||||||
|
assert weather_state.attributes[ATTR_WEATHER_PRECIPITATION_UNIT] == "mm"
|
||||||
assert weather_state.attributes[ATTR_WEATHER_PRESSURE] == 30.35
|
assert weather_state.attributes[ATTR_WEATHER_PRESSURE] == 30.35
|
||||||
|
assert weather_state.attributes[ATTR_WEATHER_PRESSURE_UNIT] == "hPa"
|
||||||
assert weather_state.attributes[ATTR_WEATHER_TEMPERATURE] == 44.1
|
assert weather_state.attributes[ATTR_WEATHER_TEMPERATURE] == 44.1
|
||||||
|
assert weather_state.attributes[ATTR_WEATHER_TEMPERATURE_UNIT] == "°C"
|
||||||
assert weather_state.attributes[ATTR_WEATHER_VISIBILITY] == 8.15
|
assert weather_state.attributes[ATTR_WEATHER_VISIBILITY] == 8.15
|
||||||
|
assert weather_state.attributes[ATTR_WEATHER_VISIBILITY_UNIT] == "km"
|
||||||
assert weather_state.attributes[ATTR_WEATHER_WIND_BEARING] == 315.14
|
assert weather_state.attributes[ATTR_WEATHER_WIND_BEARING] == 315.14
|
||||||
assert weather_state.attributes[ATTR_WEATHER_WIND_SPEED] == 33.59 # 9.33 m/s ->km/h
|
assert weather_state.attributes[ATTR_WEATHER_WIND_SPEED] == 33.59 # 9.33 m/s ->km/h
|
||||||
|
assert weather_state.attributes[ATTR_WEATHER_WIND_SPEED_UNIT] == "km/h"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user