mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +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 (
|
||||
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_TEMP,
|
||||
ATTR_FORECAST_TEMP_LOW,
|
||||
ATTR_FORECAST_TIME,
|
||||
ATTR_FORECAST_WIND_BEARING,
|
||||
ATTR_FORECAST_WIND_SPEED,
|
||||
WeatherEntity,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
@ -74,11 +74,11 @@ async def async_setup_entry(
|
||||
class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
||||
"""Entity that talks to Tomorrow.io v4 API to retrieve weather data."""
|
||||
|
||||
_attr_temperature_unit = TEMP_CELSIUS
|
||||
_attr_pressure_unit = PRESSURE_HPA
|
||||
_attr_wind_speed_unit = SPEED_METERS_PER_SECOND
|
||||
_attr_visibility_unit = LENGTH_KILOMETERS
|
||||
_attr_precipitation_unit = LENGTH_MILLIMETERS
|
||||
_attr_native_precipitation_unit = LENGTH_MILLIMETERS
|
||||
_attr_native_pressure_unit = PRESSURE_HPA
|
||||
_attr_native_temperature_unit = TEMP_CELSIUS
|
||||
_attr_native_visibility_unit = LENGTH_KILOMETERS
|
||||
_attr_native_wind_speed_unit = SPEED_METERS_PER_SECOND
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@ -119,12 +119,12 @@ class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
||||
data = {
|
||||
ATTR_FORECAST_TIME: forecast_dt.isoformat(),
|
||||
ATTR_FORECAST_CONDITION: translated_condition,
|
||||
ATTR_FORECAST_PRECIPITATION: precipitation,
|
||||
ATTR_FORECAST_NATIVE_PRECIPITATION: precipitation,
|
||||
ATTR_FORECAST_PRECIPITATION_PROBABILITY: precipitation_probability,
|
||||
ATTR_FORECAST_TEMP: temp,
|
||||
ATTR_FORECAST_TEMP_LOW: temp_low,
|
||||
ATTR_FORECAST_NATIVE_TEMP: temp,
|
||||
ATTR_FORECAST_NATIVE_TEMP_LOW: temp_low,
|
||||
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}
|
||||
@ -145,12 +145,12 @@ class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
||||
return CONDITIONS[condition]
|
||||
|
||||
@property
|
||||
def temperature(self):
|
||||
def native_temperature(self):
|
||||
"""Return the platform temperature."""
|
||||
return self._get_current_property(TMRW_ATTR_TEMPERATURE)
|
||||
|
||||
@property
|
||||
def pressure(self):
|
||||
def native_pressure(self):
|
||||
"""Return the raw 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)
|
||||
|
||||
@property
|
||||
def wind_speed(self):
|
||||
def native_wind_speed(self):
|
||||
"""Return the raw wind speed."""
|
||||
return self._get_current_property(TMRW_ATTR_WIND_SPEED)
|
||||
|
||||
@ -183,7 +183,7 @@ class TomorrowioWeatherEntity(TomorrowioEntity, WeatherEntity):
|
||||
)
|
||||
|
||||
@property
|
||||
def visibility(self):
|
||||
def native_visibility(self):
|
||||
"""Return the raw visibility."""
|
||||
return self._get_current_property(TMRW_ATTR_VISIBILITY)
|
||||
|
||||
|
@ -29,11 +29,16 @@ from homeassistant.components.weather import (
|
||||
ATTR_FORECAST_WIND_SPEED,
|
||||
ATTR_WEATHER_HUMIDITY,
|
||||
ATTR_WEATHER_OZONE,
|
||||
ATTR_WEATHER_PRECIPITATION_UNIT,
|
||||
ATTR_WEATHER_PRESSURE,
|
||||
ATTR_WEATHER_PRESSURE_UNIT,
|
||||
ATTR_WEATHER_TEMPERATURE,
|
||||
ATTR_WEATHER_TEMPERATURE_UNIT,
|
||||
ATTR_WEATHER_VISIBILITY,
|
||||
ATTR_WEATHER_VISIBILITY_UNIT,
|
||||
ATTR_WEATHER_WIND_BEARING,
|
||||
ATTR_WEATHER_WIND_SPEED,
|
||||
ATTR_WEATHER_WIND_SPEED_UNIT,
|
||||
DOMAIN as WEATHER_DOMAIN,
|
||||
)
|
||||
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_WEATHER_HUMIDITY] == 23
|
||||
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_UNIT] == "hPa"
|
||||
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_UNIT] == "km"
|
||||
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_UNIT] == "km/h"
|
||||
|
Loading…
x
Reference in New Issue
Block a user