Add entity name translations to Buienradar (#91511)

Co-authored-by: Erik Montnemery <erik@montnemery.com>
This commit is contained in:
Joost Lekkerkerker 2023-05-29 23:36:53 +02:00 committed by GitHub
parent 52ef4a3b75
commit df6317f65e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 676 additions and 109 deletions

View File

@ -18,3 +18,49 @@ DEFAULT_COUNTRY = "NL"
SCHEDULE_OK = 10
"""When an error occurred, new call after (minutes)."""
SCHEDULE_NOK = 2
STATE_CONDITIONS = ["clear", "cloudy", "fog", "rainy", "snowy", "lightning"]
STATE_DETAILED_CONDITIONS = [
"clear",
"partlycloudy",
"partlycloudy-fog",
"partlycloudy-light-rain",
"partlycloudy-rain",
"cloudy",
"fog",
"rainy",
"light-rain",
"light-snow",
"partlycloudy-light-snow",
"partlycloudy-snow",
"partlycloudy-lightning",
"snowy",
"snowy-rainy",
"lightning",
]
STATE_CONDITION_CODES = [
"a",
"b",
"j",
"o",
"r",
"c",
"p",
"d",
"n",
"f",
"h",
"k",
"l",
"q",
"w",
"m",
"u",
"i",
"v",
"t",
"g",
"s",
]

View File

@ -48,7 +48,14 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import dt as dt_util
from .const import CONF_TIMEFRAME, DEFAULT_TIMEFRAME, DOMAIN
from .const import (
CONF_TIMEFRAME,
DEFAULT_TIMEFRAME,
DOMAIN,
STATE_CONDITION_CODES,
STATE_CONDITIONS,
STATE_DETAILED_CONDITIONS,
)
from .util import BrData
_LOGGER = logging.getLogger(__name__)
@ -67,584 +74,620 @@ STATIONNAME_LABEL = "Stationname"
SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
SensorEntityDescription(
key="stationname",
name=STATIONNAME_LABEL,
translation_key="stationname",
),
# new in json api (>1.0.0):
SensorEntityDescription(
key="barometerfc",
name="Barometer value",
translation_key="barometerfc",
icon="mdi:gauge",
),
# new in json api (>1.0.0):
SensorEntityDescription(
key="barometerfcname",
name="Barometer",
translation_key="barometerfcname",
icon="mdi:gauge",
),
# new in json api (>1.0.0):
SensorEntityDescription(
key="barometerfcnamenl",
name="Barometer",
translation_key="barometerfcnamenl",
icon="mdi:gauge",
),
SensorEntityDescription(
key="condition",
name="Condition",
translation_key="condition",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITIONS,
),
SensorEntityDescription(
key="conditioncode",
name="Condition code",
translation_key="conditioncode",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITION_CODES,
),
SensorEntityDescription(
key="conditiondetailed",
name="Detailed condition",
translation_key="conditiondetailed",
device_class=SensorDeviceClass.ENUM,
options=STATE_DETAILED_CONDITIONS,
),
SensorEntityDescription(
key="conditionexact",
name="Full condition",
translation_key="conditionexact",
),
SensorEntityDescription(
key="symbol",
name="Symbol",
translation_key="symbol",
),
# new in json api (>1.0.0):
SensorEntityDescription(
key="feeltemperature",
name="Feel temperature",
translation_key="feeltemperature",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="humidity",
name="Humidity",
translation_key="humidity",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:water-percent",
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key="temperature",
name="Temperature",
translation_key="temperature",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key="groundtemperature",
name="Ground temperature",
translation_key="groundtemperature",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key="windspeed",
name="Wind speed",
translation_key="windspeed",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
device_class=SensorDeviceClass.WIND_SPEED,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key="windforce",
name="Wind force",
translation_key="windforce",
native_unit_of_measurement="Bft",
icon="mdi:weather-windy",
),
SensorEntityDescription(
key="winddirection",
name="Wind direction",
translation_key="winddirection",
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="windazimuth",
name="Wind direction azimuth",
translation_key="windazimuth",
native_unit_of_measurement=DEGREE,
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="pressure",
name="Pressure",
translation_key="pressure",
native_unit_of_measurement=UnitOfPressure.HPA,
icon="mdi:gauge",
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key="visibility",
name="Visibility",
translation_key="visibility",
native_unit_of_measurement=UnitOfLength.KILOMETERS,
device_class=SensorDeviceClass.DISTANCE,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key="windgust",
name="Wind gust",
translation_key="windgust",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
device_class=SensorDeviceClass.WIND_SPEED,
),
SensorEntityDescription(
key="precipitation",
name="Precipitation",
translation_key="precipitation",
native_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
),
SensorEntityDescription(
key="irradiance",
name="Irradiance",
translation_key="irradiance",
device_class=SensorDeviceClass.IRRADIANCE,
native_unit_of_measurement=UnitOfIrradiance.WATTS_PER_SQUARE_METER,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key="precipitation_forecast_average",
name="Precipitation forecast average",
translation_key="precipitation_forecast_average",
native_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
),
SensorEntityDescription(
key="precipitation_forecast_total",
name="Precipitation forecast total",
translation_key="precipitation_forecast_total",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
# new in json api (>1.0.0):
SensorEntityDescription(
key="rainlast24hour",
name="Rain last 24h",
translation_key="rainlast24hour",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
# new in json api (>1.0.0):
SensorEntityDescription(
key="rainlasthour",
name="Rain last hour",
translation_key="rainlasthour",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="temperature_1d",
name="Temperature 1d",
translation_key="temperature_1d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="temperature_2d",
name="Temperature 2d",
translation_key="temperature_2d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="temperature_3d",
name="Temperature 3d",
translation_key="temperature_3d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="temperature_4d",
name="Temperature 4d",
translation_key="temperature_4d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="temperature_5d",
name="Temperature 5d",
translation_key="temperature_5d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="mintemp_1d",
name="Minimum temperature 1d",
translation_key="mintemp_1d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="mintemp_2d",
name="Minimum temperature 2d",
translation_key="mintemp_2d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="mintemp_3d",
name="Minimum temperature 3d",
translation_key="mintemp_3d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="mintemp_4d",
name="Minimum temperature 4d",
translation_key="mintemp_4d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="mintemp_5d",
name="Minimum temperature 5d",
translation_key="mintemp_5d",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
SensorEntityDescription(
key="rain_1d",
name="Rain 1d",
translation_key="rain_1d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="rain_2d",
name="Rain 2d",
translation_key="rain_2d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="rain_3d",
name="Rain 3d",
translation_key="rain_3d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="rain_4d",
name="Rain 4d",
translation_key="rain_4d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="rain_5d",
name="Rain 5d",
translation_key="rain_5d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
# new in json api (>1.0.0):
SensorEntityDescription(
key="minrain_1d",
name="Minimum rain 1d",
translation_key="minrain_1d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="minrain_2d",
name="Minimum rain 2d",
translation_key="minrain_2d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="minrain_3d",
name="Minimum rain 3d",
translation_key="minrain_3d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="minrain_4d",
name="Minimum rain 4d",
translation_key="minrain_4d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="minrain_5d",
name="Minimum rain 5d",
translation_key="minrain_5d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
# new in json api (>1.0.0):
SensorEntityDescription(
key="maxrain_1d",
name="Maximum rain 1d",
translation_key="maxrain_1d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="maxrain_2d",
name="Maximum rain 2d",
translation_key="maxrain_2d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="maxrain_3d",
name="Maximum rain 3d",
translation_key="maxrain_3d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="maxrain_4d",
name="Maximum rain 4d",
translation_key="maxrain_4d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="maxrain_5d",
name="Maximum rain 5d",
translation_key="maxrain_5d",
native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS,
device_class=SensorDeviceClass.PRECIPITATION,
),
SensorEntityDescription(
key="rainchance_1d",
name="Rainchance 1d",
translation_key="rainchance_1d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-pouring",
),
SensorEntityDescription(
key="rainchance_2d",
name="Rainchance 2d",
translation_key="rainchance_2d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-pouring",
),
SensorEntityDescription(
key="rainchance_3d",
name="Rainchance 3d",
translation_key="rainchance_3d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-pouring",
),
SensorEntityDescription(
key="rainchance_4d",
name="Rainchance 4d",
translation_key="rainchance_4d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-pouring",
),
SensorEntityDescription(
key="rainchance_5d",
name="Rainchance 5d",
translation_key="rainchance_5d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-pouring",
),
SensorEntityDescription(
key="sunchance_1d",
name="Sunchance 1d",
translation_key="sunchance_1d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-partly-cloudy",
),
SensorEntityDescription(
key="sunchance_2d",
name="Sunchance 2d",
translation_key="sunchance_2d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-partly-cloudy",
),
SensorEntityDescription(
key="sunchance_3d",
name="Sunchance 3d",
translation_key="sunchance_3d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-partly-cloudy",
),
SensorEntityDescription(
key="sunchance_4d",
name="Sunchance 4d",
translation_key="sunchance_4d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-partly-cloudy",
),
SensorEntityDescription(
key="sunchance_5d",
name="Sunchance 5d",
translation_key="sunchance_5d",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:weather-partly-cloudy",
),
SensorEntityDescription(
key="windforce_1d",
name="Wind force 1d",
translation_key="windforce_1d",
native_unit_of_measurement="Bft",
icon="mdi:weather-windy",
),
SensorEntityDescription(
key="windforce_2d",
name="Wind force 2d",
translation_key="windforce_2d",
native_unit_of_measurement="Bft",
icon="mdi:weather-windy",
),
SensorEntityDescription(
key="windforce_3d",
name="Wind force 3d",
translation_key="windforce_3d",
native_unit_of_measurement="Bft",
icon="mdi:weather-windy",
),
SensorEntityDescription(
key="windforce_4d",
name="Wind force 4d",
translation_key="windforce_4d",
native_unit_of_measurement="Bft",
icon="mdi:weather-windy",
),
SensorEntityDescription(
key="windforce_5d",
name="Wind force 5d",
translation_key="windforce_5d",
native_unit_of_measurement="Bft",
icon="mdi:weather-windy",
),
SensorEntityDescription(
key="windspeed_1d",
name="Wind speed 1d",
translation_key="windspeed_1d",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
device_class=SensorDeviceClass.WIND_SPEED,
),
SensorEntityDescription(
key="windspeed_2d",
name="Wind speed 2d",
translation_key="windspeed_2d",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
device_class=SensorDeviceClass.WIND_SPEED,
),
SensorEntityDescription(
key="windspeed_3d",
name="Wind speed 3d",
translation_key="windspeed_3d",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
device_class=SensorDeviceClass.WIND_SPEED,
),
SensorEntityDescription(
key="windspeed_4d",
name="Wind speed 4d",
translation_key="windspeed_4d",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
device_class=SensorDeviceClass.WIND_SPEED,
),
SensorEntityDescription(
key="windspeed_5d",
name="Wind speed 5d",
translation_key="windspeed_5d",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
device_class=SensorDeviceClass.WIND_SPEED,
),
SensorEntityDescription(
key="winddirection_1d",
name="Wind direction 1d",
translation_key="winddirection_1d",
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="winddirection_2d",
name="Wind direction 2d",
translation_key="winddirection_2d",
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="winddirection_3d",
name="Wind direction 3d",
translation_key="winddirection_3d",
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="winddirection_4d",
name="Wind direction 4d",
translation_key="winddirection_4d",
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="winddirection_5d",
name="Wind direction 5d",
translation_key="winddirection_5d",
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="windazimuth_1d",
name="Wind direction azimuth 1d",
translation_key="windazimuth_1d",
native_unit_of_measurement=DEGREE,
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="windazimuth_2d",
name="Wind direction azimuth 2d",
translation_key="windazimuth_2d",
native_unit_of_measurement=DEGREE,
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="windazimuth_3d",
name="Wind direction azimuth 3d",
translation_key="windazimuth_3d",
native_unit_of_measurement=DEGREE,
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="windazimuth_4d",
name="Wind direction azimuth 4d",
translation_key="windazimuth_4d",
native_unit_of_measurement=DEGREE,
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="windazimuth_5d",
name="Wind direction azimuth 5d",
translation_key="windazimuth_5d",
native_unit_of_measurement=DEGREE,
icon="mdi:compass-outline",
),
SensorEntityDescription(
key="condition_1d",
name="Condition 1d",
translation_key="condition_1d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITIONS,
),
SensorEntityDescription(
key="condition_2d",
name="Condition 2d",
translation_key="condition_2d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITIONS,
),
SensorEntityDescription(
key="condition_3d",
name="Condition 3d",
translation_key="condition_3d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITIONS,
),
SensorEntityDescription(
key="condition_4d",
name="Condition 4d",
translation_key="condition_4d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITIONS,
),
SensorEntityDescription(
key="condition_5d",
name="Condition 5d",
translation_key="condition_5d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITIONS,
),
SensorEntityDescription(
key="conditioncode_1d",
name="Condition code 1d",
translation_key="conditioncode_1d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITION_CODES,
),
SensorEntityDescription(
key="conditioncode_2d",
name="Condition code 2d",
translation_key="conditioncode_2d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITION_CODES,
),
SensorEntityDescription(
key="conditioncode_3d",
name="Condition code 3d",
translation_key="conditioncode_3d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITION_CODES,
),
SensorEntityDescription(
key="conditioncode_4d",
name="Condition code 4d",
translation_key="conditioncode_4d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITION_CODES,
),
SensorEntityDescription(
key="conditioncode_5d",
name="Condition code 5d",
translation_key="conditioncode_5d",
device_class=SensorDeviceClass.ENUM,
options=STATE_CONDITION_CODES,
),
SensorEntityDescription(
key="conditiondetailed_1d",
name="Detailed condition 1d",
translation_key="conditiondetailed_1d",
device_class=SensorDeviceClass.ENUM,
options=STATE_DETAILED_CONDITIONS,
),
SensorEntityDescription(
key="conditiondetailed_2d",
name="Detailed condition 2d",
translation_key="conditiondetailed_2d",
device_class=SensorDeviceClass.ENUM,
options=STATE_DETAILED_CONDITIONS,
),
SensorEntityDescription(
key="conditiondetailed_3d",
name="Detailed condition 3d",
translation_key="conditiondetailed_3d",
device_class=SensorDeviceClass.ENUM,
options=STATE_DETAILED_CONDITIONS,
),
SensorEntityDescription(
key="conditiondetailed_4d",
name="Detailed condition 4d",
translation_key="conditiondetailed_4d",
device_class=SensorDeviceClass.ENUM,
options=STATE_DETAILED_CONDITIONS,
),
SensorEntityDescription(
key="conditiondetailed_5d",
name="Detailed condition 5d",
translation_key="conditiondetailed_5d",
device_class=SensorDeviceClass.ENUM,
options=STATE_DETAILED_CONDITIONS,
),
SensorEntityDescription(
key="conditionexact_1d",
name="Full condition 1d",
translation_key="conditionexact_1d",
),
SensorEntityDescription(
key="conditionexact_2d",
name="Full condition 2d",
translation_key="conditionexact_2d",
),
SensorEntityDescription(
key="conditionexact_3d",
name="Full condition 3d",
translation_key="conditionexact_3d",
),
SensorEntityDescription(
key="conditionexact_4d",
name="Full condition 4d",
translation_key="conditionexact_4d",
),
SensorEntityDescription(
key="conditionexact_5d",
name="Full condition 5d",
translation_key="conditionexact_5d",
),
SensorEntityDescription(
key="symbol_1d",
name="Symbol 1d",
translation_key="symbol_1d",
),
SensorEntityDescription(
key="symbol_2d",
name="Symbol 2d",
translation_key="symbol_2d",
),
SensorEntityDescription(
key="symbol_3d",
name="Symbol 3d",
translation_key="symbol_3d",
),
SensorEntityDescription(
key="symbol_4d",
name="Symbol 4d",
translation_key="symbol_4d",
),
SensorEntityDescription(
key="symbol_5d",
name="Symbol 5d",
translation_key="symbol_5d",
),
)
@ -689,17 +732,17 @@ async def async_setup_entry(
class BrSensor(SensorEntity):
"""Representation of an Buienradar sensor."""
"""Representation of a Buienradar sensor."""
_attr_entity_registry_enabled_default = False
_attr_should_poll = False
_attr_has_entity_name = True
def __init__(
self, client_name, coordinates, description: SensorEntityDescription
) -> None:
"""Initialize the sensor."""
self.entity_description = description
self._attr_name = f"{client_name} {description.name}"
self._measured = None
self._attr_unique_id = "{:2.6f}{:2.6f}{}".format(
coordinates[CONF_LATITUDE], coordinates[CONF_LONGITUDE], description.key

View File

@ -25,5 +25,483 @@
}
}
}
},
"entity": {
"sensor": {
"stationname": {
"name": "Station name"
},
"barometerfc": {
"name": "Barometer value"
},
"barometerfcname": {
"name": "Barometer"
},
"barometerfcnamenl": {
"name": "Barometer"
},
"condition": {
"name": "Condition",
"state": {
"clear": "Clear",
"cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]",
"fog": "[%key:component::weather::entity_component::_::state::fog%]",
"rainy": "[%key:component::weather::entity_component::_::state::rainy%]",
"snowy": "[%key:component::weather::entity_component::_::state::snowy%]",
"lightning": "[%key:component::weather::entity_component::_::state::lightning%]"
}
},
"conditioncode": {
"name": "Condition code"
},
"conditiondetailed": {
"name": "Detailed condition",
"state": {
"clear": "Clear",
"partlycloudy": "[%key:component::weather::entity_component::_::state::partlycloudy%]",
"partlycloudy-fog": "Partly cloudy, fog",
"partlycloudy-light-rain": "Partly cloudy, light rain",
"partlycloudy-rain": "Partly cloudy, rain",
"cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]",
"fog": "[%key:component::weather::entity_component::_::state::fog%]",
"rainy": "[%key:component::weather::entity_component::_::state::rainy%]",
"light-rain": "Light rain",
"light-snow": "Light snow",
"partlycloudy-light-snow": "Partly cloudy, light snow",
"partlycloudy-snow": "Partly cloudy, snow",
"partlycloudy-lightning": "Partly cloudy, lightning",
"snowy": "[%key:component::weather::entity_component::_::state::snowy%]",
"snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]",
"lightning": "[%key:component::weather::entity_component::_::state::lightning%]"
}
},
"conditionexact": {
"name": "Full condition"
},
"symbol": {
"name": "Symbol"
},
"feeltemperature": {
"name": "Feel temperature"
},
"humidity": {
"name": "[%key:component::sensor::entity_component::humidity::name%]"
},
"temperature": {
"name": "[%key:component::sensor::entity_component::temperature::name%]"
},
"groundtemperature": {
"name": "Ground temperature"
},
"windspeed": {
"name": "[%key:component::sensor::entity_component::wind_speed::name%]"
},
"windforce": {
"name": "Wind force"
},
"winddirection": {
"name": "Wind direction"
},
"windazimuth": {
"name": "Wind direction azimuth"
},
"pressure": {
"name": "[%key:component::sensor::entity_component::pressure::name%]"
},
"visibility": {
"name": "[%key:component::weather::entity_component::_::state_attributes::visibility::name%]"
},
"windgust": {
"name": "Wind gust"
},
"precipitation": {
"name": "[%key:component::sensor::entity_component::precipitation::name%]"
},
"irradiance": {
"name": "[%key:component::sensor::entity_component::irradiance::name%]"
},
"precipitation_forecast_average": {
"name": "Precipitation forecast average"
},
"precipitation_forecast_total": {
"name": "Precipitation forecast total"
},
"rainlast24hour": {
"name": "Rain last 24h"
},
"rainlasthour": {
"name": "Rain last hour"
},
"temperature_1d": {
"name": "Temperature 1d"
},
"temperature_2d": {
"name": "Temperature 2d"
},
"temperature_3d": {
"name": "Temperature 3d"
},
"temperature_4d": {
"name": "Temperature 4d"
},
"temperature_5d": {
"name": "Temperature 5d"
},
"mintemp_1d": {
"name": "Minimum temperature 1d"
},
"mintemp_2d": {
"name": "Minimum temperature 2d"
},
"mintemp_3d": {
"name": "Minimum temperature 3d"
},
"mintemp_4d": {
"name": "Minimum temperature 4d"
},
"mintemp_5d": {
"name": "Minimum temperature 5d"
},
"rain_1d": {
"name": "Rain 1d"
},
"rain_2d": {
"name": "Rain 2d"
},
"rain_3d": {
"name": "Rain 3d"
},
"rain_4d": {
"name": "Rain 4d"
},
"rain_5d": {
"name": "Rain 5d"
},
"minrain_1d": {
"name": "Minimum rain 1d"
},
"minrain_2d": {
"name": "Minimum rain 2d"
},
"minrain_3d": {
"name": "Minimum rain 3d"
},
"minrain_4d": {
"name": "Minimum rain 4d"
},
"minrain_5d": {
"name": "Minimum rain 5d"
},
"maxrain_1d": {
"name": "Maximum rain 1d"
},
"maxrain_2d": {
"name": "Maximum rain 2d"
},
"maxrain_3d": {
"name": "Maximum rain 3d"
},
"maxrain_4d": {
"name": "Maximum rain 4d"
},
"maxrain_5d": {
"name": "Maximum rain 5d"
},
"rainchance_1d": {
"name": "Rainchance 1d"
},
"rainchance_2d": {
"name": "Rainchance 2d"
},
"rainchance_3d": {
"name": "Rainchance 3d"
},
"rainchance_4d": {
"name": "Rainchance 4d"
},
"rainchance_5d": {
"name": "Rainchance 5d"
},
"sunchance_1d": {
"name": "Sunchance 1d"
},
"sunchance_2d": {
"name": "Sunchance 2d"
},
"sunchance_3d": {
"name": "Sunchance 3d"
},
"sunchance_4d": {
"name": "Sunchance 4d"
},
"sunchance_5d": {
"name": "Sunchance 5d"
},
"windforce_1d": {
"name": "Wind force 1d"
},
"windforce_2d": {
"name": "Wind force 2d"
},
"windforce_3d": {
"name": "Wind force 3d"
},
"windforce_4d": {
"name": "Wind force 4d"
},
"windforce_5d": {
"name": "Wind force 5d"
},
"windspeed_1d": {
"name": "Wind speed 1d"
},
"windspeed_2d": {
"name": "Wind speed 2d"
},
"windspeed_3d": {
"name": "Wind speed 3d"
},
"windspeed_4d": {
"name": "Wind speed 4d"
},
"windspeed_5d": {
"name": "Wind speed 5d"
},
"winddirection_1d": {
"name": "Wind direction 1d"
},
"winddirection_2d": {
"name": "Wind direction 2d"
},
"winddirection_3d": {
"name": "Wind direction 3d"
},
"winddirection_4d": {
"name": "Wind direction 4d"
},
"winddirection_5d": {
"name": "Wind direction 5d"
},
"windazimuth_1d": {
"name": "Wind direction azimuth 1d"
},
"windazimuth_2d": {
"name": "Wind direction azimuth 2d"
},
"windazimuth_3d": {
"name": "Wind direction azimuth 3d"
},
"windazimuth_4d": {
"name": "Wind direction azimuth 4d"
},
"windazimuth_5d": {
"name": "Wind direction azimuth 5d"
},
"condition_1d": {
"name": "Condition 1d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]",
"cloudy": "[%key:component::buienradar::entity::sensor::condition::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::condition::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::condition::state::rainy%]",
"snowy": "[%key:component::buienradar::entity::sensor::condition::state::snowy%]",
"lightning": "[%key:component::buienradar::entity::sensor::condition::state::lightning%]"
}
},
"condition_2d": {
"name": "Condition 2d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]",
"cloudy": "[%key:component::buienradar::entity::sensor::condition::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::condition::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::condition::state::rainy%]",
"snowy": "[%key:component::buienradar::entity::sensor::condition::state::snowy%]",
"lightning": "[%key:component::buienradar::entity::sensor::condition::state::lightning%]"
}
},
"condition_3d": {
"name": "Condition 3d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]",
"cloudy": "[%key:component::buienradar::entity::sensor::condition::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::condition::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::condition::state::rainy%]",
"snowy": "[%key:component::buienradar::entity::sensor::condition::state::snowy%]",
"lightning": "[%key:component::buienradar::entity::sensor::condition::state::lightning%]"
}
},
"condition_4d": {
"name": "Condition 4d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]",
"cloudy": "[%key:component::buienradar::entity::sensor::condition::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::condition::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::condition::state::rainy%]",
"snowy": "[%key:component::buienradar::entity::sensor::condition::state::snowy%]",
"lightning": "[%key:component::buienradar::entity::sensor::condition::state::lightning%]"
}
},
"condition_5d": {
"name": "Condition 5d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]",
"cloudy": "[%key:component::buienradar::entity::sensor::condition::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::condition::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::condition::state::rainy%]",
"snowy": "[%key:component::buienradar::entity::sensor::condition::state::snowy%]",
"lightning": "[%key:component::buienradar::entity::sensor::condition::state::lightning%]"
}
},
"conditioncode_1d": {
"name": "Condition code 1d"
},
"conditioncode_2d": {
"name": "Condition code 2d"
},
"conditioncode_3d": {
"name": "Condition code 3d"
},
"conditioncode_4d": {
"name": "Condition code 4d"
},
"conditioncode_5d": {
"name": "Condition code 5d"
},
"conditiondetailed_1d": {
"name": "Detailed condition 1d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]",
"partlycloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy%]",
"partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]",
"partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]",
"partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]",
"cloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::rainy%]",
"light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]",
"light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]",
"partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]",
"partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]",
"partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]",
"snowy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy%]",
"snowy-rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy-rainy%]",
"lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::lightning%]"
}
},
"conditiondetailed_2d": {
"name": "Detailed condition 2d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]",
"partlycloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy%]",
"partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]",
"partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]",
"partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]",
"cloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::rainy%]",
"light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]",
"light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]",
"partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]",
"partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]",
"partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]",
"snowy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy%]",
"snowy-rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy-rainy%]",
"lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::lightning%]"
}
},
"conditiondetailed_3d": {
"name": "Detailed condition 3d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]",
"partlycloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy%]",
"partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]",
"partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]",
"partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]",
"cloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::rainy%]",
"light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]",
"light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]",
"partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]",
"partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]",
"partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]",
"snowy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy%]",
"snowy-rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy-rainy%]",
"lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::lightning%]"
}
},
"conditiondetailed_4d": {
"name": "Detailed condition 4d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]",
"partlycloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy%]",
"partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]",
"partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]",
"partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]",
"cloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::rainy%]",
"light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]",
"light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]",
"partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]",
"partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]",
"partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]",
"snowy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy%]",
"snowy-rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy-rainy%]",
"lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::lightning%]"
}
},
"conditiondetailed_5d": {
"name": "Detailed condition 5d",
"state": {
"clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]",
"partlycloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy%]",
"partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]",
"partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]",
"partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]",
"cloudy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::cloudy%]",
"fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::fog%]",
"rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::rainy%]",
"light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]",
"light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]",
"partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]",
"partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]",
"partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]",
"snowy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy%]",
"snowy-rainy": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::snowy-rainy%]",
"lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::lightning%]"
}
},
"conditionexact_1d": {
"name": "Full condition 1d"
},
"conditionexact_2d": {
"name": "Full condition 2d"
},
"conditionexact_3d": {
"name": "Full condition 3d"
},
"conditionexact_4d": {
"name": "Full condition 4d"
},
"conditionexact_5d": {
"name": "Full condition 5d"
},
"symbol_1d": {
"name": "Symbol 1d"
},
"symbol_2d": {
"name": "Symbol 2d"
},
"symbol_3d": {
"name": "Symbol 3d"
},
"symbol_4d": {
"name": "Symbol 4d"
},
"symbol_5d": {
"name": "Symbol 5d"
}
}
}
}