Translation and device info

This commit is contained in:
Jules 2024-04-02 20:56:00 +02:00
parent 67ab04499e
commit adc9e5d013
Signed by: jdejaegh
GPG key ID: 99D6D184CA66933A
8 changed files with 277 additions and 33 deletions

View file

@ -8,7 +8,6 @@ from homeassistant.components.binary_sensor import (BinarySensorDeviceClass,
BinarySensorEntity)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@ -36,12 +35,7 @@ class IrmKmiWarning(CoordinatorEntity, BinarySensorEntity):
self._attr_unique_id = entry.entry_id
self.entity_id = binary_sensor.ENTITY_ID_FORMAT.format(f"weather_warning_{str(entry.title).lower()}")
self._attr_name = f"Warning {entry.title}"
self._attr_device_info = DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, entry.entry_id)},
manufacturer="IRM KMI",
name=f"Warning {entry.title}"
)
self._attr_device_info = coordinator.shared_device_info
@property
def is_on(self) -> bool | None:

View file

@ -6,7 +6,6 @@ from aiohttp import web
from homeassistant.components.camera import Camera, async_get_still_stream
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@ -36,12 +35,7 @@ class IrmKmiRadar(CoordinatorEntity, Camera):
self.content_type = 'image/svg+xml'
self._name = f"Radar {entry.title}"
self._attr_unique_id = entry.entry_id
self._attr_device_info = DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, entry.entry_id)},
manufacturer="IRM KMI",
name=f"Radar {entry.title}"
)
self._attr_device_info = coordinator.shared_device_info
self._image_index = False

View file

@ -12,6 +12,7 @@ from homeassistant.const import ATTR_LATITUDE, ATTR_LONGITUDE, CONF_ZONE
from homeassistant.core import HomeAssistant
from homeassistant.helpers import issue_registry
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.update_coordinator import (DataUpdateCoordinator,
UpdateFailed)
@ -48,6 +49,12 @@ class IrmKmiCoordinator(DataUpdateCoordinator):
self._dark_mode = get_config_value(entry, CONF_DARK_MODE)
self._style = get_config_value(entry, CONF_STYLE)
self._config_entry = entry
self.shared_device_info = DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, entry.entry_id)},
manufacturer="IRM KMI",
name=f"{entry.title}"
)
async def _async_update_data(self) -> ProcessedCoordinatorData:
"""Fetch data from API endpoint.

View file

@ -2,11 +2,9 @@
import logging
from homeassistant.components import sensor
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@ -38,17 +36,9 @@ class IrmKmiPollen(CoordinatorEntity, SensorEntity):
self._attr_unique_id = f"{entry.entry_id}-pollen-{pollen}"
self.entity_id = sensor.ENTITY_ID_FORMAT.format(f"{str(entry.title).lower()}_{pollen}_level")
self._attr_options = PollenParser.get_option_values()
self._attr_name = f"Pollen {pollen}"
self._attr_device_info = DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, entry.entry_id)},
manufacturer="IRM KMI",
name=f"Pollen {pollen}"
)
self._attr_device_info = coordinator.shared_device_info
self._pollen = pollen
# TODO add translation for name
# self._attr_translation_key = f"pollen_{pollen}"
# _LOGGER.debug(f"translation key: {self._attr_translation_key}")
self._attr_translation_key = f"pollen_{pollen}"
@property
def native_value(self) -> str | None:

View file

@ -74,5 +74,93 @@
}
}
}
},
"entity": {
"sensor": {
"pollen_alder": {
"name": "Alder pollen",
"state": {
"active": "Active",
"green": "Green",
"yellow": "Yellow",
"orange": "Orange",
"red": "Red",
"purple": "Purple",
"none": "None"
}
},
"pollen_ash": {
"name": "Ash pollen",
"state": {
"active": "Active",
"green": "Green",
"yellow": "Yellow",
"orange": "Orange",
"red": "Red",
"purple": "Purple",
"none": "None"
}
},
"pollen_birch": {
"name": "Birch pollen",
"state": {
"active": "Active",
"green": "Green",
"yellow": "Yellow",
"orange": "Orange",
"red": "Red",
"purple": "Purple",
"none": "None"
}
},
"pollen_grasses": {
"name": "Grass pollen",
"state": {
"active": "Active",
"green": "Green",
"yellow": "Yellow",
"orange": "Orange",
"red": "Red",
"purple": "Purple",
"none": "None"
}
},
"pollen_hazel": {
"name": "Hazel pollen",
"state": {
"active": "Active",
"green": "Green",
"yellow": "Yellow",
"orange": "Orange",
"red": "Red",
"purple": "Purple",
"none": "None"
}
},
"pollen_mugwort": {
"name": "Mugwort pollen",
"state": {
"active": "Active",
"green": "Green",
"yellow": "Yellow",
"orange": "Orange",
"red": "Red",
"purple": "Purple",
"none": "None"
}
},
"pollen_oak": {
"name": "Oak pollen",
"state": {
"active": "Active",
"green": "Green",
"yellow": "Yellow",
"orange": "Orange",
"red": "Red",
"purple": "Purple",
"none": "None"
}
}
}
}
}

View file

@ -74,5 +74,93 @@
}
}
}
},
"entity": {
"sensor": {
"pollen_alder": {
"name": "Pollen d'aulne",
"state": {
"active": "Actif",
"green": "Vert",
"yellow": "Jaune",
"orange": "Orange",
"red": "Rouge",
"purple": "Violet",
"none": "Aucun"
}
},
"pollen_ash": {
"name": "Pollen de frêne",
"state": {
"active": "Actif",
"green": "Vert",
"yellow": "Jaune",
"orange": "Orange",
"red": "Rouge",
"purple": "Violet",
"none": "Aucun"
}
},
"pollen_birch": {
"name": "Pollen de bouleau",
"state": {
"active": "Actif",
"green": "Vert",
"yellow": "Jaune",
"orange": "Orange",
"red": "Rouge",
"purple": "Violet",
"none": "Aucun"
}
},
"pollen_grasses": {
"name": "Pollen de graminées",
"state": {
"active": "Actif",
"green": "Vert",
"yellow": "Jaune",
"orange": "Orange",
"red": "Rouge",
"purple": "Violet",
"none": "Aucun"
}
},
"pollen_hazel": {
"name": "Pollen de noisetier",
"state": {
"active": "Actif",
"green": "Vert",
"yellow": "Jaune",
"orange": "Orange",
"red": "Rouge",
"purple": "Violet",
"none": "Aucun"
}
},
"pollen_mugwort": {
"name": "Pollen d'armoise",
"state": {
"active": "Actif",
"green": "Vert",
"yellow": "Jaune",
"orange": "Orange",
"red": "Rouge",
"purple": "Violet",
"none": "Aucun"
}
},
"pollen_oak": {
"name": "Pollen de chêne",
"state": {
"active": "Actif",
"green": "Vert",
"yellow": "Jaune",
"orange": "Orange",
"red": "Rouge",
"purple": "Violet",
"none": "Aucun"
}
}
}
}
}

View file

@ -74,5 +74,93 @@
}
}
}
},
"entity": {
"sensor": {
"pollen_alder": {
"name": "Elzenpollen",
"state": {
"active": "Actief",
"green": "Groen",
"yellow": "Geel",
"orange": "Oranje",
"red": "Rood",
"purple": "Paars",
"none": "Geen"
}
},
"pollen_ash": {
"name": "Essen pollen",
"state": {
"active": "Actief",
"green": "Groen",
"yellow": "Geel",
"orange": "Oranje",
"red": "Rood",
"purple": "Paars",
"none": "Geen"
}
},
"pollen_birch": {
"name": "Berken pollen",
"state": {
"active": "Actief",
"green": "Groen",
"yellow": "Geel",
"orange": "Oranje",
"red": "Rood",
"purple": "Paars",
"none": "Geen"
}
},
"pollen_grasses": {
"name": "Graspollen",
"state": {
"active": "Actief",
"green": "Groen",
"yellow": "Geel",
"orange": "Oranje",
"red": "Rood",
"purple": "Paars",
"none": "Geen"
}
},
"pollen_hazel": {
"name": "Hazelaar pollen",
"state": {
"active": "Actief",
"green": "Groen",
"yellow": "Geel",
"orange": "Oranje",
"red": "Rood",
"purple": "Paars",
"none": "Geen"
}
},
"pollen_mugwort": {
"name": "Alsem pollen",
"state": {
"active": "Actief",
"green": "Groen",
"yellow": "Geel",
"orange": "Oranje",
"red": "Rood",
"purple": "Paars",
"none": "Geen"
}
},
"pollen_oak": {
"name": "Eiken pollen",
"state": {
"active": "Actief",
"green": "Groen",
"yellow": "Geel",
"orange": "Oranje",
"red": "Rood",
"purple": "Paars",
"none": "Geen"
}
}
}
}
}

View file

@ -8,7 +8,6 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (UnitOfPrecipitationDepth, UnitOfPressure,
UnitOfSpeed, UnitOfTemperature)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@ -39,12 +38,8 @@ class IrmKmiWeather(CoordinatorEntity, WeatherEntity):
WeatherEntity.__init__(self)
self._name = entry.title
self._attr_unique_id = entry.entry_id
self._attr_device_info = DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, entry.entry_id)},
manufacturer="IRM KMI",
name=entry.title
)
self._attr_device_info = coordinator.shared_device_info
self._deprecated_forecast_as = get_config_value(entry, CONF_USE_DEPRECATED_FORECAST)
@property